@tai42/studio-sdk 18.0.0 → 18.2.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.
@@ -49,9 +49,18 @@ export interface SecretRefFieldProps {
49
49
  * the target pointer, or the entry has no key yet to hint the generated name.
50
50
  */
51
51
  readonly pasteDisabledReason?: string;
52
+ /**
53
+ * Which editor a value-less field opens on when key picking is available. Defaults to
54
+ * `'paste'` (the write-first behaviour): a host adding a brand-new secret lands on the
55
+ * paste input. A host that only ever REFERENCES existing keys passes `'key'` so a fresh
56
+ * field opens straight on the key picker rather than a paste input it would block. Has
57
+ * no effect once a value is committed (the chip is shown) or when key picking is off
58
+ * (paste-only, fail closed).
59
+ */
60
+ readonly initialMode?: 'paste' | 'key';
52
61
  /** Visible field label; the accessible name of the inner control. */
53
62
  readonly label?: string;
54
63
  readonly idPrefix?: string;
55
64
  }
56
- export declare function SecretRefField({ value, onChange, availableKeys, keyPickingAvailable, pasteDisabledReason, label, idPrefix, }: SecretRefFieldProps): ReactNode;
65
+ export declare function SecretRefField({ value, onChange, availableKeys, keyPickingAvailable, pasteDisabledReason, initialMode, label, idPrefix, }: SecretRefFieldProps): ReactNode;
57
66
  //# sourceMappingURL=SecretRefField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SecretRefField.d.ts","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,KAAgB,EAChB,QAAuB,GACxB,EAAE,mBAAmB,GAAG,SAAS,CAmFjC"}
1
+ {"version":3,"file":"SecretRefField.d.ts","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,KAAgB,EAChB,QAAuB,GACxB,EAAE,mBAAmB,GAAG,SAAS,CAyFjC"}
@@ -7,13 +7,22 @@ import { Button } from '../components/primitives';
7
7
  import { Select } from '../components/select';
8
8
  /** A fixed-width mask that never encodes the masked value's length. */
9
9
  const MASK = '••••••••';
10
- export function SecretRefField({ value, onChange, availableKeys, keyPickingAvailable, pasteDisabledReason, label = 'Secret', idPrefix = 'secret-ref', }) {
10
+ export function SecretRefField({ value, onChange, availableKeys, keyPickingAvailable, pasteDisabledReason, initialMode, label = 'Secret', idPrefix = 'secret-ref', }) {
11
11
  const canPick = keyPickingAvailable === true;
12
12
  const pasteBlocked = pasteDisabledReason !== undefined;
13
+ // A committed key reference opens on the key editor; otherwise a value-less field opens
14
+ // on the host's `initialMode` (default `paste`). Key picking off is always paste-only.
15
+ const startMode = () => {
16
+ if (!canPick)
17
+ return 'paste';
18
+ if (value?.source === 'key')
19
+ return 'key';
20
+ return initialMode ?? 'paste';
21
+ };
13
22
  // Editing is forced while there is no value to show as a chip; otherwise the
14
23
  // chip is shown until the user asks to replace it.
15
24
  const [editing, setEditing] = useState(value === undefined);
16
- const [mode, setMode] = useState(value?.source === 'key' && canPick ? 'key' : 'paste');
25
+ const [mode, setMode] = useState(startMode);
17
26
  const [draftSecret, setDraftSecret] = useState('');
18
27
  const [pickedKey, setPickedKey] = useState('');
19
28
  const [revealed, setRevealed] = useState(false);
@@ -45,7 +54,7 @@ export function SecretRefField({ value, onChange, availableKeys, keyPickingAvail
45
54
  setDraftSecret('');
46
55
  setPickedKey('');
47
56
  setRevealed(false);
48
- setMode(value?.source === 'key' && canPick ? 'key' : 'paste');
57
+ setMode(startMode());
49
58
  setEditing(true);
50
59
  };
51
60
  if (!editing && value !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"SecretRefField.js","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecretRefField.js","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tai42/studio-sdk",
3
- "version": "18.0.0",
3
+ "version": "18.2.0",
4
4
  "description": "The Studio plugin contract, shared UI components, and hooks that every feature builds on.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "tai42 <oss@tai42.ai>",
@@ -72,19 +72,19 @@
72
72
  "react-dom": "^19.0.0"
73
73
  },
74
74
  "devDependencies": {
75
- "@microsoft/api-extractor": "7.58.12",
75
+ "@microsoft/api-extractor": "7.59.1",
76
76
  "@tai42/jq-studio": "^0.1.6",
77
77
  "@testing-library/jest-dom": "^6.9.1",
78
78
  "@testing-library/react": "^16.3.2",
79
79
  "@testing-library/user-event": "^14.6.6",
80
80
  "@types/node": "^22.10.5",
81
- "@types/react": "^19.2.18",
82
- "@types/react-dom": "^19.2.7",
81
+ "@types/react": "^19.3.0",
82
+ "@types/react-dom": "^19.3.0",
83
83
  "@vitejs/plugin-react": "^4.7.0",
84
84
  "@vitest/coverage-v8": "^5.0.0",
85
85
  "jsdom": "^30.0.1",
86
- "react": "^19.2.8",
87
- "react-dom": "^19.2.8",
86
+ "react": "^19.3.0",
87
+ "react-dom": "^19.3.0",
88
88
  "vitest": "^5.0.0"
89
89
  },
90
90
  "dependencies": {
@@ -95,8 +95,8 @@
95
95
  "@radix-ui/react-radio-group": "^1.4.2",
96
96
  "@radix-ui/react-select": "^2.3.2",
97
97
  "@radix-ui/react-tabs": "^1.1.21",
98
- "@radix-ui/react-tooltip": "^1.2.11",
99
- "@tai42/api-client": "18.0.0"
98
+ "@radix-ui/react-tooltip": "^1.2.16",
99
+ "@tai42/api-client": "18.2.0"
100
100
  },
101
101
  "scripts": {
102
102
  "build": "tsc -b tsconfig.build.json && node scripts/copy-assets.mjs",
@@ -54,6 +54,15 @@ export interface SecretRefFieldProps {
54
54
  * the target pointer, or the entry has no key yet to hint the generated name.
55
55
  */
56
56
  readonly pasteDisabledReason?: string;
57
+ /**
58
+ * Which editor a value-less field opens on when key picking is available. Defaults to
59
+ * `'paste'` (the write-first behaviour): a host adding a brand-new secret lands on the
60
+ * paste input. A host that only ever REFERENCES existing keys passes `'key'` so a fresh
61
+ * field opens straight on the key picker rather than a paste input it would block. Has
62
+ * no effect once a value is committed (the chip is shown) or when key picking is off
63
+ * (paste-only, fail closed).
64
+ */
65
+ readonly initialMode?: 'paste' | 'key';
57
66
  /** Visible field label; the accessible name of the inner control. */
58
67
  readonly label?: string;
59
68
  readonly idPrefix?: string;
@@ -68,18 +77,25 @@ export function SecretRefField({
68
77
  availableKeys,
69
78
  keyPickingAvailable,
70
79
  pasteDisabledReason,
80
+ initialMode,
71
81
  label = 'Secret',
72
82
  idPrefix = 'secret-ref',
73
83
  }: SecretRefFieldProps): ReactNode {
74
84
  const canPick = keyPickingAvailable === true;
75
85
  const pasteBlocked = pasteDisabledReason !== undefined;
76
86
 
87
+ // A committed key reference opens on the key editor; otherwise a value-less field opens
88
+ // on the host's `initialMode` (default `paste`). Key picking off is always paste-only.
89
+ const startMode = (): 'key' | 'paste' => {
90
+ if (!canPick) return 'paste';
91
+ if (value?.source === 'key') return 'key';
92
+ return initialMode ?? 'paste';
93
+ };
94
+
77
95
  // Editing is forced while there is no value to show as a chip; otherwise the
78
96
  // chip is shown until the user asks to replace it.
79
97
  const [editing, setEditing] = useState(value === undefined);
80
- const [mode, setMode] = useState<'key' | 'paste'>(
81
- value?.source === 'key' && canPick ? 'key' : 'paste',
82
- );
98
+ const [mode, setMode] = useState<'key' | 'paste'>(startMode);
83
99
  const [draftSecret, setDraftSecret] = useState('');
84
100
  const [pickedKey, setPickedKey] = useState('');
85
101
  const [revealed, setRevealed] = useState(false);
@@ -113,7 +129,7 @@ export function SecretRefField({
113
129
  setDraftSecret('');
114
130
  setPickedKey('');
115
131
  setRevealed(false);
116
- setMode(value?.source === 'key' && canPick ? 'key' : 'paste');
132
+ setMode(startMode());
117
133
  setEditing(true);
118
134
  };
119
135