@dxos/plugin-stack 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (88) hide show
  1. package/dist/lib/browser/{StackContainer-FUGH3ZJH.mjs → StackContainer-OLHE5F4E.mjs} +74 -54
  2. package/dist/lib/browser/StackContainer-OLHE5F4E.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-4X7CK6FM.mjs → chunk-G4CLPE5A.mjs} +3 -3
  4. package/dist/lib/browser/chunk-G4CLPE5A.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-CD32XYEB.mjs → chunk-YPQYUBQP.mjs} +2 -2
  6. package/dist/lib/browser/{chunk-CD32XYEB.mjs.map → chunk-YPQYUBQP.mjs.map} +1 -1
  7. package/dist/lib/browser/index.mjs +10 -9
  8. package/dist/lib/browser/index.mjs.map +3 -3
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/react-surface-JS4ERDMQ.mjs +33 -0
  11. package/dist/lib/browser/react-surface-JS4ERDMQ.mjs.map +7 -0
  12. package/dist/lib/browser/types/index.mjs +1 -1
  13. package/dist/lib/node-esm/{StackContainer-PTZGEQFQ.mjs → StackContainer-W3M7BKLT.mjs} +74 -54
  14. package/dist/lib/node-esm/StackContainer-W3M7BKLT.mjs.map +7 -0
  15. package/dist/lib/node-esm/{chunk-26XWE7UY.mjs → chunk-LELGTQAL.mjs} +2 -2
  16. package/dist/lib/node-esm/{chunk-26XWE7UY.mjs.map → chunk-LELGTQAL.mjs.map} +1 -1
  17. package/dist/lib/node-esm/{chunk-HEEGXPSW.mjs → chunk-LOZ6GH5A.mjs} +3 -3
  18. package/dist/lib/node-esm/chunk-LOZ6GH5A.mjs.map +7 -0
  19. package/dist/lib/node-esm/index.mjs +10 -9
  20. package/dist/lib/node-esm/index.mjs.map +3 -3
  21. package/dist/lib/node-esm/meta.json +1 -1
  22. package/dist/lib/node-esm/react-surface-YKS4OHR3.mjs +34 -0
  23. package/dist/lib/node-esm/react-surface-YKS4OHR3.mjs.map +7 -0
  24. package/dist/lib/node-esm/types/index.mjs +1 -1
  25. package/dist/types/src/StackPlugin.d.ts.map +1 -1
  26. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  27. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  28. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  29. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  30. package/dist/types/src/components/{StackContext.d.ts → StackContext/StackContext.d.ts} +2 -1
  31. package/dist/types/src/components/StackContext/StackContext.d.ts.map +1 -0
  32. package/dist/types/src/components/StackContext/index.d.ts +2 -0
  33. package/dist/types/src/components/StackContext/index.d.ts.map +1 -0
  34. package/dist/types/src/components/StackSection/CaretDownUp.d.ts.map +1 -0
  35. package/dist/types/src/components/{StackSection.d.ts → StackSection/StackSection.d.ts} +1 -1
  36. package/dist/types/src/components/StackSection/StackSection.d.ts.map +1 -0
  37. package/dist/types/src/components/StackSection/index.d.ts +2 -0
  38. package/dist/types/src/components/StackSection/index.d.ts.map +1 -0
  39. package/dist/types/src/components/{StackSettings.d.ts → StackSettings/StackSettings.d.ts} +1 -1
  40. package/dist/types/src/components/StackSettings/StackSettings.d.ts.map +1 -0
  41. package/dist/types/src/components/StackSettings/index.d.ts +2 -0
  42. package/dist/types/src/components/StackSettings/index.d.ts.map +1 -0
  43. package/dist/types/src/components/index.d.ts +2 -9
  44. package/dist/types/src/components/index.d.ts.map +1 -1
  45. package/dist/types/src/containers/StackContainer/StackContainer.d.ts +7 -0
  46. package/dist/types/src/containers/StackContainer/StackContainer.d.ts.map +1 -0
  47. package/dist/types/src/containers/StackContainer/index.d.ts +3 -0
  48. package/dist/types/src/containers/StackContainer/index.d.ts.map +1 -0
  49. package/dist/types/src/containers/index.d.ts +3 -0
  50. package/dist/types/src/containers/index.d.ts.map +1 -0
  51. package/dist/types/src/meta.d.ts +1 -1
  52. package/dist/types/src/meta.d.ts.map +1 -1
  53. package/dist/types/src/types/types.d.ts +1 -1
  54. package/dist/types/src/types/types.d.ts.map +1 -1
  55. package/dist/types/tsconfig.tsbuildinfo +1 -1
  56. package/package.json +31 -27
  57. package/src/StackPlugin.ts +6 -5
  58. package/src/capabilities/react-surface/react-surface.tsx +10 -12
  59. package/src/components/{StackContext.tsx → StackContext/StackContext.tsx} +3 -1
  60. package/src/components/StackContext/index.ts +5 -0
  61. package/src/components/{StackSection.tsx → StackSection/StackSection.tsx} +17 -15
  62. package/src/components/StackSection/index.ts +5 -0
  63. package/src/components/StackSettings/StackSettings.tsx +30 -0
  64. package/src/components/StackSettings/index.ts +5 -0
  65. package/src/components/index.ts +2 -4
  66. package/src/{components → containers/StackContainer}/StackContainer.tsx +67 -62
  67. package/src/containers/StackContainer/index.ts +7 -0
  68. package/src/containers/index.ts +7 -0
  69. package/src/meta.ts +2 -2
  70. package/src/types/stack.ts +1 -1
  71. package/src/types/types.ts +1 -1
  72. package/dist/lib/browser/StackContainer-FUGH3ZJH.mjs.map +0 -7
  73. package/dist/lib/browser/chunk-4X7CK6FM.mjs.map +0 -7
  74. package/dist/lib/browser/react-surface-ZEFLABZS.mjs +0 -40
  75. package/dist/lib/browser/react-surface-ZEFLABZS.mjs.map +0 -7
  76. package/dist/lib/node-esm/StackContainer-PTZGEQFQ.mjs.map +0 -7
  77. package/dist/lib/node-esm/chunk-HEEGXPSW.mjs.map +0 -7
  78. package/dist/lib/node-esm/react-surface-JQOFHBYS.mjs +0 -41
  79. package/dist/lib/node-esm/react-surface-JQOFHBYS.mjs.map +0 -7
  80. package/dist/types/src/components/CaretDownUp.d.ts.map +0 -1
  81. package/dist/types/src/components/StackContainer.d.ts +0 -9
  82. package/dist/types/src/components/StackContainer.d.ts.map +0 -1
  83. package/dist/types/src/components/StackContext.d.ts.map +0 -1
  84. package/dist/types/src/components/StackSection.d.ts.map +0 -1
  85. package/dist/types/src/components/StackSettings.d.ts.map +0 -1
  86. package/src/components/StackSettings.tsx +0 -30
  87. /package/dist/types/src/components/{CaretDownUp.d.ts → StackSection/CaretDownUp.d.ts} +0 -0
  88. /package/src/components/{CaretDownUp.tsx → StackSection/CaretDownUp.tsx} +0 -0
@@ -1,23 +1,26 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-4X7CK6FM.mjs";
3
+ } from "./chunk-G4CLPE5A.mjs";
4
4
 
5
- // src/components/StackContainer.tsx
5
+ // src/containers/StackContainer/StackContainer.tsx
6
+ import { Atom, useAtomValue } from "@effect-atom/atom-react";
6
7
  import * as Option from "effect/Option";
7
- import React3, { useCallback, useState as useState2 } from "react";
8
- import { Common } from "@dxos/app-framework";
9
- import { useAppGraph, useCapabilities, useOperationInvoker } from "@dxos/app-framework/react";
8
+ import React4, { useCallback, useState as useState2 } from "react";
9
+ import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
10
+ import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
11
+ import { useAppGraph } from "@dxos/app-toolkit/ui";
10
12
  import { Obj } from "@dxos/echo";
13
+ import { AtomObj } from "@dxos/echo-atom";
11
14
  import { Graph } from "@dxos/plugin-graph";
12
15
  import { SpaceOperation } from "@dxos/plugin-space/types";
13
- import { Toolbar, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
14
- import { AttentionProvider } from "@dxos/react-ui-attention";
16
+ import { Toolbar, toLocalizedString, useTranslation as useTranslation3 } from "@dxos/react-ui";
15
17
  import { Stack, StackItem as StackItem2 } from "@dxos/react-ui-stack";
16
18
  import { isNonNullable } from "@dxos/util";
17
19
 
18
- // src/components/StackContext.tsx
20
+ // src/components/StackContext/StackContext.tsx
19
21
  import { createContext, useContext } from "react";
20
22
  var StackContext = /* @__PURE__ */ createContext({
23
+ attendableId: "",
21
24
  onCollapse: () => {
22
25
  },
23
26
  onNavigate: async () => {
@@ -29,16 +32,16 @@ var StackContext = /* @__PURE__ */ createContext({
29
32
  });
30
33
  var useStack = () => useContext(StackContext);
31
34
 
32
- // src/components/StackSection.tsx
35
+ // src/components/StackSection/StackSection.tsx
33
36
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
34
37
  import React2, { useMemo, useState } from "react";
35
- import { Surface } from "@dxos/app-framework/react";
38
+ import { Surface } from "@dxos/app-framework/ui";
36
39
  import { DropdownMenu, Icon, IconButton, useTranslation } from "@dxos/react-ui";
37
40
  import { useAttentionAttributes } from "@dxos/react-ui-attention";
38
41
  import { StackItem } from "@dxos/react-ui-stack";
39
42
  import { getSize, mx, textBlockWidth } from "@dxos/ui-theme";
40
43
 
41
- // src/components/CaretDownUp.tsx
44
+ // src/components/StackSection/CaretDownUp.tsx
42
45
  import React from "react";
43
46
  var CaretDownUp = ({ children, ...props }) => {
44
47
  return /* @__PURE__ */ React.createElement("svg", {
@@ -66,18 +69,26 @@ var CaretDownUp = ({ children, ...props }) => {
66
69
  }), children);
67
70
  };
68
71
 
69
- // src/components/StackSection.tsx
70
- var sectionActionDimensions = "p-1 mlb-1 shrink-0 min-bs-0 is-[--rail-action] bs-min";
72
+ // src/components/StackSection/StackSection.tsx
73
+ var sectionActionDimensions = "p-1 my-1 shrink-0 min-h-0 w-(--dx-rail-action) h-min";
71
74
  var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--regular" } }) => {
72
75
  const { t } = useTranslation(meta.id);
73
- const { onNavigate, onAdd, onCollapse, onDelete } = useStack();
76
+ const { attendableId: parentAttendableId, onNavigate, onAdd, onCollapse, onDelete } = useStack();
74
77
  const [optionsMenuOpen, setOptionsMenuOpen] = useState(false);
75
- const attentionAttrs = useAttentionAttributes(id);
78
+ const attendableId = `${parentAttendableId}/${object.id}`;
79
+ const attentionAttrs = useAttentionAttributes(attendableId);
76
80
  const stackItem = useMemo(() => ({
77
81
  id
78
82
  }), [
79
83
  id
80
84
  ]);
85
+ const data = useMemo(() => ({
86
+ attendableId,
87
+ subject: object
88
+ }), [
89
+ object,
90
+ attendableId
91
+ ]);
81
92
  return /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Root, {
82
93
  asChild: true,
83
94
  open: !view.collapsed,
@@ -87,7 +98,7 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
87
98
  role: "section",
88
99
  ...attentionAttrs
89
100
  }, /* @__PURE__ */ React2.createElement(StackItem.Heading, {
90
- classNames: "attention-surface"
101
+ classNames: "dx-attention-surface"
91
102
  }, /* @__PURE__ */ React2.createElement("span", {
92
103
  className: "sr-only"
93
104
  }, view.title), /* @__PURE__ */ React2.createElement(StackItem.HeadingStickyContent, null, /* @__PURE__ */ React2.createElement(DropdownMenu.Root, {
@@ -106,13 +117,13 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
106
117
  icon: "ph--arrow-right--regular",
107
118
  size: 5
108
119
  }), /* @__PURE__ */ React2.createElement("span", {
109
- className: "mis-2 grow"
120
+ className: "ms-2 grow"
110
121
  }, t("navigate to section label"))) : /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Trigger, {
111
122
  asChild: true
112
123
  }, /* @__PURE__ */ React2.createElement(DropdownMenu.Item, null, /* @__PURE__ */ React2.createElement(CaretDownUp, {
113
124
  className: getSize(5)
114
125
  }), /* @__PURE__ */ React2.createElement("span", {
115
- className: "mis-2 grow"
126
+ className: "ms-2 grow"
116
127
  }, t("collapse label")))), /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
117
128
  onClick: () => onAdd(id, "before"),
118
129
  "data-testid": "section.add-before"
@@ -120,7 +131,7 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
120
131
  icon: "ph--arrow-line-up--regular",
121
132
  size: 5
122
133
  }), /* @__PURE__ */ React2.createElement("span", {
123
- className: "mis-2 grow"
134
+ className: "ms-2 grow"
124
135
  }, t("add section before label"))), /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
125
136
  onClick: () => onAdd(id, "after"),
126
137
  "data-testid": "section.add-after"
@@ -128,7 +139,7 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
128
139
  icon: "ph--arrow-line-down--regular",
129
140
  size: 5
130
141
  }), /* @__PURE__ */ React2.createElement("span", {
131
- className: "mis-2 grow"
142
+ className: "ms-2 grow"
132
143
  }, t("add section after label"))), /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
133
144
  onClick: () => onDelete(id),
134
145
  "data-testid": "section.remove"
@@ -136,7 +147,7 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
136
147
  icon: "ph--trash--regular",
137
148
  size: 5
138
149
  }), /* @__PURE__ */ React2.createElement("span", {
139
- className: "mis-2 grow"
150
+ className: "ms-2 grow"
140
151
  }, t("remove section label")))), /* @__PURE__ */ React2.createElement(DropdownMenu.Arrow, null)))), view.collapsed ? /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Trigger, {
141
152
  asChild: true
142
153
  }, /* @__PURE__ */ React2.createElement(IconButton, {
@@ -153,28 +164,36 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
153
164
  icon: "ph--arrow-right--regular",
154
165
  "data-testid": "section.navigate-to",
155
166
  classNames: sectionActionDimensions
156
- }))), /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Content, null, /* @__PURE__ */ React2.createElement(Surface, {
167
+ }))), /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Content, null, /* @__PURE__ */ React2.createElement(Surface.Surface, {
157
168
  role: "section",
158
- data: {
159
- subject: object
160
- },
169
+ data,
161
170
  limit: 1,
162
171
  placeholder: /* @__PURE__ */ React2.createElement(React2.Fragment, null)
163
172
  })), view.collapsed && /* @__PURE__ */ React2.createElement(StackItem.Content, {
164
- classNames: "attention-surface"
173
+ classNames: "dx-attention-surface"
165
174
  }, /* @__PURE__ */ React2.createElement("h2", {
166
175
  className: mx("flex items-center p-4 font-medium", textBlockWidth)
167
176
  }, view.title))));
168
177
  };
169
178
 
170
- // src/components/StackContainer.tsx
171
- var StackContainer = ({ id, subject: collection }) => {
179
+ // src/components/StackSettings/StackSettings.tsx
180
+ import React3 from "react";
181
+ import { Input, useTranslation as useTranslation2 } from "@dxos/react-ui";
182
+ import { Settings } from "@dxos/react-ui-form";
183
+
184
+ // src/containers/StackContainer/StackContainer.tsx
185
+ var collectionObjectsFamily = Atom.family((collection) => Atom.make((get) => {
186
+ const snapshot = get(AtomObj.make(collection));
187
+ return snapshot.objects.map((ref) => get(AtomObj.makeWithReactive(ref))).filter(isNonNullable);
188
+ }));
189
+ var StackContainer = ({ attendableId, subject: collection }) => {
172
190
  const { invokePromise } = useOperationInvoker();
173
191
  const { graph } = useAppGraph();
174
- const { t } = useTranslation2(meta.id);
175
- const allMetadata = useCapabilities(Common.Capability.Metadata);
192
+ const { t } = useTranslation3(meta.id);
193
+ const allMetadata = useCapabilities(AppCapabilities.Metadata);
176
194
  const [collapsedSections, setCollapsedSections] = useState2({});
177
- const items = collection.objects.map((object) => object.target).filter(isNonNullable).map((object) => {
195
+ const collectionObjects = useAtomValue(collectionObjectsFamily(collection));
196
+ const items = collectionObjects.map((object) => {
178
197
  const metadata = allMetadata.find((m) => m.id === (Obj.getTypename(object) ?? "never"))?.metadata;
179
198
  const view = {
180
199
  // ...stack.sections[object.id],
@@ -188,9 +207,9 @@ var StackContainer = ({ id, subject: collection }) => {
188
207
  metadata,
189
208
  view
190
209
  };
191
- }) ?? [];
192
- const handleDelete = useCallback(async (id2) => {
193
- const index = collection.objects.map((object2) => object2.target).filter(isNonNullable).findIndex((section) => Obj.getDXN(section).toString() === id2);
210
+ });
211
+ const handleDelete = useCallback(async (id) => {
212
+ const index = collection.objects.map((object2) => object2.target).filter(isNonNullable).findIndex((section) => Obj.getDXN(section).toString() === id);
194
213
  const object = collection.objects[index].target;
195
214
  if (Obj.isObject(object)) {
196
215
  await invokePromise(SpaceOperation.RemoveObjects, {
@@ -204,12 +223,12 @@ var StackContainer = ({ id, subject: collection }) => {
204
223
  collection,
205
224
  invokePromise
206
225
  ]);
207
- const handleAdd = useCallback(async (id2, position) => {
208
- await invokePromise(Common.LayoutOperation.UpdateDialog, {
209
- subject: `${meta.id}/AddSectionDialog`,
226
+ const handleAdd = useCallback(async (id, position) => {
227
+ await invokePromise(LayoutOperation.UpdateDialog, {
228
+ subject: `${meta.id}.AddSectionDialog`,
210
229
  blockAlign: "start",
211
230
  props: {
212
- path: id2,
231
+ path: id,
213
232
  position,
214
233
  collection
215
234
  }
@@ -218,18 +237,18 @@ var StackContainer = ({ id, subject: collection }) => {
218
237
  collection,
219
238
  invokePromise
220
239
  ]);
221
- const handleNavigate = useCallback(async (id2) => {
222
- await invokePromise(Common.LayoutOperation.Open, {
240
+ const handleNavigate = useCallback(async (id) => {
241
+ await invokePromise(LayoutOperation.Open, {
223
242
  subject: [
224
- id2
243
+ id
225
244
  ]
226
245
  });
227
246
  }, [
228
247
  invokePromise
229
248
  ]);
230
- const handleCollapse = useCallback((id2, collapsed) => setCollapsedSections((prev) => ({
249
+ const handleCollapse = useCallback((id, collapsed) => setCollapsedSections((prev) => ({
231
250
  ...prev,
232
- [id2]: collapsed
251
+ [id]: collapsed
233
252
  })), []);
234
253
  const handleAddSection = useCallback(() => invokePromise(SpaceOperation.OpenCreateObject, {
235
254
  target: collection,
@@ -238,37 +257,38 @@ var StackContainer = ({ id, subject: collection }) => {
238
257
  collection,
239
258
  invokePromise
240
259
  ]);
241
- return /* @__PURE__ */ React3.createElement(StackItem2.Content, {
260
+ return /* @__PURE__ */ React4.createElement(StackItem2.Content, {
242
261
  toolbar: true,
243
- classNames: "container-max-width overflow-hidden border-l border-r border-subduedSeparator"
244
- }, /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
262
+ classNames: "dx-article overflow-hidden border-l border-r border-subdued-separator"
263
+ }, /* @__PURE__ */ React4.createElement(Toolbar.Root, null, /* @__PURE__ */ React4.createElement(Toolbar.IconButton, {
245
264
  icon: "ph--plus--regular",
246
265
  iconOnly: true,
247
266
  label: "Add section",
248
267
  "data-testid": "stack.addSection",
249
268
  onClick: handleAddSection
250
- })), /* @__PURE__ */ React3.createElement(AttentionProvider, {
251
- id
252
- }, /* @__PURE__ */ React3.createElement(StackContext.Provider, {
269
+ })), /* @__PURE__ */ React4.createElement(StackContext.Provider, {
253
270
  value: {
271
+ attendableId,
254
272
  onCollapse: handleCollapse,
255
273
  onNavigate: handleNavigate,
256
274
  onDelete: handleDelete,
257
275
  onAdd: handleAdd
258
276
  }
259
- }, /* @__PURE__ */ React3.createElement(Stack, {
277
+ }, /* @__PURE__ */ React4.createElement(Stack, {
260
278
  orientation: "vertical",
261
279
  size: "intrinsic",
262
- id,
280
+ id: Obj.getDXN(collection).toString(),
263
281
  "data-testid": "main.stack",
264
282
  classNames: "overflow-y-auto"
265
- }, items.map((item) => /* @__PURE__ */ React3.createElement(StackSection, {
283
+ }, items.map((item) => /* @__PURE__ */ React4.createElement(StackSection, {
266
284
  key: item.id,
267
285
  ...item
268
- }))))));
286
+ })))));
269
287
  };
288
+
289
+ // src/containers/StackContainer/index.ts
270
290
  var StackContainer_default = StackContainer;
271
291
  export {
272
292
  StackContainer_default as default
273
293
  };
274
- //# sourceMappingURL=StackContainer-FUGH3ZJH.mjs.map
294
+ //# sourceMappingURL=StackContainer-OLHE5F4E.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/StackContainer/StackContainer.tsx", "../../../src/components/StackContext/StackContext.tsx", "../../../src/components/StackSection/StackSection.tsx", "../../../src/components/StackSection/CaretDownUp.tsx", "../../../src/components/StackSettings/StackSettings.tsx", "../../../src/containers/StackContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Atom, useAtomValue } from '@effect-atom/atom-react';\nimport * as Option from 'effect/Option';\nimport React, { useCallback, useState } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Obj, type Ref } from '@dxos/echo';\nimport { type Collection } from '@dxos/echo';\nimport { AtomObj } from '@dxos/echo-atom';\nimport { Graph } from '@dxos/plugin-graph';\nimport { SpaceOperation } from '@dxos/plugin-space/types';\nimport { Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Stack, StackItem } from '@dxos/react-ui-stack';\nimport { isNonNullable } from '@dxos/util';\n\nimport { StackContext, StackSection } from '../../components';\nimport { meta } from '../../meta';\nimport {\n type AddSectionPosition,\n type CollapsedSections,\n type StackSectionItem,\n type StackSectionMetadata,\n type StackSectionView,\n} from '../../types';\n\nconst collectionObjectsFamily = Atom.family((collection: Collection.Collection) =>\n Atom.make((get) => {\n const snapshot = get(AtomObj.make(collection));\n return (\n snapshot.objects\n // TODO(wittjosiah): Why isn't this type inferred correctly?\n .map((ref: Ref.Ref<Obj.Unknown>) => get(AtomObj.makeWithReactive(ref)))\n .filter(isNonNullable)\n );\n }),\n);\n\ntype StackContainerProps = SurfaceComponentProps<Collection.Collection>;\n\nexport const StackContainer = ({ attendableId, subject: collection }: StackContainerProps) => {\n const { invokePromise } = useOperationInvoker();\n const { graph } = useAppGraph();\n const { t } = useTranslation(meta.id);\n const allMetadata = useCapabilities(AppCapabilities.Metadata);\n const [collapsedSections, setCollapsedSections] = useState<CollapsedSections>({});\n\n // TODO(wittjosiah): Re-implement stack views with relations.\n // const defaultStack = useMemo(() => Obj.make(StackViewType, { sections: {} }), [collection]);\n // const stack = (collection.views[StackViewType.typename]?.target as StackViewType | undefined) ?? defaultStack;\n // useEffect(() => {\n // if (!collection.views[StackViewType.typename]) {\n // collection.views[StackViewType.typename] = Ref.make(stack);\n // }\n // }, [collection, stack]);\n\n const collectionObjects = useAtomValue(collectionObjectsFamily(collection));\n const items = collectionObjects.map((object: Obj.Unknown) => {\n const metadata = allMetadata.find((m) => m.id === (Obj.getTypename(object) ?? 'never'))\n ?.metadata as StackSectionMetadata;\n const view = {\n // ...stack.sections[object.id],\n collapsed: collapsedSections[Obj.getDXN(object).toString()],\n title:\n (object as any)?.title ??\n // TODO(wittjosiah): `getNode` is not reactive.\n toLocalizedString(\n Graph.getNode(graph, Obj.getDXN(object).toString()).pipe(Option.getOrNull)?.properties.label,\n t,\n ),\n } as StackSectionView;\n return { id: Obj.getDXN(object).toString(), object, metadata, view } satisfies StackSectionItem;\n });\n\n const handleDelete = useCallback(\n async (id: string) => {\n const index = collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .findIndex((section) => Obj.getDXN(section).toString() === id);\n const object = collection.objects[index].target;\n if (Obj.isObject(object)) {\n await invokePromise(SpaceOperation.RemoveObjects, {\n objects: [object],\n target: collection,\n });\n\n // TODO(wittjosiah): The section should also be removed, but needs to be restored if the action is undone.\n // delete stack.sections[Path.last(path)];\n }\n },\n [collection, invokePromise],\n );\n\n const handleAdd = useCallback(\n async (id: string, position: AddSectionPosition) => {\n // TODO(wittjosiah): Use object creation dialog.\n await invokePromise(LayoutOperation.UpdateDialog, {\n subject: `${meta.id}.AddSectionDialog`,\n blockAlign: 'start',\n props: {\n path: id,\n position,\n collection,\n },\n });\n },\n [collection, invokePromise],\n );\n\n const handleNavigate = useCallback(\n async (id: string) => {\n await invokePromise(LayoutOperation.Open, { subject: [id] });\n },\n [invokePromise],\n );\n\n const handleCollapse = useCallback(\n (id: string, collapsed: boolean) => setCollapsedSections((prev) => ({ ...prev, [id]: collapsed })),\n [],\n );\n\n const handleAddSection = useCallback(\n () =>\n invokePromise(SpaceOperation.OpenCreateObject, {\n target: collection,\n navigable: false,\n }),\n [collection, invokePromise],\n );\n\n return (\n <StackItem.Content toolbar classNames='dx-article overflow-hidden border-l border-r border-subdued-separator'>\n <Toolbar.Root>\n <Toolbar.IconButton\n icon='ph--plus--regular'\n iconOnly\n label='Add section'\n data-testid='stack.addSection'\n onClick={handleAddSection}\n />\n </Toolbar.Root>\n <StackContext.Provider\n value={{\n attendableId: attendableId!,\n onCollapse: handleCollapse,\n onNavigate: handleNavigate,\n onDelete: handleDelete,\n onAdd: handleAdd,\n }}\n >\n <Stack\n orientation='vertical'\n size='intrinsic'\n id={Obj.getDXN(collection).toString()}\n data-testid='main.stack'\n classNames='overflow-y-auto'\n >\n {items.map((item) => (\n <StackSection key={item.id} {...item} />\n ))}\n </Stack>\n </StackContext.Provider>\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { type AddSectionPosition } from '../../types';\n\nexport type StackContextValue = {\n attendableId: string;\n onCollapse: (id: string, collapsed: boolean) => void;\n onNavigate: (id: string) => Promise<void>;\n onDelete: (id: string) => Promise<void>;\n onAdd: (id: string, position: AddSectionPosition) => void;\n};\n\nexport const StackContext = createContext<StackContextValue>({\n attendableId: '',\n onCollapse: () => {},\n onNavigate: async () => {},\n onDelete: async () => {},\n onAdd: () => {},\n});\n\nexport const useStack = () => useContext(StackContext);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nimport React, { useMemo, useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { DropdownMenu, Icon, IconButton, useTranslation } from '@dxos/react-ui';\nimport { useAttentionAttributes } from '@dxos/react-ui-attention';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { getSize, mx, textBlockWidth } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\nimport { type StackSectionItem } from '../../types';\n\nimport { CaretDownUp } from './CaretDownUp';\nimport { useStack } from '../StackContext';\n\nconst sectionActionDimensions = 'p-1 my-1 shrink-0 min-h-0 w-(--dx-rail-action) h-min';\n\nexport type StackSectionProps = StackSectionItem;\n\nexport const StackSection = ({\n id,\n view,\n object,\n metadata: { icon = 'ph--placeholder--regular' },\n}: StackSectionProps) => {\n const { t } = useTranslation(meta.id);\n const { attendableId: parentAttendableId, onNavigate, onAdd, onCollapse, onDelete } = useStack();\n const [optionsMenuOpen, setOptionsMenuOpen] = useState(false);\n const attendableId = `${parentAttendableId}/${object.id}`;\n const attentionAttrs = useAttentionAttributes(attendableId);\n const stackItem = useMemo(() => ({ id }), [id]);\n const data = useMemo(() => ({ attendableId, subject: object }), [object, attendableId]);\n\n return (\n <CollapsiblePrimitive.Root asChild open={!view.collapsed} onOpenChange={(nextOpen) => onCollapse?.(id, !nextOpen)}>\n <StackItem.Root item={stackItem} role='section' {...attentionAttrs}>\n <StackItem.Heading classNames='dx-attention-surface'>\n <span className='sr-only'>{view.title}</span>\n <StackItem.HeadingStickyContent>\n <DropdownMenu.Root\n {...{\n open: optionsMenuOpen,\n onOpenChange: setOptionsMenuOpen,\n }}\n >\n <DropdownMenu.Trigger asChild>\n <StackItem.SigilButton>\n <Icon icon={icon} size={5} classNames='transition-opacity' />\n </StackItem.SigilButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n {view.collapsed ? (\n <DropdownMenu.Item onClick={() => onNavigate(id)} data-testid='section.navigate-to'>\n <Icon icon='ph--arrow-right--regular' size={5} />\n <span className='ms-2 grow'>{t('navigate to section label')}</span>\n </DropdownMenu.Item>\n ) : (\n <CollapsiblePrimitive.Trigger asChild>\n <DropdownMenu.Item>\n <CaretDownUp className={getSize(5)} />\n <span className='ms-2 grow'>{t('collapse label')}</span>\n </DropdownMenu.Item>\n </CollapsiblePrimitive.Trigger>\n )}\n <DropdownMenu.Item onClick={() => onAdd(id, 'before')} data-testid='section.add-before'>\n <Icon icon='ph--arrow-line-up--regular' size={5} />\n <span className='ms-2 grow'>{t('add section before label')}</span>\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onAdd(id, 'after')} data-testid='section.add-after'>\n <Icon icon='ph--arrow-line-down--regular' size={5} />\n <span className='ms-2 grow'>{t('add section after label')}</span>\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onDelete(id)} data-testid='section.remove'>\n <Icon icon='ph--trash--regular' size={5} />\n <span className='ms-2 grow'>{t('remove section label')}</span>\n </DropdownMenu.Item>\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n {view.collapsed ? (\n <CollapsiblePrimitive.Trigger asChild>\n <IconButton\n iconOnly\n variant='ghost'\n label={t('expand label')}\n icon='ph--caret-up-down--regular'\n classNames={sectionActionDimensions}\n />\n </CollapsiblePrimitive.Trigger>\n ) : (\n <IconButton\n iconOnly\n variant='ghost'\n onClick={() => onNavigate(id)}\n label={t('navigate to section label')}\n icon='ph--arrow-right--regular'\n data-testid='section.navigate-to'\n classNames={sectionActionDimensions}\n />\n )}\n </StackItem.HeadingStickyContent>\n </StackItem.Heading>\n <CollapsiblePrimitive.Content>\n <Surface.Surface role='section' data={data} limit={1} placeholder={<></>} />\n </CollapsiblePrimitive.Content>\n {view.collapsed && (\n <StackItem.Content classNames='dx-attention-surface'>\n <h2 className={mx('flex items-center p-4 font-medium', textBlockWidth)}>{view.title}</h2>\n </StackItem.Content>\n )}\n </StackItem.Root>\n </CollapsiblePrimitive.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type ComponentPropsWithoutRef } from 'react';\n\nexport const CaretDownUp = ({ children, ...props }: ComponentPropsWithoutRef<'svg'>) => {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' {...props}>\n <rect width='256' height='256' fill='none' />\n <polyline\n points='80 224 128 176 176 224'\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='16'\n />\n <polyline\n points='80 32 128 80 176 32'\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='16'\n />\n {children}\n </svg>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { type StackSettingsProps } from '../../types';\n\nexport const StackSettings = ({ settings }: { settings: StackSettingsProps }) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Settings.Root>\n <Settings.Section title={t('settings title', { ns: meta.id })}>\n <Settings.Group>\n <Settings.ItemInput title={t('settings separation label')}>\n <Input.Switch\n checked={settings.separation}\n onCheckedChange={(checked) => (settings.separation = !!checked)}\n />\n </Settings.ItemInput>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { StackContainer } from './StackContainer';\n\nexport default StackContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "useAtomValue", "Option", "React", "useCallback", "useState", "useCapabilities", "useOperationInvoker", "AppCapabilities", "LayoutOperation", "useAppGraph", "Obj", "AtomObj", "Graph", "SpaceOperation", "Toolbar", "toLocalizedString", "useTranslation", "Stack", "StackItem", "isNonNullable", "createContext", "useContext", "StackContext", "createContext", "attendableId", "onCollapse", "onNavigate", "onDelete", "onAdd", "useStack", "useContext", "CollapsiblePrimitive", "React", "useMemo", "useState", "Surface", "DropdownMenu", "Icon", "IconButton", "useTranslation", "useAttentionAttributes", "StackItem", "getSize", "mx", "textBlockWidth", "React", "CaretDownUp", "children", "props", "svg", "xmlns", "viewBox", "rect", "width", "height", "fill", "polyline", "points", "stroke", "strokeLinecap", "strokeLinejoin", "strokeWidth", "sectionActionDimensions", "StackSection", "id", "view", "object", "metadata", "icon", "t", "useTranslation", "meta", "attendableId", "parentAttendableId", "onNavigate", "onAdd", "onCollapse", "onDelete", "useStack", "optionsMenuOpen", "setOptionsMenuOpen", "useState", "attentionAttrs", "useAttentionAttributes", "stackItem", "useMemo", "data", "subject", "React", "Root", "asChild", "open", "collapsed", "onOpenChange", "nextOpen", "StackItem", "item", "role", "Heading", "classNames", "span", "className", "title", "HeadingStickyContent", "DropdownMenu", "Trigger", "SigilButton", "Icon", "size", "Portal", "Content", "Viewport", "Item", "onClick", "data-testid", "CaretDownUp", "getSize", "Arrow", "IconButton", "iconOnly", "variant", "label", "Surface", "limit", "placeholder", "h2", "mx", "textBlockWidth", "React", "Input", "useTranslation", "Settings", "collectionObjectsFamily", "Atom", "family", "collection", "make", "get", "snapshot", "AtomObj", "objects", "map", "ref", "makeWithReactive", "filter", "isNonNullable", "StackContainer", "attendableId", "subject", "invokePromise", "useOperationInvoker", "graph", "useAppGraph", "t", "useTranslation", "meta", "id", "allMetadata", "useCapabilities", "AppCapabilities", "Metadata", "collapsedSections", "setCollapsedSections", "useState", "collectionObjects", "useAtomValue", "items", "object", "metadata", "find", "m", "Obj", "getTypename", "view", "collapsed", "getDXN", "toString", "title", "toLocalizedString", "Graph", "getNode", "pipe", "getOrNull", "properties", "label", "handleDelete", "useCallback", "index", "target", "findIndex", "section", "isObject", "SpaceOperation", "RemoveObjects", "handleAdd", "position", "LayoutOperation", "UpdateDialog", "blockAlign", "props", "path", "handleNavigate", "Open", "handleCollapse", "prev", "handleAddSection", "OpenCreateObject", "navigable", "React", "StackItem", "Content", "toolbar", "classNames", "Toolbar", "Root", "IconButton", "icon", "iconOnly", "data-testid", "onClick", "StackContext", "Provider", "value", "onCollapse", "onNavigate", "onDelete", "onAdd", "Stack", "orientation", "size", "item", "StackSection", "key", "StackContainer"]
7
+ }
@@ -1,8 +1,8 @@
1
1
  // src/meta.ts
2
2
  import { trim } from "@dxos/util";
3
- var SECTION_IDENTIFIER = "dxos.org/type/StackSection";
3
+ var SECTION_IDENTIFIER = "org.dxos.type.stack-section";
4
4
  var meta = {
5
- id: "dxos.org/plugin/stack",
5
+ id: "org.dxos.plugin.stack",
6
6
  // TODO(wittjosiah): Prevents "stacks" language from being exposed to users in settings panel.
7
7
  // Conside renaming this to the collection plugin and trying to factor more collections logic from the space plugin.
8
8
  name: "Collections",
@@ -18,4 +18,4 @@ export {
18
18
  SECTION_IDENTIFIER,
19
19
  meta
20
20
  };
21
- //# sourceMappingURL=chunk-4X7CK6FM.mjs.map
21
+ //# sourceMappingURL=chunk-G4CLPE5A.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const SECTION_IDENTIFIER = 'org.dxos.type.stack-section';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.stack',\n // TODO(wittjosiah): Prevents \"stacks\" language from being exposed to users in settings panel.\n // Conside renaming this to the collection plugin and trying to factor more collections logic from the space plugin.\n name: 'Collections',\n description: trim`\n Organize and view curated collections of workspace objects in customizable layouts.\n Group related items together and manage collections with sections and filtering.\n `,\n icon: 'ph--stack-simple--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-stack',\n};\n"],
5
+ "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,qBAAqB;AAE3B,IAAMC,OAAoB;EAC/BC,IAAI;;;EAGJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,QAAQ;AACV;",
6
+ "names": ["trim", "SECTION_IDENTIFIER", "meta", "id", "name", "description", "trim", "icon", "source"]
7
+ }
@@ -16,7 +16,7 @@ var StackViewType = Schema.Struct({
16
16
  value: SectionSchema
17
17
  })
18
18
  }).pipe(Type.object({
19
- typename: "dxos.org/type/StackView",
19
+ typename: "org.dxos.type.stack-view",
20
20
  version: "0.1.0"
21
21
  }));
22
22
 
@@ -24,4 +24,4 @@ export {
24
24
  SectionSchema,
25
25
  StackViewType
26
26
  };
27
- //# sourceMappingURL=chunk-CD32XYEB.mjs.map
27
+ //# sourceMappingURL=chunk-YPQYUBQP.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/stack.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Type } from '@dxos/echo';\n\n// All section metadata needs to be optional/have defaults.\n// Any objects added to the collection will start with the section defaults.\n// If an object is removed from the collection without removing the section metadata this is fine.\n// Stack components should clean-up the superfluous data on future edits.\n\nexport const SectionSchema = Schema.Struct({\n height: Schema.optional(Schema.Number),\n // Space for data that isn't stack-specific but is specific to this view instance.\n // e.g. cover/fill for an image\n custom: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n});\n\n// TODO(wittjosiah): This needs a relation to be connected to a stack.\nexport const StackViewType = Schema.Struct({\n sections: Schema.Record({ key: Schema.String, value: SectionSchema }),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/StackView',\n version: '0.1.0',\n }),\n);\n\nexport interface StackViewType extends Schema.Schema.Type<typeof StackViewType> {}\n"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Type } from '@dxos/echo';\n\n// All section metadata needs to be optional/have defaults.\n// Any objects added to the collection will start with the section defaults.\n// If an object is removed from the collection without removing the section metadata this is fine.\n// Stack components should clean-up the superfluous data on future edits.\n\nexport const SectionSchema = Schema.Struct({\n height: Schema.optional(Schema.Number),\n // Space for data that isn't stack-specific but is specific to this view instance.\n // e.g. cover/fill for an image\n custom: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n});\n\n// TODO(wittjosiah): This needs a relation to be connected to a stack.\nexport const StackViewType = Schema.Struct({\n sections: Schema.Record({ key: Schema.String, value: SectionSchema }),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.stack-view',\n version: '0.1.0',\n }),\n);\n\nexport interface StackViewType extends Schema.Schema.Type<typeof StackViewType> {}\n"],
5
5
  "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,YAAY;AAOd,IAAMC,gBAAuBC,cAAO;EACzCC,QAAeC,gBAAgBC,aAAM;;;EAGrCC,QAAeF,gBAAgBG,cAAO;IAAEC,KAAYC;IAAQC,OAAcC;EAAI,CAAA,CAAA;AAChF,CAAA;AAGO,IAAMC,gBAAuBV,cAAO;EACzCW,UAAiBN,cAAO;IAAEC,KAAYC;IAAQC,OAAOT;EAAc,CAAA;AACrE,CAAA,EAAGa,KACDC,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,CAAA;",
6
6
  "names": ["Schema", "Type", "SectionSchema", "Struct", "height", "optional", "Number", "custom", "Record", "key", "String", "value", "Any", "StackViewType", "sections", "pipe", "Type", "object", "typename", "version"]
7
7
  }
@@ -1,17 +1,18 @@
1
1
  import {
2
2
  StackViewType
3
- } from "./chunk-CD32XYEB.mjs";
3
+ } from "./chunk-YPQYUBQP.mjs";
4
4
  import {
5
5
  SECTION_IDENTIFIER,
6
6
  meta
7
- } from "./chunk-4X7CK6FM.mjs";
7
+ } from "./chunk-G4CLPE5A.mjs";
8
8
 
9
9
  // src/StackPlugin.ts
10
- import { Common, Plugin } from "@dxos/app-framework";
10
+ import { Plugin } from "@dxos/app-framework";
11
+ import { AppPlugin } from "@dxos/app-toolkit";
11
12
 
12
13
  // src/capabilities/react-surface/index.ts
13
14
  import { Capability } from "@dxos/app-framework";
14
- var ReactSurface = Capability.lazy("ReactSurface", () => import("./react-surface-ZEFLABZS.mjs"));
15
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("./react-surface-JS4ERDMQ.mjs"));
15
16
 
16
17
  // src/translations.ts
17
18
  import { translations as stackTranslations } from "@dxos/react-ui-stack";
@@ -46,9 +47,7 @@ var translations = [
46
47
  ];
47
48
 
48
49
  // src/StackPlugin.ts
49
- var StackPlugin = Plugin.define(meta).pipe(Common.Plugin.addTranslationsModule({
50
- translations
51
- }), Common.Plugin.addMetadataModule({
50
+ var StackPlugin = Plugin.define(meta).pipe(AppPlugin.addMetadataModule({
52
51
  metadata: {
53
52
  id: SECTION_IDENTIFIER,
54
53
  metadata: {
@@ -68,12 +67,14 @@ var StackPlugin = Plugin.define(meta).pipe(Common.Plugin.addTranslationsModule({
68
67
  }
69
68
  }
70
69
  }
71
- }), Common.Plugin.addSchemaModule({
70
+ }), AppPlugin.addSchemaModule({
72
71
  schema: [
73
72
  StackViewType
74
73
  ]
75
- }), Common.Plugin.addSurfaceModule({
74
+ }), AppPlugin.addSurfaceModule({
76
75
  activate: ReactSurface
76
+ }), AppPlugin.addTranslationsModule({
77
+ translations
77
78
  }), Plugin.make);
78
79
  export {
79
80
  SECTION_IDENTIFIER,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/StackPlugin.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Common, Plugin } from '@dxos/app-framework';\nimport { type Obj } from '@dxos/echo';\n\nimport { ReactSurface } from './capabilities';\nimport { SECTION_IDENTIFIER, meta } from './meta';\nimport { translations } from './translations';\nimport { StackViewType } from './types';\n\nexport const StackPlugin = Plugin.define(meta).pipe(\n Common.Plugin.addTranslationsModule({ translations }),\n Common.Plugin.addMetadataModule({\n metadata: {\n id: SECTION_IDENTIFIER,\n metadata: {\n parse: (section: { object: Obj.Unknown }, type: string) => {\n switch (type) {\n case 'node':\n return { id: section.object.id, label: (section.object as any).title, data: section.object };\n case 'object':\n return section.object;\n case 'view-object':\n return section;\n }\n },\n },\n },\n }),\n Common.Plugin.addSchemaModule({ schema: [StackViewType] }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as stackTranslations } from '@dxos/react-ui-stack';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Stacks',\n 'settings title': 'Stack plugin settings',\n 'settings separation label': 'Separate sections',\n 'add section beforeAll dialog title': 'Add a section to the start',\n 'add section afterAll dialog title': 'Add a section to the end',\n 'add section before dialog title': 'Add a section',\n 'add section after dialog title': 'Add a section',\n 'add section input placeholder': 'Find the type of section to add',\n 'upload file label': 'Add file',\n 'add section label': 'Add section',\n 'empty stack message': 'Drag objects into the stack.',\n 'remove section label': 'Delete',\n 'navigate to section label': 'Navigate to object',\n 'untitled section title': 'Untitled section',\n 'add section before label': 'Add before',\n 'add section after label': 'Add after',\n 'expand label': 'Expand',\n 'collapse label': 'Collapse',\n 'open chat thread label': 'Open chat thread',\n 'drag handle label': 'Press space or enter to begin dragging this object.',\n },\n },\n },\n ...stackTranslations,\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,QAAQC,cAAc;;;ACA/B,SAASC,kBAAkB;AAEpB,IAAMC,eAAeC,WAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACDzE,SAASC,gBAAgBC,yBAAyB;AAI3C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,6BAA6B;QAC7B,sCAAsC;QACtC,qCAAqC;QACrC,mCAAmC;QACnC,kCAAkC;QAClC,iCAAiC;QACjC,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QACxB,6BAA6B;QAC7B,0BAA0B;QAC1B,4BAA4B;QAC5B,2BAA2B;QAC3B,gBAAgB;QAChB,kBAAkB;QAClB,0BAA0B;QAC1B,qBAAqB;MACvB;IACF;EACF;KACGC;;;;AFxBE,IAAMC,cAAcC,OAAOC,OAAOC,IAAAA,EAAMC,KAC7CC,OAAOJ,OAAOK,sBAAsB;EAAEC;AAAa,CAAA,GACnDF,OAAOJ,OAAOO,kBAAkB;EAC9BC,UAAU;IACRC,IAAIC;IACJF,UAAU;MACRG,OAAO,CAACC,SAAkCC,SAAAA;AACxC,gBAAQA,MAAAA;UACN,KAAK;AACH,mBAAO;cAAEJ,IAAIG,QAAQE,OAAOL;cAAIM,OAAQH,QAAQE,OAAeE;cAAOC,MAAML,QAAQE;YAAO;UAC7F,KAAK;AACH,mBAAOF,QAAQE;UACjB,KAAK;AACH,mBAAOF;QACX;MACF;IACF;EACF;AACF,CAAA,GACAR,OAAOJ,OAAOkB,gBAAgB;EAAEC,QAAQ;IAACC;;AAAe,CAAA,GACxDhB,OAAOJ,OAAOqB,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACxDvB,OAAOwB,IAAI;",
6
- "names": ["Common", "Plugin", "Capability", "ReactSurface", "Capability", "lazy", "translations", "stackTranslations", "translations", "meta", "id", "stackTranslations", "StackPlugin", "Plugin", "define", "meta", "pipe", "Common", "addTranslationsModule", "translations", "addMetadataModule", "metadata", "id", "SECTION_IDENTIFIER", "parse", "section", "type", "object", "label", "title", "data", "addSchemaModule", "schema", "StackViewType", "addSurfaceModule", "activate", "ReactSurface", "make"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { type Obj } from '@dxos/echo';\n\nimport { ReactSurface } from './capabilities';\nimport { SECTION_IDENTIFIER, meta } from './meta';\nimport { translations } from './translations';\nimport { StackViewType } from './types';\n\nexport const StackPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: SECTION_IDENTIFIER,\n metadata: {\n parse: (section: { object: Obj.Unknown }, type: string) => {\n switch (type) {\n case 'node':\n return { id: section.object.id, label: (section.object as any).title, data: section.object };\n case 'object':\n return section.object;\n case 'view-object':\n return section;\n }\n },\n },\n },\n }),\n AppPlugin.addSchemaModule({ schema: [StackViewType] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as stackTranslations } from '@dxos/react-ui-stack';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Stacks',\n 'settings title': 'Stack plugin settings',\n 'settings separation label': 'Separate sections',\n 'add section beforeAll dialog title': 'Add a section to the start',\n 'add section afterAll dialog title': 'Add a section to the end',\n 'add section before dialog title': 'Add a section',\n 'add section after dialog title': 'Add a section',\n 'add section input placeholder': 'Find the type of section to add',\n 'upload file label': 'Add file',\n 'add section label': 'Add section',\n 'empty stack message': 'Drag objects into the stack.',\n 'remove section label': 'Delete',\n 'navigate to section label': 'Navigate to object',\n 'untitled section title': 'Untitled section',\n 'add section before label': 'Add before',\n 'add section after label': 'Add after',\n 'expand label': 'Expand',\n 'collapse label': 'Collapse',\n 'open chat thread label': 'Open chat thread',\n 'drag handle label': 'Press space or enter to begin dragging this object.',\n },\n },\n },\n ...stackTranslations,\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;;;ACD1B,SAASC,kBAAkB;AAEpB,IAAMC,eAAeC,WAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACDzE,SAASC,gBAAgBC,yBAAyB;AAI3C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,6BAA6B;QAC7B,sCAAsC;QACtC,qCAAqC;QACrC,mCAAmC;QACnC,kCAAkC;QAClC,iCAAiC;QACjC,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QACxB,6BAA6B;QAC7B,0BAA0B;QAC1B,4BAA4B;QAC5B,2BAA2B;QAC3B,gBAAgB;QAChB,kBAAkB;QAClB,0BAA0B;QAC1B,qBAAqB;MACvB;IACF;EACF;KACGC;;;;AFvBE,IAAMC,cAAcC,OAAOC,OAAOC,IAAAA,EAAMC,KAC7CC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC;IACJF,UAAU;MACRG,OAAO,CAACC,SAAkCC,SAAAA;AACxC,gBAAQA,MAAAA;UACN,KAAK;AACH,mBAAO;cAAEJ,IAAIG,QAAQE,OAAOL;cAAIM,OAAQH,QAAQE,OAAeE;cAAOC,MAAML,QAAQE;YAAO;UAC7F,KAAK;AACH,mBAAOF,QAAQE;UACjB,KAAK;AACH,mBAAOF;QACX;MACF;IACF;EACF;AACF,CAAA,GACAN,UAAUY,gBAAgB;EAAEC,QAAQ;IAACC;;AAAe,CAAA,GACpDd,UAAUe,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACpDjB,UAAUkB,sBAAsB;EAAEC;AAAa,CAAA,GAC/CvB,OAAOwB,IAAI;",
6
+ "names": ["Plugin", "AppPlugin", "Capability", "ReactSurface", "Capability", "lazy", "translations", "stackTranslations", "translations", "meta", "id", "stackTranslations", "StackPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "SECTION_IDENTIFIER", "parse", "section", "type", "object", "label", "title", "data", "addSchemaModule", "schema", "StackViewType", "addSurfaceModule", "activate", "ReactSurface", "addTranslationsModule", "translations", "make"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/meta.ts":{"bytes":2522,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/components/StackSettings.tsx":{"bytes":3327,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/components/StackContext.tsx":{"bytes":1834,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/components/CaretDownUp.tsx":{"bytes":2962,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/components/StackSection.tsx":{"bytes":17302,"imports":[{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/components/CaretDownUp.tsx","kind":"import-statement","original":"./CaretDownUp"},{"path":"src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"src/components/StackContainer.tsx":{"bytes":18868,"imports":[{"path":"effect/Option","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"},{"path":"src/components/StackSection.tsx","kind":"import-statement","original":"./StackSection"}],"format":"esm"},"src/components/index.ts":{"bytes":858,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/components/StackSettings.tsx","kind":"import-statement","original":"./StackSettings"},{"path":"src/components/StackContainer.tsx","kind":"dynamic-import","original":"./StackContainer"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":4363,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":909,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":486,"imports":[{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":4451,"imports":[{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/types/stack.ts":{"bytes":3750,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":499,"imports":[{"path":"src/types/stack.ts","kind":"import-statement","original":"./stack"}],"format":"esm"},"src/StackPlugin.ts":{"bytes":4311,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":547,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/StackPlugin.ts","kind":"import-statement","original":"./StackPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4431},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-CD32XYEB.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-4X7CK6FM.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/react-surface-ZEFLABZS.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["SECTION_IDENTIFIER","StackPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/StackPlugin.ts":{"bytesInOutput":774},"src/capabilities/react-surface/index.ts":{"bytesInOutput":148},"src/capabilities/index.ts":{"bytesInOutput":0},"src/translations.ts":{"bytesInOutput":1274}},"bytes":2526},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-CD32XYEB.mjs","kind":"import-statement"}],"exports":["SectionSchema","StackViewType"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":154},"dist/lib/browser/chunk-CD32XYEB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1761},"dist/lib/browser/chunk-CD32XYEB.mjs":{"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["SectionSchema","StackViewType"],"inputs":{"src/types/stack.ts":{"bytesInOutput":575},"src/types/index.ts":{"bytesInOutput":0}},"bytes":687},"dist/lib/browser/StackContainer-FUGH3ZJH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":21662},"dist/lib/browser/StackContainer-FUGH3ZJH.mjs":{"imports":[{"path":"dist/lib/browser/chunk-4X7CK6FM.mjs","kind":"import-statement"},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/components/StackContainer.tsx","inputs":{"src/components/StackContainer.tsx":{"bytesInOutput":4032},"src/components/StackContext.tsx":{"bytesInOutput":265},"src/components/StackSection.tsx":{"bytesInOutput":5057},"src/components/CaretDownUp.tsx":{"bytesInOutput":771}},"bytes":10492},"dist/lib/browser/react-surface-ZEFLABZS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3667},"dist/lib/browser/react-surface-ZEFLABZS.mjs":{"imports":[{"path":"dist/lib/browser/chunk-4X7CK6FM.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"dist/lib/browser/StackContainer-FUGH3ZJH.mjs","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":749},"src/components/index.ts":{"bytesInOutput":104},"src/components/StackSettings.tsx":{"bytesInOutput":182}},"bytes":1380},"dist/lib/browser/chunk-4X7CK6FM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1165},"dist/lib/browser/chunk-4X7CK6FM.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SECTION_IDENTIFIER","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":695}},"bytes":796}}}
1
+ {"inputs":{"src/meta.ts":{"bytes":2527,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/components/StackContext/StackContext.tsx":{"bytes":1969,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/components/StackContext/index.ts":{"bytes":492,"imports":[{"path":"src/components/StackContext/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"src/components/StackSection/CaretDownUp.tsx":{"bytes":2975,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/components/StackSection/StackSection.tsx":{"bytes":18057,"imports":[{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/components/StackSection/CaretDownUp.tsx","kind":"import-statement","original":"./CaretDownUp"},{"path":"src/components/StackContext/index.ts","kind":"import-statement","original":"../StackContext"}],"format":"esm"},"src/components/StackSection/index.ts":{"bytes":492,"imports":[{"path":"src/components/StackSection/StackSection.tsx","kind":"import-statement","original":"./StackSection"}],"format":"esm"},"src/components/StackSettings/StackSettings.tsx":{"bytes":3249,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/components/StackSettings/index.ts":{"bytes":498,"imports":[{"path":"src/components/StackSettings/StackSettings.tsx","kind":"import-statement","original":"./StackSettings"}],"format":"esm"},"src/components/index.ts":{"bytes":684,"imports":[{"path":"src/components/StackContext/index.ts","kind":"import-statement","original":"./StackContext"},{"path":"src/components/StackSection/index.ts","kind":"import-statement","original":"./StackSection"},{"path":"src/components/StackSettings/index.ts","kind":"import-statement","original":"./StackSettings"}],"format":"esm"},"src/containers/StackContainer/StackContainer.tsx":{"bytes":19803,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/containers/StackContainer/index.ts":{"bytes":676,"imports":[{"path":"src/containers/StackContainer/StackContainer.tsx","kind":"import-statement","original":"./StackContainer"}],"format":"esm"},"src/containers/index.ts":{"bytes":809,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/containers/StackContainer/index.ts","kind":"dynamic-import","original":"./StackContainer"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":3737,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/containers/index.ts","kind":"import-statement","original":"../../containers"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":909,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":486,"imports":[{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":4451,"imports":[{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/types/stack.ts":{"bytes":3751,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":499,"imports":[{"path":"src/types/stack.ts","kind":"import-statement","original":"./stack"}],"format":"esm"},"src/StackPlugin.ts":{"bytes":4334,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":547,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/StackPlugin.ts","kind":"import-statement","original":"./StackPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4449},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YPQYUBQP.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-G4CLPE5A.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/react-surface-JS4ERDMQ.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["SECTION_IDENTIFIER","StackPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/StackPlugin.ts":{"bytesInOutput":797},"src/capabilities/react-surface/index.ts":{"bytesInOutput":148},"src/capabilities/index.ts":{"bytesInOutput":0},"src/translations.ts":{"bytesInOutput":1274}},"bytes":2549},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-YPQYUBQP.mjs","kind":"import-statement"}],"exports":["SectionSchema","StackViewType"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":154},"dist/lib/browser/chunk-YPQYUBQP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1762},"dist/lib/browser/chunk-YPQYUBQP.mjs":{"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["SectionSchema","StackViewType"],"inputs":{"src/types/stack.ts":{"bytesInOutput":576},"src/types/index.ts":{"bytesInOutput":0}},"bytes":688},"dist/lib/browser/StackContainer-OLHE5F4E.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24045},"dist/lib/browser/StackContainer-OLHE5F4E.mjs":{"imports":[{"path":"dist/lib/browser/chunk-G4CLPE5A.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/StackContainer/index.ts","inputs":{"src/containers/StackContainer/StackContainer.tsx":{"bytesInOutput":4303},"src/components/StackContext/StackContext.tsx":{"bytesInOutput":285},"src/components/StackContext/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0},"src/components/StackSection/StackSection.tsx":{"bytesInOutput":5249},"src/components/StackSection/CaretDownUp.tsx":{"bytesInOutput":771},"src/components/StackSection/index.ts":{"bytesInOutput":0},"src/components/StackSettings/StackSettings.tsx":{"bytesInOutput":151},"src/components/StackSettings/index.ts":{"bytesInOutput":0},"src/containers/StackContainer/index.ts":{"bytesInOutput":45}},"bytes":11347},"dist/lib/browser/react-surface-JS4ERDMQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2247},"dist/lib/browser/react-surface-JS4ERDMQ.mjs":{"imports":[{"path":"dist/lib/browser/chunk-G4CLPE5A.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/browser/StackContainer-OLHE5F4E.mjs","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":754},"src/containers/index.ts":{"bytesInOutput":104}},"bytes":1138},"dist/lib/browser/chunk-G4CLPE5A.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1166},"dist/lib/browser/chunk-G4CLPE5A.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SECTION_IDENTIFIER","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":696}},"bytes":797}}}