@health-samurai/react-components 0.0.0-alpha.8 → 0.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/data-table.d.ts +5 -3
- package/dist/src/components/data-table.d.ts.map +1 -1
- package/dist/src/components/data-table.js.map +1 -1
- package/dist/src/components/data-table.stories.d.ts +6 -2
- package/dist/src/components/data-table.stories.d.ts.map +1 -1
- package/dist/src/components/data-table.stories.js.map +1 -1
- package/dist/src/components/request-line-editor.d.ts.map +1 -1
- package/dist/src/components/request-line-editor.js +1 -1
- package/dist/src/components/request-line-editor.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.js +1 -1
- package/dist/src/shadcn/components/ui/command.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/select.js +3 -2
- package/dist/src/shadcn/components/ui/select.js.map +1 -1
- package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tree.js +1 -1
- package/dist/src/shadcn/components/ui/tree.js.map +1 -1
- package/package.json +1 -1
- package/src/components/data-table.stories.tsx +9 -7
- package/src/components/data-table.tsx +4 -4
- package/src/components/request-line-editor.tsx +1 -0
- package/src/shadcn/components/ui/command.tsx +1 -1
- package/src/shadcn/components/ui/select.tsx +3 -1
- package/src/shadcn/components/ui/tree.tsx +3 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type AccessorKeyColumnDef, type ColumnDef } from "@tanstack/react-table";
|
|
2
|
-
export interface DataTableProps<TData
|
|
3
|
-
columns:
|
|
2
|
+
export interface DataTableProps<TData> {
|
|
3
|
+
columns: {
|
|
4
|
+
[K in keyof TData]: ColumnDef<TData, TData[K]>;
|
|
5
|
+
}[keyof TData][];
|
|
4
6
|
data: TData[];
|
|
5
7
|
stickyHeader?: boolean;
|
|
6
8
|
}
|
|
7
|
-
export declare function DataTable<TData
|
|
9
|
+
export declare function DataTable<TData>({ columns, data, stickyHeader, }: DataTableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
8
10
|
export type { ColumnDef, AccessorKeyColumnDef };
|
|
9
11
|
//# sourceMappingURL=data-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/components/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,SAAS,EAId,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/components/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,SAAS,EAId,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,cAAc,CAAC,KAAK;IACpC,OAAO,EAAE;SAAG,CAAC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC3E,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,EAChC,OAAO,EACP,IAAI,EACJ,YAAoB,GACpB,EAAE,cAAc,CAAC,KAAK,CAAC,2CAyFvB;AAED,YAAY,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n\ttype AccessorKeyColumnDef,\n\ttype ColumnDef,\n\tflexRender,\n\tgetCoreRowModel,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\n\nimport {\n\tTable,\n\tTableBody,\n\tTableCell,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from \"../shadcn/components/ui/table\";\n\nexport interface DataTableProps<TData
|
|
1
|
+
{"version":3,"sources":["../../../src/components/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n\ttype AccessorKeyColumnDef,\n\ttype ColumnDef,\n\tflexRender,\n\tgetCoreRowModel,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\n\nimport {\n\tTable,\n\tTableBody,\n\tTableCell,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from \"../shadcn/components/ui/table\";\n\nexport interface DataTableProps<TData> {\n\tcolumns: { [K in keyof TData]: ColumnDef<TData, TData[K]> }[keyof TData][];\n\tdata: TData[];\n\tstickyHeader?: boolean;\n}\n\nexport function DataTable<TData>({\n\tcolumns,\n\tdata,\n\tstickyHeader = false,\n}: DataTableProps<TData>) {\n\t\"use no memo\";\n\tconst table = useReactTable({\n\t\tdata,\n\t\tcolumns,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tcolumnResizeMode: \"onChange\",\n\t\tenableColumnResizing: true,\n\t});\n\n\treturn (\n\t\t<div className=\"overflow-hidden w-full h-full\">\n\t\t\t<Table className=\"relative border-spacing-0 border-separate w-full\">\n\t\t\t\t<TableHeader>\n\t\t\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t\t\t<TableRow key={headerGroup.id}>\n\t\t\t\t\t\t\t{headerGroup.headers.map((header) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\t\t\tclassName={`relative group border ${stickyHeader ? \"sticky top-0 z-10 bg-bg-secondary text-elements-assistive\" : \"\"}`}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.getIndex() ===\n\t\t\t\t\t\t\t\t\t\t\t\theaderGroup.headers.length - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"w-full\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: header.getSize(),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{header.isPlaceholder\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: flexRender(\n\t\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{header.column.getCanResize() && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseDown: header.getResizeHandler(),\n\t\t\t\t\t\t\t\t\t\t\t\t\tonTouchStart: header.getResizeHandler(),\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName: `hidden group-hover:block absolute top-0 right-0 h-full w-1 bg-border-secondary cursor-col-resize hover:bg-border-secondary`,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserSelect: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouchAction: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t))}\n\t\t\t\t</TableHeader>\n\t\t\t\t<TableBody>\n\t\t\t\t\t{table.getRowModel().rows?.length ? (\n\t\t\t\t\t\ttable.getRowModel().rows.map((row) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\t\t\tdata-state={row.getIsSelected() && \"selected\"}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{row.getVisibleCells().map((cell) => (\n\t\t\t\t\t\t\t\t\t<TableCell\n\t\t\t\t\t\t\t\t\t\tclassName=\"border\"\n\t\t\t\t\t\t\t\t\t\tkey={cell.id}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.getIndex() ===\n\t\t\t\t\t\t\t\t\t\t\t\trow.getVisibleCells().length - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"w-full\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: cell.column.getSize(),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\n\t\t\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t\t))\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TableRow>\n\t\t\t\t\t\t\t<TableCell colSpan={columns.length} className=\"h-24 text-center\">\n\t\t\t\t\t\t\t\tNo results.\n\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t</TableRow>\n\t\t\t\t\t)}\n\t\t\t\t</TableBody>\n\t\t\t</Table>\n\t\t</div>\n\t);\n}\n\nexport type { ColumnDef, AccessorKeyColumnDef };\n"],"names":["flexRender","getCoreRowModel","useReactTable","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","DataTable","columns","data","stickyHeader","table","columnResizeMode","enableColumnResizing","div","className","getHeaderGroups","map","headerGroup","headers","header","style","width","column","getIndex","length","getSize","isPlaceholder","columnDef","getContext","getCanResize","onMouseDown","getResizeHandler","onTouchStart","userSelect","touchAction","id","getRowModel","rows","row","data-state","getIsSelected","getVisibleCells","cell","colSpan"],"mappings":"AAAA;;AAEA,SAGCA,UAAU,EACVC,eAAe,EACfC,aAAa,QACP,wBAAwB;AAE/B,SACCC,KAAK,EACLC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,WAAW,EACXC,QAAQ,QACF,mCAAgC;AAQvC,OAAO,SAASC,UAAiB,EAChCC,OAAO,EACPC,IAAI,EACJC,eAAe,KAAK,EACG;IACvB;IACA,MAAMC,QAAQX,cAAc;QAC3BS;QACAD;QACAT,iBAAiBA;QACjBa,kBAAkB;QAClBC,sBAAsB;IACvB;IAEA,qBACC,KAACC;QAAIC,WAAU;kBACd,cAAA,MAACd;YAAMc,WAAU;;8BAChB,KAACV;8BACCM,MAAMK,eAAe,GAAGC,GAAG,CAAC,CAACC,4BAC7B,KAACZ;sCACCY,YAAYC,OAAO,CAACF,GAAG,CAAC,CAACG;gCACzB,qBACC,MAAChB;oCAEAW,WAAW,CAAC,sBAAsB,EAAEL,eAAe,8DAA8D,IAAI;oCACrHW,OAAO;wCACNC,OACCF,OAAOG,MAAM,CAACC,QAAQ,OACtBN,YAAYC,OAAO,CAACM,MAAM,GAAG,IAC1B,WACAL,OAAOM,OAAO;oCACnB;;wCAECN,OAAOO,aAAa,GAClB,OACA7B,WACAsB,OAAOG,MAAM,CAACK,SAAS,CAACR,MAAM,EAC9BA,OAAOS,UAAU;wCAEnBT,OAAOG,MAAM,CAACO,YAAY,oBAC1B,KAAChB;4CAECiB,aAAaX,OAAOY,gBAAgB;4CACpCC,cAAcb,OAAOY,gBAAgB;4CACrCjB,WAAW,CAAC,0HAA0H,CAAC;4CACvIM,OAAO;gDACNa,YAAY;gDACZC,aAAa;4CACd;;;mCAzBEf,OAAOgB,EAAE;4BA+BjB;2BAnCclB,YAAYkB,EAAE;;8BAuC/B,KAAClC;8BACCS,MAAM0B,WAAW,GAAGC,IAAI,EAAEb,SAC1Bd,MAAM0B,WAAW,GAAGC,IAAI,CAACrB,GAAG,CAAC,CAACsB,oBAC7B,KAACjC;4BAEAkC,cAAYD,IAAIE,aAAa,MAAM;sCAElCF,IAAIG,eAAe,GAAGzB,GAAG,CAAC,CAAC0B,qBAC3B,KAACxC;oCACAY,WAAU;oCAEVM,OAAO;wCACNC,OACCqB,KAAKpB,MAAM,CAACC,QAAQ,OACpBe,IAAIG,eAAe,GAAGjB,MAAM,GAAG,IAC5B,WACAkB,KAAKpB,MAAM,CAACG,OAAO;oCACxB;8CAEC5B,WAAW6C,KAAKpB,MAAM,CAACK,SAAS,CAACe,IAAI,EAAEA,KAAKd,UAAU;mCATlDc,KAAKP,EAAE;2BANTG,IAAIH,EAAE,mBAqBb,KAAC9B;kCACA,cAAA,KAACH;4BAAUyC,SAASpC,QAAQiB,MAAM;4BAAEV,WAAU;sCAAmB;;;;;;;AASxE"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
2
|
import { DataTable } from "./data-table";
|
|
3
|
-
|
|
3
|
+
type Data = {
|
|
4
|
+
name: string;
|
|
5
|
+
age: number;
|
|
6
|
+
};
|
|
7
|
+
declare const meta: Meta<typeof DataTable<Data>>;
|
|
4
8
|
export default meta;
|
|
5
|
-
type Story = StoryObj<typeof
|
|
9
|
+
type Story = StoryObj<typeof meta>;
|
|
6
10
|
export declare const Default: Story;
|
|
7
11
|
//# sourceMappingURL=data-table.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.stories.d.ts","sourceRoot":"","sources":["../../../src/components/data-table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAE9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"data-table.stories.d.ts","sourceRoot":"","sources":["../../../src/components/data-table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAE9D,KAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,CAItC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAMnC,eAAO,MAAM,OAAO,EAAE,KAqErB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/data-table.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { DataTable, type DataTableProps } from \"./data-table\";\n\nconst meta: Meta<typeof DataTable
|
|
1
|
+
{"version":3,"sources":["../../../src/components/data-table.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { DataTable, type DataTableProps } from \"./data-table\";\n\ntype Data = {\n\tname: string;\n\tage: number;\n};\n\nconst meta: Meta<typeof DataTable<Data>> = {\n\ttitle: \"Component/Data table\",\n\tcomponent: DataTable<Data>,\n\ttags: [\"autodocs\"],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nfunction DataTableWrapper({ columns, data }: DataTableProps<Data>) {\n\treturn <DataTable columns={columns} data={data} />;\n}\n\nexport const Default: Story = {\n\targs: {\n\t\tcolumns: [\n\t\t\t{\n\t\t\t\theader: \"Name\",\n\t\t\t\taccessorKey: \"name\",\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Age\",\n\t\t\t\taccessorKey: \"age\",\n\t\t\t},\n\t\t],\n\t\tdata: [\n\t\t\t{ name: \"John Doe\", age: 30 },\n\t\t\t{ name: \"Jane Smith\", age: 25 },\n\t\t\t{ name: \"Bob Johnson\", age: 42 },\n\t\t\t{ name: \"Alice Williams\", age: 35 },\n\t\t\t{ name: \"Charlie Brown\", age: 28 },\n\t\t\t{ name: \"Diana Prince\", age: 31 },\n\t\t\t{ name: \"Edward Norton\", age: 45 },\n\t\t\t{ name: \"Fiona Green\", age: 27 },\n\t\t\t{ name: \"George Miller\", age: 38 },\n\t\t\t{ name: \"Hannah Davis\", age: 33 },\n\t\t\t{ name: \"Ian Moore\", age: 29 },\n\t\t\t{ name: \"Julia Taylor\", age: 41 },\n\t\t\t{ name: \"Kevin Anderson\", age: 36 },\n\t\t\t{ name: \"Laura Thomas\", age: 32 },\n\t\t\t{ name: \"Michael Jackson\", age: 44 },\n\t\t\t{ name: \"Nancy Wilson\", age: 26 },\n\t\t\t{ name: \"Oscar Martinez\", age: 39 },\n\t\t\t{ name: \"Patricia Lee\", age: 34 },\n\t\t\t{ name: \"Quinn Harris\", age: 37 },\n\t\t\t{ name: \"Rachel Clark\", age: 40 },\n\t\t\t{ name: \"Samuel Wright\", age: 43 },\n\t\t\t{ name: \"Tina Turner\", age: 48 },\n\t\t\t{ name: \"Ulysses Grant\", age: 52 },\n\t\t\t{ name: \"Victoria Baker\", age: 29 },\n\t\t\t{ name: \"William Scott\", age: 35 },\n\t\t\t{ name: \"Xavier Adams\", age: 31 },\n\t\t\t{ name: \"Yolanda King\", age: 38 },\n\t\t\t{ name: \"Zachary Nelson\", age: 27 },\n\t\t\t{ name: \"Amy Carter\", age: 33 },\n\t\t\t{ name: \"Benjamin Hall\", age: 46 },\n\t\t\t{ name: \"Catherine Allen\", age: 24 },\n\t\t\t{ name: \"David Young\", age: 41 },\n\t\t\t{ name: \"Emily Walker\", age: 36 },\n\t\t\t{ name: \"Frank Robinson\", age: 39 },\n\t\t\t{ name: \"Grace White\", age: 28 },\n\t\t\t{ name: \"Henry Lewis\", age: 47 },\n\t\t\t{ name: \"Isabella Hill\", age: 32 },\n\t\t\t{ name: \"Jack Martin\", age: 34 },\n\t\t\t{ name: \"Katherine Garcia\", age: 30 },\n\t\t\t{ name: \"Louis Rodriguez\", age: 45 },\n\t\t\t{ name: \"Margaret Martinez\", age: 37 },\n\t\t\t{ name: \"Nathan Hernandez\", age: 26 },\n\t\t\t{ name: \"Olivia Lopez\", age: 29 },\n\t\t\t{ name: \"Peter Gonzalez\", age: 43 },\n\t\t\t{ name: \"Quincy Wilson\", age: 38 },\n\t\t\t{ name: \"Rebecca Anderson\", age: 31 },\n\t\t\t{ name: \"Steven Thomas\", age: 44 },\n\t\t\t{ name: \"Teresa Taylor\", age: 35 },\n\t\t\t{ name: \"Ursula Moore\", age: 40 },\n\t\t\t{ name: \"Victor Jackson\", age: 42 },\n\t\t],\n\t},\n\tparameters: {\n\t\tlayout: \"fullscreen\",\n\t},\n\trender: (args) => <DataTableWrapper {...args} />,\n};\n"],"names":["DataTable","meta","title","component","tags","DataTableWrapper","columns","data","Default","args","header","accessorKey","name","age","parameters","layout","render"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-line-editor.d.ts","sourceRoot":"","sources":["../../../src/components/request-line-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAgBpC,QAAA,MAAM,qBAAqB;;
|
|
1
|
+
{"version":3,"file":"request-line-editor.d.ts","sourceRoot":"","sources":["../../../src/components/request-line-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAgBpC,QAAA,MAAM,qBAAqB;;8EAsB1B,CAAC;AAyCF,KAAK,sBAAsB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iBAAS,iBAAiB,CAAC,EAC1B,SAAS,EACT,MAAM,EACN,cAAc,EACd,IAAI,EACJ,WAAW,EACX,SAAS,EACT,YAAY,GACZ,EAAE,sBAAsB,2CAoCxB;AAED,OAAO,EACN,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,qBAAqB,GACrB,CAAC"}
|
|
@@ -12,7 +12,7 @@ const METHODS = [
|
|
|
12
12
|
"PATCH",
|
|
13
13
|
"DELETE"
|
|
14
14
|
];
|
|
15
|
-
const requestMethodVariants = cva(cn("border-r-0", "rounded-r-none", "shadow-none", "typo-label", "text-left", "items-center", "w-26"), {
|
|
15
|
+
const requestMethodVariants = cva(cn("cursor-pointer", "border-r-0", "rounded-r-none", "shadow-none", "typo-label", "text-left", "items-center", "w-26"), {
|
|
16
16
|
variants: {
|
|
17
17
|
method: {
|
|
18
18
|
GET: "text-utility-green [&_svg]:text-utility-green",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/request-line-editor.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { toast } from \"sonner\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from \"#shadcn/components/ui/select\";\nimport { cn } from \"#shadcn/lib/utils\";\nimport { CopyIcon } from \"./copy-icon\";\n\nconst METHODS = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"] as const;\ntype RequestMethod = (typeof METHODS)[number];\n\nconst requestMethodVariants = cva<{ method: { [K in RequestMethod]: string } }>(\n\tcn(\n\t\t\"border-r-0\",\n\t\t\"rounded-r-none\",\n\t\t\"shadow-none\",\n\t\t\"typo-label\",\n\t\t\"text-left\",\n\t\t\"items-center\",\n\t\t\"w-26\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\tmethod: {\n\t\t\t\tGET: \"text-utility-green [&_svg]:text-utility-green\",\n\t\t\t\tPOST: \"text-utility-yellow [&_svg]:text-utility-yellow\",\n\t\t\t\tPUT: \"text-utility-blue [&_svg]:text-utility-blue \",\n\t\t\t\tPATCH: \"text-utility-violet [&_svg]:text-utility-violet\",\n\t\t\t\tDELETE: \"text-utility-red [&_svg]:text-utility-red\",\n\t\t\t},\n\t\t},\n\t},\n);\n\ntype RequestMethodSelectorProps = {\n\tvalue: string;\n\tonValueChange?: (newMethod: string) => void;\n};\n\nfunction isKnownMethod(candidate: string): candidate is RequestMethod {\n\tconst methods: readonly string[] = METHODS;\n\treturn methods.includes(candidate);\n}\n\nfunction RequestMethodSelector({\n\tvalue,\n\tonValueChange,\n}: RequestMethodSelectorProps) {\n\treturn (\n\t\t<Select\n\t\t\tvalue={value}\n\t\t\t{...(onValueChange ? { onValueChange: onValueChange } : {})}\n\t\t>\n\t\t\t<SelectTrigger\n\t\t\t\tclassName={requestMethodVariants(\n\t\t\t\t\tisKnownMethod(value) ? { method: value } : undefined,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<SelectValue>{value}</SelectValue>\n\t\t\t</SelectTrigger>\n\t\t\t<SelectContent>\n\t\t\t\t{METHODS.map((method) => (\n\t\t\t\t\t<SelectItem key={method} value={method}>\n\t\t\t\t\t\t<span className={requestMethodVariants({ method: method })}>\n\t\t\t\t\t\t\t{method}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</SelectItem>\n\t\t\t\t))}\n\t\t\t</SelectContent>\n\t\t</Select>\n\t);\n}\n\ntype RequestLineEditorProps = {\n\tmethod: string;\n\tplaceholder?: string;\n\tautoFocus?: boolean;\n\tonMethodChange: (newMethod: string) => void;\n\tpath?: string | undefined;\n\tonPathChange?: React.ChangeEventHandler<HTMLInputElement>;\n\tclassName?: string;\n};\n\nfunction RequestLineEditor({\n\tclassName,\n\tmethod,\n\tonMethodChange,\n\tpath,\n\tplaceholder,\n\tautoFocus,\n\tonPathChange,\n}: RequestLineEditorProps) {\n\treturn (\n\t\t<div className={cn(\"flex\", className)}>\n\t\t\t<RequestMethodSelector value={method} onValueChange={onMethodChange} />\n\t\t\t<Input\n\t\t\t\tclassName=\"rounded-l-none\"\n\t\t\t\tvalue={path}\n\t\t\t\tautoFocus={autoFocus}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\trightSlot={\n\t\t\t\t\t<CopyIcon\n\t\t\t\t\t\ttext={`${method} ${path}`}\n\t\t\t\t\t\ttooltipText=\"Copy request line\"\n\t\t\t\t\t\tshowToast={false}\n\t\t\t\t\t\tonCopy={(text) => {\n\t\t\t\t\t\t\t// Custom toast for request line\n\t\t\t\t\t\t\tconst truncatedText =\n\t\t\t\t\t\t\t\ttext.length > 30 ? `${text.slice(0, 30)}...` : text;\n\t\t\t\t\t\t\ttoast(\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t\t\t\t<span className=\"typo-body\">Request line copied</span>\n\t\t\t\t\t\t\t\t\t<span className=\"typo-code text-text-secondary\">\n\t\t\t\t\t\t\t\t\t\t{truncatedText}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t{...(onPathChange !== undefined ? { onChange: onPathChange } : {})}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport {\n\tRequestLineEditor,\n\ttype RequestLineEditorProps,\n\trequestMethodVariants,\n};\n"],"names":["cva","toast","Input","Select","SelectContent","SelectItem","SelectTrigger","SelectValue","cn","CopyIcon","METHODS","requestMethodVariants","variants","method","GET","POST","PUT","PATCH","DELETE","isKnownMethod","candidate","methods","includes","RequestMethodSelector","value","onValueChange","className","undefined","map","span","RequestLineEditor","onMethodChange","path","placeholder","autoFocus","onPathChange","div","rightSlot","text","tooltipText","showToast","onCopy","truncatedText","length","slice","duration","onChange"],"mappings":";AAAA,SAASA,GAAG,QAAQ,2BAA2B;AAE/C,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,KAAK,QAAQ,mCAA8B;AACpD,SACCC,MAAM,EACNC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,WAAW,QACL,oCAA+B;AACtC,SAASC,EAAE,QAAQ,yBAAoB;AACvC,SAASC,QAAQ,QAAQ,iBAAc;AAEvC,MAAMC,UAAU;IAAC;IAAO;IAAQ;IAAO;IAAS;CAAS;AAGzD,MAAMC,wBAAwBX,IAC7BQ,GACC,cACA,kBACA,eACA,cACA,aACA,gBACA,SAED;IACCI,UAAU;QACTC,QAAQ;YACPC,KAAK;YACLC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,QAAQ;QACT;IACD;AACD;AAQD,SAASC,cAAcC,SAAiB;IACvC,MAAMC,UAA6BX;IACnC,OAAOW,QAAQC,QAAQ,CAACF;AACzB;AAEA,SAASG,sBAAsB,EAC9BC,KAAK,EACLC,aAAa,EACe;IAC5B,qBACC,MAACtB;QACAqB,OAAOA;QACN,GAAIC,gBAAgB;YAAEA,eAAeA;QAAc,IAAI,CAAC,CAAC;;0BAE1D,KAACnB;gBACAoB,WAAWf,sBACVQ,cAAcK,SAAS;oBAAEX,QAAQW;gBAAM,IAAIG;0BAG5C,cAAA,KAACpB;8BAAaiB;;;0BAEf,KAACpB;0BACCM,QAAQkB,GAAG,CAAC,CAACf,uBACb,KAACR;wBAAwBmB,OAAOX;kCAC/B,cAAA,KAACgB;4BAAKH,WAAWf,sBAAsB;gCAAEE,QAAQA;4BAAO;sCACtDA;;uBAFcA;;;;AAStB;AAYA,SAASiB,kBAAkB,EAC1BJ,SAAS,EACTb,MAAM,EACNkB,cAAc,EACdC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,YAAY,EACY;IACxB,qBACC,MAACC;QAAIV,WAAWlB,GAAG,QAAQkB;;0BAC1B,KAACH;gBAAsBC,OAAOX;gBAAQY,eAAeM;;0BACrD,KAAC7B;gBACAwB,WAAU;gBACVF,OAAOQ;gBACPE,WAAWA;gBACXD,aAAaA;gBACbI,yBACC,KAAC5B;oBACA6B,MAAM,GAAGzB,OAAO,CAAC,EAAEmB,MAAM;oBACzBO,aAAY;oBACZC,WAAW;oBACXC,QAAQ,CAACH;wBACR,gCAAgC;wBAChC,MAAMI,gBACLJ,KAAKK,MAAM,GAAG,KAAK,GAAGL,KAAKM,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAGN;wBAChDrC,oBACC,MAACmC;4BAAIV,WAAU;;8CACd,KAACG;oCAAKH,WAAU;8CAAY;;8CAC5B,KAACG;oCAAKH,WAAU;8CACdgB;;;4BAGH;4BACCG,UAAU;wBACX;oBAEF;;gBAGD,GAAIV,iBAAiBR,YAAY;oBAAEmB,UAAUX;gBAAa,IAAI,CAAC,CAAC;;;;AAIrE;AAEA,SACCL,iBAAiB,EAEjBnB,qBAAqB,GACpB"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/request-line-editor.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { toast } from \"sonner\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from \"#shadcn/components/ui/select\";\nimport { cn } from \"#shadcn/lib/utils\";\nimport { CopyIcon } from \"./copy-icon\";\n\nconst METHODS = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"] as const;\ntype RequestMethod = (typeof METHODS)[number];\n\nconst requestMethodVariants = cva<{ method: { [K in RequestMethod]: string } }>(\n\tcn(\n\t\t\"cursor-pointer\",\n\t\t\"border-r-0\",\n\t\t\"rounded-r-none\",\n\t\t\"shadow-none\",\n\t\t\"typo-label\",\n\t\t\"text-left\",\n\t\t\"items-center\",\n\t\t\"w-26\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\tmethod: {\n\t\t\t\tGET: \"text-utility-green [&_svg]:text-utility-green\",\n\t\t\t\tPOST: \"text-utility-yellow [&_svg]:text-utility-yellow\",\n\t\t\t\tPUT: \"text-utility-blue [&_svg]:text-utility-blue \",\n\t\t\t\tPATCH: \"text-utility-violet [&_svg]:text-utility-violet\",\n\t\t\t\tDELETE: \"text-utility-red [&_svg]:text-utility-red\",\n\t\t\t},\n\t\t},\n\t},\n);\n\ntype RequestMethodSelectorProps = {\n\tvalue: string;\n\tonValueChange?: (newMethod: string) => void;\n};\n\nfunction isKnownMethod(candidate: string): candidate is RequestMethod {\n\tconst methods: readonly string[] = METHODS;\n\treturn methods.includes(candidate);\n}\n\nfunction RequestMethodSelector({\n\tvalue,\n\tonValueChange,\n}: RequestMethodSelectorProps) {\n\treturn (\n\t\t<Select\n\t\t\tvalue={value}\n\t\t\t{...(onValueChange ? { onValueChange: onValueChange } : {})}\n\t\t>\n\t\t\t<SelectTrigger\n\t\t\t\tclassName={requestMethodVariants(\n\t\t\t\t\tisKnownMethod(value) ? { method: value } : undefined,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<SelectValue>{value}</SelectValue>\n\t\t\t</SelectTrigger>\n\t\t\t<SelectContent>\n\t\t\t\t{METHODS.map((method) => (\n\t\t\t\t\t<SelectItem key={method} value={method}>\n\t\t\t\t\t\t<span className={requestMethodVariants({ method: method })}>\n\t\t\t\t\t\t\t{method}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</SelectItem>\n\t\t\t\t))}\n\t\t\t</SelectContent>\n\t\t</Select>\n\t);\n}\n\ntype RequestLineEditorProps = {\n\tmethod: string;\n\tplaceholder?: string;\n\tautoFocus?: boolean;\n\tonMethodChange: (newMethod: string) => void;\n\tpath?: string | undefined;\n\tonPathChange?: React.ChangeEventHandler<HTMLInputElement>;\n\tclassName?: string;\n};\n\nfunction RequestLineEditor({\n\tclassName,\n\tmethod,\n\tonMethodChange,\n\tpath,\n\tplaceholder,\n\tautoFocus,\n\tonPathChange,\n}: RequestLineEditorProps) {\n\treturn (\n\t\t<div className={cn(\"flex\", className)}>\n\t\t\t<RequestMethodSelector value={method} onValueChange={onMethodChange} />\n\t\t\t<Input\n\t\t\t\tclassName=\"rounded-l-none\"\n\t\t\t\tvalue={path}\n\t\t\t\tautoFocus={autoFocus}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\trightSlot={\n\t\t\t\t\t<CopyIcon\n\t\t\t\t\t\ttext={`${method} ${path}`}\n\t\t\t\t\t\ttooltipText=\"Copy request line\"\n\t\t\t\t\t\tshowToast={false}\n\t\t\t\t\t\tonCopy={(text) => {\n\t\t\t\t\t\t\t// Custom toast for request line\n\t\t\t\t\t\t\tconst truncatedText =\n\t\t\t\t\t\t\t\ttext.length > 30 ? `${text.slice(0, 30)}...` : text;\n\t\t\t\t\t\t\ttoast(\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t\t\t\t<span className=\"typo-body\">Request line copied</span>\n\t\t\t\t\t\t\t\t\t<span className=\"typo-code text-text-secondary\">\n\t\t\t\t\t\t\t\t\t\t{truncatedText}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t{...(onPathChange !== undefined ? { onChange: onPathChange } : {})}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport {\n\tRequestLineEditor,\n\ttype RequestLineEditorProps,\n\trequestMethodVariants,\n};\n"],"names":["cva","toast","Input","Select","SelectContent","SelectItem","SelectTrigger","SelectValue","cn","CopyIcon","METHODS","requestMethodVariants","variants","method","GET","POST","PUT","PATCH","DELETE","isKnownMethod","candidate","methods","includes","RequestMethodSelector","value","onValueChange","className","undefined","map","span","RequestLineEditor","onMethodChange","path","placeholder","autoFocus","onPathChange","div","rightSlot","text","tooltipText","showToast","onCopy","truncatedText","length","slice","duration","onChange"],"mappings":";AAAA,SAASA,GAAG,QAAQ,2BAA2B;AAE/C,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,KAAK,QAAQ,mCAA8B;AACpD,SACCC,MAAM,EACNC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,WAAW,QACL,oCAA+B;AACtC,SAASC,EAAE,QAAQ,yBAAoB;AACvC,SAASC,QAAQ,QAAQ,iBAAc;AAEvC,MAAMC,UAAU;IAAC;IAAO;IAAQ;IAAO;IAAS;CAAS;AAGzD,MAAMC,wBAAwBX,IAC7BQ,GACC,kBACA,cACA,kBACA,eACA,cACA,aACA,gBACA,SAED;IACCI,UAAU;QACTC,QAAQ;YACPC,KAAK;YACLC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,QAAQ;QACT;IACD;AACD;AAQD,SAASC,cAAcC,SAAiB;IACvC,MAAMC,UAA6BX;IACnC,OAAOW,QAAQC,QAAQ,CAACF;AACzB;AAEA,SAASG,sBAAsB,EAC9BC,KAAK,EACLC,aAAa,EACe;IAC5B,qBACC,MAACtB;QACAqB,OAAOA;QACN,GAAIC,gBAAgB;YAAEA,eAAeA;QAAc,IAAI,CAAC,CAAC;;0BAE1D,KAACnB;gBACAoB,WAAWf,sBACVQ,cAAcK,SAAS;oBAAEX,QAAQW;gBAAM,IAAIG;0BAG5C,cAAA,KAACpB;8BAAaiB;;;0BAEf,KAACpB;0BACCM,QAAQkB,GAAG,CAAC,CAACf,uBACb,KAACR;wBAAwBmB,OAAOX;kCAC/B,cAAA,KAACgB;4BAAKH,WAAWf,sBAAsB;gCAAEE,QAAQA;4BAAO;sCACtDA;;uBAFcA;;;;AAStB;AAYA,SAASiB,kBAAkB,EAC1BJ,SAAS,EACTb,MAAM,EACNkB,cAAc,EACdC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,YAAY,EACY;IACxB,qBACC,MAACC;QAAIV,WAAWlB,GAAG,QAAQkB;;0BAC1B,KAACH;gBAAsBC,OAAOX;gBAAQY,eAAeM;;0BACrD,KAAC7B;gBACAwB,WAAU;gBACVF,OAAOQ;gBACPE,WAAWA;gBACXD,aAAaA;gBACbI,yBACC,KAAC5B;oBACA6B,MAAM,GAAGzB,OAAO,CAAC,EAAEmB,MAAM;oBACzBO,aAAY;oBACZC,WAAW;oBACXC,QAAQ,CAACH;wBACR,gCAAgC;wBAChC,MAAMI,gBACLJ,KAAKK,MAAM,GAAG,KAAK,GAAGL,KAAKM,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAGN;wBAChDrC,oBACC,MAACmC;4BAAIV,WAAU;;8CACd,KAACG;oCAAKH,WAAU;8CAAY;;8CAC5B,KAACG;oCAAKH,WAAU;8CACdgB;;;4BAGH;4BACCG,UAAU;wBACX;oBAEF;;gBAGD,GAAIV,iBAAiBR,YAAY;oBAAEmB,UAAUX;gBAAa,IAAI,CAAC,CAAC;;;;AAIrE;AAEA,SACCL,iBAAiB,EAEjBnB,qBAAqB,GACpB"}
|
|
@@ -54,7 +54,7 @@ const commandSeparatorStyles = cn(// Layout
|
|
|
54
54
|
"bg-border-separator");
|
|
55
55
|
// Command Item
|
|
56
56
|
const commandItemStyles = cn(// Layout
|
|
57
|
-
"relative", "flex", "cursor-
|
|
57
|
+
"relative", "flex", "cursor-pointer", "items-center", "gap-2", "rounded-md", "px-2", "py-1.5", "select-none", // Typography
|
|
58
58
|
"typo-body", // Colors
|
|
59
59
|
"text-text-primary", // States
|
|
60
60
|
"outline-hidden", "data-[state=checked]:bg-bg-tertiary", "group-hover:data-[state=checked]:bg-transparent", "hover:bg-bg-tertiary", "data-[state=checked]:text-text-primary", "data-[disabled=true]:pointer-events-none", "data-[disabled=true]:opacity-50", // SVG styles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/command.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from \"cmdk\";\nimport { SearchIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport {\n\tDialog,\n\tDialogContent,\n\tDialogDescription,\n\tDialogHeader,\n\tDialogTitle,\n} from \"#shadcn/components/ui/dialog\";\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Command Root\nconst commandStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"h-full\",\n\t\"w-full\",\n\t\"flex-col\",\n\t\"overflow-hidden\",\n\t\"rounded-md\",\n\t// Colors\n\t\"bg-bg-primary\",\n\t\"text-text-primary\",\n);\n\n// Command Dialog\nconst commandDialogContentStyles = cn(\n\t// Layout\n\t\"overflow-hidden\",\n\t\"p-0\",\n);\n\nconst commandDialogCommandStyles = cn(\n\t// Group headings\n\t\"[&_[cmdk-group-heading]]:text-muted-foreground\",\n\t\"[&_[cmdk-group-heading]]:px-2\",\n\t\"[&_[cmdk-group-heading]]:font-medium\",\n\t// Groups\n\t\"[&_[cmdk-group]]:px-2\",\n\t\"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n\t// Input wrapper\n\t\"[&_[cmdk-input-wrapper]]:h-12\",\n\t\"**:data-[slot=command-input-wrapper]:h-12\",\n\t// Input wrapper SVG\n\t\"[&_[cmdk-input-wrapper]_svg]:h-5\",\n\t\"[&_[cmdk-input-wrapper]_svg]:w-5\",\n\t// Input\n\t\"[&_[cmdk-input]]:h-12\",\n\t// Items\n\t\"[&_[cmdk-item]]:px-2\",\n\t\"[&_[cmdk-item]]:py-3\",\n\t// Item SVG\n\t\"[&_[cmdk-item]_svg]:h-5\",\n\t\"[&_[cmdk-item]_svg]:w-5\",\n);\n\n// Command Input Wrapper\nconst commandInputWrapperStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"h-9\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"px-3\",\n\t// Border\n\t\"border-b\",\n\t\"border-border-separator\",\n\t// Animation\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Command Input Icon\nconst commandInputIconStyles = cn(\n\t// Size\n\t\"size-4\",\n\t\"shrink-0\",\n\t// Colors\n\t\"text-text-tertiary\",\n);\n\n// Command Input\nconst commandInputStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"h-10\",\n\t\"w-full\",\n\t\"rounded-md\",\n\t\"py-3\",\n\t// Background\n\t\"bg-transparent\",\n\t// Typography\n\t\"typo-body\",\n\t// Colors\n\t\"text-text-primary\",\n\t\"placeholder:text-text-quternary\",\n\t\"file:text-text-primary\",\n\t// States\n\t\"outline-hidden\",\n\t\"disabled:cursor-not-allowed\",\n\t\"disabled:opacity-50\",\n);\n\n// Command List\nconst commandListStyles = cn(\n\t// Layout\n\t\"max-h-[300px]\",\n\t\"scroll-py-1\",\n\t// Overflow\n\t\"overflow-x-hidden\",\n\t\"overflow-y-auto\",\n\t\"p-2\",\n);\n\n// Command Empty\nconst commandEmptyStyles = cn(\n\t// Layout\n\t\"py-6\",\n\t\"text-center\",\n\t// Typography\n\t\"typo-body\",\n\t// Colors\n\t\"text-text-tertiary\",\n);\n\n// Command Group\nconst commandGroupStyles = cn(\n\t// Layout\n\t\"overflow-hidden\",\n\t\"p-1\",\n\t\"group\",\n\t// Colors\n\t\"text-text-tertiary\",\n\t// Group heading styles\n\t\"[&_[cmdk-group-heading]]:text-text-quaternary\",\n\t\"[&_[cmdk-group-heading]]:px-2\",\n\t\"[&_[cmdk-group-heading]]:py-1.5\",\n\t\"[&_[cmdk-group-heading]]:text-xs\",\n);\n\n// Command Separator\nconst commandSeparatorStyles = cn(\n\t// Layout\n\t\"-mx-1\",\n\t\"h-px\",\n\t// Colors\n\t\"bg-border-separator\",\n);\n\n// Command Item\nconst commandItemStyles = cn(\n\t// Layout\n\t\"relative\",\n\t\"flex\",\n\t\"cursor-default\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"rounded-md\",\n\t\"px-2\",\n\t\"py-1.5\",\n\t\"select-none\",\n\t// Typography\n\t\"typo-body\",\n\t// Colors\n\t\"text-text-primary\",\n\t// States\n\t\"outline-hidden\",\n\t\"data-[state=checked]:bg-bg-tertiary\",\n\t\"group-hover:data-[state=checked]:bg-transparent\",\n\t\"hover:bg-bg-tertiary\",\n\t\"data-[state=checked]:text-text-primary\",\n\t\"data-[disabled=true]:pointer-events-none\",\n\t\"data-[disabled=true]:opacity-50\",\n\t// SVG styles\n\t\"[&_svg:not([class*='text-'])]:text-text-quaternary\",\n\t\"[&_svg]:pointer-events-none\",\n\t\"[&_svg]:shrink-0\",\n\t\"[&_svg:not([class*='size-'])]:size-4\",\n);\n\n// Command Shortcut\nconst commandShortcutStyles = cn(\n\t// Layout\n\t\"ml-auto\",\n\t// Typography\n\t\"typo-body\",\n\t\"tracking-widest\",\n\t// Colors\n\t\"text-text-quaternary\",\n);\n\nfunction Command({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n\treturn (\n\t\t<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn(commandStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandDialog({\n\ttitle = \"Command Palette\",\n\tdescription = \"Search for a command to run...\",\n\tchildren,\n\tclassName,\n\tshowCloseButton = true,\n\t...props\n}: React.ComponentProps<typeof Dialog> & {\n\ttitle?: string;\n\tdescription?: string;\n\tclassName?: string;\n\tshowCloseButton?: boolean;\n}) {\n\treturn (\n\t\t<Dialog {...props}>\n\t\t\t<DialogHeader className=\"sr-only\">\n\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t</DialogHeader>\n\t\t\t<DialogContent\n\t\t\t\tclassName={cn(commandDialogContentStyles, className)}\n\t\t\t\tshowCloseButton={showCloseButton}\n\t\t\t>\n\t\t\t\t<Command className={commandDialogCommandStyles}>{children}</Command>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n\nfunction CommandInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"command-input-wrapper\"\n\t\t\tclassName={commandInputWrapperStyles}\n\t\t>\n\t\t\t<SearchIcon className={commandInputIconStyles} />\n\t\t\t<CommandPrimitive.Input\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclassName={cn(commandInputStyles, className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction CommandList({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n\treturn (\n\t\t<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn(commandListStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandEmpty({\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n\treturn (\n\t\t<CommandPrimitive.Empty\n\t\t\tdata-slot=\"command-empty\"\n\t\t\tclassName={commandEmptyStyles}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n\treturn (\n\t\t<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(commandGroupStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n\treturn (\n\t\t<CommandPrimitive.Separator\n\t\t\tdata-slot=\"command-separator\"\n\t\t\tclassName={cn(commandSeparatorStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n\treturn (\n\t\t<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(commandItemStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandShortcut({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"command-shortcut\"\n\t\t\tclassName={cn(commandShortcutStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tCommand,\n\tCommandDialog,\n\tCommandInput,\n\tCommandList,\n\tCommandEmpty,\n\tCommandGroup,\n\tCommandItem,\n\tCommandShortcut,\n\tCommandSeparator,\n};\n"],"names":["Command","CommandPrimitive","SearchIcon","Dialog","DialogContent","DialogDescription","DialogHeader","DialogTitle","cn","commandStyles","commandDialogContentStyles","commandDialogCommandStyles","commandInputWrapperStyles","commandInputIconStyles","commandInputStyles","commandListStyles","commandEmptyStyles","commandGroupStyles","commandSeparatorStyles","commandItemStyles","commandShortcutStyles","className","props","data-slot","CommandDialog","title","description","children","showCloseButton","CommandInput","div","Input","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","Separator","CommandItem","Item","CommandShortcut","span"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/command.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from \"cmdk\";\nimport { SearchIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport {\n\tDialog,\n\tDialogContent,\n\tDialogDescription,\n\tDialogHeader,\n\tDialogTitle,\n} from \"#shadcn/components/ui/dialog\";\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Command Root\nconst commandStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"h-full\",\n\t\"w-full\",\n\t\"flex-col\",\n\t\"overflow-hidden\",\n\t\"rounded-md\",\n\t// Colors\n\t\"bg-bg-primary\",\n\t\"text-text-primary\",\n);\n\n// Command Dialog\nconst commandDialogContentStyles = cn(\n\t// Layout\n\t\"overflow-hidden\",\n\t\"p-0\",\n);\n\nconst commandDialogCommandStyles = cn(\n\t// Group headings\n\t\"[&_[cmdk-group-heading]]:text-muted-foreground\",\n\t\"[&_[cmdk-group-heading]]:px-2\",\n\t\"[&_[cmdk-group-heading]]:font-medium\",\n\t// Groups\n\t\"[&_[cmdk-group]]:px-2\",\n\t\"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n\t// Input wrapper\n\t\"[&_[cmdk-input-wrapper]]:h-12\",\n\t\"**:data-[slot=command-input-wrapper]:h-12\",\n\t// Input wrapper SVG\n\t\"[&_[cmdk-input-wrapper]_svg]:h-5\",\n\t\"[&_[cmdk-input-wrapper]_svg]:w-5\",\n\t// Input\n\t\"[&_[cmdk-input]]:h-12\",\n\t// Items\n\t\"[&_[cmdk-item]]:px-2\",\n\t\"[&_[cmdk-item]]:py-3\",\n\t// Item SVG\n\t\"[&_[cmdk-item]_svg]:h-5\",\n\t\"[&_[cmdk-item]_svg]:w-5\",\n);\n\n// Command Input Wrapper\nconst commandInputWrapperStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"h-9\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"px-3\",\n\t// Border\n\t\"border-b\",\n\t\"border-border-separator\",\n\t// Animation\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Command Input Icon\nconst commandInputIconStyles = cn(\n\t// Size\n\t\"size-4\",\n\t\"shrink-0\",\n\t// Colors\n\t\"text-text-tertiary\",\n);\n\n// Command Input\nconst commandInputStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"h-10\",\n\t\"w-full\",\n\t\"rounded-md\",\n\t\"py-3\",\n\t// Background\n\t\"bg-transparent\",\n\t// Typography\n\t\"typo-body\",\n\t// Colors\n\t\"text-text-primary\",\n\t\"placeholder:text-text-quternary\",\n\t\"file:text-text-primary\",\n\t// States\n\t\"outline-hidden\",\n\t\"disabled:cursor-not-allowed\",\n\t\"disabled:opacity-50\",\n);\n\n// Command List\nconst commandListStyles = cn(\n\t// Layout\n\t\"max-h-[300px]\",\n\t\"scroll-py-1\",\n\t// Overflow\n\t\"overflow-x-hidden\",\n\t\"overflow-y-auto\",\n\t\"p-2\",\n);\n\n// Command Empty\nconst commandEmptyStyles = cn(\n\t// Layout\n\t\"py-6\",\n\t\"text-center\",\n\t// Typography\n\t\"typo-body\",\n\t// Colors\n\t\"text-text-tertiary\",\n);\n\n// Command Group\nconst commandGroupStyles = cn(\n\t// Layout\n\t\"overflow-hidden\",\n\t\"p-1\",\n\t\"group\",\n\t// Colors\n\t\"text-text-tertiary\",\n\t// Group heading styles\n\t\"[&_[cmdk-group-heading]]:text-text-quaternary\",\n\t\"[&_[cmdk-group-heading]]:px-2\",\n\t\"[&_[cmdk-group-heading]]:py-1.5\",\n\t\"[&_[cmdk-group-heading]]:text-xs\",\n);\n\n// Command Separator\nconst commandSeparatorStyles = cn(\n\t// Layout\n\t\"-mx-1\",\n\t\"h-px\",\n\t// Colors\n\t\"bg-border-separator\",\n);\n\n// Command Item\nconst commandItemStyles = cn(\n\t// Layout\n\t\"relative\",\n\t\"flex\",\n\t\"cursor-pointer\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"rounded-md\",\n\t\"px-2\",\n\t\"py-1.5\",\n\t\"select-none\",\n\t// Typography\n\t\"typo-body\",\n\t// Colors\n\t\"text-text-primary\",\n\t// States\n\t\"outline-hidden\",\n\t\"data-[state=checked]:bg-bg-tertiary\",\n\t\"group-hover:data-[state=checked]:bg-transparent\",\n\t\"hover:bg-bg-tertiary\",\n\t\"data-[state=checked]:text-text-primary\",\n\t\"data-[disabled=true]:pointer-events-none\",\n\t\"data-[disabled=true]:opacity-50\",\n\t// SVG styles\n\t\"[&_svg:not([class*='text-'])]:text-text-quaternary\",\n\t\"[&_svg]:pointer-events-none\",\n\t\"[&_svg]:shrink-0\",\n\t\"[&_svg:not([class*='size-'])]:size-4\",\n);\n\n// Command Shortcut\nconst commandShortcutStyles = cn(\n\t// Layout\n\t\"ml-auto\",\n\t// Typography\n\t\"typo-body\",\n\t\"tracking-widest\",\n\t// Colors\n\t\"text-text-quaternary\",\n);\n\nfunction Command({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n\treturn (\n\t\t<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn(commandStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandDialog({\n\ttitle = \"Command Palette\",\n\tdescription = \"Search for a command to run...\",\n\tchildren,\n\tclassName,\n\tshowCloseButton = true,\n\t...props\n}: React.ComponentProps<typeof Dialog> & {\n\ttitle?: string;\n\tdescription?: string;\n\tclassName?: string;\n\tshowCloseButton?: boolean;\n}) {\n\treturn (\n\t\t<Dialog {...props}>\n\t\t\t<DialogHeader className=\"sr-only\">\n\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t</DialogHeader>\n\t\t\t<DialogContent\n\t\t\t\tclassName={cn(commandDialogContentStyles, className)}\n\t\t\t\tshowCloseButton={showCloseButton}\n\t\t\t>\n\t\t\t\t<Command className={commandDialogCommandStyles}>{children}</Command>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n\nfunction CommandInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"command-input-wrapper\"\n\t\t\tclassName={commandInputWrapperStyles}\n\t\t>\n\t\t\t<SearchIcon className={commandInputIconStyles} />\n\t\t\t<CommandPrimitive.Input\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclassName={cn(commandInputStyles, className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction CommandList({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n\treturn (\n\t\t<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn(commandListStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandEmpty({\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n\treturn (\n\t\t<CommandPrimitive.Empty\n\t\t\tdata-slot=\"command-empty\"\n\t\t\tclassName={commandEmptyStyles}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n\treturn (\n\t\t<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(commandGroupStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n\treturn (\n\t\t<CommandPrimitive.Separator\n\t\t\tdata-slot=\"command-separator\"\n\t\t\tclassName={cn(commandSeparatorStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n\treturn (\n\t\t<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(commandItemStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandShortcut({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"command-shortcut\"\n\t\t\tclassName={cn(commandShortcutStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tCommand,\n\tCommandDialog,\n\tCommandInput,\n\tCommandList,\n\tCommandEmpty,\n\tCommandGroup,\n\tCommandItem,\n\tCommandShortcut,\n\tCommandSeparator,\n};\n"],"names":["Command","CommandPrimitive","SearchIcon","Dialog","DialogContent","DialogDescription","DialogHeader","DialogTitle","cn","commandStyles","commandDialogContentStyles","commandDialogCommandStyles","commandInputWrapperStyles","commandInputIconStyles","commandInputStyles","commandListStyles","commandEmptyStyles","commandGroupStyles","commandSeparatorStyles","commandItemStyles","commandShortcutStyles","className","props","data-slot","CommandDialog","title","description","children","showCloseButton","CommandInput","div","Input","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","Separator","CommandItem","Item","CommandShortcut","span"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AA8DpC,QAAA,MAAM,qBAAqB;;;8EAezB,CAAC;AAEH,iBAAS,MAAM,CAAC,EACf,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED,iBAAS,WAAW,CAAC,EACpB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,WAAW,CAAC,EACpB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,aAAa,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GACtD,YAAY,CAAC,OAAO,qBAAqB,CAAC,2CAa1C;AAED,iBAAS,aAAa,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAuEtD;AAED,iBAAS,WAAW,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAcpD;AAED,iBAAS,UAAU,CAAC,EACnB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAoEnD;AAED,iBAAS,eAAe,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAexD;AAED,iBAAS,oBAAoB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED,iBAAS,sBAAsB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACX,CAAC"}
|
|
@@ -16,7 +16,8 @@ const baseSelectTriggerStyles = cn(// Layout
|
|
|
16
16
|
"data-[placeholder]:text-text-tertiary", // Selection
|
|
17
17
|
"selection:bg-selection", "selection:text-text-primary", // SVG icons
|
|
18
18
|
"[&_svg:not([class*='text-'])]:text-text-tertiary", "[&_svg]:pointer-events-none", "[&_svg]:shrink-0", "[&_svg:not([class*='size-'])]:size-4", // Value styles
|
|
19
|
-
"*:data-[slot=select-value]:line-clamp-1", "*:data-[slot=select-value]:flex", "*:data-[slot=select-value]:items-center", "*:data-[slot=select-value]:gap-2", //
|
|
19
|
+
"*:data-[slot=select-value]:line-clamp-1", "*:data-[slot=select-value]:flex", "*:data-[slot=select-value]:items-center", "*:data-[slot=select-value]:gap-2", // Cursor
|
|
20
|
+
"cursor-pointer", // Disabled
|
|
20
21
|
"disabled:pointer-events-none", "disabled:cursor-not-allowed", "disabled:text-text-disabled", "disabled:bg-bg-disabled", "disabled:border-border-disabled", // Invalid
|
|
21
22
|
"aria-invalid:text-text-error-primary", "aria-invalid:border-border-error", "aria-invalid:ring-2", "aria-invalid:ring-utility-red/70");
|
|
22
23
|
const selectTriggerVariants = cva(baseSelectTriggerStyles, {
|
|
@@ -109,7 +110,7 @@ function SelectItem({ className, children, ...props }) {
|
|
|
109
110
|
return /*#__PURE__*/ _jsxs(SelectPrimitive.Item, {
|
|
110
111
|
"data-slot": "select-item",
|
|
111
112
|
className: cn(// Layout
|
|
112
|
-
"relative", "flex", "w-full", "items-center", "cursor-
|
|
113
|
+
"relative", "flex", "w-full", "items-center", "cursor-pointer", "select-none", // Shape
|
|
113
114
|
"rounded-md", // Spacing
|
|
114
115
|
"py-1.5", "pl-3", "pr-8", "mb-0.5", "last:mb-0", // Typography
|
|
115
116
|
"text-sm", "text-text-primary", // Interaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/select.tsx"],"sourcesContent":["import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Base select trigger styles\nconst baseSelectTriggerStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"w-full\",\n\t\"items-center\",\n\t\"justify-between\",\n\t\"gap-2\",\n\t\"whitespace-nowrap\",\n\t// Shape\n\t\"rounded-md\",\n\t// Borders\n\t\"border\",\n\t\"border-border-primary\",\n\t// Background & Colors\n\t\"bg-transparent\",\n\t\"text-sm\",\n\t// Spacing\n\t\"px-3\",\n\t\"py-2\",\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n\t\"outline-none\",\n\t// Hover\n\t\"hover:border-border-primary_hover\",\n\t// Focus\n\t\"focus-visible:ring-2\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t// Placeholder\n\t\"data-[placeholder]:text-text-tertiary\",\n\t// Selection\n\t\"selection:bg-selection\",\n\t\"selection:text-text-primary\",\n\t// SVG icons\n\t\"[&_svg:not([class*='text-'])]:text-text-tertiary\",\n\t\"[&_svg]:pointer-events-none\",\n\t\"[&_svg]:shrink-0\",\n\t\"[&_svg:not([class*='size-'])]:size-4\",\n\t// Value styles\n\t\"*:data-[slot=select-value]:line-clamp-1\",\n\t\"*:data-[slot=select-value]:flex\",\n\t\"*:data-[slot=select-value]:items-center\",\n\t\"*:data-[slot=select-value]:gap-2\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:cursor-not-allowed\",\n\t\"disabled:text-text-disabled\",\n\t\"disabled:bg-bg-disabled\",\n\t\"disabled:border-border-disabled\",\n\t// Invalid\n\t\"aria-invalid:text-text-error-primary\",\n\t\"aria-invalid:border-border-error\",\n\t\"aria-invalid:ring-2\",\n\t\"aria-invalid:ring-utility-red/70\",\n);\n\nconst selectTriggerVariants = cva(baseSelectTriggerStyles, {\n\tvariants: {\n\t\tsize: {\n\t\t\tregular: cn(\"h-9\"),\n\t\t\tsmall: cn(\"h-8\"),\n\t\t},\n\t\tvariant: {\n\t\t\tdefault: cn(\"\"),\n\t\t\tcompound: cn(\"border-r-0\", \"typo-label\"),\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"regular\",\n\t\tvariant: \"default\",\n\t},\n});\n\nfunction Select({\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n\treturn <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n\treturn <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n\treturn <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n\tclassName,\n\tsize,\n\tvariant,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> &\n\tVariantProps<typeof selectTriggerVariants>) {\n\treturn (\n\t\t<SelectPrimitive.Trigger\n\t\t\tdata-slot=\"select-trigger\"\n\t\t\tclassName={cn(selectTriggerVariants({ variant, size, className }))}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<SelectPrimitive.Icon asChild>\n\t\t\t\t<ChevronDownIcon />\n\t\t\t</SelectPrimitive.Icon>\n\t\t</SelectPrimitive.Trigger>\n\t);\n}\n\nfunction SelectContent({\n\tclassName,\n\tchildren,\n\tposition = \"popper\",\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n\treturn (\n\t\t<SelectPrimitive.Portal>\n\t\t\t<SelectPrimitive.Content\n\t\t\t\tdata-slot=\"select-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// Layout\n\t\t\t\t\t\"relative\",\n\t\t\t\t\t\"z-50\",\n\t\t\t\t\t\"group\",\n\t\t\t\t\t\"min-w-[8rem]\",\n\t\t\t\t\t\"max-h-(--radix-select-content-available-height)\",\n\t\t\t\t\t\"origin-(--radix-select-content-transform-origin)\",\n\t\t\t\t\t\"overflow-x-hidden\",\n\t\t\t\t\t\"overflow-y-auto\",\n\t\t\t\t\t// Shape\n\t\t\t\t\t\"rounded-md\",\n\t\t\t\t\t// Borders\n\t\t\t\t\t\"border\",\n\t\t\t\t\t\"border-border-primary\",\n\t\t\t\t\t// Background & Colors\n\t\t\t\t\t\"bg-bg-primary\",\n\t\t\t\t\t\"text-text-primary\",\n\t\t\t\t\t// Spacing\n\t\t\t\t\t\"py-1\",\n\t\t\t\t\t// Shadow\n\t\t\t\t\t\"shadow-lg\",\n\t\t\t\t\t// Animations - open\n\t\t\t\t\t\"data-[state=open]:animate-in\",\n\t\t\t\t\t\"data-[state=open]:fade-in-0\",\n\t\t\t\t\t\"data-[state=open]:zoom-in-95\",\n\t\t\t\t\t// Animations - closed\n\t\t\t\t\t\"data-[state=closed]:animate-out\",\n\t\t\t\t\t\"data-[state=closed]:fade-out-0\",\n\t\t\t\t\t\"data-[state=closed]:zoom-out-95\",\n\t\t\t\t\t// Slide animations\n\t\t\t\t\t\"data-[side=bottom]:slide-in-from-top-2\",\n\t\t\t\t\t\"data-[side=left]:slide-in-from-right-2\",\n\t\t\t\t\t\"data-[side=right]:slide-in-from-left-2\",\n\t\t\t\t\t\"data-[side=top]:slide-in-from-bottom-2\",\n\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\tcn(\n\t\t\t\t\t\t\t\"data-[side=bottom]:translate-y-1\",\n\t\t\t\t\t\t\t\"data-[side=left]:-translate-x-1\",\n\t\t\t\t\t\t\t\"data-[side=right]:translate-x-1\",\n\t\t\t\t\t\t\t\"data-[side=top]:-translate-y-1\",\n\t\t\t\t\t\t),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tposition={position}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SelectScrollUpButton />\n\t\t\t\t<SelectPrimitive.Viewport\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"p-1\",\n\t\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\t\tcn(\n\t\t\t\t\t\t\t\t\"h-[var(--radix-select-trigger-height)]\",\n\t\t\t\t\t\t\t\t\"w-full\",\n\t\t\t\t\t\t\t\t\"min-w-[var(--radix-select-trigger-width)]\",\n\t\t\t\t\t\t\t\t\"scroll-my-1\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</SelectPrimitive.Viewport>\n\t\t\t\t<SelectScrollDownButton />\n\t\t\t</SelectPrimitive.Content>\n\t\t</SelectPrimitive.Portal>\n\t);\n}\n\nfunction SelectLabel({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n\treturn (\n\t\t<SelectPrimitive.Label\n\t\t\tdata-slot=\"select-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-text-tertiary\",\n\t\t\t\t\"px-2\",\n\t\t\t\t\"py-1.5\",\n\t\t\t\t\"typo-label\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n\treturn (\n\t\t<SelectPrimitive.Item\n\t\t\tdata-slot=\"select-item\"\n\t\t\tclassName={cn(\n\t\t\t\t// Layout\n\t\t\t\t\"relative\",\n\t\t\t\t\"flex\",\n\t\t\t\t\"w-full\",\n\t\t\t\t\"items-center\",\n\t\t\t\t\"cursor-default\",\n\t\t\t\t\"select-none\",\n\t\t\t\t// Shape\n\t\t\t\t\"rounded-md\",\n\t\t\t\t// Spacing\n\t\t\t\t\"py-1.5\",\n\t\t\t\t\"pl-3\",\n\t\t\t\t\"pr-8\",\n\t\t\t\t\"mb-0.5\",\n\t\t\t\t\"last:mb-0\",\n\t\t\t\t// Typography\n\t\t\t\t\"text-sm\",\n\t\t\t\t\"text-text-primary\",\n\t\t\t\t// Interaction\n\t\t\t\t\"outline-hidden\",\n\t\t\t\t// Hover\n\t\t\t\t\"hover:bg-bg-tertiary\",\n\t\t\t\t// Active\n\t\t\t\t\"active:text-text-primary\",\n\t\t\t\t// Focus\n\t\t\t\t\"focus-visible:bg-bg-tertiary\",\n\t\t\t\t// Checked state\n\t\t\t\t\"data-[state=checked]:bg-bg-tertiary\",\n\t\t\t\t\"data-[state=checked]:text-text-primary\",\n\t\t\t\t\"group-hover:data-[state=checked]:bg-transparent\",\n\t\t\t\t// Disabled\n\t\t\t\t\"data-[disabled]:pointer-events-none\",\n\t\t\t\t\"data-[disabled]:opacity-50\",\n\t\t\t\t// SVG icons\n\t\t\t\t\"[&_svg:not([class*='text-'])]:text-text-tertiary\",\n\t\t\t\t\"[&_svg]:pointer-events-none\",\n\t\t\t\t\"[&_svg]:shrink-0\",\n\t\t\t\t\"[&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\t// Span styles\n\t\t\t\t\"*:[span]:last:flex\",\n\t\t\t\t\"*:[span]:last:items-center\",\n\t\t\t\t\"*:[span]:last:gap-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"right-2\",\n\t\t\t\t\t\"flex\",\n\t\t\t\t\t\"size-3.5\",\n\t\t\t\t\t\"items-center\",\n\t\t\t\t\t\"justify-center\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<SelectPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</SelectPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n\t\t</SelectPrimitive.Item>\n\t);\n}\n\nfunction SelectSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n\treturn (\n\t\t<SelectPrimitive.Separator\n\t\t\tdata-slot=\"select-separator\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-border-separator\",\n\t\t\t\t\"pointer-events-none\",\n\t\t\t\t\"-mx-1\",\n\t\t\t\t\"my-1\",\n\t\t\t\t\"h-px\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectScrollUpButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollUpButton\n\t\t\tdata-slot=\"select-scroll-up-button\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex cursor-default items-center justify-center py-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronUpIcon className=\"size-4\" />\n\t\t</SelectPrimitive.ScrollUpButton>\n\t);\n}\n\nfunction SelectScrollDownButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollDownButton\n\t\t\tdata-slot=\"select-scroll-down-button\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex cursor-default items-center justify-center py-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronDownIcon className=\"size-4\" />\n\t\t</SelectPrimitive.ScrollDownButton>\n\t);\n}\n\nexport {\n\tSelect,\n\tSelectContent,\n\tSelectGroup,\n\tSelectItem,\n\tSelectLabel,\n\tSelectScrollDownButton,\n\tSelectScrollUpButton,\n\tSelectSeparator,\n\tSelectTrigger,\n\tSelectValue,\n};\n"],"names":["SelectPrimitive","cva","CheckIcon","ChevronDownIcon","ChevronUpIcon","cn","baseSelectTriggerStyles","selectTriggerVariants","variants","size","regular","small","variant","default","compound","defaultVariants","Select","props","Root","data-slot","SelectGroup","Group","SelectValue","Value","SelectTrigger","className","children","Trigger","Icon","asChild","SelectContent","position","Portal","Content","SelectScrollUpButton","Viewport","SelectScrollDownButton","SelectLabel","Label","SelectItem","Item","span","ItemIndicator","ItemText","SelectSeparator","Separator","ScrollUpButton","ScrollDownButton"],"mappings":";AAAA,YAAYA,qBAAqB,yBAAyB;AAC1D,SAASC,GAAG,QAA2B,2BAA2B;AAClE,SAASC,SAAS,EAAEC,eAAe,EAAEC,aAAa,QAAQ,eAAe;AAEzE,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,6BAA6B;AAC7B,MAAMC,0BAA0BD,GAC/B,SAAS;AACT,QACA,UACA,gBACA,mBACA,SACA,qBACA,QAAQ;AACR,cACA,UAAU;AACV,UACA,yBACA,sBAAsB;AACtB,kBACA,WACA,UAAU;AACV,QACA,QACA,cAAc;AACd,qBACA,gBACA,gBACA,QAAQ;AACR,qCACA,QAAQ;AACR,wBACA,sCACA,cAAc;AACd,yCACA,YAAY;AACZ,0BACA,+BACA,YAAY;AACZ,oDACA,+BACA,oBACA,wCACA,eAAe;AACf,2CACA,mCACA,2CACA,oCACA,WAAW;AACX,gCACA,+BACA,+BACA,2BACA,mCACA,UAAU;AACV,wCACA,oCACA,uBACA;AAGD,MAAME,wBAAwBN,IAAIK,yBAAyB;IAC1DE,UAAU;QACTC,MAAM;YACLC,SAASL,GAAG;YACZM,OAAON,GAAG;QACX;QACAO,SAAS;YACRC,SAASR,GAAG;YACZS,UAAUT,GAAG,cAAc;QAC5B;IACD;IACAU,iBAAiB;QAChBN,MAAM;QACNG,SAAS;IACV;AACD;AAEA,SAASI,OAAO,EACf,GAAGC,OACgD;IACnD,qBAAO,KAACjB,gBAAgBkB,IAAI;QAACC,aAAU;QAAU,GAAGF,KAAK;;AAC1D;AAEA,SAASG,YAAY,EACpB,GAAGH,OACiD;IACpD,qBAAO,KAACjB,gBAAgBqB,KAAK;QAACF,aAAU;QAAgB,GAAGF,KAAK;;AACjE;AAEA,SAASK,YAAY,EACpB,GAAGL,OACiD;IACpD,qBAAO,KAACjB,gBAAgBuB,KAAK;QAACJ,aAAU;QAAgB,GAAGF,KAAK;;AACjE;AAEA,SAASO,cAAc,EACtBC,SAAS,EACThB,IAAI,EACJG,OAAO,EACPc,QAAQ,EACR,GAAGT,OAEuC;IAC1C,qBACC,MAACjB,gBAAgB2B,OAAO;QACvBR,aAAU;QACVM,WAAWpB,GAAGE,sBAAsB;YAAEK;YAASH;YAAMgB;QAAU;QAC9D,GAAGR,KAAK;;YAERS;0BACD,KAAC1B,gBAAgB4B,IAAI;gBAACC,OAAO;0BAC5B,cAAA,KAAC1B;;;;AAIL;AAEA,SAAS2B,cAAc,EACtBL,SAAS,EACTC,QAAQ,EACRK,WAAW,QAAQ,EACnB,GAAGd,OACmD;IACtD,qBACC,KAACjB,gBAAgBgC,MAAM;kBACtB,cAAA,MAAChC,gBAAgBiC,OAAO;YACvBd,aAAU;YACVM,WAAWpB,GACV,SAAS;YACT,YACA,QACA,SACA,gBACA,mDACA,oDACA,qBACA,mBACA,QAAQ;YACR,cACA,UAAU;YACV,UACA,yBACA,sBAAsB;YACtB,iBACA,qBACA,UAAU;YACV,QACA,SAAS;YACT,aACA,oBAAoB;YACpB,gCACA,+BACA,gCACA,sBAAsB;YACtB,mCACA,kCACA,mCACA,mBAAmB;YACnB,0CACA,0CACA,0CACA,0CACA0B,aAAa,YACZ1B,GACC,oCACA,mCACA,mCACA,mCAEFoB;YAEDM,UAAUA;YACT,GAAGd,KAAK;;8BAET,KAACiB;8BACD,KAAClC,gBAAgBmC,QAAQ;oBACxBV,WAAWpB,GACV,OACA0B,aAAa,YACZ1B,GACC,0CACA,UACA,6CACA;8BAIFqB;;8BAEF,KAACU;;;;AAIL;AAEA,SAASC,YAAY,EACpBZ,SAAS,EACT,GAAGR,OACiD;IACpD,qBACC,KAACjB,gBAAgBsC,KAAK;QACrBnB,aAAU;QACVM,WAAWpB,GACV,sBACA,QACA,UACA,cACAoB;QAEA,GAAGR,KAAK;;AAGZ;AAEA,SAASsB,WAAW,EACnBd,SAAS,EACTC,QAAQ,EACR,GAAGT,OACgD;IACnD,qBACC,MAACjB,gBAAgBwC,IAAI;QACpBrB,aAAU;QACVM,WAAWpB,GACV,SAAS;QACT,YACA,QACA,UACA,gBACA,kBACA,eACA,QAAQ;QACR,cACA,UAAU;QACV,UACA,QACA,QACA,UACA,aACA,aAAa;QACb,WACA,qBACA,cAAc;QACd,kBACA,QAAQ;QACR,wBACA,SAAS;QACT,4BACA,QAAQ;QACR,gCACA,gBAAgB;QAChB,uCACA,0CACA,mDACA,WAAW;QACX,uCACA,8BACA,YAAY;QACZ,oDACA,+BACA,oBACA,wCACA,cAAc;QACd,sBACA,8BACA,uBACAoB;QAEA,GAAGR,KAAK;;0BAET,KAACwB;gBACAhB,WAAWpB,GACV,YACA,WACA,QACA,YACA,gBACA;0BAGD,cAAA,KAACL,gBAAgB0C,aAAa;8BAC7B,cAAA,KAACxC;wBAAUuB,WAAU;;;;0BAGvB,KAACzB,gBAAgB2C,QAAQ;0BAAEjB;;;;AAG9B;AAEA,SAASkB,gBAAgB,EACxBnB,SAAS,EACT,GAAGR,OACqD;IACxD,qBACC,KAACjB,gBAAgB6C,SAAS;QACzB1B,aAAU;QACVM,WAAWpB,GACV,uBACA,uBACA,SACA,QACA,QACAoB;QAEA,GAAGR,KAAK;;AAGZ;AAEA,SAASiB,qBAAqB,EAC7BT,SAAS,EACT,GAAGR,OAC0D;IAC7D,qBACC,KAACjB,gBAAgB8C,cAAc;QAC9B3B,aAAU;QACVM,WAAWpB,GACV,wDACAoB;QAEA,GAAGR,KAAK;kBAET,cAAA,KAACb;YAAcqB,WAAU;;;AAG5B;AAEA,SAASW,uBAAuB,EAC/BX,SAAS,EACT,GAAGR,OAC4D;IAC/D,qBACC,KAACjB,gBAAgB+C,gBAAgB;QAChC5B,aAAU;QACVM,WAAWpB,GACV,wDACAoB;QAEA,GAAGR,KAAK;kBAET,cAAA,KAACd;YAAgBsB,WAAU;;;AAG9B;AAEA,SACCT,MAAM,EACNc,aAAa,EACbV,WAAW,EACXmB,UAAU,EACVF,WAAW,EACXD,sBAAsB,EACtBF,oBAAoB,EACpBU,eAAe,EACfpB,aAAa,EACbF,WAAW,GACV"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/select.tsx"],"sourcesContent":["import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Base select trigger styles\nconst baseSelectTriggerStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"w-full\",\n\t\"items-center\",\n\t\"justify-between\",\n\t\"gap-2\",\n\t\"whitespace-nowrap\",\n\t// Shape\n\t\"rounded-md\",\n\t// Borders\n\t\"border\",\n\t\"border-border-primary\",\n\t// Background & Colors\n\t\"bg-transparent\",\n\t\"text-sm\",\n\t// Spacing\n\t\"px-3\",\n\t\"py-2\",\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n\t\"outline-none\",\n\t// Hover\n\t\"hover:border-border-primary_hover\",\n\t// Focus\n\t\"focus-visible:ring-2\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t// Placeholder\n\t\"data-[placeholder]:text-text-tertiary\",\n\t// Selection\n\t\"selection:bg-selection\",\n\t\"selection:text-text-primary\",\n\t// SVG icons\n\t\"[&_svg:not([class*='text-'])]:text-text-tertiary\",\n\t\"[&_svg]:pointer-events-none\",\n\t\"[&_svg]:shrink-0\",\n\t\"[&_svg:not([class*='size-'])]:size-4\",\n\t// Value styles\n\t\"*:data-[slot=select-value]:line-clamp-1\",\n\t\"*:data-[slot=select-value]:flex\",\n\t\"*:data-[slot=select-value]:items-center\",\n\t\"*:data-[slot=select-value]:gap-2\",\n\t// Cursor\n\t\"cursor-pointer\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:cursor-not-allowed\",\n\t\"disabled:text-text-disabled\",\n\t\"disabled:bg-bg-disabled\",\n\t\"disabled:border-border-disabled\",\n\t// Invalid\n\t\"aria-invalid:text-text-error-primary\",\n\t\"aria-invalid:border-border-error\",\n\t\"aria-invalid:ring-2\",\n\t\"aria-invalid:ring-utility-red/70\",\n);\n\nconst selectTriggerVariants = cva(baseSelectTriggerStyles, {\n\tvariants: {\n\t\tsize: {\n\t\t\tregular: cn(\"h-9\"),\n\t\t\tsmall: cn(\"h-8\"),\n\t\t},\n\t\tvariant: {\n\t\t\tdefault: cn(\"\"),\n\t\t\tcompound: cn(\"border-r-0\", \"typo-label\"),\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"regular\",\n\t\tvariant: \"default\",\n\t},\n});\n\nfunction Select({\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n\treturn <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n\treturn <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n\treturn <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n\tclassName,\n\tsize,\n\tvariant,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> &\n\tVariantProps<typeof selectTriggerVariants>) {\n\treturn (\n\t\t<SelectPrimitive.Trigger\n\t\t\tdata-slot=\"select-trigger\"\n\t\t\tclassName={cn(selectTriggerVariants({ variant, size, className }))}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<SelectPrimitive.Icon asChild>\n\t\t\t\t<ChevronDownIcon />\n\t\t\t</SelectPrimitive.Icon>\n\t\t</SelectPrimitive.Trigger>\n\t);\n}\n\nfunction SelectContent({\n\tclassName,\n\tchildren,\n\tposition = \"popper\",\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n\treturn (\n\t\t<SelectPrimitive.Portal>\n\t\t\t<SelectPrimitive.Content\n\t\t\t\tdata-slot=\"select-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// Layout\n\t\t\t\t\t\"relative\",\n\t\t\t\t\t\"z-50\",\n\t\t\t\t\t\"group\",\n\t\t\t\t\t\"min-w-[8rem]\",\n\t\t\t\t\t\"max-h-(--radix-select-content-available-height)\",\n\t\t\t\t\t\"origin-(--radix-select-content-transform-origin)\",\n\t\t\t\t\t\"overflow-x-hidden\",\n\t\t\t\t\t\"overflow-y-auto\",\n\t\t\t\t\t// Shape\n\t\t\t\t\t\"rounded-md\",\n\t\t\t\t\t// Borders\n\t\t\t\t\t\"border\",\n\t\t\t\t\t\"border-border-primary\",\n\t\t\t\t\t// Background & Colors\n\t\t\t\t\t\"bg-bg-primary\",\n\t\t\t\t\t\"text-text-primary\",\n\t\t\t\t\t// Spacing\n\t\t\t\t\t\"py-1\",\n\t\t\t\t\t// Shadow\n\t\t\t\t\t\"shadow-lg\",\n\t\t\t\t\t// Animations - open\n\t\t\t\t\t\"data-[state=open]:animate-in\",\n\t\t\t\t\t\"data-[state=open]:fade-in-0\",\n\t\t\t\t\t\"data-[state=open]:zoom-in-95\",\n\t\t\t\t\t// Animations - closed\n\t\t\t\t\t\"data-[state=closed]:animate-out\",\n\t\t\t\t\t\"data-[state=closed]:fade-out-0\",\n\t\t\t\t\t\"data-[state=closed]:zoom-out-95\",\n\t\t\t\t\t// Slide animations\n\t\t\t\t\t\"data-[side=bottom]:slide-in-from-top-2\",\n\t\t\t\t\t\"data-[side=left]:slide-in-from-right-2\",\n\t\t\t\t\t\"data-[side=right]:slide-in-from-left-2\",\n\t\t\t\t\t\"data-[side=top]:slide-in-from-bottom-2\",\n\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\tcn(\n\t\t\t\t\t\t\t\"data-[side=bottom]:translate-y-1\",\n\t\t\t\t\t\t\t\"data-[side=left]:-translate-x-1\",\n\t\t\t\t\t\t\t\"data-[side=right]:translate-x-1\",\n\t\t\t\t\t\t\t\"data-[side=top]:-translate-y-1\",\n\t\t\t\t\t\t),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tposition={position}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SelectScrollUpButton />\n\t\t\t\t<SelectPrimitive.Viewport\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"p-1\",\n\t\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\t\tcn(\n\t\t\t\t\t\t\t\t\"h-[var(--radix-select-trigger-height)]\",\n\t\t\t\t\t\t\t\t\"w-full\",\n\t\t\t\t\t\t\t\t\"min-w-[var(--radix-select-trigger-width)]\",\n\t\t\t\t\t\t\t\t\"scroll-my-1\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</SelectPrimitive.Viewport>\n\t\t\t\t<SelectScrollDownButton />\n\t\t\t</SelectPrimitive.Content>\n\t\t</SelectPrimitive.Portal>\n\t);\n}\n\nfunction SelectLabel({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n\treturn (\n\t\t<SelectPrimitive.Label\n\t\t\tdata-slot=\"select-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-text-tertiary\",\n\t\t\t\t\"px-2\",\n\t\t\t\t\"py-1.5\",\n\t\t\t\t\"typo-label\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n\treturn (\n\t\t<SelectPrimitive.Item\n\t\t\tdata-slot=\"select-item\"\n\t\t\tclassName={cn(\n\t\t\t\t// Layout\n\t\t\t\t\"relative\",\n\t\t\t\t\"flex\",\n\t\t\t\t\"w-full\",\n\t\t\t\t\"items-center\",\n\t\t\t\t\"cursor-pointer\",\n\t\t\t\t\"select-none\",\n\t\t\t\t// Shape\n\t\t\t\t\"rounded-md\",\n\t\t\t\t// Spacing\n\t\t\t\t\"py-1.5\",\n\t\t\t\t\"pl-3\",\n\t\t\t\t\"pr-8\",\n\t\t\t\t\"mb-0.5\",\n\t\t\t\t\"last:mb-0\",\n\t\t\t\t// Typography\n\t\t\t\t\"text-sm\",\n\t\t\t\t\"text-text-primary\",\n\t\t\t\t// Interaction\n\t\t\t\t\"outline-hidden\",\n\t\t\t\t// Hover\n\t\t\t\t\"hover:bg-bg-tertiary\",\n\t\t\t\t// Active\n\t\t\t\t\"active:text-text-primary\",\n\t\t\t\t// Focus\n\t\t\t\t\"focus-visible:bg-bg-tertiary\",\n\t\t\t\t// Checked state\n\t\t\t\t\"data-[state=checked]:bg-bg-tertiary\",\n\t\t\t\t\"data-[state=checked]:text-text-primary\",\n\t\t\t\t\"group-hover:data-[state=checked]:bg-transparent\",\n\t\t\t\t// Disabled\n\t\t\t\t\"data-[disabled]:pointer-events-none\",\n\t\t\t\t\"data-[disabled]:opacity-50\",\n\t\t\t\t// SVG icons\n\t\t\t\t\"[&_svg:not([class*='text-'])]:text-text-tertiary\",\n\t\t\t\t\"[&_svg]:pointer-events-none\",\n\t\t\t\t\"[&_svg]:shrink-0\",\n\t\t\t\t\"[&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\t// Span styles\n\t\t\t\t\"*:[span]:last:flex\",\n\t\t\t\t\"*:[span]:last:items-center\",\n\t\t\t\t\"*:[span]:last:gap-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"right-2\",\n\t\t\t\t\t\"flex\",\n\t\t\t\t\t\"size-3.5\",\n\t\t\t\t\t\"items-center\",\n\t\t\t\t\t\"justify-center\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<SelectPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</SelectPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n\t\t</SelectPrimitive.Item>\n\t);\n}\n\nfunction SelectSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n\treturn (\n\t\t<SelectPrimitive.Separator\n\t\t\tdata-slot=\"select-separator\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-border-separator\",\n\t\t\t\t\"pointer-events-none\",\n\t\t\t\t\"-mx-1\",\n\t\t\t\t\"my-1\",\n\t\t\t\t\"h-px\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectScrollUpButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollUpButton\n\t\t\tdata-slot=\"select-scroll-up-button\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex cursor-default items-center justify-center py-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronUpIcon className=\"size-4\" />\n\t\t</SelectPrimitive.ScrollUpButton>\n\t);\n}\n\nfunction SelectScrollDownButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollDownButton\n\t\t\tdata-slot=\"select-scroll-down-button\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex cursor-default items-center justify-center py-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronDownIcon className=\"size-4\" />\n\t\t</SelectPrimitive.ScrollDownButton>\n\t);\n}\n\nexport {\n\tSelect,\n\tSelectContent,\n\tSelectGroup,\n\tSelectItem,\n\tSelectLabel,\n\tSelectScrollDownButton,\n\tSelectScrollUpButton,\n\tSelectSeparator,\n\tSelectTrigger,\n\tSelectValue,\n};\n"],"names":["SelectPrimitive","cva","CheckIcon","ChevronDownIcon","ChevronUpIcon","cn","baseSelectTriggerStyles","selectTriggerVariants","variants","size","regular","small","variant","default","compound","defaultVariants","Select","props","Root","data-slot","SelectGroup","Group","SelectValue","Value","SelectTrigger","className","children","Trigger","Icon","asChild","SelectContent","position","Portal","Content","SelectScrollUpButton","Viewport","SelectScrollDownButton","SelectLabel","Label","SelectItem","Item","span","ItemIndicator","ItemText","SelectSeparator","Separator","ScrollUpButton","ScrollDownButton"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/tree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,QAAQ,GAAG;IACf,IAAI,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACF,CAAC;AAmBF,UAAU,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,GAAG,CAAC;CACX;AAED,iBAAS,IAAI,CAAC,EAAE,MAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,2CA2BlE;AAGD,UAAU,aAAa,CAAC,CAAC,GAAG,GAAG,CAC9B,SAAQ,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC;IAC/C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,iBAAS,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,EAC1B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,2CAiElC;AAGD,UAAU,kBAAkB,CAAC,CAAC,GAAG,GAAG,CACnC,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,iBAAS,aAAa,CAAC,CAAC,EAAE,EACzB,IAAI,EAAE,QAAQ,EACd,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACR,EAAE,kBAAkB,CAAC,CAAC,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/tree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,QAAQ,GAAG;IACf,IAAI,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACF,CAAC;AAmBF,UAAU,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,GAAG,CAAC;CACX;AAED,iBAAS,IAAI,CAAC,EAAE,MAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,2CA2BlE;AAGD,UAAU,aAAa,CAAC,CAAC,GAAG,GAAG,CAC9B,SAAQ,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC;IAC/C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,iBAAS,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,EAC1B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,2CAiElC;AAGD,UAAU,kBAAkB,CAAC,CAAC,GAAG,GAAG,CACnC,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,iBAAS,aAAa,CAAC,CAAC,EAAE,EACzB,IAAI,EAAE,QAAQ,EACd,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACR,EAAE,kBAAkB,CAAC,CAAC,GAAG,QAAQ,CAAC,kDA6DlC;AAED,iBAAS,YAAY,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,kDAqBtC;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,CAAC"}
|
|
@@ -90,7 +90,7 @@ function TreeItemLabel({ item: propItem, children, className, disableHover, hori
|
|
|
90
90
|
const itemMeta = item.getItemMeta();
|
|
91
91
|
return /*#__PURE__*/ _jsxs("span", {
|
|
92
92
|
"data-slot": "tree-item-label",
|
|
93
|
-
className: cn("group/tree-item-label relative select-text in-focus-visible:ring-ring/50 bg-background text-text-secondary in-data-[drag-target=true]:bg-accent flex items-center gap-2 pr-2 pl-2.5 py-1.5 text-sm transition-colors not-in-data-[folder=true]:ps-2.5 in-focus-visible:ring-[3px] in-data-[search-match=true]:bg-blue-400/20! [&_svg]:pointer-events-none [&_svg]:shrink-0", !disableHover && "in-data-[focus=true]:bg-bg-secondary in-data-[focus=true]:text-text-primary", !disableHover && item.isFolder() && "hover:bg-bg-secondary hover:text-text-primary cursor-pointer", disableHover && "text-text-primary", className),
|
|
93
|
+
className: cn("group/tree-item-label relative select-text in-focus-visible:ring-ring/50 bg-background text-text-secondary in-data-[drag-target=true]:bg-accent flex items-center gap-2 pr-2 pl-2.5 py-1.5 text-sm transition-colors not-in-data-[folder=true]:ps-2.5 in-focus-visible:ring-[3px] in-data-[search-match=true]:bg-blue-400/20! [&_svg]:pointer-events-none [&_svg]:shrink-0", !disableHover && "in-data-[focus=true]:bg-bg-secondary in-data-[focus=true]:text-text-primary", !disableHover && item.isFolder() && "hover:bg-bg-secondary hover:text-text-primary cursor-pointer", !disableHover && !item.isFolder() && "hover:bg-bg-secondary hover:text-text-primary cursor-pointer", disableHover && "text-text-primary", className),
|
|
94
94
|
...props,
|
|
95
95
|
children: [
|
|
96
96
|
item.isFolder() && /*#__PURE__*/ _jsx("button", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/tree.tsx"],"sourcesContent":["import type { ItemInstance } from \"@headless-tree/core\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { Slot } from \"radix-ui\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\ntype WithMeta = {\n\tmeta?: {\n\t\tlastNode?: boolean;\n\t};\n};\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\ninterface TreeContextValue<T = any> {\n\tindent: number;\n\tcurrentItem?: ItemInstance<T>;\n\t// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\n\ttree?: any;\n}\n\nconst TreeContext = React.createContext<TreeContextValue>({\n\tindent: 20,\n});\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\nfunction useTreeContext<T = any>() {\n\treturn React.useContext(TreeContext) as TreeContextValue<T>;\n}\n\ninterface TreeProps extends React.HTMLAttributes<HTMLDivElement> {\n\tindent?: number;\n\t// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\n\ttree?: any;\n}\n\nfunction Tree({ indent = 20, tree, className, ...props }: TreeProps) {\n\tconst containerProps =\n\t\ttree && typeof tree.getContainerProps === \"function\"\n\t\t\t? tree.getContainerProps()\n\t\t\t: {};\n\tconst mergedProps = { ...props, ...containerProps };\n\n\t// Extract style from mergedProps to merge with our custom styles\n\tconst { style: propStyle, ...otherProps } = mergedProps;\n\n\t// Merge styles\n\tconst mergedStyle = {\n\t\t...propStyle,\n\t\t\"--tree-indent\": `${indent}px`,\n\t\t\"--border\": `var(--color-border-separator)`,\n\t} as React.CSSProperties;\n\n\treturn (\n\t\t<TreeContext.Provider value={{ indent, tree }}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"tree\"\n\t\t\t\tstyle={mergedStyle}\n\t\t\t\tclassName={cn(\"flex flex-col\", className)}\n\t\t\t\t{...otherProps}\n\t\t\t/>\n\t\t</TreeContext.Provider>\n\t);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\ninterface TreeItemProps<T = any>\n\textends React.HTMLAttributes<HTMLButtonElement> {\n\titem: ItemInstance<T>;\n\tindent?: number;\n\tasChild?: boolean;\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\nfunction TreeItem<T = any>({\n\titem,\n\tclassName,\n\tasChild,\n\tchildren,\n\t...props\n}: Omit<TreeItemProps<T>, \"indent\">) {\n\tconst { indent } = useTreeContext<T>();\n\n\tconst itemProps = typeof item.getProps === \"function\" ? item.getProps() : {};\n\tconst mergedProps = { ...props, ...itemProps };\n\n\t// Extract style from mergedProps to merge with our custom styles\n\tconst { style: propStyle, ...otherProps } = mergedProps;\n\n\t// Merge styles\n\tconst mergedStyle = {\n\t\t...propStyle,\n\t\t\"--tree-padding\": `${item.getItemMeta().level * indent}px`,\n\t} as React.CSSProperties;\n\n\tconst Comp = asChild ? Slot.Root : \"span\";\n\n\treturn (\n\t\t<TreeContext.Provider value={{ indent, currentItem: item }}>\n\t\t\t<Comp\n\t\t\t\tdata-slot=\"tree-item\"\n\t\t\t\tstyle={mergedStyle}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"z-10 ps-(--tree-padding) outline-hidden select-none focus:z-20 data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tdata-focus={\n\t\t\t\t\ttypeof item.isFocused === \"function\"\n\t\t\t\t\t\t? item.isFocused() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-folder={\n\t\t\t\t\ttypeof item.isFolder === \"function\"\n\t\t\t\t\t\t? item.isFolder() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-selected={\n\t\t\t\t\ttypeof item.isSelected === \"function\"\n\t\t\t\t\t\t? item.isSelected() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-drag-target={\n\t\t\t\t\ttypeof item.isDragTarget === \"function\"\n\t\t\t\t\t\t? item.isDragTarget() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-search-match={\n\t\t\t\t\ttypeof item.isMatchingSearch === \"function\"\n\t\t\t\t\t\t? item.isMatchingSearch() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taria-expanded={item.isExpanded()}\n\t\t\t\t{...Object.fromEntries(\n\t\t\t\t\tObject.entries(otherProps).filter(([key]) => key !== \"onDragStart\"),\n\t\t\t\t)}\n\t\t\t\tonDragStart={(e) => {\n\t\t\t\t\tif ((e.target as HTMLElement).dataset.slot === \"drag-handle\") {\n\t\t\t\t\t\titem.getProps().onDragStart(e);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t</TreeContext.Provider>\n\t);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\ninterface TreeItemLabelProps<T = any>\n\textends React.HTMLAttributes<HTMLSpanElement> {\n\thideChevron?: boolean;\n\tdisableHover?: boolean;\n\titem?: ItemInstance<T>;\n\thorizontalLines?: boolean;\n}\n\nfunction TreeItemLabel<T>({\n\titem: propItem,\n\tchildren,\n\tclassName,\n\tdisableHover,\n\thorizontalLines,\n\thideChevron,\n\t...props\n}: TreeItemLabelProps<T & WithMeta>) {\n\tconst { currentItem } = useTreeContext<T & WithMeta>();\n\tconst item = propItem || currentItem;\n\n\tif (!item) {\n\t\tconsole.warn(\"TreeItemLabel: No item provided via props or context\");\n\t\treturn null;\n\t}\n\n\tconst data = item.getItemData?.();\n\tconst isLastNode = data?.meta?.lastNode;\n\tconst itemMeta = item.getItemMeta();\n\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"tree-item-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"group/tree-item-label relative select-text in-focus-visible:ring-ring/50 bg-background text-text-secondary in-data-[drag-target=true]:bg-accent flex items-center gap-2 pr-2 pl-2.5 py-1.5 text-sm transition-colors not-in-data-[folder=true]:ps-2.5 in-focus-visible:ring-[3px] in-data-[search-match=true]:bg-blue-400/20! [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n\t\t\t\t!disableHover &&\n\t\t\t\t\t\"in-data-[focus=true]:bg-bg-secondary in-data-[focus=true]:text-text-primary\",\n\t\t\t\t!disableHover &&\n\t\t\t\t\titem.isFolder() &&\n\t\t\t\t\t\"hover:bg-bg-secondary hover:text-text-primary cursor-pointer\",\n\t\t\t\tdisableHover && \"text-text-primary\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{item.isFolder() && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"self-start mt-0.5 cursor-pointer\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\titem.isExpanded() ? item.collapse() : item.expand();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ChevronDownIcon className=\"text-muted-foreground size-4 in-aria-[expanded=false]:-rotate-90\" />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t\t{!item.isFolder() && horizontalLines && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`w-5 min-w-5 h-px border-t mt-2 -ml-1 self-start`}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t{item.isFolder() && item.isExpanded() && horizontalLines && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`absolute left-4.25 top-8 w-px min-h-full h-full border-l mt-2.25 self-start `}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t{horizontalLines && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`absolute left-0 top-4.75 -m-[5px] border-t w-4 ${isLastNode ? \"h-full bg-inherit \" : \"\"} ${itemMeta.level === 0 ? \"hidden\" : \"\"}`}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t{children ||\n\t\t\t\t(typeof item.getItemName === \"function\" ? item.getItemName() : null)}\n\t\t</span>\n\t);\n}\n\nfunction TreeDragLine({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n\tconst { tree } = useTreeContext();\n\n\tif (!tree || typeof tree.getDragLineStyle !== \"function\") {\n\t\tconsole.warn(\n\t\t\t\"TreeDragLine: No tree provided via context or tree does not have getDragLineStyle method\",\n\t\t);\n\t\treturn null;\n\t}\n\n\tconst dragLine = tree.getDragLineStyle();\n\treturn (\n\t\t<div\n\t\t\tstyle={dragLine}\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-primary before:bg-background before:border-primary absolute z-30 -mt-px h-0.5 w-[unset] before:absolute before:-top-[3px] before:left-0 before:size-2 before:rounded-full before:border-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Tree, TreeItem, TreeItemLabel, TreeDragLine, type ItemInstance };\n"],"names":["ChevronDownIcon","Slot","React","cn","TreeContext","createContext","indent","useTreeContext","useContext","Tree","tree","className","props","containerProps","getContainerProps","mergedProps","style","propStyle","otherProps","mergedStyle","Provider","value","div","data-slot","TreeItem","item","asChild","children","itemProps","getProps","getItemMeta","level","Comp","Root","currentItem","data-focus","isFocused","undefined","data-folder","isFolder","data-selected","isSelected","data-drag-target","isDragTarget","data-search-match","isMatchingSearch","aria-expanded","isExpanded","Object","fromEntries","entries","filter","key","onDragStart","e","target","dataset","slot","TreeItemLabel","propItem","disableHover","horizontalLines","hideChevron","console","warn","data","getItemData","isLastNode","meta","lastNode","itemMeta","span","button","type","onClick","collapse","expand","getItemName","TreeDragLine","getDragLineStyle","dragLine"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/tree.tsx"],"sourcesContent":["import type { ItemInstance } from \"@headless-tree/core\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { Slot } from \"radix-ui\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\ntype WithMeta = {\n\tmeta?: {\n\t\tlastNode?: boolean;\n\t};\n};\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\ninterface TreeContextValue<T = any> {\n\tindent: number;\n\tcurrentItem?: ItemInstance<T>;\n\t// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\n\ttree?: any;\n}\n\nconst TreeContext = React.createContext<TreeContextValue>({\n\tindent: 20,\n});\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\nfunction useTreeContext<T = any>() {\n\treturn React.useContext(TreeContext) as TreeContextValue<T>;\n}\n\ninterface TreeProps extends React.HTMLAttributes<HTMLDivElement> {\n\tindent?: number;\n\t// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\n\ttree?: any;\n}\n\nfunction Tree({ indent = 20, tree, className, ...props }: TreeProps) {\n\tconst containerProps =\n\t\ttree && typeof tree.getContainerProps === \"function\"\n\t\t\t? tree.getContainerProps()\n\t\t\t: {};\n\tconst mergedProps = { ...props, ...containerProps };\n\n\t// Extract style from mergedProps to merge with our custom styles\n\tconst { style: propStyle, ...otherProps } = mergedProps;\n\n\t// Merge styles\n\tconst mergedStyle = {\n\t\t...propStyle,\n\t\t\"--tree-indent\": `${indent}px`,\n\t\t\"--border\": `var(--color-border-separator)`,\n\t} as React.CSSProperties;\n\n\treturn (\n\t\t<TreeContext.Provider value={{ indent, tree }}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"tree\"\n\t\t\t\tstyle={mergedStyle}\n\t\t\t\tclassName={cn(\"flex flex-col\", className)}\n\t\t\t\t{...otherProps}\n\t\t\t/>\n\t\t</TreeContext.Provider>\n\t);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\ninterface TreeItemProps<T = any>\n\textends React.HTMLAttributes<HTMLButtonElement> {\n\titem: ItemInstance<T>;\n\tindent?: number;\n\tasChild?: boolean;\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\nfunction TreeItem<T = any>({\n\titem,\n\tclassName,\n\tasChild,\n\tchildren,\n\t...props\n}: Omit<TreeItemProps<T>, \"indent\">) {\n\tconst { indent } = useTreeContext<T>();\n\n\tconst itemProps = typeof item.getProps === \"function\" ? item.getProps() : {};\n\tconst mergedProps = { ...props, ...itemProps };\n\n\t// Extract style from mergedProps to merge with our custom styles\n\tconst { style: propStyle, ...otherProps } = mergedProps;\n\n\t// Merge styles\n\tconst mergedStyle = {\n\t\t...propStyle,\n\t\t\"--tree-padding\": `${item.getItemMeta().level * indent}px`,\n\t} as React.CSSProperties;\n\n\tconst Comp = asChild ? Slot.Root : \"span\";\n\n\treturn (\n\t\t<TreeContext.Provider value={{ indent, currentItem: item }}>\n\t\t\t<Comp\n\t\t\t\tdata-slot=\"tree-item\"\n\t\t\t\tstyle={mergedStyle}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"z-10 ps-(--tree-padding) outline-hidden select-none focus:z-20 data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tdata-focus={\n\t\t\t\t\ttypeof item.isFocused === \"function\"\n\t\t\t\t\t\t? item.isFocused() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-folder={\n\t\t\t\t\ttypeof item.isFolder === \"function\"\n\t\t\t\t\t\t? item.isFolder() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-selected={\n\t\t\t\t\ttypeof item.isSelected === \"function\"\n\t\t\t\t\t\t? item.isSelected() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-drag-target={\n\t\t\t\t\ttypeof item.isDragTarget === \"function\"\n\t\t\t\t\t\t? item.isDragTarget() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdata-search-match={\n\t\t\t\t\ttypeof item.isMatchingSearch === \"function\"\n\t\t\t\t\t\t? item.isMatchingSearch() || false\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taria-expanded={item.isExpanded()}\n\t\t\t\t{...Object.fromEntries(\n\t\t\t\t\tObject.entries(otherProps).filter(([key]) => key !== \"onDragStart\"),\n\t\t\t\t)}\n\t\t\t\tonDragStart={(e) => {\n\t\t\t\t\tif ((e.target as HTMLElement).dataset.slot === \"drag-handle\") {\n\t\t\t\t\t\titem.getProps().onDragStart(e);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t</TreeContext.Provider>\n\t);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: FIXME Origin UI as-is\ninterface TreeItemLabelProps<T = any>\n\textends React.HTMLAttributes<HTMLSpanElement> {\n\thideChevron?: boolean;\n\tdisableHover?: boolean;\n\titem?: ItemInstance<T>;\n\thorizontalLines?: boolean;\n}\n\nfunction TreeItemLabel<T>({\n\titem: propItem,\n\tchildren,\n\tclassName,\n\tdisableHover,\n\thorizontalLines,\n\thideChevron,\n\t...props\n}: TreeItemLabelProps<T & WithMeta>) {\n\tconst { currentItem } = useTreeContext<T & WithMeta>();\n\tconst item = propItem || currentItem;\n\n\tif (!item) {\n\t\tconsole.warn(\"TreeItemLabel: No item provided via props or context\");\n\t\treturn null;\n\t}\n\n\tconst data = item.getItemData?.();\n\tconst isLastNode = data?.meta?.lastNode;\n\tconst itemMeta = item.getItemMeta();\n\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"tree-item-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"group/tree-item-label relative select-text in-focus-visible:ring-ring/50 bg-background text-text-secondary in-data-[drag-target=true]:bg-accent flex items-center gap-2 pr-2 pl-2.5 py-1.5 text-sm transition-colors not-in-data-[folder=true]:ps-2.5 in-focus-visible:ring-[3px] in-data-[search-match=true]:bg-blue-400/20! [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n\t\t\t\t!disableHover &&\n\t\t\t\t\t\"in-data-[focus=true]:bg-bg-secondary in-data-[focus=true]:text-text-primary\",\n\t\t\t\t!disableHover &&\n\t\t\t\t\titem.isFolder() &&\n\t\t\t\t\t\"hover:bg-bg-secondary hover:text-text-primary cursor-pointer\",\n\t\t\t\t!disableHover &&\n\t\t\t\t\t!item.isFolder() &&\n\t\t\t\t\t\"hover:bg-bg-secondary hover:text-text-primary cursor-pointer\",\n\t\t\t\tdisableHover && \"text-text-primary\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{item.isFolder() && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"self-start mt-0.5 cursor-pointer\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\titem.isExpanded() ? item.collapse() : item.expand();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ChevronDownIcon className=\"text-muted-foreground size-4 in-aria-[expanded=false]:-rotate-90\" />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t\t{!item.isFolder() && horizontalLines && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`w-5 min-w-5 h-px border-t mt-2 -ml-1 self-start`}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t{item.isFolder() && item.isExpanded() && horizontalLines && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`absolute left-4.25 top-8 w-px min-h-full h-full border-l mt-2.25 self-start `}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t{horizontalLines && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`absolute left-0 top-4.75 -m-[5px] border-t w-4 ${isLastNode ? \"h-full bg-inherit \" : \"\"} ${itemMeta.level === 0 ? \"hidden\" : \"\"}`}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t\t{children ||\n\t\t\t\t(typeof item.getItemName === \"function\" ? item.getItemName() : null)}\n\t\t</span>\n\t);\n}\n\nfunction TreeDragLine({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n\tconst { tree } = useTreeContext();\n\n\tif (!tree || typeof tree.getDragLineStyle !== \"function\") {\n\t\tconsole.warn(\n\t\t\t\"TreeDragLine: No tree provided via context or tree does not have getDragLineStyle method\",\n\t\t);\n\t\treturn null;\n\t}\n\n\tconst dragLine = tree.getDragLineStyle();\n\treturn (\n\t\t<div\n\t\t\tstyle={dragLine}\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-primary before:bg-background before:border-primary absolute z-30 -mt-px h-0.5 w-[unset] before:absolute before:-top-[3px] before:left-0 before:size-2 before:rounded-full before:border-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Tree, TreeItem, TreeItemLabel, TreeDragLine, type ItemInstance };\n"],"names":["ChevronDownIcon","Slot","React","cn","TreeContext","createContext","indent","useTreeContext","useContext","Tree","tree","className","props","containerProps","getContainerProps","mergedProps","style","propStyle","otherProps","mergedStyle","Provider","value","div","data-slot","TreeItem","item","asChild","children","itemProps","getProps","getItemMeta","level","Comp","Root","currentItem","data-focus","isFocused","undefined","data-folder","isFolder","data-selected","isSelected","data-drag-target","isDragTarget","data-search-match","isMatchingSearch","aria-expanded","isExpanded","Object","fromEntries","entries","filter","key","onDragStart","e","target","dataset","slot","TreeItemLabel","propItem","disableHover","horizontalLines","hideChevron","console","warn","data","getItemData","isLastNode","meta","lastNode","itemMeta","span","button","type","onClick","collapse","expand","getItemName","TreeDragLine","getDragLineStyle","dragLine"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
2
|
import { DataTable, type DataTableProps } from "./data-table";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
type Data = {
|
|
5
|
+
name: string;
|
|
6
|
+
age: number;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const meta: Meta<typeof DataTable<Data>> = {
|
|
5
10
|
title: "Component/Data table",
|
|
6
|
-
component: DataTable
|
|
11
|
+
component: DataTable<Data>,
|
|
7
12
|
tags: ["autodocs"],
|
|
8
13
|
};
|
|
9
14
|
|
|
10
15
|
export default meta;
|
|
11
|
-
type Story = StoryObj<typeof
|
|
16
|
+
type Story = StoryObj<typeof meta>;
|
|
12
17
|
|
|
13
|
-
function DataTableWrapper
|
|
14
|
-
columns,
|
|
15
|
-
data,
|
|
16
|
-
}: DataTableProps<TData, TValue>) {
|
|
18
|
+
function DataTableWrapper({ columns, data }: DataTableProps<Data>) {
|
|
17
19
|
return <DataTable columns={columns} data={data} />;
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -17,17 +17,17 @@ import {
|
|
|
17
17
|
TableRow,
|
|
18
18
|
} from "../shadcn/components/ui/table";
|
|
19
19
|
|
|
20
|
-
export interface DataTableProps<TData
|
|
21
|
-
columns: ColumnDef<TData,
|
|
20
|
+
export interface DataTableProps<TData> {
|
|
21
|
+
columns: { [K in keyof TData]: ColumnDef<TData, TData[K]> }[keyof TData][];
|
|
22
22
|
data: TData[];
|
|
23
23
|
stickyHeader?: boolean;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export function DataTable<TData
|
|
26
|
+
export function DataTable<TData>({
|
|
27
27
|
columns,
|
|
28
28
|
data,
|
|
29
29
|
stickyHeader = false,
|
|
30
|
-
}: DataTableProps<TData
|
|
30
|
+
}: DataTableProps<TData>) {
|
|
31
31
|
"use no memo";
|
|
32
32
|
const table = useReactTable({
|
|
33
33
|
data,
|
|
@@ -48,6 +48,8 @@ const baseSelectTriggerStyles = cn(
|
|
|
48
48
|
"*:data-[slot=select-value]:flex",
|
|
49
49
|
"*:data-[slot=select-value]:items-center",
|
|
50
50
|
"*:data-[slot=select-value]:gap-2",
|
|
51
|
+
// Cursor
|
|
52
|
+
"cursor-pointer",
|
|
51
53
|
// Disabled
|
|
52
54
|
"disabled:pointer-events-none",
|
|
53
55
|
"disabled:cursor-not-allowed",
|
|
@@ -229,7 +231,7 @@ function SelectItem({
|
|
|
229
231
|
"flex",
|
|
230
232
|
"w-full",
|
|
231
233
|
"items-center",
|
|
232
|
-
"cursor-
|
|
234
|
+
"cursor-pointer",
|
|
233
235
|
"select-none",
|
|
234
236
|
// Shape
|
|
235
237
|
"rounded-md",
|
|
@@ -185,6 +185,9 @@ function TreeItemLabel<T>({
|
|
|
185
185
|
!disableHover &&
|
|
186
186
|
item.isFolder() &&
|
|
187
187
|
"hover:bg-bg-secondary hover:text-text-primary cursor-pointer",
|
|
188
|
+
!disableHover &&
|
|
189
|
+
!item.isFolder() &&
|
|
190
|
+
"hover:bg-bg-secondary hover:text-text-primary cursor-pointer",
|
|
188
191
|
disableHover && "text-text-primary",
|
|
189
192
|
className,
|
|
190
193
|
)}
|