baaz-custom-components 5.1.0 → 5.1.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.
package/dist/index.css CHANGED
@@ -43,6 +43,7 @@
43
43
  --font-weight-normal: 400;
44
44
  --font-weight-medium: 500;
45
45
  --font-weight-semibold: 600;
46
+ --tracking-wide: 0.025em;
46
47
  --tracking-wider: 0.05em;
47
48
  --tracking-widest: 0.1em;
48
49
  --radius-xs: 0.125rem;
@@ -488,9 +489,6 @@
488
489
  width: 100%;
489
490
  height: 100%;
490
491
  }
491
- .h-1 {
492
- height: calc(var(--spacing) * 1);
493
- }
494
492
  .h-1\.5 {
495
493
  height: calc(var(--spacing) * 1.5);
496
494
  }
@@ -509,6 +507,9 @@
509
507
  .h-5 {
510
508
  height: calc(var(--spacing) * 5);
511
509
  }
510
+ .h-6 {
511
+ height: calc(var(--spacing) * 6);
512
+ }
512
513
  .h-7 {
513
514
  height: calc(var(--spacing) * 7);
514
515
  }
@@ -581,8 +582,8 @@
581
582
  .w-\(--sidebar-width\) {
582
583
  width: var(--sidebar-width);
583
584
  }
584
- .w-1 {
585
- width: calc(var(--spacing) * 1);
585
+ .w-1\.5 {
586
+ width: calc(var(--spacing) * 1.5);
586
587
  }
587
588
  .w-2 {
588
589
  width: calc(var(--spacing) * 2);
@@ -602,6 +603,9 @@
602
603
  .w-5 {
603
604
  width: calc(var(--spacing) * 5);
604
605
  }
606
+ .w-6 {
607
+ width: calc(var(--spacing) * 6);
608
+ }
605
609
  .w-8 {
606
610
  width: calc(var(--spacing) * 8);
607
611
  }
@@ -784,9 +788,6 @@
784
788
  .gap-2 {
785
789
  gap: calc(var(--spacing) * 2);
786
790
  }
787
- .gap-2\.5 {
788
- gap: calc(var(--spacing) * 2.5);
789
- }
790
791
  .gap-3 {
791
792
  gap: calc(var(--spacing) * 3);
792
793
  }
@@ -825,9 +826,6 @@
825
826
  .overflow-y-auto {
826
827
  overflow-y: auto;
827
828
  }
828
- .rounded {
829
- border-radius: 0.25rem;
830
- }
831
829
  .rounded-\[2px\] {
832
830
  border-radius: 2px;
833
831
  }
@@ -921,6 +919,12 @@
921
919
  .border-primary {
922
920
  border-color: var(--primary);
923
921
  }
922
+ .border-primary\/30 {
923
+ border-color: var(--primary);
924
+ @supports (color: color-mix(in lab, red, red)) {
925
+ border-color: color-mix(in oklab, var(--primary) 30%, transparent);
926
+ }
927
+ }
924
928
  .border-sidebar-border {
925
929
  border-color: var(--sidebar-border);
926
930
  }
@@ -1005,6 +1009,12 @@
1005
1009
  .bg-primary {
1006
1010
  background-color: var(--primary);
1007
1011
  }
1012
+ .bg-primary\/30 {
1013
+ background-color: var(--primary);
1014
+ @supports (color: color-mix(in lab, red, red)) {
1015
+ background-color: color-mix(in oklab, var(--primary) 30%, transparent);
1016
+ }
1017
+ }
1008
1018
  .bg-red-700 {
1009
1019
  background-color: var(--color-red-700);
1010
1020
  }
@@ -1020,9 +1030,6 @@
1020
1030
  .bg-sidebar-border {
1021
1031
  background-color: var(--sidebar-border);
1022
1032
  }
1023
- .bg-surface-alt {
1024
- background-color: var(--surface-alt);
1025
- }
1026
1033
  .bg-transparent {
1027
1034
  background-color: transparent;
1028
1035
  }
@@ -1047,15 +1054,9 @@
1047
1054
  .p-1 {
1048
1055
  padding: calc(var(--spacing) * 1);
1049
1056
  }
1050
- .p-1\.5 {
1051
- padding: calc(var(--spacing) * 1.5);
1052
- }
1053
1057
  .p-2 {
1054
1058
  padding: calc(var(--spacing) * 2);
1055
1059
  }
1056
- .p-2\.5 {
1057
- padding: calc(var(--spacing) * 2.5);
1058
- }
1059
1060
  .p-4 {
1060
1061
  padding: calc(var(--spacing) * 4);
1061
1062
  }
@@ -1107,9 +1108,15 @@
1107
1108
  .py-2\.5 {
1108
1109
  padding-block: calc(var(--spacing) * 2.5);
1109
1110
  }
1111
+ .py-3 {
1112
+ padding-block: calc(var(--spacing) * 3);
1113
+ }
1110
1114
  .py-4 {
1111
1115
  padding-block: calc(var(--spacing) * 4);
1112
1116
  }
1117
+ .pt-1 {
1118
+ padding-top: calc(var(--spacing) * 1);
1119
+ }
1113
1120
  .pt-2 {
1114
1121
  padding-top: calc(var(--spacing) * 2);
1115
1122
  }
@@ -1156,8 +1163,11 @@
1156
1163
  font-size: var(--text-xs);
1157
1164
  line-height: var(--tw-leading, var(--text-xs--line-height));
1158
1165
  }
1159
- .text-\[9px\] {
1160
- font-size: 9px;
1166
+ .text-\[10px\] {
1167
+ font-size: 10px;
1168
+ }
1169
+ .text-\[13px\] {
1170
+ font-size: 13px;
1161
1171
  }
1162
1172
  .leading-none {
1163
1173
  --tw-leading: 1;
@@ -1183,22 +1193,22 @@
1183
1193
  --tw-font-weight: var(--font-weight-semibold);
1184
1194
  font-weight: var(--font-weight-semibold);
1185
1195
  }
1186
- .tracking-\[0\.1em\] {
1187
- --tw-tracking: 0.1em;
1188
- letter-spacing: 0.1em;
1189
- }
1190
- .tracking-\[0\.14em\] {
1191
- --tw-tracking: 0.14em;
1192
- letter-spacing: 0.14em;
1196
+ .tracking-\[0\.12em\] {
1197
+ --tw-tracking: 0.12em;
1198
+ letter-spacing: 0.12em;
1193
1199
  }
1194
- .tracking-\[0\.15em\] {
1195
- --tw-tracking: 0.15em;
1196
- letter-spacing: 0.15em;
1200
+ .tracking-\[0\.16em\] {
1201
+ --tw-tracking: 0.16em;
1202
+ letter-spacing: 0.16em;
1197
1203
  }
1198
1204
  .tracking-\[0\.25rem\] {
1199
1205
  --tw-tracking: 0.25rem;
1200
1206
  letter-spacing: 0.25rem;
1201
1207
  }
1208
+ .tracking-wide {
1209
+ --tw-tracking: var(--tracking-wide);
1210
+ letter-spacing: var(--tracking-wide);
1211
+ }
1202
1212
  .tracking-wider {
1203
1213
  --tw-tracking: var(--tracking-wider);
1204
1214
  letter-spacing: var(--tracking-wider);
@@ -1225,16 +1235,22 @@
1225
1235
  .text-foreground {
1226
1236
  color: var(--foreground);
1227
1237
  }
1228
- .text-foreground\/25 {
1238
+ .text-foreground\/30 {
1239
+ color: var(--foreground);
1240
+ @supports (color: color-mix(in lab, red, red)) {
1241
+ color: color-mix(in oklab, var(--foreground) 30%, transparent);
1242
+ }
1243
+ }
1244
+ .text-foreground\/35 {
1229
1245
  color: var(--foreground);
1230
1246
  @supports (color: color-mix(in lab, red, red)) {
1231
- color: color-mix(in oklab, var(--foreground) 25%, transparent);
1247
+ color: color-mix(in oklab, var(--foreground) 35%, transparent);
1232
1248
  }
1233
1249
  }
1234
- .text-foreground\/30 {
1250
+ .text-foreground\/40 {
1235
1251
  color: var(--foreground);
1236
1252
  @supports (color: color-mix(in lab, red, red)) {
1237
- color: color-mix(in oklab, var(--foreground) 30%, transparent);
1253
+ color: color-mix(in oklab, var(--foreground) 40%, transparent);
1238
1254
  }
1239
1255
  }
1240
1256
  .text-foreground\/50 {
@@ -1243,10 +1259,10 @@
1243
1259
  color: color-mix(in oklab, var(--foreground) 50%, transparent);
1244
1260
  }
1245
1261
  }
1246
- .text-foreground\/70 {
1262
+ .text-foreground\/60 {
1247
1263
  color: var(--foreground);
1248
1264
  @supports (color: color-mix(in lab, red, red)) {
1249
- color: color-mix(in oklab, var(--foreground) 70%, transparent);
1265
+ color: color-mix(in oklab, var(--foreground) 60%, transparent);
1250
1266
  }
1251
1267
  }
1252
1268
  .text-green-800 {
@@ -1507,9 +1523,9 @@
1507
1523
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1508
1524
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1509
1525
  }
1510
- .duration-100 {
1511
- --tw-duration: 100ms;
1512
- transition-duration: 100ms;
1526
+ .duration-150 {
1527
+ --tw-duration: 150ms;
1528
+ transition-duration: 150ms;
1513
1529
  }
1514
1530
  .duration-200 {
1515
1531
  --tw-duration: 200ms;
@@ -1552,13 +1568,10 @@
1552
1568
  opacity: 100%;
1553
1569
  }
1554
1570
  }
1555
- .group-hover\:text-foreground\/90 {
1571
+ .group-hover\:text-primary {
1556
1572
  &:is(:where(.group):hover *) {
1557
1573
  @media (hover: hover) {
1558
- color: var(--foreground);
1559
- @supports (color: color-mix(in lab, red, red)) {
1560
- color: color-mix(in oklab, var(--foreground) 90%, transparent);
1561
- }
1574
+ color: var(--primary);
1562
1575
  }
1563
1576
  }
1564
1577
  }
@@ -1916,13 +1929,6 @@
1916
1929
  }
1917
1930
  }
1918
1931
  }
1919
- .hover\:bg-border {
1920
- &:hover {
1921
- @media (hover: hover) {
1922
- background-color: var(--border);
1923
- }
1924
- }
1925
- }
1926
1932
  .hover\:bg-card-foreground {
1927
1933
  &:hover {
1928
1934
  @media (hover: hover) {
@@ -2063,6 +2069,14 @@
2063
2069
  }
2064
2070
  }
2065
2071
  }
2072
+ .hover\:brightness-110 {
2073
+ &:hover {
2074
+ @media (hover: hover) {
2075
+ --tw-brightness: brightness(110%);
2076
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
2077
+ }
2078
+ }
2079
+ }
2066
2080
  .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar {
2067
2081
  &:hover {
2068
2082
  @media (hover: hover) {
@@ -7925,6 +7939,9 @@ i.wx-U0Bx7pIR {
7925
7939
  .wx-4VuBwK2D:last-child {
7926
7940
  border-bottom: 0.1px solid rgb(56, 64, 71);
7927
7941
  }
7942
+ .wx-table-box.wx-4VuBwK2D {
7943
+ border: none;
7944
+ }
7928
7945
  @property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }
7929
7946
  @property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }
7930
7947
  @property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }
package/dist/index.js CHANGED
@@ -2376,7 +2376,7 @@ var GridHeader = ({
2376
2376
  document.addEventListener("mousedown", handleClickOutside);
2377
2377
  return () => document.removeEventListener("mousedown", handleClickOutside);
2378
2378
  }, []);
2379
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex flex-col md:flex-row md:items-center justify-between bg-card py-2 px-2 md:px-4 rounded-tl-md rounded-tr-md", children: [
2379
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex flex-col md:flex-row md:items-center justify-between bg-card py-2 px-2 md:px-4 rounded-tl-md rounded-tr-md border-l border-r border-t", children: [
2380
2380
  /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex justify-between items-center gap-3", children: [
2381
2381
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2382
2382
  filters_default,
@@ -2530,7 +2530,7 @@ var Grid = (0, import_react7.forwardRef)(
2530
2530
  if (!isNaN(currentWidth)) {
2531
2531
  api.exec("resize-column", {
2532
2532
  id: col.id,
2533
- width: currentWidth + extra - 0.3
2533
+ width: currentWidth + extra
2534
2534
  });
2535
2535
  }
2536
2536
  });
@@ -2540,7 +2540,7 @@ var Grid = (0, import_react7.forwardRef)(
2540
2540
  columns.forEach((col) => {
2541
2541
  api.exec("resize-column", {
2542
2542
  id: col.id,
2543
- width: columnWidth - 0.3
2543
+ width: columnWidth
2544
2544
  });
2545
2545
  });
2546
2546
  }
@@ -2601,7 +2601,7 @@ var Grid = (0, import_react7.forwardRef)(
2601
2601
  children
2602
2602
  }
2603
2603
  ),
2604
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "flex-1 w-full overflow-hidden", ref: containerRef, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_grid.WillowDark, { fonts, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "w-full h-full relative", children: rest.loading ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "absolute inset-0 bg-background/60 backdrop-blur-sm flex items-center justify-center z-10", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "animate-spin rounded-full h-8 w-8 border-2 border-primary border-t-transparent" }) }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_grid.Grid, __spreadProps(__spreadValues({}, rest), { data, columns, init })) }) }) })
2604
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "flex-1 w-full border border-border overflow-hidden", ref: containerRef, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_grid.WillowDark, { fonts, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "w-full h-full relative", children: rest.loading ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "absolute inset-0 bg-background/60 backdrop-blur-sm flex items-center justify-center z-10", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "animate-spin rounded-full h-8 w-8 border-2 border-primary border-t-transparent" }) }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_grid.Grid, __spreadProps(__spreadValues({}, rest), { data, columns, init })) }) }) })
2605
2605
  ] });
2606
2606
  }
2607
2607
  );
@@ -2692,7 +2692,7 @@ function Pagination({
2692
2692
  const handlePageSizeChange = (size) => {
2693
2693
  onPageSizeChange == null ? void 0 : onPageSizeChange(size);
2694
2694
  };
2695
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col-reverse gap-2 md:flex-row items-center justify-between bg-card px-3 py-2 rounded-br-md rounded-bl-md", children: [
2695
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col-reverse gap-2 md:flex-row items-center justify-between bg-card px-3 py-2 rounded-br-md rounded-bl-md border-l border-r border-b", children: [
2696
2696
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex justify-between w-full md:w-auto items-center gap-3 text-xs text-muted-foreground tracking-wider font-medium", children: [
2697
2697
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { children: [
2698
2698
  "Showing ",
@@ -2787,6 +2787,16 @@ var SlideToolbar = ({
2787
2787
  onAction == null ? void 0 : onAction(item.id);
2788
2788
  };
2789
2789
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
2790
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("style", { children: `
2791
+ @keyframes bounceX {
2792
+ 0%, 100% { transform: translateX(0px); }
2793
+ 40% { transform: translateX(4px); }
2794
+ 60% { transform: translateX(2px); }
2795
+ }
2796
+ .chevron-bounce {
2797
+ animation: bounceX 1.4s ease-in-out infinite;
2798
+ }
2799
+ ` }),
2790
2800
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2791
2801
  "div",
2792
2802
  {
@@ -2794,13 +2804,20 @@ var SlideToolbar = ({
2794
2804
  tabIndex: 0,
2795
2805
  "aria-label": `Open ${title}`,
2796
2806
  onClick: () => setOpen(true),
2807
+ onKeyDown: (e) => e.key === "Enter" && setOpen(true),
2797
2808
  className: [
2798
2809
  "absolute inset-y-0 left-0 z-20 w-[18px] flex items-center justify-center",
2799
- "bg-card border-r border-border cursor-pointer",
2800
- "hover:bg-surface-alt transition-all duration-200",
2810
+ "bg-primary/30 border-r border-primary/30 cursor-pointer",
2811
+ "hover:brightness-110 transition-all duration-200",
2801
2812
  open ? "opacity-0 pointer-events-none !w-0 border-r-0" : "opacity-100 pointer-events-auto"
2802
2813
  ].join(" "),
2803
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react16.ChevronRight, { className: "text-foreground/50", size: 50 })
2814
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2815
+ import_lucide_react16.ChevronRight,
2816
+ {
2817
+ className: "text-primary-foreground chevron-bounce",
2818
+ size: 16
2819
+ }
2820
+ )
2804
2821
  }
2805
2822
  ),
2806
2823
  /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
@@ -2820,52 +2837,36 @@ var SlideToolbar = ({
2820
2837
  ].join(" "),
2821
2838
  style: { width: `${panelWidth}px` },
2822
2839
  children: [
2823
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-between px-3 py-2.5 bg-surface-alt border-b border-border shrink-0", children: [
2824
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-xs font-semibold tracking-[0.15em] uppercase text-foreground", children: title }),
2840
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-between px-4 py-3 border-b border-border shrink-0", children: [
2841
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-sm font-semibold text-foreground tracking-wide", children: title }),
2825
2842
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2826
2843
  "button",
2827
2844
  {
2828
2845
  onClick: () => setOpen(false),
2829
2846
  "aria-label": "Close toolbar",
2830
- className: "flex items-center justify-center w-5 h-5 rounded cursor-pointer\n text-foreground hover:text-foreground hover:bg-border\n transition-colors duration-100",
2831
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react16.X, { size: 14 })
2847
+ className: "flex items-center justify-center w-6 h-6 rounded-md\n text-foreground/50 hover:text-foreground hover:bg-surface-alt\n transition-all duration-150 cursor-pointer",
2848
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react16.X, { size: 13 })
2832
2849
  }
2833
2850
  )
2834
2851
  ] }),
2835
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-1 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-none", children: resolvedItems ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
2836
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "p-2 text-xs font-semibold tracking-[0.14em] uppercase text-foreground/30", children: "Actions" }),
2837
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("nav", { className: "flex flex-col gap-2", children: resolvedItems.map((item) => {
2838
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2839
- "button",
2840
- {
2841
- onClick: () => handleItem(item),
2842
- className: [
2843
- "group flex items-center gap-2.5 p-2.5 rounded w-full",
2844
- "text-left text-sm cursor-pointer border-l-2",
2845
- "transition-colors duration-100",
2846
- "border-transparent text-foreground/70 hover:text-foreground hover:bg-surface-alt hover:border-primary"
2847
- ].join(" "),
2848
- children: [
2849
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2850
- "span",
2851
- {
2852
- className: [
2853
- "flex shrink-0 transition-colors duration-100",
2854
- "text-foreground/70 group-hover:text-foreground/90"
2855
- ].join(" "),
2856
- children: item.icon
2857
- }
2858
- ),
2859
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "flex-1 leading-none", children: item.label })
2860
- ]
2861
- },
2862
- item.id
2863
- );
2864
- }) })
2852
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-1 overflow-y-auto overflow-x-hidden py-2 scrollbar-none", children: resolvedItems ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
2853
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "px-4 pt-1 pb-2 text-[10px] font-semibold tracking-[0.16em] uppercase text-foreground/35", children: "Actions" }),
2854
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("nav", { className: "flex flex-col px-2", children: resolvedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2855
+ "button",
2856
+ {
2857
+ onClick: () => handleItem(item),
2858
+ className: "group flex items-center gap-3 px-3 py-2.5 rounded-lg w-full\n text-left text-[13px] font-medium cursor-pointer\n text-foreground/60 hover:text-foreground hover:bg-surface-alt\n transition-all duration-150 border-l-2 border-transparent\n hover:border-primary",
2859
+ children: [
2860
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "flex shrink-0 text-foreground/40 group-hover:text-primary transition-colors duration-150", children: item.icon }),
2861
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "flex-1 leading-none", children: item.label })
2862
+ ]
2863
+ },
2864
+ item.id
2865
+ )) })
2865
2866
  ] }) : children }),
2866
- footerLabel && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center gap-2 px-3 py-2 border-t border-border bg-surface-alt shrink-0", children: [
2867
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "w-1 h-1 rounded-full bg-foreground/20 shrink-0" }),
2868
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-[9px] tracking-[0.1em] uppercase text-foreground/25", children: footerLabel })
2867
+ footerLabel && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center gap-2 px-4 py-3 border-t border-border shrink-0", children: [
2868
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "w-1.5 h-1.5 rounded-full bg-foreground/20 shrink-0" }),
2869
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-[10px] tracking-[0.12em] uppercase text-foreground/30 font-medium", children: footerLabel })
2869
2870
  ] })
2870
2871
  ]
2871
2872
  }
package/dist/index.mjs CHANGED
@@ -2350,7 +2350,7 @@ var GridHeader = ({
2350
2350
  document.addEventListener("mousedown", handleClickOutside);
2351
2351
  return () => document.removeEventListener("mousedown", handleClickOutside);
2352
2352
  }, []);
2353
- return /* @__PURE__ */ jsxs18("div", { className: "flex flex-col md:flex-row md:items-center justify-between bg-card py-2 px-2 md:px-4 rounded-tl-md rounded-tr-md", children: [
2353
+ return /* @__PURE__ */ jsxs18("div", { className: "flex flex-col md:flex-row md:items-center justify-between bg-card py-2 px-2 md:px-4 rounded-tl-md rounded-tr-md border-l border-r border-t", children: [
2354
2354
  /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center gap-3", children: [
2355
2355
  /* @__PURE__ */ jsx24(
2356
2356
  filters_default,
@@ -2504,7 +2504,7 @@ var Grid = forwardRef(
2504
2504
  if (!isNaN(currentWidth)) {
2505
2505
  api.exec("resize-column", {
2506
2506
  id: col.id,
2507
- width: currentWidth + extra - 0.3
2507
+ width: currentWidth + extra
2508
2508
  });
2509
2509
  }
2510
2510
  });
@@ -2514,7 +2514,7 @@ var Grid = forwardRef(
2514
2514
  columns.forEach((col) => {
2515
2515
  api.exec("resize-column", {
2516
2516
  id: col.id,
2517
- width: columnWidth - 0.3
2517
+ width: columnWidth
2518
2518
  });
2519
2519
  });
2520
2520
  }
@@ -2575,7 +2575,7 @@ var Grid = forwardRef(
2575
2575
  children
2576
2576
  }
2577
2577
  ),
2578
- /* @__PURE__ */ jsx25("div", { className: "flex-1 w-full overflow-hidden", ref: containerRef, children: /* @__PURE__ */ jsx25(WillowDark, { fonts, children: /* @__PURE__ */ jsx25("div", { className: "w-full h-full relative", children: rest.loading ? /* @__PURE__ */ jsx25("div", { className: "absolute inset-0 bg-background/60 backdrop-blur-sm flex items-center justify-center z-10", children: /* @__PURE__ */ jsx25("div", { className: "animate-spin rounded-full h-8 w-8 border-2 border-primary border-t-transparent" }) }) : /* @__PURE__ */ jsx25(SvarGrid, __spreadProps(__spreadValues({}, rest), { data, columns, init })) }) }) })
2578
+ /* @__PURE__ */ jsx25("div", { className: "flex-1 w-full border border-border overflow-hidden", ref: containerRef, children: /* @__PURE__ */ jsx25(WillowDark, { fonts, children: /* @__PURE__ */ jsx25("div", { className: "w-full h-full relative", children: rest.loading ? /* @__PURE__ */ jsx25("div", { className: "absolute inset-0 bg-background/60 backdrop-blur-sm flex items-center justify-center z-10", children: /* @__PURE__ */ jsx25("div", { className: "animate-spin rounded-full h-8 w-8 border-2 border-primary border-t-transparent" }) }) : /* @__PURE__ */ jsx25(SvarGrid, __spreadProps(__spreadValues({}, rest), { data, columns, init })) }) }) })
2579
2579
  ] });
2580
2580
  }
2581
2581
  );
@@ -2666,7 +2666,7 @@ function Pagination({
2666
2666
  const handlePageSizeChange = (size) => {
2667
2667
  onPageSizeChange == null ? void 0 : onPageSizeChange(size);
2668
2668
  };
2669
- return /* @__PURE__ */ jsxs21("div", { className: "flex flex-col-reverse gap-2 md:flex-row items-center justify-between bg-card px-3 py-2 rounded-br-md rounded-bl-md", children: [
2669
+ return /* @__PURE__ */ jsxs21("div", { className: "flex flex-col-reverse gap-2 md:flex-row items-center justify-between bg-card px-3 py-2 rounded-br-md rounded-bl-md border-l border-r border-b", children: [
2670
2670
  /* @__PURE__ */ jsxs21("div", { className: "flex justify-between w-full md:w-auto items-center gap-3 text-xs text-muted-foreground tracking-wider font-medium", children: [
2671
2671
  /* @__PURE__ */ jsxs21("span", { children: [
2672
2672
  "Showing ",
@@ -2761,6 +2761,16 @@ var SlideToolbar = ({
2761
2761
  onAction == null ? void 0 : onAction(item.id);
2762
2762
  };
2763
2763
  return /* @__PURE__ */ jsxs22(Fragment3, { children: [
2764
+ /* @__PURE__ */ jsx28("style", { children: `
2765
+ @keyframes bounceX {
2766
+ 0%, 100% { transform: translateX(0px); }
2767
+ 40% { transform: translateX(4px); }
2768
+ 60% { transform: translateX(2px); }
2769
+ }
2770
+ .chevron-bounce {
2771
+ animation: bounceX 1.4s ease-in-out infinite;
2772
+ }
2773
+ ` }),
2764
2774
  /* @__PURE__ */ jsx28(
2765
2775
  "div",
2766
2776
  {
@@ -2768,13 +2778,20 @@ var SlideToolbar = ({
2768
2778
  tabIndex: 0,
2769
2779
  "aria-label": `Open ${title}`,
2770
2780
  onClick: () => setOpen(true),
2781
+ onKeyDown: (e) => e.key === "Enter" && setOpen(true),
2771
2782
  className: [
2772
2783
  "absolute inset-y-0 left-0 z-20 w-[18px] flex items-center justify-center",
2773
- "bg-card border-r border-border cursor-pointer",
2774
- "hover:bg-surface-alt transition-all duration-200",
2784
+ "bg-primary/30 border-r border-primary/30 cursor-pointer",
2785
+ "hover:brightness-110 transition-all duration-200",
2775
2786
  open ? "opacity-0 pointer-events-none !w-0 border-r-0" : "opacity-100 pointer-events-auto"
2776
2787
  ].join(" "),
2777
- children: /* @__PURE__ */ jsx28(ChevronRight4, { className: "text-foreground/50", size: 50 })
2788
+ children: /* @__PURE__ */ jsx28(
2789
+ ChevronRight4,
2790
+ {
2791
+ className: "text-primary-foreground chevron-bounce",
2792
+ size: 16
2793
+ }
2794
+ )
2778
2795
  }
2779
2796
  ),
2780
2797
  /* @__PURE__ */ jsxs22(
@@ -2794,52 +2811,36 @@ var SlideToolbar = ({
2794
2811
  ].join(" "),
2795
2812
  style: { width: `${panelWidth}px` },
2796
2813
  children: [
2797
- /* @__PURE__ */ jsxs22("div", { className: "flex items-center justify-between px-3 py-2.5 bg-surface-alt border-b border-border shrink-0", children: [
2798
- /* @__PURE__ */ jsx28("span", { className: "text-xs font-semibold tracking-[0.15em] uppercase text-foreground", children: title }),
2814
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center justify-between px-4 py-3 border-b border-border shrink-0", children: [
2815
+ /* @__PURE__ */ jsx28("span", { className: "text-sm font-semibold text-foreground tracking-wide", children: title }),
2799
2816
  /* @__PURE__ */ jsx28(
2800
2817
  "button",
2801
2818
  {
2802
2819
  onClick: () => setOpen(false),
2803
2820
  "aria-label": "Close toolbar",
2804
- className: "flex items-center justify-center w-5 h-5 rounded cursor-pointer\n text-foreground hover:text-foreground hover:bg-border\n transition-colors duration-100",
2805
- children: /* @__PURE__ */ jsx28(X4, { size: 14 })
2821
+ className: "flex items-center justify-center w-6 h-6 rounded-md\n text-foreground/50 hover:text-foreground hover:bg-surface-alt\n transition-all duration-150 cursor-pointer",
2822
+ children: /* @__PURE__ */ jsx28(X4, { size: 13 })
2806
2823
  }
2807
2824
  )
2808
2825
  ] }),
2809
- /* @__PURE__ */ jsx28("div", { className: "flex-1 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-none", children: resolvedItems ? /* @__PURE__ */ jsxs22(Fragment3, { children: [
2810
- /* @__PURE__ */ jsx28("p", { className: "p-2 text-xs font-semibold tracking-[0.14em] uppercase text-foreground/30", children: "Actions" }),
2811
- /* @__PURE__ */ jsx28("nav", { className: "flex flex-col gap-2", children: resolvedItems.map((item) => {
2812
- return /* @__PURE__ */ jsxs22(
2813
- "button",
2814
- {
2815
- onClick: () => handleItem(item),
2816
- className: [
2817
- "group flex items-center gap-2.5 p-2.5 rounded w-full",
2818
- "text-left text-sm cursor-pointer border-l-2",
2819
- "transition-colors duration-100",
2820
- "border-transparent text-foreground/70 hover:text-foreground hover:bg-surface-alt hover:border-primary"
2821
- ].join(" "),
2822
- children: [
2823
- /* @__PURE__ */ jsx28(
2824
- "span",
2825
- {
2826
- className: [
2827
- "flex shrink-0 transition-colors duration-100",
2828
- "text-foreground/70 group-hover:text-foreground/90"
2829
- ].join(" "),
2830
- children: item.icon
2831
- }
2832
- ),
2833
- /* @__PURE__ */ jsx28("span", { className: "flex-1 leading-none", children: item.label })
2834
- ]
2835
- },
2836
- item.id
2837
- );
2838
- }) })
2826
+ /* @__PURE__ */ jsx28("div", { className: "flex-1 overflow-y-auto overflow-x-hidden py-2 scrollbar-none", children: resolvedItems ? /* @__PURE__ */ jsxs22(Fragment3, { children: [
2827
+ /* @__PURE__ */ jsx28("p", { className: "px-4 pt-1 pb-2 text-[10px] font-semibold tracking-[0.16em] uppercase text-foreground/35", children: "Actions" }),
2828
+ /* @__PURE__ */ jsx28("nav", { className: "flex flex-col px-2", children: resolvedItems.map((item) => /* @__PURE__ */ jsxs22(
2829
+ "button",
2830
+ {
2831
+ onClick: () => handleItem(item),
2832
+ className: "group flex items-center gap-3 px-3 py-2.5 rounded-lg w-full\n text-left text-[13px] font-medium cursor-pointer\n text-foreground/60 hover:text-foreground hover:bg-surface-alt\n transition-all duration-150 border-l-2 border-transparent\n hover:border-primary",
2833
+ children: [
2834
+ /* @__PURE__ */ jsx28("span", { className: "flex shrink-0 text-foreground/40 group-hover:text-primary transition-colors duration-150", children: item.icon }),
2835
+ /* @__PURE__ */ jsx28("span", { className: "flex-1 leading-none", children: item.label })
2836
+ ]
2837
+ },
2838
+ item.id
2839
+ )) })
2839
2840
  ] }) : children }),
2840
- footerLabel && /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 px-3 py-2 border-t border-border bg-surface-alt shrink-0", children: [
2841
- /* @__PURE__ */ jsx28("span", { className: "w-1 h-1 rounded-full bg-foreground/20 shrink-0" }),
2842
- /* @__PURE__ */ jsx28("span", { className: "text-[9px] tracking-[0.1em] uppercase text-foreground/25", children: footerLabel })
2841
+ footerLabel && /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 px-4 py-3 border-t border-border shrink-0", children: [
2842
+ /* @__PURE__ */ jsx28("span", { className: "w-1.5 h-1.5 rounded-full bg-foreground/20 shrink-0" }),
2843
+ /* @__PURE__ */ jsx28("span", { className: "text-[10px] tracking-[0.12em] uppercase text-foreground/30 font-medium", children: footerLabel })
2843
2844
  ] })
2844
2845
  ]
2845
2846
  }