@mshuja288/aksuicore 0.4.0 → 0.4.2

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.
@@ -5,4 +5,7 @@ export {
5
5
  type TableColumn,
6
6
  type ExportDownloadFormat,
7
7
  type ExportColumnRef,
8
+ type BulkImportMode,
9
+ type BulkImportError,
10
+ type BulkImportResult,
8
11
  } from "./RecordWorkspace";
@@ -405,7 +405,8 @@ button.side-rail-add:hover {
405
405
  }
406
406
 
407
407
  .side-rail-columns,
408
- .side-rail-download {
408
+ .side-rail-download,
409
+ .side-rail-bulk {
409
410
  display: grid;
410
411
  gap: 8px;
411
412
  }
@@ -533,6 +534,79 @@ button.side-rail-download-format:disabled {
533
534
  cursor: default;
534
535
  }
535
536
 
537
+ button.side-rail-bulk-toggle {
538
+ display: inline-flex;
539
+ align-items: center;
540
+ justify-content: center;
541
+ gap: 8px;
542
+ width: 100%;
543
+ padding: 10px 12px;
544
+ border: 1px solid var(--aks-border, #d7dde5);
545
+ border-radius: var(--aks-radius);
546
+ background: #fff;
547
+ color: var(--aks-brand);
548
+ box-shadow: none;
549
+ }
550
+
551
+ button.side-rail-bulk-toggle svg {
552
+ width: 18px;
553
+ height: 18px;
554
+ }
555
+
556
+ button.side-rail-bulk-toggle:hover:not(:disabled) {
557
+ background: #f5f7fa;
558
+ }
559
+
560
+ button.side-rail-bulk-toggle:disabled {
561
+ opacity: 0.55;
562
+ cursor: default;
563
+ }
564
+
565
+ .side-rail-bulk-panel {
566
+ display: grid;
567
+ gap: 10px;
568
+ padding: 8px;
569
+ border: 1px solid var(--aks-line);
570
+ border-radius: var(--aks-radius);
571
+ background: #faf9f7;
572
+ }
573
+
574
+ label.side-rail-bulk-mode,
575
+ label.side-rail-bulk-file {
576
+ display: grid;
577
+ gap: 6px;
578
+ margin: 0;
579
+ font-size: 13px;
580
+ font-weight: 600;
581
+ color: var(--aks-brand);
582
+ }
583
+
584
+ button.side-rail-bulk-submit {
585
+ width: 100%;
586
+ padding: 10px 12px;
587
+ border: none;
588
+ border-radius: var(--aks-radius);
589
+ background: var(--aks-accent, #c45c26);
590
+ color: #fff;
591
+ font-weight: 600;
592
+ box-shadow: none;
593
+ }
594
+
595
+ button.side-rail-bulk-submit:disabled {
596
+ opacity: 0.5;
597
+ cursor: default;
598
+ }
599
+
600
+ .side-rail-bulk-report {
601
+ font-size: 12px;
602
+ color: var(--aks-brand);
603
+ }
604
+
605
+ .side-rail-bulk-errors {
606
+ margin: 6px 0 0;
607
+ padding-left: 18px;
608
+ }
609
+
536
610
  .side-rail-filters {
537
611
  display: grid;
538
612
  gap: 12px;
@@ -736,7 +810,6 @@ button.sort-header.active .sort-indicator {
736
810
 
737
811
  .row-actions-mobile {
738
812
  display: none;
739
- position: relative;
740
813
  }
741
814
 
742
815
  button.row-action-menu-trigger {
@@ -752,7 +825,8 @@ button.row-action-menu-trigger svg {
752
825
  height: 18px;
753
826
  }
754
827
 
755
- button.row-action-menu-trigger:hover {
828
+ button.row-action-menu-trigger:hover,
829
+ button.row-action-menu-trigger.open {
756
830
  transform: none;
757
831
  background: #f4f2ef;
758
832
  color: var(--aks-brand);
@@ -760,12 +834,8 @@ button.row-action-menu-trigger:hover {
760
834
  }
761
835
 
762
836
  .row-action-menu {
763
- position: absolute;
764
- top: calc(100% + 4px);
765
- right: 0;
766
- z-index: 5;
767
837
  display: grid;
768
- min-width: 132px;
838
+ min-width: 160px;
769
839
  padding: 6px;
770
840
  border: 1px solid var(--aks-line);
771
841
  border-radius: var(--aks-radius);
@@ -773,10 +843,15 @@ button.row-action-menu-trigger:hover {
773
843
  box-shadow: 0 12px 28px rgba(30, 39, 53, 0.14);
774
844
  }
775
845
 
846
+ .row-action-menu-portal {
847
+ position: fixed;
848
+ z-index: 90;
849
+ }
850
+
776
851
  .row-action-menu button {
777
852
  justify-content: flex-start;
778
853
  width: 100%;
779
- padding: 8px 10px;
854
+ padding: 10px 12px;
780
855
  font-size: 13px;
781
856
  font-weight: 600;
782
857
  color: var(--aks-brand);
@@ -793,6 +868,13 @@ button.row-action-menu-trigger:hover {
793
868
  box-shadow: none;
794
869
  }
795
870
 
871
+ /* Mobile tools bar + right drawer — hidden on desktop */
872
+ .tools-mobile-bar,
873
+ .tools-drawer-backdrop,
874
+ .tools-drawer {
875
+ display: none;
876
+ }
877
+
796
878
  button.row-action {
797
879
  padding: 4px 8px;
798
880
  font-size: 12px;
@@ -890,6 +972,95 @@ button.row-action.danger:not(:disabled):hover {
890
972
  }
891
973
 
892
974
  @media (max-width: 900px) {
975
+ .list-workspace {
976
+ gap: 10px;
977
+ }
978
+
979
+ .tools-mobile-bar {
980
+ display: flex;
981
+ align-items: center;
982
+ justify-content: space-between;
983
+ gap: 10px;
984
+ flex: 0 0 auto;
985
+ min-height: 48px;
986
+ padding: 6px 8px 6px 10px;
987
+ border: 1px solid var(--aks-line);
988
+ border-radius: var(--aks-radius);
989
+ background: #fff;
990
+ }
991
+
992
+ .tools-mobile-bar-start {
993
+ min-width: 0;
994
+ flex: 1 1 auto;
995
+ }
996
+
997
+ .tools-mobile-title {
998
+ margin: 0;
999
+ color: var(--aks-brand);
1000
+ font-size: 13px;
1001
+ font-weight: 700;
1002
+ white-space: nowrap;
1003
+ overflow: hidden;
1004
+ text-overflow: ellipsis;
1005
+ }
1006
+
1007
+ button.tools-mobile-add {
1008
+ display: inline-flex;
1009
+ align-items: center;
1010
+ gap: 6px;
1011
+ min-height: 36px;
1012
+ padding: 6px 12px;
1013
+ border-radius: var(--aks-radius);
1014
+ background: var(--aks-brand);
1015
+ color: #fff;
1016
+ font-size: 13px;
1017
+ font-weight: 600;
1018
+ box-shadow: none;
1019
+ }
1020
+
1021
+ button.tools-mobile-add svg {
1022
+ width: 16px;
1023
+ height: 16px;
1024
+ }
1025
+
1026
+ button.tools-mobile-add:hover {
1027
+ transform: none;
1028
+ background: #2a3546;
1029
+ box-shadow: none;
1030
+ }
1031
+
1032
+ button.tools-mobile-toggle {
1033
+ position: relative;
1034
+ display: inline-flex;
1035
+ align-items: center;
1036
+ gap: 6px;
1037
+ min-height: 36px;
1038
+ padding: 6px 12px;
1039
+ border: 1px solid var(--aks-line);
1040
+ border-radius: var(--aks-radius);
1041
+ background: #faf9f7;
1042
+ color: var(--aks-brand);
1043
+ font-size: 13px;
1044
+ font-weight: 600;
1045
+ box-shadow: none;
1046
+ }
1047
+
1048
+ button.tools-mobile-toggle svg {
1049
+ width: 16px;
1050
+ height: 16px;
1051
+ }
1052
+
1053
+ button.tools-mobile-toggle:hover {
1054
+ transform: none;
1055
+ background: #f0eeea;
1056
+ box-shadow: none;
1057
+ }
1058
+
1059
+ button.tools-mobile-toggle .filter-badge {
1060
+ position: static;
1061
+ margin-left: 2px;
1062
+ }
1063
+
893
1064
  .list-body {
894
1065
  flex-direction: column;
895
1066
  }
@@ -899,30 +1070,101 @@ button.row-action.danger:not(:disabled):hover {
899
1070
  flex-direction: column;
900
1071
  }
901
1072
 
902
- .preview-panel,
903
- .side-rail,
904
- .side-rail.open {
905
- width: 100%;
906
- flex-basis: auto;
1073
+ /* Desktop side-rail becomes a right drawer on small screens */
1074
+ .list-body > .side-rail {
1075
+ display: none;
907
1076
  }
908
1077
 
909
- .side-rail:not(.open) {
910
- flex-direction: row;
911
- align-items: center;
1078
+ .preview-panel {
912
1079
  width: 100%;
913
1080
  flex-basis: auto;
914
- order: -1;
1081
+ order: 2;
915
1082
  }
916
1083
 
917
- .side-rail:not(.open) .side-rail-icons {
918
- display: inline-flex;
919
- flex-wrap: wrap;
920
- margin-left: auto;
921
- gap: 4px;
1084
+ .tools-drawer-backdrop {
1085
+ display: block;
1086
+ position: fixed;
1087
+ inset: 0;
1088
+ z-index: 55;
1089
+ border: 0;
1090
+ padding: 0;
1091
+ margin: 0;
1092
+ background: rgba(30, 39, 53, 0.42);
1093
+ opacity: 0;
1094
+ pointer-events: none;
1095
+ transition: opacity 160ms ease;
1096
+ box-shadow: none;
1097
+ }
1098
+
1099
+ .tools-drawer-backdrop.open {
1100
+ opacity: 1;
1101
+ pointer-events: auto;
1102
+ }
1103
+
1104
+ .tools-drawer {
1105
+ display: flex;
1106
+ flex-direction: column;
1107
+ position: fixed;
1108
+ top: 0;
1109
+ right: 0;
1110
+ bottom: 0;
1111
+ z-index: 60;
1112
+ width: min(320px, calc(100vw - 40px));
1113
+ background: #fff;
1114
+ border-left: 1px solid var(--aks-line);
1115
+ box-shadow: -12px 0 32px rgba(30, 39, 53, 0.18);
1116
+ transform: translateX(105%);
1117
+ transition: transform 180ms ease;
1118
+ pointer-events: none;
1119
+ }
1120
+
1121
+ .tools-drawer.open {
1122
+ transform: translateX(0);
1123
+ pointer-events: auto;
1124
+ }
1125
+
1126
+ .tools-drawer-head {
1127
+ display: flex;
1128
+ align-items: flex-start;
1129
+ justify-content: space-between;
1130
+ gap: 12px;
1131
+ flex: 0 0 auto;
1132
+ padding: 16px 16px 12px;
1133
+ border-bottom: 1px solid var(--aks-line);
1134
+ background: #faf9f7;
1135
+ }
1136
+
1137
+ .tools-drawer-kicker {
1138
+ margin: 0;
1139
+ color: var(--aks-accent);
1140
+ font-size: 11px;
1141
+ font-weight: 700;
1142
+ letter-spacing: 0.06em;
1143
+ text-transform: uppercase;
1144
+ }
1145
+
1146
+ .tools-drawer-head h3 {
1147
+ margin: 2px 0 0;
1148
+ color: var(--aks-brand);
1149
+ font-size: 16px;
1150
+ font-weight: 700;
1151
+ }
1152
+
1153
+ button.tools-drawer-close {
1154
+ padding: 6px 10px;
1155
+ font-size: 12px;
1156
+ box-shadow: none;
1157
+ }
1158
+
1159
+ .tools-drawer-body {
1160
+ flex: 1 1 auto;
1161
+ min-height: 0;
1162
+ overflow: auto;
1163
+ padding: 14px;
922
1164
  }
923
1165
 
924
- .side-rail.open {
925
- order: -1;
1166
+ .tools-drawer-body .side-rail-body {
1167
+ padding: 0;
926
1168
  }
927
1169
 
928
1170
  .table-card-bar {
@@ -38,7 +38,9 @@ button.side-rail-icon:hover,
38
38
  button.side-rail-columns-toggle:hover,
39
39
  button.filter-clear:hover,
40
40
  button.snackbar-close:hover,
41
- button.nav-drawer-close:hover {
41
+ button.nav-drawer-close:hover,
42
+ button.tools-mobile-toggle:hover,
43
+ button.tools-drawer-close:hover {
42
44
  transform: none;
43
45
  }
44
46