@dxos/plugin-kanban 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/KanbanContainer-BCXSJ6KS.mjs +304 -0
- package/dist/lib/browser/KanbanContainer-BCXSJ6KS.mjs.map +7 -0
- package/dist/lib/browser/KanbanViewEditor-IH5CJ6BW.mjs +66 -0
- package/dist/lib/browser/KanbanViewEditor-IH5CJ6BW.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-HFEKGFJK.mjs +17 -0
- package/dist/lib/browser/blueprint-definition-HFEKGFJK.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +8 -0
- package/dist/lib/browser/blueprints/index.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/browser/chunk-QSWCFMEB.mjs +385 -0
- package/dist/lib/browser/chunk-QSWCFMEB.mjs.map +7 -0
- package/dist/lib/browser/chunk-RNFIFE2P.mjs +213 -0
- package/dist/lib/browser/chunk-RNFIFE2P.mjs.map +7 -0
- package/dist/lib/browser/chunk-TLYZSC7O.mjs +29 -0
- package/dist/lib/browser/chunk-TLYZSC7O.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +65 -68
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-BRA2OHUE.mjs +162 -0
- package/dist/lib/browser/operation-resolver-BRA2OHUE.mjs.map +7 -0
- package/dist/lib/browser/react-surface-FOMOGFVW.mjs +99 -0
- package/dist/lib/browser/react-surface-FOMOGFVW.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +14 -5
- package/dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs +305 -0
- package/dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs.map +7 -0
- package/dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs +67 -0
- package/dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-NARBX32U.mjs +18 -0
- package/dist/lib/node-esm/blueprint-definition-NARBX32U.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +9 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-4AWDHQVY.mjs +214 -0
- package/dist/lib/node-esm/chunk-4AWDHQVY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CSL3HF2X.mjs +386 -0
- package/dist/lib/node-esm/chunk-CSL3HF2X.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-X3UJUQIV.mjs +31 -0
- package/dist/lib/node-esm/chunk-X3UJUQIV.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +65 -68
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs +163 -0
- package/dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-AITKFRBE.mjs +100 -0
- package/dist/lib/node-esm/react-surface-AITKFRBE.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +14 -5
- package/dist/types/src/KanbanPlugin.d.ts +2 -1
- package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
- 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/artifact-definition.d.ts +12 -0
- package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +3 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +58 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +70 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +10 -0
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +9 -0
- package/dist/types/src/components/KanbanBoard/KanbanColumn.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/KanbanContainer/KanbanContainer.d.ts +6 -0
- package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts +77 -0
- package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanContainer/index.d.ts +3 -0
- package/dist/types/src/containers/KanbanContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts +6 -0
- package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanViewEditor/index.d.ts +3 -0
- package/dist/types/src/containers/KanbanViewEditor/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 +6 -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/useKanbanBoardModel.d.ts +16 -0
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts +2 -0
- package/dist/types/src/hooks/useKanbanBoardModel.test.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/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- 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/testing/KanbanCardTileSimple.d.ts +5 -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 +35 -9
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Kanban.d.ts +37 -0
- package/dist/types/src/types/Kanban.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 +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +98 -43
- 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 +68 -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 +67 -46
- package/src/KanbanPlugin.tsx +35 -54
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/kanban-blueprint.ts +31 -0
- package/src/capabilities/artifact-definition/artifact-definition.ts +151 -0
- package/src/capabilities/artifact-definition/index.ts +7 -0
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
- package/src/capabilities/blueprint-definition/index.ts +7 -0
- package/src/capabilities/index.ts +3 -5
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +133 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +86 -0
- package/src/components/KanbanBoard/KanbanBoard.stories.tsx +142 -0
- package/src/components/KanbanBoard/KanbanBoard.tsx +184 -0
- package/src/components/KanbanBoard/KanbanCard.tsx +87 -0
- package/src/components/KanbanBoard/KanbanColumn.tsx +69 -0
- package/src/components/KanbanBoard/index.ts +5 -0
- package/src/components/index.ts +1 -2
- package/src/containers/KanbanContainer/KanbanContainer.stories.tsx +263 -0
- package/src/containers/KanbanContainer/KanbanContainer.tsx +87 -0
- package/src/containers/KanbanContainer/index.ts +7 -0
- package/src/containers/KanbanViewEditor/KanbanViewEditor.tsx +63 -0
- package/src/containers/KanbanViewEditor/index.ts +7 -0
- package/src/containers/index.ts +8 -0
- package/src/hooks/index.ts +9 -0
- package/src/hooks/useEchoChangeCallback.ts +30 -0
- package/src/hooks/useKanbanBoardModel.test.ts +235 -0
- package/src/hooks/useKanbanBoardModel.ts +143 -0
- package/src/hooks/useKanbanColumnEventHandler.ts +106 -0
- package/src/hooks/useKanbanItemEventHandler.ts +133 -0
- package/src/hooks/useProjectionModel.ts +58 -0
- package/src/meta.ts +8 -4
- 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/testing/KanbanCardTileSimple.tsx +76 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +13 -6
- package/src/types/Kanban.ts +67 -0
- package/src/types/constants.ts +9 -0
- package/src/types/index.ts +2 -0
- package/src/types/schema.ts +84 -38
- package/src/types/types.ts +35 -0
- package/src/util/arrangement.test.ts +208 -0
- package/src/util/arrangement.ts +167 -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-K7KYFJ3P.mjs +0 -80
- package/dist/lib/browser/chunk-K7KYFJ3P.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-LR3SDMKQ.mjs +0 -111
- package/dist/lib/browser/intent-resolver-LR3SDMKQ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-R2ORFB43.mjs +0 -255
- package/dist/lib/browser/react-surface-R2ORFB43.mjs.map +0 -7
- 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-VDWYSHP4.mjs +0 -82
- package/dist/lib/node-esm/chunk-VDWYSHP4.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-CKDNVLND.mjs +0 -112
- package/dist/lib/node-esm/intent-resolver-CKDNVLND.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-RMRLHCOY.mjs +0 -256
- package/dist/lib/node-esm/react-surface-RMRLHCOY.mjs.map +0 -7
- package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
- 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/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.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/artifact-definition.ts +0 -148
- package/src/capabilities/blueprint-definition.ts +0 -30
- package/src/capabilities/intent-resolver.ts +0 -71
- package/src/capabilities/react-surface.tsx +0 -84
- package/src/components/KanbanContainer.stories.tsx +0 -193
- package/src/components/KanbanContainer.tsx +0 -95
- package/src/components/KanbanViewEditor.tsx +0 -64
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useEchoChangeCallback.ts", "../../../src/hooks/useProjectionModel.ts", "../../../src/hooks/useKanbanBoardModel.ts", "../../../src/util/arrangement.ts", "../../../src/hooks/useKanbanColumnEventHandler.ts", "../../../src/hooks/useKanbanItemEventHandler.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.change(kanban, (kanban) => mutate(kanban)),\n setItemField: (item, field, value) => {\n Obj.change(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 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) {\n return;\n }\n try {\n const view = await kanban.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", "//\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';\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 () => (kanban?.view ? AtomObj.make(kanban.view) : Atom.make<undefined>(() => undefined)),\n [kanban?.view],\n );\n\n /** Only changes when view.projection.pivotFieldId changes; keeps columns from firing on other view updates. */\n const pivotFieldIdAtom = useMemo(\n () => Atom.make((get) => get(viewSnapshotAtom)?.projection?.pivotFieldId as string | undefined),\n [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 && 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 key,\n { ids: [...(entry.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 selectOption ids not yet in order.\n * Each entry gets the ids from effectiveByColumn for that column (or empty).\n *\n * @param effectiveOrder - Column order from arrangement (or previous merge).\n * @param effectiveByColumn - Per-column card id order 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.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 uncategorized if duplicated).\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 ];\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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useMemo", "Obj", "createEchoChangeCallback", "kanban", "mutate", "Obj", "change", "setItemField", "item", "field", "value", "useEchoChangeCallback", "useMemo", "useState", "JsonSchema", "Type", "log", "useAsyncEffect", "ProjectionModel", "createEchoChangeCallback", "useProjectionModel", "schema", "kanban", "registry", "projection", "setProjection", "controller", "view", "load", "signal", "aborted", "jsonSchema", "isMutable", "toJsonSchema", "change", "undefined", "baseSchema", "normalizeView", "err", "catch", "Atom", "useMemo", "Obj", "AtomObj", "getOrderFromArrangement", "arrangement", "order", "length", "getOrderByColumnFromArrangement", "columns", "Object", "keys", "fromEntries", "entries", "map", "key", "entry", "ids", "hidden", "undefined", "computeColumnStructure", "effectiveOrder", "effectiveByColumn", "selectOptions", "includes", "UNCATEGORIZED_VALUE", "unshift", "opt", "id", "push", "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", "view", "make", "Atom", "undefined", "pivotFieldIdAtom", "get", "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", "useKanbanColumnEventHandler", "id", "model", "projection", "pivotFieldId", "change", "useMemo", "canDrop", "source", "data", "columnValue", "getColumnId", "isColumn", "UNCATEGORIZED_VALUE", "onDrop", "target", "undefined", "sourceColumnData", "sourceColumnId", "currentColumns", "getColumns", "sourceIndex", "findIndex", "c", "targetIndex", "type", "location", "Math", "floor", "length", "currentColumnIds", "map", "reorderedColumnIds", "arrayMove", "fieldProjection", "getFieldProjection", "currentOptions", "props", "options", "optionsInNewOrder", "columnId", "find", "o", "filter", "setFieldProjection", "kanban", "arrangement", "order", "useMemo", "findColumn", "id", "arrangement", "find", "columnValue", "cards", "some", "card", "useKanbanItemEventHandler", "column", "columnFieldPath", "model", "change", "useMemo", "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", "UNCATEGORIZED_VALUE", "setItemField", "existingTargetIndex", "type", "getItemId", "closestEdge", "location", "length", "insertIndex", "Math", "max", "min", "floor", "kanban", "order", "Object", "fromEntries", "ids"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
for (var name in all)
|
|
5
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
__export
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-HSLMI22Q.mjs.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/blueprints/kanban-blueprint.ts
|
|
4
|
+
import { Blueprint, Template } from "@dxos/blueprints";
|
|
5
|
+
import { trim } from "@dxos/util";
|
|
6
|
+
var BLUEPRINT_KEY = "dxos.org/blueprint/kanban";
|
|
7
|
+
var functions = [];
|
|
8
|
+
var make = () => Blueprint.make({
|
|
9
|
+
key: BLUEPRINT_KEY,
|
|
10
|
+
name: "Kanban",
|
|
11
|
+
tools: Blueprint.toolDefinitions({
|
|
12
|
+
functions,
|
|
13
|
+
tools: []
|
|
14
|
+
}),
|
|
15
|
+
instructions: Template.make({
|
|
16
|
+
source: trim`
|
|
17
|
+
You can create and update kanban boards to show data in sorted columns defined by schema.
|
|
18
|
+
`
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
var blueprint = {
|
|
22
|
+
key: BLUEPRINT_KEY,
|
|
23
|
+
functions,
|
|
24
|
+
make
|
|
25
|
+
};
|
|
26
|
+
var kanban_blueprint_default = blueprint;
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
kanban_blueprint_default
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=chunk-X3UJUQIV.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/kanban-blueprint.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { trim } from '@dxos/util';\n\nconst BLUEPRINT_KEY = 'dxos.org/blueprint/kanban';\n\nconst functions: AppCapabilities.BlueprintDefinition['functions'] = [];\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Kanban',\n tools: Blueprint.toolDefinitions({ functions, tools: [] }),\n instructions: Template.make({\n source: trim`\n You can create and update kanban boards to show data in sorted columns defined by schema.\n `,\n }),\n });\n\nconst blueprint: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n functions,\n make,\n};\n\nexport default blueprint;\n"],
|
|
5
|
+
"mappings": ";;;AAKA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,IAAMC,gBAAgB;AAEtB,IAAMC,YAA8D,CAAA;AAEpE,IAAMC,OAAO,MACXC,UAAUD,KAAK;EACbE,KAAKJ;EACLK,MAAM;EACNC,OAAOH,UAAUI,gBAAgB;IAAEN;IAAWK,OAAO,CAAA;EAAG,CAAA;EACxDE,cAAcC,SAASP,KAAK;IAC1BQ,QAAQC;;;EAGV,CAAA;AACF,CAAA;AAEF,IAAMC,YAAiD;EACrDR,KAAKJ;EACLC;EACAC;AACF;AAEA,IAAA,2BAAeU;",
|
|
6
|
+
"names": ["Blueprint", "Template", "trim", "BLUEPRINT_KEY", "functions", "make", "Blueprint", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim", "blueprint"]
|
|
7
|
+
}
|
|
@@ -1,103 +1,100 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
CreateKanbanSchema,
|
|
4
|
-
|
|
4
|
+
Kanban_exports,
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4AWDHQVY.mjs";
|
|
7
|
+
import "./chunk-HSLMI22Q.mjs";
|
|
7
8
|
|
|
8
9
|
// src/KanbanPlugin.tsx
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { Kanban as Kanban2 } from "@dxos/react-ui-kanban/types";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import { Plugin } from "@dxos/app-framework";
|
|
12
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
13
|
+
import { Type as Type2 } from "@dxos/echo";
|
|
14
|
+
import { ViewModel } from "@dxos/schema";
|
|
15
15
|
|
|
16
|
-
// src/capabilities/index.ts
|
|
17
|
-
import {
|
|
18
|
-
var BlueprintDefinition = lazy(() => import("./blueprint-definition-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
// src/capabilities/blueprint-definition/index.ts
|
|
17
|
+
import { Capability } from "@dxos/app-framework";
|
|
18
|
+
var BlueprintDefinition = Capability.lazy("BlueprintDefinition", () => import("./blueprint-definition-NARBX32U.mjs"));
|
|
19
|
+
|
|
20
|
+
// src/capabilities/operation-resolver/index.ts
|
|
21
|
+
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
22
|
+
var OperationResolver = Capability2.lazy("OperationResolver", () => import("./operation-resolver-UEQ64LCN.mjs"));
|
|
23
|
+
|
|
24
|
+
// src/capabilities/react-surface/index.ts
|
|
25
|
+
import { Capability as Capability3 } from "@dxos/app-framework";
|
|
26
|
+
var ReactSurface = Capability3.lazy("ReactSurface", () => import("./react-surface-AITKFRBE.mjs"));
|
|
21
27
|
|
|
22
28
|
// src/translations.ts
|
|
23
|
-
import {
|
|
29
|
+
import { Type } from "@dxos/echo";
|
|
24
30
|
var translations = [
|
|
25
31
|
{
|
|
26
32
|
"en-US": {
|
|
27
|
-
[
|
|
33
|
+
[Type.getTypename(Kanban_exports.Kanban)]: {
|
|
28
34
|
"typename label": "Kanban",
|
|
29
35
|
"typename label_zero": "Kanbans",
|
|
30
36
|
"typename label_one": "Kanban",
|
|
31
37
|
"typename label_other": "Kanbans",
|
|
32
|
-
"object name placeholder": "New kanban"
|
|
38
|
+
"object name placeholder": "New kanban",
|
|
39
|
+
"rename object label": "Rename kanban",
|
|
40
|
+
"delete object label": "Delete kanban",
|
|
41
|
+
"object deleted label": "Kanban deleted"
|
|
33
42
|
},
|
|
34
43
|
[meta.id]: {
|
|
44
|
+
"action menu label": "Actions",
|
|
35
45
|
"plugin name": "Kanban",
|
|
36
46
|
"kanban title label": "Title",
|
|
37
47
|
"column title label": "Column title",
|
|
38
48
|
"column title placeholder": "New column",
|
|
39
|
-
"item title label": "Item title",
|
|
40
|
-
"item title placeholder": "New item",
|
|
41
49
|
"add column label": "Add column",
|
|
42
|
-
"add
|
|
50
|
+
"add card label": "Add card",
|
|
51
|
+
"new column name label": "New column name",
|
|
52
|
+
"remove card label": "Remove card",
|
|
53
|
+
"remove empty column label": "Remove empty column",
|
|
54
|
+
"column drag handle label": "Drag to rearrange",
|
|
43
55
|
"delete column label": "Delete column",
|
|
44
|
-
"delete item label": "Delete card",
|
|
45
56
|
"card field deleted label": "Card field deleted",
|
|
46
|
-
"card deleted label": "Card deleted"
|
|
57
|
+
"card deleted label": "Card deleted",
|
|
58
|
+
"select pivot placeholder": "Select a pivot column in board settings to display columns."
|
|
47
59
|
}
|
|
48
60
|
}
|
|
49
61
|
}
|
|
50
62
|
];
|
|
51
63
|
|
|
52
64
|
// src/KanbanPlugin.tsx
|
|
53
|
-
var KanbanPlugin =
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
defineModule({
|
|
73
|
-
id: `${meta.id}/module/object-form`,
|
|
74
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
75
|
-
activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
|
|
76
|
-
objectSchema: Kanban2.Kanban,
|
|
77
|
-
formSchema: CreateKanbanSchema,
|
|
78
|
-
hidden: true,
|
|
79
|
-
getIntent: (props, options) => createIntent(KanbanAction.Create, {
|
|
80
|
-
...props,
|
|
81
|
-
space: options.space
|
|
65
|
+
var KanbanPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
|
|
66
|
+
activate: BlueprintDefinition
|
|
67
|
+
}), AppPlugin.addMetadataModule({
|
|
68
|
+
metadata: {
|
|
69
|
+
id: Type2.getTypename(Kanban_exports.Kanban),
|
|
70
|
+
metadata: {
|
|
71
|
+
icon: "ph--kanban--regular",
|
|
72
|
+
iconHue: "green",
|
|
73
|
+
inputSchema: CreateKanbanSchema,
|
|
74
|
+
createObject: (props, { db }) => Effect.promise(async () => {
|
|
75
|
+
const { view } = await ViewModel.makeFromDatabase({
|
|
76
|
+
db,
|
|
77
|
+
typename: props.typename,
|
|
78
|
+
pivotFieldName: props.initialPivotColumn
|
|
79
|
+
});
|
|
80
|
+
return Kanban_exports.make({
|
|
81
|
+
name: props.name,
|
|
82
|
+
view
|
|
83
|
+
});
|
|
82
84
|
})
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
id: `${meta.id}/module/blueprint`,
|
|
97
|
-
activatesOn: Events.SetupArtifactDefinition,
|
|
98
|
-
activate: BlueprintDefinition
|
|
99
|
-
})
|
|
100
|
-
]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}), AppPlugin.addOperationResolverModule({
|
|
88
|
+
activate: OperationResolver
|
|
89
|
+
}), AppPlugin.addSchemaModule({
|
|
90
|
+
schema: [
|
|
91
|
+
Kanban_exports.Kanban
|
|
92
|
+
]
|
|
93
|
+
}), AppPlugin.addSurfaceModule({
|
|
94
|
+
activate: ReactSurface
|
|
95
|
+
}), AppPlugin.addTranslationsModule({
|
|
96
|
+
translations
|
|
97
|
+
}), Plugin.make);
|
|
101
98
|
export {
|
|
102
99
|
KanbanPlugin,
|
|
103
100
|
meta
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Type } from '@dxos/echo';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { ViewModel } from '@dxos/schema';\n\nimport { BlueprintDefinition, OperationResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { CreateKanbanSchema, Kanban } from './types';\n\nexport const KanbanPlugin = Plugin.define(meta).pipe(\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: {\n id: Type.getTypename(Kanban.Kanban),\n metadata: {\n icon: 'ph--kanban--regular',\n iconHue: 'green',\n inputSchema: CreateKanbanSchema,\n createObject: ((props, { db }) =>\n Effect.promise(async () => {\n const { view } = await ViewModel.makeFromDatabase({\n db,\n typename: props.typename,\n pivotFieldName: props.initialPivotColumn,\n });\n return Kanban.make({ name: props.name, view });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addSchemaModule({ schema: [Kanban.Kanban] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Kanban } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Kanban.Kanban)]: {\n 'typename label': 'Kanban',\n 'typename label_zero': 'Kanbans',\n 'typename label_one': 'Kanban',\n 'typename label_other': 'Kanbans',\n 'object name placeholder': 'New kanban',\n 'rename object label': 'Rename kanban',\n 'delete object label': 'Delete kanban',\n 'object deleted label': 'Kanban deleted',\n },\n [meta.id]: {\n 'action menu label': 'Actions',\n 'plugin name': 'Kanban',\n 'kanban title label': 'Title',\n 'column title label': 'Column title',\n 'column title placeholder': 'New column',\n 'add column label': 'Add column',\n 'add card label': 'Add card',\n 'new column name label': 'New column name',\n 'remove card label': 'Remove card',\n 'remove empty column label': 'Remove empty column',\n 'column drag handle label': 'Drag to rearrange',\n 'delete column label': 'Delete column',\n 'card field deleted label': 'Card field deleted',\n 'card deleted label': 'Card deleted',\n 'select pivot placeholder': 'Select a pivot column in board settings to display columns.',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,QAAAA,aAAY;AAErB,SAASC,iBAAiB;;;ACN1B,SAASC,kBAAkB;AAEpB,IAAMC,sBAAsBC,WAAWC,KAAK,uBAAuB,MAAM,OAAO,qCAAA,CAAA;;;ACFvF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,oBAAoBC,YAAWC,KAAK,qBAAqB,MAAM,OAAO,mCAAA,CAAA;;;ACFnF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACFzE,SAASC,YAAY;AAMd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,YAAYC,eAAOA,MAAM,CAAA,GAAI;QACjC,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,qBAAqB;QACrB,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,kBAAkB;QAClB,yBAAyB;QACzB,qBAAqB;QACrB,6BAA6B;QAC7B,4BAA4B;QAC5B,uBAAuB;QACvB,4BAA4B;QAC5B,sBAAsB;QACtB,4BAA4B;MAC9B;IACF;EACF;;;;AJxBK,IAAMC,eAAeC,OAAOC,OAAOC,IAAAA,EAAMC,KAC9CC,UAAUC,6BAA6B;EAAEC,UAAUC;AAAoB,CAAA,GACvEH,UAAUI,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,MAAKC,YAAYC,eAAOA,MAAM;IAClCJ,UAAU;MACRK,MAAM;MACNC,SAAS;MACTC,aAAaC;MACbC,cAAe,CAACC,OAAO,EAAEC,GAAE,MAClBC,eAAQ,YAAA;AACb,cAAM,EAAEC,KAAI,IAAK,MAAMC,UAAUC,iBAAiB;UAChDJ;UACAK,UAAUN,MAAMM;UAChBC,gBAAgBP,MAAMQ;QACxB,CAAA;AACA,eAAOd,eAAOe,KAAK;UAAEC,MAAMV,MAAMU;UAAMP;QAAK,CAAA;MAC9C,CAAA;IACJ;EACF;AACF,CAAA,GACAlB,UAAU0B,2BAA2B;EAAExB,UAAUyB;AAAkB,CAAA,GACnE3B,UAAU4B,gBAAgB;EAAEC,QAAQ;IAACpB,eAAOA;;AAAQ,CAAA,GACpDT,UAAU8B,iBAAiB;EAAE5B,UAAU6B;AAAa,CAAA,GACpD/B,UAAUgC,sBAAsB;EAAEC;AAAa,CAAA,GAC/CrC,OAAO4B,IAAI;",
|
|
6
|
+
"names": ["Effect", "Plugin", "AppPlugin", "Type", "ViewModel", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Type", "translations", "Type", "getTypename", "Kanban", "meta", "id", "KanbanPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addBlueprintDefinitionModule", "activate", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Type", "getTypename", "Kanban", "icon", "iconHue", "inputSchema", "CreateKanbanSchema", "createObject", "props", "db", "promise", "view", "ViewModel", "makeFromDatabase", "typename", "pivotFieldName", "initialPivotColumn", "make", "name", "addOperationResolverModule", "OperationResolver", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/meta.ts":{"bytes":1865,"imports":[],"format":"esm"},"src/capabilities/blueprint-definition.ts":{"bytes":3077,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/schema.ts":{"bytes":8595,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/index.ts":{"bytes":501,"imports":[{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":10476,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/KanbanContainer.tsx":{"bytes":12503,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","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/components/KanbanViewEditor.tsx":{"bytes":8682,"imports":[{"path":"@preact-signals/safe-react/tracking","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","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/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/components/index.ts":{"bytes":599,"imports":[{"path":"src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":12817,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","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/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":1323,"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/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":3589,"imports":[{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/KanbanPlugin.tsx":{"bytes":8357,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6251},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-VDWYSHP4.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/blueprint-definition-42P47FUY.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/intent-resolver-CKDNVLND.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/react-surface-RMRLHCOY.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true}],"exports":["KanbanPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/KanbanPlugin.tsx":{"bytesInOutput":1804},"src/capabilities/index.ts":{"bytesInOutput":275},"src/translations.ts":{"bytesInOutput":917}},"bytes":3347},"dist/lib/node-esm/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/types/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-VDWYSHP4.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","KanbanAction","PivotColumnAnnotationId"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":308},"dist/lib/node-esm/blueprint-definition-42P47FUY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1614},"dist/lib/node-esm/blueprint-definition-42P47FUY.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/blueprint-definition.ts","inputs":{"src/capabilities/blueprint-definition.ts":{"bytesInOutput":710}},"bytes":960},"dist/lib/node-esm/intent-resolver-CKDNVLND.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4801},"dist/lib/node-esm/intent-resolver-CKDNVLND.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-VDWYSHP4.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":2750}},"bytes":3048},"dist/lib/node-esm/react-surface-RMRLHCOY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17563},"dist/lib/node-esm/react-surface-RMRLHCOY.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-VDWYSHP4.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","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/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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","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/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":3007},"src/components/KanbanContainer.tsx":{"bytesInOutput":3210},"src/components/index.ts":{"bytesInOutput":0},"src/components/KanbanViewEditor.tsx":{"bytesInOutput":2409}},"bytes":9064},"dist/lib/node-esm/chunk-VDWYSHP4.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4947},"dist/lib/node-esm/chunk-VDWYSHP4.mjs":{"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["CreateKanbanSchema","KanbanAction","PivotColumnAnnotationId","meta"],"inputs":{"src/types/schema.ts":{"bytesInOutput":1870},"src/meta.ts":{"bytesInOutput":482},"src/types/index.ts":{"bytesInOutput":0}},"bytes":2637}}}
|
|
1
|
+
{"inputs":{"src/meta.ts":{"bytes":2135,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/blueprints/kanban-blueprint.ts":{"bytes":2715,"imports":[{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/blueprints/index.ts":{"bytes":617,"imports":[{"path":"src/blueprints/kanban-blueprint.ts","kind":"import-statement","original":"./kanban-blueprint"}],"format":"esm"},"src/capabilities/blueprint-definition/blueprint-definition.ts":{"bytes":1979,"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":"src/blueprints/index.ts","kind":"import-statement","original":"../../blueprints"}],"format":"esm"},"src/capabilities/blueprint-definition/index.ts":{"bytes":978,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/blueprint-definition/blueprint-definition.ts","kind":"dynamic-import","original":"./blueprint-definition"}],"format":"esm"},"src/types/constants.ts":{"bytes":965,"imports":[],"format":"esm"},"src/types/Kanban.ts":{"bytes":6712,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","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/schema.ts":{"bytes":14109,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/index.ts":{"bytes":730,"imports":[{"path":"src/types/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/types/Kanban.ts","kind":"import-statement","original":"./Kanban"},{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/capabilities/operation-resolver/operation-resolver.ts":{"bytes":17958,"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/invariant","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"src/capabilities/operation-resolver/index.ts":{"bytes":962,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/operation-resolver/operation-resolver.ts","kind":"dynamic-import","original":"./operation-resolver"}],"format":"esm"},"src/hooks/useEchoChangeCallback.ts":{"bytes":3197,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/util/arrangement.ts":{"bytes":18136,"imports":[{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/util/index.ts":{"bytes":473,"imports":[{"path":"src/util/arrangement.ts","kind":"import-statement","original":"./arrangement"}],"format":"esm"},"src/hooks/useKanbanBoardModel.ts":{"bytes":17496,"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":12726,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/hooks/useKanbanItemEventHandler.ts":{"bytes":17268,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/hooks/useProjectionModel.ts":{"bytes":6381,"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":993,"imports":[{"path":"src/hooks/useEchoChangeCallback.ts","kind":"import-statement","original":"./useEchoChangeCallback"},{"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/components/KanbanBoard/KanbanCard.tsx":{"bytes":10571,"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":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/components/KanbanBoard/KanbanBoard.tsx","kind":"import-statement","original":"./KanbanBoard"}],"format":"esm"},"src/components/KanbanBoard/KanbanColumn.tsx":{"bytes":7580,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"},{"path":"src/components/KanbanBoard/KanbanBoard.tsx","kind":"import-statement","original":"./KanbanBoard"}],"format":"esm"},"src/components/KanbanBoard/KanbanBoard.tsx":{"bytes":16663,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","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":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"},{"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":491,"imports":[{"path":"src/components/KanbanBoard/KanbanBoard.tsx","kind":"import-statement","original":"./KanbanBoard"}],"format":"esm"},"src/components/index.ts":{"bytes":479,"imports":[{"path":"src/components/KanbanBoard/index.ts","kind":"import-statement","original":"./KanbanBoard"}],"format":"esm"},"src/containers/KanbanContainer/KanbanContainer.tsx":{"bytes":10757,"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":"src/components/index.ts","kind":"import-statement","original":"../../components"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"src/containers/KanbanContainer/index.ts":{"bytes":689,"imports":[{"path":"src/containers/KanbanContainer/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"}],"format":"esm"},"src/containers/KanbanViewEditor/KanbanViewEditor.tsx":{"bytes":8249,"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":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"src/containers/KanbanViewEditor/index.ts":{"bytes":701,"imports":[{"path":"src/containers/KanbanViewEditor/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"src/containers/index.ts":{"bytes":1108,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/containers/KanbanContainer/index.ts","kind":"dynamic-import","original":"./KanbanContainer"},{"path":"src/containers/KanbanViewEditor/index.ts","kind":"dynamic-import","original":"./KanbanViewEditor"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":11824,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"src/containers/index.ts","kind":"import-statement","original":"../../containers"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":910,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":717,"imports":[{"path":"src/capabilities/blueprint-definition/index.ts","kind":"import-statement","original":"./blueprint-definition"},{"path":"src/capabilities/operation-resolver/index.ts","kind":"import-statement","original":"./operation-resolver"},{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":4723,"imports":[{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/KanbanPlugin.tsx":{"bytes":6032,"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":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6314},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.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":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/blueprint-definition-NARBX32U.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs","kind":"dynamic-import"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/react-surface-AITKFRBE.mjs","kind":"dynamic-import"},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["KanbanPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/KanbanPlugin.tsx":{"bytesInOutput":1177},"src/capabilities/blueprint-definition/index.ts":{"bytesInOutput":169},"src/capabilities/index.ts":{"bytesInOutput":0},"src/capabilities/operation-resolver/index.ts":{"bytesInOutput":179},"src/capabilities/react-surface/index.ts":{"bytesInOutput":164},"src/translations.ts":{"bytesInOutput":1281}},"bytes":3468},"dist/lib/node-esm/blueprints/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/blueprints/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-X3UJUQIV.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.mjs","kind":"import-statement"}],"exports":["KanbanBlueprint"],"entryPoint":"src/blueprints/index.ts","inputs":{},"bytes":285},"dist/lib/node-esm/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/types/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","Kanban","KanbanOperation","PivotColumnAnnotationId","SettingsSchema","UNCATEGORIZED_ATTRIBUTES","UNCATEGORIZED_VALUE"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":530},"dist/lib/node-esm/blueprint-definition-NARBX32U.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1039},"dist/lib/node-esm/blueprint-definition-NARBX32U.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-X3UJUQIV.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.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}],"exports":["default"],"entryPoint":"src/capabilities/blueprint-definition/blueprint-definition.ts","inputs":{"src/capabilities/blueprint-definition/blueprint-definition.ts":{"bytesInOutput":364}},"bytes":733},"dist/lib/node-esm/chunk-X3UJUQIV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1439},"dist/lib/node-esm/chunk-X3UJUQIV.mjs":{"imports":[{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["kanban_blueprint_default"],"inputs":{"src/blueprints/kanban-blueprint.ts":{"bytesInOutput":576},"src/blueprints/index.ts":{"bytesInOutput":0}},"bytes":791},"dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7989},"dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.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/invariant","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/operation-resolver/operation-resolver.ts","inputs":{"src/capabilities/operation-resolver/operation-resolver.ts":{"bytesInOutput":4456}},"bytes":4816},"dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24696},"dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-CSL3HF2X.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.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":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","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":"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":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/KanbanContainer/index.ts","inputs":{"src/containers/KanbanContainer/KanbanContainer.tsx":{"bytesInOutput":2574},"src/components/KanbanBoard/KanbanBoard.tsx":{"bytesInOutput":3457},"src/components/KanbanBoard/KanbanCard.tsx":{"bytesInOutput":2576},"src/components/KanbanBoard/KanbanColumn.tsx":{"bytesInOutput":1670},"src/components/KanbanBoard/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0},"src/containers/KanbanContainer/index.ts":{"bytesInOutput":47}},"bytes":11178},"dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4686},"dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-CSL3HF2X.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.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}],"exports":["default"],"entryPoint":"src/containers/KanbanViewEditor/index.ts","inputs":{"src/containers/KanbanViewEditor/KanbanViewEditor.tsx":{"bytesInOutput":1870},"src/containers/KanbanViewEditor/index.ts":{"bytesInOutput":49}},"bytes":2367},"dist/lib/node-esm/chunk-CSL3HF2X.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":36565},"dist/lib/node-esm/chunk-CSL3HF2X.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","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},{"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":"react","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["useEchoChangeCallback","useKanbanBoardModel","useKanbanColumnEventHandler","useKanbanItemEventHandler","useProjectionModel"],"inputs":{"src/hooks/useEchoChangeCallback.ts":{"bytesInOutput":424},"src/hooks/useProjectionModel.ts":{"bytesInOutput":1400},"src/hooks/index.ts":{"bytesInOutput":0},"src/hooks/useKanbanBoardModel.ts":{"bytesInOutput":3270},"src/util/arrangement.ts":{"bytesInOutput":1967},"src/util/index.ts":{"bytesInOutput":0},"src/hooks/useKanbanColumnEventHandler.ts":{"bytesInOutput":2290},"src/hooks/useKanbanItemEventHandler.ts":{"bytesInOutput":3428}},"bytes":13384},"dist/lib/node-esm/react-surface-AITKFRBE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6457},"dist/lib/node-esm/react-surface-AITKFRBE.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-4AWDHQVY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-HSLMI22Q.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs","kind":"dynamic-import"}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":2604},"src/containers/index.ts":{"bytesInOutput":184}},"bytes":3236},"dist/lib/node-esm/chunk-4AWDHQVY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11556},"dist/lib/node-esm/chunk-4AWDHQVY.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-HSLMI22Q.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","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/echo","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["CreateKanbanSchema","KanbanOperation","Kanban_exports","PivotColumnAnnotationId","SettingsSchema","UNCATEGORIZED_ATTRIBUTES","UNCATEGORIZED_VALUE","meta"],"inputs":{"src/types/constants.ts":{"bytesInOutput":128},"src/types/index.ts":{"bytesInOutput":0},"src/types/Kanban.ts":{"bytesInOutput":1454},"src/types/schema.ts":{"bytesInOutput":3430},"src/meta.ts":{"bytesInOutput":554}},"bytes":6043},"dist/lib/node-esm/chunk-HSLMI22Q.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/chunk-HSLMI22Q.mjs":{"imports":[],"exports":["__export"],"inputs":{},"bytes":327}}}
|