@health-samurai/react-components 0.0.0-alpha.6 → 0.0.0-alpha.7
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/bundle.css +78 -441
- package/dist/src/components/button-dropdown.d.ts +10 -0
- package/dist/src/components/button-dropdown.d.ts.map +1 -0
- package/dist/src/components/button-dropdown.js +70 -0
- package/dist/src/components/button-dropdown.js.map +1 -0
- package/dist/src/components/button-dropdown.stories.d.ts +11 -0
- package/dist/src/components/button-dropdown.stories.d.ts.map +1 -0
- package/dist/src/components/button-dropdown.stories.js +48 -0
- package/dist/src/components/button-dropdown.stories.js.map +1 -0
- package/dist/src/components/data-table.d.ts +2 -1
- package/dist/src/components/data-table.d.ts.map +1 -1
- package/dist/src/components/data-table.js +5 -4
- package/dist/src/components/data-table.js.map +1 -1
- package/dist/src/components/data-table.stories.d.ts.map +1 -1
- package/dist/src/components/data-table.stories.js +196 -0
- package/dist/src/components/data-table.stories.js.map +1 -1
- package/dist/src/components/fhir-structure-view.d.ts.map +1 -1
- package/dist/src/components/fhir-structure-view.js +13 -16
- package/dist/src/components/fhir-structure-view.js.map +1 -1
- package/dist/src/components/segment-control.d.ts.map +1 -1
- package/dist/src/components/segment-control.js +1 -1
- package/dist/src/components/segment-control.js.map +1 -1
- package/dist/src/components/segment-control.stories.d.ts.map +1 -1
- package/dist/src/components/tree-view.d.ts +4 -1
- package/dist/src/components/tree-view.d.ts.map +1 -1
- package/dist/src/components/tree-view.js +44 -22
- package/dist/src/components/tree-view.js.map +1 -1
- package/dist/src/components/tree-view.stories.d.ts.map +1 -1
- package/dist/src/components/tree-view.stories.js +12 -3
- package/dist/src/components/tree-view.stories.js.map +1 -1
- package/dist/src/icons.js +62 -62
- package/dist/src/icons.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.d.ts +1 -1
- package/dist/src/shadcn/components/ui/card.d.ts +5 -1
- package/dist/src/shadcn/components/ui/card.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/card.js +21 -8
- package/dist/src/shadcn/components/ui/card.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.stories.d.ts +302 -1
- package/dist/src/shadcn/components/ui/card.stories.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/card.stories.js +23 -2
- package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/combobox.d.ts +13 -0
- package/dist/src/shadcn/components/ui/combobox.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/combobox.js +102 -0
- package/dist/src/shadcn/components/ui/combobox.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.d.ts +8 -1
- package/dist/src/shadcn/components/ui/pagination.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.js +36 -19
- package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.stories.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.stories.js +44 -37
- package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/table.js +1 -1
- package/dist/src/shadcn/components/ui/table.js.map +1 -1
- package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tree.js +21 -9
- package/dist/src/shadcn/components/ui/tree.js.map +1 -1
- package/dist/src/typography.css +24 -8
- package/package.json +1 -1
- package/src/components/button-dropdown.stories.tsx +41 -0
- package/src/components/button-dropdown.tsx +95 -0
- package/src/components/data-table.stories.tsx +52 -1
- package/src/components/data-table.tsx +6 -3
- package/src/components/fhir-structure-view.tsx +14 -16
- package/src/components/segment-control.tsx +1 -0
- package/src/components/tree-view.stories.tsx +12 -6
- package/src/components/tree-view.tsx +34 -2
- package/src/icons.tsx +62 -62
- package/src/index.tsx +2 -1
- package/src/shadcn/components/ui/card.stories.tsx +17 -3
- package/src/shadcn/components/ui/card.tsx +52 -8
- package/src/shadcn/components/ui/combobox.tsx +127 -0
- package/src/shadcn/components/ui/pagination.stories.tsx +8 -2
- package/src/shadcn/components/ui/pagination.tsx +54 -3
- package/src/shadcn/components/ui/table.tsx +6 -1
- package/src/shadcn/components/ui/tree.tsx +29 -9
- package/src/typography.css +24 -8
- package/dist/src/components/patient-table.d.ts +0 -73
- package/dist/src/components/patient-table.d.ts.map +0 -1
- package/dist/src/components/patient-table.js +0 -921
- package/dist/src/components/patient-table.js.map +0 -1
- package/dist/src/components/patient-table.stories.d.ts +0 -111
- package/dist/src/components/patient-table.stories.d.ts.map +0 -1
- package/dist/src/components/patient-table.stories.js +0 -172
- package/dist/src/components/patient-table.stories.js.map +0 -1
- package/src/components/patient-table.stories.tsx +0 -111
- package/src/components/patient-table.tsx +0 -1301
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ButtonDropdownOption {
|
|
2
|
+
value: string;
|
|
3
|
+
label: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function ButtonDropdown({ options, selectedValue, onSelectItem, }: {
|
|
6
|
+
selectedValue?: string;
|
|
7
|
+
options: ButtonDropdownOption[];
|
|
8
|
+
onSelectItem: (item: string) => void;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=button-dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/button-dropdown.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAkBD,wBAAgB,cAAc,CAAC,EAC9B,OAAO,EACP,aAAa,EACb,YAAY,GACZ,EAAE;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,2CAgDA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import * as Lucide from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Button } from "../shadcn/components/ui/button.js";
|
|
6
|
+
import { Command, CommandInput, CommandItem, CommandList } from "../shadcn/components/ui/command.js";
|
|
7
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../shadcn/components/ui/popover.js";
|
|
8
|
+
import { cn } from "../shadcn/lib/utils.js";
|
|
9
|
+
const popoverTriggerButtonStyle = cn("text-text-secondary", "bg-gray-100", "rounded-full", "px-2 h-6");
|
|
10
|
+
const checkIconStyles = cva("ml-auto size-4", {
|
|
11
|
+
variants: {
|
|
12
|
+
isSelected: {
|
|
13
|
+
true: "opacity-100",
|
|
14
|
+
false: "opacity-0"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
export function ButtonDropdown({ options, selectedValue, onSelectItem }) {
|
|
19
|
+
const [open, setOpen] = React.useState(false);
|
|
20
|
+
const onSelectItemMy = (item)=>{
|
|
21
|
+
onSelectItem(item);
|
|
22
|
+
setOpen(false);
|
|
23
|
+
};
|
|
24
|
+
const selectedOption = options.find((option)=>option.value === selectedValue)?.value;
|
|
25
|
+
return /*#__PURE__*/ _jsxs(Popover, {
|
|
26
|
+
open: open,
|
|
27
|
+
onOpenChange: setOpen,
|
|
28
|
+
children: [
|
|
29
|
+
/*#__PURE__*/ _jsx(PopoverTrigger, {
|
|
30
|
+
asChild: true,
|
|
31
|
+
children: /*#__PURE__*/ _jsxs(Button, {
|
|
32
|
+
variant: "link",
|
|
33
|
+
className: popoverTriggerButtonStyle,
|
|
34
|
+
children: [
|
|
35
|
+
/*#__PURE__*/ _jsx("span", {
|
|
36
|
+
className: "typo-body",
|
|
37
|
+
children: selectedOption
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ _jsx(Lucide.ChevronDownIcon, {})
|
|
40
|
+
]
|
|
41
|
+
})
|
|
42
|
+
}),
|
|
43
|
+
/*#__PURE__*/ _jsx(PopoverContent, {
|
|
44
|
+
className: "p-0",
|
|
45
|
+
children: /*#__PURE__*/ _jsxs(Command, {
|
|
46
|
+
children: [
|
|
47
|
+
/*#__PURE__*/ _jsx(CommandInput, {}),
|
|
48
|
+
/*#__PURE__*/ _jsx(CommandList, {
|
|
49
|
+
children: options.map((option)=>/*#__PURE__*/ _jsxs(CommandItem, {
|
|
50
|
+
"data-state": selectedOption === option.value ? "checked" : "unchecked",
|
|
51
|
+
value: option.value,
|
|
52
|
+
onSelect: onSelectItemMy,
|
|
53
|
+
children: [
|
|
54
|
+
option.label,
|
|
55
|
+
/*#__PURE__*/ _jsx(Lucide.CheckIcon, {
|
|
56
|
+
className: cn(checkIconStyles({
|
|
57
|
+
isSelected: selectedOption === option.value
|
|
58
|
+
}))
|
|
59
|
+
})
|
|
60
|
+
]
|
|
61
|
+
}, option.value))
|
|
62
|
+
})
|
|
63
|
+
]
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=button-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button-dropdown.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport * as Lucide from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button.js\";\nimport {\n\tCommand,\n\tCommandInput,\n\tCommandItem,\n\tCommandList,\n} from \"#shadcn/components/ui/command.js\";\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger,\n} from \"#shadcn/components/ui/popover\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nexport interface ButtonDropdownOption {\n\tvalue: string;\n\tlabel: string;\n}\n\nconst popoverTriggerButtonStyle = cn(\n\t\"text-text-secondary\",\n\t\"bg-gray-100\",\n\t\"rounded-full\",\n\t\"px-2 h-6\",\n);\n\nconst checkIconStyles = cva(\"ml-auto size-4\", {\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: \"opacity-100\",\n\t\t\tfalse: \"opacity-0\",\n\t\t},\n\t},\n});\n\nexport function ButtonDropdown({\n\toptions,\n\tselectedValue,\n\tonSelectItem,\n}: {\n\tselectedValue?: string;\n\toptions: ButtonDropdownOption[];\n\tonSelectItem: (item: string) => void;\n}) {\n\tconst [open, setOpen] = React.useState(false);\n\n\tconst onSelectItemMy = (item: string) => {\n\t\tonSelectItem(item);\n\t\tsetOpen(false);\n\t};\n\n\tconst selectedOption = options.find(\n\t\t(option) => option.value === selectedValue,\n\t)?.value;\n\n\treturn (\n\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t<PopoverTrigger asChild>\n\t\t\t\t<Button variant=\"link\" className={popoverTriggerButtonStyle}>\n\t\t\t\t\t<span className=\"typo-body\">{selectedOption}</span>\n\t\t\t\t\t<Lucide.ChevronDownIcon />\n\t\t\t\t</Button>\n\t\t\t</PopoverTrigger>\n\t\t\t<PopoverContent className=\"p-0\">\n\t\t\t\t<Command>\n\t\t\t\t\t<CommandInput></CommandInput>\n\t\t\t\t\t<CommandList>\n\t\t\t\t\t\t{options.map((option) => (\n\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\t\tdata-state={\n\t\t\t\t\t\t\t\t\tselectedOption === option.value ? \"checked\" : \"unchecked\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\t\t\tonSelect={onSelectItemMy}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t<Lucide.CheckIcon\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\tcheckIconStyles({\n\t\t\t\t\t\t\t\t\t\t\tisSelected: selectedOption === option.value,\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/>\n\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</CommandList>\n\t\t\t\t</Command>\n\t\t\t</PopoverContent>\n\t\t</Popover>\n\t);\n}\n"],"names":["cva","Lucide","React","Button","Command","CommandInput","CommandItem","CommandList","Popover","PopoverContent","PopoverTrigger","cn","popoverTriggerButtonStyle","checkIconStyles","variants","isSelected","true","false","ButtonDropdown","options","selectedValue","onSelectItem","open","setOpen","useState","onSelectItemMy","item","selectedOption","find","option","value","onOpenChange","asChild","variant","className","span","ChevronDownIcon","map","data-state","onSelect","label","CheckIcon"],"mappings":";AAAA,SAASA,GAAG,QAAQ,2BAA2B;AAC/C,YAAYC,YAAY,eAAe;AACvC,YAAYC,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,oCAAkC;AACzD,SACCC,OAAO,EACPC,YAAY,EACZC,WAAW,EACXC,WAAW,QACL,qCAAmC;AAC1C,SACCC,OAAO,EACPC,cAAc,EACdC,cAAc,QACR,qCAAgC;AACvC,SAASC,EAAE,QAAQ,yBAAoB;AAOvC,MAAMC,4BAA4BD,GACjC,uBACA,eACA,gBACA;AAGD,MAAME,kBAAkBb,IAAI,kBAAkB;IAC7Cc,UAAU;QACTC,YAAY;YACXC,MAAM;YACNC,OAAO;QACR;IACD;AACD;AAEA,OAAO,SAASC,eAAe,EAC9BC,OAAO,EACPC,aAAa,EACbC,YAAY,EAKZ;IACA,MAAM,CAACC,MAAMC,QAAQ,GAAGrB,MAAMsB,QAAQ,CAAC;IAEvC,MAAMC,iBAAiB,CAACC;QACvBL,aAAaK;QACbH,QAAQ;IACT;IAEA,MAAMI,iBAAiBR,QAAQS,IAAI,CAClC,CAACC,SAAWA,OAAOC,KAAK,KAAKV,gBAC3BU;IAEH,qBACC,MAACtB;QAAQc,MAAMA;QAAMS,cAAcR;;0BAClC,KAACb;gBAAesB,OAAO;0BACtB,cAAA,MAAC7B;oBAAO8B,SAAQ;oBAAOC,WAAWtB;;sCACjC,KAACuB;4BAAKD,WAAU;sCAAaP;;sCAC7B,KAAC1B,OAAOmC,eAAe;;;;0BAGzB,KAAC3B;gBAAeyB,WAAU;0BACzB,cAAA,MAAC9B;;sCACA,KAACC;sCACD,KAACE;sCACCY,QAAQkB,GAAG,CAAC,CAACR,uBACb,MAACvB;oCAEAgC,cACCX,mBAAmBE,OAAOC,KAAK,GAAG,YAAY;oCAE/CA,OAAOD,OAAOC,KAAK;oCACnBS,UAAUd;;wCAETI,OAAOW,KAAK;sDACb,KAACvC,OAAOwC,SAAS;4CAChBP,WAAWvB,GACVE,gBAAgB;gDACfE,YAAYY,mBAAmBE,OAAOC,KAAK;4CAC5C;;;mCAZGD,OAAOC,KAAK;;;;;;;AAsBzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const meta: {
|
|
2
|
+
title: string;
|
|
3
|
+
component: typeof ButtonDropdownDemo;
|
|
4
|
+
argTypes: {};
|
|
5
|
+
};
|
|
6
|
+
export default meta;
|
|
7
|
+
declare function ButtonDropdownDemo(): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const Default: {
|
|
9
|
+
render: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=button-dropdown.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-dropdown.stories.d.ts","sourceRoot":"","sources":["../../../src/components/button-dropdown.stories.tsx"],"names":[],"mappings":"AAIA,QAAA,MAAM,IAAI;;;;CAIM,CAAC;AACjB,eAAe,IAAI,CAAC;AAWpB,iBAAS,kBAAkB,4CAU1B;AAID,eAAO,MAAM,OAAO;;CAMH,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ButtonDropdown } from "./button-dropdown.js";
|
|
4
|
+
const meta = {
|
|
5
|
+
title: "Component/ButtonDropdown",
|
|
6
|
+
component: ButtonDropdownDemo,
|
|
7
|
+
argTypes: {}
|
|
8
|
+
};
|
|
9
|
+
export default meta;
|
|
10
|
+
// Demo component for Storybook
|
|
11
|
+
const demoOptions = [
|
|
12
|
+
{
|
|
13
|
+
value: "next.js",
|
|
14
|
+
label: "Next.js"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "sveltekit",
|
|
18
|
+
label: "SvelteKit"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
value: "nuxt.js",
|
|
22
|
+
label: "Nuxt.js"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
value: "remix",
|
|
26
|
+
label: "Remix"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
value: "astro",
|
|
30
|
+
label: "Astro"
|
|
31
|
+
}
|
|
32
|
+
];
|
|
33
|
+
function ButtonDropdownDemo() {
|
|
34
|
+
const [value, setValue] = React.useState("next.js");
|
|
35
|
+
return /*#__PURE__*/ _jsx(ButtonDropdown, {
|
|
36
|
+
options: demoOptions,
|
|
37
|
+
selectedValue: value,
|
|
38
|
+
onSelectItem: setValue
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export const Default = {
|
|
42
|
+
render: ()=>/*#__PURE__*/ _jsx("div", {
|
|
43
|
+
className: "w-[560px]",
|
|
44
|
+
children: /*#__PURE__*/ _jsx(ButtonDropdownDemo, {})
|
|
45
|
+
})
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=button-dropdown.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button-dropdown.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport React from \"react\";\nimport { ButtonDropdown } from \"./button-dropdown\";\n\nconst meta = {\n\ttitle: \"Component/ButtonDropdown\",\n\tcomponent: ButtonDropdownDemo,\n\targTypes: {},\n} satisfies Meta;\nexport default meta;\n\n// Demo component for Storybook\nconst demoOptions = [\n\t{ value: \"next.js\", label: \"Next.js\" },\n\t{ value: \"sveltekit\", label: \"SvelteKit\" },\n\t{ value: \"nuxt.js\", label: \"Nuxt.js\" },\n\t{ value: \"remix\", label: \"Remix\" },\n\t{ value: \"astro\", label: \"Astro\" },\n];\n\nfunction ButtonDropdownDemo() {\n\tconst [value, setValue] = React.useState(\"next.js\");\n\n\treturn (\n\t\t<ButtonDropdown\n\t\t\toptions={demoOptions}\n\t\t\tselectedValue={value}\n\t\t\tonSelectItem={setValue}\n\t\t/>\n\t);\n}\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default = {\n\trender: () => (\n\t\t<div className=\"w-[560px]\">\n\t\t\t<ButtonDropdownDemo />\n\t\t</div>\n\t),\n} satisfies Story;\n"],"names":["React","ButtonDropdown","meta","title","component","ButtonDropdownDemo","argTypes","demoOptions","value","label","setValue","useState","options","selectedValue","onSelectItem","Default","render","div","className"],"mappings":";AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,cAAc,QAAQ,uBAAoB;AAEnD,MAAMC,OAAO;IACZC,OAAO;IACPC,WAAWC;IACXC,UAAU,CAAC;AACZ;AACA,eAAeJ,KAAK;AAEpB,+BAA+B;AAC/B,MAAMK,cAAc;IACnB;QAAEC,OAAO;QAAWC,OAAO;IAAU;IACrC;QAAED,OAAO;QAAaC,OAAO;IAAY;IACzC;QAAED,OAAO;QAAWC,OAAO;IAAU;IACrC;QAAED,OAAO;QAASC,OAAO;IAAQ;IACjC;QAAED,OAAO;QAASC,OAAO;IAAQ;CACjC;AAED,SAASJ;IACR,MAAM,CAACG,OAAOE,SAAS,GAAGV,MAAMW,QAAQ,CAAC;IAEzC,qBACC,KAACV;QACAW,SAASL;QACTM,eAAeL;QACfM,cAAcJ;;AAGjB;AAIA,OAAO,MAAMK,UAAU;IACtBC,QAAQ,kBACP,KAACC;YAAIC,WAAU;sBACd,cAAA,KAACb;;AAGJ,EAAkB"}
|
|
@@ -2,7 +2,8 @@ import { type ColumnDef } from "@tanstack/react-table";
|
|
|
2
2
|
export interface DataTableProps<TData, TValue> {
|
|
3
3
|
columns: ColumnDef<TData, TValue>[];
|
|
4
4
|
data: TData[];
|
|
5
|
+
stickyHeader?: boolean;
|
|
5
6
|
}
|
|
6
|
-
export declare function DataTable<TData, TValue>({ columns, data, }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function DataTable<TData, TValue>({ columns, data, stickyHeader, }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
7
8
|
export type { ColumnDef };
|
|
8
9
|
//# 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,SAAS,EAId,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,MAAM;IAC5C,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/components/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,SAAS,EAId,MAAM,uBAAuB,CAAC;AAW/B,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,MAAM;IAC5C,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EACxC,OAAO,EACP,IAAI,EACJ,YAAoB,GACpB,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,2CAyF/B;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { flexRender, getCoreRowModel, useReactTable } from "@tanstack/react-table";
|
|
4
4
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "../shadcn/components/ui/table.js";
|
|
5
|
-
export function DataTable({ columns, data }) {
|
|
5
|
+
export function DataTable({ columns, data, stickyHeader = false }) {
|
|
6
|
+
"use no memo";
|
|
6
7
|
const table = useReactTable({
|
|
7
8
|
data,
|
|
8
9
|
columns,
|
|
@@ -11,15 +12,15 @@ export function DataTable({ columns, data }) {
|
|
|
11
12
|
enableColumnResizing: true
|
|
12
13
|
});
|
|
13
14
|
return /*#__PURE__*/ _jsx("div", {
|
|
14
|
-
className: "overflow-hidden w-full",
|
|
15
|
+
className: "overflow-hidden w-full h-full",
|
|
15
16
|
children: /*#__PURE__*/ _jsxs(Table, {
|
|
16
|
-
className: "w-full",
|
|
17
|
+
className: "relative border-spacing-0 border-separate w-full",
|
|
17
18
|
children: [
|
|
18
19
|
/*#__PURE__*/ _jsx(TableHeader, {
|
|
19
20
|
children: table.getHeaderGroups().map((headerGroup)=>/*#__PURE__*/ _jsx(TableRow, {
|
|
20
21
|
children: headerGroup.headers.map((header)=>{
|
|
21
22
|
return /*#__PURE__*/ _jsxs(TableHead, {
|
|
22
|
-
className:
|
|
23
|
+
className: `relative group border ${stickyHeader ? "sticky top-0 z-10 bg-bg-secondary text-elements-assistive" : ""}`,
|
|
23
24
|
style: {
|
|
24
25
|
width: header.column.getIndex() === headerGroup.headers.length - 1 ? "w-full" : header.getSize()
|
|
25
26
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport {\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, TValue> {\n\tcolumns: ColumnDef<TData, TValue>[];\n\tdata: TData[];\n}\n\nexport function DataTable<TData, TValue>({\n\tcolumns,\n\tdata,\n}: DataTableProps<TData, TValue>) {\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\">\n\t\t\t<Table className=\"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
|
|
1
|
+
{"version":3,"sources":["../../../src/components/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport {\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, TValue> {\n\tcolumns: ColumnDef<TData, TValue>[];\n\tdata: TData[];\n\tstickyHeader?: boolean;\n}\n\nexport function DataTable<TData, TValue>({\n\tcolumns,\n\tdata,\n\tstickyHeader = false,\n}: DataTableProps<TData, TValue>) {\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 };\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,SAECA,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,UAAyB,EACxCC,OAAO,EACPC,IAAI,EACJC,eAAe,KAAK,EACW;IAC/B;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 +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,CAIhC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AASxC,eAAO,MAAM,OAAO,EAAE,
|
|
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,CAIhC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AASxC,eAAO,MAAM,OAAO,EAAE,KAqErB,CAAC"}
|
|
@@ -30,6 +30,202 @@ export const Default = {
|
|
|
30
30
|
{
|
|
31
31
|
name: "John Doe",
|
|
32
32
|
age: 30
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: "Jane Smith",
|
|
36
|
+
age: 25
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "Bob Johnson",
|
|
40
|
+
age: 42
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "Alice Williams",
|
|
44
|
+
age: 35
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "Charlie Brown",
|
|
48
|
+
age: 28
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "Diana Prince",
|
|
52
|
+
age: 31
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "Edward Norton",
|
|
56
|
+
age: 45
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: "Fiona Green",
|
|
60
|
+
age: 27
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: "George Miller",
|
|
64
|
+
age: 38
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "Hannah Davis",
|
|
68
|
+
age: 33
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "Ian Moore",
|
|
72
|
+
age: 29
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "Julia Taylor",
|
|
76
|
+
age: 41
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "Kevin Anderson",
|
|
80
|
+
age: 36
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "Laura Thomas",
|
|
84
|
+
age: 32
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "Michael Jackson",
|
|
88
|
+
age: 44
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: "Nancy Wilson",
|
|
92
|
+
age: 26
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "Oscar Martinez",
|
|
96
|
+
age: 39
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "Patricia Lee",
|
|
100
|
+
age: 34
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "Quinn Harris",
|
|
104
|
+
age: 37
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: "Rachel Clark",
|
|
108
|
+
age: 40
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "Samuel Wright",
|
|
112
|
+
age: 43
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "Tina Turner",
|
|
116
|
+
age: 48
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "Ulysses Grant",
|
|
120
|
+
age: 52
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: "Victoria Baker",
|
|
124
|
+
age: 29
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "William Scott",
|
|
128
|
+
age: 35
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "Xavier Adams",
|
|
132
|
+
age: 31
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: "Yolanda King",
|
|
136
|
+
age: 38
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "Zachary Nelson",
|
|
140
|
+
age: 27
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "Amy Carter",
|
|
144
|
+
age: 33
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: "Benjamin Hall",
|
|
148
|
+
age: 46
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "Catherine Allen",
|
|
152
|
+
age: 24
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "David Young",
|
|
156
|
+
age: 41
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: "Emily Walker",
|
|
160
|
+
age: 36
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "Frank Robinson",
|
|
164
|
+
age: 39
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "Grace White",
|
|
168
|
+
age: 28
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "Henry Lewis",
|
|
172
|
+
age: 47
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
name: "Isabella Hill",
|
|
176
|
+
age: 32
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: "Jack Martin",
|
|
180
|
+
age: 34
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: "Katherine Garcia",
|
|
184
|
+
age: 30
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: "Louis Rodriguez",
|
|
188
|
+
age: 45
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "Margaret Martinez",
|
|
192
|
+
age: 37
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: "Nathan Hernandez",
|
|
196
|
+
age: 26
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
name: "Olivia Lopez",
|
|
200
|
+
age: 29
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: "Peter Gonzalez",
|
|
204
|
+
age: 43
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
name: "Quincy Wilson",
|
|
208
|
+
age: 38
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: "Rebecca Anderson",
|
|
212
|
+
age: 31
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
name: "Steven Thomas",
|
|
216
|
+
age: 44
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
name: "Teresa Taylor",
|
|
220
|
+
age: 35
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
name: "Ursula Moore",
|
|
224
|
+
age: 40
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "Victor Jackson",
|
|
228
|
+
age: 42
|
|
33
229
|
}
|
|
34
230
|
]
|
|
35
231
|
},
|
|
@@ -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> = {\n\ttitle: \"Component/Data table\",\n\tcomponent: DataTable,\n\ttags: [\"autodocs\"],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof DataTable>;\n\nfunction DataTableWrapper<TData, TValue>({\n\tcolumns,\n\tdata,\n}: DataTableProps<TData, TValue>) {\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: [{ name: \"John Doe\", age: 30 }],\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":";AACA,SAASA,SAAS,QAA6B,kBAAe;AAE9D,MAAMC,OAA+B;IACpCC,OAAO;IACPC,WAAWH;IACXI,MAAM;QAAC;KAAW;AACnB;AAEA,eAAeH,KAAK;AAGpB,SAASI,iBAAgC,EACxCC,OAAO,EACPC,IAAI,EAC2B;IAC/B,qBAAO,KAACP;QAAUM,SAASA;QAASC,MAAMA;;AAC3C;AAEA,OAAO,MAAMC,UAAiB;IAC7BC,MAAM;QACLH,SAAS;YACR;gBACCI,QAAQ;gBACRC,aAAa;YACd;YACA;gBACCD,QAAQ;gBACRC,aAAa;YACd;SACA;QACDJ,MAAM;
|
|
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> = {\n\ttitle: \"Component/Data table\",\n\tcomponent: DataTable,\n\ttags: [\"autodocs\"],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof DataTable>;\n\nfunction DataTableWrapper<TData, TValue>({\n\tcolumns,\n\tdata,\n}: DataTableProps<TData, TValue>) {\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":"fhir-structure-view.d.ts","sourceRoot":"","sources":["../../../src/components/fhir-structure-view.tsx"],"names":[],"mappings":"AASA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,KAAK,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,UAAU,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,WAAW,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,OAAO,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE,UAAU,CAAC;CAC1B,CAAC;AA4JF,QAAA,MAAM,iBAAiB,GAAI,WAExB;IACF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;CAClD,
|
|
1
|
+
{"version":3,"file":"fhir-structure-view.d.ts","sourceRoot":"","sources":["../../../src/components/fhir-structure-view.tsx"],"names":[],"mappings":"AASA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,KAAK,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,UAAU,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,WAAW,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,OAAO,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE,UAAU,CAAC;CAC1B,CAAC;AA4JF,QAAA,MAAM,iBAAiB,GAAI,WAExB;IACF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;CAClD,4CA0BA,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,CAAC"}
|
|
@@ -56,7 +56,7 @@ const customItemView = (item)=>{
|
|
|
56
56
|
const binding = item.getItemData()?.meta?.binding;
|
|
57
57
|
const vsCoordinate = item.getItemData()?.meta?.vsCoordinate;
|
|
58
58
|
return /*#__PURE__*/ _jsxs("div", {
|
|
59
|
-
className: "flex items-start gap-2",
|
|
59
|
+
className: "flex items-start gap-2 text-xs",
|
|
60
60
|
children: [
|
|
61
61
|
/*#__PURE__*/ _jsxs("div", {
|
|
62
62
|
className: customItemFieldNameClass,
|
|
@@ -181,13 +181,13 @@ const FhirStructureView = ({ tree })=>{
|
|
|
181
181
|
tree
|
|
182
182
|
]);
|
|
183
183
|
return /*#__PURE__*/ _jsxs("div", {
|
|
184
|
-
className: "
|
|
184
|
+
className: "h-fit w-fit min-h-0 min-w-0",
|
|
185
185
|
children: [
|
|
186
186
|
/*#__PURE__*/ _jsxs("div", {
|
|
187
|
-
className: "flex items-center gap-2 font-semibold text-text-secondary border-b
|
|
187
|
+
className: "flex items-center gap-2 font-semibold text-xs text-text-secondary border-b py-2 bg-bg-primary sticky top-0 z-20",
|
|
188
188
|
children: [
|
|
189
189
|
/*#__PURE__*/ _jsx("div", {
|
|
190
|
-
className: "min-w-[260px] w-[260px] ml-
|
|
190
|
+
className: "min-w-[260px] w-[260px] ml-4",
|
|
191
191
|
children: "Name"
|
|
192
192
|
}),
|
|
193
193
|
/*#__PURE__*/ _jsx("div", {
|
|
@@ -208,18 +208,15 @@ const FhirStructureView = ({ tree })=>{
|
|
|
208
208
|
})
|
|
209
209
|
]
|
|
210
210
|
}),
|
|
211
|
-
/*#__PURE__*/ _jsx(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
customItemView: customItemView,
|
|
221
|
-
expandedItemIds: expandedItemIds
|
|
222
|
-
})
|
|
211
|
+
/*#__PURE__*/ _jsx(TreeView, {
|
|
212
|
+
hideChevron: true,
|
|
213
|
+
horizontalLines: true,
|
|
214
|
+
disableHover: true,
|
|
215
|
+
zebra: true,
|
|
216
|
+
rootItemId: "root",
|
|
217
|
+
items: tree,
|
|
218
|
+
customItemView: customItemView,
|
|
219
|
+
expandedItemIds: expandedItemIds
|
|
223
220
|
})
|
|
224
221
|
]
|
|
225
222
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/fhir-structure-view.tsx"],"sourcesContent":["import type { ItemInstance } from \"@headless-tree/core\";\nimport React from \"react\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { cn } from \"#shadcn/lib/utils.js\";\nimport * as CustomIcon from \"../icons\";\nimport { TreeView, type TreeViewItem } from \"./tree-view\";\n\ntype PackageSpec = {\n\tname: string;\n\tversion: string;\n};\n\ntype Coordinate = {\n\tid: string;\n\tpackageSpec: PackageSpec;\n\t\"package-spec\": PackageSpec;\n\tlabel: string;\n};\n\ntype FhirStructure = {\n\ttype?: string;\n\tmin?: string;\n\tmax?: string;\n\tlastNode?: boolean;\n\tisSummary?: boolean;\n\tisModifier?: boolean;\n\tmustSupport?: boolean;\n\tdatatype?: string;\n\tshort?: string;\n\tdesc?: string;\n\textensionUrl?: string;\n\textensionCoordinate?: Coordinate;\n\tbinding?: {\n\t\tvalueSet: string;\n\t};\n\tvsCoordinate?: Coordinate;\n};\n\nconst FiledIcon = (item: ItemInstance<TreeViewItem<FhirStructure>>) => {\n\tconst filedType = item.getItemData()?.meta?.type;\n\n\tswitch (filedType) {\n\t\tcase \"Resource\":\n\t\t\treturn <CustomIcon.ResourceIcon />;\n\t\tcase \"BackboneElement\":\n\t\t\treturn <CustomIcon.BackoneElementIcon />;\n\t\tcase \"Reference\":\n\t\t\treturn <CustomIcon.ReferenceIcon />;\n\t\tcase \"union\":\n\t\t\treturn <CustomIcon.UnionIcon />;\n\t\tcase \"instant\":\n\t\tcase \"time\":\n\t\tcase \"date\":\n\t\tcase \"dateTime\":\n\t\tcase \"decimal\":\n\t\tcase \"boolean\":\n\t\tcase \"integer\":\n\t\tcase \"string\":\n\t\tcase \"uri\":\n\t\tcase \"base64Binary\":\n\t\tcase \"code\":\n\t\tcase \"id\":\n\t\tcase \"oid\":\n\t\tcase \"unsignedInt\":\n\t\tcase \"positiveInt\":\n\t\tcase \"markdown\":\n\t\tcase \"url\":\n\t\tcase \"canonical\":\n\t\tcase \"uuid\":\n\t\tcase \"integer64\":\n\t\t\treturn <CustomIcon.TypCodeIcon />;\n\t\tdefault:\n\t\t\treturn <CustomIcon.ComplexTypeIcon />;\n\t}\n};\n\nconst customItemFieldNameClass = cn(\n\t\"flex\",\n\t\"items-center\",\n\t\"truncate\",\n\t\"gap-2\",\n\t\"min-w-[calc(260px-var(--tree-padding))]\",\n\t\"w-[calc(260px-var(--tree-padding))]\",\n\t\"in-data-[folder=true]:w-[calc(260px-var(--tree-padding))]\",\n\t\"in-data-[folder=true]:min-w-[calc(260px-var(--tree-padding))]\",\n);\n\nconst customItemView = (item: ItemInstance<TreeViewItem<FhirStructure>>) => {\n\tconst fieldName = item.getItemData()?.name;\n\tconst cardinalityMin = item.getItemData()?.meta?.min;\n\tconst cardinalityMax = item.getItemData()?.meta?.max;\n\tconst isSummary = item.getItemData()?.meta?.isSummary;\n\tconst isModifier = item.getItemData()?.meta?.isModifier;\n\tconst mustSupport = item.getItemData()?.meta?.mustSupport;\n\tconst datatype = item.getItemData()?.meta?.type;\n\tconst short = item.getItemData()?.meta?.short;\n\tconst desc = item.getItemData()?.meta?.desc;\n\tconst extensionUrl = item.getItemData()?.meta?.extensionUrl;\n\tconst extensionCoordinate = item.getItemData()?.meta?.extensionCoordinate;\n\tconst binding = item.getItemData()?.meta?.binding;\n\tconst vsCoordinate = item.getItemData()?.meta?.vsCoordinate;\n\treturn (\n\t\t<div className=\"flex items-start gap-2\">\n\t\t\t<div className={customItemFieldNameClass}>\n\t\t\t\t{FiledIcon(item)}\n\t\t\t\t{fieldName}\n\t\t\t</div>\n\n\t\t\t<div className=\"flex items-center gap-1 min-w-[60px] w-[60px]\">\n\t\t\t\t{mustSupport && (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"px-[2px] max-h-[20px] text-white bg-red-600 rounded cursor-help\">\n\t\t\t\t\t\t\t\tS\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t<p>Must be supported</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{isSummary && (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"px-[2px] max-h-[20px] cursor-help\">Σ</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t<p>Part of the summary set</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{isModifier && (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"px-[2px] max-h-[20px] cursor-help\">!?</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t<p>Modifying element</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className=\"flex items-center gap-1 min-w-[50px] w-[50px] typo-code\">\n\t\t\t\t{cardinalityMin && cardinalityMax\n\t\t\t\t\t? `${cardinalityMin}..${cardinalityMax}`\n\t\t\t\t\t: \"\"}\n\t\t\t</div>\n\t\t\t<div className=\"flex gap-1 w-[200px] min-w-[200px]\">\n\t\t\t\t{datatype !== \"union\" && datatype}\n\t\t\t</div>\n\t\t\t<div className=\"text-left overflow-hidden\">\n\t\t\t\t{short && <div className=\"line-clamp-2\">{short}</div>}\n\t\t\t\t{!short && desc && <div className=\"line-clamp-2\">{desc}</div>}\n\t\t\t\t{extensionUrl && (\n\t\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t\t<span>URL:</span>\n\t\t\t\t\t\t{extensionCoordinate?.id ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={`#/ig/${extensionCoordinate?.[\"package-spec\"]?.name || extensionCoordinate?.packageSpec?.name}#${extensionCoordinate?.[\"package-spec\"]?.version || extensionCoordinate?.packageSpec?.version}/sd/${extensionCoordinate?.id}`}\n\t\t\t\t\t\t\t\tclassName=\"font-medium hover:underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{extensionCoordinate?.label || extensionUrl}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"font-medium\">\n\t\t\t\t\t\t\t\t{extensionCoordinate?.label || extensionUrl}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{binding && (\n\t\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t\t<span>Binding:</span>\n\t\t\t\t\t\t{vsCoordinate?.id ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={`#/ig/${vsCoordinate?.[\"package-spec\"]?.name || vsCoordinate?.packageSpec?.name}#${vsCoordinate?.[\"package-spec\"]?.version || vsCoordinate?.packageSpec?.version}/vs/${vsCoordinate?.id}`}\n\t\t\t\t\t\t\t\tclassName=\"font-medium hover:underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{vsCoordinate?.label || binding?.valueSet || \"Binding\"}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"font-medium\">\n\t\t\t\t\t\t\t\t{vsCoordinate?.label || binding?.valueSet || \"Binding\"}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst FhirStructureView = ({\n\ttree,\n}: {\n\ttree: Record<string, TreeViewItem<FhirStructure>>;\n}) => {\n\tconst expandedItemIds = React.useMemo(() => {\n\t\treturn Object.keys(tree ?? {});\n\t}, [tree]);\n\n\treturn (\n\t\t<div className=\"flex flex-col h-full\">\n\t\t\t<div className=\"flex items-center gap-2 font-semibold text-text-secondary border-b pb-2 bg-bg-primary sticky top-0 z-10\">\n\t\t\t\t<div className=\"min-w-[260px] w-[260px] ml-9\">Name</div>\n\t\t\t\t<div className=\"min-w-[60px] w-[60px]\">Flags</div>\n\t\t\t\t<div className=\"min-w-[50px] w-[50px]\">Card.</div>\n\t\t\t\t<div className=\"min-w-[200px] w-[200px]\">Type</div>\n\t\t\t\t<div className=\"min-w-[200px] w-[200px]\">Description</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex-1 overflow-auto\">\n\t\t\t\t<TreeView\n\t\t\t\t\thideChevron={true}\n\t\t\t\t\thorizontalLines={true}\n\t\t\t\t\tdisableHover={true}\n\t\t\t\t\tzebra={true}\n\t\t\t\t\trootItemId=\"root\"\n\t\t\t\t\titems={tree}\n\t\t\t\t\tcustomItemView={customItemView}\n\t\t\t\t\texpandedItemIds={expandedItemIds}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport { FhirStructureView, type FhirStructure };\n"],"names":["React","Tooltip","TooltipContent","TooltipTrigger","cn","CustomIcon","TreeView","FiledIcon","item","filedType","getItemData","meta","type","ResourceIcon","BackoneElementIcon","ReferenceIcon","UnionIcon","TypCodeIcon","ComplexTypeIcon","customItemFieldNameClass","customItemView","fieldName","name","cardinalityMin","min","cardinalityMax","max","isSummary","isModifier","mustSupport","datatype","short","desc","extensionUrl","extensionCoordinate","binding","vsCoordinate","div","className","asChild","span","p","id","a","href","packageSpec","version","label","valueSet","FhirStructureView","tree","expandedItemIds","useMemo","Object","keys","hideChevron","horizontalLines","disableHover","zebra","rootItemId","items"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/fhir-structure-view.tsx"],"sourcesContent":["import type { ItemInstance } from \"@headless-tree/core\";\nimport React from \"react\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { cn } from \"#shadcn/lib/utils.js\";\nimport * as CustomIcon from \"../icons\";\nimport { TreeView, type TreeViewItem } from \"./tree-view\";\n\ntype PackageSpec = {\n\tname: string;\n\tversion: string;\n};\n\ntype Coordinate = {\n\tid: string;\n\tpackageSpec: PackageSpec;\n\t\"package-spec\": PackageSpec;\n\tlabel: string;\n};\n\ntype FhirStructure = {\n\ttype?: string;\n\tmin?: string;\n\tmax?: string;\n\tlastNode?: boolean;\n\tisSummary?: boolean;\n\tisModifier?: boolean;\n\tmustSupport?: boolean;\n\tdatatype?: string;\n\tshort?: string;\n\tdesc?: string;\n\textensionUrl?: string;\n\textensionCoordinate?: Coordinate;\n\tbinding?: {\n\t\tvalueSet: string;\n\t};\n\tvsCoordinate?: Coordinate;\n};\n\nconst FiledIcon = (item: ItemInstance<TreeViewItem<FhirStructure>>) => {\n\tconst filedType = item.getItemData()?.meta?.type;\n\n\tswitch (filedType) {\n\t\tcase \"Resource\":\n\t\t\treturn <CustomIcon.ResourceIcon />;\n\t\tcase \"BackboneElement\":\n\t\t\treturn <CustomIcon.BackoneElementIcon />;\n\t\tcase \"Reference\":\n\t\t\treturn <CustomIcon.ReferenceIcon />;\n\t\tcase \"union\":\n\t\t\treturn <CustomIcon.UnionIcon />;\n\t\tcase \"instant\":\n\t\tcase \"time\":\n\t\tcase \"date\":\n\t\tcase \"dateTime\":\n\t\tcase \"decimal\":\n\t\tcase \"boolean\":\n\t\tcase \"integer\":\n\t\tcase \"string\":\n\t\tcase \"uri\":\n\t\tcase \"base64Binary\":\n\t\tcase \"code\":\n\t\tcase \"id\":\n\t\tcase \"oid\":\n\t\tcase \"unsignedInt\":\n\t\tcase \"positiveInt\":\n\t\tcase \"markdown\":\n\t\tcase \"url\":\n\t\tcase \"canonical\":\n\t\tcase \"uuid\":\n\t\tcase \"integer64\":\n\t\t\treturn <CustomIcon.TypCodeIcon />;\n\t\tdefault:\n\t\t\treturn <CustomIcon.ComplexTypeIcon />;\n\t}\n};\n\nconst customItemFieldNameClass = cn(\n\t\"flex\",\n\t\"items-center\",\n\t\"truncate\",\n\t\"gap-2\",\n\t\"min-w-[calc(260px-var(--tree-padding))]\",\n\t\"w-[calc(260px-var(--tree-padding))]\",\n\t\"in-data-[folder=true]:w-[calc(260px-var(--tree-padding))]\",\n\t\"in-data-[folder=true]:min-w-[calc(260px-var(--tree-padding))]\",\n);\n\nconst customItemView = (item: ItemInstance<TreeViewItem<FhirStructure>>) => {\n\tconst fieldName = item.getItemData()?.name;\n\tconst cardinalityMin = item.getItemData()?.meta?.min;\n\tconst cardinalityMax = item.getItemData()?.meta?.max;\n\tconst isSummary = item.getItemData()?.meta?.isSummary;\n\tconst isModifier = item.getItemData()?.meta?.isModifier;\n\tconst mustSupport = item.getItemData()?.meta?.mustSupport;\n\tconst datatype = item.getItemData()?.meta?.type;\n\tconst short = item.getItemData()?.meta?.short;\n\tconst desc = item.getItemData()?.meta?.desc;\n\tconst extensionUrl = item.getItemData()?.meta?.extensionUrl;\n\tconst extensionCoordinate = item.getItemData()?.meta?.extensionCoordinate;\n\tconst binding = item.getItemData()?.meta?.binding;\n\tconst vsCoordinate = item.getItemData()?.meta?.vsCoordinate;\n\treturn (\n\t\t<div className=\"flex items-start gap-2 text-xs\">\n\t\t\t<div className={customItemFieldNameClass}>\n\t\t\t\t{FiledIcon(item)}\n\t\t\t\t{fieldName}\n\t\t\t</div>\n\n\t\t\t<div className=\"flex items-center gap-1 min-w-[60px] w-[60px]\">\n\t\t\t\t{mustSupport && (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"px-[2px] max-h-[20px] text-white bg-red-600 rounded cursor-help\">\n\t\t\t\t\t\t\t\tS\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t<p>Must be supported</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{isSummary && (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"px-[2px] max-h-[20px] cursor-help\">Σ</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t<p>Part of the summary set</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{isModifier && (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t<span className=\"px-[2px] max-h-[20px] cursor-help\">!?</span>\n\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t<p>Modifying element</p>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className=\"flex items-center gap-1 min-w-[50px] w-[50px] typo-code\">\n\t\t\t\t{cardinalityMin && cardinalityMax\n\t\t\t\t\t? `${cardinalityMin}..${cardinalityMax}`\n\t\t\t\t\t: \"\"}\n\t\t\t</div>\n\t\t\t<div className=\"flex gap-1 w-[200px] min-w-[200px]\">\n\t\t\t\t{datatype !== \"union\" && datatype}\n\t\t\t</div>\n\t\t\t<div className=\"text-left overflow-hidden\">\n\t\t\t\t{short && <div className=\"line-clamp-2\">{short}</div>}\n\t\t\t\t{!short && desc && <div className=\"line-clamp-2\">{desc}</div>}\n\t\t\t\t{extensionUrl && (\n\t\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t\t<span>URL:</span>\n\t\t\t\t\t\t{extensionCoordinate?.id ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={`#/ig/${extensionCoordinate?.[\"package-spec\"]?.name || extensionCoordinate?.packageSpec?.name}#${extensionCoordinate?.[\"package-spec\"]?.version || extensionCoordinate?.packageSpec?.version}/sd/${extensionCoordinate?.id}`}\n\t\t\t\t\t\t\t\tclassName=\"font-medium hover:underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{extensionCoordinate?.label || extensionUrl}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"font-medium\">\n\t\t\t\t\t\t\t\t{extensionCoordinate?.label || extensionUrl}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{binding && (\n\t\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t\t<span>Binding:</span>\n\t\t\t\t\t\t{vsCoordinate?.id ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={`#/ig/${vsCoordinate?.[\"package-spec\"]?.name || vsCoordinate?.packageSpec?.name}#${vsCoordinate?.[\"package-spec\"]?.version || vsCoordinate?.packageSpec?.version}/vs/${vsCoordinate?.id}`}\n\t\t\t\t\t\t\t\tclassName=\"font-medium hover:underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{vsCoordinate?.label || binding?.valueSet || \"Binding\"}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"font-medium\">\n\t\t\t\t\t\t\t\t{vsCoordinate?.label || binding?.valueSet || \"Binding\"}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst FhirStructureView = ({\n\ttree,\n}: {\n\ttree: Record<string, TreeViewItem<FhirStructure>>;\n}) => {\n\tconst expandedItemIds = React.useMemo(() => {\n\t\treturn Object.keys(tree ?? {});\n\t}, [tree]);\n\n\treturn (\n\t\t<div className=\"h-fit w-fit min-h-0 min-w-0\">\n\t\t\t<div className=\"flex items-center gap-2 font-semibold text-xs text-text-secondary border-b py-2 bg-bg-primary sticky top-0 z-20\">\n\t\t\t\t<div className=\"min-w-[260px] w-[260px] ml-4\">Name</div>\n\t\t\t\t<div className=\"min-w-[60px] w-[60px]\">Flags</div>\n\t\t\t\t<div className=\"min-w-[50px] w-[50px]\">Card.</div>\n\t\t\t\t<div className=\"min-w-[200px] w-[200px]\">Type</div>\n\t\t\t\t<div className=\"min-w-[200px] w-[200px]\">Description</div>\n\t\t\t</div>\n\t\t\t<TreeView\n\t\t\t\thideChevron={true}\n\t\t\t\thorizontalLines={true}\n\t\t\t\tdisableHover={true}\n\t\t\t\tzebra={true}\n\t\t\t\trootItemId=\"root\"\n\t\t\t\titems={tree}\n\t\t\t\tcustomItemView={customItemView}\n\t\t\t\texpandedItemIds={expandedItemIds}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport { FhirStructureView, type FhirStructure };\n"],"names":["React","Tooltip","TooltipContent","TooltipTrigger","cn","CustomIcon","TreeView","FiledIcon","item","filedType","getItemData","meta","type","ResourceIcon","BackoneElementIcon","ReferenceIcon","UnionIcon","TypCodeIcon","ComplexTypeIcon","customItemFieldNameClass","customItemView","fieldName","name","cardinalityMin","min","cardinalityMax","max","isSummary","isModifier","mustSupport","datatype","short","desc","extensionUrl","extensionCoordinate","binding","vsCoordinate","div","className","asChild","span","p","id","a","href","packageSpec","version","label","valueSet","FhirStructureView","tree","expandedItemIds","useMemo","Object","keys","hideChevron","horizontalLines","disableHover","zebra","rootItemId","items"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment-control.d.ts","sourceRoot":"","sources":["../../../src/components/segment-control.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAWlE,MAAM,WAAW,mBAAmB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,uBAAuB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"segment-control.d.ts","sourceRoot":"","sources":["../../../src/components/segment-control.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAWlE,MAAM,WAAW,mBAAmB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,uBAAuB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACd;AAgBD,QAAA,MAAM,kBAAkB,GAAI,qBAAqB,uBAAuB,4CAqBvE,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,kDAKrB,mBAAmB,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,4CAchD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
3
|
import { cn } from "../shadcn/lib/utils.js";
|
|
4
4
|
const SegmentControlContext = /*#__PURE__*/ createContext({});
|
|
5
|
-
const segmentControlItemClass = cn("flex", "items-center", "justify-center", "px-2", "py-0.5", "text-sm", "cursor-pointer", "rounded-2xl", "text-white/80", "peer-checked:bg-bg-primary", "peer-checked:text-text-secondary");
|
|
5
|
+
const segmentControlItemClass = cn("flex", "items-center", "justify-center", "px-2", "py-0.5", "text-sm", "cursor-pointer", "rounded-2xl", "text-white/80", "peer-checked:bg-bg-primary", "peer-checked:text-text-secondary", "select-none");
|
|
6
6
|
const SegmentControlItem = ({ children, value })=>{
|
|
7
7
|
const { defaultValue, onValueChange, name } = useContext(SegmentControlContext);
|
|
8
8
|
return /*#__PURE__*/ _jsxs("div", {
|