@ankhorage/studio 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +2 -2
  2. package/dist/canvasDragModel.d.ts +24 -0
  3. package/dist/canvasDragModel.d.ts.map +1 -1
  4. package/dist/canvasDragModel.js +58 -0
  5. package/dist/canvasDragModel.js.map +1 -1
  6. package/dist/canvasDropZones.d.ts +2 -2
  7. package/dist/canvasDropZones.d.ts.map +1 -1
  8. package/dist/canvasDropZones.js +20 -4
  9. package/dist/canvasDropZones.js.map +1 -1
  10. package/dist/contractGuards.d.ts.map +1 -1
  11. package/dist/contractGuards.js +4 -2
  12. package/dist/contractGuards.js.map +1 -1
  13. package/dist/core/StudioProvider.d.ts +3 -2
  14. package/dist/core/StudioProvider.d.ts.map +1 -1
  15. package/dist/core/StudioProvider.js +150 -17
  16. package/dist/core/StudioProvider.js.map +1 -1
  17. package/dist/host/layout/auth/resolveAuthLayoutPlan.js +2 -2
  18. package/dist/host/layout/auth/resolveAuthLayoutPlan.js.map +1 -1
  19. package/dist/host/layout/layoutGenerator.d.ts.map +1 -1
  20. package/dist/host/layout/layoutGenerator.js +5 -3
  21. package/dist/host/layout/layoutGenerator.js.map +1 -1
  22. package/dist/host/layout/templates/navigation.js +4 -10
  23. package/dist/host/layout/templates/navigation.js.map +1 -1
  24. package/dist/host/layout/templates/rootLayout.d.ts.map +1 -1
  25. package/dist/host/layout/templates/rootLayout.js +25 -7
  26. package/dist/host/layout/templates/rootLayout.js.map +1 -1
  27. package/dist/host/orchestrator/templates.d.ts.map +1 -1
  28. package/dist/host/orchestrator/templates.js +1 -11
  29. package/dist/host/orchestrator/templates.js.map +1 -1
  30. package/dist/host/templateRegistry/index.d.ts.map +1 -1
  31. package/dist/host/templateRegistry/index.js +2 -17
  32. package/dist/host/templateRegistry/index.js.map +1 -1
  33. package/dist/index.d.ts +9 -15
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +83 -59
  36. package/dist/index.js.map +1 -1
  37. package/dist/manifestNavigatorPreviewModel.js +1 -1
  38. package/dist/manifestNavigatorPreviewModel.js.map +1 -1
  39. package/dist/manifestState.d.ts +59 -3
  40. package/dist/manifestState.d.ts.map +1 -1
  41. package/dist/manifestState.js +364 -229
  42. package/dist/manifestState.js.map +1 -1
  43. package/dist/routeUtils.d.ts +1 -2
  44. package/dist/routeUtils.d.ts.map +1 -1
  45. package/dist/routeUtils.js +6 -44
  46. package/dist/routeUtils.js.map +1 -1
  47. package/dist/runtime/runtimeNodeMeasurement.d.ts +6 -3
  48. package/dist/runtime/runtimeNodeMeasurement.d.ts.map +1 -1
  49. package/dist/runtime/runtimeNodeMeasurement.js +26 -11
  50. package/dist/runtime/runtimeNodeMeasurement.js.map +1 -1
  51. package/dist/runtime/stationarySelection.d.ts +10 -0
  52. package/dist/runtime/stationarySelection.d.ts.map +1 -1
  53. package/dist/runtime/stationarySelection.js +69 -20
  54. package/dist/runtime/stationarySelection.js.map +1 -1
  55. package/dist/studioAdminRouteModel.d.ts +7 -1
  56. package/dist/studioAdminRouteModel.d.ts.map +1 -1
  57. package/dist/studioAdminRouteModel.js +54 -0
  58. package/dist/studioAdminRouteModel.js.map +1 -1
  59. package/dist/ui/StudioDeleteDialog.d.ts +9 -0
  60. package/dist/ui/StudioDeleteDialog.d.ts.map +1 -0
  61. package/dist/ui/StudioDeleteDialog.js +7 -0
  62. package/dist/ui/StudioDeleteDialog.js.map +1 -0
  63. package/dist/ui/StudioInsertDialog.d.ts +14 -0
  64. package/dist/ui/StudioInsertDialog.d.ts.map +1 -0
  65. package/dist/ui/StudioInsertDialog.js +28 -0
  66. package/dist/ui/StudioInsertDialog.js.map +1 -0
  67. package/dist/ui/admin/AnkhAdminPage.d.ts.map +1 -1
  68. package/dist/ui/admin/AnkhAdminPage.js +5 -1
  69. package/dist/ui/admin/AnkhAdminPage.js.map +1 -1
  70. package/dist/ui/admin/AnkhAdminShell.d.ts.map +1 -1
  71. package/dist/ui/admin/AnkhAdminShell.js +5 -2
  72. package/dist/ui/admin/AnkhAdminShell.js.map +1 -1
  73. package/dist/ui/admin/pages/ScreenDetailAdminPage.d.ts +6 -0
  74. package/dist/ui/admin/pages/ScreenDetailAdminPage.d.ts.map +1 -0
  75. package/dist/ui/admin/pages/ScreenDetailAdminPage.js +86 -0
  76. package/dist/ui/admin/pages/ScreenDetailAdminPage.js.map +1 -0
  77. package/dist/ui/admin/pages/ScreensAdminPage.d.ts +3 -0
  78. package/dist/ui/admin/pages/ScreensAdminPage.d.ts.map +1 -0
  79. package/dist/ui/admin/pages/ScreensAdminPage.js +99 -0
  80. package/dist/ui/admin/pages/ScreensAdminPage.js.map +1 -0
  81. package/dist/ui/admin/pages/screens/screensAdminActions.d.ts +28 -0
  82. package/dist/ui/admin/pages/screens/screensAdminActions.d.ts.map +1 -0
  83. package/dist/ui/admin/pages/screens/screensAdminActions.js +22 -0
  84. package/dist/ui/admin/pages/screens/screensAdminActions.js.map +1 -0
  85. package/dist/ui/canvas/StudioCanvasDndOverlay.d.ts +15 -0
  86. package/dist/ui/canvas/StudioCanvasDndOverlay.d.ts.map +1 -0
  87. package/dist/ui/canvas/StudioCanvasDndOverlay.js +128 -0
  88. package/dist/ui/canvas/StudioCanvasDndOverlay.js.map +1 -0
  89. package/dist/ui/canvas/canvasDndInteraction.d.ts +20 -0
  90. package/dist/ui/canvas/canvasDndInteraction.d.ts.map +1 -0
  91. package/dist/ui/canvas/canvasDndInteraction.js +32 -0
  92. package/dist/ui/canvas/canvasDndInteraction.js.map +1 -0
  93. package/dist/ui/studioAppBarModel.d.ts +4 -1
  94. package/dist/ui/studioAppBarModel.d.ts.map +1 -1
  95. package/dist/ui/studioAppBarModel.js +6 -0
  96. package/dist/ui/studioAppBarModel.js.map +1 -1
  97. package/dist/ui/useStudioAppBarAugmentation.d.ts +1 -0
  98. package/dist/ui/useStudioAppBarAugmentation.d.ts.map +1 -1
  99. package/dist/ui/useStudioAppBarAugmentation.js +86 -15
  100. package/dist/ui/useStudioAppBarAugmentation.js.map +1 -1
  101. package/dist/utils/treeUtils.d.ts +2 -2
  102. package/dist/utils/treeUtils.d.ts.map +1 -1
  103. package/dist/utils/treeUtils.js +2 -2
  104. package/dist/utils/treeUtils.js.map +1 -1
  105. package/package.json +3 -15
  106. package/dist/dnd/index.d.ts +0 -3
  107. package/dist/dnd/index.d.ts.map +0 -1
  108. package/dist/dnd/index.js +0 -3
  109. package/dist/dnd/index.js.map +0 -1
  110. package/dist/dnd/primitives.d.ts +0 -2
  111. package/dist/dnd/primitives.d.ts.map +0 -1
  112. package/dist/dnd/primitives.js +0 -2
  113. package/dist/dnd/primitives.js.map +0 -1
  114. package/dist/dnd/state.d.ts +0 -6
  115. package/dist/dnd/state.d.ts.map +0 -1
  116. package/dist/dnd/state.js +0 -5
  117. package/dist/dnd/state.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ import { isStudioCanvasDragPayload } from '../../canvasDragModel';
2
+ export function createCanvasDraggableSessionKey(nodeId, revision) {
3
+ return `${nodeId}:${revision}`;
4
+ }
5
+ export function sortCanvasDropTargetsBySpecificity(targets) {
6
+ return [...targets].sort((left, right) => left.rect.width * left.rect.height - right.rect.width * right.rect.height);
7
+ }
8
+ export function resetCanvasDragSession(callbacks) {
9
+ callbacks.setActiveDropZoneId(null);
10
+ callbacks.setActiveDragNodeId(null);
11
+ callbacks.restartDraggable();
12
+ }
13
+ export function commitCanvasDrop(payload, zone, moveNodeToPlacement) {
14
+ if (zone.status !== 'valid' || !isStudioCanvasDragPayload(payload)) {
15
+ return false;
16
+ }
17
+ return moveNodeToPlacement(payload.nodeId, zone.placement);
18
+ }
19
+ export function completeCanvasDropAfterAdapter(payload, zone, moveNodeToPlacement, resetDrag) {
20
+ return Promise.resolve().then(() => {
21
+ try {
22
+ return commitCanvasDrop(payload, zone, moveNodeToPlacement);
23
+ }
24
+ finally {
25
+ resetDrag();
26
+ }
27
+ });
28
+ }
29
+ export function activateCanvasDrag(payload, callbacks) {
30
+ callbacks.setActiveDragNodeId(payload.nodeId);
31
+ }
32
+ //# sourceMappingURL=canvasDndInteraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasDndInteraction.js","sourceRoot":"","sources":["../../../src/ui/canvas/canvasDndInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAgC,MAAM,uBAAuB,CAAC;AAUhG,MAAM,UAAU,+BAA+B,CAAC,MAAc,EAAE,QAAgB;IAC9E,OAAO,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kCAAkC,CAEhD,OAAqB;IACrB,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAC3F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAqC;IAC1E,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,SAAS,CAAC,gBAAgB,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,IAA8B,EAC9B,mBAA0E;IAE1E,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAAgB,EAChB,IAA8B,EAC9B,mBAA0E,EAC1E,SAAqB;IAErB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACjC,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC9D,CAAC;gBAAS,CAAC;YACT,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAgC,EAChC,SAAkE;IAElE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
@@ -1,10 +1,13 @@
1
1
  export interface StudioAppBarContextAction {
2
- readonly id: 'properties' | 'bindings' | 'selectParent' | 'clearSelection';
2
+ readonly id: 'properties' | 'bindings' | 'insert' | 'delete' | 'selectParent' | 'clearSelection';
3
3
  readonly label: string;
4
4
  }
5
5
  export interface ResolveStudioAppBarContextActionsArgs {
6
6
  readonly selectedNodeId: string | null;
7
7
  readonly parentNodeId: string | null;
8
+ readonly canInsert: boolean;
9
+ readonly canInsertInside: boolean;
10
+ readonly canDelete: boolean;
8
11
  }
9
12
  export declare function resolveStudioAppBarContextActions(args: ResolveStudioAppBarContextActionsArgs): StudioAppBarContextAction[];
10
13
  //# sourceMappingURL=studioAppBarModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"studioAppBarModel.d.ts","sourceRoot":"","sources":["../../src/ui/studioAppBarModel.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,gBAAgB,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,qCAAqC,GAC1C,yBAAyB,EAAE,CAgB7B"}
1
+ {"version":3,"file":"studioAppBarModel.d.ts","sourceRoot":"","sources":["../../src/ui/studioAppBarModel.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAAC;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,qCAAqC,GAC1C,yBAAyB,EAAE,CAwB7B"}
@@ -6,6 +6,12 @@ export function resolveStudioAppBarContextActions(args) {
6
6
  { id: 'properties', label: 'Properties' },
7
7
  { id: 'bindings', label: 'Bindings' },
8
8
  ];
9
+ if (args.canInsert) {
10
+ actions.push({ id: 'insert', label: args.canInsertInside ? 'Add child' : 'Insert' });
11
+ }
12
+ if (args.canDelete) {
13
+ actions.push({ id: 'delete', label: 'Delete' });
14
+ }
9
15
  if (args.parentNodeId) {
10
16
  actions.push({ id: 'selectParent', label: 'Select parent' });
11
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"studioAppBarModel.js","sourceRoot":"","sources":["../../src/ui/studioAppBarModel.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,iCAAiC,CAC/C,IAA2C;IAE3C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAgC;QAC3C,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;QACzC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KACtC,CAAC;IAEF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"studioAppBarModel.js","sourceRoot":"","sources":["../../src/ui/studioAppBarModel.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,iCAAiC,CAC/C,IAA2C;IAE3C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAgC;QAC3C,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;QACzC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KACtC,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -3,6 +3,7 @@ export interface StudioAppBarAugmentation {
3
3
  appMode?: unknown;
4
4
  actions?: React.ReactNode;
5
5
  overflow?: unknown;
6
+ overlays?: React.ReactNode;
6
7
  }
7
8
  export declare function useStudioAppBarAugmentation(): StudioAppBarAugmentation;
8
9
  //# sourceMappingURL=useStudioAppBarAugmentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStudioAppBarAugmentation.d.ts","sourceRoot":"","sources":["../../src/ui/useStudioAppBarAugmentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAa3C,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAuFtE"}
1
+ {"version":3,"file":"useStudioAppBarAugmentation.d.ts","sourceRoot":"","sources":["../../src/ui/useStudioAppBarAugmentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAsB3C,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAWD,wBAAgB,2BAA2B,IAAI,wBAAwB,CA4JtE"}
@@ -2,13 +2,32 @@ import { IconButton } from '@ankhorage/zora';
2
2
  import { usePathname, useRouter } from 'expo-router';
3
3
  import React, { useCallback } from 'react';
4
4
  import { useStudio } from '../core/StudioContext';
5
+ import { buildInsertCatalogEntries, findNodeById, resolveInsertCatalogEntries, } from '../index';
6
+ import { resolveNodeLabel } from '../insertModalModel';
5
7
  import { createStudioBindingsRoutePath, createStudioPropertiesRoutePath, isStudioAdminPath, resolveStudioLastNonAdminLocation, resolveStudioNavigableLocation, } from '../studioAdminRouteModel';
6
8
  import { createStudioSelectionContext } from '../studioSelectionModel';
7
9
  import { resolveStudioAppBarContextActions } from './studioAppBarModel';
10
+ import { StudioDeleteDialog } from './StudioDeleteDialog';
11
+ import { StudioInsertDialog } from './StudioInsertDialog';
12
+ function resolveContextActionIcon(id) {
13
+ if (id === 'properties')
14
+ return { name: 'options-outline' };
15
+ if (id === 'bindings')
16
+ return { name: 'git-branch-outline' };
17
+ if (id === 'insert')
18
+ return { name: 'add-outline' };
19
+ if (id === 'delete')
20
+ return { name: 'trash-outline' };
21
+ if (id === 'selectParent')
22
+ return { name: 'arrow-up-outline' };
23
+ return { name: 'close-outline' };
24
+ }
8
25
  export function useStudioAppBarAugmentation() {
9
26
  const studio = useStudio();
10
27
  const pathname = usePathname();
11
28
  const router = useRouter();
29
+ const [insertVisible, setInsertVisible] = React.useState(false);
30
+ const [deleteCandidateId, setDeleteCandidateId] = React.useState(null);
12
31
  const openAdministration = useCallback(() => {
13
32
  const appLocation = resolveStudioLastNonAdminLocation({
14
33
  pathname,
@@ -42,10 +61,51 @@ export function useStudioAppBarAugmentation() {
42
61
  return;
43
62
  studio.selectNode(selection.parentNodeId);
44
63
  }, [selection.parentNodeId, studio]);
64
+ const catalogEntries = React.useMemo(() => buildInsertCatalogEntries({ componentMeta: studio.componentMeta }), [studio.componentMeta]);
65
+ const resolvedInsertEntries = React.useMemo(() => resolveInsertCatalogEntries({
66
+ entries: catalogEntries,
67
+ root: studio.rootNode,
68
+ selectedNodeId: selection.selectedNodeId,
69
+ componentMeta: studio.componentMeta,
70
+ }), [catalogEntries, selection.selectedNodeId, studio.componentMeta, studio.rootNode]);
71
+ const enabledEntries = resolvedInsertEntries.filter((entry) => entry.status === 'enabled');
72
+ const canInsert = enabledEntries.length > 0;
73
+ const canInsertInside = enabledEntries.some((entry) => entry.placement?.kind === 'inside' && entry.placement.parentId === selection.selectedNodeId);
74
+ const canDelete = selection.selectedNodeId !== null && selection.parentNodeId !== null;
75
+ const selectedNode = studio.rootNode && selection.selectedNodeId
76
+ ? findNodeById(studio.rootNode, selection.selectedNodeId)
77
+ : null;
78
+ const deleteCandidate = studio.rootNode && deleteCandidateId ? findNodeById(studio.rootNode, deleteCandidateId) : null;
45
79
  const contextActions = resolveStudioAppBarContextActions({
46
80
  selectedNodeId: selection.selectedNodeId,
47
81
  parentNodeId: selection.parentNodeId,
82
+ canInsert,
83
+ canInsertInside,
84
+ canDelete,
48
85
  });
86
+ const openInsert = useCallback(() => setInsertVisible(true), []);
87
+ const openDelete = useCallback(() => {
88
+ if (selection.selectedNodeId)
89
+ setDeleteCandidateId(selection.selectedNodeId);
90
+ }, [selection.selectedNodeId]);
91
+ const confirmDelete = useCallback(() => {
92
+ if (deleteCandidateId)
93
+ studio.deleteNode(deleteCandidateId);
94
+ setDeleteCandidateId(null);
95
+ }, [deleteCandidateId, studio]);
96
+ const getActionHandler = useCallback((id) => {
97
+ if (id === 'properties')
98
+ return openProperties;
99
+ if (id === 'bindings')
100
+ return openBindings;
101
+ if (id === 'insert')
102
+ return openInsert;
103
+ if (id === 'delete')
104
+ return openDelete;
105
+ if (id === 'selectParent')
106
+ return selectParent;
107
+ return clearSelection;
108
+ }, [clearSelection, openBindings, openDelete, openInsert, openProperties, selectParent]);
49
109
  const actions = isStudioAdminPath(pathname)
50
110
  ? null
51
111
  : [
@@ -58,31 +118,42 @@ export function useStudioAppBarAugmentation() {
58
118
  onPress: openAdministration,
59
119
  }),
60
120
  ...contextActions.map((action) => {
61
- const handler = action.id === 'properties'
62
- ? openProperties
63
- : action.id === 'bindings'
64
- ? openBindings
65
- : action.id === 'selectParent'
66
- ? selectParent
67
- : clearSelection;
68
121
  return React.createElement(IconButton, {
69
122
  key: action.id,
70
- icon: action.id === 'properties'
71
- ? { name: 'options-outline' }
72
- : action.id === 'bindings'
73
- ? { name: 'git-branch-outline' }
74
- : action.id === 'selectParent'
75
- ? { name: 'arrow-up-outline' }
76
- : { name: 'close-outline' },
123
+ icon: resolveContextActionIcon(action.id),
77
124
  label: action.label,
78
125
  variant: 'ghost',
79
126
  color: 'neutral',
80
- onPress: handler,
127
+ onPress: getActionHandler(action.id),
81
128
  });
82
129
  }),
83
130
  ];
84
131
  return {
85
132
  actions,
133
+ overlays: isStudioAdminPath(pathname)
134
+ ? null
135
+ : React.createElement(React.Fragment, null, React.createElement(StudioInsertDialog, {
136
+ componentMeta: studio.componentMeta,
137
+ entries: resolvedInsertEntries,
138
+ findNode: (id) => studio.rootNode ? studio.findNode(studio.rootNode, id) : null,
139
+ onDismiss: () => setInsertVisible(false),
140
+ onInsert: (entry) => {
141
+ const inserted = studio.insertFromCatalogEntry(entry);
142
+ if (inserted)
143
+ setInsertVisible(false);
144
+ return inserted;
145
+ },
146
+ rootNode: studio.rootNode,
147
+ visible: insertVisible,
148
+ }), React.createElement(StudioDeleteDialog, {
149
+ label: resolveNodeLabel({
150
+ node: deleteCandidate ?? selectedNode,
151
+ componentMeta: studio.componentMeta,
152
+ }),
153
+ onCancel: () => setDeleteCandidateId(null),
154
+ onConfirm: confirmDelete,
155
+ visible: deleteCandidate !== null,
156
+ })),
86
157
  };
87
158
  }
88
159
  //# sourceMappingURL=useStudioAppBarAugmentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStudioAppBarAugmentation.js","sourceRoot":"","sources":["../../src/ui/useStudioAppBarAugmentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useStudioAppBarAugmentation.js","sourceRoot":"","sources":["../../src/ui/useStudioAppBarAugmentation.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { addNodeToTree, cloneWithNewIds, findNodeById, moveNodeInTree, removeNodeFromTree, updateNodeInTree } from '../index';
2
- export { addNodeToTree, cloneWithNewIds, findNodeById, moveNodeInTree, removeNodeFromTree, updateNodeInTree, };
1
+ import { cloneWithNewIds, findNodeById, removeNodeFromTree, updateNodeInTree } from '../index';
2
+ export { cloneWithNewIds, findNodeById, removeNodeFromTree, updateNodeInTree };
3
3
  //# sourceMappingURL=treeUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"treeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/treeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"treeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/treeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,3 +1,3 @@
1
- import { addNodeToTree, cloneWithNewIds, findNodeById, moveNodeInTree, removeNodeFromTree, updateNodeInTree, } from '../index';
2
- export { addNodeToTree, cloneWithNewIds, findNodeById, moveNodeInTree, removeNodeFromTree, updateNodeInTree, };
1
+ import { cloneWithNewIds, findNodeById, removeNodeFromTree, updateNodeInTree } from '../index';
2
+ export { cloneWithNewIds, findNodeById, removeNodeFromTree, updateNodeInTree };
3
3
  //# sourceMappingURL=treeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"treeUtils.js","sourceRoot":"","sources":["../../src/utils/treeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"treeUtils.js","sourceRoot":"","sources":["../../src/utils/treeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/studio",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "Studio authoring package for Ankhorage apps",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ankhorage/studio#readme",
@@ -40,18 +40,6 @@
40
40
  "types": "./dist/cli/index.d.ts",
41
41
  "import": "./dist/cli/index.js"
42
42
  },
43
- "./dnd": {
44
- "types": "./dist/dnd/index.d.ts",
45
- "import": "./dist/dnd/index.js"
46
- },
47
- "./dnd/primitives": {
48
- "types": "./dist/dnd/primitives.d.ts",
49
- "import": "./dist/dnd/primitives.js"
50
- },
51
- "./dnd/state": {
52
- "types": "./dist/dnd/state.d.ts",
53
- "import": "./dist/dnd/state.js"
54
- },
55
43
  "./runtime": {
56
44
  "types": "./dist/runtime/index.d.ts",
57
45
  "import": "./dist/runtime/index.js"
@@ -243,7 +231,7 @@
243
231
  ],
244
232
  "dependencies": {
245
233
  "@ankhorage/color-theory": "^0.0.8",
246
- "@ankhorage/contracts": "^4.0.2",
234
+ "@ankhorage/contracts": "^5.0.0",
247
235
  "@ankhorage/data-sources": "^1.0.1",
248
236
  "@ankhorage/expo-runtime": "^1.0.0",
249
237
  "@ankhorage/infra": "^2.0.1",
@@ -254,7 +242,7 @@
254
242
  "@ankhorage/runtime": "^1.0.0",
255
243
  "@ankhorage/supabase-auth": "^1.1.2",
256
244
  "@ankhorage/supabase-vault": "^0.2.4",
257
- "@ankhorage/templates": "^4.0.0",
245
+ "@ankhorage/templates": "^5.0.0",
258
246
  "@ankhorage/zora": "^2.9.3",
259
247
  "@ankhorage/zora-chess": "^0.1.2",
260
248
  "@ankhorage/zora-tabletop": "^0.0.5",
@@ -1,3 +0,0 @@
1
- export * from './primitives';
2
- export * from './state';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dnd/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
package/dist/dnd/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from './primitives';
2
- export * from './state';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dnd/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from '@ankhorage/react-native-reanimated-dnd-web';
2
- //# sourceMappingURL=primitives.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/dnd/primitives.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from '@ankhorage/react-native-reanimated-dnd-web';
2
- //# sourceMappingURL=primitives.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/dnd/primitives.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC"}
@@ -1,6 +0,0 @@
1
- export interface StudioDragState {
2
- readonly activeNodeId: string | null;
3
- readonly activeDropZoneId: string | null;
4
- }
5
- export declare const createIdleStudioDragState: () => StudioDragState;
6
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/dnd/state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,yBAAyB,QAAO,eAG3C,CAAC"}
package/dist/dnd/state.js DELETED
@@ -1,5 +0,0 @@
1
- export const createIdleStudioDragState = () => ({
2
- activeNodeId: null,
3
- activeDropZoneId: null,
4
- });
5
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/dnd/state.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAoB,EAAE,CAAC,CAAC;IAC/D,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC"}