@cat-factory/app 0.107.5 → 0.107.7
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,6 +49,22 @@ function set(key: string, value: InitiativePresetInputValue | undefined): void {
|
|
|
49
49
|
model.value = next
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Set a checkbox value. A checkbox whose descriptor default is ON (`default: 'true'`) must be able
|
|
54
|
+
* to persist an explicit `false`: {@link set} otherwise drops a `false` (an off box "stays unset"),
|
|
55
|
+
* which for a default-ON field is indistinguishable from "untouched, still on" — so a consumer that
|
|
56
|
+
* reads the opt-out as `humanReview !== false` (e.g. `seedMigrationPlan`) could never observe the
|
|
57
|
+
* unchecked state and the toggle would be dead. A default-OFF checkbox keeps the drop-when-false
|
|
58
|
+
* behaviour (absent === unchecked), so it never freezes a redundant `false`.
|
|
59
|
+
*/
|
|
60
|
+
function setCheckbox(field: InitiativePresetField, checked: boolean): void {
|
|
61
|
+
if (!checked && field.default === 'true') {
|
|
62
|
+
model.value = { ...model.value, [field.key]: false }
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
set(field.key, checked)
|
|
66
|
+
}
|
|
67
|
+
|
|
52
68
|
function stringValue(key: string): string {
|
|
53
69
|
const v = model.value[key]
|
|
54
70
|
return typeof v === 'string' ? v : ''
|
|
@@ -118,7 +134,7 @@ function selectItems(field: InitiativePresetField) {
|
|
|
118
134
|
<USwitch
|
|
119
135
|
v-else-if="field.type === 'checkbox'"
|
|
120
136
|
:model-value="boolValue(field.key)"
|
|
121
|
-
@update:model-value="(v: boolean) =>
|
|
137
|
+
@update:model-value="(v: boolean) => setCheckbox(field, v)"
|
|
122
138
|
/>
|
|
123
139
|
|
|
124
140
|
<UTextarea
|
|
@@ -201,6 +201,7 @@ function selectTask() {
|
|
|
201
201
|
v-if="task && statusMeta"
|
|
202
202
|
:data-block-id="task.id"
|
|
203
203
|
:data-status="task.status"
|
|
204
|
+
:data-task-type="task.taskType"
|
|
204
205
|
data-testid="task-card"
|
|
205
206
|
class="nodrag w-full cursor-pointer rounded-lg border bg-slate-950/70 p-2 text-start transition"
|
|
206
207
|
:class="[
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.107.
|
|
3
|
+
"version": "0.107.7",
|
|
4
4
|
"description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|