@dxos/plugin-kanban 0.8.4-main.ae835ea → 0.8.4-main.bc2380dfbc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs +132 -0
- package/dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs.map +7 -0
- package/dist/lib/neutral/KanbanPlugin.mjs +36 -0
- package/dist/lib/neutral/KanbanPlugin.mjs.map +7 -0
- package/dist/lib/neutral/KanbanPlugin.node.mjs +27 -0
- package/dist/lib/neutral/KanbanPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/KanbanPlugin.workerd.mjs +21 -0
- package/dist/lib/neutral/KanbanPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/KanbanSettings-G6M47NSK.mjs +83 -0
- package/dist/lib/neutral/KanbanSettings-G6M47NSK.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/capabilities/index.mjs +19 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6FPBLOS3.mjs +8 -0
- package/dist/lib/neutral/chunk-6FPBLOS3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-KDPM77BD.mjs +21 -0
- package/dist/lib/neutral/chunk-KDPM77BD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-OQ72EEGU.mjs +254 -0
- package/dist/lib/neutral/chunk-OQ72EEGU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZTQW5KQS.mjs +26 -0
- package/dist/lib/neutral/chunk-ZTQW5KQS.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +243 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +11 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-object-DKBSI46K.mjs +40 -0
- package/dist/lib/neutral/create-object-DKBSI46K.mjs.map +7 -0
- package/dist/lib/neutral/delete-card-356CBACE.mjs +24 -0
- package/dist/lib/neutral/delete-card-356CBACE.mjs.map +7 -0
- package/dist/lib/neutral/delete-card-field-IRCZL2BR.mjs +42 -0
- package/dist/lib/neutral/delete-card-field-IRCZL2BR.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +432 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +34 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/migrations-IWBT35UT.mjs +31 -0
- package/dist/lib/neutral/migrations-IWBT35UT.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs +13 -0
- package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-QROEHBRW.mjs +93 -0
- package/dist/lib/neutral/react-surface-QROEHBRW.mjs.map +7 -0
- package/dist/lib/neutral/restore-card-P25Y4YSE.mjs +21 -0
- package/dist/lib/neutral/restore-card-P25Y4YSE.mjs.map +7 -0
- package/dist/lib/neutral/restore-card-field-NHR3R4XI.mjs +40 -0
- package/dist/lib/neutral/restore-card-field-NHR3R4XI.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +60 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +44 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +22 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/undo-mappings-6CHW6BOF.mjs +42 -0
- package/dist/lib/neutral/undo-mappings-6CHW6BOF.mjs.map +7 -0
- package/dist/types/src/KanbanPlugin.d.ts +3 -1
- package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
- package/dist/types/src/KanbanPlugin.node.d.ts +4 -0
- package/dist/types/src/KanbanPlugin.node.d.ts.map +1 -0
- package/dist/types/src/KanbanPlugin.test.d.ts +2 -0
- package/dist/types/src/KanbanPlugin.test.d.ts.map +1 -0
- package/dist/types/src/KanbanPlugin.workerd.d.ts +4 -0
- package/dist/types/src/KanbanPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/kanban-blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +13 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +6 -0
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
- package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +37 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +72 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +9 -0
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +8 -0
- package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/context.d.ts +38 -0
- package/dist/types/src/components/KanbanBoard/context.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/index.d.ts +2 -0
- package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts +6 -0
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.stories.d.ts +79 -0
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanArticle/index.d.ts +2 -0
- package/dist/types/src/containers/KanbanArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanSettings/KanbanSettings.d.ts +13 -0
- package/dist/types/src/containers/KanbanSettings/KanbanSettings.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanSettings/index.d.ts +2 -0
- package/dist/types/src/containers/KanbanSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +4 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +7 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useEchoChangeCallback.d.ts +13 -0
- package/dist/types/src/hooks/useEchoChangeCallback.d.ts.map +1 -0
- package/dist/types/src/hooks/useItemsProjection.d.ts +10 -0
- package/dist/types/src/hooks/useItemsProjection.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanBoardModel.browser.test.d.ts +2 -0
- package/dist/types/src/hooks/useKanbanBoardModel.browser.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts +16 -0
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +22 -0
- package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +19 -0
- package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -0
- package/dist/types/src/hooks/useProjectionModel.d.ts +15 -0
- package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/delete-card-field.d.ts +5 -0
- package/dist/types/src/operations/delete-card-field.d.ts.map +1 -0
- package/dist/types/src/operations/delete-card.d.ts +5 -0
- package/dist/types/src/operations/delete-card.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/restore-card-field.d.ts +5 -0
- package/dist/types/src/operations/restore-card-field.d.ts.map +1 -0
- package/dist/types/src/operations/restore-card.d.ts +5 -0
- package/dist/types/src/operations/restore-card.d.ts.map +1 -0
- package/dist/types/src/playwright/board-manager.d.ts +5 -0
- package/dist/types/src/playwright/board-manager.d.ts.map +1 -0
- package/dist/types/src/playwright/playwright.config.d.ts +3 -0
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
- package/dist/types/src/playwright/smoke.spec.d.ts +2 -0
- package/dist/types/src/playwright/smoke.spec.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing/KanbanCardTileSimple.d.ts +7 -0
- package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +50 -22
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Kanban.d.ts +108 -0
- package/dist/types/src/types/Kanban.d.ts.map +1 -0
- package/dist/types/src/types/KanbanOperation.d.ts +52 -0
- package/dist/types/src/types/KanbanOperation.d.ts.map +1 -0
- package/dist/types/src/types/constants.d.ts +6 -0
- package/dist/types/src/types/constants.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/migrations.test.d.ts +2 -0
- package/dist/types/src/types/migrations.test.d.ts.map +1 -0
- package/dist/types/src/types/schema.d.ts +17 -51
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +28 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util/arrangement.d.ts +72 -0
- package/dist/types/src/util/arrangement.d.ts.map +1 -0
- package/dist/types/src/util/arrangement.test.d.ts +2 -0
- package/dist/types/src/util/arrangement.test.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +2 -0
- package/dist/types/src/util/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +123 -57
- package/src/KanbanPlugin.node.ts +21 -0
- package/src/KanbanPlugin.test.ts +31 -0
- package/src/KanbanPlugin.tsx +28 -56
- package/src/KanbanPlugin.workerd.ts +18 -0
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/kanban-blueprint.ts +27 -0
- package/src/capabilities/artifact-definition.ts +116 -114
- package/src/capabilities/blueprint-definition.ts +13 -24
- package/src/capabilities/create-object.ts +40 -0
- package/src/capabilities/index.ts +12 -4
- package/src/capabilities/migrations.ts +35 -0
- package/src/capabilities/operation-handler.ts +14 -0
- package/src/capabilities/react-surface.tsx +77 -67
- package/src/capabilities/undo-mappings.ts +34 -0
- package/src/components/KanbanBoard/KanbanBoard.stories.tsx +145 -0
- package/src/components/KanbanBoard/KanbanBoard.tsx +164 -0
- package/src/components/KanbanBoard/KanbanCard.tsx +101 -0
- package/src/components/KanbanBoard/KanbanColumn.tsx +72 -0
- package/src/components/KanbanBoard/context.ts +54 -0
- package/src/components/KanbanBoard/index.ts +5 -0
- package/src/components/index.ts +1 -2
- package/src/containers/KanbanArticle/KanbanArticle.stories.tsx +276 -0
- package/src/containers/KanbanArticle/KanbanArticle.tsx +178 -0
- package/src/containers/KanbanArticle/index.ts +5 -0
- package/src/containers/KanbanSettings/KanbanSettings.tsx +94 -0
- package/src/containers/KanbanSettings/index.ts +5 -0
- package/src/containers/index.ts +8 -0
- package/src/hooks/index.ts +10 -0
- package/src/hooks/useEchoChangeCallback.ts +30 -0
- package/src/hooks/useItemsProjection.ts +44 -0
- package/src/hooks/useKanbanBoardModel.browser.test.ts +234 -0
- package/src/hooks/useKanbanBoardModel.ts +157 -0
- package/src/hooks/useKanbanColumnEventHandler.ts +106 -0
- package/src/hooks/useKanbanItemEventHandler.ts +133 -0
- package/src/hooks/useProjectionModel.ts +58 -0
- package/src/index.ts +3 -2
- package/src/meta.ts +3 -3
- package/src/operations/delete-card-field.ts +47 -0
- package/src/operations/delete-card.ts +23 -0
- package/src/operations/index.ts +10 -0
- package/src/operations/restore-card-field.ts +41 -0
- package/src/operations/restore-card.ts +21 -0
- package/src/playwright/board-manager.ts +13 -0
- package/src/playwright/playwright.config.ts +19 -0
- package/src/playwright/smoke.spec.ts +107 -0
- package/src/plugin.ts +11 -0
- package/src/testing/KanbanCardTileSimple.tsx +82 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +28 -20
- package/src/types/Kanban.ts +150 -0
- package/src/types/KanbanOperation.ts +67 -0
- package/src/types/constants.ts +9 -0
- package/src/types/index.ts +4 -0
- package/src/types/migrations.test.ts +82 -0
- package/src/types/schema.ts +32 -44
- package/src/types/types.ts +35 -0
- package/src/util/arrangement.test.ts +217 -0
- package/src/util/arrangement.ts +177 -0
- package/src/util/index.ts +5 -0
- package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs +0 -28
- package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs.map +0 -7
- package/dist/lib/browser/chunk-3UDST345.mjs +0 -85
- package/dist/lib/browser/chunk-3UDST345.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -105
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-VVBNS2TO.mjs +0 -111
- package/dist/lib/browser/intent-resolver-VVBNS2TO.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-FNXJ6VJX.mjs +0 -255
- package/dist/lib/browser/react-surface-FNXJ6VJX.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -11
- package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs +0 -30
- package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JBOARUAT.mjs +0 -87
- package/dist/lib/node-esm/chunk-JBOARUAT.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -106
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-ACN7UALP.mjs +0 -112
- package/dist/lib/node-esm/intent-resolver-ACN7UALP.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-ZHYHCV5N.mjs +0 -256
- package/dist/lib/node-esm/react-surface-ZHYHCV5N.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -12
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/KanbanContainer.d.ts +0 -7
- package/dist/types/src/components/KanbanContainer.d.ts.map +0 -1
- package/dist/types/src/components/KanbanContainer.stories.d.ts +0 -41
- package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/KanbanViewEditor.d.ts +0 -8
- package/dist/types/src/components/KanbanViewEditor.d.ts.map +0 -1
- package/src/capabilities/intent-resolver.ts +0 -71
- package/src/components/KanbanContainer.stories.tsx +0 -193
- package/src/components/KanbanContainer.tsx +0 -95
- package/src/components/KanbanViewEditor.tsx +0 -64
- /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/hooks/useEchoChangeCallback.ts", "../../../../src/hooks/useItemsProjection.ts", "../../../../src/hooks/useKanbanBoardModel.ts", "../../../../src/util/arrangement.ts", "../../../../src/hooks/useKanbanColumnEventHandler.ts", "../../../../src/hooks/useKanbanItemEventHandler.ts", "../../../../src/hooks/useProjectionModel.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { Obj } from '@dxos/echo';\n\nimport { type Kanban, type KanbanChangeCallback } from '#types';\n\n/**\n * Creates a change callback for ECHO-backed kanban and items (plain function, no hooks).\n * Use this when the kanban and items are stored in the ECHO database.\n */\nexport const createEchoChangeCallback = <T extends Obj.Unknown>(kanban: Kanban.Kanban): KanbanChangeCallback<T> => ({\n kanban: (mutate) => Obj.update(kanban, (kanban) => mutate(kanban)),\n setItemField: (item, field, value) => {\n Obj.update(item, (item: any) => {\n item[field] = value;\n });\n },\n});\n\n/**\n * Returns a memoized ECHO change callback for the given kanban.\n * Returns null when kanban is undefined.\n */\nexport const useEchoChangeCallback = <T extends Obj.Unknown = Obj.Unknown>(\n kanban: Kanban.Kanban | undefined,\n): KanbanChangeCallback<T> | null => useMemo(() => (kanban ? createEchoChangeCallback<T>(kanban) : null), [kanban]);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport { useMemo } from 'react';\n\nimport type { ProjectionModel } from '@dxos/schema';\n\nimport { type Kanban } from '#types';\n\n/**\n * Minimal `ProjectionModel` for `spec.kind === 'items'` (no View). Supplies `pivotField`\n * and column options from `arrangement.columns` keys—written by sync so columns exist\n * before refs hydrate. Stubs `getFieldProjections` / `getHiddenProperties` for shared\n * board/card UI; hides the pivot on the card body (column shows it); Expando cards render title only.\n */\nexport const useItemsProjection = (kanban: Kanban.KanbanItems): ProjectionModel => {\n return useMemo(() => {\n const pivotField = kanban.spec.pivotField;\n\n const optionIds = Object.keys(kanban.arrangement?.columns ?? {});\n const options = optionIds.map((id) => ({ id, title: id, color: 'neutral' as const }));\n\n const fieldProjection: any = {\n field: { id: pivotField, path: pivotField },\n props: { property: pivotField, options },\n };\n\n const fields = Atom.make(() => [fieldProjection.field]);\n\n const stub: Pick<ProjectionModel, 'tryGetFieldProjection' | 'getFieldProjections' | 'getHiddenProperties'> & {\n fields: typeof fields;\n } = {\n fields,\n tryGetFieldProjection: (id: string) => (id === pivotField ? fieldProjection : undefined),\n getFieldProjections: () => [],\n getHiddenProperties: () => [pivotField],\n };\n\n // TODO(wittjosiah): Refactor ProjectionModel to be an interface that we can fulfill.\n return stub as unknown as ProjectionModel;\n }, [kanban.arrangement?.columns, kanban.spec.pivotField]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, type Registry } from '@effect-atom/atom-react';\nimport { useMemo } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { AtomObj } from '@dxos/echo-atom';\nimport type { BoardModel } from '@dxos/react-ui-mosaic';\nimport type { ProjectionModel } from '@dxos/schema';\n\nimport { type BaseKanbanItem, type ColumnStructure, type Kanban } from '#types';\n\nimport {\n computeColumnStructure,\n getOrderByColumnFromArrangement,\n getOrderFromArrangement,\n orderItemsInColumn,\n} from '../util';\n\n/**\n * Builds a board model that maps kanban arrangement and projection onto columns and per-column items.\n *\n * @template T - Item type (must have id; defaults to BaseKanbanItem).\n * @param kanban - Kanban object (arrangement, view).\n * @param projection - ProjectionModel for pivot field and options.\n * @param itemsAtom - Atom holding the full item list.\n * @param registry - Registry for reading atom values.\n * @returns BoardModel with columns atom, items family, and getColumns/getItems.\n */\nexport function useKanbanBoardModel<T extends BaseKanbanItem = BaseKanbanItem>(\n kanban: Kanban.Kanban,\n projection: ProjectionModel,\n itemsAtom: Atom.Atom<T[]>,\n registry: Registry.Registry,\n): BoardModel<ColumnStructure, T> {\n // Source atoms: reactive reads from the kanban object; items come from the passed-in atom (e.g. AtomQuery or in-memory).\n const arrangementAtom = useMemo(() => AtomObj.makeProperty(kanban, 'arrangement'), [kanban]);\n const viewSnapshotAtom = useMemo(\n () =>\n kanban?.spec?.kind === 'view' && kanban.spec.view\n ? AtomObj.make(kanban.spec.view)\n : Atom.make<undefined>(() => undefined),\n [kanban?.spec],\n );\n\n /**\n * Only changes when the discriminator-relevant pivot input changes.\n * View-variant: derived from `view.projection.pivotFieldId`.\n * Items-variant: the kanban's `spec.pivotField` (the property name itself acts as the field id).\n */\n const pivotFieldIdAtom = useMemo(\n () =>\n Atom.make((get) => {\n if (kanban?.spec.kind === 'items') {\n return kanban.spec.pivotField;\n }\n return get(viewSnapshotAtom)?.projection?.pivotFieldId as string | undefined;\n }),\n [kanban?.spec, viewSnapshotAtom],\n );\n\n // Effective per-column ids: from kanban.arrangement.columns; empty when arrangement has no columns.\n const effectiveByColumnAtom = useMemo(\n () => Atom.make((get) => getOrderByColumnFromArrangement(get(arrangementAtom))),\n [arrangementAtom],\n );\n\n // Column structure: depends on pivotFieldId (not full view), arrangement, and projection so columns only fire when pivot or arrangement changes.\n const columnsAtom = useMemo(\n () =>\n Atom.make((get) => {\n const pivotFieldId = get(pivotFieldIdAtom);\n if (pivotFieldId === undefined) {\n return [];\n }\n\n get(projection.fields);\n const fieldProj = projection.tryGetFieldProjection(pivotFieldId);\n if (!fieldProj) {\n return [];\n }\n\n const selectOptions = fieldProj.props.options ?? [];\n if (selectOptions.length === 0) {\n return [];\n }\n\n const arrangement = get(arrangementAtom);\n const order = getOrderFromArrangement(arrangement);\n const byColumn = getOrderByColumnFromArrangement(arrangement);\n return computeColumnStructure(order, byColumn, selectOptions);\n }),\n [pivotFieldIdAtom, arrangementAtom, projection],\n );\n\n // Per-column slice of arrangement so each column’s items atom only depends on that column’s ids.\n const columnArrangementAtomFamily = useMemo(\n () =>\n Atom.family<string, Atom.Atom<ColumnStructure>>((columnValue: string) =>\n Atom.make((get) => {\n const byColumn = get(effectiveByColumnAtom);\n return {\n columnValue,\n ids: [...(byColumn[columnValue]?.ids ?? [])],\n };\n }),\n ),\n [effectiveByColumnAtom],\n );\n\n // Items for a single column: filter all items by pivot field, sort by this column’s ids, then append new items.\n const itemsAtomFamily = useMemo(\n () =>\n Atom.family<string, Atom.Atom<T[]>>((columnValue: string) =>\n Atom.make((get) => {\n const columnArr = get(columnArrangementAtomFamily(columnValue));\n const allItems = get(itemsAtom);\n const pivotFieldId = get(pivotFieldIdAtom);\n\n if (pivotFieldId === undefined) {\n return [];\n }\n\n // TODO(wittjosiah): Try to narrow this down further.\n get(projection.fields);\n const fieldProj = projection.tryGetFieldProjection(pivotFieldId);\n if (!fieldProj) {\n return [];\n }\n\n const selectOptions = fieldProj.props.options ?? [];\n const pivotPath = fieldProj.props.property;\n const validColumnValues = new Set(selectOptions.map((opt) => opt.id));\n return orderItemsInColumn(allItems, columnArr.ids, columnValue, pivotPath, validColumnValues);\n }),\n ),\n [columnArrangementAtomFamily, itemsAtom, pivotFieldIdAtom, projection],\n );\n\n return useMemo(\n () => ({\n getColumnId: (data) => data.columnValue,\n getItemId: (data) => (data as T).id,\n isColumn: (obj): obj is ColumnStructure =>\n typeof obj === 'object' && obj !== null && 'columnValue' in obj && 'ids' in obj,\n // TODO(wittjosiah): This should be restricted to objects of the type of the kanban view.\n isItem: (obj): obj is T => Obj.isObject(obj),\n columns: columnsAtom,\n items: (column) => itemsAtomFamily(column.columnValue),\n getColumns: () => registry.get(columnsAtom) ?? [],\n getItems: (column) => registry.get(itemsAtomFamily(column.columnValue)) ?? [],\n }),\n [columnsAtom, itemsAtomFamily, registry],\n );\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type SelectOption } from '@dxos/echo/internal';\n\nimport {\n type ArrangedCards,\n type BaseKanbanItem,\n type ColumnStructure,\n type Kanban,\n UNCATEGORIZED_VALUE,\n} from '#types';\n\n/**\n * Column order from a raw arrangement object (e.g. when working with arrangement only).\n *\n * @param arrangement - Optional arrangement; reads order.\n * @returns Mutable copy of order array, or empty if arrangement/order missing or empty.\n */\nexport const getOrderFromArrangement = (arrangement?: Kanban.Arrangement): string[] => {\n const order = arrangement?.order;\n if (order != null && Array.isArray(order) && order.length > 0) {\n return [...order];\n }\n\n return [];\n};\n\n/**\n * Per-column card id order and optional hidden flag from a raw arrangement object.\n *\n * Returns mutable copies so schema readonly does not leak to callers.\n *\n * @param arrangement - Optional arrangement; reads columns.\n * @returns Map of column value → { ids, hidden? }; empty object if not set.\n */\nexport const getOrderByColumnFromArrangement = (\n arrangement?: Kanban.Arrangement,\n): Record<string, { ids: string[]; hidden?: boolean }> => {\n const columns = arrangement?.columns;\n if (columns != null && Object.keys(columns).length > 0) {\n return Object.fromEntries(\n Object.entries(columns).map(([key, entry]) => {\n const rawIds = entry.ids;\n const ids = Array.isArray(rawIds) ? [...rawIds] : [];\n return [key, { ids, ...(entry.hidden !== undefined && { hidden: entry.hidden }) }];\n }),\n );\n }\n\n return {};\n};\n\n/**\n * Builds the ordered list of columns (value + ids) for the board model.\n *\n * Column order: uncategorized first, then effectiveOrder, then any\n * selectOption ids not yet in order. Each entry gets the ids from\n * effectiveByColumn for that column (or empty). Columns whose entry has\n * `hidden: true` are dropped from the result — currently only the\n * \"Uncategorized\" column is toggleable from settings, but the filter is\n * generic so any column can be hidden via the same flag.\n *\n * @param effectiveOrder - Column order from arrangement (or previous merge).\n * @param effectiveByColumn - Per-column card id order + hidden flag from arrangement.\n * @param selectOptions - Defines valid column ids; any missing from order are appended.\n * @returns ColumnStructure array in display order.\n */\nexport const computeColumnStructure = (\n effectiveOrder: string[],\n effectiveByColumn: Record<string, { ids: string[]; hidden?: boolean }>,\n selectOptions: SelectOption[],\n): ColumnStructure[] => {\n const order = [...effectiveOrder];\n if (!order.includes(UNCATEGORIZED_VALUE)) {\n order.unshift(UNCATEGORIZED_VALUE);\n }\n\n for (const opt of selectOptions) {\n if (opt.id !== UNCATEGORIZED_VALUE && !order.includes(opt.id)) {\n order.push(opt.id);\n }\n }\n\n return order\n .filter((columnValue) => effectiveByColumn[columnValue]?.hidden !== true)\n .map((columnValue) => ({\n columnValue,\n ids: effectiveByColumn[columnValue]?.ids ?? [],\n }));\n};\n\n/**\n * Orders items for a single column: partition by saved order vs new, sort by orderMap, concatenate.\n * Uses explicit null/undefined check for itemColumn so empty string is handled consistently.\n *\n * @param items - All items to filter.\n * @param ids - Saved id order for this column.\n * @param columnValue - Column id (e.g. UNCATEGORIZED_VALUE or option id).\n * @param pivotPath - Item property key for column value (undefined = no pivot).\n * @param validColumnValues - Set of valid option ids.\n * @returns Items belonging to this column in display order.\n */\nexport const orderItemsInColumn = <T extends BaseKanbanItem>(\n items: T[],\n ids: string[],\n columnValue: string,\n pivotPath: string | undefined,\n validColumnValues: Set<string>,\n): T[] => {\n const orderMap = new Map(ids.map((id, index) => [id, index]));\n const cardsWithExistingOrder: T[] = [];\n const newCards: T[] = [];\n\n for (const item of items) {\n const itemColumn = pivotPath !== undefined ? (item[pivotPath as keyof T] as string | undefined) : undefined;\n const isValidColumn = itemColumn != null && validColumnValues.has(itemColumn);\n const belongsInColumn = columnValue === UNCATEGORIZED_VALUE ? !isValidColumn : itemColumn === columnValue;\n\n if (belongsInColumn) {\n (orderMap.has(item.id) ? cardsWithExistingOrder : newCards).push(item);\n }\n }\n\n cardsWithExistingOrder.sort((a, b) => {\n const indexA = orderMap.get(a.id) ?? Infinity;\n const indexB = orderMap.get(b.id) ?? Infinity;\n return indexA - indexB;\n });\n\n return [...cardsWithExistingOrder, ...newCards];\n};\n\n/**\n * Computes the full item arrangement for the board: one entry per column with items in display order.\n *\n * Columns follow selectOptions order (uncategorized first, then each option). Within each column,\n * cards that appear in the kanban's saved arrangement keep that order; any other cards in that\n * column are appended after them.\n *\n * @param object - Kanban object whose arrangement holds per-column id order.\n * @param items - All items to distribute into columns.\n * @param pivotPath - Optional item property key whose value is the column id (e.g. status, priority).\n * @param selectOptions - Defines valid column ids and their display order.\n * @returns Array of { columnValue, cards } in column order, with cards ordered as above.\n */\nexport const computeItemArrangement = <T extends BaseKanbanItem = BaseKanbanItem>({\n object,\n items,\n pivotPath,\n selectOptions,\n}: {\n object: Kanban.Kanban;\n items: T[];\n pivotPath?: string;\n selectOptions: SelectOption[];\n}): ArrangedCards<T> => {\n const validColumnValues = new Set(selectOptions.map((opt) => opt.id));\n const byColumn = getOrderByColumnFromArrangement(object?.arrangement);\n\n // Column order: uncategorized first, then each select option (skip\n // uncategorized if duplicated). Columns whose arrangement entry has\n // `hidden: true` are dropped — same generic hide-by-column flag used\n // by `computeColumnStructure`.\n const columnEntries = [\n { columnValue: UNCATEGORIZED_VALUE, ids: byColumn[UNCATEGORIZED_VALUE]?.ids ?? [] },\n ...selectOptions\n .filter((opt) => opt.id !== UNCATEGORIZED_VALUE)\n .map((opt) => ({ columnValue: opt.id, ids: byColumn[opt.id]?.ids ?? [] })),\n ].filter((entry) => byColumn[entry.columnValue]?.hidden !== true);\n\n return columnEntries.map(({ columnValue, ids }) => ({\n columnValue,\n cards: orderItemsInColumn(items, ids, columnValue, pivotPath, validColumnValues),\n }));\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport type { BoardModel, MosaicEventHandler, MosaicTileData } from '@dxos/react-ui-mosaic';\nimport type { ProjectionModel } from '@dxos/schema';\nimport { arrayMove } from '@dxos/util';\n\nimport { type BaseKanbanItem, type ColumnStructure, type KanbanChangeCallback, UNCATEGORIZED_VALUE } from '#types';\n\n/**\n * Builds the column drag-and-drop handler for the kanban board (reorder columns).\n *\n * @template T - Item type (extends BaseKanbanItem).\n * @param id - Handler id.\n * @param model - Board model for getColumns / getColumnId.\n * @param projection - ProjectionModel for pivot field options (column order).\n * @param pivotFieldId - Pivot field id; undefined disables drop.\n * @param change - Callback to persist kanban.arrangement.order.\n * @returns MosaicEventHandler for column tiles.\n */\nexport function useKanbanColumnEventHandler<T extends BaseKanbanItem>({\n id,\n model,\n projection,\n pivotFieldId,\n change,\n}: {\n id: string;\n model: BoardModel<ColumnStructure, T>;\n projection: ProjectionModel | undefined;\n pivotFieldId: string | undefined;\n change: KanbanChangeCallback<T>;\n}): MosaicEventHandler<ColumnStructure> {\n return useMemo<MosaicEventHandler<ColumnStructure>>(\n () => ({\n id,\n canDrop: ({ source }) => {\n if (!projection) {\n return false;\n }\n const data = source.data as ColumnStructure;\n const columnValue = model.getColumnId(data);\n return (\n model.isColumn(source.data) &&\n columnValue !== UNCATEGORIZED_VALUE &&\n (source as MosaicTileData<ColumnStructure>).id !== UNCATEGORIZED_VALUE\n );\n },\n onDrop: ({ source, target }) => {\n if (!projection || pivotFieldId === undefined) {\n return;\n }\n const sourceColumnData = source.data as ColumnStructure;\n const sourceColumnId = model.getColumnId(sourceColumnData);\n if (sourceColumnId === UNCATEGORIZED_VALUE) {\n return;\n }\n\n // 1. Current column order from model; find source index.\n const currentColumns = model.getColumns();\n const sourceIndex = currentColumns.findIndex((c) => model.getColumnId(c) === sourceColumnId);\n if (sourceIndex === -1) {\n return;\n }\n\n // 2. Resolve drop target to an index in the column list.\n let targetIndex: number;\n if (target?.type === 'tile' || target?.type === 'placeholder') {\n targetIndex = typeof target.location === 'number' ? Math.floor(target.location) : -1;\n } else if (target?.type === 'container') {\n targetIndex = currentColumns.length;\n } else {\n return;\n }\n if (targetIndex < 0) {\n return;\n }\n\n // 3. New column order after move.\n const currentColumnIds = currentColumns.map((c) => model.getColumnId(c));\n const reorderedColumnIds = arrayMove([...currentColumnIds], sourceIndex, targetIndex);\n\n // 4. Persist reordered options to projection (pivot field options = column order).\n const fieldProjection = projection.getFieldProjection(pivotFieldId);\n const currentOptions = [...(fieldProjection.props.options ?? [])];\n const optionsInNewOrder = reorderedColumnIds\n .map((columnId) => currentOptions.find((o) => o.id === columnId))\n .filter((o): o is NonNullable<typeof o> => o != null);\n\n projection.setFieldProjection({\n ...fieldProjection,\n props: { ...fieldProjection.props, options: optionsInNewOrder },\n });\n\n // Persist column order to kanban.arrangement so the board UI reflects the new order.\n change.kanban((kanban) => {\n kanban.arrangement.order = reorderedColumnIds.filter((columnId) => columnId !== UNCATEGORIZED_VALUE);\n });\n },\n }),\n [id, model, projection, pivotFieldId, change],\n );\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport type { BoardModel, MosaicEventHandler, MosaicTileData } from '@dxos/react-ui-mosaic';\n\nimport {\n type ArrangedCards,\n type BaseKanbanItem,\n type ColumnStructure,\n type KanbanChangeCallback,\n UNCATEGORIZED_VALUE,\n} from '#types';\n\nfunction findColumn<T extends BaseKanbanItem>(\n id: string,\n arrangement: ArrangedCards<T>,\n): { columnValue: string; cards: T[] } | undefined {\n return arrangement.find(({ columnValue, cards }) => columnValue === id || cards.some((card) => card.id === id));\n}\n\n/**\n * Builds the item drag-and-drop handler for a single column (reorder and move between columns).\n *\n * @template T - Item type (extends BaseKanbanItem).\n * @param column - Column structure for this tile.\n * @param columnFieldPath - Item property path for the pivot field (used when moving to another column).\n * @param model - Board model for getColumns / getItems.\n * @param change - Callback to persist arrangement and item field updates.\n * @returns MosaicEventHandler for item tiles in this column.\n */\nexport function useKanbanItemEventHandler<T extends BaseKanbanItem>({\n column,\n columnFieldPath,\n model,\n change,\n}: {\n column: ColumnStructure;\n columnFieldPath: string | undefined;\n model: BoardModel<ColumnStructure, T>;\n change: KanbanChangeCallback<T>;\n}): MosaicEventHandler<T> {\n return useMemo<MosaicEventHandler<T>>(\n () => ({\n id: column.columnValue,\n canDrop: ({ source }) => model.isItem(source.data),\n onTake: ({ source }, cb) => {\n void cb(source.data as T);\n },\n onDrop: ({ source, target }) => {\n // 1. Snapshot current arrangement from model (read-only).\n const columns = model.getColumns();\n const currentArrangement: ArrangedCards<T> = columns.map((col) => ({\n columnValue: col.columnValue,\n cards: model.getItems(col) ?? [],\n }));\n const sourceColumnInSnapshot = findColumn(source.id, currentArrangement);\n if (!sourceColumnInSnapshot) {\n return;\n }\n\n // 2. Working copy to mutate, then persist.\n const workingArrangement = currentArrangement.map((col) => ({\n columnValue: col.columnValue,\n cards: [...col.cards],\n }));\n const sourceColumnInWorking = workingArrangement.find(\n (c) => c.columnValue === sourceColumnInSnapshot.columnValue || c.cards.some((card) => card.id === source.id),\n );\n const targetColumnInWorking = workingArrangement.find((c) => c.columnValue === column.columnValue);\n if (!sourceColumnInWorking || !targetColumnInWorking) {\n return;\n }\n\n // 3. Remove card from source column in working copy.\n const sourceIndex = sourceColumnInWorking.cards.findIndex((card) => card.id === source.id);\n if (sourceIndex === -1) {\n return;\n }\n const [movedCard] = sourceColumnInWorking.cards.splice(sourceIndex, 1);\n\n // 4. Update card's pivot field to target column value.\n if (columnFieldPath !== undefined) {\n const newValue =\n targetColumnInWorking.columnValue === UNCATEGORIZED_VALUE ? undefined : targetColumnInWorking.columnValue;\n change.setItemField(movedCard, columnFieldPath, newValue);\n }\n\n // 5. Compute insert index in target column, then insert.\n const existingTargetIndex =\n target?.type === 'tile'\n ? targetColumnInWorking.cards.findIndex(\n (card) => model.getItemId(card) === (target as MosaicTileData<T>).id,\n )\n : -1;\n const closestEdge: 'top' | 'bottom' =\n target?.type === 'placeholder' && typeof target.location === 'number'\n ? target.location <= targetColumnInWorking.cards.length / 2\n ? 'top'\n : 'bottom'\n : 'bottom';\n\n let insertIndex: number;\n if (target?.type === 'placeholder' && typeof target.location === 'number') {\n insertIndex = Math.max(0, Math.min(targetColumnInWorking.cards.length, Math.floor(target.location)));\n } else if (target?.type === 'container' || existingTargetIndex === -1) {\n insertIndex = targetColumnInWorking.cards.length;\n } else if (sourceColumnInWorking.columnValue === targetColumnInWorking.columnValue) {\n insertIndex = closestEdge === 'bottom' ? existingTargetIndex + 1 : existingTargetIndex;\n if (sourceIndex < existingTargetIndex) {\n insertIndex -= 1;\n }\n } else {\n insertIndex = closestEdge === 'bottom' ? existingTargetIndex + 1 : existingTargetIndex;\n }\n targetColumnInWorking.cards.splice(insertIndex, 0, movedCard);\n\n // 6. Persist arrangement to kanban.\n change.kanban((kanban) => {\n kanban.arrangement = {\n order: workingArrangement.map(({ columnValue }) => columnValue),\n columns: Object.fromEntries(\n workingArrangement.map(({ columnValue, cards }) => [columnValue, { ids: cards.map((c) => c.id) }]),\n ),\n };\n });\n },\n }),\n [column, columnFieldPath, model, change],\n );\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Registry } from '@effect-atom/atom-react';\nimport { useState } from 'react';\n\nimport { JsonSchema, Type } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { useAsyncEffect } from '@dxos/react-ui';\nimport { ProjectionModel, createEchoChangeCallback } from '@dxos/schema';\n\nimport { type Kanban } from '#types';\n\n/**\n * Loads the kanban view and builds a ProjectionModel for field projections and pivot.\n *\n * @template S - Entity schema type.\n * @param schema - Echo schema for the viewed type (or undefined).\n * @param kanban - Kanban object whose view to load (or undefined).\n * @param registry - Atom registry for reactive state.\n * @returns ProjectionModel when loaded, or undefined while loading or when schema/kanban are missing.\n */\nexport const useProjectionModel = <S extends Type.AnyEntity>(\n schema: S | undefined,\n kanban: Kanban.Kanban | undefined,\n registry: Registry.Registry,\n) => {\n const [projection, setProjection] = useState<ProjectionModel | undefined>();\n\n useAsyncEffect(\n async (controller) => {\n if (!schema || !kanban || kanban.spec.kind !== 'view') {\n return;\n }\n try {\n const view = await kanban.spec.view.load();\n if (controller.signal.aborted) {\n return;\n }\n\n const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);\n const change = createEchoChangeCallback(view, Type.isMutable(schema) ? schema : undefined);\n\n const projection = new ProjectionModel({ registry, view, baseSchema: jsonSchema, change });\n projection.normalizeView();\n if (!controller.signal.aborted) {\n setProjection(projection);\n }\n } catch (err) {\n log.catch(err, { schema, kanban });\n }\n },\n [schema, kanban, registry],\n );\n\n return projection;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useMemo", "Obj", "createEchoChangeCallback", "kanban", "mutate", "update", "setItemField", "item", "field", "value", "useEchoChangeCallback", "Atom", "useMemo", "useItemsProjection", "kanban", "pivotField", "spec", "optionIds", "Object", "keys", "arrangement", "columns", "options", "map", "id", "title", "color", "fieldProjection", "field", "path", "props", "property", "fields", "make", "stub", "tryGetFieldProjection", "undefined", "getFieldProjections", "getHiddenProperties", "Atom", "useMemo", "Obj", "AtomObj", "UNCATEGORIZED_VALUE", "getOrderFromArrangement", "arrangement", "order", "Array", "isArray", "length", "getOrderByColumnFromArrangement", "columns", "Object", "keys", "fromEntries", "entries", "map", "key", "entry", "rawIds", "ids", "hidden", "undefined", "computeColumnStructure", "effectiveOrder", "effectiveByColumn", "selectOptions", "includes", "unshift", "opt", "id", "push", "filter", "columnValue", "orderItemsInColumn", "items", "pivotPath", "validColumnValues", "orderMap", "Map", "index", "cardsWithExistingOrder", "newCards", "item", "itemColumn", "isValidColumn", "has", "belongsInColumn", "sort", "a", "b", "indexA", "get", "Infinity", "indexB", "useKanbanBoardModel", "kanban", "projection", "itemsAtom", "registry", "arrangementAtom", "useMemo", "AtomObj", "makeProperty", "viewSnapshotAtom", "spec", "kind", "view", "make", "Atom", "undefined", "pivotFieldIdAtom", "get", "pivotField", "pivotFieldId", "effectiveByColumnAtom", "getOrderByColumnFromArrangement", "columnsAtom", "fields", "fieldProj", "tryGetFieldProjection", "selectOptions", "props", "options", "length", "arrangement", "order", "getOrderFromArrangement", "byColumn", "computeColumnStructure", "columnArrangementAtomFamily", "family", "columnValue", "ids", "itemsAtomFamily", "columnArr", "allItems", "pivotPath", "property", "validColumnValues", "Set", "map", "opt", "id", "orderItemsInColumn", "getColumnId", "data", "getItemId", "isColumn", "obj", "isItem", "Obj", "isObject", "columns", "items", "column", "getColumns", "getItems", "useMemo", "arrayMove", "UNCATEGORIZED_VALUE", "useKanbanColumnEventHandler", "id", "model", "projection", "pivotFieldId", "change", "canDrop", "source", "data", "columnValue", "getColumnId", "isColumn", "onDrop", "target", "undefined", "sourceColumnData", "sourceColumnId", "currentColumns", "getColumns", "sourceIndex", "findIndex", "c", "targetIndex", "type", "location", "Math", "floor", "length", "currentColumnIds", "map", "reorderedColumnIds", "fieldProjection", "getFieldProjection", "currentOptions", "props", "options", "optionsInNewOrder", "columnId", "find", "o", "filter", "setFieldProjection", "kanban", "arrangement", "order", "useMemo", "UNCATEGORIZED_VALUE", "findColumn", "id", "arrangement", "find", "columnValue", "cards", "some", "card", "useKanbanItemEventHandler", "column", "columnFieldPath", "model", "change", "canDrop", "source", "isItem", "data", "onTake", "cb", "onDrop", "target", "columns", "getColumns", "currentArrangement", "map", "col", "getItems", "sourceColumnInSnapshot", "workingArrangement", "sourceColumnInWorking", "c", "targetColumnInWorking", "sourceIndex", "findIndex", "movedCard", "splice", "undefined", "newValue", "setItemField", "existingTargetIndex", "type", "getItemId", "closestEdge", "location", "length", "insertIndex", "Math", "max", "min", "floor", "kanban", "order", "Object", "fromEntries", "ids", "useState", "JsonSchema", "Type", "log", "useAsyncEffect", "ProjectionModel", "createEchoChangeCallback", "controller", "kanban", "kind", "projection", "registry", "view", "baseSchema", "change", "setProjection", "schema"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-KDPM77BD.mjs";
|
|
4
|
+
import {
|
|
5
|
+
KanbanOperationHandlerSet
|
|
6
|
+
} from "./chunk-6FPBLOS3.mjs";
|
|
7
|
+
import {
|
|
8
|
+
CreateKanbanSchema,
|
|
9
|
+
KanbanOperation_exports,
|
|
10
|
+
KanbanSettingsSchema,
|
|
11
|
+
KanbanViewSettingsSchema,
|
|
12
|
+
Kanban_exports,
|
|
13
|
+
PivotColumnAnnotationId,
|
|
14
|
+
UNCATEGORIZED_ATTRIBUTES,
|
|
15
|
+
UNCATEGORIZED_VALUE
|
|
16
|
+
} from "./chunk-OQ72EEGU.mjs";
|
|
17
|
+
import {
|
|
18
|
+
kanban_blueprint_default
|
|
19
|
+
} from "./chunk-ZTQW5KQS.mjs";
|
|
20
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
21
|
+
export {
|
|
22
|
+
CreateKanbanSchema,
|
|
23
|
+
Kanban_exports as Kanban,
|
|
24
|
+
kanban_blueprint_default as KanbanBlueprint,
|
|
25
|
+
KanbanOperation_exports as KanbanOperation,
|
|
26
|
+
KanbanOperationHandlerSet,
|
|
27
|
+
KanbanSettingsSchema,
|
|
28
|
+
KanbanViewSettingsSchema,
|
|
29
|
+
PivotColumnAnnotationId,
|
|
30
|
+
UNCATEGORIZED_ATTRIBUTES,
|
|
31
|
+
UNCATEGORIZED_VALUE,
|
|
32
|
+
meta
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"src/blueprints/kanban-blueprint.ts":{"bytes":2249,"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/blueprints/index.ts":{"bytes":525,"imports":[{"path":"src/blueprints/kanban-blueprint.ts","kind":"import-statement","original":"./kanban-blueprint"}],"format":"esm"},"src/meta.ts":{"bytes":2055,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/constants.ts":{"bytes":874,"imports":[],"format":"esm"},"src/types/schema.ts":{"bytes":6689,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true}],"format":"esm"},"src/types/Kanban.ts":{"bytes":15957,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/types/KanbanOperation.ts":{"bytes":8360,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":841,"imports":[{"path":"src/types/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"},{"path":"src/types/Kanban.ts","kind":"import-statement","original":"./Kanban"},{"path":"src/types/KanbanOperation.ts","kind":"import-statement","original":"./KanbanOperation"}],"format":"esm"},"src/operations/delete-card.ts":{"bytes":2296,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/delete-card-field.ts":{"bytes":5652,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/restore-card.ts":{"bytes":2182,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/restore-card-field.ts":{"bytes":5258,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/operations/index.ts":{"bytes":1152,"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"src/operations/delete-card.ts","kind":"dynamic-import","original":"./delete-card"},{"path":"src/operations/delete-card-field.ts","kind":"dynamic-import","original":"./delete-card-field"},{"path":"src/operations/restore-card.ts","kind":"dynamic-import","original":"./restore-card"},{"path":"src/operations/restore-card-field.ts","kind":"dynamic-import","original":"./restore-card-field"}],"format":"esm"},"src/index.ts":{"bytes":633,"imports":[{"path":"src/blueprints/index.ts","kind":"import-statement","original":"./blueprints"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/operations/index.ts","kind":"import-statement","original":"./operations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/KanbanPlugin.tsx":{"bytes":4320,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/KanbanPlugin.node.ts":{"bytes":3007,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/KanbanPlugin.workerd.ts":{"bytes":2021,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/blueprint-definition.ts":{"bytes":1984,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#blueprints","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/create-object.ts":{"bytes":5134,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/migrations.ts":{"bytes":3566,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/operation-handler.ts":{"bytes":1619,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#operations","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":12497,"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/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"#containers","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/undo-mappings.ts":{"bytes":4199,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/index.ts":{"bytes":2764,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/blueprint-definition.ts","kind":"dynamic-import","original":"./blueprint-definition"},{"path":"src/capabilities/create-object.ts","kind":"dynamic-import","original":"./create-object"},{"path":"src/capabilities/migrations.ts","kind":"dynamic-import","original":"./migrations"},{"path":"src/capabilities/operation-handler.ts","kind":"dynamic-import","original":"./operation-handler"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"src/capabilities/undo-mappings.ts","kind":"dynamic-import","original":"./undo-mappings"}],"format":"esm"},"src/components/KanbanBoard/context.ts":{"bytes":4544,"imports":[{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/components/KanbanBoard/KanbanCard.tsx":{"bytes":11591,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","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/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"src/components/KanbanBoard/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/components/KanbanBoard/KanbanColumn.tsx":{"bytes":7630,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"src/components/KanbanBoard/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/components/KanbanBoard/KanbanBoard.tsx":{"bytes":15443,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"src/components/KanbanBoard/context.ts","kind":"import-statement","original":"./context"},{"path":"src/components/KanbanBoard/KanbanCard.tsx","kind":"import-statement","original":"./KanbanCard"},{"path":"src/components/KanbanBoard/KanbanColumn.tsx","kind":"import-statement","original":"./KanbanColumn"}],"format":"esm"},"src/components/KanbanBoard/index.ts":{"bytes":387,"imports":[{"path":"src/components/KanbanBoard/KanbanBoard.tsx","kind":"import-statement","original":"./KanbanBoard"}],"format":"esm"},"src/components/index.ts":{"bytes":387,"imports":[{"path":"src/components/KanbanBoard/index.ts","kind":"import-statement","original":"./KanbanBoard"}],"format":"esm"},"src/containers/KanbanArticle/KanbanArticle.tsx":{"bytes":21867,"imports":[{"path":"@effect-atom/atom-react","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/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/containers/KanbanArticle/index.ts":{"bytes":512,"imports":[{"path":"src/containers/KanbanArticle/KanbanArticle.tsx","kind":"import-statement","original":"./KanbanArticle"}],"format":"esm"},"src/containers/KanbanSettings/KanbanSettings.tsx":{"bytes":12717,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/containers/KanbanSettings/index.ts":{"bytes":518,"imports":[{"path":"src/containers/KanbanSettings/KanbanSettings.tsx","kind":"import-statement","original":"./KanbanSettings"}],"format":"esm"},"src/containers/index.ts":{"bytes":992,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/containers/KanbanArticle/index.ts","kind":"dynamic-import","original":"./KanbanArticle"},{"path":"src/containers/KanbanSettings/index.ts","kind":"dynamic-import","original":"./KanbanSettings"}],"format":"esm"},"src/hooks/useEchoChangeCallback.ts":{"bytes":3090,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useItemsProjection.ts":{"bytes":5514,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/util/arrangement.ts":{"bytes":19941,"imports":[{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/util/index.ts":{"bytes":387,"imports":[{"path":"src/util/arrangement.ts","kind":"import-statement","original":"./arrangement"}],"format":"esm"},"src/hooks/useKanbanBoardModel.ts":{"bytes":18442,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/hooks/useKanbanColumnEventHandler.ts":{"bytes":12611,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useKanbanItemEventHandler.ts":{"bytes":17155,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useProjectionModel.ts":{"bytes":6454,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/index.ts":{"bytes":1020,"imports":[{"path":"src/hooks/useEchoChangeCallback.ts","kind":"import-statement","original":"./useEchoChangeCallback"},{"path":"src/hooks/useItemsProjection.ts","kind":"import-statement","original":"./useItemsProjection"},{"path":"src/hooks/useKanbanBoardModel.ts","kind":"import-statement","original":"./useKanbanBoardModel"},{"path":"src/hooks/useKanbanColumnEventHandler.ts","kind":"import-statement","original":"./useKanbanColumnEventHandler"},{"path":"src/hooks/useKanbanItemEventHandler.ts","kind":"import-statement","original":"./useKanbanItemEventHandler"},{"path":"src/hooks/useProjectionModel.ts","kind":"import-statement","original":"./useProjectionModel"}],"format":"esm"},"src/plugin.ts":{"bytes":1069,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/operations/index.ts","kind":"import-statement","original":"./operations"},{"path":"#plugin","kind":"dynamic-import","external":true}],"format":"esm"},"src/testing/KanbanCardTileSimple.tsx":{"bytes":9563,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/testing/index.ts":{"bytes":507,"imports":[{"path":"src/testing/KanbanCardTileSimple.tsx","kind":"import-statement","original":"./KanbanCardTileSimple"}],"format":"esm"},"src/translations.ts":{"bytes":4755,"imports":[{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/neutral/undo-mappings-6CHW6BOF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2076},"dist/lib/neutral/undo-mappings-6CHW6BOF.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/undo-mappings.ts","inputs":{"src/capabilities/undo-mappings.ts":{"bytesInOutput":954}},"bytes":1122},"dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11091},"dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","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/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/KanbanArticle/index.ts","inputs":{"src/containers/KanbanArticle/KanbanArticle.tsx":{"bytesInOutput":4618},"src/containers/KanbanArticle/index.ts":{"bytesInOutput":0}},"bytes":4791},"dist/lib/neutral/KanbanSettings-G6M47NSK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6554},"dist/lib/neutral/KanbanSettings-G6M47NSK.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/KanbanSettings/index.ts","inputs":{"src/containers/KanbanSettings/KanbanSettings.tsx":{"bytesInOutput":2865},"src/containers/KanbanSettings/index.ts":{"bytesInOutput":0}},"bytes":3042},"dist/lib/neutral/delete-card-field-IRCZL2BR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2852},"dist/lib/neutral/delete-card-field-IRCZL2BR.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-OQ72EEGU.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/delete-card-field.ts","inputs":{"src/operations/delete-card-field.ts":{"bytesInOutput":1390}},"bytes":1634},"dist/lib/neutral/restore-card-P25Y4YSE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1109},"dist/lib/neutral/restore-card-P25Y4YSE.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-OQ72EEGU.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/restore-card.ts","inputs":{"src/operations/restore-card.ts":{"bytesInOutput":569}},"bytes":798},"dist/lib/neutral/restore-card-field-NHR3R4XI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2637},"dist/lib/neutral/restore-card-field-NHR3R4XI.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-OQ72EEGU.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/restore-card-field.ts","inputs":{"src/operations/restore-card-field.ts":{"bytesInOutput":1307}},"bytes":1554},"dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1105},"dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#blueprints","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/blueprint-definition.ts","inputs":{"src/capabilities/blueprint-definition.ts":{"bytesInOutput":402}},"bytes":591},"dist/lib/neutral/create-object-DKBSI46K.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2615},"dist/lib/neutral/create-object-DKBSI46K.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/create-object.ts","inputs":{"src/capabilities/create-object.ts":{"bytesInOutput":1211}},"bytes":1379},"dist/lib/neutral/migrations-IWBT35UT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1782},"dist/lib/neutral/migrations-IWBT35UT.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/migrations.ts","inputs":{"src/capabilities/migrations.ts":{"bytesInOutput":687}},"bytes":846},"dist/lib/neutral/operation-handler-B7IW6MXU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":920},"dist/lib/neutral/operation-handler-B7IW6MXU.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#operations","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/operation-handler.ts","inputs":{"src/capabilities/operation-handler.ts":{"bytesInOutput":345}},"bytes":525},"dist/lib/neutral/react-surface-QROEHBRW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6314},"dist/lib/neutral/react-surface-QROEHBRW.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.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/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"#containers","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":2982}},"bytes":3151},"dist/lib/neutral/hooks/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":40545},"dist/lib/neutral/hooks/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["createEchoChangeCallback","useEchoChangeCallback","useItemsProjection","useKanbanBoardModel","useKanbanColumnEventHandler","useKanbanItemEventHandler","useProjectionModel"],"entryPoint":"src/hooks/index.ts","inputs":{"src/hooks/useEchoChangeCallback.ts":{"bytesInOutput":424},"src/hooks/index.ts":{"bytesInOutput":0},"src/hooks/useItemsProjection.ts":{"bytesInOutput":946},"src/hooks/useKanbanBoardModel.ts":{"bytesInOutput":3449},"src/util/arrangement.ts":{"bytesInOutput":2214},"src/util/index.ts":{"bytesInOutput":0},"src/hooks/useKanbanColumnEventHandler.ts":{"bytesInOutput":2364},"src/hooks/useKanbanItemEventHandler.ts":{"bytesInOutput":3499},"src/hooks/useProjectionModel.ts":{"bytesInOutput":1400}},"bytes":14855},"dist/lib/neutral/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/meta.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-KDPM77BD.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["meta"],"entryPoint":"src/meta.ts","inputs":{},"bytes":131},"dist/lib/neutral/operations/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/operations/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-6FPBLOS3.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["KanbanOperationHandlerSet"],"entryPoint":"src/operations/index.ts","inputs":{},"bytes":176},"dist/lib/neutral/plugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":504},"dist/lib/neutral/plugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-KDPM77BD.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-6FPBLOS3.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#plugin","kind":"dynamic-import","external":true}],"exports":["KanbanOperationHandlerSet","KanbanPlugin"],"entryPoint":"src/plugin.ts","inputs":{"src/plugin.ts":{"bytesInOutput":109}},"bytes":365},"dist/lib/neutral/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5158},"dist/lib/neutral/testing/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["KanbanCardTileSimple"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/KanbanCardTileSimple.tsx":{"bytesInOutput":2397},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":2540},"dist/lib/neutral/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2224},"dist/lib/neutral/translations.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":1378}},"bytes":1502},"dist/lib/neutral/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/types/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-OQ72EEGU.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","Kanban","KanbanOperation","KanbanSettingsSchema","KanbanViewSettingsSchema","PivotColumnAnnotationId","UNCATEGORIZED_ATTRIBUTES","UNCATEGORIZED_VALUE"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":541},"dist/lib/neutral/delete-card-356CBACE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1146},"dist/lib/neutral/delete-card-356CBACE.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-OQ72EEGU.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/operations/delete-card.ts","inputs":{"src/operations/delete-card.ts":{"bytesInOutput":594}},"bytes":820},"dist/lib/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-KDPM77BD.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-6FPBLOS3.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-OQ72EEGU.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-ZTQW5KQS.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","Kanban","KanbanBlueprint","KanbanOperation","KanbanOperationHandlerSet","KanbanSettingsSchema","KanbanViewSettingsSchema","PivotColumnAnnotationId","UNCATEGORIZED_ATTRIBUTES","UNCATEGORIZED_VALUE","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":805},"dist/lib/neutral/chunk-KDPM77BD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1006},"dist/lib/neutral/chunk-KDPM77BD.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":554}},"bytes":633},"dist/lib/neutral/chunk-6FPBLOS3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":632},"dist/lib/neutral/chunk-6FPBLOS3.mjs":{"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"dist/lib/neutral/delete-card-356CBACE.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/delete-card-field-IRCZL2BR.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/restore-card-P25Y4YSE.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/restore-card-field-NHR3R4XI.mjs","kind":"dynamic-import"}],"exports":["KanbanOperationHandlerSet"],"inputs":{"src/operations/index.ts":{"bytesInOutput":301}},"bytes":413},"dist/lib/neutral/chunk-OQ72EEGU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15594},"dist/lib/neutral/chunk-OQ72EEGU.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["CreateKanbanSchema","KanbanOperation_exports","KanbanSettingsSchema","KanbanViewSettingsSchema","Kanban_exports","PivotColumnAnnotationId","UNCATEGORIZED_ATTRIBUTES","UNCATEGORIZED_VALUE"],"inputs":{"src/types/constants.ts":{"bytesInOutput":128},"src/types/index.ts":{"bytesInOutput":0},"src/types/schema.ts":{"bytesInOutput":1143},"src/types/Kanban.ts":{"bytesInOutput":3143},"src/types/KanbanOperation.ts":{"bytesInOutput":2419}},"bytes":7245},"dist/lib/neutral/KanbanPlugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2301},"dist/lib/neutral/KanbanPlugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["KanbanPlugin","default"],"entryPoint":"src/KanbanPlugin.tsx","inputs":{"src/KanbanPlugin.tsx":{"bytesInOutput":1019}},"bytes":1179},"dist/lib/neutral/KanbanPlugin.node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1599},"dist/lib/neutral/KanbanPlugin.node.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["KanbanPlugin","default"],"entryPoint":"src/KanbanPlugin.node.ts","inputs":{"src/KanbanPlugin.node.ts":{"bytesInOutput":699}},"bytes":873},"dist/lib/neutral/KanbanPlugin.workerd.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1060},"dist/lib/neutral/KanbanPlugin.workerd.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["KanbanPlugin","default"],"entryPoint":"src/KanbanPlugin.workerd.ts","inputs":{"src/KanbanPlugin.workerd.ts":{"bytesInOutput":450}},"bytes":633},"dist/lib/neutral/blueprints/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/blueprints/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-ZTQW5KQS.mjs","kind":"import-statement"},{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"}],"exports":["KanbanBlueprint"],"entryPoint":"src/blueprints/index.ts","inputs":{},"bytes":193},"dist/lib/neutral/chunk-ZTQW5KQS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1179},"dist/lib/neutral/chunk-ZTQW5KQS.mjs":{"imports":[{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["kanban_blueprint_default"],"inputs":{"src/blueprints/kanban-blueprint.ts":{"bytesInOutput":525},"src/blueprints/index.ts":{"bytesInOutput":0}},"bytes":647},"dist/lib/neutral/capabilities/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1493},"dist/lib/neutral/capabilities/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/create-object-DKBSI46K.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/migrations-IWBT35UT.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/operation-handler-B7IW6MXU.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/react-surface-QROEHBRW.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/undo-mappings-6CHW6BOF.mjs","kind":"dynamic-import"}],"exports":["BlueprintDefinition","CreateObject","Migrations","OperationHandler","ReactSurface","UndoMappings"],"entryPoint":"src/capabilities/index.ts","inputs":{"src/capabilities/index.ts":{"bytesInOutput":670}},"bytes":883},"dist/lib/neutral/components/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":21658},"dist/lib/neutral/components/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"#types","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/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["KanbanBoard","KanbanBoardContent","KanbanBoardRoot","useKanbanBoard"],"entryPoint":"src/components/index.ts","inputs":{"src/components/KanbanBoard/KanbanBoard.tsx":{"bytesInOutput":3405},"src/components/KanbanBoard/context.ts":{"bytesInOutput":580},"src/components/KanbanBoard/KanbanCard.tsx":{"bytesInOutput":2833},"src/components/KanbanBoard/KanbanColumn.tsx":{"bytesInOutput":1872},"src/components/KanbanBoard/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0}},"bytes":9072},"dist/lib/neutral/containers/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":556},"dist/lib/neutral/containers/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-J5LGTIGS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/KanbanSettings-G6M47NSK.mjs","kind":"dynamic-import"}],"exports":["KanbanArticle","KanbanSettings"],"entryPoint":"src/containers/index.ts","inputs":{"src/containers/index.ts":{"bytesInOutput":178}},"bytes":319},"dist/lib/neutral/chunk-J5LGTIGS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/chunk-J5LGTIGS.mjs":{"imports":[],"exports":["__export"],"inputs":{},"bytes":235}}}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/migrations.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capability } from "@dxos/app-framework";
|
|
6
|
+
import { Migration } from "@dxos/echo";
|
|
7
|
+
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
8
|
+
import { Kanban } from "#types";
|
|
9
|
+
var migrations = [
|
|
10
|
+
Migration.define({
|
|
11
|
+
from: Kanban.KanbanV1,
|
|
12
|
+
to: Kanban.Kanban,
|
|
13
|
+
transform: async (from) => ({
|
|
14
|
+
name: from.name,
|
|
15
|
+
arrangement: from.arrangement,
|
|
16
|
+
spec: {
|
|
17
|
+
kind: "view",
|
|
18
|
+
view: from.view
|
|
19
|
+
}
|
|
20
|
+
}),
|
|
21
|
+
onMigration: async () => {
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
];
|
|
25
|
+
var migrations_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
26
|
+
return Capability.contributes(ClientCapabilities.Migration, migrations);
|
|
27
|
+
}));
|
|
28
|
+
export {
|
|
29
|
+
migrations_default as default
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=migrations-IWBT35UT.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/migrations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Migration } from '@dxos/echo';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { Kanban } from '#types';\n\n/**\n * v0.1.0 → v0.2.0: nests the existing `view` ref under a `spec: { kind: 'view', view }`\n * discriminated union. v0.2.0 introduced an items-variant for externally-synced kanbans;\n * pre-migration objects were all view-based by construction.\n */\nconst migrations = [\n Migration.define({\n from: Kanban.KanbanV1,\n to: Kanban.Kanban,\n transform: async (from) => ({\n name: from.name,\n arrangement: from.arrangement,\n spec: { kind: 'view' as const, view: from.view },\n }),\n onMigration: async () => {},\n }),\n];\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return Capability.contributes(ClientCapabilities.Migration, migrations);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AAEnC,SAASC,cAAc;AAOvB,IAAMC,aAAa;EACjBH,UAAUI,OAAO;IACfC,MAAMH,OAAOI;IACbC,IAAIL,OAAOA;IACXM,WAAW,OAAOH,UAAU;MAC1BI,MAAMJ,KAAKI;MACXC,aAAaL,KAAKK;MAClBC,MAAM;QAAEC,MAAM;QAAiBC,MAAMR,KAAKQ;MAAK;IACjD;IACAC,aAAa,YAAA;IAAa;EAC5B,CAAA;;AAGF,IAAA,qBAAef,WAAWgB,WACjBC,kBAAW,aAAA;AAChB,SAAOjB,WAAWkB,YAAYhB,mBAAmBD,WAAWG,UAAAA;AAC9D,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capability", "Migration", "ClientCapabilities", "Kanban", "migrations", "define", "from", "KanbanV1", "to", "transform", "name", "arrangement", "spec", "kind", "view", "onMigration", "makeModule", "fnUntraced", "contributes"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/operation-handler.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
6
|
+
import { KanbanOperationHandlerSet } from "#operations";
|
|
7
|
+
var operation_handler_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
8
|
+
return Capability.contributes(Capabilities.OperationHandler, KanbanOperationHandlerSet);
|
|
9
|
+
}));
|
|
10
|
+
export {
|
|
11
|
+
operation_handler_default as default
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=operation-handler-B7IW6MXU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/operation-handler.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport type { OperationHandlerSet } from '@dxos/compute';\n\nimport { KanbanOperationHandlerSet } from '#operations';\n\nexport default Capability.makeModule<OperationHandlerSet.OperationHandlerSet>(\n Effect.fnUntraced(function* () {\n return Capability.contributes(Capabilities.OperationHandler, KanbanOperationHandlerSet);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAEA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AAGzC,SAASC,iCAAiC;AAE1C,IAAA,4BAAeD,WAAWE,WACjBC,kBAAW,aAAA;AAChB,SAAOH,WAAWI,YAAYL,aAAaM,kBAAkBJ,yBAAAA;AAC/D,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "KanbanOperationHandlerSet", "makeModule", "fnUntraced", "contributes", "OperationHandler"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-KDPM77BD.mjs";
|
|
4
|
+
import {
|
|
5
|
+
KanbanOperationHandlerSet
|
|
6
|
+
} from "./chunk-6FPBLOS3.mjs";
|
|
7
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
8
|
+
|
|
9
|
+
// src/plugin.ts
|
|
10
|
+
import { Plugin } from "@dxos/app-framework";
|
|
11
|
+
var KanbanPlugin = Plugin.lazy(meta, () => import("#plugin"));
|
|
12
|
+
export {
|
|
13
|
+
KanbanOperationHandlerSet,
|
|
14
|
+
KanbanPlugin
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=plugin.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/plugin.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const KanbanPlugin = Plugin.lazy(meta, () => import('#plugin'));\n\nexport { KanbanOperationHandlerSet } from './operations';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,SAASA,cAAc;AAIhB,IAAMC,eAAeC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
|
|
6
|
+
"names": ["Plugin", "KanbanPlugin", "Plugin", "lazy", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/react-surface.tsx
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import React, { useMemo } from "react";
|
|
6
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
7
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
8
|
+
import { AppSurface } from "@dxos/app-toolkit/ui";
|
|
9
|
+
import { Database, JsonSchema, Obj } from "@dxos/echo";
|
|
10
|
+
import { findAnnotation } from "@dxos/effect";
|
|
11
|
+
import { SelectField, useFormValues } from "@dxos/react-ui-form";
|
|
12
|
+
import { KanbanArticle, KanbanSettings } from "#containers";
|
|
13
|
+
import { Kanban, PivotColumnAnnotationId } from "#types";
|
|
14
|
+
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
|
|
15
|
+
Surface.create({
|
|
16
|
+
id: "root",
|
|
17
|
+
// TODO(wittjosiah): Split into multiple surfaces if this filter proves too strict for non-article roles.
|
|
18
|
+
filter: AppSurface.oneOf(AppSurface.object(AppSurface.Article, Kanban.Kanban), AppSurface.object(AppSurface.Section, Kanban.Kanban)),
|
|
19
|
+
component: ({ data, role }) => /* @__PURE__ */ React.createElement(KanbanArticle, {
|
|
20
|
+
role,
|
|
21
|
+
subject: data.subject
|
|
22
|
+
})
|
|
23
|
+
}),
|
|
24
|
+
Surface.create({
|
|
25
|
+
id: "object-properties",
|
|
26
|
+
position: "hoist",
|
|
27
|
+
filter: AppSurface.object(AppSurface.ObjectProperties, Kanban.Kanban),
|
|
28
|
+
component: ({ data }) => /* @__PURE__ */ React.createElement(KanbanSettings, {
|
|
29
|
+
subject: data.subject
|
|
30
|
+
})
|
|
31
|
+
}),
|
|
32
|
+
Surface.create({
|
|
33
|
+
id: "create-initial-schema-form-[pivot-column]",
|
|
34
|
+
role: "form-input",
|
|
35
|
+
filter: (data) => {
|
|
36
|
+
const annotation = findAnnotation(data.schema.ast, PivotColumnAnnotationId);
|
|
37
|
+
return !!annotation;
|
|
38
|
+
},
|
|
39
|
+
component: ({ data: { target, fieldPropertyAst }, ...inputProps }) => {
|
|
40
|
+
const ast = fieldPropertyAst;
|
|
41
|
+
if (!ast) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const props = {
|
|
45
|
+
...inputProps,
|
|
46
|
+
type: ast
|
|
47
|
+
};
|
|
48
|
+
const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
|
|
49
|
+
if (!db) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const { typename } = useFormValues("KanbanForm");
|
|
53
|
+
const [selectedSchema] = useMemo(() => db.schemaRegistry.query({
|
|
54
|
+
location: [
|
|
55
|
+
"database",
|
|
56
|
+
"runtime"
|
|
57
|
+
],
|
|
58
|
+
typename
|
|
59
|
+
}).runSync(), [
|
|
60
|
+
db,
|
|
61
|
+
typename
|
|
62
|
+
]);
|
|
63
|
+
const singleSelectColumns = useMemo(() => {
|
|
64
|
+
const properties = JsonSchema.toJsonSchema(selectedSchema).properties;
|
|
65
|
+
if (!properties) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
const columns = Object.entries(properties).reduce((acc, [key, value]) => {
|
|
69
|
+
if (typeof value === "object" && value?.format === "single-select") {
|
|
70
|
+
acc.push(key);
|
|
71
|
+
}
|
|
72
|
+
return acc;
|
|
73
|
+
}, []);
|
|
74
|
+
return columns;
|
|
75
|
+
}, [
|
|
76
|
+
selectedSchema
|
|
77
|
+
]);
|
|
78
|
+
if (!typename) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return /* @__PURE__ */ React.createElement(SelectField, {
|
|
82
|
+
...props,
|
|
83
|
+
options: singleSelectColumns.map((column) => ({
|
|
84
|
+
value: column
|
|
85
|
+
}))
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
])));
|
|
90
|
+
export {
|
|
91
|
+
react_surface_default as default
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=react-surface-QROEHBRW.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Collection, Database, JsonSchema, Obj } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { type FormFieldComponentProps, SelectField, useFormValues } from '@dxos/react-ui-form';\n\nimport { KanbanArticle, KanbanSettings } from '#containers';\nimport { Kanban, PivotColumnAnnotationId } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'root',\n // TODO(wittjosiah): Split into multiple surfaces if this filter proves too strict for non-article roles.\n filter: AppSurface.oneOf(\n AppSurface.object(AppSurface.Article, Kanban.Kanban),\n AppSurface.object(AppSurface.Section, Kanban.Kanban),\n ),\n component: ({ data, role }) => <KanbanArticle role={role} subject={data.subject} />,\n }),\n Surface.create({\n id: 'object-properties',\n position: 'hoist',\n filter: AppSurface.object(AppSurface.ObjectProperties, Kanban.Kanban),\n component: ({ data }) => <KanbanSettings subject={data.subject} />,\n }),\n Surface.create({\n id: 'create-initial-schema-form-[pivot-column]',\n role: 'form-input',\n filter: (\n data,\n ): data is {\n prop: string;\n schema: Schema.Schema<any>;\n target: Database.Database | Collection.Collection | undefined;\n fieldPropertyAst?: SchemaAST.AST;\n } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, PivotColumnAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target, fieldPropertyAst }, ...inputProps }) => {\n const ast = fieldPropertyAst;\n if (!ast) {\n return null;\n }\n\n const props = { ...inputProps, type: ast } as any as FormFieldComponentProps;\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n if (!db) {\n return null;\n }\n\n const { typename } = useFormValues('KanbanForm');\n const [selectedSchema] = useMemo(\n () => db.schemaRegistry.query({ location: ['database', 'runtime'], typename }).runSync(),\n [db, typename],\n );\n const singleSelectColumns = useMemo(() => {\n const properties = JsonSchema.toJsonSchema(selectedSchema).properties;\n if (!properties) {\n return [];\n }\n\n const columns = Object.entries(properties).reduce<string[]>((acc, [key, value]) => {\n if (typeof value === 'object' && value?.format === 'single-select') {\n acc.push(key);\n }\n return acc;\n }, []);\n\n return columns;\n }, [selectedSchema]);\n\n if (!typename) {\n return null;\n }\n\n return <SelectField {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;\n },\n }),\n ]),\n ),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAGxB,OAAOC,SAASC,eAAe;AAE/B,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAC3B,SAA0BC,UAAUC,YAAYC,WAAW;AAC3D,SAASC,sBAAsB;AAC/B,SAAuCC,aAAaC,qBAAqB;AAEzE,SAASC,eAAeC,sBAAsB;AAC9C,SAASC,QAAQC,+BAA+B;AAEhD,IAAA,wBAAeZ,WAAWa,WAAW,MAC5BC,eACLd,WAAWe,YAAYhB,aAAaiB,cAAc;EAChDf,QAAQgB,OAAO;IACbC,IAAI;;IAEJC,QAAQjB,WAAWkB,MACjBlB,WAAWmB,OAAOnB,WAAWoB,SAASX,OAAOA,MAAM,GACnDT,WAAWmB,OAAOnB,WAAWqB,SAASZ,OAAOA,MAAM,CAAA;IAErDa,WAAW,CAAC,EAAEC,MAAMC,KAAI,MAAO,sBAAA,cAACjB,eAAAA;MAAciB;MAAYC,SAASF,KAAKE;;EAC1E,CAAA;EACA1B,QAAQgB,OAAO;IACbC,IAAI;IACJU,UAAU;IACVT,QAAQjB,WAAWmB,OAAOnB,WAAW2B,kBAAkBlB,OAAOA,MAAM;IACpEa,WAAW,CAAC,EAAEC,KAAI,MAAO,sBAAA,cAACf,gBAAAA;MAAeiB,SAASF,KAAKE;;EACzD,CAAA;EACA1B,QAAQgB,OAAO;IACbC,IAAI;IACJQ,MAAM;IACNP,QAAQ,CACNM,SAAAA;AAOA,YAAMK,aAAaxB,eAAyBmB,KAAKM,OAA6BC,KAAKpB,uBAAAA;AACnF,aAAO,CAAC,CAACkB;IACX;IACAN,WAAW,CAAC,EAAEC,MAAM,EAAEQ,QAAQC,iBAAgB,GAAI,GAAGC,WAAAA,MAAY;AAC/D,YAAMH,MAAME;AACZ,UAAI,CAACF,KAAK;AACR,eAAO;MACT;AAEA,YAAMI,QAAQ;QAAE,GAAGD;QAAYE,MAAML;MAAI;AACzC,YAAMM,KAAKnC,SAASoC,WAAWN,MAAAA,IAAUA,SAASA,UAAU5B,IAAImC,YAAYP,MAAAA;AAC5E,UAAI,CAACK,IAAI;AACP,eAAO;MACT;AAEA,YAAM,EAAEG,SAAQ,IAAKjC,cAAc,YAAA;AACnC,YAAM,CAACkC,cAAAA,IAAkB5C,QACvB,MAAMwC,GAAGK,eAAeC,MAAM;QAAEC,UAAU;UAAC;UAAY;;QAAYJ;MAAS,CAAA,EAAGK,QAAO,GACtF;QAACR;QAAIG;OAAS;AAEhB,YAAMM,sBAAsBjD,QAAQ,MAAA;AAClC,cAAMkD,aAAa5C,WAAW6C,aAAaP,cAAAA,EAAgBM;AAC3D,YAAI,CAACA,YAAY;AACf,iBAAO,CAAA;QACT;AAEA,cAAME,UAAUC,OAAOC,QAAQJ,UAAAA,EAAYK,OAAiB,CAACC,KAAK,CAACC,KAAKC,KAAAA,MAAM;AAC5E,cAAI,OAAOA,UAAU,YAAYA,OAAOC,WAAW,iBAAiB;AAClEH,gBAAII,KAAKH,GAAAA;UACX;AACA,iBAAOD;QACT,GAAG,CAAA,CAAE;AAEL,eAAOJ;MACT,GAAG;QAACR;OAAe;AAEnB,UAAI,CAACD,UAAU;AACb,eAAO;MACT;AAEA,aAAO,sBAAA,cAAClC,aAAAA;QAAa,GAAG6B;QAAOuB,SAASZ,oBAAoBa,IAAI,CAACC,YAAY;UAAEL,OAAOK;QAAO,EAAA;;IAC/F;EACF,CAAA;CACD,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "React", "useMemo", "Capabilities", "Capability", "Surface", "AppSurface", "Database", "JsonSchema", "Obj", "findAnnotation", "SelectField", "useFormValues", "KanbanArticle", "KanbanSettings", "Kanban", "PivotColumnAnnotationId", "makeModule", "succeed", "contributes", "ReactSurface", "create", "id", "filter", "oneOf", "object", "Article", "Section", "component", "data", "role", "subject", "position", "ObjectProperties", "annotation", "schema", "ast", "target", "fieldPropertyAst", "inputProps", "props", "type", "db", "isDatabase", "getDatabase", "typename", "selectedSchema", "schemaRegistry", "query", "location", "runSync", "singleSelectColumns", "properties", "toJsonSchema", "columns", "Object", "entries", "reduce", "acc", "key", "value", "format", "push", "options", "map", "column"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KanbanOperation_exports
|
|
3
|
+
} from "./chunk-OQ72EEGU.mjs";
|
|
4
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
+
|
|
6
|
+
// src/operations/restore-card.ts
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { Operation } from "@dxos/compute";
|
|
9
|
+
import { Obj } from "@dxos/echo";
|
|
10
|
+
import { invariant } from "@dxos/invariant";
|
|
11
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-kanban/src/operations/restore-card.ts";
|
|
12
|
+
var handler = KanbanOperation_exports.RestoreCard.pipe(Operation.withHandler(({ card }) => Effect.sync(() => {
|
|
13
|
+
const db = Obj.getDatabase(card);
|
|
14
|
+
invariant(db, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 9, S: void 0, A: ["db", ""] });
|
|
15
|
+
db.add(card);
|
|
16
|
+
})));
|
|
17
|
+
var restore_card_default = handler;
|
|
18
|
+
export {
|
|
19
|
+
restore_card_default as default
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=restore-card-P25Y4YSE.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/restore-card.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\n\nimport { KanbanOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof KanbanOperation.RestoreCard> = KanbanOperation.RestoreCard.pipe(\n Operation.withHandler(({ card }) =>\n Effect.sync(() => {\n const db = Obj.getDatabase(card);\n invariant(db);\n db.add(card);\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAI1B,IAAA,eAA2EC;cAIrEC,wBAAUC,YAAAA,KAAAA,UAAAA,YAAAA,CAAAA,EAAAA,KAAAA,MAAAA,YAAAA,MAAAA;AACVA,QAAM,KAACC,IAAAA,YAAAA,IAAAA;AACT,YAAA,IAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,GAAA,GAAA,QAAA,GAAA,CAAA,MAAA,EAAA,EAAA,CAAA;AAIJ,KAAA,IAAeC,IAAAA;;;",
|
|
6
|
+
"names": ["Effect", "Operation", "Obj", "invariant", "KanbanOperation", "invariant", "db", "card", "handler"]
|
|
7
|
+
}
|