@powerhousedao/powerhouse-vetra-packages 6.0.0-dev.201 → 6.0.0-dev.203
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/browser/{actions-CAkdvsc4-gp29pPoz.d.ts → actions-CAH-hbfc-C8hUzx83.d.ts} +2 -2
- package/dist/browser/{actions-CAkdvsc4-gp29pPoz.d.ts.map → actions-CAH-hbfc-C8hUzx83.d.ts.map} +1 -1
- package/dist/browser/{connect-C_dcbzBz-_mmjRXjN.js → connect-C_dcbzBz--b70rB_n.js} +2 -2
- package/dist/browser/{connect-C_dcbzBz-_mmjRXjN.js.map → connect-C_dcbzBz--b70rB_n.js.map} +1 -1
- package/dist/browser/{document-drive--1eiReEv.js → document-drive-Xr-Oq4PL.js} +9 -1
- package/dist/browser/document-drive-Xr-Oq4PL.js.map +1 -0
- package/dist/browser/document-models/index.d.ts +2 -2
- package/dist/browser/document-models/index.d.ts.map +1 -1
- package/dist/browser/document-models/index.js +1 -1
- package/dist/browser/{editor-WMMn3zMX.js → editor-BcLRCzZi.js} +3 -3
- package/dist/browser/{editor-WMMn3zMX.js.map → editor-BcLRCzZi.js.map} +1 -1
- package/dist/browser/{editor-C6CqSfNd.js → editor-CHuFlXYk.js} +4 -4
- package/dist/browser/{editor-C6CqSfNd.js.map → editor-CHuFlXYk.js.map} +1 -1
- package/dist/browser/editors/document-model-editor/module.d.ts +1 -1
- package/dist/browser/editors/document-model-editor/module.js +1 -1
- package/dist/browser/editors/generic-drive-explorer/index.js +3 -3
- package/dist/browser/editors/generic-drive-explorer/module.d.ts +1 -1
- package/dist/browser/editors/generic-drive-explorer/module.js +1 -1
- package/dist/browser/{folder-view-D3QhCT-8.js → folder-view-B6aAiO2N.js} +2 -2
- package/dist/browser/{folder-view-D3QhCT-8.js.map → folder-view-B6aAiO2N.js.map} +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/node/{actions-CAkdvsc4-qMKmHrr0.d.mts → actions-CAH-hbfc-4Ddl_k7B.d.mts} +2 -2
- package/dist/node/{actions-CAkdvsc4-qMKmHrr0.d.mts.map → actions-CAH-hbfc-4Ddl_k7B.d.mts.map} +1 -1
- package/dist/node/{connect-C_dcbzBz-DUb3vyN_.mjs → connect-C_dcbzBz-BW2LdijR.mjs} +2 -2
- package/dist/node/{connect-C_dcbzBz-DUb3vyN_.mjs.map → connect-C_dcbzBz-BW2LdijR.mjs.map} +1 -1
- package/dist/node/{document-drive-CuVMw83g.mjs → document-drive-Ci5WxrAj.mjs} +9 -1
- package/dist/node/document-drive-Ci5WxrAj.mjs.map +1 -0
- package/dist/node/document-models/index.d.mts +2 -2
- package/dist/node/document-models/index.d.mts.map +1 -1
- package/dist/node/document-models/index.mjs +1 -1
- package/dist/node/{editor-DuK8Xe_9.mjs → editor-4Mu6nyRX.mjs} +3 -3
- package/dist/node/{editor-DuK8Xe_9.mjs.map → editor-4Mu6nyRX.mjs.map} +1 -1
- package/dist/node/{editor-CYjUuoto.mjs → editor-D0uoQ59U.mjs} +4 -4
- package/dist/node/{editor-CYjUuoto.mjs.map → editor-D0uoQ59U.mjs.map} +1 -1
- package/dist/node/editors/document-model-editor/module.d.mts +1 -1
- package/dist/node/editors/document-model-editor/module.mjs +1 -1
- package/dist/node/editors/generic-drive-explorer/index.mjs +3 -3
- package/dist/node/editors/generic-drive-explorer/module.d.mts +1 -1
- package/dist/node/editors/generic-drive-explorer/module.mjs +1 -1
- package/dist/node/{folder-view-CfEXe79b.mjs → folder-view-D_ar-eLP.mjs} +2 -2
- package/dist/node/{folder-view-CfEXe79b.mjs.map → folder-view-D_ar-eLP.mjs.map} +1 -1
- package/dist/node/index.d.mts +1 -1
- package/dist/node/index.mjs +1 -1
- package/package.json +5 -5
- package/dist/browser/document-drive--1eiReEv.js.map +0 -1
- package/dist/node/document-drive-CuVMw83g.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as PowerhouseButton, f as cn, k as twMerge, m as useWindowSize } from "./dist-xGyDYVry.js";
|
|
2
|
-
import { S as useSelectedFolder, T as useUserPermissions, _ as showCreateDocumentModal, a as FolderItem, g as isFolderNodeKind, h as isFileNodeKind, i as FileItem, o as useDrop, s as useVirtualizer, v as useDocumentModelModules, y as useNodesInSelectedDriveOrFolder } from "./connect-C_dcbzBz
|
|
2
|
+
import { S as useSelectedFolder, T as useUserPermissions, _ as showCreateDocumentModal, a as FolderItem, g as isFolderNodeKind, h as isFileNodeKind, i as FileItem, o as useDrop, s as useVirtualizer, v as useDocumentModelModules, y as useNodesInSelectedDriveOrFolder } from "./connect-C_dcbzBz--b70rB_n.js";
|
|
3
3
|
import React, { useRef } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region editors/generic-drive-explorer/components/create-document.tsx
|
|
@@ -193,4 +193,4 @@ function FolderView(props) {
|
|
|
193
193
|
//#endregion
|
|
194
194
|
export { CreateDocument as i, DriveLayout as n, FileContentView as r, FolderView as t };
|
|
195
195
|
|
|
196
|
-
//# sourceMappingURL=folder-view-
|
|
196
|
+
//# sourceMappingURL=folder-view-B6aAiO2N.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder-view-D3QhCT-8.js","names":[],"sources":["../../editors/generic-drive-explorer/components/create-document.tsx","../../editors/generic-drive-explorer/components/file-content-view.tsx","../../editors/generic-drive-explorer/components/layout.tsx","../../editors/generic-drive-explorer/components/folder-view.tsx"],"sourcesContent":["import { PowerhouseButton } from \"@powerhousedao/design-system\";\nimport {\n showCreateDocumentModal,\n useDocumentModelModules,\n useUserPermissions,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n DocumentModelGlobalState,\n DocumentModelModule,\n} from \"@powerhousedao/shared/document-model\";\n\nfunction getDocumentSpec(doc: DocumentModelModule): DocumentModelGlobalState {\n return doc.documentModel.global;\n}\n\nexport function CreateDocument() {\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const documentModelModules = useDocumentModelModules();\n const nonDriveDocumentModelModules = documentModelModules?.filter(\n (module) => module.documentModel.global.id !== \"powerhouse/document-drive\",\n );\n if (!isAllowedToCreateDocuments) return null;\n return (\n <div className=\"px-6 py-4\">\n <h3 className=\"mb-3 text-xl font-bold text-gray-600\">New document</h3>\n <div className=\"flex w-full flex-wrap gap-4\">\n {nonDriveDocumentModelModules?.map((doc) => {\n const spec = getDocumentSpec(doc);\n const versionLabel = doc.version ? ` v${doc.version}` : \"\";\n return (\n <PowerhouseButton\n key={`${spec.id}-v${doc.version ?? 1}`}\n color=\"light\"\n title={`${spec.name}${versionLabel}`}\n aria-description={spec.description}\n onClick={() => showCreateDocumentModal(spec.id)}\n >\n <span className=\"text-sm\">\n {spec.name}\n {versionLabel}\n </span>\n </PowerhouseButton>\n );\n })}\n </div>\n </div>\n );\n}\n","import { useWindowSize } from \"@powerhousedao/design-system\";\nimport { FileItem } from \"@powerhousedao/design-system/connect\";\nimport {\n isFileNodeKind,\n useNodesInSelectedDriveOrFolder,\n} from \"@powerhousedao/reactor-browser\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport type { FileNode } from \"@powerhousedao/shared/document-drive\";\nimport React, { useRef } from \"react\";\n\nconst GAP = 8;\nconst ITEM_WIDTH = 256;\nconst ITEM_HEIGHT = 48;\n\nconst USED_SPACE = 420;\n\nexport function FileContentView() {\n const parentRef = useRef(null);\n const windowSize = useWindowSize();\n const availableWidth = windowSize.innerWidth - USED_SPACE;\n const nodes = useNodesInSelectedDriveOrFolder();\n const fileNodes = nodes.filter((n) => isFileNodeKind(n));\n const columnCount = Math.floor(availableWidth / (ITEM_WIDTH + GAP)) || 1;\n const rowCount = Math.ceil(fileNodes.length / columnCount);\n\n const rowVirtualizer = useVirtualizer({\n count: rowCount,\n getScrollElement: () => parentRef.current,\n estimateSize: (index) => {\n if (index > 0) {\n return ITEM_HEIGHT + GAP;\n }\n return ITEM_HEIGHT;\n },\n overscan: 5,\n });\n\n const columnVirtualizer = useVirtualizer({\n horizontal: true,\n count: columnCount,\n getScrollElement: () => parentRef.current,\n estimateSize: (index) => {\n if (index > 0) {\n return ITEM_WIDTH + GAP;\n }\n return ITEM_WIDTH;\n },\n overscan: 5,\n });\n\n const getItemIndex = (rowIndex: number, columnIndex: number) =>\n rowIndex * columnCount + columnIndex;\n\n const getItem = (rowIndex: number, columnIndex: number): FileNode | null => {\n const index = getItemIndex(rowIndex, columnIndex);\n return fileNodes[index] || null;\n };\n\n if (fileNodes.length === 0) {\n return (\n <div className=\"mb-8 text-sm text-gray-400\">No documents or files 📄</div>\n );\n }\n\n const renderItem = (rowIndex: number, columnIndex: number) => {\n const fileNode = getItem(rowIndex, columnIndex);\n\n if (!fileNode) {\n return null;\n }\n\n return (\n <div\n style={{\n marginLeft: columnIndex === 0 ? 0 : GAP,\n }}\n >\n <FileItem key={fileNode.id} fileNode={fileNode} />\n </div>\n );\n };\n\n return (\n <div\n ref={parentRef}\n style={{\n width: `100%`,\n overflow: \"auto\",\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: `${columnVirtualizer.getTotalSize()}px`,\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow) => (\n <React.Fragment key={virtualRow.key}>\n {columnVirtualizer.getVirtualItems().map((virtualColumn) => (\n <div\n key={virtualColumn.key}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n marginTop: virtualRow.index === 0 ? 0 : GAP,\n width: `${virtualColumn.size}px`,\n height: `${ITEM_HEIGHT}px`,\n overflow: \"hidden\",\n transform: `translateX(${virtualColumn.start}px) translateY(${virtualRow.start}px)`,\n }}\n >\n {renderItem(virtualRow.index, virtualColumn.index)}\n </div>\n ))}\n </React.Fragment>\n ))}\n </div>\n </div>\n );\n}\n","import { cn } from \"@powerhousedao/design-system\";\nimport type { BaseProps } from \"../utils/types.js\";\n\nexport function DriveLayout({ children, className, ...props }: BaseProps) {\n return (\n <DriveLayout.Container className={className} {...props}>\n {children}\n </DriveLayout.Container>\n );\n}\n\nDriveLayout.Container = function DriveLayoutContainer({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div\n className={cn(\"flex grow flex-col overflow-auto\", className)}\n {...containerProps}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nDriveLayout.Header = function DriveLayoutHeader({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div className={cn(\"flex-0\", className)} {...containerProps} {...props}>\n {children}\n </div>\n );\n};\n\nDriveLayout.Content = function DriveLayoutContent({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div\n className={cn(\"mb-5 flex-1 px-4\", className)}\n {...containerProps}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nDriveLayout.ContentSection = function DriveLayoutContentSection({\n title,\n children,\n className,\n containerProps,\n ...props\n}: BaseProps & { title?: string }) {\n return (\n <div className={cn(className)} {...containerProps} {...props}>\n {title && (\n <div className=\"mb-4 text-base font-semibold text-gray-600\">\n {title}\n </div>\n )}\n <div className=\"flex flex-wrap gap-2\">{children}</div>\n </div>\n );\n};\n\nDriveLayout.Footer = function DriveLayoutFooter({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div className={cn(\"flex-0\", className)} {...containerProps} {...props}>\n {children}\n </div>\n );\n};\n","import { FolderItem } from \"@powerhousedao/design-system/connect\";\nimport { useDrop } from \"@powerhousedao/design-system/connect\";\nimport {\n isFolderNodeKind,\n useNodesInSelectedDriveOrFolder,\n useSelectedFolder,\n} from \"@powerhousedao/reactor-browser\";\nimport { twMerge } from \"tailwind-merge\";\nimport { FileContentView } from \"./file-content-view.js\";\nimport { DriveLayout } from \"./layout.js\";\n\nexport function FolderView(props: { className?: string }) {\n const { className } = props;\n const nodes = useNodesInSelectedDriveOrFolder();\n const selectedFolder = useSelectedFolder();\n const folderNodes = nodes.filter((n) => isFolderNodeKind(n));\n const { isDropTarget, dropProps } = useDrop({\n target: selectedFolder,\n });\n return (\n <div\n className={twMerge(\n \"rounded-md border-2 border-transparent p-2\",\n isDropTarget && \"border-dashed border-blue-100\",\n className,\n )}\n {...dropProps}\n >\n <DriveLayout.ContentSection title=\"Folders\" className=\"mb-4\">\n {folderNodes.length > 0 ? (\n folderNodes.map((folderNode) => (\n <FolderItem key={folderNode.id} folderNode={folderNode} />\n ))\n ) : (\n <div className=\"mb-8 text-sm text-gray-400\">\n No documents or files 📄\n </div>\n )}\n </DriveLayout.ContentSection>\n <DriveLayout.ContentSection title=\"Documents and files\">\n <div className=\"w-full\">\n <FileContentView />\n </div>\n </DriveLayout.ContentSection>\n </div>\n );\n}\n\nexport default FolderView;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"folder-view-B6aAiO2N.js","names":[],"sources":["../../editors/generic-drive-explorer/components/create-document.tsx","../../editors/generic-drive-explorer/components/file-content-view.tsx","../../editors/generic-drive-explorer/components/layout.tsx","../../editors/generic-drive-explorer/components/folder-view.tsx"],"sourcesContent":["import { PowerhouseButton } from \"@powerhousedao/design-system\";\nimport {\n showCreateDocumentModal,\n useDocumentModelModules,\n useUserPermissions,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n DocumentModelGlobalState,\n DocumentModelModule,\n} from \"@powerhousedao/shared/document-model\";\n\nfunction getDocumentSpec(doc: DocumentModelModule): DocumentModelGlobalState {\n return doc.documentModel.global;\n}\n\nexport function CreateDocument() {\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const documentModelModules = useDocumentModelModules();\n const nonDriveDocumentModelModules = documentModelModules?.filter(\n (module) => module.documentModel.global.id !== \"powerhouse/document-drive\",\n );\n if (!isAllowedToCreateDocuments) return null;\n return (\n <div className=\"px-6 py-4\">\n <h3 className=\"mb-3 text-xl font-bold text-gray-600\">New document</h3>\n <div className=\"flex w-full flex-wrap gap-4\">\n {nonDriveDocumentModelModules?.map((doc) => {\n const spec = getDocumentSpec(doc);\n const versionLabel = doc.version ? ` v${doc.version}` : \"\";\n return (\n <PowerhouseButton\n key={`${spec.id}-v${doc.version ?? 1}`}\n color=\"light\"\n title={`${spec.name}${versionLabel}`}\n aria-description={spec.description}\n onClick={() => showCreateDocumentModal(spec.id)}\n >\n <span className=\"text-sm\">\n {spec.name}\n {versionLabel}\n </span>\n </PowerhouseButton>\n );\n })}\n </div>\n </div>\n );\n}\n","import { useWindowSize } from \"@powerhousedao/design-system\";\nimport { FileItem } from \"@powerhousedao/design-system/connect\";\nimport {\n isFileNodeKind,\n useNodesInSelectedDriveOrFolder,\n} from \"@powerhousedao/reactor-browser\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport type { FileNode } from \"@powerhousedao/shared/document-drive\";\nimport React, { useRef } from \"react\";\n\nconst GAP = 8;\nconst ITEM_WIDTH = 256;\nconst ITEM_HEIGHT = 48;\n\nconst USED_SPACE = 420;\n\nexport function FileContentView() {\n const parentRef = useRef(null);\n const windowSize = useWindowSize();\n const availableWidth = windowSize.innerWidth - USED_SPACE;\n const nodes = useNodesInSelectedDriveOrFolder();\n const fileNodes = nodes.filter((n) => isFileNodeKind(n));\n const columnCount = Math.floor(availableWidth / (ITEM_WIDTH + GAP)) || 1;\n const rowCount = Math.ceil(fileNodes.length / columnCount);\n\n const rowVirtualizer = useVirtualizer({\n count: rowCount,\n getScrollElement: () => parentRef.current,\n estimateSize: (index) => {\n if (index > 0) {\n return ITEM_HEIGHT + GAP;\n }\n return ITEM_HEIGHT;\n },\n overscan: 5,\n });\n\n const columnVirtualizer = useVirtualizer({\n horizontal: true,\n count: columnCount,\n getScrollElement: () => parentRef.current,\n estimateSize: (index) => {\n if (index > 0) {\n return ITEM_WIDTH + GAP;\n }\n return ITEM_WIDTH;\n },\n overscan: 5,\n });\n\n const getItemIndex = (rowIndex: number, columnIndex: number) =>\n rowIndex * columnCount + columnIndex;\n\n const getItem = (rowIndex: number, columnIndex: number): FileNode | null => {\n const index = getItemIndex(rowIndex, columnIndex);\n return fileNodes[index] || null;\n };\n\n if (fileNodes.length === 0) {\n return (\n <div className=\"mb-8 text-sm text-gray-400\">No documents or files 📄</div>\n );\n }\n\n const renderItem = (rowIndex: number, columnIndex: number) => {\n const fileNode = getItem(rowIndex, columnIndex);\n\n if (!fileNode) {\n return null;\n }\n\n return (\n <div\n style={{\n marginLeft: columnIndex === 0 ? 0 : GAP,\n }}\n >\n <FileItem key={fileNode.id} fileNode={fileNode} />\n </div>\n );\n };\n\n return (\n <div\n ref={parentRef}\n style={{\n width: `100%`,\n overflow: \"auto\",\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: `${columnVirtualizer.getTotalSize()}px`,\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow) => (\n <React.Fragment key={virtualRow.key}>\n {columnVirtualizer.getVirtualItems().map((virtualColumn) => (\n <div\n key={virtualColumn.key}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n marginTop: virtualRow.index === 0 ? 0 : GAP,\n width: `${virtualColumn.size}px`,\n height: `${ITEM_HEIGHT}px`,\n overflow: \"hidden\",\n transform: `translateX(${virtualColumn.start}px) translateY(${virtualRow.start}px)`,\n }}\n >\n {renderItem(virtualRow.index, virtualColumn.index)}\n </div>\n ))}\n </React.Fragment>\n ))}\n </div>\n </div>\n );\n}\n","import { cn } from \"@powerhousedao/design-system\";\nimport type { BaseProps } from \"../utils/types.js\";\n\nexport function DriveLayout({ children, className, ...props }: BaseProps) {\n return (\n <DriveLayout.Container className={className} {...props}>\n {children}\n </DriveLayout.Container>\n );\n}\n\nDriveLayout.Container = function DriveLayoutContainer({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div\n className={cn(\"flex grow flex-col overflow-auto\", className)}\n {...containerProps}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nDriveLayout.Header = function DriveLayoutHeader({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div className={cn(\"flex-0\", className)} {...containerProps} {...props}>\n {children}\n </div>\n );\n};\n\nDriveLayout.Content = function DriveLayoutContent({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div\n className={cn(\"mb-5 flex-1 px-4\", className)}\n {...containerProps}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nDriveLayout.ContentSection = function DriveLayoutContentSection({\n title,\n children,\n className,\n containerProps,\n ...props\n}: BaseProps & { title?: string }) {\n return (\n <div className={cn(className)} {...containerProps} {...props}>\n {title && (\n <div className=\"mb-4 text-base font-semibold text-gray-600\">\n {title}\n </div>\n )}\n <div className=\"flex flex-wrap gap-2\">{children}</div>\n </div>\n );\n};\n\nDriveLayout.Footer = function DriveLayoutFooter({\n children,\n className,\n containerProps,\n ...props\n}: BaseProps) {\n return (\n <div className={cn(\"flex-0\", className)} {...containerProps} {...props}>\n {children}\n </div>\n );\n};\n","import { FolderItem } from \"@powerhousedao/design-system/connect\";\nimport { useDrop } from \"@powerhousedao/design-system/connect\";\nimport {\n isFolderNodeKind,\n useNodesInSelectedDriveOrFolder,\n useSelectedFolder,\n} from \"@powerhousedao/reactor-browser\";\nimport { twMerge } from \"tailwind-merge\";\nimport { FileContentView } from \"./file-content-view.js\";\nimport { DriveLayout } from \"./layout.js\";\n\nexport function FolderView(props: { className?: string }) {\n const { className } = props;\n const nodes = useNodesInSelectedDriveOrFolder();\n const selectedFolder = useSelectedFolder();\n const folderNodes = nodes.filter((n) => isFolderNodeKind(n));\n const { isDropTarget, dropProps } = useDrop({\n target: selectedFolder,\n });\n return (\n <div\n className={twMerge(\n \"rounded-md border-2 border-transparent p-2\",\n isDropTarget && \"border-dashed border-blue-100\",\n className,\n )}\n {...dropProps}\n >\n <DriveLayout.ContentSection title=\"Folders\" className=\"mb-4\">\n {folderNodes.length > 0 ? (\n folderNodes.map((folderNode) => (\n <FolderItem key={folderNode.id} folderNode={folderNode} />\n ))\n ) : (\n <div className=\"mb-8 text-sm text-gray-400\">\n No documents or files 📄\n </div>\n )}\n </DriveLayout.ContentSection>\n <DriveLayout.ContentSection title=\"Documents and files\">\n <div className=\"w-full\">\n <FileContentView />\n </div>\n </DriveLayout.ContentSection>\n </div>\n );\n}\n\nexport default FolderView;\n"],"mappings":"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"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as Manifest, n as DocumentModelModule, r as EditorModule } from "./actions-
|
|
1
|
+
import { i as Manifest, n as DocumentModelModule, r as EditorModule } from "./actions-CAH-hbfc-C8hUzx83.js";
|
|
2
2
|
|
|
3
3
|
//#region document-models/document-models.d.ts
|
|
4
4
|
declare const documentModels: DocumentModelModule<any>[];
|
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as driveDocumentModelModule, u as documentModelDocumentModelModule } from "./document-drive
|
|
1
|
+
import { r as driveDocumentModelModule, u as documentModelDocumentModelModule } from "./document-drive-Xr-Oq4PL.js";
|
|
2
2
|
import { DocumentModelEditor } from "./editors/document-model-editor/module.js";
|
|
3
3
|
import { GenericDriveExplorer } from "./editors/generic-drive-explorer/module.js";
|
|
4
4
|
//#region powerhouse.manifest.json
|
|
@@ -2021,7 +2021,7 @@ declare global {
|
|
|
2021
2021
|
* tables. See the examples above.
|
|
2022
2022
|
*/
|
|
2023
2023
|
//#endregion
|
|
2024
|
-
//#region ../shared/dist/actions-
|
|
2024
|
+
//#region ../shared/dist/actions-CAH-hbfc.d.ts
|
|
2025
2025
|
//#region document-model/signatures.d.ts
|
|
2026
2026
|
/**
|
|
2027
2027
|
* A signature of an action.
|
|
@@ -2533,4 +2533,4 @@ type AttachmentInput = Attachment & {
|
|
|
2533
2533
|
};
|
|
2534
2534
|
//#endregion
|
|
2535
2535
|
export { Maybe as a, Manifest as i, DocumentModelModule as n, PHBaseState as o, EditorModule as r, Scalars as s, DocumentModelDocumentModelModule as t };
|
|
2536
|
-
//# sourceMappingURL=actions-
|
|
2536
|
+
//# sourceMappingURL=actions-CAH-hbfc-4Ddl_k7B.d.mts.map
|