@infinilabs/doc-detail 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode("*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:root{--color-primary: #1677ff;--color-border: #d9d9d9;--color-primary-bg: #e6f4ff;--color-text-secondary: rgba(0,0,0,.65);--color-bg-layout: #f5f5f5}.dark{--color-primary: #1668dc;--color-border: #424242;--color-primary-bg: #15325b;--color-text-secondary: rgba(255,255,255,.65);--color-bg-layout: #000000}.float-left{float:left}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mr-3{margin-right:.75rem}.children\\:size-4>*{width:1rem;height:1rem}.size-3{width:.75rem;height:.75rem}.size-6{width:1.5rem;height:1.5rem}.children\\:h-unset\\!>*{height:unset!important}.children\\:w-full\\!>*{width:100%!important}.h-full{height:100%}.w-1\\/2{width:50%}.w-24{width:6rem}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.rotate-90{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:90deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\\.5{gap:.125rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-row-2{row-gap:.5rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.border{border-width:1px}.border-border{border-color:var(--color-border)}.rounded-lg{border-radius:.5rem}.border-solid{border-style:solid}.bg-black\\/3{background-color:#00000008}.bg-transparent{background-color:transparent}.dark .dark\\:bg-white\\/4{background-color:#ffffff0a}.\\[\\&\\>\\.docx\\]\\:p-0\\!>.docx{padding:0!important}.p-4{padding:1rem}.p-4\\!{padding:1rem!important}.pl-2{padding-left:.5rem}.text-3{font-size:.75rem}.text-3\\.5{font-size:.875rem}.text-4\\.5\\/6{font-size:1.125rem;line-height:1.5rem}.text-primary,.hover\\:text-primary:hover{color:var(--color-primary)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media(max-width:639.9px){.\\<sm\\:w-full{width:100%}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}")),document.head.appendChild(r)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
1
+ (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode("*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:root{--color-primary: #1677ff;--color-border: #d9d9d9;--color-primary-bg: #e6f4ff;--color-text-secondary: rgba(0,0,0,.65);--color-bg-layout: #f5f5f5}.dark{--color-primary: #1668dc;--color-border: #424242;--color-primary-bg: #15325b;--color-text-secondary: rgba(255,255,255,.65);--color-bg-layout: #000000}.float-left{float:left}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mr-3{margin-right:.75rem}.children\\:size-4>*{width:1rem;height:1rem}.size-3{width:.75rem;height:.75rem}.size-6{width:1.5rem;height:1.5rem}.children\\:h-unset\\!>*{height:unset!important}.children\\:w-full\\!>*{width:100%!important}.h-full{height:100%}.min-w-3{min-width:.75rem}.w-1\\/2{width:50%}.w-24{width:6rem}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.rotate-90{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:90deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\\.5{gap:.125rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-row-2{row-gap:.5rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.border{border-width:1px}.border-border{border-color:var(--color-border)}.rounded-lg{border-radius:.5rem}.border-solid{border-style:solid}.bg-black\\/3{background-color:#00000008}.bg-transparent{background-color:transparent}.dark .dark\\:bg-white\\/4{background-color:#ffffff0a}.\\[\\&\\>\\.docx\\]\\:p-0\\!>.docx{padding:0!important}.p-4{padding:1rem}.p-4\\!{padding:1rem!important}.pl-2{padding-left:.5rem}.text-3{font-size:.75rem}.text-3\\.5{font-size:.875rem}.text-4\\.5\\/6{font-size:1.125rem;line-height:1.5rem}.text-primary,.hover\\:text-primary:hover{color:var(--color-primary)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media(max-width:639.9px){.\\<sm\\:w-full{width:100%}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}")),document.head.appendChild(r)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
2
  var xL = (n) => {
3
3
  throw TypeError(n);
4
4
  };
@@ -83096,9 +83096,9 @@ const G2t = (n) => {
83096
83096
  }, H2t = (n) => {
83097
83097
  const { data: t, i18n: e } = n, r = (a, o) => a === "markdown" ? /* @__PURE__ */ ae(W4, { url: o }) : a === "pdf" ? /* @__PURE__ */ ae(kot, { url: o, ...n }) : a === "docx" ? /* @__PURE__ */ ae(Eut, { url: o, ...n }) : a === "pptx" ? /* @__PURE__ */ ae(G2t, { url: o, ...n }) : null;
83098
83098
  return (() => {
83099
- const a = t?.metadata?.content_type, o = t?.metadata?.preview_url;
83100
- if (!(!a || !o))
83101
- return a === "image" ? /* @__PURE__ */ ae("img", { src: o, className: "w-full" }) : a === "video" ? /* @__PURE__ */ ae("video", { src: o, className: "w-full", controls: !0 }) : /* @__PURE__ */ ae(
83099
+ const { url: a } = t, o = t?.metadata?.content_type;
83100
+ if (!(!o || !a))
83101
+ return o === "image" ? /* @__PURE__ */ ae("img", { src: a, className: "w-full" }) : o === "video" ? /* @__PURE__ */ ae("video", { src: a, className: "w-full", controls: !0 }) : /* @__PURE__ */ ae(
83102
83102
  z3,
83103
83103
  {
83104
83104
  size: "small",
@@ -83111,7 +83111,7 @@ const G2t = (n) => {
83111
83111
  {
83112
83112
  key: "preview",
83113
83113
  label: e?.labels?.preview ?? "Preview",
83114
- children: r(a, o)
83114
+ children: r(o, a)
83115
83115
  }
83116
83116
  ]
83117
83117
  }
@@ -85927,25 +85927,25 @@ const G2t = (n) => {
85927
85927
  );
85928
85928
  }, { Text: V3 } = lJ, GPt = (n) => {
85929
85929
  const { data: t, i18n: e, extraButtons: r, className: i, ...a } = n, [o, s] = Ic(!1), l = [
85930
- {
85931
- label: e?.labels?.updatedAt ?? "Updated At",
85932
- value: t?.last_updated_by?.timestamp
85933
- },
85934
85930
  {
85935
85931
  label: e?.labels?.type ?? "Type",
85936
85932
  value: t?.type
85937
85933
  },
85938
- {
85939
- label: e?.labels?.createdBy ?? "Created By",
85940
- value: t?.owner?.username
85941
- },
85942
85934
  {
85943
85935
  label: e?.labels?.size ?? "Size",
85944
85936
  value: t?.size
85945
85937
  },
85946
85938
  {
85947
- label: e?.labels?.updatedBy ?? "Updated By",
85948
- value: t?.last_updated_by?.user.username
85939
+ label: e?.labels?.createdBy ?? "Created At",
85940
+ value: t?.created
85941
+ },
85942
+ {
85943
+ label: e?.labels?.createdBy ?? "Created By",
85944
+ value: t?.owner?.title
85945
+ },
85946
+ {
85947
+ label: e?.labels?.updatedAt ?? "Updated At",
85948
+ value: t?.updated
85949
85949
  }
85950
85950
  ];
85951
85951
  return /* @__PURE__ */ co(
@@ -85965,17 +85965,17 @@ const G2t = (n) => {
85965
85965
  type: "secondary",
85966
85966
  className: "inline-flex items-center gap-0.5 text-3",
85967
85967
  children: [
85968
- /* @__PURE__ */ ae("span", { children: t?.source?.name }),
85968
+ /* @__PURE__ */ ae("div", { children: t?.source?.name ?? "-" }),
85969
85969
  /* @__PURE__ */ ae(uJ, { className: "size-3" }),
85970
- /* @__PURE__ */ ae("span", { children: t?.category }),
85970
+ /* @__PURE__ */ ae("div", { children: t?.category ?? "-" }),
85971
85971
  /* @__PURE__ */ ae(cJ, { className: "size-3 rotate-90" }),
85972
- /* @__PURE__ */ ae("span", { children: t?.owner?.username }),
85972
+ /* @__PURE__ */ ae("div", { children: t?.owner?.title ?? "-" }),
85973
85973
  /* @__PURE__ */ ae(hJ, { className: "size-3" }),
85974
- /* @__PURE__ */ ae("span", { children: t?.last_updated_by?.timestamp }),
85974
+ /* @__PURE__ */ ae("div", { children: t?.updated ?? "-" }),
85975
85975
  /* @__PURE__ */ ae(
85976
85976
  fJ,
85977
85977
  {
85978
- className: "pl-2 size-3 hover:text-primary transition cursor-pointer",
85978
+ className: "pl-2 min-w-3 size-3 hover:text-primary transition cursor-pointer",
85979
85979
  onClick: () => {
85980
85980
  s((u) => !u);
85981
85981
  }
package/dist/index.d.ts CHANGED
@@ -11,64 +11,45 @@ export declare const DocDetail: FC<DocDetailProps>;
11
11
 
12
12
  declare interface DocDetailProps extends HTMLAttributes<HTMLDivElement> {
13
13
  data: {
14
- source: {
15
- type: string;
16
- name: string;
17
- id: string;
14
+ id?: string;
15
+ created?: ReactNode;
16
+ updated?: ReactNode;
17
+ _system?: {
18
+ owner_id?: string;
19
+ parent_path?: string;
20
+ tenant_id?: string;
18
21
  };
19
- category: string;
20
- categories: string[];
21
- cover: string;
22
- title: string;
23
- summary: string;
24
- type: string;
25
- lang: string;
26
- content: string;
27
- icon: string;
28
- thumbnail: string;
29
- tags: string[];
30
- url: string;
31
- size: number;
32
- owner: {
33
- avatar: string;
34
- username: string;
35
- userid: string;
22
+ metadata?: {
23
+ ai_insights?: string;
24
+ colors?: string[];
25
+ content_type?: MetadataContentType;
26
+ height?: number;
27
+ mime_type?: string;
28
+ users?: null | unknown;
29
+ width?: number;
36
30
  };
37
- metadata: {
38
- version: string;
39
- department: string;
40
- last_reviewed: string;
41
- file_extension: string;
42
- icon_link: string;
43
- has_thumbnail: boolean;
44
- kind: string;
45
- parents: string[];
46
- properties: Record<string, string>;
47
- spaces: string[];
48
- starred: boolean;
49
- driveId: string;
50
- thumbnail_link: string;
51
- video_media_metadata?: {
52
- durationMillis: string;
53
- width: number;
54
- height: number;
55
- };
56
- image_media_metadata?: {
57
- width: number;
58
- height: number;
59
- };
60
- content_type: MetadataContentType;
61
- mime_type: string;
62
- preview_url: string;
63
- ai_insights: string;
31
+ source?: {
32
+ type?: string;
33
+ name?: string;
34
+ id?: string;
64
35
  };
65
- last_updated_by: {
66
- user: {
67
- avatar: string;
68
- username: string;
69
- userid: string;
70
- };
71
- timestamp: string;
36
+ type?: string;
37
+ category?: string;
38
+ title?: string;
39
+ summary?: string;
40
+ icon?: string;
41
+ thumbnail?: string;
42
+ cover?: string;
43
+ tags?: string[];
44
+ url?: string;
45
+ size?: ReactNode;
46
+ owner: {
47
+ type?: string;
48
+ id?: string;
49
+ icon?: string;
50
+ title?: string;
51
+ subtitle?: string;
52
+ cover?: string;
72
53
  };
73
54
  };
74
55
  i18n?: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@infinilabs/doc-detail",
3
3
  "private": false,
4
- "version": "0.0.1",
4
+ "version": "0.0.2",
5
5
  "type": "module",
6
6
  "main": "dist/doc-detail.cjs",
7
7
  "module": "dist/doc-detail.js",
package/src/App.tsx CHANGED
@@ -6,87 +6,24 @@ const App = () => {
6
6
  <div className="h-screen">
7
7
  <DocDetail
8
8
  data={{
9
+ type: "file",
9
10
  source: {
10
- type: "connector",
11
11
  name: "My Hugo Site",
12
- id: "e806831dacc3",
13
12
  },
14
13
  category: "report",
15
- categories: ["business", "quarterly_reports"],
16
- cover: "https://picsum.photos/seed/report-cover/640/360",
17
14
  title: "Q3 Business Report",
18
- summary: "An overview of the company financial performance for Q3.",
19
- type: "PDF",
20
- lang: "en",
21
- content:
22
- "This quarters revenue increased by 15%, driven by strong sales in the APAC region...",
23
15
  icon: "https://picsum.photos/seed/file-icon/40/40",
24
- thumbnail: "https://picsum.photos/seed/report-thumb/320/180",
25
- tags: ["finance", "quarterly", "business", "report"],
26
- url: "https://drive.google.com/file/d/abc123/view",
27
16
  size: 1048576,
28
- owner: {
29
- avatar: "https://picsum.photos/seed/user-avatar/64/64",
30
- username: "jdoe",
31
- userid: "user123",
32
- },
17
+ url: "http://192.168.3.181:9101/coco-server/test.pdf",
33
18
  metadata: {
34
- version: "1.2",
35
- department: "Finance",
36
- last_reviewed: "2024-10-20",
37
- file_extension: "pdf",
38
- icon_link: "https://picsum.photos/seed/filetype-icon/40/40",
39
- has_thumbnail: true,
40
- kind: "drive#file",
41
- parents: ["folder123"],
42
- properties: { shared: "true" },
43
- spaces: ["drive"],
44
- starred: false,
45
- driveId: "drive123",
46
- thumbnail_link: "https://picsum.photos/seed/file-thumb/320/180",
47
- video_media_metadata: {
48
- durationMillis: "60000",
49
- width: 1920,
50
- height: 1080,
51
- },
52
- image_media_metadata: { width: 1024, height: 768 },
53
- mime_type: "",
54
-
55
- // content_type: "markdown",
56
- // preview_url: "http://192.168.3.181:9101/coco-server/README.md",
57
-
58
19
  content_type: "pdf",
59
- preview_url: "http://192.168.3.181:9101/coco-server/test.pdf",
60
-
61
- // content_type: "docx",
62
- // preview_url:
63
- // "http://192.168.3.181:9101/coco-server/OPHTHA_Listofacceptablefiletypes.docx",
64
-
65
- // content_type: "pptx",
66
- // preview_url:
67
- // "http://192.168.3.181:9101/coco-server/Processes-file-tables.pptx",
68
-
69
- // content_type: "xlsx",
70
- // preview_url:
71
- // "http://192.168.3.181:9101/coco-server/SaezZucman2020JEPData.xlsx",
72
-
73
- // content_type: "image",
74
- // preview_url: "http://192.168.3.181:9101/coco-server/a.jpg",
75
-
76
- // content_type: "video",
77
- // preview_url:
78
- // "http://192.168.3.181:9101/coco-server/Screen Recording 2026-01-05 at 12.06.10 PM.mov",
79
-
80
20
  ai_insights: `# AI Interpretation\n### Welcome to XMarkdown!\n- Project 1 \n- Project 2\n- Project 3`,
81
21
  },
82
- last_updated_by: {
83
- user: {
84
- avatar: "https://picsum.photos/seed/editor-avatar/64/64",
85
- username: "editor123",
86
- userid: "editor123@example.com",
87
- },
88
- timestamp: "2024-11-01T15:30:00Z",
22
+ owner: {
23
+ title: "Alice Johnson",
89
24
  },
25
+ created: "2026-01-09T02:30:10.188Z",
26
+ updated: "2026-01-09T02:30:10.188Z",
90
27
  }}
91
28
  extraButtons={[
92
29
  <ActionButton key="bot" icon={<Bot />}>
@@ -33,8 +33,8 @@ const Preview: FC<DocDetailProps> = (props) => {
33
33
  };
34
34
 
35
35
  const renderContent = () => {
36
+ const { url } = data;
36
37
  const type = data?.metadata?.content_type;
37
- const url = data?.metadata?.preview_url;
38
38
 
39
39
  if (!type || !url) return;
40
40
 
@@ -27,64 +27,45 @@ export type MetadataContentType =
27
27
 
28
28
  export interface DocDetailProps extends HTMLAttributes<HTMLDivElement> {
29
29
  data: {
30
- source: {
31
- type: string;
32
- name: string;
33
- id: string;
30
+ id?: string;
31
+ created?: ReactNode;
32
+ updated?: ReactNode;
33
+ _system?: {
34
+ owner_id?: string;
35
+ parent_path?: string;
36
+ tenant_id?: string;
34
37
  };
35
- category: string;
36
- categories: string[];
37
- cover: string;
38
- title: string;
39
- summary: string;
40
- type: string;
41
- lang: string;
42
- content: string;
43
- icon: string;
44
- thumbnail: string;
45
- tags: string[];
46
- url: string;
47
- size: number;
48
- owner: {
49
- avatar: string;
50
- username: string;
51
- userid: string;
38
+ metadata?: {
39
+ ai_insights?: string;
40
+ colors?: string[];
41
+ content_type?: MetadataContentType;
42
+ height?: number;
43
+ mime_type?: string;
44
+ users?: null | unknown;
45
+ width?: number;
52
46
  };
53
- metadata: {
54
- version: string;
55
- department: string;
56
- last_reviewed: string;
57
- file_extension: string;
58
- icon_link: string;
59
- has_thumbnail: boolean;
60
- kind: string;
61
- parents: string[];
62
- properties: Record<string, string>;
63
- spaces: string[];
64
- starred: boolean;
65
- driveId: string;
66
- thumbnail_link: string;
67
- video_media_metadata?: {
68
- durationMillis: string;
69
- width: number;
70
- height: number;
71
- };
72
- image_media_metadata?: {
73
- width: number;
74
- height: number;
75
- };
76
- content_type: MetadataContentType;
77
- mime_type: string;
78
- preview_url: string;
79
- ai_insights: string;
47
+ source?: {
48
+ type?: string;
49
+ name?: string;
50
+ id?: string;
80
51
  };
81
- last_updated_by: {
82
- user: {
83
- avatar: string;
84
- username: string;
85
- userid: string;
86
- };
87
- timestamp: string;
52
+ type?: string;
53
+ category?: string;
54
+ title?: string;
55
+ summary?: string;
56
+ icon?: string;
57
+ thumbnail?: string;
58
+ cover?: string;
59
+ tags?: string[];
60
+ url?: string;
61
+ size?: ReactNode;
62
+ owner: {
63
+ type?: string;
64
+ id?: string;
65
+ icon?: string;
66
+ title?: string;
67
+ subtitle?: string;
68
+ cover?: string;
88
69
  };
89
70
  };
90
71
  i18n?: {
@@ -110,25 +91,25 @@ const DocDetail: FC<DocDetailProps> = (props) => {
110
91
  const [visibleMore, setVisibleMore] = useState(false);
111
92
 
112
93
  const moreInfo = [
113
- {
114
- label: i18n?.labels?.updatedAt ?? "Updated At",
115
- value: data?.last_updated_by?.timestamp,
116
- },
117
94
  {
118
95
  label: i18n?.labels?.type ?? "Type",
119
96
  value: data?.type,
120
97
  },
121
- {
122
- label: i18n?.labels?.createdBy ?? "Created By",
123
- value: data?.owner?.username,
124
- },
125
98
  {
126
99
  label: i18n?.labels?.size ?? "Size",
127
100
  value: data?.size,
128
101
  },
129
102
  {
130
- label: i18n?.labels?.updatedBy ?? "Updated By",
131
- value: data?.last_updated_by?.user.username,
103
+ label: i18n?.labels?.createdBy ?? "Created At",
104
+ value: data?.created,
105
+ },
106
+ {
107
+ label: i18n?.labels?.createdBy ?? "Created By",
108
+ value: data?.owner?.title,
109
+ },
110
+ {
111
+ label: i18n?.labels?.updatedAt ?? "Updated At",
112
+ value: data?.updated,
132
113
  },
133
114
  ];
134
115
 
@@ -148,16 +129,16 @@ const DocDetail: FC<DocDetailProps> = (props) => {
148
129
  type="secondary"
149
130
  className="inline-flex items-center gap-0.5 text-3"
150
131
  >
151
- <span>{data?.source?.name}</span>
132
+ <div>{data?.source?.name ?? "-"}</div>
152
133
  <ChevronRight className="size-3" />
153
- <span>{data?.category}</span>
134
+ <div>{data?.category ?? "-"}</div>
154
135
  <Minus className="size-3 rotate-90" />
155
- <span>{data?.owner?.username}</span>
136
+ <div>{data?.owner?.title ?? "-"}</div>
156
137
  <Dot className="size-3" />
157
- <span>{data?.last_updated_by?.timestamp}</span>
138
+ <div>{data?.updated ?? "-"}</div>
158
139
 
159
140
  <Ellipsis
160
- className="pl-2 size-3 hover:text-primary transition cursor-pointer"
141
+ className="pl-2 min-w-3 size-3 hover:text-primary transition cursor-pointer"
161
142
  onClick={() => {
162
143
  setVisibleMore((prev) => !prev);
163
144
  }}