@stonecrop/nuxt 0.38.1 → 0.39.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.
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stonecrop/nuxt",
3
3
  "configKey": "stonecrop",
4
- "version": "0.38.1",
4
+ "version": "0.39.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.3",
7
7
  "unbuild": "unknown"
@@ -115,7 +115,7 @@ declare const router: {
115
115
  back(): void
116
116
  forward(): void
117
117
  }
118
- declare function runAction(action: string, args?: Record<string, unknown>): Promise<{ success: boolean; data: unknown; error: string | null }>
118
+ declare function runAction(action: string, args?: Record<string, unknown>): Promise<{ success: boolean; data: unknown; error: string | null; record: Record<string, unknown> | null; droppedFields?: string[] | null }>
119
119
  declare const graphql: {
120
120
  query(query: string, variables?: Record<string, unknown>): Promise<unknown>
121
121
  }
@@ -174,5 +174,5 @@ function onRemoveRow(row) {
174
174
  </script>
175
175
 
176
176
  <style scoped>
177
- .actions-panel{padding:.5em 1em}.actions-panel :deep(.atable-row>td){border-top:1px solid var(--sc-row-border-color);padding:var(--sc-atable-row-padding) .75em;vertical-align:middle}.actions-panel :deep(input[type=text]){border:1px solid var(--sc-gray-20);border-radius:var(--sc-border-radius);font-family:inherit;font-size:inherit;padding:.25em .5em;width:100%}.actions-panel :deep(input[type=text]:focus){border-color:var(--sc-input-active-border-color);outline:none}.cell-readonly{color:var(--sc-gray-60);cursor:default}.badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.125em .5em}.badge-transition{background:var(--sc-badge-brand-bg);color:var(--sc-badge-brand-text)}.badge-command,.badge-self-transition,.badge-trigger{background:var(--sc-badge-neutral-bg);color:var(--sc-badge-neutral-text)}.actions-empty{color:var(--sc-header-text-color);font-style:italic;padding:1rem 0;text-align:center}.panel-footer{display:flex;gap:.5rem;padding:.75rem 0 .25rem}.add-row{background:var(--sc-primary-color);border:none;border-radius:var(--sc-border-radius);color:var(--sc-primary-text-color);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.4em .9em}.row-detail{gap:.75rem}.detail-field,.row-detail{display:flex;flex-direction:column}.detail-field{gap:.25rem}.detail-label{color:var(--sc-header-text-color);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.detail-value{color:var(--sc-gray-60);font-size:.8125rem}.client-handler-editor{display:flex;flex-direction:column;gap:.5rem}.handler-label{color:var(--sc-header-text-color);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.remove-row{align-self:flex-start;background:none;border:1px solid var(--sc-badge-danger-accent);border-radius:var(--sc-border-radius);color:var(--sc-badge-danger-text);cursor:pointer;font-size:.75rem;padding:.3em .75em}
177
+ .actions-panel{padding:.5em 1em}.actions-panel :deep(.atable-row>td){border-top:1px solid var(--sc-row-border-color);padding:var(--sc-atable-row-padding) .5ch;vertical-align:middle}.actions-panel :deep(input[type=text]){border:1px solid var(--sc-gray-20);border-radius:var(--sc-border-radius);box-sizing:border-box;font-family:inherit;font-size:inherit;padding:.25em .5em;width:100%}.actions-panel :deep(input[type=text]:focus){border-color:var(--sc-input-active-border-color);outline:none}.cell-readonly{color:var(--sc-gray-60);cursor:default}.badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.125em .5em}.badge-transition{background:var(--sc-badge-brand-bg);color:var(--sc-badge-brand-text)}.badge-command,.badge-self-transition,.badge-trigger{background:var(--sc-badge-neutral-bg);color:var(--sc-badge-neutral-text)}.actions-empty{color:var(--sc-header-text-color);font-style:italic;padding:1rem 0;text-align:center}.panel-footer{display:flex;gap:.5rem;padding:.75rem 0 .25rem}.add-row{background:var(--sc-primary-color);border:none;border-radius:var(--sc-border-radius);color:var(--sc-primary-text-color);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.4em .9em}.row-detail{gap:.75rem}.detail-field,.row-detail{display:flex;flex-direction:column}.detail-field{gap:.25rem}.detail-label{color:var(--sc-header-text-color);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.detail-value{color:var(--sc-gray-60);font-size:.8125rem}.client-handler-editor{display:flex;flex-direction:column;gap:.5rem}.handler-label{color:var(--sc-header-text-color);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.remove-row{align-self:flex-start;background:none;border:1px solid var(--sc-badge-danger-accent);border-radius:var(--sc-border-radius);color:var(--sc-badge-danger-text);cursor:pointer;font-size:.75rem;padding:.3em .75em}
178
178
  </style>
@@ -336,5 +336,5 @@ function bool(v) {
336
336
  </script>
337
337
 
338
338
  <style scoped>
339
- .fields-panel{box-sizing:border-box;max-width:100%;overflow-x:auto;padding:.5em 1em}.fields-panel :deep(.atable-row>td){border-top:1px solid var(--sc-row-border-color);padding:var(--sc-atable-row-padding) .75em;vertical-align:middle}.fields-panel :deep(input[type=text]),.fields-panel :deep(select){border:1px solid var(--sc-gray-20);border-radius:var(--sc-border-radius);font-family:inherit;font-size:inherit;padding:.25em .5em;width:100%}.fields-panel :deep(input.locked),.fields-panel :deep(select.locked){background:var(--sc-gray-10);color:var(--sc-header-text-color);cursor:not-allowed}.fields-panel :deep(input.json-invalid){background:var(--sc-badge-danger-bg);border-color:var(--sc-brand-danger)}.center{text-align:center}.badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.125em .5em}.badge-manual{background:var(--sc-badge-brand-bg);color:var(--sc-badge-brand-text)}.badge-introspected{background:var(--sc-badge-neutral-bg);color:var(--sc-badge-neutral-text)}.field-detail{display:grid;gap:.75rem 1rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));padding:.75rem 1rem}.field-prop{color:var(--sc-header-text-color);display:flex;flex-direction:column;font-size:.75rem;gap:.25rem}.field-prop-inline{align-items:center;flex-direction:row;gap:.5rem}.field-prop-wide{grid-column:1/-1}.field-detail-actions{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:0 1rem .75rem}.locked-note{color:var(--sc-header-text-color);font-size:.75rem;font-style:italic}.btn-add{background:none;border:1px dashed var(--sc-gray-20);border-radius:var(--sc-border-radius);color:var(--sc-primary-color);cursor:pointer;font-size:.875rem;margin-top:.5rem;padding:.4em 1em}.fields-empty{color:var(--sc-header-text-color);font-style:italic;padding:1rem 0}
339
+ .fields-panel{box-sizing:border-box;max-width:100%;overflow-x:auto;padding:.5em 1em}.fields-panel :deep(.atable-row>td){border-top:1px solid var(--sc-row-border-color);padding:var(--sc-atable-row-padding) .5ch;vertical-align:middle}.fields-panel :deep(input[type=text]),.fields-panel :deep(select){border:1px solid var(--sc-gray-20);border-radius:var(--sc-border-radius);box-sizing:border-box;font-family:inherit;font-size:inherit;padding:.25em .5em;width:100%}.fields-panel :deep(input.locked),.fields-panel :deep(select.locked){background:var(--sc-gray-10);color:var(--sc-header-text-color);cursor:not-allowed}.fields-panel :deep(input.json-invalid){background:var(--sc-badge-danger-bg);border-color:var(--sc-brand-danger)}.center{text-align:center}.badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.125em .5em}.badge-manual{background:var(--sc-badge-brand-bg);color:var(--sc-badge-brand-text)}.badge-introspected{background:var(--sc-badge-neutral-bg);color:var(--sc-badge-neutral-text)}.field-detail{display:grid;gap:.75rem 1rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));padding:.75rem 1rem}.field-prop{color:var(--sc-header-text-color);display:flex;flex-direction:column;font-size:.75rem;gap:.25rem}.field-prop-inline{align-items:center;flex-direction:row;gap:.5rem}.field-prop-wide{grid-column:1/-1}.field-detail-actions{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:0 1rem .75rem}.locked-note{color:var(--sc-header-text-color);font-size:.75rem;font-style:italic}.btn-add{background:none;border:1px dashed var(--sc-gray-20);border-radius:var(--sc-border-radius);color:var(--sc-primary-color);cursor:pointer;font-size:.875rem;margin-top:.5rem;padding:.4em 1em}.fields-empty{color:var(--sc-header-text-color);font-style:italic;padding:1rem 0}
340
340
  </style>
@@ -1,4 +1,4 @@
1
- import type { DataClient } from '@stonecrop/schema';
1
+ import type { ActionDispatchResult, DataClient } from '@stonecrop/schema';
2
2
  import type { Doctype, Registry, RouteContext, Stonecrop } from '@stonecrop/stonecrop';
3
3
  /**
4
4
  * Provides a stable, documented API for accessing the configured Stonecrop
@@ -119,11 +119,7 @@ export declare function useStonecropRegistry(): {
119
119
  dispatchAction(doctype: {
120
120
  name: string;
121
121
  slug?: string;
122
- }, action: string, args?: unknown[]): Promise<{
123
- success: boolean;
124
- data: unknown;
125
- error: string | null;
126
- }>;
122
+ }, action: string, args?: unknown[]): Promise<ActionDispatchResult>;
127
123
  /**
128
124
  * Set the `getMeta` function on the Registry.
129
125
  * Called by `useStonecrop({ doctype: 'slug' })` to lazy-load that doctype's metadata.
@@ -91,7 +91,8 @@ export function useStonecropRegistry() {
91
91
  return Promise.resolve({
92
92
  success: false,
93
93
  data: null,
94
- error: `Doctype '${doctype.name}' not found in registry`
94
+ error: `Doctype '${doctype.name}' not found in registry`,
95
+ record: null
95
96
  });
96
97
  }
97
98
  return stonecrop.dispatchAction(meta, action, args);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stonecrop/nuxt",
3
- "version": "0.38.1",
3
+ "version": "0.39.0",
4
4
  "description": "Nuxt module for Stonecrop",
5
5
  "keywords": [
6
6
  "nuxt",
@@ -60,18 +60,18 @@
60
60
  "pathe": "^2.0.3",
61
61
  "pinia": "^3.0.4",
62
62
  "prompts": "^2.4.2",
63
- "@stonecrop/atable": "0.38.1",
64
- "@stonecrop/aform": "0.38.1",
65
- "@stonecrop/casl-middleware": "0.38.1",
66
- "@stonecrop/desktop": "0.38.1",
67
- "@stonecrop/code-editor": "0.38.1",
68
- "@stonecrop/graphql-client": "0.38.1",
69
- "@stonecrop/graphql-middleware": "0.38.1",
70
- "@stonecrop/node-editor": "0.38.1",
71
- "@stonecrop/schema": "0.38.1",
72
- "@stonecrop/nuxt-grafserv": "0.38.1",
73
- "@stonecrop/stonecrop": "0.38.1",
74
- "@stonecrop/themes": "0.38.1"
63
+ "@stonecrop/aform": "0.39.0",
64
+ "@stonecrop/atable": "0.39.0",
65
+ "@stonecrop/casl-middleware": "0.39.0",
66
+ "@stonecrop/code-editor": "0.39.0",
67
+ "@stonecrop/desktop": "0.39.0",
68
+ "@stonecrop/graphql-middleware": "0.39.0",
69
+ "@stonecrop/node-editor": "0.39.0",
70
+ "@stonecrop/graphql-client": "0.39.0",
71
+ "@stonecrop/schema": "0.39.0",
72
+ "@stonecrop/stonecrop": "0.39.0",
73
+ "@stonecrop/nuxt-grafserv": "0.39.0",
74
+ "@stonecrop/themes": "0.39.0"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@eslint/js": "^10.0.1",
@@ -83,7 +83,10 @@
83
83
  "@nuxt/schema": "^4.4.8",
84
84
  "@nuxt/test-utils": "^4.0.3",
85
85
  "@types/prompts": "^2.4.9",
86
- "@vitest/coverage-istanbul": "^4.1.5",
86
+ "@vitejs/plugin-vue": "^6.0.6",
87
+ "@vitest/browser-playwright": "^4.1.11",
88
+ "@vitest/coverage-istanbul": "^4.1.11",
89
+ "@vue/test-utils": "^2.4.10",
87
90
  "baseline-browser-mapping": "latest",
88
91
  "browserslist": "latest",
89
92
  "eslint": "^10.6.0",
@@ -94,12 +97,13 @@
94
97
  "monaco-editor": "^0.55.1",
95
98
  "nuxt": "^4.4.8",
96
99
  "nuxt-graphql-middleware": "^5.4.0",
100
+ "playwright": "^1.63.0",
97
101
  "postgraphile": "^5.0.3",
98
102
  "temporal-polyfill": "^1.0.5",
99
103
  "typescript": "^6.0.3",
100
104
  "typescript-eslint": "^8.62.1",
101
105
  "vite": "^8.2.2",
102
- "vitest": "^4.1.5",
106
+ "vitest": "^4.1.11",
103
107
  "vue": "^3.5.33",
104
108
  "vue-router": "^5.0.6",
105
109
  "vue-tsc": "^3.3.6"