@pilotiq/pilotiq 0.6.2 → 0.7.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.
Files changed (197) hide show
  1. package/.turbo/turbo-build.log +6 -2
  2. package/CHANGELOG.md +608 -0
  3. package/CLAUDE.md +6 -5
  4. package/dist/Column.d.ts +35 -0
  5. package/dist/Column.d.ts.map +1 -1
  6. package/dist/Column.js +41 -0
  7. package/dist/Column.js.map +1 -1
  8. package/dist/Page.d.ts +13 -4
  9. package/dist/Page.d.ts.map +1 -1
  10. package/dist/Page.js +9 -2
  11. package/dist/Page.js.map +1 -1
  12. package/dist/Pilotiq.d.ts +84 -0
  13. package/dist/Pilotiq.d.ts.map +1 -1
  14. package/dist/Pilotiq.js +66 -0
  15. package/dist/Pilotiq.js.map +1 -1
  16. package/dist/Resource.d.ts +26 -0
  17. package/dist/Resource.d.ts.map +1 -1
  18. package/dist/Resource.js +9 -0
  19. package/dist/Resource.js.map +1 -1
  20. package/dist/actions/exportFactory.js +1 -1
  21. package/dist/actions/exportFactory.js.map +1 -1
  22. package/dist/columns/SelectColumn.d.ts +32 -5
  23. package/dist/columns/SelectColumn.d.ts.map +1 -1
  24. package/dist/columns/SelectColumn.js +37 -7
  25. package/dist/columns/SelectColumn.js.map +1 -1
  26. package/dist/defaultPages.d.ts.map +1 -1
  27. package/dist/defaultPages.js +3 -0
  28. package/dist/defaultPages.js.map +1 -1
  29. package/dist/elements/Form.d.ts +17 -0
  30. package/dist/elements/Form.d.ts.map +1 -1
  31. package/dist/elements/Form.js +17 -0
  32. package/dist/elements/Form.js.map +1 -1
  33. package/dist/elements/Table.d.ts +26 -0
  34. package/dist/elements/Table.d.ts.map +1 -1
  35. package/dist/elements/Table.js +15 -1
  36. package/dist/elements/Table.js.map +1 -1
  37. package/dist/elements/TableGroup.d.ts +84 -0
  38. package/dist/elements/TableGroup.d.ts.map +1 -1
  39. package/dist/elements/TableGroup.js +103 -0
  40. package/dist/elements/TableGroup.js.map +1 -1
  41. package/dist/elements/dispatchForm.d.ts.map +1 -1
  42. package/dist/elements/dispatchForm.js +36 -6
  43. package/dist/elements/dispatchForm.js.map +1 -1
  44. package/dist/elements/dispatchTable.d.ts +12 -0
  45. package/dist/elements/dispatchTable.d.ts.map +1 -1
  46. package/dist/elements/dispatchTable.js +103 -28
  47. package/dist/elements/dispatchTable.js.map +1 -1
  48. package/dist/fields/Field.d.ts +7 -2
  49. package/dist/fields/Field.d.ts.map +1 -1
  50. package/dist/fields/Field.js +8 -3
  51. package/dist/fields/Field.js.map +1 -1
  52. package/dist/fields/RepeaterField.d.ts +65 -0
  53. package/dist/fields/RepeaterField.d.ts.map +1 -1
  54. package/dist/fields/RepeaterField.js +48 -0
  55. package/dist/fields/RepeaterField.js.map +1 -1
  56. package/dist/orm/modelDefaults.d.ts.map +1 -1
  57. package/dist/orm/modelDefaults.js +19 -0
  58. package/dist/orm/modelDefaults.js.map +1 -1
  59. package/dist/pageData.d.ts +20 -0
  60. package/dist/pageData.d.ts.map +1 -1
  61. package/dist/pageData.js +242 -34
  62. package/dist/pageData.js.map +1 -1
  63. package/dist/react/AppShell.d.ts +17 -1
  64. package/dist/react/AppShell.d.ts.map +1 -1
  65. package/dist/react/AppShell.js +34 -3
  66. package/dist/react/AppShell.js.map +1 -1
  67. package/dist/react/PendingSuggestionApplierRegistry.d.ts +34 -0
  68. package/dist/react/PendingSuggestionApplierRegistry.d.ts.map +1 -0
  69. package/dist/react/PendingSuggestionApplierRegistry.js +51 -0
  70. package/dist/react/PendingSuggestionApplierRegistry.js.map +1 -0
  71. package/dist/react/PendingSuggestionOverlayRegistry.d.ts +46 -0
  72. package/dist/react/PendingSuggestionOverlayRegistry.d.ts.map +1 -0
  73. package/dist/react/PendingSuggestionOverlayRegistry.js +16 -0
  74. package/dist/react/PendingSuggestionOverlayRegistry.js.map +1 -0
  75. package/dist/react/PendingSuggestionsContext.d.ts +153 -0
  76. package/dist/react/PendingSuggestionsContext.d.ts.map +1 -0
  77. package/dist/react/PendingSuggestionsContext.js +46 -0
  78. package/dist/react/PendingSuggestionsContext.js.map +1 -0
  79. package/dist/react/SchemaRenderer.d.ts.map +1 -1
  80. package/dist/react/SchemaRenderer.js +312 -39
  81. package/dist/react/SchemaRenderer.js.map +1 -1
  82. package/dist/react/cells/EditableCell.d.ts +8 -0
  83. package/dist/react/cells/EditableCell.d.ts.map +1 -1
  84. package/dist/react/cells/EditableCell.js +6 -2
  85. package/dist/react/cells/EditableCell.js.map +1 -1
  86. package/dist/react/fields/CheckboxListInput.d.ts.map +1 -1
  87. package/dist/react/fields/CheckboxListInput.js +29 -2
  88. package/dist/react/fields/CheckboxListInput.js.map +1 -1
  89. package/dist/react/fields/ColorInput.d.ts.map +1 -1
  90. package/dist/react/fields/ColorInput.js +28 -2
  91. package/dist/react/fields/ColorInput.js.map +1 -1
  92. package/dist/react/fields/DateTimeInput.d.ts.map +1 -1
  93. package/dist/react/fields/DateTimeInput.js +28 -2
  94. package/dist/react/fields/DateTimeInput.js.map +1 -1
  95. package/dist/react/fields/FieldShell.d.ts.map +1 -1
  96. package/dist/react/fields/FieldShell.js +161 -3
  97. package/dist/react/fields/FieldShell.js.map +1 -1
  98. package/dist/react/fields/FileUploadInput.d.ts.map +1 -1
  99. package/dist/react/fields/FileUploadInput.js +27 -2
  100. package/dist/react/fields/FileUploadInput.js.map +1 -1
  101. package/dist/react/fields/KeyValueInput.d.ts.map +1 -1
  102. package/dist/react/fields/KeyValueInput.js +33 -2
  103. package/dist/react/fields/KeyValueInput.js.map +1 -1
  104. package/dist/react/fields/RadioInput.d.ts.map +1 -1
  105. package/dist/react/fields/RadioInput.js +28 -2
  106. package/dist/react/fields/RadioInput.js.map +1 -1
  107. package/dist/react/fields/SelectFieldInput.d.ts.map +1 -1
  108. package/dist/react/fields/SelectFieldInput.js +31 -2
  109. package/dist/react/fields/SelectFieldInput.js.map +1 -1
  110. package/dist/react/fields/SliderInput.d.ts.map +1 -1
  111. package/dist/react/fields/SliderInput.js +26 -2
  112. package/dist/react/fields/SliderInput.js.map +1 -1
  113. package/dist/react/fields/TagsInput.d.ts.map +1 -1
  114. package/dist/react/fields/TagsInput.js +26 -2
  115. package/dist/react/fields/TagsInput.js.map +1 -1
  116. package/dist/react/fields/ToggleFieldInput.d.ts.map +1 -1
  117. package/dist/react/fields/ToggleFieldInput.js +29 -2
  118. package/dist/react/fields/ToggleFieldInput.js.map +1 -1
  119. package/dist/react/index.d.ts +3 -0
  120. package/dist/react/index.d.ts.map +1 -1
  121. package/dist/react/index.js +3 -0
  122. package/dist/react/index.js.map +1 -1
  123. package/dist/routes.d.ts.map +1 -1
  124. package/dist/routes.js +55 -2
  125. package/dist/routes.js.map +1 -1
  126. package/dist/schema/Section.d.ts +16 -0
  127. package/dist/schema/Section.d.ts.map +1 -1
  128. package/dist/schema/Section.js +16 -0
  129. package/dist/schema/Section.js.map +1 -1
  130. package/dist/schema/Wizard.d.ts +45 -0
  131. package/dist/schema/Wizard.d.ts.map +1 -1
  132. package/dist/schema/Wizard.js +50 -0
  133. package/dist/schema/Wizard.js.map +1 -1
  134. package/dist/schema/resolveSchema.d.ts +8 -0
  135. package/dist/schema/resolveSchema.d.ts.map +1 -1
  136. package/dist/schema/resolveSchema.js +70 -1
  137. package/dist/schema/resolveSchema.js.map +1 -1
  138. package/dist/sessionFilters.d.ts.map +1 -1
  139. package/dist/sessionFilters.js +12 -1
  140. package/dist/sessionFilters.js.map +1 -1
  141. package/dist/styles/file-upload.css +13 -0
  142. package/dist/vite.d.ts.map +1 -1
  143. package/dist/vite.js +9 -2
  144. package/dist/vite.js.map +1 -1
  145. package/package.json +6 -4
  146. package/src/Column.test.ts +36 -0
  147. package/src/Column.ts +54 -0
  148. package/src/Page.ts +13 -4
  149. package/src/Pilotiq.ts +109 -0
  150. package/src/Resource.ts +29 -0
  151. package/src/actions/exportFactory.ts +1 -1
  152. package/src/columns/SelectColumn.ts +46 -8
  153. package/src/columns/editableColumns.test.ts +45 -0
  154. package/src/defaultPages.ts +3 -0
  155. package/src/elements/Form.ts +19 -0
  156. package/src/elements/Table.ts +35 -1
  157. package/src/elements/TableGroup.test.ts +111 -0
  158. package/src/elements/TableGroup.ts +135 -0
  159. package/src/elements/dispatchForm.ts +34 -7
  160. package/src/elements/dispatchTable.test.ts +267 -0
  161. package/src/elements/dispatchTable.ts +111 -32
  162. package/src/fields/Field.test.ts +15 -0
  163. package/src/fields/Field.ts +8 -3
  164. package/src/fields/RepeaterField.ts +104 -0
  165. package/src/fields/RepeaterRelationship.test.ts +173 -0
  166. package/src/nestedRelationManagerData.test.ts +21 -0
  167. package/src/orm/modelDefaults.ts +21 -0
  168. package/src/pageData.ts +267 -47
  169. package/src/react/AppShell.tsx +55 -4
  170. package/src/react/PendingSuggestionApplierRegistry.ts +80 -0
  171. package/src/react/PendingSuggestionOverlayRegistry.ts +54 -0
  172. package/src/react/PendingSuggestionsContext.tsx +172 -0
  173. package/src/react/SchemaRenderer.tsx +504 -95
  174. package/src/react/cells/EditableCell.tsx +11 -2
  175. package/src/react/fields/CheckboxListInput.tsx +23 -2
  176. package/src/react/fields/ColorInput.tsx +22 -2
  177. package/src/react/fields/DateTimeInput.tsx +22 -2
  178. package/src/react/fields/FieldShell.tsx +167 -3
  179. package/src/react/fields/FileUploadInput.tsx +21 -2
  180. package/src/react/fields/KeyValueInput.tsx +32 -2
  181. package/src/react/fields/RadioInput.tsx +23 -2
  182. package/src/react/fields/SelectFieldInput.tsx +25 -2
  183. package/src/react/fields/SliderInput.tsx +20 -2
  184. package/src/react/fields/TagsInput.tsx +20 -2
  185. package/src/react/fields/ToggleFieldInput.tsx +23 -2
  186. package/src/react/index.ts +18 -0
  187. package/src/relationManagerData.test.ts +451 -2
  188. package/src/routes.ts +58 -2
  189. package/src/schema/Section.ts +17 -0
  190. package/src/schema/Wizard.ts +67 -0
  191. package/src/schema/containers.test.ts +90 -0
  192. package/src/schema/resolveSchema.test.ts +50 -0
  193. package/src/schema/resolveSchema.ts +79 -1
  194. package/src/sessionFilters.test.ts +23 -0
  195. package/src/sessionFilters.ts +11 -1
  196. package/src/styles/file-upload.css +13 -0
  197. package/src/vite.ts +9 -2
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotiq/pilotiq",
3
- "version": "0.6.2",
3
+ "version": "0.7.0",
4
4
  "description": "View-based admin panel for RudderJS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -57,7 +57,8 @@
57
57
  "./richtext": {
58
58
  "import": "./dist/richtext/index.js",
59
59
  "types": "./dist/richtext/index.d.ts"
60
- }
60
+ },
61
+ "./styles/file-upload.css": "./dist/styles/file-upload.css"
61
62
  },
62
63
  "dependencies": {
63
64
  "jiti": "^2.6.0",
@@ -97,8 +98,9 @@
97
98
  "vite": "^7"
98
99
  },
99
100
  "scripts": {
100
- "build": "tsc -p tsconfig.build.json",
101
- "dev": "tsc -p tsconfig.build.json --watch",
101
+ "build": "tsc -p tsconfig.build.json && pnpm run copy-assets",
102
+ "dev": "tsc -p tsconfig.build.json --watch & pnpm run copy-assets; wait",
103
+ "copy-assets": "mkdir -p dist/styles && cp -R src/styles/*.css dist/styles/",
102
104
  "typecheck": "tsc --noEmit",
103
105
  "clean": "rm -rf dist",
104
106
  "test": "tsc -p tsconfig.test.json && node --test \"dist-test/**/*.test.js\"; EXIT=$?; rm -rf dist-test; exit $EXIT"
@@ -160,4 +160,40 @@ describe('Column', () => {
160
160
  assert.equal((meta as Record<string, unknown>)['afterStateUpdated'], undefined)
161
161
  })
162
162
  })
163
+
164
+ describe('toggleable() user-visibility chrome', () => {
165
+ it('isToggleable + getToggleableConfig default to false / undefined', () => {
166
+ const col = Column.make('email')
167
+ assert.equal(col.isToggleable(), false)
168
+ assert.equal(col.getToggleableConfig(), undefined)
169
+ })
170
+
171
+ it('bare toggleable() opts in with defaults (visible by default)', () => {
172
+ const col = Column.make('email').toggleable()
173
+ assert.equal(col.isToggleable(), true)
174
+ assert.deepEqual(col.getToggleableConfig(), {})
175
+ const meta = col.toMeta() as Record<string, unknown>
176
+ assert.deepEqual(meta['toggleable'], {})
177
+ })
178
+
179
+ it('toggleable({ initiallyHidden: true }) starts off-screen', () => {
180
+ const col = Column.make('internalId').toggleable({ initiallyHidden: true })
181
+ const cfg = col.getToggleableConfig()
182
+ assert.equal(cfg?.initiallyHidden, true)
183
+ const meta = col.toMeta() as Record<string, unknown>
184
+ assert.deepEqual(meta['toggleable'], { initiallyHidden: true })
185
+ })
186
+
187
+ it('toggleable(false) explicitly opts back out', () => {
188
+ const col = Column.make('email').toggleable().toggleable(false)
189
+ assert.equal(col.isToggleable(), false)
190
+ const meta = col.toMeta() as Record<string, unknown>
191
+ assert.equal(meta['toggleable'], undefined)
192
+ })
193
+
194
+ it('omits the meta key when not opted in (sparse wire shape)', () => {
195
+ const meta = Column.make('plain').toMeta() as Record<string, unknown>
196
+ assert.equal('toggleable' in meta, false)
197
+ })
198
+ })
163
199
  })
package/src/Column.ts CHANGED
@@ -79,6 +79,14 @@ export type FormatStateHandler = (value: unknown, record: Record<string, unknown
79
79
  * server-side inside `loadTableRecords`. */
80
80
  export type ColumnRecordUrlHandler = (record: Record<string, unknown>) => string | undefined
81
81
 
82
+ /** Configuration for `Column.toggleable(...)`. The user can show / hide the
83
+ * column from a per-table dropdown; preference persists to localStorage so
84
+ * it survives reloads + SPA navs. `initiallyHidden` flips the default state
85
+ * so the column starts off-screen and the user opts in. */
86
+ export interface ColumnToggleableConfig {
87
+ initiallyHidden?: boolean
88
+ }
89
+
82
90
  export interface ColumnMeta extends ElementMeta {
83
91
  type: 'column'
84
92
  name: string
@@ -103,6 +111,10 @@ export interface ColumnMeta extends ElementMeta {
103
111
  * computed values for each summarizer land on the table meta under
104
112
  * `summaries[columnName]` (`SummaryResult[]`), not on the column. */
105
113
  summaries?: SummarizerMeta[]
114
+ /** True when the user can show / hide this column from the toolbar's
115
+ * "Columns" dropdown. `initiallyHidden` flips the default state so
116
+ * the column starts off until the user opts in. */
117
+ toggleable?: { initiallyHidden?: true }
106
118
  /** Render array values one-per-line (each item separated by `<br>`).
107
119
  * Composes with `bulleted()` — when both are set, `bulleted()` wins
108
120
  * and the renderer mounts a `<ul>` with bullet markers instead. */
@@ -222,6 +234,11 @@ export class Column extends Element {
222
234
  protected _richText?: ColumnRichTextKind
223
235
  protected _sanitize: boolean | SanitizeConfig = true
224
236
 
237
+ // User-toggleable column visibility — `Table.toggleColumns()` opt-in
238
+ // chrome reads this and stamps the toolbar dropdown. State persists
239
+ // per-table to localStorage so the user's choice sticks across loads.
240
+ protected _toggleable: false | ColumnToggleableConfig = false
241
+
225
242
  // ─── Editable cell columns (TextInput / Toggle / Select) ───
226
243
  // Per-cell PATCH validators — same shape as Field validators. Only
227
244
  // consulted when the column is editable (the route handler reads
@@ -249,6 +266,40 @@ export class Column extends Element {
249
266
  sortable(v = true): this { this._sortable = v; return this }
250
267
  searchable(v = true): this { this._searchable = v; return this }
251
268
 
269
+ /**
270
+ * Let the user show / hide this column from the table toolbar's
271
+ * "Columns" dropdown. Preference persists per-table to localStorage
272
+ * under `pilotiq.table.<currentPath>.columns.<col>` so the choice
273
+ * sticks across reloads + SPA navigations.
274
+ *
275
+ * Pass `{ initiallyHidden: true }` to start the column off-screen —
276
+ * useful for technical / debug columns the user opts into.
277
+ *
278
+ * Column.make('email').toggleable()
279
+ * Column.make('internalId').toggleable({ initiallyHidden: true })
280
+ * Column.make('name').toggleable(false) // explicit opt-out
281
+ *
282
+ * Any non-toggleable column always renders. Hidden state is purely
283
+ * presentational — the column's data still loads from the server (so
284
+ * sorts / filters that reference it keep working, and a re-toggle
285
+ * shows fresh values without a roundtrip).
286
+ */
287
+ toggleable(opts: boolean | ColumnToggleableConfig = true): this {
288
+ if (opts === false) {
289
+ this._toggleable = false
290
+ } else if (opts === true) {
291
+ this._toggleable = {}
292
+ } else {
293
+ this._toggleable = { ...opts }
294
+ }
295
+ return this
296
+ }
297
+
298
+ isToggleable(): boolean { return this._toggleable !== false }
299
+ getToggleableConfig(): ColumnToggleableConfig | undefined {
300
+ return this._toggleable === false ? undefined : this._toggleable
301
+ }
302
+
252
303
  // ─── Layout ───────────────────────────────────────────
253
304
 
254
305
  alignment(a: ColumnAlignment): this { this._alignment = a; return this }
@@ -631,6 +682,9 @@ export class Column extends Element {
631
682
  if (this._format !== undefined) meta.format = this._format
632
683
  if (this._formatState !== undefined) meta.hasFormatter = true
633
684
  if (this._summarizers.length > 0) meta.summaries = this._summarizers.map(s => s.toMeta())
685
+ if (this._toggleable !== false) {
686
+ meta.toggleable = this._toggleable.initiallyHidden ? { initiallyHidden: true } : {}
687
+ }
634
688
  if (this._listWithLineBreaks) meta.listWithLineBreaks = true
635
689
  if (this._bulleted) meta.bulleted = true
636
690
  if (this._copyMessage !== undefined) meta.copyMessage = this._copyMessage
package/src/Page.ts CHANGED
@@ -7,9 +7,11 @@ import { type IconValue, serializeIcon } from './icons/types.js'
7
7
  /**
8
8
  * Discriminator the framework uses for default rendering, route generation,
9
9
  * and breadcrumbs. `'custom'` is for standalone Pages that don't belong to
10
- * a Resource. The other modes correspond to the four resource page roles.
10
+ * a Resource. `'record'` is for record-scoped sub-pages declared under a
11
+ * Resource's `pages().record` map. The other four modes correspond to the
12
+ * standard resource page roles.
11
13
  */
12
- export type PageMode = 'list' | 'create' | 'edit' | 'view' | 'custom'
14
+ export type PageMode = 'list' | 'create' | 'edit' | 'view' | 'record' | 'custom'
13
15
 
14
16
  export interface PageMeta {
15
17
  slug: string
@@ -108,8 +110,15 @@ export class Page {
108
110
  /** Plan #10: authorization. Custom pages get a single `canAccess` gate
109
111
  * (no per-record predicates — pages are too freeform to assume a
110
112
  * record concept). Resource-bound default page subclasses can still
111
- * read their owning resource's predicates via `getResource()`. */
112
- static async canAccess(_user: unknown): Promise<boolean> { return true }
113
+ * read their owning resource's predicates via `getResource()`.
114
+ *
115
+ * Record sub-pages (declared under `ResourcePages.record`) receive
116
+ * the loaded parent record as the second argument so subclasses can
117
+ * gate on record state in addition to user. The parameter is
118
+ * optional so existing custom-page subclasses with `canAccess(user)`
119
+ * keep type-checking. Record-aware sub-pages typically override as
120
+ * `canAccess(user, record)`. */
121
+ static async canAccess(_user: unknown, _record?: unknown): Promise<boolean> { return true }
113
122
 
114
123
  /**
115
124
  * Optional back-reference to the owning Resource. Auto-generated default
package/src/Pilotiq.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type * as React from 'react'
1
2
  import type { Router } from '@rudderjs/router'
2
3
  import type { ResourceClass } from './Resource.js'
3
4
  import type { GlobalClass } from './Global.js'
@@ -228,10 +229,46 @@ export interface PilotiqConfig {
228
229
  * absent and the chrome doesn't mount.
229
230
  */
230
231
  rightPanels?: RightPanelContribution[]
232
+ /**
233
+ * Layout-level provider components registered via
234
+ * `Pilotiq.layoutProvider(C)` / `Pilotiq.layoutProviders([…])`. Plugins
235
+ * register React providers (e.g. an AI chat queue context, a tenant
236
+ * theme switcher) that wrap the panel's `<AppShell>` children — so
237
+ * the providers are in scope for every page in the panel, not just
238
+ * specific component slots. Order matters: the first registered
239
+ * provider sits closest to the root (outermost wrap); the last sits
240
+ * closest to the page tree (innermost wrap).
241
+ */
242
+ layoutProviders?: LayoutProviderComponent[]
243
+ /**
244
+ * AI suggestion mode — controls what happens when an AI agent calls a
245
+ * write tool against a form field.
246
+ *
247
+ * - `'auto'` (default): the write applies immediately to the form state.
248
+ * Existing behavior — agents take effect as soon as the tool returns.
249
+ * - `'review'`: the write is staged as a `PendingSuggestion` and the
250
+ * field shows an inline diff (text fields) or current → suggested
251
+ * comparison (other types) with Approve / Reject buttons. Approve
252
+ * runs the field's registered applier; Reject discards.
253
+ *
254
+ * VS Code-style review flow. Plan: `docs/plans/ai-review-mode.md`.
255
+ */
256
+ aiSuggestionsMode?: 'auto' | 'review'
231
257
  /** @internal Runtime theme overrides from DB. */
232
258
  _themeOverrides?: Partial<ThemeConfig>
233
259
  }
234
260
 
261
+ /**
262
+ * Shape a layout-provider component must implement. Receives the
263
+ * standard layout context (`basePath`, panel children) so providers can
264
+ * thread panel-aware values into their context — e.g. an AI chat
265
+ * provider needs `basePath` to know where to POST chat requests.
266
+ */
267
+ export type LayoutProviderComponent = React.ComponentType<{
268
+ children: React.ReactNode
269
+ basePath?: string
270
+ }>
271
+
235
272
  export class Pilotiq {
236
273
  private config: PilotiqConfig
237
274
  private installedPlugins: PilotiqPlugin[] = []
@@ -688,6 +725,78 @@ export class Pilotiq {
688
725
  return this.config.rightPanels ?? []
689
726
  }
690
727
 
728
+ /**
729
+ * Register a component that wraps the panel's `<AppShell>` children at
730
+ * the layout root. Plugins use this to mount React providers (AI chat
731
+ * queue context, tenant theme switcher, feature-flag overlay, …) so
732
+ * they're in scope for every page in the panel without consumers
733
+ * having to manually wrap their `+Layout.tsx`.
734
+ *
735
+ * Adapter packages typically call this from inside their plugin's
736
+ * `register(panel)` so consumers wire everything via `.plugins([…])`.
737
+ *
738
+ * Provider components receive `{ children, basePath? }` props.
739
+ * Registration order is preservation order: the first registered
740
+ * provider sits OUTERMOST (closest to the layout root); the last sits
741
+ * INNERMOST (closest to the page tree). When two providers depend on
742
+ * each other, register the producer first.
743
+ *
744
+ * @example
745
+ * ```ts
746
+ * // In a plugin's register(panel):
747
+ * panel.layoutProvider(({ children, basePath }) =>
748
+ * <AiUiProvider panelPath={basePath}>{children}</AiUiProvider>
749
+ * )
750
+ * ```
751
+ *
752
+ * @throws when `provider` isn't a function (component).
753
+ */
754
+ layoutProvider(provider: LayoutProviderComponent): this {
755
+ if (typeof provider !== 'function') {
756
+ throw new Error(
757
+ `[Pilotiq] layoutProvider: expected a React component, got ${typeof provider}.`,
758
+ )
759
+ }
760
+ const existing = this.config.layoutProviders ?? []
761
+ this.config.layoutProviders = [...existing, provider]
762
+ return this
763
+ }
764
+
765
+ /**
766
+ * Bulk variant of {@link layoutProvider}. Registers each provider in
767
+ * array order.
768
+ */
769
+ layoutProviders(list: LayoutProviderComponent[]): this {
770
+ for (const c of list) this.layoutProvider(c)
771
+ return this
772
+ }
773
+
774
+ /** @internal — read by the Vite plugin's `_components.ts` emitter. */
775
+ getLayoutProviders(): readonly LayoutProviderComponent[] {
776
+ return this.config.layoutProviders ?? []
777
+ }
778
+
779
+ /**
780
+ * Set the panel-wide AI suggestion mode.
781
+ *
782
+ * - `'auto'` (default) — agent writes apply immediately.
783
+ * - `'review'` — agent writes stage as `PendingSuggestion`s; the user
784
+ * approves/rejects via inline diff (text) or value-comparison panel
785
+ * (non-text). Reuses the Phase 8.5 applier registry on approve.
786
+ *
787
+ * Plan: `docs/plans/ai-review-mode.md`.
788
+ */
789
+ aiSuggestionsMode(mode: 'auto' | 'review'): this {
790
+ this.config.aiSuggestionsMode = mode
791
+ return this
792
+ }
793
+
794
+ /** @internal — read by `panelInfo()` and stamped onto the wire shape so
795
+ * the AI client tool knows which branch (apply vs queue) to take. */
796
+ getAiSuggestionsMode(): 'auto' | 'review' {
797
+ return this.config.aiSuggestionsMode ?? 'auto'
798
+ }
799
+
691
800
  /** @internal */
692
801
  enableThemeEditor(): void {
693
802
  this.config.themeEditor = true
package/src/Resource.ts CHANGED
@@ -16,6 +16,25 @@ export interface ResourcePages {
16
16
  create?: typeof Page
17
17
  edit?: typeof Page
18
18
  view?: typeof Page
19
+ /**
20
+ * Record-scoped custom sub-pages. Each entry is a `Page` subclass
21
+ * mounted at `${resourceBase}/${slug}/:id/${subPageSlug}`. Tabs show
22
+ * up in the `RelationTabs` sub-nav strip between the `__edit` tab
23
+ * and the relation-manager tabs.
24
+ *
25
+ * Sub-page slugs are validated at panel boot:
26
+ * - Must match `[A-Za-z0-9_-]+`.
27
+ * - Must not collide with reserved tokens (`edit`, `delete`,
28
+ * `restore`, `force-delete`, `_form`, `_action`, `_search`,
29
+ * `_uploads`, `_attach`, `_detach`, `_bulk-detach`, `create`).
30
+ * - Must not collide with any `RelationManager.relationship` on
31
+ * the same resource.
32
+ *
33
+ * Each sub-page receives the loaded record in `ctx.record` and runs
34
+ * its own `Page.canAccess(user, record)` gate after the parent
35
+ * resource's `canAccess` + `canView` predicates have passed.
36
+ */
37
+ record?: Record<string, typeof Page>
19
38
  }
20
39
 
21
40
  /** Pill color tokens for `navigationBadgeColor`. Matches the shared color
@@ -406,6 +425,16 @@ export abstract class Resource {
406
425
  return { ...defaults, ...overrides }
407
426
  }
408
427
 
428
+ /**
429
+ * Sugar over `resolvePages().record ?? {}` for callers that only need
430
+ * the record-scoped sub-pages (route registration, tab insertion, boot
431
+ * validation). Returns an empty object when no record sub-pages are
432
+ * declared so callers can iterate without a defensive null check.
433
+ */
434
+ static getRecordPages(): Record<string, typeof Page> {
435
+ return this.resolvePages().record ?? {}
436
+ }
437
+
409
438
  /**
410
439
  * Plan #11 — relation managers mounted under this resource's edit /
411
440
  * view pages. Each entry is a `RelationManager` subclass; routes are
@@ -157,7 +157,7 @@ function buildTableCtxFromQuery(
157
157
 
158
158
  const tableFilters = table.getFilters?.() ?? []
159
159
  const filterValues: Record<string, string> = {}
160
- const reserved = new Set(['search', 'sort', 'page', 'perPage', 'group'])
160
+ const reserved = new Set(['search', 'sort', 'page', 'perPage', 'group', 'groupKey'])
161
161
  for (const f of tableFilters) {
162
162
  const name = f.name as string
163
163
  if (reserved.has(name)) continue
@@ -6,10 +6,25 @@ export type SelectColumnOptionsInput =
6
6
  | Record<string, string>
7
7
  | Array<ColumnSelectOption>
8
8
 
9
+ /** Per-row resolver — runs once per visible row at table-data time and
10
+ * stamps the resolved options on the row under `_cellSelectOptions[col]`
11
+ * so the inline `<select>` shows row-specific values (e.g. assignee
12
+ * candidates filtered by record team). May return a Promise. */
13
+ export type SelectColumnOptionsResolver =
14
+ (record: unknown) => SelectColumnOptionsInput | Promise<SelectColumnOptionsInput>
15
+
16
+ /** Normalize either input shape to the canonical array form. Shared
17
+ * between the static `.options()` setter and the per-row resolver path
18
+ * inside `dispatchTable.ts`. */
19
+ export function normalizeSelectOptions(opts: SelectColumnOptionsInput): ColumnSelectOption[] {
20
+ return Array.isArray(opts)
21
+ ? opts.map(o => ({ value: o.value, label: o.label }))
22
+ : Object.entries(opts).map(([value, label]) => ({ value, label }))
23
+ }
24
+
9
25
  /**
10
26
  * Inline-edit select. Renders a `<select>` in the cell; each change
11
- * fires an immediate PATCH. Static options only in v1 — async per-row
12
- * resolvers are deferred until a consumer hits the case.
27
+ * fires an immediate PATCH.
13
28
  *
14
29
  * SelectColumn.make('status')
15
30
  * .options({ draft: 'Draft', published: 'Published', archived: 'Archived' })
@@ -17,9 +32,24 @@ export type SelectColumnOptionsInput =
17
32
  *
18
33
  * Pair with `Column.disabled(record => …)` for per-row gating
19
34
  * (e.g. forbid changing status once archived).
35
+ *
36
+ * Per-row options resolve via `.options(record => …)`:
37
+ *
38
+ * SelectColumn.make('assigneeId')
39
+ * .options(async (row) => {
40
+ * const team = await Team.find(row.teamId)
41
+ * return team.members.map(m => ({ value: String(m.id), label: m.name }))
42
+ * })
43
+ *
44
+ * The resolver runs once per visible row in `loadTableRecords` and
45
+ * stamps the resolved option list on `row._cellSelectOptions[col.name]`.
46
+ * Failed resolvers stay silent — the cell falls back to whatever was
47
+ * passed as a static `.options(...)` (or an empty list) so a single bad
48
+ * row doesn't break the whole table.
20
49
  */
21
50
  export class SelectColumn extends Column {
22
51
  protected _options: ColumnSelectOption[] = []
52
+ protected _optionsResolver?: SelectColumnOptionsResolver
23
53
  protected _nullable = false
24
54
  protected _selectablePlaceholder = true
25
55
 
@@ -29,13 +59,18 @@ export class SelectColumn extends Column {
29
59
  return c
30
60
  }
31
61
 
32
- /** Static options. Accepts either `{ value: label }` or
33
- * `[{ value, label }]`. Re-calling replaces the previous set. */
34
- options(opts: SelectColumnOptionsInput): this {
35
- if (Array.isArray(opts)) {
36
- this._options = opts.map(o => ({ value: o.value, label: o.label }))
62
+ /** Static options OR a per-row resolver. Function form receives the
63
+ * raw record and may return a Promise runs once per row in
64
+ * `loadTableRecords`. Re-calling replaces the previous set; mixing
65
+ * static + resolver replaces both because the renderer reads the
66
+ * per-row stamp first and falls back to the static list. */
67
+ options(opts: SelectColumnOptionsInput | SelectColumnOptionsResolver): this {
68
+ if (typeof opts === 'function') {
69
+ this._optionsResolver = opts
70
+ this._options = []
37
71
  } else {
38
- this._options = Object.entries(opts).map(([value, label]) => ({ value, label }))
72
+ this._options = normalizeSelectOptions(opts)
73
+ delete this._optionsResolver
39
74
  }
40
75
  return this
41
76
  }
@@ -51,8 +86,11 @@ export class SelectColumn extends Column {
51
86
  selectablePlaceholder(v = true): this { this._selectablePlaceholder = v; return this }
52
87
 
53
88
  getOptions(): ReadonlyArray<ColumnSelectOption> { return this._options }
89
+ getOptionsResolver(): SelectColumnOptionsResolver | undefined { return this._optionsResolver }
54
90
 
55
91
  protected override serializeExtras(meta: ColumnMeta): void {
92
+ // The static list still serializes when set so the renderer has a
93
+ // fallback if the per-row resolver throws or stamps no options.
56
94
  if (this._options.length > 0) meta.selectOptions = this._options.slice()
57
95
  if (this._nullable) meta.selectNullable = true
58
96
  if (!this._selectablePlaceholder) meta.selectablePlaceholder = false
@@ -190,4 +190,49 @@ describe('SelectColumn', () => {
190
190
  const meta = SelectColumn.make('status').options({ a: 'A' }).toMeta()
191
191
  assert.equal(meta.selectablePlaceholder, undefined)
192
192
  })
193
+
194
+ describe('options(record => …) per-row resolver', () => {
195
+ it('stores the resolver and clears any prior static options', () => {
196
+ const col = SelectColumn.make('assigneeId')
197
+ .options({ a: 'Alice', b: 'Bob' })
198
+ .options(_row => ({ x: 'X' }))
199
+ assert.equal(col.getOptions().length, 0)
200
+ assert.equal(typeof col.getOptionsResolver(), 'function')
201
+ })
202
+
203
+ it('switching back to a static list clears the resolver', () => {
204
+ const col = SelectColumn.make('assigneeId')
205
+ .options(_row => ({ x: 'X' }))
206
+ .options({ a: 'Alice' })
207
+ assert.equal(col.getOptionsResolver(), undefined)
208
+ assert.deepEqual(col.getOptions().slice(), [{ value: 'a', label: 'Alice' }])
209
+ })
210
+
211
+ it('static options still serialize when only static is set', () => {
212
+ const meta = SelectColumn.make('status').options({ a: 'A' }).toMeta()
213
+ assert.deepEqual(meta.selectOptions, [{ value: 'a', label: 'A' }])
214
+ })
215
+
216
+ it('resolver-only column omits selectOptions from meta (per-row stamp wins)', () => {
217
+ const meta = SelectColumn.make('assigneeId').options(_row => ({ x: 'X' })).toMeta()
218
+ assert.equal(meta.selectOptions, undefined)
219
+ })
220
+
221
+ it('mixing a static fallback with a resolver — resolver wins, static stays in meta', () => {
222
+ const col = SelectColumn.make('assigneeId')
223
+ .options({ unknown: 'Unassigned' })
224
+ // Re-assign as resolver — resolver wipes the static list per the
225
+ // "re-calling replaces the previous set" contract. To keep the
226
+ // static fallback, set the resolver first then add static.
227
+ col.options(_row => ({ x: 'X' }))
228
+ assert.equal(col.getOptions().length, 0)
229
+
230
+ // The other ordering: static after resolver clears the resolver.
231
+ const col2 = SelectColumn.make('assigneeId')
232
+ .options(_row => ({ x: 'X' }))
233
+ .options({ unknown: 'Unassigned' })
234
+ assert.equal(col2.getOptionsResolver(), undefined)
235
+ assert.deepEqual(col2.getOptions().slice(), [{ value: 'unknown', label: 'Unassigned' }])
236
+ })
237
+ })
193
238
  })
@@ -610,5 +610,8 @@ export function defaultPages(R: ResourceClass): Required<ResourcePages> {
610
610
  create: defaultCreatePage(R),
611
611
  edit: defaultEditPage(R),
612
612
  view: defaultViewPage(R),
613
+ // Record sub-pages have no framework defaults — users register them
614
+ // explicitly via `static pages() { return { record: { … } } }`.
615
+ record: {},
613
616
  }
614
617
  }
@@ -147,6 +147,15 @@ export class Form<R = unknown> extends Element {
147
147
  private _values?: Record<string, unknown>
148
148
  private _errors?: ValidationErrors
149
149
 
150
+ /**
151
+ * Cascading `inlineLabel` default for every descendant `Field`. Read
152
+ * by the resolver in `deriveChildContext` and pushed down via
153
+ * `RenderContext.inlineLabelDefault`. Per-field `Field.inlineLabel(...)`
154
+ * overrides; nested `Section.inlineLabel(...)` overrides for its
155
+ * subtree.
156
+ */
157
+ private _inlineLabel?: boolean
158
+
150
159
  // Plan #5 — partial-resolve endpoint. Stamped by the route handler at
151
160
  // render time when any descendant field is `live()`; emits as
152
161
  // (Plan #8) `wizardUrl` for step validation endpoint. Stamped only when
@@ -176,6 +185,16 @@ export class Form<R = unknown> extends Element {
176
185
  method(m: FormMethod): this { this._method = m; return this }
177
186
  action(url: string): this { this._action = url; return this }
178
187
 
188
+ /**
189
+ * Cascade `inlineLabel` to every descendant `Field` whose own
190
+ * `.inlineLabel(...)` hasn't been called. Pass `false` explicitly to
191
+ * cascade label-above when a parent (rare) had set it. Read by the
192
+ * resolver and pushed down via `RenderContext.inlineLabelDefault`.
193
+ */
194
+ inlineLabel(v = true): this { this._inlineLabel = v; return this }
195
+ /** Internal — read by `resolveSchema.deriveChildContext`. */
196
+ getInlineLabel(): boolean | undefined { return this._inlineLabel }
197
+
179
198
  // ─── Lifecycle setters ────────────────────────────────
180
199
 
181
200
  /** Form-level validators run after field-level ones. Useful for cross-field rules. */