@tempots/beatui 0.35.0 → 0.36.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 (31) hide show
  1. package/dist/{2019-DJeW9RI7.cjs → 2019-B1QESOSc.cjs} +1 -1
  2. package/dist/{2019-Dmseo7Cq.js → 2019-RaU4YQ5c.js} +2 -2
  3. package/dist/{2020-I1mnGGtD.js → 2020-BAomdSE8.js} +2 -2
  4. package/dist/{2020-BySxLQc5.cjs → 2020-BI-SxTSK.cjs} +1 -1
  5. package/dist/auth/index.cjs.js +1 -1
  6. package/dist/auth/index.es.js +2 -2
  7. package/dist/beatui.css +398 -10
  8. package/dist/beatui.tailwind.css +398 -10
  9. package/dist/{index-CBc0q0zl.cjs → index-BKjL6RO2.cjs} +2 -2
  10. package/dist/{index-D-CBfcZj.js → index-BS0NyhvV.js} +192 -189
  11. package/dist/{index-Ct2_ulan.cjs → index-BzApzJXc.cjs} +1 -1
  12. package/dist/{index-DbQzJti7.js → index-Dc9UNC8n.js} +1 -1
  13. package/dist/index.cjs.js +2 -2
  14. package/dist/index.es.js +1462 -1332
  15. package/dist/json-schema/index.cjs.js +1 -1
  16. package/dist/json-schema/index.es.js +1 -1
  17. package/dist/{modal-Dm61yY5i.js → modal-CxG-RO9B.js} +1 -1
  18. package/dist/{modal-AFhB4rIq.cjs → modal-OMSAbIg1.cjs} +1 -1
  19. package/dist/notice-0Xhzr7qR.cjs +2 -0
  20. package/dist/{notice-Cd9ElXwb.js → notice-C7o5d8Jw.js} +390 -375
  21. package/dist/types/components/data/index.d.ts +1 -0
  22. package/dist/types/components/data/table.d.ts +27 -0
  23. package/dist/types/components/form/input/input-wrapper.d.ts +4 -2
  24. package/dist/types/components/form/input/switch.d.ts +4 -3
  25. package/dist/types/components/layout/action-card.d.ts +19 -0
  26. package/dist/types/components/layout/index.d.ts +1 -0
  27. package/dist/utils-BcIRhDH0.cjs +1 -0
  28. package/dist/{utils-g5YCiiS6.js → utils-C7619Rp3.js} +392 -398
  29. package/package.json +1 -1
  30. package/dist/notice-len8sDjL.cjs +0 -2
  31. package/dist/utils-BetBqtiV.cjs +0 -1
package/dist/beatui.css CHANGED
@@ -1067,6 +1067,180 @@ a:focus-visible {
1067
1067
 
1068
1068
  }
1069
1069
  @layer components {
1070
+ @layer components {
1071
+ .bc-action-card {
1072
+ /* Default CSS variables - can be overridden by inline styles or hover states */
1073
+ --action-card-bg: var(--bg-background-light);
1074
+ --action-card-border: var(--border-divider-light);
1075
+ --action-card-title-color: var(--text-normal-light);
1076
+ --action-card-description-color: var(--text-muted-light);
1077
+
1078
+ /* Layout */
1079
+ display: flex;
1080
+ align-items: flex-start;
1081
+ gap: var(--spacing-md);
1082
+
1083
+ /* Spacing */
1084
+ padding: var(--spacing-md);
1085
+
1086
+ /* Border */
1087
+ border: 2px solid var(--action-card-border);
1088
+ border-radius: var(--radius-lg);
1089
+
1090
+ /* Background */
1091
+ background-color: var(--action-card-bg);
1092
+
1093
+ /* Transitions */
1094
+ transition:
1095
+ border-color 0.2s ease,
1096
+ background-color 0.2s ease,
1097
+ box-shadow 0.2s ease;
1098
+ }
1099
+
1100
+ /* Icon container */
1101
+ .bc-action-card__icon {
1102
+ flex-shrink: 0;
1103
+ display: flex;
1104
+ align-items: center;
1105
+ justify-content: center;
1106
+ }
1107
+
1108
+ /* Content container */
1109
+ .bc-action-card__content {
1110
+ flex: 1;
1111
+ min-width: 0; /* Allow text truncation */
1112
+ display: flex;
1113
+ flex-direction: column;
1114
+ gap: var(--spacing-xs);
1115
+ }
1116
+
1117
+ /* Title */
1118
+ .bc-action-card__title {
1119
+ font-size: var(--font-size-lg);
1120
+ font-weight: var(--font-weight-semibold);
1121
+ color: var(--action-card-title-color);
1122
+ line-height: var(--line-height-tight);
1123
+ }
1124
+
1125
+ /* Description */
1126
+ .bc-action-card__description {
1127
+ font-size: var(--font-size-md);
1128
+ font-weight: var(--font-weight-normal);
1129
+ color: var(--action-card-description-color);
1130
+ line-height: var(--line-height-normal);
1131
+ }
1132
+
1133
+ /* Clickable state */
1134
+ .bc-action-card--clickable {
1135
+ cursor: pointer;
1136
+ user-select: none;
1137
+ }
1138
+
1139
+ .bc-action-card--clickable:hover {
1140
+ --action-card-bg: var(--bg-surface-light);
1141
+ box-shadow: var(--shadow-md);
1142
+ }
1143
+
1144
+ .bc-action-card--clickable:active {
1145
+ transform: translateY(1px);
1146
+ }
1147
+
1148
+ /* Active state */
1149
+ .bc-action-card--active {
1150
+ --action-card-border: var(--color-primary-500);
1151
+ box-shadow: var(--shadow-sm);
1152
+ }
1153
+
1154
+ .bc-action-card--active:hover {
1155
+ --action-card-border: var(--color-primary-600);
1156
+ }
1157
+
1158
+ .b-dark .bc-action-card--active {
1159
+ --action-card-border: var(--color-primary-400);
1160
+ }
1161
+
1162
+ .b-dark .bc-action-card--active:hover {
1163
+ --action-card-border: var(--color-primary-300);
1164
+ }
1165
+
1166
+ /* Disabled state */
1167
+ .bc-action-card--disabled {
1168
+ opacity: 0.5;
1169
+ cursor: not-allowed;
1170
+ pointer-events: none;
1171
+ }
1172
+
1173
+ /* Size variants */
1174
+ .bc-action-card--xs {
1175
+ padding: var(--spacing-xs);
1176
+ gap: var(--spacing-xs);
1177
+ }
1178
+
1179
+ .bc-action-card--xs .bc-action-card__title {
1180
+ font-size: var(--font-size-sm);
1181
+ }
1182
+
1183
+ .bc-action-card--xs .bc-action-card__description {
1184
+ font-size: var(--font-size-xs);
1185
+ }
1186
+
1187
+ .bc-action-card--sm {
1188
+ padding: var(--spacing-sm);
1189
+ gap: var(--spacing-sm);
1190
+ }
1191
+
1192
+ .bc-action-card--sm .bc-action-card__title {
1193
+ font-size: var(--font-size-md);
1194
+ }
1195
+
1196
+ .bc-action-card--sm .bc-action-card__description {
1197
+ font-size: var(--font-size-sm);
1198
+ }
1199
+
1200
+ .bc-action-card--lg {
1201
+ padding: var(--spacing-xl);
1202
+ gap: var(--spacing-lg);
1203
+ }
1204
+
1205
+ .bc-action-card--lg .bc-action-card__title {
1206
+ font-size: var(--font-size-xl);
1207
+ }
1208
+
1209
+ .bc-action-card--lg .bc-action-card__description {
1210
+ font-size: var(--font-size-lg);
1211
+ }
1212
+
1213
+ .bc-action-card--xl {
1214
+ padding: var(--spacing-2xl);
1215
+ gap: var(--spacing-xl);
1216
+ }
1217
+
1218
+ .bc-action-card--xl .bc-action-card__title {
1219
+ font-size: var(--font-size-2xl);
1220
+ }
1221
+
1222
+ .bc-action-card--xl .bc-action-card__description {
1223
+ font-size: var(--font-size-xl);
1224
+ }
1225
+
1226
+ /* Focus styles for accessibility */
1227
+ .bc-action-card--clickable:focus-visible {
1228
+ outline: 2px solid var(--color-primary-500);
1229
+ outline-offset: 2px;
1230
+ }
1231
+
1232
+ /* Reduced motion */
1233
+ @media (prefers-reduced-motion: reduce) {
1234
+ .bc-action-card {
1235
+ transition: none;
1236
+ }
1237
+
1238
+ .bc-action-card--clickable:active {
1239
+ transform: none;
1240
+ }
1241
+ }
1242
+ }
1243
+
1070
1244
  /* Auth Container Component */
1071
1245
  .bc-auth-container--styled {
1072
1246
  display: flex;
@@ -3555,13 +3729,26 @@ a:focus-visible {
3555
3729
  width: 100%;
3556
3730
  }
3557
3731
 
3558
- /* Horizontal layout variant */
3559
- .bc-input-wrapper--horizontal {
3732
+ /* Horizontal layout variants */
3733
+ .bc-input-wrapper--horizontal,
3734
+ .bc-input-wrapper--horizontal-label-right,
3735
+ .bc-input-wrapper--horizontal-fixed {
3560
3736
  flex-direction: row;
3561
3737
  align-items: center;
3562
3738
  gap: var(--spacing-stack-lg, calc(var(--spacing-base) * 4));
3563
3739
  }
3564
3740
 
3741
+ /* Horizontal with label on right */
3742
+ .bc-input-wrapper--horizontal-label-right {
3743
+ flex-direction: row-reverse;
3744
+ }
3745
+
3746
+ /* Horizontal with fixed-width label */
3747
+ .bc-input-wrapper--horizontal-fixed .bc-input-wrapper__header {
3748
+ width: var(--input-wrapper-label-width, 12rem);
3749
+ flex-shrink: 0;
3750
+ }
3751
+
3565
3752
  /* Label header container */
3566
3753
  .bc-input-wrapper__header {
3567
3754
  display: flex;
@@ -3613,23 +3800,32 @@ a:focus-visible {
3613
3800
  vertical-align: top;
3614
3801
  }
3615
3802
 
3616
- /* Horizontal layout adjustments */
3617
- .bc-input-wrapper--horizontal .bc-input-wrapper__header {
3803
+ /* Horizontal layout adjustments (all variants) */
3804
+ .bc-input-wrapper--horizontal .bc-input-wrapper__header,
3805
+ .bc-input-wrapper--horizontal-label-right .bc-input-wrapper__header {
3618
3806
  flex-shrink: 0;
3619
3807
  min-width: 0;
3620
3808
  /* Allow text to wrap if needed */
3621
3809
  }
3622
3810
 
3623
- .bc-input-wrapper--horizontal .bc-input-wrapper__content {
3811
+ .bc-input-wrapper--horizontal .bc-input-wrapper__content,
3812
+ .bc-input-wrapper--horizontal-label-right .bc-input-wrapper__content,
3813
+ .bc-input-wrapper--horizontal-fixed .bc-input-wrapper__content {
3624
3814
  flex: 1;
3625
3815
  min-width: 0; /* Prevent overflow issues */
3626
3816
  }
3627
3817
 
3628
3818
  /* Error messages in horizontal mode should align with content */
3629
- .bc-input-wrapper--horizontal .bc-input-wrapper__error {
3819
+ .bc-input-wrapper--horizontal .bc-input-wrapper__error,
3820
+ .bc-input-wrapper--horizontal-fixed .bc-input-wrapper__error {
3630
3821
  margin-left: calc(var(--spacing-base) * 4); /* Align with content */
3631
3822
  }
3632
3823
 
3824
+ /* Error messages in horizontal-label-right mode should align with content on the right */
3825
+ .bc-input-wrapper--horizontal-label-right .bc-input-wrapper__error {
3826
+ margin-right: calc(var(--spacing-base) * 4); /* Align with content */
3827
+ }
3828
+
3633
3829
  /* Description text */
3634
3830
  .bc-input-wrapper__description {
3635
3831
  font-size: var(--font-size-sm);
@@ -6508,6 +6704,195 @@ span.bc-sidebar-link {
6508
6704
  box-shadow: var(--shadow-switch-thumb-dark, var(--shadow-md));
6509
6705
  }
6510
6706
 
6707
+ /* Table Container */
6708
+ .bc-table-container {
6709
+ --table-bg: #fff;
6710
+ --table-text: var(--text-normal-light);
6711
+ --table-border: var(--border-border-light);
6712
+ --table-header-bg: var(--bg-surface-light);
6713
+ --table-header-text: var(--text-normal-light);
6714
+ --table-stripe-bg: var(--bg-background-light);
6715
+ --table-hover-bg: var(--interactive-hover-light);
6716
+ --table-border-radius: var(--radius-surface, var(--radius-lg));
6717
+
6718
+ display: inline-block;
6719
+ max-width: 100%;
6720
+ overflow: hidden;
6721
+ border-radius: var(--table-border-radius);
6722
+ }
6723
+
6724
+ /* Container for sticky header - needs to be scrollable */
6725
+ .bc-table-container--sticky {
6726
+ max-height: 100%;
6727
+ overflow: auto;
6728
+ }
6729
+
6730
+ /* Full width container */
6731
+ .bc-table-container--full-width {
6732
+ display: block;
6733
+ width: 100%;
6734
+ }
6735
+
6736
+ /* Table Component */
6737
+ .bc-table {
6738
+ width: 100%;
6739
+ border-collapse: collapse;
6740
+ background-color: var(--table-bg);
6741
+ color: var(--table-text);
6742
+ font-family: var(
6743
+ --default-ui-font-family,
6744
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
6745
+ );
6746
+ font-size: var(--font-size-base);
6747
+ line-height: var(--line-height-normal);
6748
+ border: none;
6749
+ }
6750
+
6751
+ /* Table header */
6752
+ .bc-table thead,
6753
+ .bc-table tfoot {
6754
+ background-color: var(--table-header-bg);
6755
+ color: var(--table-header-text);
6756
+ font-weight: var(--font-weight-semibold);
6757
+ }
6758
+
6759
+ /* Sticky header */
6760
+ .bc-table--sticky-header thead {
6761
+ position: sticky;
6762
+ top: 0;
6763
+ z-index: var(--z-index-sticky, 10);
6764
+ box-shadow: var(--shadow-sm);
6765
+ }
6766
+
6767
+ /* Sticky footer */
6768
+ .bc-table--sticky-header tfoot {
6769
+ position: sticky;
6770
+ bottom: 0;
6771
+ z-index: var(--z-index-sticky, 10);
6772
+ box-shadow: var(--shadow-sm);
6773
+ }
6774
+
6775
+ /* Table cells */
6776
+ .bc-table th,
6777
+ .bc-table td {
6778
+ text-align: left;
6779
+ vertical-align: middle;
6780
+ padding: var(--spacing-md);
6781
+ border: none;
6782
+ }
6783
+
6784
+ .bc-table th {
6785
+ font-weight: var(--font-weight-semibold);
6786
+ white-space: nowrap;
6787
+ }
6788
+
6789
+ /* With table border */
6790
+ .bc-table-container--with-table-border {
6791
+ border: 1px solid var(--table-border);
6792
+ }
6793
+
6794
+ /* With row borders */
6795
+ .bc-table--with-row-borders th,
6796
+ .bc-table--with-row-borders td {
6797
+ border-bottom: 1px solid var(--table-border);
6798
+ }
6799
+
6800
+ /* With column borders */
6801
+ .bc-table--with-column-borders th,
6802
+ .bc-table--with-column-borders td {
6803
+ border-right: 1px solid var(--table-border);
6804
+ }
6805
+
6806
+ .bc-table--with-column-borders th:last-child,
6807
+ .bc-table--with-column-borders td:last-child {
6808
+ border-right: none;
6809
+ }
6810
+
6811
+ /* With striped rows */
6812
+ .bc-table--with-striped-rows tbody tr:nth-child(even) {
6813
+ background-color: var(--table-stripe-bg);
6814
+ }
6815
+
6816
+ /* Hoverable striped rows - darker stripe on hover */
6817
+ .bc-table--hoverable.bc-table--with-striped-rows
6818
+ tbody
6819
+ tr:nth-child(even):hover {
6820
+ background-color: var(--table-hover-bg);
6821
+ filter: brightness(0.95);
6822
+ }
6823
+
6824
+ /* Size variants */
6825
+ .bc-table--size-xs th,
6826
+ .bc-table--size-xs td {
6827
+ padding: var(--spacing-xs);
6828
+ font-size: var(--font-size-sm);
6829
+ }
6830
+
6831
+ .bc-table--size-sm th,
6832
+ .bc-table--size-sm td {
6833
+ padding: calc(var(--spacing-base) * 1.5);
6834
+ font-size: var(--font-size-sm);
6835
+ }
6836
+
6837
+ .bc-table--size-lg th,
6838
+ .bc-table--size-lg td {
6839
+ padding: var(--spacing-lg);
6840
+ }
6841
+
6842
+ .bc-table--size-xl th,
6843
+ .bc-table--size-xl td {
6844
+ padding: calc(var(--spacing-base) * 5);
6845
+ font-size: var(--font-size-lg);
6846
+ }
6847
+
6848
+ /* Hoverable rows */
6849
+ .bc-table--hoverable tbody tr {
6850
+ transition: background-color
6851
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
6852
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
6853
+ cursor: pointer;
6854
+ }
6855
+
6856
+ .bc-table--hoverable tbody tr:hover {
6857
+ background-color: var(--table-hover-bg);
6858
+ }
6859
+
6860
+ /* Footer */
6861
+ .bc-table__footer {
6862
+ background-color: var(--table-header-bg);
6863
+ font-weight: var(--font-weight-semibold);
6864
+ border-top: 2px solid var(--table-border);
6865
+ }
6866
+
6867
+ /* Dark mode styles */
6868
+ .b-dark .bc-table-container {
6869
+ --table-bg: var(--bg-background-dark);
6870
+ --table-text: var(--text-normal-dark);
6871
+ --table-border: var(--border-border-dark);
6872
+ --table-header-bg: var(--bg-surface-dark);
6873
+ --table-header-text: var(--text-normal-dark);
6874
+ --table-stripe-bg: var(--bg-surface-dark);
6875
+ --table-hover-bg: var(--interactive-hover-dark);
6876
+ }
6877
+
6878
+ /* Accessibility */
6879
+ @media (prefers-reduced-motion: reduce) {
6880
+ .bc-table--hoverable tbody tr {
6881
+ transition: none;
6882
+ }
6883
+ }
6884
+
6885
+ /* Responsive behavior - allow horizontal scroll on small screens */
6886
+ @media (width < 48rem) {
6887
+ .bc-table-container {
6888
+ overflow-x: auto;
6889
+ }
6890
+
6891
+ .bc-table {
6892
+ white-space: nowrap;
6893
+ }
6894
+ }
6895
+
6511
6896
  /* Tabs Component */
6512
6897
  .bc-tabs {
6513
6898
  display: flex;
@@ -7312,7 +7697,7 @@ span.bc-sidebar-link {
7312
7697
  }
7313
7698
 
7314
7699
  /* Top-left corner */
7315
- .bc-ribbon[style*="--ribbon-corner: top-left"] {
7700
+ .bc-ribbon[style*='--ribbon-corner: top-left'] {
7316
7701
  top: 0;
7317
7702
  left: 0;
7318
7703
  transform: translate(-50%, -50%) rotate(calc(var(--ribbon-angle, 45deg) * -1))
@@ -7320,7 +7705,7 @@ span.bc-sidebar-link {
7320
7705
  }
7321
7706
 
7322
7707
  /* Bottom-right corner */
7323
- .bc-ribbon[style*="--ribbon-corner: bottom-right"] {
7708
+ .bc-ribbon[style*='--ribbon-corner: bottom-right'] {
7324
7709
  top: 100%;
7325
7710
  left: 100%;
7326
7711
  transform: translate(-50%, -50%) rotate(calc(var(--ribbon-angle, 45deg) * -1))
@@ -7328,11 +7713,14 @@ span.bc-sidebar-link {
7328
7713
  }
7329
7714
 
7330
7715
  /* Bottom-left corner */
7331
- .bc-ribbon[style*="--ribbon-corner: bottom-left"] {
7716
+ .bc-ribbon[style*='--ribbon-corner: bottom-left'] {
7332
7717
  top: 100%;
7333
7718
  left: 0;
7334
7719
  transform: translate(-50%, -50%) rotate(var(--ribbon-angle, 45deg))
7335
- translate(calc(var(--ribbon-inset, 0px) * -1), calc(var(--ribbon-offset, 0px) * -1));
7720
+ translate(
7721
+ calc(var(--ribbon-inset, 0px) * -1),
7722
+ calc(var(--ribbon-offset, 0px) * -1)
7723
+ );
7336
7724
  }
7337
7725
 
7338
7726
  /* Dark mode overrides */