@nubitio/crud 0.4.1 → 0.5.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.
package/dist/style.css CHANGED
@@ -3276,8 +3276,7 @@ html[data-density=compact] .nb-datagrid .nb-badge {
3276
3276
 
3277
3277
  #wrapper.wrapper--with-page > .data-grid-view,
3278
3278
  #wrapper.wrapper--with-page > .view.datagrid-list,
3279
- #wrapper.wrapper--with-page > .nb-bulk-toolbar,
3280
- #wrapper.wrapper--with-page > .nb-audit-trail-toolbar {
3279
+ #wrapper.wrapper--with-page > .nb-bulk-toolbar {
3281
3280
  display: none;
3282
3281
  }
3283
3282
 
@@ -3292,6 +3291,160 @@ html[data-density=compact] .nb-crud-page-shell__footer {
3292
3291
  gap: var(--space-1);
3293
3292
  padding: var(--space-2) var(--space-3);
3294
3293
  }
3294
+ .nb-audit-trail {
3295
+ display: flex;
3296
+ flex-direction: column;
3297
+ gap: var(--space-3);
3298
+ min-height: 0;
3299
+ }
3300
+
3301
+ .nb-audit-trail__subtitle {
3302
+ color: var(--text-secondary);
3303
+ font-size: var(--font-size-sm, 0.8125rem);
3304
+ line-height: 1.4;
3305
+ margin: calc(var(--space-1) * -1) 0 0;
3306
+ }
3307
+
3308
+ .nb-audit-trail__timeline {
3309
+ display: flex;
3310
+ flex-direction: column;
3311
+ gap: 0;
3312
+ list-style: none;
3313
+ margin: 0;
3314
+ padding: 0;
3315
+ }
3316
+
3317
+ .nb-audit-trail__entry {
3318
+ display: grid;
3319
+ gap: var(--space-2);
3320
+ grid-template-columns: 12px 1fr;
3321
+ padding: var(--space-3) 0;
3322
+ position: relative;
3323
+ }
3324
+ .nb-audit-trail__entry:not(:last-child) {
3325
+ border-bottom: 1px solid var(--border-color);
3326
+ }
3327
+ .nb-audit-trail__entry::before {
3328
+ background: var(--border-color);
3329
+ bottom: 0;
3330
+ content: "";
3331
+ left: 5px;
3332
+ position: absolute;
3333
+ top: calc(var(--space-3) + 6px);
3334
+ width: 2px;
3335
+ }
3336
+ .nb-audit-trail__entry:last-child::before {
3337
+ display: none;
3338
+ }
3339
+
3340
+ .nb-audit-trail__marker {
3341
+ background: var(--surface-2);
3342
+ border: 2px solid var(--accent-color);
3343
+ border-radius: 50%;
3344
+ height: 12px;
3345
+ margin-top: 4px;
3346
+ position: relative;
3347
+ width: 12px;
3348
+ z-index: 1;
3349
+ }
3350
+
3351
+ .nb-audit-trail__entry--create .nb-audit-trail__marker {
3352
+ border-color: var(--success-color);
3353
+ }
3354
+
3355
+ .nb-audit-trail__entry--update .nb-audit-trail__marker {
3356
+ border-color: var(--info-color, var(--accent-color));
3357
+ }
3358
+
3359
+ .nb-audit-trail__entry--delete .nb-audit-trail__marker {
3360
+ border-color: var(--danger-color);
3361
+ }
3362
+
3363
+ .nb-audit-trail__meta {
3364
+ align-items: center;
3365
+ display: flex;
3366
+ flex-wrap: wrap;
3367
+ gap: var(--space-2);
3368
+ }
3369
+
3370
+ .nb-audit-trail__timestamp {
3371
+ color: var(--text-secondary);
3372
+ font-size: var(--font-size-xs, 0.75rem);
3373
+ font-variant-numeric: tabular-nums;
3374
+ }
3375
+
3376
+ .nb-audit-trail__user {
3377
+ color: var(--text-primary);
3378
+ font-size: var(--font-size-sm, 0.8125rem);
3379
+ font-weight: 500;
3380
+ }
3381
+
3382
+ .nb-audit-trail__changes {
3383
+ display: flex;
3384
+ flex-direction: column;
3385
+ gap: var(--space-2);
3386
+ list-style: none;
3387
+ margin: 0;
3388
+ padding: 0;
3389
+ }
3390
+
3391
+ .nb-audit-trail__change {
3392
+ background: var(--surface-2);
3393
+ border: 1px solid var(--border-color);
3394
+ border-radius: var(--radius-md, 6px);
3395
+ display: grid;
3396
+ gap: var(--space-1);
3397
+ padding: var(--space-2) var(--space-3);
3398
+ }
3399
+
3400
+ .nb-audit-trail__field {
3401
+ color: var(--text-primary);
3402
+ font-size: var(--font-size-sm, 0.8125rem);
3403
+ font-weight: 600;
3404
+ }
3405
+
3406
+ .nb-audit-trail__diff {
3407
+ align-items: center;
3408
+ color: var(--text-secondary);
3409
+ display: flex;
3410
+ flex-wrap: wrap;
3411
+ font-size: var(--font-size-sm, 0.8125rem);
3412
+ gap: var(--space-2);
3413
+ }
3414
+
3415
+ .nb-audit-trail__value {
3416
+ font-variant-numeric: tabular-nums;
3417
+ max-width: 100%;
3418
+ overflow-wrap: anywhere;
3419
+ }
3420
+
3421
+ .nb-audit-trail__value--before {
3422
+ color: var(--danger-color);
3423
+ text-decoration: line-through;
3424
+ text-decoration-color: color-mix(in srgb, var(--danger-color) 55%, transparent);
3425
+ }
3426
+
3427
+ .nb-audit-trail__value--after {
3428
+ color: var(--success-color);
3429
+ font-weight: 500;
3430
+ }
3431
+
3432
+ .nb-audit-trail__arrow {
3433
+ color: var(--text-tertiary);
3434
+ flex: 0 0 auto;
3435
+ }
3436
+
3437
+ .nb-audit-trail__skeleton {
3438
+ display: flex;
3439
+ flex-direction: column;
3440
+ gap: var(--space-3);
3441
+ }
3442
+
3443
+ .nb-audit-trail__error {
3444
+ display: flex;
3445
+ flex-direction: column;
3446
+ gap: var(--space-3);
3447
+ }
3295
3448
  .nb-smart-crud-fallback {
3296
3449
  display: flex;
3297
3450
  flex-direction: column;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nubitio/crud",
3
- "version": "0.4.1",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "description": "Declarative CRUD engine with field DSL, forms, datagrids, RBAC, conditional logic and pluggable adapters (Hydra/REST).",
6
6
  "license": "MIT",
@@ -56,8 +56,8 @@
56
56
  "react-dom": "^19.0.0",
57
57
  "react-i18next": "^14.0.0",
58
58
  "react-router-dom": "^6.0.0",
59
- "@nubitio/core": "^0.4.1",
60
- "@nubitio/ui": "^0.4.1"
59
+ "@nubitio/core": "^0.5.1",
60
+ "@nubitio/ui": "^0.5.1"
61
61
  },
62
62
  "dependencies": {
63
63
  "react-dropzone": "^15.0.0"