@pstdio/ui 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/{MermaidComponent-BPiVFNYK.js → MermaidComponent-AmAjWLPm.js} +3 -3
  2. package/dist/{MermaidComponent-BPiVFNYK.js.map → MermaidComponent-AmAjWLPm.js.map} +1 -1
  3. package/dist/browser-storage-DPtOQJx0.js +127 -0
  4. package/dist/browser-storage-DPtOQJx0.js.map +1 -0
  5. package/dist/chat-ui.js +19 -20
  6. package/dist/chat-ui.js.map +1 -1
  7. package/dist/components/data-table/data-table-header.d.ts +3 -1
  8. package/dist/components/data-table/edit-mode-data-table-body.d.ts +29 -0
  9. package/dist/components/data-table/edit-mode-data-table-cell.d.ts +15 -0
  10. package/dist/components/data-table/edit-mode-data-table-editors.d.ts +19 -0
  11. package/dist/components/data-table/edit-mode-data-table-header.d.ts +23 -0
  12. package/dist/components/data-table/edit-mode-data-table-selection.d.ts +12 -0
  13. package/dist/components/data-table/edit-mode-data-table.d.ts +2 -0
  14. package/dist/components/data-table/edit-mode-story.d.ts +5 -0
  15. package/dist/components/data-table/index.d.ts +1 -1
  16. package/dist/components/data-table/pagination-footer.d.ts +8 -5
  17. package/dist/components/data-table/types.d.ts +24 -0
  18. package/dist/components/rich-text/index.d.ts +2 -0
  19. package/dist/components/rich-text/markdown-editor/markdown-editor.d.ts +7 -0
  20. package/dist/components/rich-text/markdown-editor/markdown-table.story-fixture.d.ts +3 -0
  21. package/dist/components/rich-text/markdown-editor/plugins/MarkdownSectionNavigationPlugin.d.ts +8 -0
  22. package/dist/components/rich-text/markdown-editor/plugins/MarkdownSlashCommandPlugin.d.ts +1 -0
  23. package/dist/components/rich-text/markdown-editor/plugins/markdown-history-plugin.d.ts +1 -0
  24. package/dist/components/rich-text/markdown-editor/plugins/markdown-section-navigation.d.ts +20 -0
  25. package/dist/components/rich-text/rich-message/rich-message.d.ts +2 -0
  26. package/dist/components/rich-text/shared/markdown-ast.d.ts +6 -0
  27. package/dist/components/rich-text/shared/markdown-codec.d.ts +3 -0
  28. package/dist/components/rich-text/shared/markdown-export.d.ts +2 -0
  29. package/dist/components/rich-text/shared/markdown-import.d.ts +2 -0
  30. package/dist/components/rich-text/shared/markdown-inline.d.ts +5 -0
  31. package/dist/components/rich-text/shared/markdown-table.d.ts +41 -0
  32. package/dist/components/rich-text/shared/markdown-url-context.d.ts +9 -0
  33. package/dist/components/rich-text/shared/markdown-url.d.ts +3 -0
  34. package/dist/components/rich-text/shared/nodes/DataTableNode.d.ts +13 -11
  35. package/dist/components/rich-text/shared/nodes/MarkdownImageNode.d.ts +35 -0
  36. package/dist/components/rich-text/shared/nodes/MarkdownLinkNode.d.ts +18 -0
  37. package/dist/components/rich-text/shared/nodes/RawHtmlNode.d.ts +31 -0
  38. package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/floating-toolbar-buttons.d.ts +4 -2
  39. package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/resolve-block-type.d.ts +1 -1
  40. package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/setFloatingElemPos.d.ts +1 -1
  41. package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.d.ts +1 -0
  42. package/dist/components/rich-text/shared/transformers/markdown-transformers.d.ts +2 -3
  43. package/dist/data-table.js +723 -923
  44. package/dist/data-table.js.map +1 -1
  45. package/dist/diff.js +4 -4
  46. package/dist/edit-mode-data-table-4GMiDy75.js +775 -0
  47. package/dist/edit-mode-data-table-4GMiDy75.js.map +1 -0
  48. package/dist/editor-config-Dyh8n5A2.js +2416 -0
  49. package/dist/editor-config-Dyh8n5A2.js.map +1 -0
  50. package/dist/index.js +142 -144
  51. package/dist/index.js.map +1 -1
  52. package/dist/{kanban-renderer-toolbar-Bcj_N1qr.js → kanban-renderer-toolbar-BcUZvGyY.js} +359 -361
  53. package/dist/kanban-renderer-toolbar-BcUZvGyY.js.map +1 -0
  54. package/dist/kanban-renderer.js +28 -27
  55. package/dist/kanban-renderer.js.map +1 -1
  56. package/dist/{lazy-markdown-editor-DwhqQ-NN.js → lazy-markdown-editor-CWSREEhf.js} +2 -2
  57. package/dist/{lazy-markdown-editor-DwhqQ-NN.js.map → lazy-markdown-editor-CWSREEhf.js.map} +1 -1
  58. package/dist/{list-row-BtoVJpFs.js → list-row-B8L4TGsh.js} +2 -2
  59. package/dist/{list-row-BtoVJpFs.js.map → list-row-B8L4TGsh.js.map} +1 -1
  60. package/dist/{mermaid-renderer-DZo3qj6D.js → mermaid-renderer-H3IhLqnQ.js} +3 -3
  61. package/dist/{mermaid-renderer-DZo3qj6D.js.map → mermaid-renderer-H3IhLqnQ.js.map} +1 -1
  62. package/dist/mermaid.js +1 -1
  63. package/dist/number-input-WUfejtNx.js +343 -0
  64. package/dist/number-input-WUfejtNx.js.map +1 -0
  65. package/dist/param-editor-field-C8zRDStn.js +2845 -0
  66. package/dist/param-editor-field-C8zRDStn.js.map +1 -0
  67. package/dist/{param-editor-XRjSu6MT.js → param-editor-w3xH-t8A.js} +2 -2
  68. package/dist/{param-editor-XRjSu6MT.js.map → param-editor-w3xH-t8A.js.map} +1 -1
  69. package/dist/rich-message-jZ2oPQhU.js +658 -0
  70. package/dist/rich-message-jZ2oPQhU.js.map +1 -0
  71. package/dist/rich-text.js +182 -110
  72. package/dist/rich-text.js.map +1 -1
  73. package/dist/style.css +1 -1
  74. package/dist/theme/recipes/button.d.ts +11 -0
  75. package/dist/{theme-7PDdD9OD.js → theme-J8K8KbZi.js} +12 -1
  76. package/dist/theme-J8K8KbZi.js.map +1 -0
  77. package/dist/{theme-preference-DOzHx64J.js → theme-preference-DyymrYpR.js} +2 -2
  78. package/dist/{theme-preference-DOzHx64J.js.map → theme-preference-DyymrYpR.js.map} +1 -1
  79. package/dist/theme.js +1 -1
  80. package/dist/{tree-list-B2L0cTj2.js → tree-list-CC13pOYi.js} +2 -2
  81. package/dist/{tree-list-B2L0cTj2.js.map → tree-list-CC13pOYi.js.map} +1 -1
  82. package/package.json +9 -1
  83. package/dist/browser-storage-BinyFNJX.js +0 -40
  84. package/dist/browser-storage-BinyFNJX.js.map +0 -1
  85. package/dist/checkbox-B2zYVemL.js +0 -70
  86. package/dist/checkbox-B2zYVemL.js.map +0 -1
  87. package/dist/components/data-table/editable-cells-story.d.ts +0 -9
  88. package/dist/kanban-renderer-toolbar-Bcj_N1qr.js.map +0 -1
  89. package/dist/markdown-DDd2ESoH.js +0 -743
  90. package/dist/markdown-DDd2ESoH.js.map +0 -1
  91. package/dist/markdown-editor-CYVkzt8t.js +0 -741
  92. package/dist/markdown-editor-CYVkzt8t.js.map +0 -1
  93. package/dist/param-editor-field-B9lEPq8c.js +0 -3028
  94. package/dist/param-editor-field-B9lEPq8c.js.map +0 -1
  95. package/dist/resource-badge-CuItchgL.js +0 -98
  96. package/dist/resource-badge-CuItchgL.js.map +0 -1
  97. package/dist/rich-message--eRzjWYK.js +0 -730
  98. package/dist/rich-message--eRzjWYK.js.map +0 -1
  99. package/dist/scroll-area-BMbg1WcD.js +0 -91
  100. package/dist/scroll-area-BMbg1WcD.js.map +0 -1
  101. package/dist/theme-7PDdD9OD.js.map +0 -1
@@ -1,98 +0,0 @@
1
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
2
- import { c as w } from "react/compiler-runtime";
3
- import { chakra as T, Text as E, IconButton as I } from "@chakra-ui/react";
4
- import { FileSpreadsheet as L, FileCode as k, FileChartLine as R, FileJson as A, FileText as D, FileCog as N, FileImage as O, FileArchive as q, File as B, X as H } from "lucide-react";
5
- import { T as P } from "./scroll-area-BMbg1WcD.js";
6
- const U = (n) => {
7
- const e = n.split(".").pop()?.toLowerCase() ?? "";
8
- return ["csv", "tsv", "xlsx", "xls", "parquet"].includes(e) ? L : ["sql", "py", "js", "ts", "jsx", "tsx", "java", "cpp", "c", "h", "css", "scss", "sass", "php", "rb", "go", "rs", "kt", "swift"].includes(e) ? k : ["json", "jsonl", "ndjson"].includes(e) ? n.includes("/visualizations/") ? R : A : ["md", "txt", "rst", "org", "pdf", "doc", "docx", "rtf"].includes(e) ? D : ["yaml", "yml", "toml", "ini", "conf", "config"].includes(e) ? N : ["png", "jpg", "jpeg", "gif", "svg", "webp", "ico"].includes(e) ? O : ["zip", "tar", "gz", "rar", "7z"].includes(e) ? q : B;
9
- }, W = {
10
- sm: {
11
- container: {
12
- height: "5",
13
- lineHeight: {
14
- base: "5"
15
- },
16
- px: "xs"
17
- },
18
- iconSize: 12,
19
- textStyle: "label/XS"
20
- },
21
- md: {
22
- container: {
23
- height: "6",
24
- lineHeight: {
25
- base: "6"
26
- },
27
- px: "xs"
28
- },
29
- iconSize: 14,
30
- textStyle: "label/S/regular"
31
- }
32
- }, X = {
33
- neutral: {
34
- color: "fg",
35
- bg: "bg.subtle",
36
- borderColor: "border",
37
- _hover: {
38
- bg: "bg.hover"
39
- }
40
- },
41
- accent: {
42
- color: "var(--schub-foreground-accent)",
43
- bg: "var(--schub-accent-subtle)",
44
- borderColor: "var(--schub-accent-subtle)",
45
- _hover: {
46
- bg: "var(--schub-accent-subtle)"
47
- }
48
- }
49
- }, Y = "md", Z = "neutral", Q = (n) => {
50
- const e = w(38);
51
- let t, l, o, s, r, x, h;
52
- e[0] !== n ? ({
53
- fileName: t,
54
- onSelect: s,
55
- onRemove: o,
56
- size: x,
57
- tone: h,
58
- icon: l,
59
- ...r
60
- } = n, e[0] = n, e[1] = t, e[2] = l, e[3] = o, e[4] = s, e[5] = r, e[6] = x, e[7] = h) : (t = e[1], l = e[2], o = e[3], s = e[4], r = e[5], x = e[6], h = e[7]);
61
- const j = x === void 0 ? Y : x, C = h === void 0 ? Z : h;
62
- let b;
63
- e[8] !== t ? (b = U(t), e[8] = t, e[9] = b) : b = e[9];
64
- const v = b, i = W[j], y = X[C], z = s ? "pointer" : "default";
65
- let c;
66
- e[10] !== t || e[11] !== s ? (c = (F) => {
67
- F.stopPropagation(), s?.(t);
68
- }, e[10] = t, e[11] = s, e[12] = c) : c = e[12];
69
- let a;
70
- e[13] !== v || e[14] !== l || e[15] !== i.iconSize ? (a = l ?? /* @__PURE__ */ g(v, { size: i.iconSize }), e[13] = v, e[14] = l, e[15] = i.iconSize, e[16] = a) : a = e[16];
71
- let f;
72
- e[17] !== a ? (f = /* @__PURE__ */ g(T.span, { display: "inline-flex", flexShrink: 0, children: a }), e[17] = a, e[18] = f) : f = e[18];
73
- let m;
74
- e[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = {
75
- base: "14rem"
76
- }, e[19] = m) : m = e[19];
77
- let d;
78
- e[20] !== t || e[21] !== i.textStyle ? (d = /* @__PURE__ */ g(E, { maxW: m, textOverflow: "ellipsis", whiteSpace: "nowrap", overflow: "hidden", textStyle: i.textStyle, children: t }), e[20] = t, e[21] = i.textStyle, e[22] = d) : d = e[22];
79
- let p;
80
- e[23] !== t || e[24] !== d ? (p = /* @__PURE__ */ g(P, { content: t, children: d }), e[23] = t, e[24] = d, e[25] = p) : p = e[25];
81
- let u;
82
- e[26] !== t || e[27] !== o ? (u = o && /* @__PURE__ */ g(I, { "aria-label": `Remove ${t}`, size: "2xs", variant: "ghost", _hover: {
83
- bg: "transparent"
84
- }, onClick: (F) => {
85
- F.stopPropagation(), o?.(t);
86
- }, children: /* @__PURE__ */ g(H, { size: 12 }) }), e[26] = t, e[27] = o, e[28] = u) : u = e[28];
87
- let S;
88
- return e[29] !== r || e[30] !== i.container || e[31] !== u || e[32] !== z || e[33] !== c || e[34] !== f || e[35] !== p || e[36] !== y ? (S = /* @__PURE__ */ _(T.span, { display: "flex", flexDirection: "row", alignItems: "center", borderWidth: "1px", borderRadius: "xs", gap: "2xs", cursor: z, ...y, ...i.container, onClick: c, ...r, children: [
89
- f,
90
- p,
91
- u
92
- ] }), e[29] = r, e[30] = i.container, e[31] = u, e[32] = z, e[33] = c, e[34] = f, e[35] = p, e[36] = y, e[37] = S) : S = e[37], S;
93
- };
94
- export {
95
- Q as R,
96
- U as g
97
- };
98
- //# sourceMappingURL=resource-badge-CuItchgL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-badge-CuItchgL.js","sources":["../src/utils/get-file-type-icon.ts","../src/components/primitives/resource-badge.tsx"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport {\n File,\n FileArchive,\n FileChartLine,\n FileCode,\n FileCog,\n FileImage,\n FileJson,\n FileSpreadsheet,\n FileText,\n} from \"lucide-react\";\n\nexport const getFileTypeIcon = (filename: string): LucideIcon => {\n const extension = filename.split(\".\").pop()?.toLowerCase() ?? \"\";\n\n if ([\"csv\", \"tsv\", \"xlsx\", \"xls\", \"parquet\"].includes(extension)) return FileSpreadsheet;\n if (\n [\n \"sql\",\n \"py\",\n \"js\",\n \"ts\",\n \"jsx\",\n \"tsx\",\n \"java\",\n \"cpp\",\n \"c\",\n \"h\",\n \"css\",\n \"scss\",\n \"sass\",\n \"php\",\n \"rb\",\n \"go\",\n \"rs\",\n \"kt\",\n \"swift\",\n ].includes(extension)\n ) {\n return FileCode;\n }\n if ([\"json\", \"jsonl\", \"ndjson\"].includes(extension)) {\n if (filename.includes(\"/visualizations/\")) return FileChartLine;\n return FileJson;\n }\n if ([\"md\", \"txt\", \"rst\", \"org\", \"pdf\", \"doc\", \"docx\", \"rtf\"].includes(extension)) return FileText;\n if ([\"yaml\", \"yml\", \"toml\", \"ini\", \"conf\", \"config\"].includes(extension)) return FileCog;\n if ([\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"webp\", \"ico\"].includes(extension)) return FileImage;\n if ([\"zip\", \"tar\", \"gz\", \"rar\", \"7z\"].includes(extension)) return FileArchive;\n return File;\n};\n","import type { HTMLChakraProps } from \"@chakra-ui/react\";\nimport { chakra, IconButton, Spacer, Text } from \"@chakra-ui/react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { AlertTriangle, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { getFileTypeIcon } from \"@/utils/get-file-type-icon\";\n\nconst SIZE_STYLES = {\n sm: {\n container: {\n height: \"5\",\n lineHeight: { base: \"5\" },\n px: \"xs\",\n },\n iconSize: 12,\n textStyle: \"label/XS\",\n },\n md: {\n container: {\n height: \"6\",\n lineHeight: { base: \"6\" },\n px: \"xs\",\n },\n iconSize: 14,\n textStyle: \"label/S/regular\",\n },\n} as const;\n\nconst TONE_STYLES = {\n neutral: {\n color: \"fg\",\n bg: \"bg.subtle\",\n borderColor: \"border\",\n _hover: {\n bg: \"bg.hover\",\n },\n },\n accent: {\n color: \"var(--schub-foreground-accent)\",\n bg: \"var(--schub-accent-subtle)\",\n borderColor: \"var(--schub-accent-subtle)\",\n _hover: {\n bg: \"var(--schub-accent-subtle)\",\n },\n },\n} as const;\n\nexport interface MissingResourceBadgeProps {\n referenceId: string;\n onRemove?: (referenceId: string) => void;\n}\n\n/**\n * Shown when a reference points to a resource that no longer exists\n */\nexport const MissingResourceBadge = (props: MissingResourceBadgeProps) => {\n const { referenceId, onRemove } = props;\n return (\n <chakra.span\n height=\"24px\"\n lineHeight={{ base: \"24px\" }}\n gap=\"2xs\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n paddingX=\"xs\"\n borderRadius=\"9999px\"\n color=\"blacks.50\"\n bg=\"red.500\"\n _hover={{\n bg: \"red.600\",\n }}\n >\n <chakra.span mr=\"xs\" display=\"inline-flex\">\n <AlertTriangle size={14} />\n </chakra.span>\n <Text maxW={{ base: \"17.5rem\" }} textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" overflow=\"hidden\">\n Missing Reference\n </Text>\n <Spacer />\n {onRemove && (\n <IconButton\n color=\"blacks.50\"\n aria-label=\"Remove reference\"\n size=\"2xs\"\n ml=\"sm\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(referenceId);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n\nexport type ResourceBadgeSize = keyof typeof SIZE_STYLES;\nexport type ResourceBadgeTone = keyof typeof TONE_STYLES;\n\nexport interface ResourceBadgeProps extends Omit<HTMLChakraProps<\"span\">, \"onSelect\"> {\n fileName: string;\n onRemove?: (fileName: string) => void;\n onSelect?: (fileName: string) => void;\n size?: ResourceBadgeSize;\n tone?: ResourceBadgeTone;\n icon?: ReactNode;\n}\n\nconst DEFAULT_SIZE: ResourceBadgeSize = \"md\";\nconst DEFAULT_TONE: ResourceBadgeTone = \"neutral\";\n\nexport const ResourceBadge = (props: ResourceBadgeProps) => {\n const { fileName, onSelect, onRemove, size = DEFAULT_SIZE, tone = DEFAULT_TONE, icon, ...rest } = props;\n const IconComp: LucideIcon = getFileTypeIcon(fileName);\n const sizeStyles = SIZE_STYLES[size];\n const toneStyles = TONE_STYLES[tone];\n\n return (\n <chakra.span\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderWidth=\"1px\"\n borderRadius=\"xs\"\n gap=\"2xs\"\n cursor={onSelect ? \"pointer\" : \"default\"}\n {...toneStyles}\n {...sizeStyles.container}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(fileName);\n }}\n {...rest}\n >\n <chakra.span display=\"inline-flex\" flexShrink={0}>\n {icon ?? <IconComp size={sizeStyles.iconSize} />}\n </chakra.span>\n <Tooltip content={fileName}>\n <Text\n maxW={{ base: \"14rem\" }}\n textOverflow=\"ellipsis\"\n whiteSpace=\"nowrap\"\n overflow=\"hidden\"\n textStyle={sizeStyles.textStyle}\n >\n {fileName}\n </Text>\n </Tooltip>\n {onRemove && (\n <IconButton\n aria-label={`Remove ${fileName}`}\n size=\"2xs\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(fileName);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n"],"names":["getFileTypeIcon","filename","extension","split","pop","toLowerCase","includes","FileSpreadsheet","FileCode","FileChartLine","FileJson","FileText","FileCog","FileImage","FileArchive","File","SIZE_STYLES","sm","container","height","lineHeight","base","px","iconSize","textStyle","md","TONE_STYLES","neutral","color","bg","borderColor","_hover","accent","DEFAULT_SIZE","DEFAULT_TONE","ResourceBadge","props","$","_c","fileName","icon","onRemove","onSelect","rest","t0","t1","size","tone","undefined","t2","IconComp","sizeStyles","toneStyles","t3","t4","e","stopPropagation","t5","jsx","t6","chakra","t7","Symbol","for","t8","Text","t9","Tooltip","t10","IconButton","e_0","X","t11","jsxs"],"mappings":"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"}