@cat-factory/app 0.58.2 → 0.58.4

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.
@@ -65,6 +65,21 @@ const tabs = computed(() => [
65
65
  },
66
66
  ])
67
67
 
68
+ // Tab strip styling: the labels must always fit (never truncate) and the strip must never
69
+ // scroll. So we let the list WRAP onto a second row when the viewport is too narrow
70
+ // (`flex-wrap`), keep each trigger at its content width (`shrink-0`, undoing the theme's
71
+ // `min-w-0`+`truncate` that otherwise ellipsises labels), and drop the sliding `indicator`
72
+ // for a per-trigger bottom border. reka's indicator only tracks `offsetLeft` (not
73
+ // `offsetTop`), so it mis-renders once tabs wrap; a border on each active trigger underlines
74
+ // the right row regardless. A transparent border on every trigger keeps the rows from
75
+ // shifting when the active one gains its colour.
76
+ const tabsUi = {
77
+ root: 'gap-4',
78
+ list: 'flex-wrap gap-y-1',
79
+ trigger: 'shrink-0 border-b-2 border-transparent data-[state=active]:border-primary',
80
+ indicator: 'hidden',
81
+ }
82
+
68
83
  const TASK_TYPES: CreateTaskType[] = ['feature', 'bug', 'document', 'spike']
69
84
 
70
85
  // Per-task-type label for the "Max {type} tasks" inputs. An exhaustive Record keyed off
@@ -203,12 +218,7 @@ async function saveBudget() {
203
218
  <IntegrationBackTitle :title="t('settings.workspaceSettings.title')" @back="back" />
204
219
  </template>
205
220
  <template #body>
206
- <UTabs
207
- v-model="activeTab"
208
- :items="tabs"
209
- variant="link"
210
- :ui="{ root: 'gap-4', list: 'overflow-x-auto' }"
211
- >
221
+ <UTabs v-model="activeTab" :items="tabs" variant="link" :ui="tabsUi">
212
222
  <!-- Workspace -->
213
223
  <template #workspace>
214
224
  <div class="space-y-6">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.58.2",
3
+ "version": "0.58.4",
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",
@@ -34,7 +34,7 @@
34
34
  "valibot": "^1.4.2",
35
35
  "vue": "^3.5.39",
36
36
  "wretch": "^3.0.9",
37
- "@cat-factory/contracts": "0.60.0"
37
+ "@cat-factory/contracts": "0.61.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@toad-contracts/testing": "0.3.2",