@cat-factory/app 0.253.1 → 0.253.2

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/app/app.config.ts CHANGED
@@ -22,5 +22,14 @@ export default defineAppConfig({
22
22
  title: 'text-white',
23
23
  },
24
24
  },
25
+ // The toaster's scroll region is the ONE `[data-slot='viewport']` the app's own
26
+ // CSS may target: Nuxt UI reuses that attribute for the item list of every menu
27
+ // component too. This marker class is what `main.css` hangs the safe-area offset
28
+ // and the selectable-text rules on, so neither can reach a dropdown.
29
+ toaster: {
30
+ slots: {
31
+ viewport: 'app-toaster',
32
+ },
33
+ },
25
34
  },
26
35
  })
@@ -3,11 +3,20 @@
3
3
  /* The shared rendered-markdown reader presentation (see prose.css). */
4
4
  @import './prose.css';
5
5
 
6
+ /* The two toaster rules below are scoped by the `app-toaster` marker class that
7
+ * `app.config.ts` puts on the toaster's viewport slot, NOT by `[data-slot='viewport']`.
8
+ * That attribute is Nuxt UI's name for the scroll region of ELEVEN components
9
+ * (Select, SelectMenu, InputMenu, CommandPalette, DropdownMenu, ContextMenu,
10
+ * NavigationMenu, ScrollArea, Carousel, ChatMessages and the toaster), and all of
11
+ * the menu ones carry `position: relative`, so a bare `bottom:` here lifts every
12
+ * dropdown's item list 1rem out of the top of its own popover. Keep any new toaster
13
+ * rule on the marker class. */
14
+
6
15
  /* Toast text should be selectable. Reka UI sets `user-select: none` inline on
7
16
  * the toast root (to support swipe-to-dismiss); since `user-select` is
8
17
  * inherited, declaring it directly on the text slots overrides that. */
9
- [data-slot='viewport'] [data-slot='title'],
10
- [data-slot='viewport'] [data-slot='description'] {
18
+ .app-toaster [data-slot='title'],
19
+ .app-toaster [data-slot='description'] {
11
20
  user-select: text;
12
21
  }
13
22
 
@@ -20,7 +29,7 @@
20
29
  * until the viewport meta carries `viewport-fit=cover` (see nuxt.config.ts), so
21
30
  * this collapses to the stock `1rem` on desktop. Assumes the default bottom
22
31
  * placement (the app does not configure a top-anchored toaster). */
23
- [data-slot='viewport'] {
32
+ .app-toaster {
24
33
  bottom: calc(1rem + env(safe-area-inset-bottom));
25
34
  }
26
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.253.1",
3
+ "version": "0.253.2",
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",