@notis_ai/cli 0.2.0-beta.35.1 → 0.2.0-beta.48.1

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.
Files changed (84) hide show
  1. package/README.md +84 -83
  2. package/dist/scaffolds/notis-database/app/globals.css +44 -0
  3. package/dist/scaffolds/notis-database/app/page.tsx +1091 -0
  4. package/dist/scaffolds/notis-database/components/ui/table.tsx +120 -0
  5. package/dist/scaffolds/notis-database/index.html +12 -0
  6. package/dist/scaffolds/notis-database/lib/types.ts +134 -0
  7. package/dist/scaffolds/notis-database/metadata/cover.png +0 -0
  8. package/dist/scaffolds/notis-database/metadata/screenshot-1.png +0 -0
  9. package/dist/scaffolds/notis-database/metadata/screenshot-2.png +0 -0
  10. package/dist/scaffolds/notis-database/metadata/screenshot-3.png +0 -0
  11. package/dist/scaffolds/notis-database/notis.config.ts +27 -0
  12. package/dist/scaffolds/notis-database/package.json +31 -0
  13. package/dist/scaffolds/notis-database/src/dev-main.tsx +23 -0
  14. package/dist/scaffolds/notis-database/src/mock-runtime.ts +557 -0
  15. package/dist/scaffolds/notis-database/tailwind.config.ts +59 -0
  16. package/dist/scaffolds/{notes → notis-database}/tsconfig.json +2 -1
  17. package/dist/scaffolds/notis-database/vite.config.ts +22 -0
  18. package/dist/scaffolds/notis-notes/app/layout.tsx +6 -0
  19. package/dist/scaffolds/{notes → notis-notes}/app/page.tsx +783 -80
  20. package/dist/scaffolds/notis-notes/components/ui/badge.tsx +28 -0
  21. package/dist/scaffolds/notis-notes/components/ui/button.tsx +53 -0
  22. package/dist/scaffolds/notis-notes/components/ui/card.tsx +56 -0
  23. package/dist/scaffolds/notis-notes/components.json +20 -0
  24. package/dist/scaffolds/notis-notes/lib/utils.ts +6 -0
  25. package/dist/scaffolds/notis-notes/metadata/cover.png +0 -0
  26. package/dist/scaffolds/notis-notes/metadata/screenshot-1.png +0 -0
  27. package/dist/scaffolds/notis-notes/metadata/screenshot-2.png +0 -0
  28. package/dist/scaffolds/notis-notes/metadata/screenshot-3.png +0 -0
  29. package/dist/scaffolds/{notes → notis-notes}/notis.config.ts +12 -7
  30. package/dist/scaffolds/{notes → notis-notes}/package.json +3 -3
  31. package/dist/scaffolds/notis-notes/postcss.config.mjs +8 -0
  32. package/dist/scaffolds/notis-notes/tsconfig.json +23 -0
  33. package/dist/scaffolds/notis-random/README.md +33 -0
  34. package/dist/scaffolds/notis-random/app/globals.css +11 -0
  35. package/dist/scaffolds/notis-random/app/history/page.tsx +66 -0
  36. package/dist/scaffolds/notis-random/app/layout.tsx +7 -0
  37. package/dist/scaffolds/notis-random/app/page.tsx +222 -0
  38. package/dist/scaffolds/notis-random/index.html +12 -0
  39. package/dist/scaffolds/notis-random/lib/notis-tools.ts +109 -0
  40. package/dist/scaffolds/notis-random/lib/rng.ts +42 -0
  41. package/dist/scaffolds/notis-random/lib/roll-record.ts +102 -0
  42. package/dist/scaffolds/notis-random/lib/utils.ts +25 -0
  43. package/dist/scaffolds/notis-random/metadata/cover.png +0 -0
  44. package/dist/scaffolds/notis-random/metadata/screenshot-1.png +0 -0
  45. package/dist/scaffolds/notis-random/metadata/screenshot-2.png +0 -0
  46. package/dist/scaffolds/notis-random/metadata/screenshot-3.png +0 -0
  47. package/dist/scaffolds/notis-random/notis.config.ts +43 -0
  48. package/dist/scaffolds/notis-random/package.json +32 -0
  49. package/dist/scaffolds/notis-random/postcss.config.mjs +6 -0
  50. package/dist/scaffolds/notis-random/src/dev-main.tsx +70 -0
  51. package/dist/scaffolds/notis-random/src/mock-runtime.ts +128 -0
  52. package/dist/scaffolds/notis-random/tailwind.config.ts +43 -0
  53. package/dist/scaffolds/notis-random/tsconfig.json +23 -0
  54. package/dist/scaffolds/notis-random/vite.config.ts +11 -0
  55. package/dist/scaffolds.json +27 -4
  56. package/package.json +1 -1
  57. package/skills/notis-apps/SKILL.md +27 -33
  58. package/skills/notis-apps/cli.md +51 -51
  59. package/skills/notis-cli/SKILL.md +66 -71
  60. package/skills/notis-query/cli.md +11 -11
  61. package/src/cli.js +10 -1
  62. package/src/command-specs/apps.js +9 -9
  63. package/src/command-specs/helpers.js +69 -46
  64. package/src/command-specs/meta.js +6 -6
  65. package/src/command-specs/tools.js +159 -50
  66. package/src/runtime/app-dev-server.js +2 -2
  67. package/src/runtime/app-platform.js +28 -0
  68. package/src/runtime/transport.js +122 -37
  69. package/template/packages/sdk/package.json +6 -0
  70. package/template/packages/sdk/src/hooks/useDatabase.ts +76 -0
  71. package/template/packages/sdk/src/hooks/useNotis.ts +10 -6
  72. package/template/packages/sdk/src/hooks/useUpsertDocument.ts +50 -0
  73. package/template/packages/sdk/src/index.ts +9 -1
  74. package/template/packages/sdk/src/runtime.ts +83 -2
  75. /package/dist/scaffolds/{notes → notis-database}/app/layout.tsx +0 -0
  76. /package/dist/scaffolds/{notes → notis-database}/components/ui/badge.tsx +0 -0
  77. /package/dist/scaffolds/{notes → notis-database}/components/ui/button.tsx +0 -0
  78. /package/dist/scaffolds/{notes → notis-database}/components/ui/card.tsx +0 -0
  79. /package/dist/scaffolds/{notes → notis-database}/components.json +0 -0
  80. /package/dist/scaffolds/{notes → notis-database}/lib/utils.ts +0 -0
  81. /package/dist/scaffolds/{notes → notis-database}/postcss.config.mjs +0 -0
  82. /package/dist/scaffolds/{notes → notis-notes}/app/globals.css +0 -0
  83. /package/dist/scaffolds/{notes → notis-notes}/tailwind.config.ts +0 -0
  84. /package/dist/scaffolds/{notes → notis-notes}/vite.config.ts +0 -0
package/README.md CHANGED
@@ -4,17 +4,17 @@ Agent-first Notis CLI for apps and generic tool execution.
4
4
 
5
5
  ## Install
6
6
 
7
- The Notis CLI is bundled automatically with the Notis desktop app. Install and sign into Notis Desktop to install the `notis` command, write the local CLI config, and keep the bundled CLI, `notis-cli`, and `notis-apps` skills updated.
7
+ Use the Notis CLI through NPX. Install and sign into Notis Desktop to keep the local CLI auth profile current; do not rely on an installed `notis` command. Related skills such as `notis-cli` and `notis-apps` are delivered through normal Notis skill sync for the signed-in user.
8
8
 
9
9
  For CI, hosted agents, or internal scripts, pass a non-persisted token with `NOTIS_JWT=<token>`.
10
10
 
11
11
  ## Quick Start
12
12
 
13
13
  ```bash
14
- notis --help
15
- notis doctor
16
- notis apps list
17
- notis tools search "list Notis databases"
14
+ npx --package @notis_ai/cli@latest -- notis --help
15
+ npx --package @notis_ai/cli@latest -- notis doctor
16
+ npx --package @notis_ai/cli@latest -- notis apps list
17
+ npx --package @notis_ai/cli@latest -- notis tools search "list Notis databases"
18
18
  ```
19
19
 
20
20
  The desktop app owns sign-in and keeps the CLI profile in sync automatically.
@@ -33,17 +33,17 @@ The CLI defaults to `json` output in agent or non-TTY contexts and `table` outpu
33
33
 
34
34
  ## Apps
35
35
 
36
- ### `notis apps list`
36
+ ### `npx --package @notis_ai/cli@latest -- notis apps list`
37
37
 
38
38
  List apps the current profile can access.
39
39
 
40
40
  When to use: Discover existing apps before linking or deploying.
41
41
 
42
42
  Examples:
43
- - `notis apps list`
44
- - `notis apps list --json`
43
+ - `npx --package @notis_ai/cli@latest -- notis apps list`
44
+ - `npx --package @notis_ai/cli@latest -- notis apps list --json`
45
45
 
46
- ### `notis apps init <name> [dir]`
46
+ ### `npx --package @notis_ai/cli@latest -- notis apps init <name> [dir]`
47
47
 
48
48
  Scaffold a new Notis app project.
49
49
 
@@ -53,32 +53,32 @@ Options:
53
53
  - `--from <slug>` — Start from a bundled scaffold listed by `notis apps scaffolds list`.
54
54
 
55
55
  Examples:
56
- - `notis apps scaffolds list`
57
- - `notis apps init "Mind the Flo"`
58
- - `notis apps init "My CRM" --from notis-database`
59
- - `notis apps init "My App" ./my-app`
56
+ - `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
57
+ - `npx --package @notis_ai/cli@latest -- notis apps init "Mind the Flo"`
58
+ - `npx --package @notis_ai/cli@latest -- notis apps init "My CRM" --from notis-database`
59
+ - `npx --package @notis_ai/cli@latest -- notis apps init "My App" ./my-app`
60
60
 
61
- ### `notis apps scaffolds list`
61
+ ### `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
62
62
 
63
63
  List bundled Notis app scaffolds.
64
64
 
65
65
  When to use: Discover the fixed scaffold catalog shipped with the CLI before starting a new app.
66
66
 
67
67
  Examples:
68
- - `notis apps scaffolds list`
69
- - `notis apps init "My App" --from notis-database`
68
+ - `npx --package @notis_ai/cli@latest -- notis apps scaffolds list`
69
+ - `npx --package @notis_ai/cli@latest -- notis apps init "My App" --from notis-database`
70
70
 
71
- ### `notis apps create <name> [dir]`
71
+ ### `npx --package @notis_ai/cli@latest -- notis apps create <name> [dir]`
72
72
 
73
73
  Create a new remote Notis app and optionally link a local project to it.
74
74
 
75
75
  When to use: Provision a fresh remote app before the first deploy. Pass a project directory to link it immediately.
76
76
 
77
77
  Examples:
78
- - `notis apps create "My App"`
79
- - `notis apps create "My App" .`
78
+ - `npx --package @notis_ai/cli@latest -- notis apps create "My App"`
79
+ - `npx --package @notis_ai/cli@latest -- notis apps create "My App" .`
80
80
 
81
- ### `notis apps dev [dir]`
81
+ ### `npx --package @notis_ai/cli@latest -- notis apps dev [dir]`
82
82
 
83
83
  Develop Notis apps inside the Electron desktop Portal with automatic local bundle reloads.
84
84
 
@@ -89,21 +89,21 @@ Options:
89
89
  - `--no-open` — Do not auto-open the desktop Portal local development app.
90
90
 
91
91
  Examples:
92
- - `notis apps dev`
93
- - `notis apps dev ./my-app`
94
- - `notis apps dev ./workspace --port 5200`
92
+ - `npx --package @notis_ai/cli@latest -- notis apps dev`
93
+ - `npx --package @notis_ai/cli@latest -- notis apps dev ./my-app`
94
+ - `npx --package @notis_ai/cli@latest -- notis apps dev ./workspace --port 5200`
95
95
 
96
- ### `notis apps build [dir]`
96
+ ### `npx --package @notis_ai/cli@latest -- notis apps build [dir]`
97
97
 
98
98
  Build and package the app into .notis/output/.
99
99
 
100
100
  When to use: Prepare the app for verification or deployment.
101
101
 
102
102
  Examples:
103
- - `notis apps build`
104
- - `notis apps build ./my-app`
103
+ - `npx --package @notis_ai/cli@latest -- notis apps build`
104
+ - `npx --package @notis_ai/cli@latest -- notis apps build ./my-app`
105
105
 
106
- ### `notis apps verify [dir]`
106
+ ### `npx --package @notis_ai/cli@latest -- notis apps verify [dir]`
107
107
 
108
108
  Headless render smoke each route in a stub-runtime harness.
109
109
 
@@ -118,22 +118,22 @@ Options:
118
118
  - `--keep-open` — Leave server + browser session running after report (for manual triage).
119
119
 
120
120
  Examples:
121
- - `notis apps verify`
122
- - `notis apps verify --routes notes`
123
- - `notis apps verify --mode live`
124
- - `notis apps verify --no-browser # start the harness, drive agent-browser yourself`
121
+ - `npx --package @notis_ai/cli@latest -- notis apps verify`
122
+ - `npx --package @notis_ai/cli@latest -- notis apps verify --routes notes`
123
+ - `npx --package @notis_ai/cli@latest -- notis apps verify --mode live`
124
+ - `npx --package @notis_ai/cli@latest -- notis apps verify --no-browser # start the harness, drive agent-browser yourself`
125
125
 
126
- ### `notis apps link <app-id> [dir]`
126
+ ### `npx --package @notis_ai/cli@latest -- notis apps link <app-id> [dir]`
127
127
 
128
128
  Link a local project to a remote Notis app.
129
129
 
130
130
  When to use: Connect a local project to an existing app for deployment.
131
131
 
132
132
  Examples:
133
- - `notis apps link abc123`
134
- - `notis apps link abc123 ./my-app`
133
+ - `npx --package @notis_ai/cli@latest -- notis apps link abc123`
134
+ - `npx --package @notis_ai/cli@latest -- notis apps link abc123 ./my-app`
135
135
 
136
- ### `notis apps pull <app-id> [dir]`
136
+ ### `npx --package @notis_ai/cli@latest -- notis apps pull <app-id> [dir]`
137
137
 
138
138
  Download a Notis app source snapshot into a local project folder.
139
139
 
@@ -144,10 +144,10 @@ Options:
144
144
  - `--version <n>` — Pull a specific app source version (default: latest).
145
145
 
146
146
  Examples:
147
- - `notis apps pull abc123`
148
- - `notis apps pull abc123 ./my-app --force`
147
+ - `npx --package @notis_ai/cli@latest -- notis apps pull abc123`
148
+ - `npx --package @notis_ai/cli@latest -- notis apps pull abc123 ./my-app --force`
149
149
 
150
- ### `notis apps deploy [dir]`
150
+ ### `npx --package @notis_ai/cli@latest -- notis apps deploy [dir]`
151
151
 
152
152
  Build and upload the app to the linked Notis app.
153
153
 
@@ -159,61 +159,58 @@ Options:
159
159
  - `--direct` — Upload directly to Supabase storage, bypassing the backend server. Auto-fallback on network errors.
160
160
 
161
161
  Examples:
162
- - `notis apps deploy`
163
- - `notis apps deploy --skip-build`
164
- - `notis apps deploy --app-id abc123`
165
- - `notis apps deploy --direct`
162
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy`
163
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy --skip-build`
164
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy --app-id abc123`
165
+ - `npx --package @notis_ai/cli@latest -- notis apps deploy --direct`
166
166
 
167
- ### `notis apps doctor [dir]`
167
+ ### `npx --package @notis_ai/cli@latest -- notis apps doctor [dir]`
168
168
 
169
169
  Check project health and readiness.
170
170
 
171
171
  When to use: Diagnose issues with a Notis app project.
172
172
 
173
173
  Examples:
174
- - `notis apps doctor`
175
- - `notis apps doctor ./my-app`
174
+ - `npx --package @notis_ai/cli@latest -- notis apps doctor`
175
+ - `npx --package @notis_ai/cli@latest -- notis apps doctor ./my-app`
176
176
 
177
177
 
178
178
  ## Generic Tools
179
179
 
180
- ### `notis tools toolkits`
180
+ ### `npx --package @notis_ai/cli@latest -- notis tools toolkits`
181
181
 
182
- List toolkit namespaces available to the active user.
182
+ List toolkit namespaces and connection statuses available to the active user.
183
183
 
184
- When to use: Use this before searching or executing generic tools.
184
+ When to use: Use this to inspect connection state before searching or executing generic tools.
185
185
 
186
186
  Examples:
187
- - `notis tools toolkits`
188
- - `notis tools toolkits --json`
187
+ - `npx --package @notis_ai/cli@latest -- notis tools toolkits`
188
+ - `npx --package @notis_ai/cli@latest -- notis tools toolkits --json`
189
189
 
190
- ### `notis tools search <query>`
190
+ ### `npx --package @notis_ai/cli@latest -- notis tools search <query>`
191
191
 
192
192
  Search across toolkit namespaces using natural language.
193
193
 
194
194
  When to use: Use this when you need a generic capability that does not have a first-class CLI command.
195
195
 
196
196
  Options:
197
- - `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
197
+ - `--known-fields <text>` — Optional known field hints, such as channel_name:general or user_email:a@example.com.
198
198
 
199
199
  Examples:
200
- - `notis tools search "send an email"`
201
- - `notis tools search "update framer page" --toolkits mcp-framer`
200
+ - `npx --package @notis_ai/cli@latest -- notis tools search "send an email"`
201
+ - `npx --package @notis_ai/cli@latest -- notis tools search "post on LinkedIn" --known-fields "platform:linkedin"`
202
202
 
203
- ### `notis tools describe <tool-name>`
203
+ ### `npx --package @notis_ai/cli@latest -- notis tools describe <tool-name>`
204
204
 
205
205
  Describe a generic tool by name.
206
206
 
207
207
  When to use: Use this when you know the tool name and want its parameter schema before execution.
208
208
 
209
- Options:
210
- - `--toolkits <csv-or-json>` — Optional subset of toolkit ids to search.
211
-
212
209
  Examples:
213
- - `notis tools describe composio-gmail-default-send_email`
214
- - `notis tools describe notis-default-query --toolkits notis-default`
210
+ - `npx --package @notis_ai/cli@latest -- notis tools describe composio-gmail-default-send_email`
211
+ - `npx --package @notis_ai/cli@latest -- notis tools describe notis-default-query`
215
212
 
216
- ### `notis tools exec <tool-name>`
213
+ ### `npx --package @notis_ai/cli@latest -- notis tools exec <tool-name>`
217
214
 
218
215
  Execute a generic tool by canonical tool name.
219
216
 
@@ -221,69 +218,73 @@ When to use: Use this as the escape hatch for integrations or Notis tools withou
221
218
 
222
219
  Options:
223
220
  - `--arguments <json>` — JSON object, @file path, or - for stdin.
221
+ - `--file <argument-path=local-path>` — Upload a local file into a file-uploadable tool argument. Repeatable.
224
222
  - `--get-schema` — Display the tool parameter schema without executing.
225
223
  - `--dry-run` — Validate arguments against the tool schema without executing.
226
- - `--toolkits <csv-or-json>` — Optional toolkit namespace(s) to use when resolving the tool.
227
224
 
228
225
  Examples:
229
- - `notis tools exec notis-default-query --arguments '{"database_slug":"tasks","query":{}}'`
230
- - `notis tools exec notis-default-get_database --arguments '{"database_slug":"tasks"}'`
231
- - `notis tools exec notis-default-query --get-schema`
232
- - `notis tools exec notis-default-query --dry-run --arguments '{"database_slug":"tasks","query":{}}'`
233
- - `notis tools exec notis-default-query --arguments @query.json`
234
- - `notis tools exec notis-default-query --arguments - < query.json`
226
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments '{"database_slug":"tasks","query":{}}'`
227
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-get_database --arguments '{"database_slug":"tasks"}'`
228
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --get-schema`
229
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --dry-run --arguments '{"database_slug":"tasks","query":{}}'`
230
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments @query.json`
231
+ - `npx --package @notis_ai/cli@latest -- notis tools exec notis-default-query --arguments - < query.json`
232
+ - `npx --package @notis_ai/cli@latest -- notis tools exec composio-dropbox-default-upload_file --arguments '{"path":"/target/in/dropbox.pdf"}' --file content=./Invoice.pdf`
235
233
 
236
- ### `notis tools exec-parallel <calls>`
234
+ ### `npx --package @notis_ai/cli@latest -- notis tools exec-parallel <calls>`
237
235
 
238
236
  Execute multiple tools concurrently.
239
237
 
240
238
  When to use: Use this when you need to run independent tool calls simultaneously for speed.
241
239
 
240
+ Options:
241
+ - `--file <argument-path=local-path>` — Unsupported for exec-parallel; use tools exec for file uploads.
242
+
242
243
  Examples:
243
- - `notis tools exec-parallel '[{"tool_name":"notis-default-query","arguments":{"database_slug":"tasks","query":{}}},{"tool_name":"notis-default-list_databases","arguments":{}}]'`
244
+ - `npx --package @notis_ai/cli@latest -- notis tools exec-parallel '[{"tool_name":"notis-default-query","arguments":{"database_slug":"tasks","query":{}}},{"tool_name":"notis-default-list_databases","arguments":{}}]'`
244
245
 
245
- ### `notis tools link <toolkit>`
246
+ ### `npx --package @notis_ai/cli@latest -- notis tools link <toolkit>`
246
247
 
247
248
  Get the URL to connect an integration toolkit.
248
249
 
249
250
  When to use: Use this when a tool requires authentication with an external service.
250
251
 
251
252
  Examples:
252
- - `notis tools link github`
253
- - `notis tools link gmail --json`
253
+ - `npx --package @notis_ai/cli@latest -- notis tools link github`
254
+ - `npx --package @notis_ai/cli@latest -- notis tools link gmail --json`
254
255
 
255
256
 
256
257
  ## Meta Commands
257
258
 
258
- ### `notis doctor`
259
+ ### `npx --package @notis_ai/cli@latest -- notis doctor`
259
260
 
260
261
  Run a quick CLI health check for config, auth, and API reachability.
261
262
 
262
263
  When to use: Use this before relying on the CLI in automation or after changing environments.
263
264
 
264
265
  Examples:
265
- - `notis doctor`
266
- - `notis doctor --json`
266
+ - `npx --package @notis_ai/cli@latest -- notis doctor`
267
+ - `npx --package @notis_ai/cli@latest -- notis doctor --json`
267
268
 
268
- ### `notis whoami`
269
+ ### `npx --package @notis_ai/cli@latest -- notis whoami`
269
270
 
270
- Display the active profile, user, and available toolkits.
271
+ Display the active profile, user, and available toolkit connection statuses.
271
272
 
272
273
  When to use: Use this to quickly confirm which account and environment a command will target.
273
274
 
274
275
  Examples:
275
- - `notis whoami`
276
- - `notis whoami --json`
276
+ - `npx --package @notis_ai/cli@latest -- notis whoami`
277
+ - `npx --package @notis_ai/cli@latest -- notis whoami --json`
277
278
 
278
- ### `notis describe <command...>`
279
+ ### `npx --package @notis_ai/cli@latest -- notis describe <command...>`
279
280
 
280
281
  Describe a first-class CLI command in detail.
281
282
 
282
283
  When to use: Use this when an agent or human needs the exact shape, examples, and semantics of a command.
283
284
 
284
285
  Examples:
285
- - `notis describe apps deploy`
286
- - `notis describe tools exec`
286
+ - `npx --package @notis_ai/cli@latest -- notis describe apps deploy`
287
+ - `npx --package @notis_ai/cli@latest -- notis describe tools exec`
287
288
 
288
289
 
289
290
  ## Local Development
@@ -0,0 +1,44 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ /*
6
+ * The portal mounts the app inside [data-notis-app-root] (display: block,
7
+ * min-height: 100% from @notis/sdk/styles.css). Width 100% ensures the
8
+ * two-pane layout can stretch to the full content area; height stays on
9
+ * the SDK's min-height: 100% default so the page can grow with content.
10
+ * The page itself uses `h-screen` to guarantee a fixed viewport height
11
+ * for the two-pane divider and centered empty states.
12
+ */
13
+ [data-notis-app-root] {
14
+ width: 100%;
15
+ }
16
+
17
+ /*
18
+ * Dev-preview fallback tokens. Active only when the dev entrypoint sets the
19
+ * data-dev-preview attribute. Production bundle runs inside the portal
20
+ * shadow root where the host injects real theme tokens, so this rule is
21
+ * scoped narrowly enough to never collide with portal-provided values.
22
+ */
23
+ [data-dev-preview] {
24
+ --background: 0 0% 100%;
25
+ --foreground: 0 0% 4%;
26
+ --card: 0 0% 100%;
27
+ --card-foreground: 0 0% 4%;
28
+ --popover: 0 0% 100%;
29
+ --popover-foreground: 0 0% 4%;
30
+ --primary: 0 0% 9%;
31
+ --primary-foreground: 0 0% 98%;
32
+ --secondary: 240 5% 96%;
33
+ --secondary-foreground: 0 0% 9%;
34
+ --muted: 240 5% 96%;
35
+ --muted-foreground: 240 4% 46%;
36
+ --accent: 240 5% 96%;
37
+ --accent-foreground: 0 0% 9%;
38
+ --destructive: 0 84% 60%;
39
+ --destructive-foreground: 0 0% 98%;
40
+ --border: 240 6% 90%;
41
+ --input: 240 6% 90%;
42
+ --ring: 0 0% 4%;
43
+ --radius: 0.5rem;
44
+ }