@altertable/data-app 0.61.0 → 0.62.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 (69) hide show
  1. package/AGENTS.md +5 -3
  2. package/CONTRIBUTING.md +7 -4
  3. package/README.md +14 -14
  4. package/dist/chunks/{contract-ehk50k7e.js → contract-3bnrf5pf.js} +25 -3
  5. package/dist/chunks/contract-3bnrf5pf.js.map +10 -0
  6. package/dist/chunks/{contract-zr4s2g7m.js → contract-4vrw9zk9.js} +41 -11
  7. package/dist/chunks/contract-4vrw9zk9.js.map +12 -0
  8. package/dist/chunks/{contract-14vxdcrs.js → contract-farfe948.js} +17 -21
  9. package/dist/chunks/contract-farfe948.js.map +10 -0
  10. package/dist/chunks/contract-nt819swq.js.map +1 -1
  11. package/dist/chunks/{contract-7gpsee0v.js → contract-rrm7s5zp.js} +48 -19
  12. package/dist/chunks/contract-rrm7s5zp.js.map +12 -0
  13. package/dist/chunks/{contract-d9skd1n7.js → contract-xjv197ck.js} +161 -14
  14. package/dist/chunks/contract-xjv197ck.js.map +13 -0
  15. package/dist/client/index.js +6 -4
  16. package/dist/client/index.js.map +1 -1
  17. package/dist/core/appearance.js +1 -1
  18. package/dist/core/contract.js +5 -3
  19. package/dist/core/contract.js.map +1 -1
  20. package/dist/embed/index.js +42 -8
  21. package/dist/embed/index.js.map +5 -4
  22. package/dist/local.js +191 -79
  23. package/dist/local.js.map +8 -7
  24. package/dist/react/embed/index.js +84 -99
  25. package/dist/react/embed/index.js.map +4 -5
  26. package/dist/react/index.css +156 -6
  27. package/dist/react/index.js +313 -152
  28. package/dist/react/index.js.map +17 -13
  29. package/dist/server.js +172 -76
  30. package/dist/server.js.map +7 -6
  31. package/dist/types/client/iframe.d.ts +14 -0
  32. package/dist/types/client/index.d.ts +19 -13
  33. package/dist/types/core/appearance.d.ts +7 -6
  34. package/dist/types/core/contract.d.ts +3 -3
  35. package/dist/types/core/messages.d.ts +7 -1
  36. package/dist/types/core/operation.d.ts +27 -0
  37. package/dist/types/core/presentation.d.ts +7 -0
  38. package/dist/types/embed/bridge.d.ts +12 -0
  39. package/dist/types/embed/host.d.ts +10 -3
  40. package/dist/types/embed/index.d.ts +7 -4
  41. package/dist/types/embed/{shell.d.ts → source.d.ts} +5 -4
  42. package/dist/types/embed/sql.d.ts +4 -0
  43. package/dist/types/react/embed/bridge.d.ts +19 -10
  44. package/dist/types/react/embed/index.d.ts +0 -2
  45. package/dist/types/react/ui/DataAppSkeleton.d.ts +8 -0
  46. package/dist/types/react/ui/SearchInput.d.ts +1 -1
  47. package/dist/types/react/ui/index.d.ts +2 -0
  48. package/dist/types/react/ui/useAppAppearance.d.ts +3 -0
  49. package/dist/types/react/ui/useDataAppPresentation.d.ts +3 -0
  50. package/dist/types/react/view-controls.d.ts +1 -1
  51. package/dist/{bootstrap.js → worker.js} +144 -12
  52. package/docs/app-authoring.md +24 -4
  53. package/docs/appearance.md +21 -8
  54. package/docs/client.md +39 -2
  55. package/docs/contract.md +2 -2
  56. package/docs/embed.md +105 -18
  57. package/docs/react-embed.md +84 -24
  58. package/docs/react.md +51 -0
  59. package/docs/server-bun.md +5 -0
  60. package/docs/worker.md +57 -0
  61. package/package.json +3 -3
  62. package/dist/chunks/contract-14vxdcrs.js.map +0 -10
  63. package/dist/chunks/contract-7gpsee0v.js.map +0 -11
  64. package/dist/chunks/contract-d9skd1n7.js.map +0 -12
  65. package/dist/chunks/contract-ehk50k7e.js.map +0 -10
  66. package/dist/chunks/contract-zr4s2g7m.js.map +0 -12
  67. package/dist/types/embed/standalone.d.ts +0 -1
  68. package/dist/types/react/embed/shell.d.ts +0 -10
  69. package/docs/bootstrap.md +0 -76
@@ -334,7 +334,7 @@
334
334
  min-width: 0;
335
335
  }
336
336
 
337
- .altertable-request-hint[data-state="error"] > svg {
337
+ .altertable-request-hint[data-state="error"] .altertable-request-hint-copy > svg {
338
338
  color: var(--at-danger, #b42318);
339
339
  }
340
340
 
@@ -444,6 +444,17 @@
444
444
  }
445
445
  }
446
446
 
447
+ .altertable-request-hint-copy {
448
+ display: inline-flex;
449
+ align-items: center;
450
+ gap: 6px;
451
+ min-width: 0;
452
+ }
453
+
454
+ .altertable-request-hint-copy > svg {
455
+ flex: none;
456
+ }
457
+
447
458
  /* src/react/ui/GradientScroll.css */
448
459
  .altertable-gradient-scroll {
449
460
  overflow: auto;
@@ -558,6 +569,7 @@
558
569
  .altertable-combobox-popover {
559
570
  z-index: 150;
560
571
  min-width: max(var(--trigger-width), 240px);
572
+ overflow: hidden;
561
573
  border: 1px solid var(--at-border, #e3e6e8);
562
574
  border-radius: var(--at-radius-surface, 12px);
563
575
  background: var(--at-surface, #fff);
@@ -574,7 +586,25 @@
574
586
 
575
587
  .altertable-combobox-dialog .altertable-search-input-wrap {
576
588
  box-sizing: border-box;
577
- width: 100%;
589
+ border: 0;
590
+ border-bottom: 1px solid var(--at-border, #e3e6e8);
591
+ border-radius: 0;
592
+ width: calc(100% + 16px);
593
+ margin: -8px -8px 8px;
594
+ padding: 6px 17px;
595
+ }
596
+
597
+ .altertable-combobox-dialog .altertable-search-input-wrap:focus-within {
598
+ outline: none;
599
+ border-bottom-color: var(--at-border, #e3e6e8);
600
+ }
601
+
602
+ .altertable-combobox-dialog .altertable-search-input-wrap > svg {
603
+ opacity: .65;
604
+ }
605
+
606
+ .altertable-combobox-dialog .altertable-search-input-wrap:focus-within > svg {
607
+ opacity: 1;
578
608
  }
579
609
 
580
610
  .altertable-combobox-status {
@@ -672,6 +702,16 @@
672
702
  height: 24px;
673
703
  }
674
704
 
705
+ .altertable-combobox-dialog > .altertable-request-hint[data-state="error"] {
706
+ display: flex;
707
+ text-align: center;
708
+ flex-direction: column;
709
+ align-items: center;
710
+ gap: 6px;
711
+ height: auto;
712
+ margin: 12px 10px 4px;
713
+ }
714
+
675
715
  /* src/react/ui/Checkbox.css */
676
716
  .altertable-checkbox {
677
717
  position: relative;
@@ -1000,7 +1040,6 @@
1000
1040
 
1001
1041
  .altertable-date-range-compare {
1002
1042
  display: flex;
1003
- border-top: 1px solid var(--at-border, #e3e6e8);
1004
1043
  cursor: pointer;
1005
1044
  align-items: flex-start;
1006
1045
  gap: 9px;
@@ -3046,16 +3085,16 @@ button {
3046
3085
 
3047
3086
  .altertable-data-boundary-notice {
3048
3087
  display: flex;
3049
- border: 1px solid var(--at-border, #e3e6e8);
3050
3088
  border-radius: var(--at-radius-control, 8px);
3051
3089
  color: var(--at-muted, #687078);
3052
- background: var(--at-subtle, #f6f7f7);
3090
+ background: none;
3091
+ border: 0;
3053
3092
  flex-wrap: wrap;
3054
3093
  align-items: center;
3055
3094
  gap: 8px;
3056
3095
  min-height: 44px;
3057
3096
  margin: 0 0 14px;
3058
- padding: 8px 12px;
3097
+ padding: 8px 0;
3059
3098
  font-size: 12px;
3060
3099
  line-height: 1.45;
3061
3100
  }
@@ -3128,8 +3167,11 @@ button {
3128
3167
 
3129
3168
  .altertable-status-panel[data-status="error"] {
3130
3169
  box-sizing: border-box;
3170
+ box-shadow: none;
3131
3171
  display: grid;
3132
3172
  grid-template-columns: 18px minmax(0, 1fr);
3173
+ background: none;
3174
+ border: 0;
3133
3175
  align-items: start;
3134
3176
  gap: 18px 14px;
3135
3177
  width: min(100%, 520px);
@@ -3517,6 +3559,48 @@ button {
3517
3559
  }
3518
3560
  }
3519
3561
 
3562
+ .altertable-button.altertable-widget-heading-trigger {
3563
+ display: inline;
3564
+ box-shadow: none;
3565
+ color: inherit;
3566
+ font: inherit;
3567
+ letter-spacing: inherit;
3568
+ text-align: left;
3569
+ background: none;
3570
+ border: 0;
3571
+ border-radius: 2px;
3572
+ min-height: 0;
3573
+ padding: 0;
3574
+ }
3575
+
3576
+ .altertable-widget-heading-trigger > svg {
3577
+ display: inline-block;
3578
+ vertical-align: -2px;
3579
+ opacity: 0;
3580
+ margin-left: 4px;
3581
+ transition: opacity .12s;
3582
+ }
3583
+
3584
+ .altertable-widget-heading-trigger:hover > svg, .altertable-widget-heading-trigger[data-open="true"] > svg {
3585
+ opacity: 1;
3586
+ }
3587
+
3588
+ .altertable-widget-heading-trigger:focus-visible > svg {
3589
+ opacity: 1;
3590
+ }
3591
+
3592
+ @media (hover: none) {
3593
+ .altertable-widget-heading-trigger > svg {
3594
+ opacity: 1;
3595
+ }
3596
+ }
3597
+
3598
+ @media (prefers-reduced-motion: reduce) {
3599
+ .altertable-widget-heading-trigger > svg {
3600
+ transition: none;
3601
+ }
3602
+ }
3603
+
3520
3604
  /* src/react/ui/DataWidget.css */
3521
3605
  .altertable-data-widget {
3522
3606
  border: 1px solid var(--at-border, #e3e6e8);
@@ -4378,6 +4462,72 @@ button {
4378
4462
  font-size: 12px;
4379
4463
  }
4380
4464
 
4465
+ /* src/react/ui/DataAppSkeleton.css */
4466
+ .altertable-data-app-skeleton {
4467
+ display: flex;
4468
+ overflow: hidden;
4469
+ padding: var(--at-layout-gap, 24px);
4470
+ background: var(--at-background, #fff);
4471
+ flex: 1;
4472
+ min-width: 0;
4473
+ min-height: 0;
4474
+ }
4475
+
4476
+ .altertable-data-app-skeleton-content {
4477
+ display: flex;
4478
+ gap: var(--at-layout-gap, 24px);
4479
+ max-width: var(--at-content-width, 960px);
4480
+ flex-direction: column;
4481
+ width: 100%;
4482
+ min-width: 0;
4483
+ margin-inline-start: auto;
4484
+ margin-inline-end: auto;
4485
+ }
4486
+
4487
+ .altertable-data-app-skeleton-body {
4488
+ display: flex;
4489
+ gap: var(--at-layout-gap, 24px);
4490
+ flex-direction: column;
4491
+ min-width: 0;
4492
+ }
4493
+
4494
+ .altertable-data-app-skeleton-header, .altertable-data-app-skeleton-footer {
4495
+ min-width: 0;
4496
+ }
4497
+
4498
+ .altertable-data-app-skeleton-widget-title {
4499
+ width: 144px;
4500
+ max-width: 100%;
4501
+ height: 16px;
4502
+ }
4503
+
4504
+ .altertable-data-app-skeleton-chart {
4505
+ display: flex;
4506
+ align-items: flex-end;
4507
+ gap: var(--at-space-sm, 8px);
4508
+ height: 180px;
4509
+ }
4510
+
4511
+ .altertable-data-app-skeleton-chart > * {
4512
+ flex: 1;
4513
+ min-width: 0;
4514
+ }
4515
+
4516
+ .altertable-data-app-skeleton-rows {
4517
+ display: grid;
4518
+ gap: 20px;
4519
+ }
4520
+
4521
+ .altertable-data-app-skeleton-row {
4522
+ display: grid;
4523
+ grid-template-columns: 2fr 1fr 1fr;
4524
+ gap: var(--at-space-md, 16px);
4525
+ }
4526
+
4527
+ .altertable-data-app-skeleton-row > * {
4528
+ height: 16px;
4529
+ }
4530
+
4381
4531
  /* src/react/ui/RefreshRegion.css */
4382
4532
  .altertable-refresh-content {
4383
4533
  transition: opacity .12s;