@dxos/plugin-stack 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65

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 (64) hide show
  1. package/dist/lib/browser/{StackContainer-BIFUBD3Y.mjs → StackContainer-OLHE5F4E.mjs} +33 -28
  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 +3 -3
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/{react-surface-PVND4UCN.mjs → react-surface-JS4ERDMQ.mjs} +6 -7
  10. package/dist/lib/browser/react-surface-JS4ERDMQ.mjs.map +7 -0
  11. package/dist/lib/browser/types/index.mjs +1 -1
  12. package/dist/lib/node-esm/{StackContainer-7XVJHW4D.mjs → StackContainer-W3M7BKLT.mjs} +33 -28
  13. package/dist/lib/node-esm/StackContainer-W3M7BKLT.mjs.map +7 -0
  14. package/dist/lib/node-esm/{chunk-26XWE7UY.mjs → chunk-LELGTQAL.mjs} +2 -2
  15. package/dist/lib/node-esm/{chunk-26XWE7UY.mjs.map → chunk-LELGTQAL.mjs.map} +1 -1
  16. package/dist/lib/node-esm/{chunk-HEEGXPSW.mjs → chunk-LOZ6GH5A.mjs} +3 -3
  17. package/dist/lib/node-esm/chunk-LOZ6GH5A.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +3 -3
  19. package/dist/lib/node-esm/meta.json +1 -1
  20. package/dist/lib/node-esm/{react-surface-SZETVRAZ.mjs → react-surface-YKS4OHR3.mjs} +6 -7
  21. package/dist/lib/node-esm/react-surface-YKS4OHR3.mjs.map +7 -0
  22. package/dist/lib/node-esm/types/index.mjs +1 -1
  23. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  24. package/dist/types/src/components/{StackContext.d.ts → StackContext/StackContext.d.ts} +2 -1
  25. package/dist/types/src/components/StackContext/StackContext.d.ts.map +1 -0
  26. package/dist/types/src/components/StackContext/index.d.ts +2 -0
  27. package/dist/types/src/components/StackContext/index.d.ts.map +1 -0
  28. package/dist/types/src/components/StackSection/CaretDownUp.d.ts.map +1 -0
  29. package/dist/types/src/components/{StackSection.d.ts → StackSection/StackSection.d.ts} +1 -1
  30. package/dist/types/src/components/StackSection/StackSection.d.ts.map +1 -0
  31. package/dist/types/src/components/StackSection/index.d.ts +2 -0
  32. package/dist/types/src/components/StackSection/index.d.ts.map +1 -0
  33. package/dist/types/src/components/{StackSettings.d.ts → StackSettings/StackSettings.d.ts} +1 -1
  34. package/dist/types/src/components/StackSettings/StackSettings.d.ts.map +1 -0
  35. package/dist/types/src/components/StackSettings/index.d.ts +2 -0
  36. package/dist/types/src/components/StackSettings/index.d.ts.map +1 -0
  37. package/dist/types/src/containers/StackContainer/StackContainer.d.ts +2 -4
  38. package/dist/types/src/containers/StackContainer/StackContainer.d.ts.map +1 -1
  39. package/dist/types/src/meta.d.ts +1 -1
  40. package/dist/types/src/meta.d.ts.map +1 -1
  41. package/dist/types/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +26 -26
  43. package/src/capabilities/react-surface/react-surface.tsx +4 -7
  44. package/src/components/{StackContext.tsx → StackContext/StackContext.tsx} +3 -1
  45. package/src/components/StackContext/index.ts +5 -0
  46. package/src/components/{StackSection.tsx → StackSection/StackSection.tsx} +8 -6
  47. package/src/components/StackSection/index.ts +5 -0
  48. package/src/components/{StackSettings.tsx → StackSettings/StackSettings.tsx} +2 -2
  49. package/src/components/StackSettings/index.ts +5 -0
  50. package/src/containers/StackContainer/StackContainer.tsx +23 -21
  51. package/src/meta.ts +2 -2
  52. package/src/types/stack.ts +1 -1
  53. package/dist/lib/browser/StackContainer-BIFUBD3Y.mjs.map +0 -7
  54. package/dist/lib/browser/chunk-4X7CK6FM.mjs.map +0 -7
  55. package/dist/lib/browser/react-surface-PVND4UCN.mjs.map +0 -7
  56. package/dist/lib/node-esm/StackContainer-7XVJHW4D.mjs.map +0 -7
  57. package/dist/lib/node-esm/chunk-HEEGXPSW.mjs.map +0 -7
  58. package/dist/lib/node-esm/react-surface-SZETVRAZ.mjs.map +0 -7
  59. package/dist/types/src/components/CaretDownUp.d.ts.map +0 -1
  60. package/dist/types/src/components/StackContext.d.ts.map +0 -1
  61. package/dist/types/src/components/StackSection.d.ts.map +0 -1
  62. package/dist/types/src/components/StackSettings.d.ts.map +0 -1
  63. /package/dist/types/src/components/{CaretDownUp.d.ts → StackSection/CaretDownUp.d.ts} +0 -0
  64. /package/src/components/{CaretDownUp.tsx → StackSection/CaretDownUp.tsx} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  meta
4
- } from "./chunk-HEEGXPSW.mjs";
4
+ } from "./chunk-LOZ6GH5A.mjs";
5
5
 
6
6
  // src/containers/StackContainer/StackContainer.tsx
7
7
  import { Atom, useAtomValue } from "@effect-atom/atom-react";
@@ -15,13 +15,13 @@ import { AtomObj } from "@dxos/echo-atom";
15
15
  import { Graph } from "@dxos/plugin-graph";
16
16
  import { SpaceOperation } from "@dxos/plugin-space/types";
17
17
  import { Toolbar, toLocalizedString, useTranslation as useTranslation3 } from "@dxos/react-ui";
18
- import { AttentionProvider } from "@dxos/react-ui-attention";
19
18
  import { Stack, StackItem as StackItem2 } from "@dxos/react-ui-stack";
20
19
  import { isNonNullable } from "@dxos/util";
21
20
 
22
- // src/components/StackContext.tsx
21
+ // src/components/StackContext/StackContext.tsx
23
22
  import { createContext, useContext } from "react";
24
23
  var StackContext = /* @__PURE__ */ createContext({
24
+ attendableId: "",
25
25
  onCollapse: () => {
26
26
  },
27
27
  onNavigate: async () => {
@@ -33,7 +33,7 @@ var StackContext = /* @__PURE__ */ createContext({
33
33
  });
34
34
  var useStack = () => useContext(StackContext);
35
35
 
36
- // src/components/StackSection.tsx
36
+ // src/components/StackSection/StackSection.tsx
37
37
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
38
38
  import React2, { useMemo, useState } from "react";
39
39
  import { Surface } from "@dxos/app-framework/ui";
@@ -42,7 +42,7 @@ import { useAttentionAttributes } from "@dxos/react-ui-attention";
42
42
  import { StackItem } from "@dxos/react-ui-stack";
43
43
  import { getSize, mx, textBlockWidth } from "@dxos/ui-theme";
44
44
 
45
- // src/components/CaretDownUp.tsx
45
+ // src/components/StackSection/CaretDownUp.tsx
46
46
  import React from "react";
47
47
  var CaretDownUp = ({ children, ...props }) => {
48
48
  return /* @__PURE__ */ React.createElement("svg", {
@@ -70,18 +70,26 @@ var CaretDownUp = ({ children, ...props }) => {
70
70
  }), children);
71
71
  };
72
72
 
73
- // src/components/StackSection.tsx
73
+ // src/components/StackSection/StackSection.tsx
74
74
  var sectionActionDimensions = "p-1 my-1 shrink-0 min-h-0 w-(--dx-rail-action) h-min";
75
75
  var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--regular" } }) => {
76
76
  const { t } = useTranslation(meta.id);
77
- const { onNavigate, onAdd, onCollapse, onDelete } = useStack();
77
+ const { attendableId: parentAttendableId, onNavigate, onAdd, onCollapse, onDelete } = useStack();
78
78
  const [optionsMenuOpen, setOptionsMenuOpen] = useState(false);
79
- const attentionAttrs = useAttentionAttributes(id);
79
+ const attendableId = `${parentAttendableId}/${object.id}`;
80
+ const attentionAttrs = useAttentionAttributes(attendableId);
80
81
  const stackItem = useMemo(() => ({
81
82
  id
82
83
  }), [
83
84
  id
84
85
  ]);
86
+ const data = useMemo(() => ({
87
+ attendableId,
88
+ subject: object
89
+ }), [
90
+ object,
91
+ attendableId
92
+ ]);
85
93
  return /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Root, {
86
94
  asChild: true,
87
95
  open: !view.collapsed,
@@ -159,9 +167,7 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
159
167
  classNames: sectionActionDimensions
160
168
  }))), /* @__PURE__ */ React2.createElement(CollapsiblePrimitive.Content, null, /* @__PURE__ */ React2.createElement(Surface.Surface, {
161
169
  role: "section",
162
- data: {
163
- subject: object
164
- },
170
+ data,
165
171
  limit: 1,
166
172
  placeholder: /* @__PURE__ */ React2.createElement(React2.Fragment, null)
167
173
  })), view.collapsed && /* @__PURE__ */ React2.createElement(StackItem.Content, {
@@ -171,7 +177,7 @@ var StackSection = ({ id, view, object, metadata: { icon = "ph--placeholder--reg
171
177
  }, view.title))));
172
178
  };
173
179
 
174
- // src/components/StackSettings.tsx
180
+ // src/components/StackSettings/StackSettings.tsx
175
181
  import React3 from "react";
176
182
  import { Input, useTranslation as useTranslation2 } from "@dxos/react-ui";
177
183
  import { Settings } from "@dxos/react-ui-form";
@@ -181,7 +187,7 @@ var collectionObjectsFamily = Atom.family((collection) => Atom.make((get) => {
181
187
  const snapshot = get(AtomObj.make(collection));
182
188
  return snapshot.objects.map((ref) => get(AtomObj.makeWithReactive(ref))).filter(isNonNullable);
183
189
  }));
184
- var StackContainer = ({ id, subject: collection }) => {
190
+ var StackContainer = ({ attendableId, subject: collection }) => {
185
191
  const { invokePromise } = useOperationInvoker();
186
192
  const { graph } = useAppGraph();
187
193
  const { t } = useTranslation3(meta.id);
@@ -203,8 +209,8 @@ var StackContainer = ({ id, subject: collection }) => {
203
209
  view
204
210
  };
205
211
  });
206
- const handleDelete = useCallback(async (id2) => {
207
- const index = collection.objects.map((object2) => object2.target).filter(isNonNullable).findIndex((section) => Obj.getDXN(section).toString() === id2);
212
+ const handleDelete = useCallback(async (id) => {
213
+ const index = collection.objects.map((object2) => object2.target).filter(isNonNullable).findIndex((section) => Obj.getDXN(section).toString() === id);
208
214
  const object = collection.objects[index].target;
209
215
  if (Obj.isObject(object)) {
210
216
  await invokePromise(SpaceOperation.RemoveObjects, {
@@ -218,12 +224,12 @@ var StackContainer = ({ id, subject: collection }) => {
218
224
  collection,
219
225
  invokePromise
220
226
  ]);
221
- const handleAdd = useCallback(async (id2, position) => {
227
+ const handleAdd = useCallback(async (id, position) => {
222
228
  await invokePromise(LayoutOperation.UpdateDialog, {
223
- subject: `${meta.id}/AddSectionDialog`,
229
+ subject: `${meta.id}.AddSectionDialog`,
224
230
  blockAlign: "start",
225
231
  props: {
226
- path: id2,
232
+ path: id,
227
233
  position,
228
234
  collection
229
235
  }
@@ -232,18 +238,18 @@ var StackContainer = ({ id, subject: collection }) => {
232
238
  collection,
233
239
  invokePromise
234
240
  ]);
235
- const handleNavigate = useCallback(async (id2) => {
241
+ const handleNavigate = useCallback(async (id) => {
236
242
  await invokePromise(LayoutOperation.Open, {
237
243
  subject: [
238
- id2
244
+ id
239
245
  ]
240
246
  });
241
247
  }, [
242
248
  invokePromise
243
249
  ]);
244
- const handleCollapse = useCallback((id2, collapsed) => setCollapsedSections((prev) => ({
250
+ const handleCollapse = useCallback((id, collapsed) => setCollapsedSections((prev) => ({
245
251
  ...prev,
246
- [id2]: collapsed
252
+ [id]: collapsed
247
253
  })), []);
248
254
  const handleAddSection = useCallback(() => invokePromise(SpaceOperation.OpenCreateObject, {
249
255
  target: collection,
@@ -261,10 +267,9 @@ var StackContainer = ({ id, subject: collection }) => {
261
267
  label: "Add section",
262
268
  "data-testid": "stack.addSection",
263
269
  onClick: handleAddSection
264
- })), /* @__PURE__ */ React4.createElement(AttentionProvider, {
265
- id
266
- }, /* @__PURE__ */ React4.createElement(StackContext.Provider, {
270
+ })), /* @__PURE__ */ React4.createElement(StackContext.Provider, {
267
271
  value: {
272
+ attendableId,
268
273
  onCollapse: handleCollapse,
269
274
  onNavigate: handleNavigate,
270
275
  onDelete: handleDelete,
@@ -273,13 +278,13 @@ var StackContainer = ({ id, subject: collection }) => {
273
278
  }, /* @__PURE__ */ React4.createElement(Stack, {
274
279
  orientation: "vertical",
275
280
  size: "intrinsic",
276
- id,
281
+ id: Obj.getDXN(collection).toString(),
277
282
  "data-testid": "main.stack",
278
283
  classNames: "overflow-y-auto"
279
284
  }, items.map((item) => /* @__PURE__ */ React4.createElement(StackSection, {
280
285
  key: item.id,
281
286
  ...item
282
- }))))));
287
+ })))));
283
288
  };
284
289
 
285
290
  // src/containers/StackContainer/index.ts
@@ -287,4 +292,4 @@ var StackContainer_default = StackContainer;
287
292
  export {
288
293
  StackContainer_default as default
289
294
  };
290
- //# sourceMappingURL=StackContainer-7XVJHW4D.mjs.map
295
+ //# sourceMappingURL=StackContainer-W3M7BKLT.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
+ }
@@ -18,7 +18,7 @@ var StackViewType = Schema.Struct({
18
18
  value: SectionSchema
19
19
  })
20
20
  }).pipe(Type.object({
21
- typename: "dxos.org/type/StackView",
21
+ typename: "org.dxos.type.stack-view",
22
22
  version: "0.1.0"
23
23
  }));
24
24
 
@@ -26,4 +26,4 @@ export {
26
26
  SectionSchema,
27
27
  StackViewType
28
28
  };
29
- //# sourceMappingURL=chunk-26XWE7UY.mjs.map
29
+ //# sourceMappingURL=chunk-LELGTQAL.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
  }
@@ -2,9 +2,9 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
 
3
3
  // src/meta.ts
4
4
  import { trim } from "@dxos/util";
5
- var SECTION_IDENTIFIER = "dxos.org/type/StackSection";
5
+ var SECTION_IDENTIFIER = "org.dxos.type.stack-section";
6
6
  var meta = {
7
- id: "dxos.org/plugin/stack",
7
+ id: "org.dxos.plugin.stack",
8
8
  // TODO(wittjosiah): Prevents "stacks" language from being exposed to users in settings panel.
9
9
  // Conside renaming this to the collection plugin and trying to factor more collections logic from the space plugin.
10
10
  name: "Collections",
@@ -20,4 +20,4 @@ export {
20
20
  SECTION_IDENTIFIER,
21
21
  meta
22
22
  };
23
- //# sourceMappingURL=chunk-HEEGXPSW.mjs.map
23
+ //# sourceMappingURL=chunk-LOZ6GH5A.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
+ }
@@ -1,11 +1,11 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  StackViewType
4
- } from "./chunk-26XWE7UY.mjs";
4
+ } from "./chunk-LELGTQAL.mjs";
5
5
  import {
6
6
  SECTION_IDENTIFIER,
7
7
  meta
8
- } from "./chunk-HEEGXPSW.mjs";
8
+ } from "./chunk-LOZ6GH5A.mjs";
9
9
 
10
10
  // src/StackPlugin.ts
11
11
  import { Plugin } from "@dxos/app-framework";
@@ -13,7 +13,7 @@ import { AppPlugin } from "@dxos/app-toolkit";
13
13
 
14
14
  // src/capabilities/react-surface/index.ts
15
15
  import { Capability } from "@dxos/app-framework";
16
- var ReactSurface = Capability.lazy("ReactSurface", () => import("./react-surface-SZETVRAZ.mjs"));
16
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("./react-surface-YKS4OHR3.mjs"));
17
17
 
18
18
  // src/translations.ts
19
19
  import { translations as stackTranslations } from "@dxos/react-ui-stack";
@@ -1 +1 @@
1
- {"inputs":{"src/meta.ts":{"bytes":2522,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"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":17327,"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/CaretDownUp.tsx","kind":"import-statement","original":"./CaretDownUp"},{"path":"src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"src/components/StackSettings.tsx":{"bytes":3224,"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/index.ts":{"bytes":684,"imports":[{"path":"src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"},{"path":"src/components/StackSection.tsx","kind":"import-statement","original":"./StackSection"},{"path":"src/components/StackSettings.tsx","kind":"import-statement","original":"./StackSettings"}],"format":"esm"},"src/containers/StackContainer/StackContainer.tsx":{"bytes":19926,"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-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/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":4498,"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":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":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/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4450},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-26XWE7UY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HEEGXPSW.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/node-esm/react-surface-SZETVRAZ.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":2641},"dist/lib/node-esm/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/types/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-26XWE7UY.mjs","kind":"import-statement"}],"exports":["SectionSchema","StackViewType"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":246},"dist/lib/node-esm/chunk-26XWE7UY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1763},"dist/lib/node-esm/chunk-26XWE7UY.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":780},"dist/lib/node-esm/StackContainer-7XVJHW4D.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23641},"dist/lib/node-esm/StackContainer-7XVJHW4D.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-HEEGXPSW.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-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/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":4379},"src/components/StackContext.tsx":{"bytesInOutput":265},"src/components/index.ts":{"bytesInOutput":0},"src/components/StackSection.tsx":{"bytesInOutput":5062},"src/components/CaretDownUp.tsx":{"bytesInOutput":771},"src/components/StackSettings.tsx":{"bytesInOutput":151},"src/containers/StackContainer/index.ts":{"bytesInOutput":45}},"bytes":11242},"dist/lib/node-esm/react-surface-SZETVRAZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2586},"dist/lib/node-esm/react-surface-SZETVRAZ.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-HEEGXPSW.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/node-esm/StackContainer-7XVJHW4D.mjs","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":790},"src/containers/index.ts":{"bytesInOutput":104}},"bytes":1266},"dist/lib/node-esm/chunk-HEEGXPSW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1167},"dist/lib/node-esm/chunk-HEEGXPSW.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SECTION_IDENTIFIER","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":695}},"bytes":889}}}
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/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4450},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-LELGTQAL.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-LOZ6GH5A.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/node-esm/react-surface-YKS4OHR3.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":2641},"dist/lib/node-esm/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/types/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-LELGTQAL.mjs","kind":"import-statement"}],"exports":["SectionSchema","StackViewType"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":246},"dist/lib/node-esm/chunk-LELGTQAL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1764},"dist/lib/node-esm/chunk-LELGTQAL.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":781},"dist/lib/node-esm/StackContainer-W3M7BKLT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24046},"dist/lib/node-esm/StackContainer-W3M7BKLT.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-LOZ6GH5A.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":11439},"dist/lib/node-esm/react-surface-YKS4OHR3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2248},"dist/lib/node-esm/react-surface-YKS4OHR3.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-LOZ6GH5A.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/node-esm/StackContainer-W3M7BKLT.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":1230},"dist/lib/node-esm/chunk-LOZ6GH5A.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1168},"dist/lib/node-esm/chunk-LOZ6GH5A.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SECTION_IDENTIFIER","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":696}},"bytes":890}}}
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  meta
4
- } from "./chunk-HEEGXPSW.mjs";
4
+ } from "./chunk-LOZ6GH5A.mjs";
5
5
 
6
6
  // src/capabilities/react-surface/react-surface.tsx
7
7
  import * as Effect from "effect/Effect";
@@ -13,17 +13,16 @@ import { Collection } from "@dxos/echo";
13
13
 
14
14
  // src/containers/index.ts
15
15
  import { lazy } from "react";
16
- var StackContainer = lazy(() => import("./StackContainer-7XVJHW4D.mjs"));
16
+ var StackContainer = lazy(() => import("./StackContainer-W3M7BKLT.mjs"));
17
17
 
18
18
  // src/capabilities/react-surface/react-surface.tsx
19
19
  var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, Surface.create({
20
- id: `${meta.id}/article`,
20
+ id: `${meta.id}.article`,
21
21
  role: "article",
22
- filter: (data) => Obj.instanceOf(Collection.Collection, data.subject),
22
+ filter: (data) => typeof data.attendableId === "string" && Obj.instanceOf(Collection.Collection, data.subject),
23
23
  component: ({ role, data }) => {
24
- const id = typeof data.id === "string" ? data.id : void 0;
25
24
  return /* @__PURE__ */ React.createElement(StackContainer, {
26
- id: id ?? Obj.getDXN(data.subject).toString(),
25
+ attendableId: data.attendableId,
27
26
  role,
28
27
  subject: data.subject
29
28
  });
@@ -32,4 +31,4 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
32
31
  export {
33
32
  react_surface_default as default
34
33
  };
35
- //# sourceMappingURL=react-surface-SZETVRAZ.mjs.map
34
+ //# sourceMappingURL=react-surface-YKS4OHR3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { Collection } from '@dxos/echo';\n\nimport { StackContainer } from '../../containers';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(\n Capabilities.ReactSurface,\n Surface.create({\n id: `${meta.id}.article`,\n role: 'article',\n filter: (data): data is { attendableId: string; subject: Collection.Collection } =>\n typeof data.attendableId === 'string' && Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ role, data }) => {\n return <StackContainer attendableId={data.attendableId} role={role} subject={data.subject} />;\n },\n }),\n ),\n ),\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const StackContainer: ComponentType<any> = lazy(() => import('./StackContainer'));\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,WAAW;AACpB,SAASC,kBAAkB;;;ACN3B,SAA6BC,YAAY;AAElC,IAAMC,iBAAqCC,KAAK,MAAM,OAAO,+BAAA,CAAA;;;ADSpE,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YACTC,aAAaC,cACbC,QAAQC,OAAO;EACbC,IAAI,GAAGC,KAAKD,EAAE;EACdE,MAAM;EACNC,QAAQ,CAACC,SACP,OAAOA,KAAKC,iBAAiB,YAAYC,IAAIC,WAAWC,WAAWA,YAAYJ,KAAKK,OAAO;EAC7FC,WAAW,CAAC,EAAER,MAAME,KAAI,MAAE;AACxB,WAAO,sBAAA,cAACO,gBAAAA;MAAeN,cAAcD,KAAKC;MAAcH;MAAYO,SAASL,KAAKK;;EACpF;AACF,CAAA,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "React", "Capabilities", "Capability", "Surface", "Obj", "Collection", "lazy", "StackContainer", "lazy", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "attendableId", "Obj", "instanceOf", "Collection", "subject", "component", "StackContainer"]
7
+ }
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  SectionSchema,
4
4
  StackViewType
5
- } from "../chunk-26XWE7UY.mjs";
5
+ } from "../chunk-LELGTQAL.mjs";
6
6
  export {
7
7
  SectionSchema,
8
8
  StackViewType
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;AAQ/D,wBAkBE"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;AAQ/D,wBAeE"}
@@ -1,5 +1,6 @@
1
- import { type AddSectionPosition } from '../types';
1
+ import { type AddSectionPosition } from '../../types';
2
2
  export type StackContextValue = {
3
+ attendableId: string;
3
4
  onCollapse: (id: string, collapsed: boolean) => void;
4
5
  onNavigate: (id: string) => Promise<void>;
5
6
  onDelete: (id: string) => Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackContext/StackContext.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC3D,CAAC;AAEF,eAAO,MAAM,YAAY,4CAMvB,CAAC;AAEH,eAAO,MAAM,QAAQ,yBAAiC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './StackContext';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackContext/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaretDownUp.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackSection/CaretDownUp.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAE7D,eAAO,MAAM,WAAW,GAAI,wBAAwB,wBAAwB,CAAC,KAAK,CAAC,sBAuBlF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { type StackSectionItem } from '../types';
2
+ import { type StackSectionItem } from '../../types';
3
3
  export type StackSectionProps = StackSectionItem;
4
4
  export declare const StackSection: ({ id, view, object, metadata: { icon }, }: StackSectionProps) => React.JSX.Element;
5
5
  //# sourceMappingURL=StackSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackSection/StackSection.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4B,MAAM,OAAO,CAAC;AASjD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpD,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAEjD,eAAO,MAAM,YAAY,GAAI,2CAK1B,iBAAiB,sBA6FnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './StackSection';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackSection/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { type StackSettingsProps } from '../types';
2
+ import { type StackSettingsProps } from '../../types';
3
3
  export declare const StackSettings: ({ settings }: {
4
4
  settings: StackSettingsProps;
5
5
  }) => React.JSX.Element;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackSettings/StackSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,aAAa,GAAI,cAAc;IAAE,QAAQ,EAAE,kBAAkB,CAAA;CAAE,sBAiB3E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './StackSettings';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/StackSettings/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC"}
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
3
3
  import { type Collection } from '@dxos/echo';
4
- type StackContainerProps = SurfaceComponentProps<Collection.Collection> & {
5
- id: string;
6
- };
7
- export declare const StackContainer: ({ id, subject: collection }: StackContainerProps) => React.JSX.Element;
4
+ type StackContainerProps = SurfaceComponentProps<Collection.Collection>;
5
+ export declare const StackContainer: ({ attendableId, subject: collection }: StackContainerProps) => React.JSX.Element;
8
6
  export {};
9
7
  //# sourceMappingURL=StackContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StackContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/StackContainer/StackContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AA+B7C,KAAK,mBAAmB,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG;IACxE,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,6BAA6B,mBAAmB,sBAwH9E,CAAC"}
1
+ {"version":3,"file":"StackContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/StackContainer/StackContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AA8B7C,KAAK,mBAAmB,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAExE,eAAO,MAAM,cAAc,GAAI,uCAAuC,mBAAmB,sBA6HxF,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { type Plugin } from '@dxos/app-framework';
2
- export declare const SECTION_IDENTIFIER = "dxos.org/type/StackSection";
2
+ export declare const SECTION_IDENTIFIER = "org.dxos.type.stack-section";
3
3
  export declare const meta: Plugin.Meta;
4
4
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAE/D,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAWzB,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAWzB,CAAC"}