fdb2 1.0.36 → 1.0.38

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 (107) hide show
  1. package/README.md +41 -0
  2. package/dist/public/explorer.css +533 -485
  3. package/dist/public/explorer.js +1277 -868
  4. package/dist/public/index.css +172 -34
  5. package/dist/public/index.js +103 -49
  6. package/dist/public/layout.js +3 -3
  7. package/dist/public/vue.js +1 -1
  8. package/dist/server/core/schema/__tests__/canonical.test.ts +195 -0
  9. package/dist/server/core/schema/__tests__/ddl-emitter.test.ts +456 -0
  10. package/dist/server/core/schema/__tests__/diff.test.ts +242 -0
  11. package/dist/server/core/schema/__tests__/roundtrip.property.test.ts +403 -0
  12. package/dist/server/core/schema/canonical.d.ts +50 -0
  13. package/dist/server/core/schema/canonical.d.ts.map +1 -0
  14. package/dist/server/core/schema/canonical.js +212 -0
  15. package/dist/server/core/schema/canonical.js.map +1 -0
  16. package/dist/server/core/schema/canonical.ts +223 -0
  17. package/dist/server/core/schema/ddl-emitter.d.ts +68 -0
  18. package/dist/server/core/schema/ddl-emitter.d.ts.map +1 -0
  19. package/dist/server/core/schema/ddl-emitter.js +813 -0
  20. package/dist/server/core/schema/ddl-emitter.js.map +1 -0
  21. package/dist/server/core/schema/ddl-emitter.ts +925 -0
  22. package/dist/server/core/schema/diff.d.ts +16 -0
  23. package/dist/server/core/schema/diff.d.ts.map +1 -0
  24. package/dist/server/core/schema/diff.js +115 -0
  25. package/dist/server/core/schema/diff.js.map +1 -0
  26. package/dist/server/core/schema/diff.ts +134 -0
  27. package/dist/server/core/schema/type-defaults.d.ts +27 -0
  28. package/dist/server/core/schema/type-defaults.d.ts.map +1 -0
  29. package/dist/server/core/schema/type-defaults.js +61 -0
  30. package/dist/server/core/schema/type-defaults.js.map +1 -0
  31. package/dist/server/core/schema/type-defaults.ts +79 -0
  32. package/dist/server/index.d.ts +1 -1
  33. package/dist/server/index.d.ts.map +1 -1
  34. package/dist/server/index.js +347 -124
  35. package/dist/server/index.js.map +1 -1
  36. package/dist/server/index.ts +336 -161
  37. package/dist/server/model/ddl-spec.d.ts +163 -0
  38. package/dist/server/model/ddl-spec.d.ts.map +1 -0
  39. package/dist/server/model/ddl-spec.js +32 -0
  40. package/dist/server/model/ddl-spec.js.map +1 -0
  41. package/dist/server/model/ddl-spec.ts +175 -0
  42. package/dist/server/service/connection.service.d.ts +20 -0
  43. package/dist/server/service/connection.service.d.ts.map +1 -1
  44. package/dist/server/service/connection.service.js +99 -25
  45. package/dist/server/service/connection.service.js.map +1 -1
  46. package/dist/server/service/connection.service.ts +104 -25
  47. package/dist/server/service/database/base.service.d.ts +0 -4
  48. package/dist/server/service/database/base.service.d.ts.map +1 -1
  49. package/dist/server/service/database/base.service.js.map +1 -1
  50. package/dist/server/service/database/base.service.ts +0 -5
  51. package/dist/server/service/database/clickhouse.service.d.ts +0 -5
  52. package/dist/server/service/database/clickhouse.service.d.ts.map +1 -1
  53. package/dist/server/service/database/clickhouse.service.js +0 -49
  54. package/dist/server/service/database/clickhouse.service.js.map +1 -1
  55. package/dist/server/service/database/clickhouse.service.ts +0 -52
  56. package/dist/server/service/database/cockroachdb.service.d.ts +0 -5
  57. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
  58. package/dist/server/service/database/cockroachdb.service.js +11 -142
  59. package/dist/server/service/database/cockroachdb.service.js.map +1 -1
  60. package/dist/server/service/database/cockroachdb.service.ts +11 -161
  61. package/dist/server/service/database/database.service.d.ts +55 -2
  62. package/dist/server/service/database/database.service.d.ts.map +1 -1
  63. package/dist/server/service/database/database.service.js +246 -4
  64. package/dist/server/service/database/database.service.js.map +1 -1
  65. package/dist/server/service/database/database.service.ts +295 -7
  66. package/dist/server/service/database/mongodb.service.d.ts +0 -6
  67. package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
  68. package/dist/server/service/database/mongodb.service.js +0 -8
  69. package/dist/server/service/database/mongodb.service.js.map +1 -1
  70. package/dist/server/service/database/mongodb.service.ts +0 -8
  71. package/dist/server/service/database/mssql.service.d.ts +8 -4
  72. package/dist/server/service/database/mssql.service.d.ts.map +1 -1
  73. package/dist/server/service/database/mssql.service.js +27 -132
  74. package/dist/server/service/database/mssql.service.js.map +1 -1
  75. package/dist/server/service/database/mssql.service.ts +34 -156
  76. package/dist/server/service/database/mysql.service.d.ts +0 -4
  77. package/dist/server/service/database/mysql.service.d.ts.map +1 -1
  78. package/dist/server/service/database/mysql.service.js +11 -155
  79. package/dist/server/service/database/mysql.service.js.map +1 -1
  80. package/dist/server/service/database/mysql.service.ts +17 -184
  81. package/dist/server/service/database/oracle.service.d.ts +0 -4
  82. package/dist/server/service/database/oracle.service.d.ts.map +1 -1
  83. package/dist/server/service/database/oracle.service.js +11 -141
  84. package/dist/server/service/database/oracle.service.js.map +1 -1
  85. package/dist/server/service/database/oracle.service.ts +17 -166
  86. package/dist/server/service/database/postgres.service.d.ts +0 -4
  87. package/dist/server/service/database/postgres.service.d.ts.map +1 -1
  88. package/dist/server/service/database/postgres.service.js +11 -150
  89. package/dist/server/service/database/postgres.service.js.map +1 -1
  90. package/dist/server/service/database/postgres.service.ts +17 -174
  91. package/dist/server/service/database/sap.service.d.ts +0 -4
  92. package/dist/server/service/database/sap.service.d.ts.map +1 -1
  93. package/dist/server/service/database/sap.service.js +11 -137
  94. package/dist/server/service/database/sap.service.js.map +1 -1
  95. package/dist/server/service/database/sap.service.ts +11 -158
  96. package/dist/server/service/database/sql-type.helper.d.ts +28 -0
  97. package/dist/server/service/database/sql-type.helper.d.ts.map +1 -0
  98. package/dist/server/service/database/sql-type.helper.js +113 -0
  99. package/dist/server/service/database/sql-type.helper.js.map +1 -0
  100. package/dist/server/service/database/sql-type.helper.ts +115 -0
  101. package/dist/server/service/database/sqlite.service.d.ts +0 -5
  102. package/dist/server/service/database/sqlite.service.d.ts.map +1 -1
  103. package/dist/server/service/database/sqlite.service.js +11 -156
  104. package/dist/server/service/database/sqlite.service.js.map +1 -1
  105. package/dist/server/service/database/sqlite.service.ts +17 -183
  106. package/package.json +1 -1
  107. package/server.js +1 -1
@@ -136,6 +136,19 @@ to { transform: translateY(0);
136
136
  --db-primary-bg: #e0e7ff;
137
137
  --db-code-bg: #282c34;
138
138
  --db-code-fg: #abb2bf;
139
+
140
+ /* 语义底色上的文字色(浅色主题用深色阶;暗色主题在下方各暗色块覆写为亮色阶) */
141
+ --db-success-fg: #047857;
142
+ --db-warning-fg: #b45309;
143
+ --db-danger-fg: #b91c1c;
144
+ --db-info-fg: #1d4ed8;
145
+
146
+ /* JSON 语法高亮(浅色:GitHub Light 配色;暗色在各暗色块覆写为 GitHub Dark) */
147
+ --db-json-key: #d04255;
148
+ --db-json-string: #22863a;
149
+ --db-json-number: #005cc5;
150
+ --db-json-boolean: #d73a49;
151
+ --db-json-null: #6f42c1;
139
152
  }
140
153
 
141
154
  /* 全局布局 - 现代桌面应用风格 */
@@ -505,7 +518,11 @@ body {
505
518
  }
506
519
 
507
520
  .btn-close {
508
- background: var(--db-gray-light);
521
+ background-color: var(--db-gray-light);
522
+ background-image: var(--bs-btn-close-bg);
523
+ background-position: center;
524
+ background-repeat: no-repeat;
525
+ background-size: 0.8em auto;
509
526
  border: none;
510
527
  border-radius: var(--db-radius-md);
511
528
  width: 32px;
@@ -517,8 +534,7 @@ body {
517
534
  }
518
535
 
519
536
  .btn-close:hover {
520
- background: var(--db-danger-color);
521
- color: var(--db-on-accent);
537
+ background-color: var(--db-danger-color);
522
538
  transform: rotate(90deg);
523
539
  }
524
540
 
@@ -1011,6 +1027,17 @@ pre {
1011
1027
  --db-primary-bg: rgba(102, 126, 234, 0.18);
1012
1028
  --db-code-bg: #1b1f27;
1013
1029
  --db-code-fg: #abb2bf;
1030
+
1031
+ /* 语义底色上的文字 / JSON 高亮:暗色下统一提亮 */
1032
+ --db-success-fg: #34d399;
1033
+ --db-warning-fg: #fbbf24;
1034
+ --db-danger-fg: #f87171;
1035
+ --db-info-fg: #60a5fa;
1036
+ --db-json-key: #ff7b72;
1037
+ --db-json-string: #a5d6ff;
1038
+ --db-json-number: #79c0ff;
1039
+ --db-json-boolean: #d2a8ff;
1040
+ --db-json-null: #8b949e;
1014
1041
  }
1015
1042
 
1016
1043
  body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .card {
@@ -1036,6 +1063,26 @@ pre {
1036
1063
  background: #475569;
1037
1064
  color: #f1f5f9;
1038
1065
  }
1066
+
1067
+ /* Bootstrap 浅色工具类在暗色下过于刺眼/对比不足,统一改挂主题令牌
1068
+ (与下方 body.vscode-dark 的同名规则对应,覆盖 OS 暗色入口) */
1069
+ body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .border-light,
1070
+ body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .bg-light {
1071
+ border-color: #475569 !important;
1072
+ background-color: #263041 !important;
1073
+ }
1074
+
1075
+ body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .btn-outline-secondary,
1076
+ body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .btn-outline-light {
1077
+ color: #f1f5f9 !important;
1078
+ border-color: #4d5b6b !important;
1079
+ }
1080
+
1081
+ body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .btn-outline-secondary:hover,
1082
+ body:not(.vscode-light):not(.vscode-dark):not(.vscode-high-contrast) .btn-outline-light:hover {
1083
+ background-color: #263041 !important;
1084
+ color: #f1f5f9 !important;
1085
+ }
1039
1086
  }
1040
1087
 
1041
1088
  /* VSCode webview:编辑器暗色 / 高对比主题(变量与上面的 OS 暗色保持一致) */
@@ -1074,6 +1121,17 @@ body.vscode-high-contrast {
1074
1121
  --db-primary-bg: rgba(102, 126, 234, 0.18);
1075
1122
  --db-code-bg: var(--vscode-textCodeBlock-background, #1b1f27);
1076
1123
  --db-code-fg: var(--vscode-editor-foreground, #abb2bf);
1124
+
1125
+ /* 语义底色上的文字 / JSON 高亮:暗色下统一提亮 */
1126
+ --db-success-fg: #34d399;
1127
+ --db-warning-fg: #fbbf24;
1128
+ --db-danger-fg: #f87171;
1129
+ --db-info-fg: #60a5fa;
1130
+ --db-json-key: #ff7b72;
1131
+ --db-json-string: #a5d6ff;
1132
+ --db-json-number: #79c0ff;
1133
+ --db-json-boolean: #d2a8ff;
1134
+ --db-json-null: #8b949e;
1077
1135
  }
1078
1136
 
1079
1137
  /* 浅色主题:同样桥接到宿主令牌,跟随任意浅色主题(GitHub Light / Quiet Light / Solarized Light…) */
@@ -1139,27 +1197,36 @@ body.vscode-high-contrast .table th {
1139
1197
  color: var(--db-text-body);
1140
1198
  }
1141
1199
 
1142
- /* Bootstrap 的浅色工具类在暗色下过于刺眼/对比不足,统一改挂主题令牌 */
1200
+ /* Bootstrap 的浅色工具类在暗色下过于刺眼/对比不足,统一改挂主题令牌。
1201
+ 覆盖全部暗色入口:VSCode webview 暗色/高对比、桌面端(body.platform-desktop)。
1202
+ 注意 body.platform-desktop 只在桌面端入口添加(src/platform/index.ts),
1203
+ webview 不带该类,不会误伤浅色编辑器主题。 */
1143
1204
  body.vscode-dark .border-light,
1144
1205
  body.vscode-high-contrast .border-light,
1206
+ body.platform-desktop .border-light,
1145
1207
  body.vscode-dark .bg-light,
1146
- body.vscode-high-contrast .bg-light {
1208
+ body.vscode-high-contrast .bg-light,
1209
+ body.platform-desktop .bg-light {
1147
1210
  border-color: var(--db-border) !important;
1148
1211
  background-color: var(--db-bg-soft) !important;
1149
1212
  }
1150
1213
 
1151
1214
  body.vscode-dark .btn-outline-secondary,
1152
1215
  body.vscode-high-contrast .btn-outline-secondary,
1216
+ body.platform-desktop .btn-outline-secondary,
1153
1217
  body.vscode-dark .btn-outline-light,
1154
- body.vscode-high-contrast .btn-outline-light {
1218
+ body.vscode-high-contrast .btn-outline-light,
1219
+ body.platform-desktop .btn-outline-light {
1155
1220
  color: var(--db-text-body) !important;
1156
1221
  border-color: var(--db-border-light) !important;
1157
1222
  }
1158
1223
 
1159
1224
  body.vscode-dark .btn-outline-secondary:hover,
1160
1225
  body.vscode-high-contrast .btn-outline-secondary:hover,
1226
+ body.platform-desktop .btn-outline-secondary:hover,
1161
1227
  body.vscode-dark .btn-outline-light:hover,
1162
- body.vscode-high-contrast .btn-outline-light:hover {
1228
+ body.vscode-high-contrast .btn-outline-light:hover,
1229
+ body.platform-desktop .btn-outline-light:hover {
1163
1230
  background-color: var(--db-bg-soft) !important;
1164
1231
  color: var(--db-text-body) !important;
1165
1232
  }
@@ -1274,6 +1341,17 @@ body.platform-desktop:not(.vscode-dark):not(.vscode-light):not(.vscode-high-cont
1274
1341
  --db-code-bg: #1b1f27;
1275
1342
  --db-code-fg: #abb2bf;
1276
1343
 
1344
+ /* 语义底色上的文字 / JSON 高亮:暗色下统一提亮 */
1345
+ --db-success-fg: #34d399;
1346
+ --db-warning-fg: #fbbf24;
1347
+ --db-danger-fg: #f87171;
1348
+ --db-info-fg: #60a5fa;
1349
+ --db-json-key: #ff7b72;
1350
+ --db-json-string: #a5d6ff;
1351
+ --db-json-number: #79c0ff;
1352
+ --db-json-boolean: #d2a8ff;
1353
+ --db-json-null: #8b949e;
1354
+
1277
1355
  /* 深色下投影几乎不可见,层级改由边框与面色表达 */
1278
1356
  --db-shadow-sm: none;
1279
1357
  --db-shadow-md: none;
@@ -1606,13 +1684,13 @@ body.platform-desktop .text-primary.spinner-border {
1606
1684
  }
1607
1685
 
1608
1686
  /* 覆盖Bootstrap默认样式 */
1609
- .toast-container[data-v-7d639c44] {
1687
+ .toast-container[data-v-daf8ceb9] {
1610
1688
  z-index: 1100;
1611
1689
  }
1612
- .fade-out[data-v-7d639c44] {
1613
- animation: fadeOut-7d639c44 1s forwards;
1690
+ .fade-out[data-v-daf8ceb9] {
1691
+ animation: fadeOut-daf8ceb9 1s forwards;
1614
1692
  }
1615
- @keyframes fadeOut-7d639c44 {
1693
+ @keyframes fadeOut-daf8ceb9 {
1616
1694
  0% { opacity: 1; transform: translateY(0);
1617
1695
  }
1618
1696
  100% { opacity: 0; transform: translateY(-120%);}
@@ -1634,37 +1712,95 @@ body.platform-desktop .text-primary.spinner-border {
1634
1712
  text-align: center;
1635
1713
  }
1636
1714
 
1637
- .modal-dialog[data-v-aa6b0e1f] {
1715
+ .modal-dialog[data-v-8c11135e] {
1638
1716
  z-index: var(--bs-modal-zindex);
1639
- max-width:none !important;
1717
+ max-width: none;
1718
+ }
1719
+
1720
+ /* 纯文案提示弹窗:宽高跟随内容,短消息不再撑成大弹窗 */
1721
+ .modal-dialog.modal-dialog-auto[data-v-8c11135e] {
1722
+ width: fit-content;
1723
+ min-width: min(280px, 92vw);
1724
+ max-width: min(80vw, 420px);
1725
+ margin: auto;
1726
+ }
1727
+
1728
+ /* ---------------- 弹窗自身的紧凑密度 ----------------
1729
+ * database.css 的 .modal-header/.modal-body/.modal-footer 面向「网页大屏」,
1730
+ * 而桌面端靠 body.platform-desktop 覆盖成紧凑值,webview(VSCode)没有该类,
1731
+ * 于是同一套弹窗在 webview 里标题 24px、内边距 32px,显得又空又大。
1732
+ * 这里把密度收进组件自身(与 platform-desktop 的取值一致),
1733
+ * 两个宿主下观感统一,不再依赖全局样式差异。
1734
+ */
1735
+ .modal-header[data-v-8c11135e] {
1736
+ padding: 0.625rem 0.875rem;
1737
+ }
1738
+ .modal-header[data-v-8c11135e]::before {
1739
+ display: none; /* 去掉标题栏顶部 4px 品牌色条 */
1740
+ }
1741
+ .modal-title[data-v-8c11135e] {
1742
+ font-size: 0.875rem;
1743
+ font-weight: 600;
1744
+ }
1745
+ .modal-body[data-v-8c11135e] {
1746
+ padding: 0.875rem;
1747
+ display: flex;
1748
+ flex-direction: column;
1749
+ align-items: stretch;
1640
1750
  }
1641
- .modal-success .modal-header[data-v-aa6b0e1f] {
1751
+ .modal-footer[data-v-8c11135e] {
1752
+ padding: 0.5rem 0.875rem;
1753
+ gap: 0.5rem;
1754
+ }
1755
+ .modal-footer .btn[data-v-8c11135e] {
1756
+ padding: 0.25rem 0.75rem;
1757
+ font-size: 0.8125rem;
1758
+ }
1759
+
1760
+ /* 关闭按钮:不用 .btn-close 的 svg data-uri 背景(webview CSP 下不渲染,
1761
+ * 会退化成一个无图标的灰色方块),改用 bootstrap-icons 字形画叉 */
1762
+ .btn-close[data-v-8c11135e] {
1763
+ display: inline-flex;
1764
+ align-items: center;
1765
+ justify-content: center;
1766
+ width: 24px;
1767
+ height: 24px;
1768
+ padding: 0;
1769
+ border: none;
1770
+ border-radius: 6px;
1771
+ background-color: transparent;
1772
+ background-image: none;
1773
+ box-shadow: none;
1774
+ opacity: 0.85;
1775
+ font-size: 13px;
1776
+ color: inherit;
1777
+ }
1778
+ .btn-close[data-v-8c11135e]:hover,
1779
+ .btn-close[data-v-8c11135e]:focus {
1780
+ background-color: rgba(128, 128, 128, 0.28);
1781
+ opacity: 1;
1782
+ }
1783
+ .modal-success .modal-header[data-v-8c11135e] {
1642
1784
  background-color: var(--bs-success);
1643
1785
  color: white;
1644
1786
  }
1645
- .modal-error .modal-header[data-v-aa6b0e1f] {
1787
+ .modal-error .modal-header[data-v-8c11135e] {
1646
1788
  background-color: var(--bs-danger);
1647
1789
  color: white;
1648
1790
  }
1649
- .modal-warning .modal-header[data-v-aa6b0e1f] {
1791
+ .modal-warning .modal-header[data-v-8c11135e] {
1650
1792
  background-color: var(--bs-warning);
1651
1793
  color: var(--bs-dark);
1652
1794
  }
1653
- .modal-info .modal-header[data-v-aa6b0e1f] {
1795
+ .modal-info .modal-header[data-v-8c11135e] {
1654
1796
  background-color: var(--bs-info);
1655
1797
  color: white;
1656
1798
  }
1657
- .modal-body[data-v-aa6b0e1f] {
1658
- min-height: 80px;
1659
- display: flex;
1660
- flex-direction: column;
1661
- align-items: stretch;
1662
- }
1663
- .error-details[data-v-aa6b0e1f] {
1799
+ .error-details[data-v-8c11135e] {
1664
1800
  width: 100%;
1665
1801
  margin-top: 1rem;
1666
1802
  }
1667
- .error-content[data-v-aa6b0e1f] {
1803
+ .error-content[data-v-8c11135e] {
1668
1804
  background-color: var(--db-bg-soft2);
1669
1805
  border: 1px solid var(--db-gray-medium);
1670
1806
  border-radius: 0.375rem;
@@ -1678,17 +1814,17 @@ body.platform-desktop .text-primary.spinner-border {
1678
1814
  font-size: 0.875rem;
1679
1815
  line-height: 1.5;
1680
1816
  }
1681
- .error-details-toggle[data-v-aa6b0e1f] {
1817
+ .error-details-toggle[data-v-8c11135e] {
1682
1818
  width: 100%;
1683
1819
  }
1684
- .error-details-content[data-v-aa6b0e1f] {
1820
+ .error-details-content[data-v-8c11135e] {
1685
1821
  background-color: var(--db-bg-soft2);
1686
1822
  border: 1px solid var(--db-gray-medium);
1687
1823
  border-radius: 0.375rem;
1688
1824
  padding: 1rem;
1689
1825
  margin-top: 0.5rem;
1690
1826
  }
1691
- .error-json[data-v-aa6b0e1f] {
1827
+ .error-json[data-v-8c11135e] {
1692
1828
  background-color: var(--db-text-body);
1693
1829
  color: var(--db-bg-soft2);
1694
1830
  border-radius: 0.25rem;
@@ -1700,20 +1836,22 @@ body.platform-desktop .text-primary.spinner-border {
1700
1836
  white-space: pre-wrap;
1701
1837
  word-break: break-word;
1702
1838
  }
1703
- .error-meta[data-v-aa6b0e1f] {
1839
+ .error-meta[data-v-8c11135e] {
1704
1840
  border-bottom: 1px solid var(--db-gray-medium);
1705
1841
  padding-bottom: 0.5rem;
1706
1842
  margin-bottom: 0.5rem;
1707
1843
  }
1708
- .modal-body .fs-1[data-v-aa6b0e1f] {
1709
- font-size: 2.5rem;
1710
- margin-bottom: 1rem;
1844
+
1845
+ /* 提示类型图标:随内容紧凑展示(不用 Bootstrap 的 fs-1,避免 2.5rem 撑高弹窗) */
1846
+ .modal-type-icon[data-v-8c11135e] {
1847
+ font-size: 1.25rem;
1848
+ line-height: 1;
1711
1849
  }
1712
1850
 
1713
1851
  /* 响应式调整 */
1714
1852
  @media (max-width: 576px) {
1715
- .error-content[data-v-aa6b0e1f],
1716
- .error-json[data-v-aa6b0e1f] {
1853
+ .error-content[data-v-8c11135e],
1854
+ .error-json[data-v-8c11135e] {
1717
1855
  font-size: 0.75rem;
1718
1856
  max-height: 150px;
1719
1857
  }