feat: add domains, ideas, layouts, widgets API modules

- Add DomainsModule with full CRUD, search, and activity logging
- Add IdeasModule with quick capture endpoint
- Add LayoutsModule for user dashboard layouts
- Add WidgetsModule for widget definitions (read-only)
- Update ActivityService with domain/idea logging methods
- Register all new modules in AppModule
This commit is contained in:
Jason Woltje
2026-01-29 13:47:03 -06:00
parent 973502f26e
commit f47dd8bc92
66 changed files with 4277 additions and 29 deletions
+110
View File
@@ -132,6 +132,9 @@ importers:
date-fns:
specifier: ^4.1.0
version: 4.1.0
lucide-react:
specifier: ^0.563.0
version: 0.563.0([email protected])
next:
specifier: ^16.1.6
version: 16.1.6(@babel/[email protected])([email protected]([email protected]))([email protected])
@@ -141,6 +144,9 @@ importers:
react-dom:
specifier: ^19.0.0
version: 19.2.4([email protected])
react-grid-layout:
specifier: ^2.2.2
version: 2.2.2([email protected]([email protected]))([email protected])
devDependencies:
'@mosaic/config':
specifier: workspace:*
@@ -163,6 +169,9 @@ importers:
'@types/react-dom':
specifier: ^19.0.3
version: 19.2.3(@types/[email protected])
'@types/react-grid-layout':
specifier: ^2.1.0
version: 2.1.0([email protected]([email protected]))([email protected])
'@vitejs/plugin-react':
specifier: ^4.3.4
version: 4.7.0([email protected](@types/[email protected])([email protected])([email protected])([email protected]))
@@ -1592,6 +1601,10 @@ packages:
peerDependencies:
'@types/react': ^19.2.0
'@types/[email protected]':
resolution: {integrity: sha512-pHEjVg9ert6BDFHFQ1IEdLUkd2gasJvyti5lV2kE46N/R07ZiaSZpAXeXJAA1MXy/Qby23fZmiuEgZkITxPXug==}
deprecated: This is a stub types definition. react-grid-layout provides its own type definitions, so you do not need this installed.
'@types/[email protected]':
resolution: {integrity: sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==}
@@ -2137,6 +2150,10 @@ packages:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
[email protected]:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
[email protected]:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -2592,6 +2609,9 @@ packages:
[email protected]:
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
[email protected]:
resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==}
[email protected]:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
@@ -2980,6 +3000,10 @@ packages:
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
engines: {node: '>=10'}
[email protected]:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
[email protected]:
resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
@@ -2993,6 +3017,11 @@ packages:
[email protected]:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
[email protected]:
resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
[email protected]:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@@ -3378,6 +3407,9 @@ packages:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
[email protected]:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
[email protected]:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@@ -3419,6 +3451,21 @@ packages:
peerDependencies:
react: ^19.2.4
[email protected]:
resolution: {integrity: sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==}
peerDependencies:
react: '>= 16.3.0'
react-dom: '>= 16.3.0'
[email protected]:
resolution: {integrity: sha512-yNo9pxQWoxHWRAwHGSVT4DEGELYPyQ7+q9lFclb5jcqeFzva63/2F72CryS/jiTIr/SBIlTaDdyjqH+ODg8oBw==}
peerDependencies:
react: '>= 16.3.0'
react-dom: '>= 16.3.0'
[email protected]:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
[email protected]:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
@@ -3426,6 +3473,12 @@ packages:
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
engines: {node: '>=0.10.0'}
[email protected]:
resolution: {integrity: sha512-liJBNayhX7qA4tBJiBD321FDhJxgGTJ07uzH5zSORXoE8h7PyEZ8mLqmosST7ppf6C4zUsbd2gzDMmBCfFp9Lw==}
peerDependencies:
react: '>= 16.3'
react-dom: '>= 16.3'
[email protected]:
resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==}
engines: {node: '>=0.10.0'}
@@ -3456,6 +3509,9 @@ packages:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
[email protected]:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
[email protected]:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -5480,6 +5536,13 @@ snapshots:
dependencies:
'@types/react': 19.2.10
'@types/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
react-grid-layout: 2.2.2([email protected]([email protected]))([email protected])
transitivePeerDependencies:
- react
- react-dom
'@types/[email protected]':
dependencies:
csstype: 3.2.3
@@ -6142,6 +6205,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]:
dependencies:
color-name: 1.1.4
@@ -6516,6 +6581,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]: {}
[email protected]: {}
@@ -6900,6 +6967,10 @@ snapshots:
chalk: 4.1.2
is-unicode-supported: 0.1.0
[email protected]:
dependencies:
js-tokens: 4.0.0
[email protected]: {}
[email protected]: {}
@@ -6910,6 +6981,10 @@ snapshots:
dependencies:
yallist: 3.1.1
[email protected]([email protected]):
dependencies:
react: 19.2.4
[email protected]: {}
[email protected]:
@@ -7277,6 +7352,12 @@ snapshots:
kleur: 3.0.3
sisteransi: 1.0.5
[email protected]:
dependencies:
loose-envify: 1.4.0
object-assign: 4.1.1
react-is: 16.13.1
[email protected]:
dependencies:
forwarded: 0.2.0
@@ -7325,10 +7406,37 @@ snapshots:
react: 19.2.4
scheduler: 0.27.0
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
clsx: 2.1.1
prop-types: 15.8.1
react: 19.2.4
react-dom: 19.2.4([email protected])
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
clsx: 2.1.1
fast-equals: 4.0.3
prop-types: 15.8.1
react: 19.2.4
react-dom: 19.2.4([email protected])
react-draggable: 4.5.0([email protected]([email protected]))([email protected])
react-resizable: 3.1.3([email protected]([email protected]))([email protected])
resize-observer-polyfill: 1.5.1
[email protected]: {}
[email protected]: {}
[email protected]: {}
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
prop-types: 15.8.1
react: 19.2.4
react-dom: 19.2.4([email protected])
react-draggable: 4.5.0([email protected]([email protected]))([email protected])
[email protected]: {}
[email protected]:
@@ -7352,6 +7460,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]: {}
[email protected]: {}