@mastra/playground-ui 53.0.0 → 53.1.0-alpha.1

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 (69) hide show
  1. package/dist/components/DataList.cjs.js +4 -4
  2. package/dist/components/DataList.es.js +4 -4
  3. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  4. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  5. package/dist/components/LogsDataList.cjs.js +2 -2
  6. package/dist/components/LogsDataList.es.js +2 -2
  7. package/dist/components/SettingsLayout.cjs.js +27 -13
  8. package/dist/components/SettingsLayout.cjs.js.map +1 -1
  9. package/dist/components/SettingsLayout.es.js +27 -13
  10. package/dist/components/SettingsLayout.es.js.map +1 -1
  11. package/dist/components/ThreadList.cjs.js +4 -4
  12. package/dist/components/ThreadList.cjs.js.map +1 -1
  13. package/dist/components/ThreadList.es.js +4 -4
  14. package/dist/components/ThreadList.es.js.map +1 -1
  15. package/dist/{data-list-BUK_v9ax.js → data-list-BiEEjaEy.js} +2 -2
  16. package/dist/{data-list-BUK_v9ax.js.map → data-list-BiEEjaEy.js.map} +1 -1
  17. package/dist/{data-list-B5Wicaoc.cjs → data-list-DWOT5t0J.cjs} +2 -2
  18. package/dist/{data-list-B5Wicaoc.cjs.map → data-list-DWOT5t0J.cjs.map} +1 -1
  19. package/dist/{data-list-skeleton-BZR_Hkvj.cjs → data-list-skeleton-7eKxso9c.cjs} +3 -3
  20. package/dist/data-list-skeleton-7eKxso9c.cjs.map +1 -0
  21. package/dist/{data-list-skeleton-BoaQlbOY.js → data-list-skeleton-CbjuDDK_.js} +3 -3
  22. package/dist/data-list-skeleton-CbjuDDK_.js.map +1 -0
  23. package/dist/{data-list-top-cell-D4-Hbz2H.js → data-list-top-cell-0MJ6fgiR.js} +19 -2
  24. package/dist/data-list-top-cell-0MJ6fgiR.js.map +1 -0
  25. package/dist/{data-list-top-cell-CIs1L8gy.cjs → data-list-top-cell-BZwIuC1M.cjs} +19 -1
  26. package/dist/data-list-top-cell-BZwIuC1M.cjs.map +1 -0
  27. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  28. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  29. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  30. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  31. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  32. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  33. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  34. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  35. package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -6
  36. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  37. package/dist/domains/traces/components/span-data-panel-view.es.js +2 -6
  38. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  39. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +1 -5
  40. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  41. package/dist/domains/traces/components/trace-data-panel-view.es.js +1 -5
  42. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  43. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  44. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  45. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  46. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  47. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -1
  48. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -1
  49. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  50. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  51. package/dist/{logs-data-list-PExVAYf3.cjs → logs-data-list-BcPdFb2K.cjs} +2 -2
  52. package/dist/{logs-data-list-PExVAYf3.cjs.map → logs-data-list-BcPdFb2K.cjs.map} +1 -1
  53. package/dist/{logs-data-list-VCTqogr3.js → logs-data-list-D7NBF4iw.js} +2 -2
  54. package/dist/{logs-data-list-VCTqogr3.js.map → logs-data-list-D7NBF4iw.js.map} +1 -1
  55. package/dist/src/domains/traces/components/span-data-panel-view.d.ts +1 -1
  56. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +1 -1
  57. package/dist/src/ds/components/DataList/shared.d.ts +2 -0
  58. package/dist/src/ds/components/SettingsLayout/settings-layout.d.ts +4 -1
  59. package/dist/src/ds/components/SettingsLayout/settings-layout.stories.d.ts +19 -1
  60. package/dist/style.css +0 -4
  61. package/dist/{traces-data-list-MX4shJfG.cjs → traces-data-list-A8CE_PYA.cjs} +3 -3
  62. package/dist/{traces-data-list-MX4shJfG.cjs.map → traces-data-list-A8CE_PYA.cjs.map} +1 -1
  63. package/dist/{traces-data-list-BnK1mfZp.js → traces-data-list-CV5HmwE2.js} +3 -3
  64. package/dist/{traces-data-list-BnK1mfZp.js.map → traces-data-list-CV5HmwE2.js.map} +1 -1
  65. package/package.json +7 -7
  66. package/dist/data-list-skeleton-BZR_Hkvj.cjs.map +0 -1
  67. package/dist/data-list-skeleton-BoaQlbOY.js.map +0 -1
  68. package/dist/data-list-top-cell-CIs1L8gy.cjs.map +0 -1
  69. package/dist/data-list-top-cell-D4-Hbz2H.js.map +0 -1
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const dataList = require('../data-list-B5Wicaoc.cjs');
6
- const dataListSkeleton = require('../data-list-skeleton-BZR_Hkvj.cjs');
5
+ const dataList = require('../data-list-DWOT5t0J.cjs');
6
+ const dataListSkeleton = require('../data-list-skeleton-7eKxso9c.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
- const dataListTopCell = require('../data-list-top-cell-CIs1L8gy.cjs');
8
+ const dataListTopCell = require('../data-list-top-cell-BZwIuC1M.cjs');
9
9
  const dateFns = require('date-fns');
10
- const tracesDataList = require('../traces-data-list-MX4shJfG.cjs');
10
+ const tracesDataList = require('../traces-data-list-A8CE_PYA.cjs');
11
11
  const useDataListKeyboard = require('../use-data-list-keyboard-k5D-WlNX.cjs');
12
12
 
13
13
  function toDate(value) {
@@ -1,9 +1,9 @@
1
- export { D as DataList } from '../data-list-BUK_v9ax.js';
2
- export { D as DataListSkeleton } from '../data-list-skeleton-BoaQlbOY.js';
1
+ export { D as DataList } from '../data-list-BiEEjaEy.js';
2
+ export { D as DataListSkeleton } from '../data-list-skeleton-CbjuDDK_.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
- import { c as DataListCell, f as DataListNextPageLoading, i as DataListNoMatch, l as DataListRowButton, b as DataListTopCell, a as DataListTop, D as DataListRoot } from '../data-list-top-cell-D4-Hbz2H.js';
4
+ import { c as DataListCell, f as DataListNextPageLoading, i as DataListNoMatch, l as DataListRowButton, b as DataListTopCell, a as DataListTop, D as DataListRoot } from '../data-list-top-cell-0MJ6fgiR.js';
5
5
  import { format, isToday } from 'date-fns';
6
- export { T as TracesDataList } from '../traces-data-list-BnK1mfZp.js';
6
+ export { T as TracesDataList } from '../traces-data-list-CV5HmwE2.js';
7
7
  export { u as useDataListKeyboard } from '../use-data-list-keyboard-BzZmvqE_.js';
8
8
 
9
9
  function toDate(value) {
@@ -10,7 +10,7 @@ const Button = require('../Button-D10WB4vc.cjs');
10
10
  const Notice = require('../Notice-D_ji361h.cjs');
11
11
  const envFile = require('../env-file-BU2hStkm.cjs');
12
12
  const Txt = require('../Txt-D5Y_H2a0.cjs');
13
- const dataList = require('../data-list-B5Wicaoc.cjs');
13
+ const dataList = require('../data-list-DWOT5t0J.cjs');
14
14
  const hooks_useCopyToClipboard = require('../hooks/use-copy-to-clipboard.cjs.js');
15
15
  const fieldBlock = require('../field-block-Dr9fbwQx.cjs');
16
16
  const inputGroup = require('../input-group-WDZR_aql.cjs');
@@ -6,7 +6,7 @@ import { B as Button } from '../Button-BsfLQEC6.js';
6
6
  import { N as Notice } from '../Notice-DSUAUUYU.js';
7
7
  import { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '../env-file-BITYowCx.js';
8
8
  import { T as Txt } from '../Txt-ByUf-9Ic.js';
9
- import { D as DataList } from '../data-list-BUK_v9ax.js';
9
+ import { D as DataList } from '../data-list-BiEEjaEy.js';
10
10
  import { useCopyToClipboard } from '../hooks/use-copy-to-clipboard.es.js';
11
11
  import { F as FieldBlock } from '../field-block-DcGeY-_x.js';
12
12
  import { I as InputGroup, c as InputGroupInput, a as InputGroupAddon, b as InputGroupButton } from '../input-group-Dma0MbUM.js';
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const logsDataList = require('../logs-data-list-PExVAYf3.cjs');
6
- const dataListSkeleton = require('../data-list-skeleton-BZR_Hkvj.cjs');
5
+ const logsDataList = require('../logs-data-list-BcPdFb2K.cjs');
6
+ const dataListSkeleton = require('../data-list-skeleton-7eKxso9c.cjs');
7
7
 
8
8
 
9
9
 
@@ -1,3 +1,3 @@
1
- export { L as LogsDataList } from '../logs-data-list-VCTqogr3.js';
2
- export { D as LogsDataListSkeleton } from '../data-list-skeleton-BoaQlbOY.js';
1
+ export { L as LogsDataList } from '../logs-data-list-D7NBF4iw.js';
2
+ export { D as LogsDataListSkeleton } from '../data-list-skeleton-CbjuDDK_.js';
3
3
  //# sourceMappingURL=LogsDataList.es.js.map
@@ -6,9 +6,17 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const Txt = require('../Txt-D5Y_H2a0.cjs');
7
7
  const utils_cn = require('../cn-DCPcv4xv.cjs');
8
8
 
9
- function SettingsLayout({ title, action, inset = false, children }) {
9
+ function SettingsLayout({
10
+ title,
11
+ titleAccessory,
12
+ description,
13
+ action,
14
+ inset = false,
15
+ variant,
16
+ children
17
+ }) {
10
18
  if (title === void 0 || title === null) {
11
- return /* @__PURE__ */ jsxRuntime.jsx(
19
+ return variant === "header" ? children : /* @__PURE__ */ jsxRuntime.jsx(
12
20
  "div",
13
21
  {
14
22
  "data-slot": "settings-layout-content",
@@ -23,21 +31,27 @@ function SettingsLayout({ title, action, inset = false, children }) {
23
31
  {
24
32
  "data-slot": "settings-page-header",
25
33
  className: "mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12",
26
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("flex min-w-0 flex-wrap items-center justify-between gap-4", inset && "pl-4"), children: [
27
- /* @__PURE__ */ jsxRuntime.jsx(
28
- Txt.Txt,
29
- {
30
- as: "h1",
31
- variant: "header-md",
32
- className: utils_cn.cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
33
- children: title
34
- }
35
- ),
34
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("flex min-w-0 flex-wrap items-start justify-between gap-4", inset && "pl-4"), children: [
35
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-0 gap-2", children: [
36
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
37
+ /* @__PURE__ */ jsxRuntime.jsx(
38
+ Txt.Txt,
39
+ {
40
+ as: "h1",
41
+ variant: "header-md",
42
+ className: utils_cn.cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
43
+ children: title
44
+ }
45
+ ),
46
+ titleAccessory !== void 0 && titleAccessory !== null ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: titleAccessory }) : null
47
+ ] }),
48
+ description !== void 0 && description !== null ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "p", variant: "ui-md", className: "text-neutral4 m-0 leading-tight wrap-break-word", children: description }) : null
49
+ ] }),
36
50
  action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: action }) : null
37
51
  ] })
38
52
  }
39
53
  ),
40
- /* @__PURE__ */ jsxRuntime.jsx(
54
+ variant === "header" ? children : /* @__PURE__ */ jsxRuntime.jsx(
41
55
  "div",
42
56
  {
43
57
  "data-slot": "settings-layout-content",
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsLayout.cjs.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n children: ReactNode;\n}\n\nexport function SettingsLayout({ title, action, inset = false, children }: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-center justify-between gap-4', inset && 'pl-4')}>\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n </>\n );\n}\n"],"names":["jsx","jsxs","Fragment","cn","Txt"],"mappings":";;;;;;;;AAWO,SAAS,eAAe,EAAE,KAAA,EAAO,QAAQ,KAAA,GAAQ,KAAA,EAAO,UAAS,EAAwB;AAC9F,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,uBACEA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,0CAAC,KAAA,EAAA,EAAI,SAAA,EAAWG,YAAG,2DAAA,EAA6D,KAAA,IAAS,MAAM,CAAA,EAC7F,QAAA,EAAA;AAAA,0BAAAH,cAAA;AAAA,YAACI,OAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,IAAA;AAAA,cACH,OAAA,EAAQ,WAAA;AAAA,cACR,SAAA,EAAWD,WAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,cAEtF,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,yBAASH,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,oBACAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SettingsLayout.cjs.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n titleAccessory?: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n variant?: 'default' | 'header';\n children: ReactNode;\n}\n\nexport function SettingsLayout({\n title,\n titleAccessory,\n description,\n action,\n inset = false,\n variant,\n children,\n}: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-start justify-between gap-4', inset && 'pl-4')}>\n <div className=\"grid min-w-0 gap-2\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {titleAccessory !== undefined && titleAccessory !== null ? (\n <div className=\"shrink-0\">{titleAccessory}</div>\n ) : null}\n </div>\n {description !== undefined && description !== null ? (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-neutral4 m-0 leading-tight wrap-break-word\">\n {description}\n </Txt>\n ) : null}\n </div>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n {variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n )}\n </>\n );\n}\n"],"names":["jsx","jsxs","Fragment","cn","Txt"],"mappings":";;;;;;;;AAcO,SAAS,cAAA,CAAe;AAAA,EAC7B,KAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,OAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,OAAO,OAAA,KAAY,WACjB,QAAA,mBAEAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,0CAAC,KAAA,EAAA,EAAI,SAAA,EAAWG,YAAG,0DAAA,EAA4D,KAAA,IAAS,MAAM,CAAA,EAC5F,QAAA,EAAA;AAAA,0BAAAF,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,8BAAAD,cAAA;AAAA,gBAACI,OAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,IAAA;AAAA,kBACH,OAAA,EAAQ,WAAA;AAAA,kBACR,SAAA,EAAWD,WAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,kBAEtF,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,cACC,cAAA,KAAmB,UAAa,cAAA,KAAmB,IAAA,kCACjD,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,cAAA,EAAe,CAAA,GACxC;AAAA,aAAA,EACN,CAAA;AAAA,YACC,WAAA,KAAgB,MAAA,IAAa,WAAA,KAAgB,IAAA,mBAC5CH,cAAA,CAACI,OAAA,EAAA,EAAI,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iDAAA,EACnC,uBACH,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UACC,yBAASJ,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,IACC,OAAA,KAAY,WACX,QAAA,mBAEAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -2,9 +2,17 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { T as Txt } from '../Txt-ByUf-9Ic.js';
3
3
  import { c as cn } from '../cn-B4oPhFx9.js';
4
4
 
5
- function SettingsLayout({ title, action, inset = false, children }) {
5
+ function SettingsLayout({
6
+ title,
7
+ titleAccessory,
8
+ description,
9
+ action,
10
+ inset = false,
11
+ variant,
12
+ children
13
+ }) {
6
14
  if (title === void 0 || title === null) {
7
- return /* @__PURE__ */ jsx(
15
+ return variant === "header" ? children : /* @__PURE__ */ jsx(
8
16
  "div",
9
17
  {
10
18
  "data-slot": "settings-layout-content",
@@ -19,21 +27,27 @@ function SettingsLayout({ title, action, inset = false, children }) {
19
27
  {
20
28
  "data-slot": "settings-page-header",
21
29
  className: "mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12",
22
- children: /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 flex-wrap items-center justify-between gap-4", inset && "pl-4"), children: [
23
- /* @__PURE__ */ jsx(
24
- Txt,
25
- {
26
- as: "h1",
27
- variant: "header-md",
28
- className: cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
29
- children: title
30
- }
31
- ),
30
+ children: /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 flex-wrap items-start justify-between gap-4", inset && "pl-4"), children: [
31
+ /* @__PURE__ */ jsxs("div", { className: "grid min-w-0 gap-2", children: [
32
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
33
+ /* @__PURE__ */ jsx(
34
+ Txt,
35
+ {
36
+ as: "h1",
37
+ variant: "header-md",
38
+ className: cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
39
+ children: title
40
+ }
41
+ ),
42
+ titleAccessory !== void 0 && titleAccessory !== null ? /* @__PURE__ */ jsx("div", { className: "shrink-0", children: titleAccessory }) : null
43
+ ] }),
44
+ description !== void 0 && description !== null ? /* @__PURE__ */ jsx(Txt, { as: "p", variant: "ui-md", className: "text-neutral4 m-0 leading-tight wrap-break-word", children: description }) : null
45
+ ] }),
32
46
  action ? /* @__PURE__ */ jsx("div", { className: "shrink-0", children: action }) : null
33
47
  ] })
34
48
  }
35
49
  ),
36
- /* @__PURE__ */ jsx(
50
+ variant === "header" ? children : /* @__PURE__ */ jsx(
37
51
  "div",
38
52
  {
39
53
  "data-slot": "settings-layout-content",
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsLayout.es.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n children: ReactNode;\n}\n\nexport function SettingsLayout({ title, action, inset = false, children }: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-center justify-between gap-4', inset && 'pl-4')}>\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n </>\n );\n}\n"],"names":[],"mappings":";;;;AAWO,SAAS,eAAe,EAAE,KAAA,EAAO,QAAQ,KAAA,GAAQ,KAAA,EAAO,UAAS,EAAwB;AAC9F,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,2DAAA,EAA6D,KAAA,IAAS,MAAM,CAAA,EAC7F,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,IAAA;AAAA,cACH,OAAA,EAAQ,WAAA;AAAA,cACR,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,cAEtF,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SettingsLayout.es.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n titleAccessory?: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n variant?: 'default' | 'header';\n children: ReactNode;\n}\n\nexport function SettingsLayout({\n title,\n titleAccessory,\n description,\n action,\n inset = false,\n variant,\n children,\n}: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-start justify-between gap-4', inset && 'pl-4')}>\n <div className=\"grid min-w-0 gap-2\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {titleAccessory !== undefined && titleAccessory !== null ? (\n <div className=\"shrink-0\">{titleAccessory}</div>\n ) : null}\n </div>\n {description !== undefined && description !== null ? (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-neutral4 m-0 leading-tight wrap-break-word\">\n {description}\n </Txt>\n ) : null}\n </div>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n {variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n )}\n </>\n );\n}\n"],"names":[],"mappings":";;;;AAcO,SAAS,cAAA,CAAe;AAAA,EAC7B,KAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,OAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,OAAO,OAAA,KAAY,WACjB,QAAA,mBAEA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,0DAAA,EAA4D,KAAA,IAAS,MAAM,CAAA,EAC5F,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,IAAA;AAAA,kBACH,OAAA,EAAQ,WAAA;AAAA,kBACR,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,kBAEtF,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,cACC,cAAA,KAAmB,UAAa,cAAA,KAAmB,IAAA,uBACjD,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,cAAA,EAAe,CAAA,GACxC;AAAA,aAAA,EACN,CAAA;AAAA,YACC,WAAA,KAAgB,MAAA,IAAa,WAAA,KAAgB,IAAA,mBAC5C,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iDAAA,EACnC,uBACH,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UACC,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,IACC,OAAA,KAAY,WACX,QAAA,mBAEA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -14,7 +14,7 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
14
14
  {
15
15
  "aria-label": ariaLabel,
16
16
  className: utils_cn.cn(
17
- "h-full overflow-y-auto p-1",
17
+ "flex h-full flex-col gap-1 overflow-y-auto p-1",
18
18
  !embedded && "rounded-studio-panel border border-border1/50 bg-surface3"
19
19
  ),
20
20
  children
@@ -22,10 +22,10 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
22
22
  ) });
23
23
  };
24
24
  const ThreadListNewItem = ({ as, href, to, children }) => {
25
- return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl", children });
25
+ return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl px-3", children });
26
26
  };
27
27
  const ThreadListSeparator = () => /* @__PURE__ */ jsxRuntime.jsx("div", { role: "separator", "aria-orientation": "horizontal", className: "bg-border1/40 -mx-1 my-1 h-px" });
28
- const ThreadListItems = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex flex-col gap-px", "data-testid": "thread-list", children });
28
+ const ThreadListItems = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex flex-col gap-1", "data-testid": "thread-list", children });
29
29
  const ThreadListItem = ({
30
30
  as,
31
31
  href,
@@ -47,7 +47,7 @@ const ThreadListItem = ({
47
47
  onClick,
48
48
  variant: "ghost",
49
49
  className: utils_cn.cn(
50
- "h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left",
50
+ "w-full min-w-0 justify-start rounded-xl px-3 text-left",
51
51
  onDelete && "pr-9",
52
52
  isActive && "bg-surface4 text-neutral6",
53
53
  className
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadList.cjs.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'h-full overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-px\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":["jsx","cn","Button","jsxs","X","Txt"],"mappings":";;;;;;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACEA,cAAA,CAAC,SAAI,SAAA,EAAWC,WAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAWC,WAAA;AAAA,QACT,4BAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACED,cAAA,CAACE,iBAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjCF,cAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzCA,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sBAAA,EAAuB,aAAA,EAAY,aAAA,EAC9C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACEG,eAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAAH,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAWD,WAAA;AAAA,UACT,mFAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACCA,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,yCAACE,aAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACEJ,cAAA,CAACK,WAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;;;;;;"}
1
+ {"version":3,"file":"ThreadList.cjs.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'flex h-full flex-col gap-1 overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl px-3\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-1\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'w-full min-w-0 justify-start rounded-xl px-3 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":["jsx","cn","Button","jsxs","X","Txt"],"mappings":";;;;;;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACEA,cAAA,CAAC,SAAI,SAAA,EAAWC,WAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAWC,WAAA;AAAA,QACT,gDAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACED,cAAA,CAACE,iBAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,sCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjCF,cAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzCA,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qBAAA,EAAsB,aAAA,EAAY,aAAA,EAC7C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACEG,eAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAAH,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAWD,WAAA;AAAA,UACT,wDAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACCA,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,yCAACE,aAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACEJ,cAAA,CAACK,WAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;;;;;;"}
@@ -10,7 +10,7 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
10
10
  {
11
11
  "aria-label": ariaLabel,
12
12
  className: cn(
13
- "h-full overflow-y-auto p-1",
13
+ "flex h-full flex-col gap-1 overflow-y-auto p-1",
14
14
  !embedded && "rounded-studio-panel border border-border1/50 bg-surface3"
15
15
  ),
16
16
  children
@@ -18,10 +18,10 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
18
18
  ) });
19
19
  };
20
20
  const ThreadListNewItem = ({ as, href, to, children }) => {
21
- return /* @__PURE__ */ jsx(Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl", children });
21
+ return /* @__PURE__ */ jsx(Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl px-3", children });
22
22
  };
23
23
  const ThreadListSeparator = () => /* @__PURE__ */ jsx("div", { role: "separator", "aria-orientation": "horizontal", className: "bg-border1/40 -mx-1 my-1 h-px" });
24
- const ThreadListItems = ({ children }) => /* @__PURE__ */ jsx("ol", { className: "flex flex-col gap-px", "data-testid": "thread-list", children });
24
+ const ThreadListItems = ({ children }) => /* @__PURE__ */ jsx("ol", { className: "flex flex-col gap-1", "data-testid": "thread-list", children });
25
25
  const ThreadListItem = ({
26
26
  as,
27
27
  href,
@@ -43,7 +43,7 @@ const ThreadListItem = ({
43
43
  onClick,
44
44
  variant: "ghost",
45
45
  className: cn(
46
- "h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left",
46
+ "w-full min-w-0 justify-start rounded-xl px-3 text-left",
47
47
  onDelete && "pr-9",
48
48
  isActive && "bg-surface4 text-neutral6",
49
49
  className
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadList.es.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'h-full overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-px\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,4BAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACE,GAAA,CAAC,UAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjC,GAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzC,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sBAAA,EAAuB,aAAA,EAAY,aAAA,EAC9C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAW,EAAA;AAAA,UACT,mFAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,8BAAC,CAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACE,GAAA,CAAC,OAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ThreadList.es.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'flex h-full flex-col gap-1 overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl px-3\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-1\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'w-full min-w-0 justify-start rounded-xl px-3 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,gDAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACE,GAAA,CAAC,UAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,sCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjC,GAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzC,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qBAAA,EAAsB,aAAA,EAAY,aAAA,EAC7C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAW,EAAA;AAAA,UACT,wDAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,8BAAC,CAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACE,GAAA,CAAC,OAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import { u as useDataListRowWrapperContext, r as dataListRowStaticStyles, D as DataListRoot, f as DataListNextPageLoading, j as DataListSpacer, i as DataListNoMatch, s as DataListTopSelectCell, t as DataListSelectCell, g as DataListTimeCell, h as DataListDateCell, v as DataListNumberCell, w as DataListRowHeaderCell, q as DataListIdCell, x as DataListDescriptionCell, y as DataListNameCell, e as DataListTextCell, z as DataListActionsCell, c as DataListCell, k as DataListRowLink, l as DataListRowButton, m as DataListRowWrapper, n as DataListTopCellSmart, o as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-cell-D4-Hbz2H.js';
1
+ import { u as useDataListRowWrapperContext, r as dataListRowStaticStyles, D as DataListRoot, f as DataListNextPageLoading, j as DataListSpacer, i as DataListNoMatch, t as DataListTopSelectCell, v as DataListSelectCell, g as DataListTimeCell, h as DataListDateCell, w as DataListNumberCell, x as DataListRowHeaderCell, q as DataListIdCell, y as DataListDescriptionCell, z as DataListNameCell, e as DataListTextCell, A as DataListActionsCell, c as DataListCell, k as DataListRowLink, l as DataListRowButton, m as DataListRowWrapper, n as DataListTopCellSmart, o as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-cell-0MJ6fgiR.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';
4
4
  import { B as Button } from './Button-BsfLQEC6.js';
@@ -124,4 +124,4 @@ const DataList = Object.assign(DataListRoot, {
124
124
  });
125
125
 
126
126
  export { DataList as D, DataListSubHeading as a, DataListSubheader as b };
127
- //# sourceMappingURL=data-list-BUK_v9ax.js.map
127
+ //# sourceMappingURL=data-list-BiEEjaEy.js.map
@@ -1 +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":";;;;;;;AAUO,SAAS,mBAAmB,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,EAAY,YAAW,EAA4B;AAC5G,EAAA,MAAM,cAAA,GAAkB,OAAO,WAAA,KAAgB,QAAA,IAAY,cAAc,CAAA,IAAM,OAAA;AAE/E,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oFAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACC,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,WAAA,GAAc,WAAA,GAAc,IAAI,GAAA,EAAI;AAAA,KAAA,EAC/C,CAAA;AAAA,IACC,cAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA;AAAA,MAAA,OAAO,WAAA,KAAgB,QAAA,IAAY,WAAA,GAAc,CAAA,oBAChD,IAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,SAAS,UAAA,EACzD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,QAAE;AAAA,OAAA,EAEnB,CAAA;AAAA,MAED,OAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,UAAA,EAAY,QAAA,EAAA;AAAA,QAAA,MAAA;AAAA,4BAEpE,cAAA,EAAA,EAAe;AAAA,OAAA,EAClB;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;;ACvBO,MAAM,iBAAA,GAAoB,UAAA;AAAA,EAC/B,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACrF,IAAA,MAAM,YAAY,4BAAA,EAA6B;AAC/C,IAAA,MAAM,iBAAA,GAAoB,QAAA,KAAa,MAAA,IAAa,MAAA,KAAW,MAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,iBAAA,GAAoB,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAA,EAAG,QAAA,IAAY,CAAC,CAAA,GAAA,EAAM,MAAA,IAAU,EAAE,IAAG,GAAI,KAAA;AAC3G,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,YAAY,kEAAA,GAAqE,uBAAA;AAAA,UACjF;AAAA,SACF;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACP,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,gBAAc,OAAA,IAAW,SAAA;AAAA,QACxB,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AC9BzB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EAC/B,CAAC,EAAE,QAAA,EAAU,WAAW,GAAG,IAAA,IAAQ,GAAA,KAAQ;AACzC,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,mGAAA;AAAA,UACA,6BAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AChBzB,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAU,EAA4B;AACnF,EAAA,2BAAQ,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,sCAAA,EAAwC,SAAS,GAAI,QAAA,EAAS,CAAA;AAC3F;;ACeO,MAAM,gBAAA,GAAmB,UAAA;AAAA,EAC9B,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,UAAU,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACrE,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,iFAAA;AAAA,UACA,CAAC,QAAA,IAAY,eAAA;AAAA,UACb,SAAA,IAAa,OAAA;AAAA,UACb;AAAA,SACF;AAAA,QACA,KAAA,EAAO,WAAW,EAAE,GAAG,OAAO,UAAA,EAAY,CAAA,EAAG,QAAQ,CAAA,KAAA,CAAA,EAAQ,GAAI,KAAA;AAAA,QAChE,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;ACVxB,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,YAAA,EAAc;AAAA,EAClD,GAAA,EAAK,WAAA;AAAA,EACL,QAAA,EAAU,gBAAA;AAAA,EACV,OAAA,EAAS,eAAA;AAAA,EACT,kBAAA,EAAoB,0BAAA;AAAA,EACpB,YAAA,EAAc,oBAAA;AAAA,EACd,UAAA,EAAY,kBAAA;AAAA,EACZ,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,eAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,IAAA,EAAM,YAAA;AAAA,EACN,WAAA,EAAa,mBAAA;AAAA,EACb,QAAA,EAAU,gBAAA;AAAA,EACV,QAAA,EAAU,gBAAA;AAAA,EACV,eAAA,EAAiB,uBAAA;AAAA,EACjB,MAAA,EAAQ,cAAA;AAAA,EACR,aAAA,EAAe,qBAAA;AAAA,EACf,UAAA,EAAY,kBAAA;AAAA,EACZ,QAAA,EAAU,gBAAA;AAAA,EACV,QAAA,EAAU,gBAAA;AAAA,EACV,UAAA,EAAY,kBAAA;AAAA,EACZ,aAAA,EAAe,qBAAA;AAAA,EACf,OAAA,EAAS,eAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,UAAA,EAAY,kBAAA;AAAA,EACZ,MAAA,EAAQ,cAAA;AAAA,EACR,eAAA,EAAiB,uBAAA;AAAA,EACjB,UAAA,EAAY;AACd,CAAC;;;;"}
1
+ {"version":3,"file":"data-list-BiEEjaEy.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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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const dataListTopCell = require('./data-list-top-cell-CIs1L8gy.cjs');
3
+ const dataListTopCell = require('./data-list-top-cell-BZwIuC1M.cjs');
4
4
  const jsxRuntime = require('react/jsx-runtime');
5
5
  const lucideReact = require('lucide-react');
6
6
  const Button = require('./Button-D10WB4vc.cjs');
@@ -128,4 +128,4 @@ const DataList = Object.assign(dataListTopCell.DataListRoot, {
128
128
  exports.DataList = DataList;
129
129
  exports.DataListSubHeading = DataListSubHeading;
130
130
  exports.DataListSubheader = DataListSubheader;
131
- //# sourceMappingURL=data-list-B5Wicaoc.cjs.map
131
+ //# sourceMappingURL=data-list-DWOT5t0J.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-list-B5Wicaoc.cjs","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":["jsxs","jsx","Button","ArrowLeftIcon","ArrowRightIcon","forwardRef","useDataListRowWrapperContext","cn","dataListRowStaticStyles","DataListRoot","DataListTop","DataListTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListCell","DataListActionsCell","DataListTextCell","DataListNameCell","DataListDescriptionCell","DataListIdCell","DataListRowHeaderCell","DataListNumberCell","DataListDateCell","DataListTimeCell","DataListSelectCell","DataListTopSelectCell","DataListNoMatch","DataListSpacer","DataListNextPageLoading"],"mappings":";;;;;;;;;AAUO,SAAS,mBAAmB,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,EAAY,YAAW,EAA4B;AAC5G,EAAA,MAAM,cAAA,GAAkB,OAAO,WAAA,KAAgB,QAAA,IAAY,cAAc,CAAA,IAAM,OAAA;AAE/E,EAAA,uBACEA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oFAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACCC,cAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,WAAA,GAAc,WAAA,GAAc,IAAI,GAAA,EAAI;AAAA,KAAA,EAC/C,CAAA;AAAA,IACC,cAAA,oBACCD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA;AAAA,MAAA,OAAO,WAAA,KAAgB,QAAA,IAAY,WAAA,GAAc,CAAA,oBAChDA,eAAA,CAACE,aAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,SAAS,UAAA,EACzD,QAAA,EAAA;AAAA,wBAAAD,cAAA,CAACE,yBAAA,EAAA,EAAc,CAAA;AAAA,QAAE;AAAA,OAAA,EAEnB,CAAA;AAAA,MAED,OAAA,oBACCH,eAAA,CAACE,aAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,UAAA,EAAY,QAAA,EAAA;AAAA,QAAA,MAAA;AAAA,uCAEpEE,0BAAA,EAAA,EAAe;AAAA,OAAA,EAClB;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;;ACvBO,MAAM,iBAAA,GAAoBC,gBAAA;AAAA,EAC/B,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACrF,IAAA,MAAM,YAAYC,4CAAA,EAA6B;AAC/C,IAAA,MAAM,iBAAA,GAAoB,QAAA,KAAa,MAAA,IAAa,MAAA,KAAW,MAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,iBAAA,GAAoB,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAA,EAAG,QAAA,IAAY,CAAC,CAAA,GAAA,EAAM,MAAA,IAAU,EAAE,IAAG,GAAI,KAAA;AAC3G,IAAA,uBACEL,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWM,WAAA;AAAA,UACT,YAAY,kEAAA,GAAqEC,uCAAA;AAAA,UACjF;AAAA,SACF;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACP,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,gBAAc,OAAA,IAAW,SAAA;AAAA,QACxB,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AC9BzB,MAAM,iBAAA,GAAoBH,gBAAA;AAAA,EAC/B,CAAC,EAAE,QAAA,EAAU,WAAW,GAAG,IAAA,IAAQ,GAAA,KAAQ;AACzC,IAAA,uBACEJ,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWM,WAAA;AAAA,UACT,mGAAA;AAAA,UACA,6BAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AChBzB,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAU,EAA4B;AACnF,EAAA,sCAAQ,MAAA,EAAA,EAAK,SAAA,EAAWA,YAAG,sCAAA,EAAwC,SAAS,GAAI,QAAA,EAAS,CAAA;AAC3F;;ACeO,MAAM,gBAAA,GAAmBF,gBAAA;AAAA,EAC9B,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,UAAU,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACrE,IAAA,uBACEJ,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWM,WAAA;AAAA,UACT,iFAAA;AAAA,UACA,CAAC,QAAA,IAAY,eAAA;AAAA,UACb,SAAA,IAAa,OAAA;AAAA,UACb;AAAA,SACF;AAAA,QACA,KAAA,EAAO,WAAW,EAAE,GAAG,OAAO,UAAA,EAAY,CAAA,EAAG,QAAQ,CAAA,KAAA,CAAA,EAAQ,GAAI,KAAA;AAAA,QAChE,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;ACVxB,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAOE,4BAAA,EAAc;AAAA,EAClD,GAAA,EAAKC,2BAAA;AAAA,EACL,QAAA,EAAU,gBAAA;AAAA,EACV,OAAA,EAASC,+BAAA;AAAA,EACT,kBAAA,EAAoBC,0CAAA;AAAA,EACpB,YAAA,EAAcC,oCAAA;AAAA,EACd,UAAA,EAAYC,kCAAA;AAAA,EACZ,SAAA,EAAWC,iCAAA;AAAA,EACX,OAAA,EAASC,+BAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,IAAA,EAAMC,4BAAA;AAAA,EACN,WAAA,EAAaC,mCAAA;AAAA,EACb,QAAA,EAAUC,gCAAA;AAAA,EACV,QAAA,EAAUC,gCAAA;AAAA,EACV,eAAA,EAAiBC,uCAAA;AAAA,EACjB,MAAA,EAAQC,8BAAA;AAAA,EACR,aAAA,EAAeC,qCAAA;AAAA,EACf,UAAA,EAAYC,kCAAA;AAAA,EACZ,QAAA,EAAUC,gCAAA;AAAA,EACV,QAAA,EAAUC,gCAAA;AAAA,EACV,UAAA,EAAYC,kCAAA;AAAA,EACZ,aAAA,EAAeC,qCAAA;AAAA,EACf,OAAA,EAASC,+BAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,UAAA,EAAY,kBAAA;AAAA,EACZ,MAAA,EAAQC,8BAAA;AAAA,EACR,eAAA,EAAiBC,uCAAA;AAAA,EACjB,UAAA,EAAY;AACd,CAAC;;;;;;"}
1
+ {"version":3,"file":"data-list-DWOT5t0J.cjs","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":["jsxs","jsx","Button","ArrowLeftIcon","ArrowRightIcon","forwardRef","useDataListRowWrapperContext","cn","dataListRowStaticStyles","DataListRoot","DataListTop","DataListTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListCell","DataListActionsCell","DataListTextCell","DataListNameCell","DataListDescriptionCell","DataListIdCell","DataListRowHeaderCell","DataListNumberCell","DataListDateCell","DataListTimeCell","DataListSelectCell","DataListTopSelectCell","DataListNoMatch","DataListSpacer","DataListNextPageLoading"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const dataListTopCell = require('./data-list-top-cell-CIs1L8gy.cjs');
4
+ const dataListTopCell = require('./data-list-top-cell-BZwIuC1M.cjs');
5
5
  const utils_cn = require('./cn-DCPcv4xv.cjs');
6
6
 
7
7
  const widths = ["75%", "50%", "65%", "90%", "60%", "80%"];
@@ -21,7 +21,7 @@ function DataListSkeleton({
21
21
  fit,
22
22
  variant
23
23
  }) {
24
- const columnParts = columns.trim().split(/\s+/);
24
+ const columnParts = dataListTopCell.splitColumns(columns);
25
25
  const columnCount = columnParts.length;
26
26
  const skeletonColumns = columnParts.map((col) => col === "auto" ? "minmax(6rem, auto)" : col).join(" ");
27
27
  const getPseudoRandomWidth = (rowIdx, colIdx) => {
@@ -35,4 +35,4 @@ function DataListSkeleton({
35
35
  }
36
36
 
37
37
  exports.DataListSkeleton = DataListSkeleton;
38
- //# sourceMappingURL=data-list-skeleton-BZR_Hkvj.cjs.map
38
+ //# sourceMappingURL=data-list-skeleton-7eKxso9c.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-skeleton-7eKxso9c.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, splitColumns } 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 = splitColumns(columns);\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","splitColumns","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,GAAcC,6BAAa,OAAO,CAAA;AACxC,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,oBAAAJ,cAAA,CAACK,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,kBAAAN,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,GAAGM,sCAAsB,CAAA,EAC3F,gBAAM,IAAA,CAAK,EAAE,QAAQ,WAAA,EAAa,EAAE,GAAA,CAAI,CAACC,IAAG,MAAA,qBAC3CR,cAAA,CAACS,gCACC,QAAA,kBAAAT,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;;;;"}
@@ -1,5 +1,5 @@
1
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';
2
+ import { s as splitColumns, D as DataListRoot, a as DataListTop, b as DataListTopCell, c as DataListCell, d as dataListRowOuterStyles } from './data-list-top-cell-0MJ6fgiR.js';
3
3
  import { c as cn } from './cn-B4oPhFx9.js';
4
4
 
5
5
  const widths = ["75%", "50%", "65%", "90%", "60%", "80%"];
@@ -19,7 +19,7 @@ function DataListSkeleton({
19
19
  fit,
20
20
  variant
21
21
  }) {
22
- const columnParts = columns.trim().split(/\s+/);
22
+ const columnParts = splitColumns(columns);
23
23
  const columnCount = columnParts.length;
24
24
  const skeletonColumns = columnParts.map((col) => col === "auto" ? "minmax(6rem, auto)" : col).join(" ");
25
25
  const getPseudoRandomWidth = (rowIdx, colIdx) => {
@@ -33,4 +33,4 @@ function DataListSkeleton({
33
33
  }
34
34
 
35
35
  export { DataListSkeleton as D };
36
- //# sourceMappingURL=data-list-skeleton-BoaQlbOY.js.map
36
+ //# sourceMappingURL=data-list-skeleton-CbjuDDK_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-skeleton-CbjuDDK_.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, splitColumns } 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 = splitColumns(columns);\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,aAAa,OAAO,CAAA;AACxC,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;;;;"}