@ixo/editor 0.2.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 (190) hide show
  1. package/README.md +345 -0
  2. package/dist/blocks/index.d.ts +85 -0
  3. package/dist/blocks/index.d.ts.map +1 -0
  4. package/dist/blocks/index.js +50 -0
  5. package/dist/blocks/list/ListBlock.d.ts +59 -0
  6. package/dist/blocks/list/ListBlock.d.ts.map +1 -0
  7. package/dist/blocks/list/ListBlock.js +51 -0
  8. package/dist/blocks/list/ListBlockToolbar.d.ts +9 -0
  9. package/dist/blocks/list/ListBlockToolbar.d.ts.map +1 -0
  10. package/dist/blocks/list/ListBlockToolbar.js +26 -0
  11. package/dist/blocks/list/ListContainer.d.ts +5 -0
  12. package/dist/blocks/list/ListContainer.d.ts.map +1 -0
  13. package/dist/blocks/list/ListContainer.js +10 -0
  14. package/dist/blocks/list/ListGeneralTab.d.ts +11 -0
  15. package/dist/blocks/list/ListGeneralTab.d.ts.map +1 -0
  16. package/dist/blocks/list/ListGeneralTab.js +134 -0
  17. package/dist/blocks/list/ListItem.d.ts +8 -0
  18. package/dist/blocks/list/ListItem.d.ts.map +1 -0
  19. package/dist/blocks/list/ListItem.js +24 -0
  20. package/dist/blocks/list/ListPreviewTab.d.ts +9 -0
  21. package/dist/blocks/list/ListPreviewTab.d.ts.map +1 -0
  22. package/dist/blocks/list/ListPreviewTab.js +51 -0
  23. package/dist/blocks/list/ListSettings.d.ts +3 -0
  24. package/dist/blocks/list/ListSettings.d.ts.map +1 -0
  25. package/dist/blocks/list/ListSettings.js +115 -0
  26. package/dist/blocks/list/ListSettingsTab.d.ts +10 -0
  27. package/dist/blocks/list/ListSettingsTab.d.ts.map +1 -0
  28. package/dist/blocks/list/ListSettingsTab.js +64 -0
  29. package/dist/blocks/list/index.d.ts +3 -0
  30. package/dist/blocks/list/index.d.ts.map +1 -0
  31. package/dist/blocks/list/index.js +5 -0
  32. package/dist/blocks/list/useList.d.ts +5 -0
  33. package/dist/blocks/list/useList.d.ts.map +1 -0
  34. package/dist/blocks/list/useList.js +11 -0
  35. package/dist/blocks/overview/OverviewBlock.d.ts +33 -0
  36. package/dist/blocks/overview/OverviewBlock.d.ts.map +1 -0
  37. package/dist/blocks/overview/OverviewBlock.js +34 -0
  38. package/dist/blocks/overview/OverviewBlockToolbar.d.ts +8 -0
  39. package/dist/blocks/overview/OverviewBlockToolbar.d.ts.map +1 -0
  40. package/dist/blocks/overview/OverviewBlockToolbar.js +16 -0
  41. package/dist/blocks/overview/OverviewGeneralTab.d.ts +11 -0
  42. package/dist/blocks/overview/OverviewGeneralTab.d.ts.map +1 -0
  43. package/dist/blocks/overview/OverviewGeneralTab.js +134 -0
  44. package/dist/blocks/overview/OverviewPreviewTab.d.ts +10 -0
  45. package/dist/blocks/overview/OverviewPreviewTab.d.ts.map +1 -0
  46. package/dist/blocks/overview/OverviewPreviewTab.js +30 -0
  47. package/dist/blocks/overview/OverviewSettings.d.ts +3 -0
  48. package/dist/blocks/overview/OverviewSettings.d.ts.map +1 -0
  49. package/dist/blocks/overview/OverviewSettings.js +114 -0
  50. package/dist/blocks/overview/index.d.ts +3 -0
  51. package/dist/blocks/overview/index.d.ts.map +1 -0
  52. package/dist/blocks/overview/index.js +5 -0
  53. package/dist/blocks/overview/useOverview.d.ts +11 -0
  54. package/dist/blocks/overview/useOverview.d.ts.map +1 -0
  55. package/dist/blocks/overview/useOverview.js +61 -0
  56. package/dist/components/GlobeIcon.d.ts +9 -0
  57. package/dist/components/GlobeIcon.d.ts.map +1 -0
  58. package/dist/components/GlobeIcon.js +20 -0
  59. package/dist/components/IxoEditor.d.ts +14 -0
  60. package/dist/components/IxoEditor.d.ts.map +1 -0
  61. package/dist/components/IxoEditor.js +41 -0
  62. package/dist/components/PenIcon.d.ts +9 -0
  63. package/dist/components/PenIcon.d.ts.map +1 -0
  64. package/dist/components/PenIcon.js +20 -0
  65. package/dist/components/SettingsIcon.d.ts +9 -0
  66. package/dist/components/SettingsIcon.d.ts.map +1 -0
  67. package/dist/components/SettingsIcon.js +21 -0
  68. package/dist/components/SettingsModal/AdvancedTab.d.ts +8 -0
  69. package/dist/components/SettingsModal/AdvancedTab.d.ts.map +1 -0
  70. package/dist/components/SettingsModal/AdvancedTab.js +14 -0
  71. package/dist/components/SettingsModal/DomainPreview.d.ts +7 -0
  72. package/dist/components/SettingsModal/DomainPreview.d.ts.map +1 -0
  73. package/dist/components/SettingsModal/DomainPreview.js +22 -0
  74. package/dist/components/SettingsModal/FeatureASettings.d.ts +3 -0
  75. package/dist/components/SettingsModal/FeatureASettings.d.ts.map +1 -0
  76. package/dist/components/SettingsModal/FeatureASettings.js +74 -0
  77. package/dist/components/SettingsModal/GeneralTab.d.ts +10 -0
  78. package/dist/components/SettingsModal/GeneralTab.d.ts.map +1 -0
  79. package/dist/components/SettingsModal/GeneralTab.js +111 -0
  80. package/dist/components/SettingsModal/PreviewTab.d.ts +8 -0
  81. package/dist/components/SettingsModal/PreviewTab.d.ts.map +1 -0
  82. package/dist/components/SettingsModal/PreviewTab.js +14 -0
  83. package/dist/components/SettingsModal/SettingsModal.d.ts +16 -0
  84. package/dist/components/SettingsModal/SettingsModal.d.ts.map +1 -0
  85. package/dist/components/SettingsModal/SettingsModal.js +61 -0
  86. package/dist/components/SettingsModal/SettingsNavigation.d.ts +15 -0
  87. package/dist/components/SettingsModal/SettingsNavigation.d.ts.map +1 -0
  88. package/dist/components/SettingsModal/SettingsNavigation.js +21 -0
  89. package/dist/components/SettingsModal/index.d.ts +8 -0
  90. package/dist/components/SettingsModal/index.d.ts.map +1 -0
  91. package/dist/components/SettingsModal/index.js +17 -0
  92. package/dist/components/SwitchOption.d.ts +9 -0
  93. package/dist/components/SwitchOption.d.ts.map +1 -0
  94. package/dist/components/SwitchOption.js +45 -0
  95. package/dist/components/icons/ArchiveIcon.d.ts +9 -0
  96. package/dist/components/icons/ArchiveIcon.d.ts.map +1 -0
  97. package/dist/components/icons/ArchiveIcon.js +18 -0
  98. package/dist/components/icons/AudioIcon.d.ts +9 -0
  99. package/dist/components/icons/AudioIcon.d.ts.map +1 -0
  100. package/dist/components/icons/AudioIcon.js +17 -0
  101. package/dist/components/icons/DefaultIcon.d.ts +9 -0
  102. package/dist/components/icons/DefaultIcon.d.ts.map +1 -0
  103. package/dist/components/icons/DefaultIcon.js +17 -0
  104. package/dist/components/icons/DocumentIcon.d.ts +9 -0
  105. package/dist/components/icons/DocumentIcon.d.ts.map +1 -0
  106. package/dist/components/icons/DocumentIcon.js +20 -0
  107. package/dist/components/icons/ImageIcon.d.ts +9 -0
  108. package/dist/components/icons/ImageIcon.d.ts.map +1 -0
  109. package/dist/components/icons/ImageIcon.js +18 -0
  110. package/dist/components/icons/JsonIcon.d.ts +9 -0
  111. package/dist/components/icons/JsonIcon.d.ts.map +1 -0
  112. package/dist/components/icons/JsonIcon.js +19 -0
  113. package/dist/components/icons/PdfIcon.d.ts +9 -0
  114. package/dist/components/icons/PdfIcon.d.ts.map +1 -0
  115. package/dist/components/icons/PdfIcon.js +20 -0
  116. package/dist/components/icons/VideoIcon.d.ts +9 -0
  117. package/dist/components/icons/VideoIcon.d.ts.map +1 -0
  118. package/dist/components/icons/VideoIcon.js +17 -0
  119. package/dist/components/icons/XmlIcon.d.ts +9 -0
  120. package/dist/components/icons/XmlIcon.d.ts.map +1 -0
  121. package/dist/components/icons/XmlIcon.js +19 -0
  122. package/dist/components/icons/index.d.ts +10 -0
  123. package/dist/components/icons/index.d.ts.map +1 -0
  124. package/dist/components/icons/index.js +24 -0
  125. package/dist/components/ui/button.d.ts +11 -0
  126. package/dist/components/ui/button.d.ts.map +1 -0
  127. package/dist/components/ui/button.js +68 -0
  128. package/dist/components/ui/card.d.ts +9 -0
  129. package/dist/components/ui/card.d.ts.map +1 -0
  130. package/dist/components/ui/card.js +56 -0
  131. package/dist/components/ui/dialog.d.ts +16 -0
  132. package/dist/components/ui/dialog.d.ts.map +1 -0
  133. package/dist/components/ui/dialog.js +85 -0
  134. package/dist/components/ui/dropdown-menu.d.ts +26 -0
  135. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  136. package/dist/components/ui/dropdown-menu.js +110 -0
  137. package/dist/components/ui/input.d.ts +4 -0
  138. package/dist/components/ui/input.d.ts.map +1 -0
  139. package/dist/components/ui/input.js +41 -0
  140. package/dist/components/ui/label.d.ts +5 -0
  141. package/dist/components/ui/label.d.ts.map +1 -0
  142. package/dist/components/ui/label.js +42 -0
  143. package/dist/components/ui/switch.d.ts +5 -0
  144. package/dist/components/ui/switch.d.ts.map +1 -0
  145. package/dist/components/ui/switch.js +44 -0
  146. package/dist/components/ui/tabs.d.ts +8 -0
  147. package/dist/components/ui/tabs.d.ts.map +1 -0
  148. package/dist/components/ui/tabs.js +54 -0
  149. package/dist/components/ui/toggle-group.d.ts +8 -0
  150. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  151. package/dist/components/ui/toggle-group.js +57 -0
  152. package/dist/components/ui/toggle.d.ts +10 -0
  153. package/dist/components/ui/toggle.d.ts.map +1 -0
  154. package/dist/components/ui/toggle.js +62 -0
  155. package/dist/hooks/useCollaborativeIxoEditor.d.ts +571 -0
  156. package/dist/hooks/useCollaborativeIxoEditor.d.ts.map +1 -0
  157. package/dist/hooks/useCollaborativeIxoEditor.js +127 -0
  158. package/dist/hooks/useCreateIxoEditor.d.ts +568 -0
  159. package/dist/hooks/useCreateIxoEditor.d.ts.map +1 -0
  160. package/dist/hooks/useCreateIxoEditor.js +62 -0
  161. package/dist/hooks/useMatrixProvider.d.ts +13 -0
  162. package/dist/hooks/useMatrixProvider.d.ts.map +1 -0
  163. package/dist/hooks/useMatrixProvider.js +147 -0
  164. package/dist/index.d.ts +12 -0
  165. package/dist/index.d.ts.map +1 -0
  166. package/dist/index.js +24 -0
  167. package/dist/lib/graphql-client.d.ts +27 -0
  168. package/dist/lib/graphql-client.d.ts.map +1 -0
  169. package/dist/lib/graphql-client.js +36 -0
  170. package/dist/lib/graphql-queries.d.ts +31 -0
  171. package/dist/lib/graphql-queries.d.ts.map +1 -0
  172. package/dist/lib/graphql-queries.js +40 -0
  173. package/dist/lib/utils/getMediaTypeIcon.d.ts +20 -0
  174. package/dist/lib/utils/getMediaTypeIcon.d.ts.map +1 -0
  175. package/dist/lib/utils/getMediaTypeIcon.js +96 -0
  176. package/dist/lib/utils/index.d.ts +4 -0
  177. package/dist/lib/utils/index.d.ts.map +1 -0
  178. package/dist/lib/utils/index.js +12 -0
  179. package/dist/lib/utils.d.ts +3 -0
  180. package/dist/lib/utils.d.ts.map +1 -0
  181. package/dist/lib/utils.js +8 -0
  182. package/dist/types/Domain.d.ts +18 -0
  183. package/dist/types/Domain.d.ts.map +1 -0
  184. package/dist/types/Domain.js +2 -0
  185. package/dist/types/index.d.ts +77 -0
  186. package/dist/types/index.d.ts.map +1 -0
  187. package/dist/types/index.js +2 -0
  188. package/package.json +81 -0
  189. package/style.css +246 -0
  190. package/style.css.d.ts +5 -0
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ListGeneralTab = ListGeneralTab;
37
+ const react_1 = __importStar(require("react"));
38
+ const input_1 = require("../../components/ui/input");
39
+ const label_1 = require("../../components/ui/label");
40
+ const tabs_1 = require("../../components/ui/tabs");
41
+ const lucide_react_1 = require("lucide-react");
42
+ const DomainPreview_1 = require("../../components/SettingsModal/DomainPreview");
43
+ function ListGeneralTab({ block: _block, editor: _editor, domainValue, onDomainChange, domainProfile, }) {
44
+ const [domainType, setDomainType] = (0, react_1.useState)("this-domain");
45
+ const [isValidDomain, setIsValidDomain] = (0, react_1.useState)(true);
46
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
47
+ const [customDomainValue, setCustomDomainValue] = (0, react_1.useState)("");
48
+ // Known domain value for "this-domain" tab
49
+ const thisDomainValue = "did:ixo:entity:example123";
50
+ // Synchronize local state with parent domainValue when component mounts or domainValue changes
51
+ (0, react_1.useEffect)(() => {
52
+ if (domainValue) {
53
+ if (domainValue === thisDomainValue) {
54
+ setDomainType("this-domain");
55
+ setIsValidDomain(true);
56
+ }
57
+ else {
58
+ setDomainType("custom-domain");
59
+ setCustomDomainValue(domainValue);
60
+ setIsValidDomain(true);
61
+ }
62
+ }
63
+ else {
64
+ // Reset to default if no domain value
65
+ setDomainType("this-domain");
66
+ setCustomDomainValue("");
67
+ setIsValidDomain(true);
68
+ }
69
+ }, [domainValue, thisDomainValue]);
70
+ const handleCustomDomainChange = async (did) => {
71
+ setCustomDomainValue(did);
72
+ if (!did) {
73
+ setIsValidDomain(false);
74
+ return;
75
+ }
76
+ // Basic validation for DID format
77
+ const isValid = did.startsWith("did:") && did.length > 10;
78
+ if (isValid) {
79
+ setIsLoading(true);
80
+ try {
81
+ // Simulate async fetch request
82
+ await new Promise((resolve) => setTimeout(resolve, 1000));
83
+ setIsValidDomain(true);
84
+ onDomainChange(did);
85
+ }
86
+ catch (error) {
87
+ setIsValidDomain(false);
88
+ }
89
+ finally {
90
+ setIsLoading(false);
91
+ }
92
+ }
93
+ else {
94
+ setIsValidDomain(false);
95
+ }
96
+ };
97
+ const handleTabChange = (value) => {
98
+ setDomainType(value);
99
+ if (value === "this-domain") {
100
+ // Use known domain value
101
+ setIsValidDomain(true);
102
+ onDomainChange(thisDomainValue);
103
+ }
104
+ else {
105
+ // Reset for custom domain
106
+ setIsValidDomain(false);
107
+ onDomainChange("");
108
+ }
109
+ };
110
+ return (react_1.default.createElement("div", { className: "space-y-6" },
111
+ react_1.default.createElement("div", null,
112
+ react_1.default.createElement("h2", { className: "text-2xl font-semibold" }, "List"),
113
+ react_1.default.createElement("p", { className: "text-muted-foreground mt-1" }, "Add a domain list to your page")),
114
+ react_1.default.createElement(tabs_1.Tabs, { defaultValue: "this-domain", value: domainType, onValueChange: handleTabChange },
115
+ react_1.default.createElement(tabs_1.TabsList, { className: "px-1" },
116
+ react_1.default.createElement(tabs_1.TabsTrigger, { value: "this-domain" }, "This domain"),
117
+ react_1.default.createElement(tabs_1.TabsTrigger, { value: "custom-domain" }, "Custom domain")),
118
+ react_1.default.createElement(tabs_1.TabsContent, { value: "this-domain", className: "space-y-4" },
119
+ react_1.default.createElement("div", { className: "space-y-2" },
120
+ react_1.default.createElement(label_1.Label, { htmlFor: "this-domain-input" }, "Domain"),
121
+ react_1.default.createElement("div", { className: "relative" },
122
+ react_1.default.createElement(input_1.Input, { id: "this-domain-input", value: thisDomainValue, disabled: true, className: "pr-10", placeholder: "Enter domain DID" }),
123
+ isValidDomain && (react_1.default.createElement(lucide_react_1.CheckIcon, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-green-500" })))),
124
+ react_1.default.createElement(DomainPreview_1.DomainPreview, { key: thisDomainValue, domainProfile: domainProfile })),
125
+ react_1.default.createElement(tabs_1.TabsContent, { value: "custom-domain", className: "space-y-4" },
126
+ react_1.default.createElement("div", { className: "space-y-2" },
127
+ react_1.default.createElement(label_1.Label, { htmlFor: "custom-domain-input" }, "Domain"),
128
+ react_1.default.createElement("div", { className: "relative" },
129
+ react_1.default.createElement(input_1.Input, { id: "custom-domain-input", value: customDomainValue, onChange: (e) => handleCustomDomainChange(e.target.value), className: "pr-10", placeholder: "Enter domain DID", disabled: isLoading }),
130
+ isLoading ? (react_1.default.createElement("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2" },
131
+ react_1.default.createElement("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-gray-900" }))) : (isValidDomain &&
132
+ customDomainValue && (react_1.default.createElement(lucide_react_1.CheckIcon, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-green-500" }))))),
133
+ isValidDomain && customDomainValue && !isLoading && (react_1.default.createElement(DomainPreview_1.DomainPreview, { key: customDomainValue, domainProfile: domainProfile }))))));
134
+ }
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ interface ListItemProps {
3
+ item: any;
4
+ index?: number;
5
+ }
6
+ export default function ListItem({ item, index }: ListItemProps): React.JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=ListItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/blocks/list/ListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAS,EAAE,EAAE,aAAa,qBA+BlE"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = ListItem;
7
+ const react_1 = __importDefault(require("react"));
8
+ const getMediaTypeIcon_1 = require("../../lib/utils/getMediaTypeIcon");
9
+ function ListItem({ item, index = 0 }) {
10
+ const title = typeof item === "string"
11
+ ? item
12
+ : item.description || item.title || item.name || `Item ${index + 1}`;
13
+ // Get media type from item (fallback to empty string if not available)
14
+ const mediaType = typeof item === "object" ? item.mediaType || "" : "";
15
+ return (react_1.default.createElement("div", { className: "group w-full bg-white rounded-lg p-4 border border-gray-100 hover:bg-gray-50 transition-colors duration-150 ease-in-out cursor-pointer" },
16
+ react_1.default.createElement("div", { className: "flex items-center justify-between space-x-4" },
17
+ react_1.default.createElement("div", { className: "flex items-center space-x-3 flex-1 min-w-0" },
18
+ react_1.default.createElement("div", { className: "flex-shrink-0 w-8 h-8 bg-gray-100 rounded-md flex items-center justify-center" }, (0, getMediaTypeIcon_1.getMediaTypeIcon)(mediaType, {
19
+ size: 16,
20
+ className: "text-gray-500",
21
+ color: "secondary",
22
+ })),
23
+ react_1.default.createElement("span", { className: "font-semibold text-gray-800 truncate flex-1" }, title)))));
24
+ }
@@ -0,0 +1,9 @@
1
+ import { Domain } from "../../types/Domain";
2
+ import React from "react";
3
+ interface ListPreviewTabProps {
4
+ block: any;
5
+ domain: Domain;
6
+ }
7
+ export default function ListPreviewTab({ block, domain }: ListPreviewTabProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ListPreviewTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPreviewTab.d.ts","sourceRoot":"","sources":["../../../src/blocks/list/ListPreviewTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,mBAAmB,qBAiB5E"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = ListPreviewTab;
40
+ const react_1 = __importStar(require("react"));
41
+ const ListItem_1 = __importDefault(require("./ListItem"));
42
+ function ListPreviewTab({ block, domain }) {
43
+ const [items, setItems] = (0, react_1.useState)([]);
44
+ const showResources = block.props.showLinkedResources;
45
+ (0, react_1.useEffect)(() => {
46
+ if (showResources) {
47
+ setItems(domain.linkedResource);
48
+ }
49
+ }, []);
50
+ return (react_1.default.createElement("div", { className: "flex flex-col gap-4 mt-[30px]" }, items.map((item) => (react_1.default.createElement(ListItem_1.default, { item: item })))));
51
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare function ListSettings({ block, editor, setList }: any): React.JSX.Element;
3
+ //# sourceMappingURL=ListSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListSettings.d.ts","sourceRoot":"","sources":["../../../src/blocks/list/ListSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,qBAmG3D"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ListSettings = ListSettings;
40
+ const react_1 = __importStar(require("react"));
41
+ const SettingsModal_1 = require("../../components/SettingsModal/SettingsModal");
42
+ const ListGeneralTab_1 = require("./ListGeneralTab");
43
+ const ListPreviewTab_1 = __importDefault(require("./ListPreviewTab"));
44
+ const graphql_queries_1 = require("../../lib/graphql-queries");
45
+ const ListSettingsTab_1 = __importDefault(require("./ListSettingsTab"));
46
+ function ListSettings({ block, editor, setList }) {
47
+ const [domainValue, setDomainValue] = (0, react_1.useState)(block.props.did);
48
+ const [loading, setLoading] = (0, react_1.useState)(false);
49
+ const [domainProfile, setDomainProfile] = (0, react_1.useState)(null);
50
+ const [modalOpen, setModalOpen] = (0, react_1.useState)(false);
51
+ const [domain, setDomain] = (0, react_1.useState)(null);
52
+ (0, react_1.useEffect)(() => {
53
+ if (!domainValue) {
54
+ setDomainProfile(null);
55
+ return;
56
+ }
57
+ setLoading(true);
58
+ setDomainProfile(null); // Clear previous profile
59
+ const fetchEntity = async () => {
60
+ try {
61
+ const entity = await (0, graphql_queries_1.getEntity)(domainValue);
62
+ setDomain(entity);
63
+ const profileResource = entity.settings.Profile;
64
+ if (profileResource?.serviceEndpoint) {
65
+ const fetchedProfile = await fetch(profileResource.serviceEndpoint).then((res) => res.json());
66
+ setDomainProfile(fetchedProfile);
67
+ }
68
+ else {
69
+ setDomainProfile(null);
70
+ }
71
+ setLoading(false);
72
+ }
73
+ catch (err) {
74
+ setDomainProfile(null); // Clear profile on error
75
+ setLoading(false);
76
+ }
77
+ };
78
+ fetchEntity();
79
+ }, [domainValue]);
80
+ const handleDidChange = (did) => {
81
+ setDomainValue(did);
82
+ };
83
+ const handleAddToPage = () => {
84
+ // Handle add to page logic here
85
+ editor.updateBlock(block.id, {
86
+ props: {
87
+ did: domainValue,
88
+ },
89
+ });
90
+ console.log("Adding to page with DID:", domainValue);
91
+ // Set the list data if showLinkedResources is enabled and domain has linkedResource
92
+ if (block.props.showLinkedResources && domain?.linkedResource) {
93
+ setList(domain.linkedResource);
94
+ }
95
+ // Close the modal after updating blocks
96
+ setModalOpen(false);
97
+ };
98
+ return (react_1.default.createElement(SettingsModal_1.SettingsModal, { onAddToPage: handleAddToPage, loading: loading, open: modalOpen, onOpenChange: setModalOpen, tabs: [
99
+ {
100
+ id: "general",
101
+ label: "General",
102
+ content: (react_1.default.createElement(ListGeneralTab_1.ListGeneralTab, { block: block, editor: editor, domainValue: domainValue, onDomainChange: handleDidChange, domainProfile: domainProfile })),
103
+ },
104
+ {
105
+ id: "settings",
106
+ label: "Settings",
107
+ content: (react_1.default.createElement(ListSettingsTab_1.default, { block: block, editor: editor, domain: domain })),
108
+ },
109
+ {
110
+ id: "preview",
111
+ label: "Preview",
112
+ content: react_1.default.createElement(ListPreviewTab_1.default, { block: block, domain: domain }),
113
+ },
114
+ ] }));
115
+ }
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { Domain } from "../../types/Domain";
3
+ interface ListSettingsTabProps {
4
+ block: any;
5
+ editor: any;
6
+ domain: Domain;
7
+ }
8
+ export default function ListSettingsTab({ block, editor, domain, }: ListSettingsTabProps): React.JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=ListSettingsTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListSettingsTab.d.ts","sourceRoot":"","sources":["../../../src/blocks/list/ListSettingsTab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE,oBAAoB,qBAuCtB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = ListSettingsTab;
40
+ const SwitchOption_1 = __importDefault(require("../../components/SwitchOption"));
41
+ const react_1 = __importStar(require("react"));
42
+ function ListSettingsTab({ block, editor, domain, }) {
43
+ const linkedResources = {
44
+ count: domain?.linkedResource?.length ?? 0,
45
+ };
46
+ const isCollection = (0, react_1.useMemo)(() => {
47
+ return domain?.type === "asset/collection";
48
+ }, [domain]);
49
+ return (react_1.default.createElement("div", null,
50
+ react_1.default.createElement(SwitchOption_1.default, { label: `Linked Resources ${linkedResources.count}`, description: "Resources linked to this list", checked: block.props.showLinkedResources, onChange: (checked) => {
51
+ editor.updateBlock(block.id, {
52
+ props: {
53
+ showLinkedResources: checked,
54
+ },
55
+ });
56
+ } }),
57
+ isCollection && (react_1.default.createElement(SwitchOption_1.default, { label: "Display assets in collection", description: "Display assets in collection", checked: block.props.showAssetsInCollection, onChange: (checked) => {
58
+ editor.updateBlock(block.id, {
59
+ props: {
60
+ showAssetsInCollection: checked,
61
+ },
62
+ });
63
+ } }))));
64
+ }
@@ -0,0 +1,3 @@
1
+ export { ListBlock } from './ListBlock';
2
+ export type { ListBlockSettings, ListBlockProps } from './ListBlock';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListBlock = void 0;
4
+ var ListBlock_1 = require("./ListBlock");
5
+ Object.defineProperty(exports, "ListBlock", { enumerable: true, get: function () { return ListBlock_1.ListBlock; } });
@@ -0,0 +1,5 @@
1
+ export default function useList(): {
2
+ list: any[];
3
+ setList: import("react").Dispatch<import("react").SetStateAction<any[]>>;
4
+ };
5
+ //# sourceMappingURL=useList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useList.d.ts","sourceRoot":"","sources":["../../../src/blocks/list/useList.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,OAAO;;;EAO9B"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = useList;
4
+ const react_1 = require("react");
5
+ function useList() {
6
+ const [list, setList] = (0, react_1.useState)([]);
7
+ return {
8
+ list,
9
+ setList,
10
+ };
11
+ }
@@ -0,0 +1,33 @@
1
+ import { ReactCustomBlockRenderProps } from "@blocknote/react";
2
+ import { BlockFromConfig, BlockNoteEditor, InlineContentSchema, StyleSchema, BlockSchemaWithBlock } from "@blocknote/core";
3
+ /**
4
+ * Block props schema for OverviewBlock
5
+ */
6
+ export interface OverviewBlockSettings {
7
+ did: string;
8
+ }
9
+ type OverviewBlockConfig = {
10
+ type: "overview";
11
+ propSchema: {
12
+ did: {
13
+ default: string;
14
+ };
15
+ };
16
+ content: "inline";
17
+ };
18
+ /**
19
+ * Props passed into OverviewBlock's React renderer
20
+ */
21
+ export type OverviewBlockProps = ReactCustomBlockRenderProps<OverviewBlockConfig, InlineContentSchema, StyleSchema> & {
22
+ block: BlockFromConfig<OverviewBlockConfig, InlineContentSchema, StyleSchema>;
23
+ editor: BlockNoteEditor<BlockSchemaWithBlock<"overview", OverviewBlockConfig>, InlineContentSchema, StyleSchema>;
24
+ };
25
+ /**
26
+ * BlockSpec: OverviewBlock groups other blocks inside it
27
+ */
28
+ export declare const OverviewBlock: {
29
+ config: OverviewBlockConfig;
30
+ implementation: import("@blocknote/core").TiptapBlockImplementation<OverviewBlockConfig, any, InlineContentSchema, StyleSchema>;
31
+ };
32
+ export {};
33
+ //# sourceMappingURL=OverviewBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverviewBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/overview/OverviewBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE;QACV,GAAG,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,2BAA2B,CAC1D,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,CACZ,GAAG;IACF,KAAK,EAAE,eAAe,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAC9E,MAAM,EAAE,eAAe,CACrB,oBAAoB,CAAC,UAAU,EAAE,mBAAmB,CAAC,EACrD,mBAAmB,EACnB,WAAW,CACZ,CAAC;CACH,CAAC;AA2BF;;GAEG;AACH,eAAO,MAAM,aAAa;;;CAWzB,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OverviewBlock = void 0;
7
+ // OverviewBlock.tsx
8
+ const react_1 = __importDefault(require("react"));
9
+ const react_2 = require("@blocknote/react");
10
+ const OverviewBlockToolbar_1 = __importDefault(require("./OverviewBlockToolbar"));
11
+ /**
12
+ * React renderer for OverviewBlock
13
+ */
14
+ const OverviewBlockContent = ({ block, editor, contentRef, }) => {
15
+ return (react_1.default.createElement("div", { style: {
16
+ width: "100%",
17
+ backgroundColor: "#FFFFFF",
18
+ borderRadius: "8px",
19
+ } },
20
+ react_1.default.createElement(OverviewBlockToolbar_1.default, { block: block, editor: editor }),
21
+ react_1.default.createElement("div", { ref: contentRef })));
22
+ };
23
+ /**
24
+ * BlockSpec: OverviewBlock groups other blocks inside it
25
+ */
26
+ exports.OverviewBlock = (0, react_2.createReactBlockSpec)({
27
+ type: "overview",
28
+ propSchema: {
29
+ did: { default: "" },
30
+ },
31
+ content: "inline", // <– KEY: makes this block host nested editable content
32
+ }, {
33
+ render: OverviewBlockContent,
34
+ });
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ interface OverviewBlockToolbarProps {
3
+ block: any;
4
+ editor: any;
5
+ }
6
+ export default function OverviewBlockToolbar({ block, editor, }: OverviewBlockToolbarProps): React.JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=OverviewBlockToolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverviewBlockToolbar.d.ts","sourceRoot":"","sources":["../../../src/blocks/overview/OverviewBlockToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,yBAAyB;IACjC,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,KAAK,EACL,MAAM,GACP,EAAE,yBAAyB,qBAS3B"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = OverviewBlockToolbar;
7
+ const react_1 = __importDefault(require("react"));
8
+ const GlobeIcon_1 = __importDefault(require("../../components/GlobeIcon"));
9
+ const OverviewSettings_1 = require("./OverviewSettings");
10
+ function OverviewBlockToolbar({ block, editor, }) {
11
+ return (react_1.default.createElement("div", { className: "flex justify-between items-center mb-3 pb-2 border-b border-gray-100 dark:border-gray-700" },
12
+ react_1.default.createElement("div", { className: "flex gap-2 items-center font-semibold" },
13
+ react_1.default.createElement(GlobeIcon_1.default, { size: 16 }),
14
+ " Overview"),
15
+ react_1.default.createElement(OverviewSettings_1.OverviewSettings, { block: block, editor: editor })));
16
+ }
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface GeneralTabProps {
3
+ block: any;
4
+ editor: any;
5
+ domainValue: string;
6
+ onDomainChange: (did: string) => void;
7
+ domainProfile: any;
8
+ }
9
+ export declare function OverviewGeneralTab({ block: _block, editor: _editor, domainValue, onDomainChange, domainProfile, }: GeneralTabProps): React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=OverviewGeneralTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverviewGeneralTab.d.ts","sourceRoot":"","sources":["../../../src/blocks/overview/OverviewGeneralTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAYnD,UAAU,eAAe;IACvB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,GAAG,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EACf,WAAW,EACX,cAAc,EACd,aAAa,GACd,EAAE,eAAe,qBAmJjB"}