baaz-custom-components 5.0.33 → 5.1.1

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
@@ -47,6 +47,7 @@
47
47
  --tracking-widest: 0.1em;
48
48
  --radius-xs: 0.125rem;
49
49
  --radius-2xl: 1rem;
50
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
50
51
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
51
52
  --animate-spin: spin 1s linear infinite;
52
53
  --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
@@ -247,6 +248,9 @@
247
248
  }
248
249
  }
249
250
  @layer utilities {
251
+ .pointer-events-auto {
252
+ pointer-events: auto;
253
+ }
250
254
  .pointer-events-none {
251
255
  pointer-events: none;
252
256
  }
@@ -342,6 +346,9 @@
342
346
  .z-20 {
343
347
  z-index: 20;
344
348
  }
349
+ .z-30 {
350
+ z-index: 30;
351
+ }
345
352
  .z-40 {
346
353
  z-index: 40;
347
354
  }
@@ -481,6 +488,9 @@
481
488
  width: 100%;
482
489
  height: 100%;
483
490
  }
491
+ .h-1 {
492
+ height: calc(var(--spacing) * 1);
493
+ }
484
494
  .h-1\.5 {
485
495
  height: calc(var(--spacing) * 1.5);
486
496
  }
@@ -562,12 +572,18 @@
562
572
  .min-h-0 {
563
573
  min-height: calc(var(--spacing) * 0);
564
574
  }
575
+ .\!w-0 {
576
+ width: calc(var(--spacing) * 0) !important;
577
+ }
565
578
  .\!w-md {
566
579
  width: var(--container-md) !important;
567
580
  }
568
581
  .w-\(--sidebar-width\) {
569
582
  width: var(--sidebar-width);
570
583
  }
584
+ .w-1 {
585
+ width: calc(var(--spacing) * 1);
586
+ }
571
587
  .w-2 {
572
588
  width: calc(var(--spacing) * 2);
573
589
  }
@@ -598,6 +614,9 @@
598
614
  .w-80 {
599
615
  width: calc(var(--spacing) * 80);
600
616
  }
617
+ .w-\[18px\] {
618
+ width: 18px;
619
+ }
601
620
  .w-\[40px\] {
602
621
  width: 40px;
603
622
  }
@@ -671,10 +690,18 @@
671
690
  --tw-translate-x: calc(calc(1/2 * 100%) * -1);
672
691
  translate: var(--tw-translate-x) var(--tw-translate-y);
673
692
  }
693
+ .-translate-x-full {
694
+ --tw-translate-x: -100%;
695
+ translate: var(--tw-translate-x) var(--tw-translate-y);
696
+ }
674
697
  .-translate-x-px {
675
698
  --tw-translate-x: -1px;
676
699
  translate: var(--tw-translate-x) var(--tw-translate-y);
677
700
  }
701
+ .translate-x-0 {
702
+ --tw-translate-x: calc(var(--spacing) * 0);
703
+ translate: var(--tw-translate-x) var(--tw-translate-y);
704
+ }
678
705
  .translate-x-\[-50\%\] {
679
706
  --tw-translate-x: -50%;
680
707
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -757,6 +784,9 @@
757
784
  .gap-2 {
758
785
  gap: calc(var(--spacing) * 2);
759
786
  }
787
+ .gap-2\.5 {
788
+ gap: calc(var(--spacing) * 2.5);
789
+ }
760
790
  .gap-3 {
761
791
  gap: calc(var(--spacing) * 3);
762
792
  }
@@ -795,6 +825,9 @@
795
825
  .overflow-y-auto {
796
826
  overflow-y: auto;
797
827
  }
828
+ .rounded {
829
+ border-radius: 0.25rem;
830
+ }
798
831
  .rounded-\[2px\] {
799
832
  border-radius: 2px;
800
833
  }
@@ -851,6 +884,10 @@
851
884
  border-right-style: var(--tw-border-style);
852
885
  border-right-width: 1px;
853
886
  }
887
+ .border-r-0 {
888
+ border-right-style: var(--tw-border-style);
889
+ border-right-width: 0px;
890
+ }
854
891
  .border-b {
855
892
  border-bottom-style: var(--tw-border-style);
856
893
  border-bottom-width: 1px;
@@ -867,6 +904,10 @@
867
904
  border-left-style: var(--tw-border-style);
868
905
  border-left-width: 1px;
869
906
  }
907
+ .border-l-2 {
908
+ border-left-style: var(--tw-border-style);
909
+ border-left-width: 2px;
910
+ }
870
911
  .border-none {
871
912
  --tw-border-style: none;
872
913
  border-style: none;
@@ -880,9 +921,18 @@
880
921
  .border-primary {
881
922
  border-color: var(--primary);
882
923
  }
924
+ .border-primary\/30 {
925
+ border-color: var(--primary);
926
+ @supports (color: color-mix(in lab, red, red)) {
927
+ border-color: color-mix(in oklab, var(--primary) 30%, transparent);
928
+ }
929
+ }
883
930
  .border-sidebar-border {
884
931
  border-color: var(--sidebar-border);
885
932
  }
933
+ .border-transparent {
934
+ border-color: transparent;
935
+ }
886
936
  .border-t-transparent {
887
937
  border-top-color: transparent;
888
938
  }
@@ -937,6 +987,12 @@
937
987
  .bg-destructive {
938
988
  background-color: var(--destructive);
939
989
  }
990
+ .bg-foreground\/20 {
991
+ background-color: var(--foreground);
992
+ @supports (color: color-mix(in lab, red, red)) {
993
+ background-color: color-mix(in oklab, var(--foreground) 20%, transparent);
994
+ }
995
+ }
940
996
  .bg-input {
941
997
  background-color: var(--input);
942
998
  }
@@ -955,6 +1011,12 @@
955
1011
  .bg-primary {
956
1012
  background-color: var(--primary);
957
1013
  }
1014
+ .bg-primary\/30 {
1015
+ background-color: var(--primary);
1016
+ @supports (color: color-mix(in lab, red, red)) {
1017
+ background-color: color-mix(in oklab, var(--primary) 30%, transparent);
1018
+ }
1019
+ }
958
1020
  .bg-red-700 {
959
1021
  background-color: var(--color-red-700);
960
1022
  }
@@ -970,6 +1032,9 @@
970
1032
  .bg-sidebar-border {
971
1033
  background-color: var(--sidebar-border);
972
1034
  }
1035
+ .bg-surface-alt {
1036
+ background-color: var(--surface-alt);
1037
+ }
973
1038
  .bg-transparent {
974
1039
  background-color: transparent;
975
1040
  }
@@ -994,9 +1059,15 @@
994
1059
  .p-1 {
995
1060
  padding: calc(var(--spacing) * 1);
996
1061
  }
1062
+ .p-1\.5 {
1063
+ padding: calc(var(--spacing) * 1.5);
1064
+ }
997
1065
  .p-2 {
998
1066
  padding: calc(var(--spacing) * 2);
999
1067
  }
1068
+ .p-2\.5 {
1069
+ padding: calc(var(--spacing) * 2.5);
1070
+ }
1000
1071
  .p-4 {
1001
1072
  padding: calc(var(--spacing) * 4);
1002
1073
  }
@@ -1045,6 +1116,9 @@
1045
1116
  .py-2 {
1046
1117
  padding-block: calc(var(--spacing) * 2);
1047
1118
  }
1119
+ .py-2\.5 {
1120
+ padding-block: calc(var(--spacing) * 2.5);
1121
+ }
1048
1122
  .py-4 {
1049
1123
  padding-block: calc(var(--spacing) * 4);
1050
1124
  }
@@ -1094,6 +1168,9 @@
1094
1168
  font-size: var(--text-xs);
1095
1169
  line-height: var(--tw-leading, var(--text-xs--line-height));
1096
1170
  }
1171
+ .text-\[9px\] {
1172
+ font-size: 9px;
1173
+ }
1097
1174
  .leading-none {
1098
1175
  --tw-leading: 1;
1099
1176
  line-height: 1;
@@ -1118,6 +1195,18 @@
1118
1195
  --tw-font-weight: var(--font-weight-semibold);
1119
1196
  font-weight: var(--font-weight-semibold);
1120
1197
  }
1198
+ .tracking-\[0\.1em\] {
1199
+ --tw-tracking: 0.1em;
1200
+ letter-spacing: 0.1em;
1201
+ }
1202
+ .tracking-\[0\.14em\] {
1203
+ --tw-tracking: 0.14em;
1204
+ letter-spacing: 0.14em;
1205
+ }
1206
+ .tracking-\[0\.15em\] {
1207
+ --tw-tracking: 0.15em;
1208
+ letter-spacing: 0.15em;
1209
+ }
1121
1210
  .tracking-\[0\.25rem\] {
1122
1211
  --tw-tracking: 0.25rem;
1123
1212
  letter-spacing: 0.25rem;
@@ -1148,6 +1237,24 @@
1148
1237
  .text-foreground {
1149
1238
  color: var(--foreground);
1150
1239
  }
1240
+ .text-foreground\/25 {
1241
+ color: var(--foreground);
1242
+ @supports (color: color-mix(in lab, red, red)) {
1243
+ color: color-mix(in oklab, var(--foreground) 25%, transparent);
1244
+ }
1245
+ }
1246
+ .text-foreground\/30 {
1247
+ color: var(--foreground);
1248
+ @supports (color: color-mix(in lab, red, red)) {
1249
+ color: color-mix(in oklab, var(--foreground) 30%, transparent);
1250
+ }
1251
+ }
1252
+ .text-foreground\/70 {
1253
+ color: var(--foreground);
1254
+ @supports (color: color-mix(in lab, red, red)) {
1255
+ color: color-mix(in oklab, var(--foreground) 70%, transparent);
1256
+ }
1257
+ }
1151
1258
  .text-green-800 {
1152
1259
  color: var(--color-green-800);
1153
1260
  }
@@ -1184,6 +1291,9 @@
1184
1291
  .capitalize {
1185
1292
  text-transform: capitalize;
1186
1293
  }
1294
+ .uppercase {
1295
+ text-transform: uppercase;
1296
+ }
1187
1297
  .tabular-nums {
1188
1298
  --tw-numeric-spacing: tabular-nums;
1189
1299
  font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
@@ -1195,12 +1305,18 @@
1195
1305
  -webkit-font-smoothing: antialiased;
1196
1306
  -moz-osx-font-smoothing: grayscale;
1197
1307
  }
1308
+ .opacity-0 {
1309
+ opacity: 0%;
1310
+ }
1198
1311
  .opacity-50 {
1199
1312
  opacity: 50%;
1200
1313
  }
1201
1314
  .opacity-70 {
1202
1315
  opacity: 70%;
1203
1316
  }
1317
+ .opacity-100 {
1318
+ opacity: 100%;
1319
+ }
1204
1320
  .shadow {
1205
1321
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1206
1322
  box-shadow:
@@ -1219,6 +1335,15 @@
1219
1335
  var(--tw-ring-shadow),
1220
1336
  var(--tw-shadow);
1221
1337
  }
1338
+ .shadow-\[4px_0_24px_rgba\(0\,0\,0\,0\.5\)\] {
1339
+ --tw-shadow: 4px 0 24px var(--tw-shadow-color, rgba(0,0,0,0.5));
1340
+ box-shadow:
1341
+ var(--tw-inset-shadow),
1342
+ var(--tw-inset-ring-shadow),
1343
+ var(--tw-ring-offset-shadow),
1344
+ var(--tw-ring-shadow),
1345
+ var(--tw-shadow);
1346
+ }
1222
1347
  .shadow-lg {
1223
1348
  --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1224
1349
  box-shadow:
@@ -1388,6 +1513,10 @@
1388
1513
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1389
1514
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1390
1515
  }
1516
+ .duration-100 {
1517
+ --tw-duration: 100ms;
1518
+ transition-duration: 100ms;
1519
+ }
1391
1520
  .duration-200 {
1392
1521
  --tw-duration: 200ms;
1393
1522
  transition-duration: 200ms;
@@ -1404,6 +1533,10 @@
1404
1533
  --tw-ease: linear;
1405
1534
  transition-timing-function: linear;
1406
1535
  }
1536
+ .ease-out {
1537
+ --tw-ease: var(--ease-out);
1538
+ transition-timing-function: var(--ease-out);
1539
+ }
1407
1540
  .fade-in-0 {
1408
1541
  --tw-enter-opacity: calc(0/100);
1409
1542
  --tw-enter-opacity: 0;
@@ -1425,6 +1558,16 @@
1425
1558
  opacity: 100%;
1426
1559
  }
1427
1560
  }
1561
+ .group-hover\:text-foreground\/90 {
1562
+ &:is(:where(.group):hover *) {
1563
+ @media (hover: hover) {
1564
+ color: var(--foreground);
1565
+ @supports (color: color-mix(in lab, red, red)) {
1566
+ color: color-mix(in oklab, var(--foreground) 90%, transparent);
1567
+ }
1568
+ }
1569
+ }
1570
+ }
1428
1571
  .group-hover\/menu-item\:opacity-100 {
1429
1572
  &:is(:where(.group\/menu-item):hover *) {
1430
1573
  @media (hover: hover) {
@@ -1765,6 +1908,13 @@
1765
1908
  }
1766
1909
  }
1767
1910
  }
1911
+ .hover\:border-primary {
1912
+ &:hover {
1913
+ @media (hover: hover) {
1914
+ border-color: var(--primary);
1915
+ }
1916
+ }
1917
+ }
1768
1918
  .hover\:bg-accent {
1769
1919
  &:hover {
1770
1920
  @media (hover: hover) {
@@ -1772,6 +1922,13 @@
1772
1922
  }
1773
1923
  }
1774
1924
  }
1925
+ .hover\:bg-border {
1926
+ &:hover {
1927
+ @media (hover: hover) {
1928
+ background-color: var(--border);
1929
+ }
1930
+ }
1931
+ }
1775
1932
  .hover\:bg-card-foreground {
1776
1933
  &:hover {
1777
1934
  @media (hover: hover) {
@@ -1840,6 +1997,13 @@
1840
1997
  }
1841
1998
  }
1842
1999
  }
2000
+ .hover\:bg-surface-alt {
2001
+ &:hover {
2002
+ @media (hover: hover) {
2003
+ background-color: var(--surface-alt);
2004
+ }
2005
+ }
2006
+ }
1843
2007
  .hover\:text-accent-foreground {
1844
2008
  &:hover {
1845
2009
  @media (hover: hover) {
@@ -1905,6 +2069,14 @@
1905
2069
  }
1906
2070
  }
1907
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
+ }
1908
2080
  .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar {
1909
2081
  &:hover {
1910
2082
  @media (hover: hover) {
@@ -7760,6 +7932,7 @@ i.wx-U0Bx7pIR {
7760
7932
  .main {
7761
7933
  flex: 1;
7762
7934
  overflow-y: auto;
7935
+ position: relative;
7763
7936
  height: 100%;
7764
7937
  padding: clamp(12px, 3.4vh, 32px) clamp(12px, 1.8vw, 32px);
7765
7938
  }
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as react from 'react';
2
+ import { ReactNode } from 'react';
2
3
  import { IApi } from '@svar-ui/react-grid';
3
4
 
4
5
  type NavbarData = NavbarEntry[];
@@ -157,4 +158,22 @@ type Pagination$1 = {
157
158
 
158
159
  declare function Pagination({ totalCount, count, currentPage, totalPages, pageSize, onPageChange, onPageSizeChange, showSizeChanger, sizeChangerOptions, }: Pagination$1): react.JSX.Element;
159
160
 
160
- export { type BreadcrumbProps, CustomBreadcrumb, Grid, type GridProps, Navbar, type NavbarData, type NavbarEntry, type NavbarProps, type NotificationDataTypes, Pagination, type Pagination$1 as PaginationProps, type RouteTree, type RouterAdapter, SortableHeaderCell, type UserData };
161
+ interface ToolbarItem {
162
+ id: string;
163
+ label: string;
164
+ icon: ReactNode;
165
+ }
166
+ interface SlideToolbarProps {
167
+ items?: ToolbarItem[];
168
+ children?: ReactNode;
169
+ onAction?: (id: string) => void;
170
+ title?: string;
171
+ footerLabel?: string;
172
+ panelWidth?: number;
173
+ closeOnBackdrop?: boolean;
174
+ className?: string;
175
+ }
176
+
177
+ declare const SlideToolbar: React.FC<SlideToolbarProps>;
178
+
179
+ export { type BreadcrumbProps, CustomBreadcrumb, Grid, type GridProps, Navbar, type NavbarData, type NavbarEntry, type NavbarProps, type NotificationDataTypes, Pagination, type Pagination$1 as PaginationProps, type RouteTree, type RouterAdapter, SlideToolbar, type SlideToolbarProps, SortableHeaderCell, type ToolbarItem, type UserData };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as react from 'react';
2
+ import { ReactNode } from 'react';
2
3
  import { IApi } from '@svar-ui/react-grid';
3
4
 
4
5
  type NavbarData = NavbarEntry[];
@@ -157,4 +158,22 @@ type Pagination$1 = {
157
158
 
158
159
  declare function Pagination({ totalCount, count, currentPage, totalPages, pageSize, onPageChange, onPageSizeChange, showSizeChanger, sizeChangerOptions, }: Pagination$1): react.JSX.Element;
159
160
 
160
- export { type BreadcrumbProps, CustomBreadcrumb, Grid, type GridProps, Navbar, type NavbarData, type NavbarEntry, type NavbarProps, type NotificationDataTypes, Pagination, type Pagination$1 as PaginationProps, type RouteTree, type RouterAdapter, SortableHeaderCell, type UserData };
161
+ interface ToolbarItem {
162
+ id: string;
163
+ label: string;
164
+ icon: ReactNode;
165
+ }
166
+ interface SlideToolbarProps {
167
+ items?: ToolbarItem[];
168
+ children?: ReactNode;
169
+ onAction?: (id: string) => void;
170
+ title?: string;
171
+ footerLabel?: string;
172
+ panelWidth?: number;
173
+ closeOnBackdrop?: boolean;
174
+ className?: string;
175
+ }
176
+
177
+ declare const SlideToolbar: React.FC<SlideToolbarProps>;
178
+
179
+ export { type BreadcrumbProps, CustomBreadcrumb, Grid, type GridProps, Navbar, type NavbarData, type NavbarEntry, type NavbarProps, type NotificationDataTypes, Pagination, type Pagination$1 as PaginationProps, type RouteTree, type RouterAdapter, SlideToolbar, type SlideToolbarProps, SortableHeaderCell, type ToolbarItem, type UserData };
package/dist/index.js CHANGED
@@ -63,6 +63,7 @@ __export(index_exports, {
63
63
  Grid: () => grid_default,
64
64
  Navbar: () => Navbar,
65
65
  Pagination: () => pagination_default,
66
+ SlideToolbar: () => toolbar_default,
66
67
  SortableHeaderCell: () => sortableHeaderCell_default
67
68
  });
68
69
  module.exports = __toCommonJS(index_exports);
@@ -2754,11 +2755,136 @@ function Pagination({
2754
2755
  ] });
2755
2756
  }
2756
2757
  var pagination_default = Pagination;
2758
+
2759
+ // src/components/custom/toolbar/index.tsx
2760
+ var import_lucide_react16 = require("lucide-react");
2761
+ var import_react8 = require("react");
2762
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2763
+ var SlideToolbar = ({
2764
+ items,
2765
+ children,
2766
+ onAction,
2767
+ title = "Toolbar",
2768
+ footerLabel,
2769
+ panelWidth = 210,
2770
+ closeOnBackdrop = true,
2771
+ className = ""
2772
+ }) => {
2773
+ const resolvedItems = items != null ? items : children ? void 0 : [];
2774
+ const [open, setOpen] = (0, import_react8.useState)(false);
2775
+ const panelRef = (0, import_react8.useRef)(null);
2776
+ (0, import_react8.useEffect)(() => {
2777
+ if (!open || !closeOnBackdrop) return;
2778
+ const handlePointerDown = (e) => {
2779
+ if (panelRef.current && !panelRef.current.contains(e.target)) {
2780
+ setOpen(false);
2781
+ }
2782
+ };
2783
+ document.addEventListener("pointerdown", handlePointerDown);
2784
+ return () => document.removeEventListener("pointerdown", handlePointerDown);
2785
+ }, [open, closeOnBackdrop]);
2786
+ const handleItem = (item) => {
2787
+ onAction == null ? void 0 : onAction(item.id);
2788
+ };
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
+ ` }),
2800
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2801
+ "div",
2802
+ {
2803
+ role: "button",
2804
+ tabIndex: 0,
2805
+ "aria-label": `Open ${title}`,
2806
+ onClick: () => setOpen(true),
2807
+ onKeyDown: (e) => e.key === "Enter" && setOpen(true),
2808
+ className: [
2809
+ "absolute inset-y-0 left-0 z-20 w-[18px] flex items-center justify-center",
2810
+ "bg-primary/30 border-r border-primary/30 cursor-pointer",
2811
+ "hover:brightness-110 transition-all duration-200",
2812
+ open ? "opacity-0 pointer-events-none !w-0 border-r-0" : "opacity-100 pointer-events-auto"
2813
+ ].join(" "),
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
+ )
2821
+ }
2822
+ ),
2823
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2824
+ "div",
2825
+ {
2826
+ ref: panelRef,
2827
+ role: "dialog",
2828
+ "aria-label": title,
2829
+ "aria-hidden": !open,
2830
+ className: [
2831
+ "absolute inset-y-0 left-0 z-30 flex flex-col",
2832
+ "bg-card border-r border-border",
2833
+ "shadow-[4px_0_24px_rgba(0,0,0,0.5)]",
2834
+ "transition-transform duration-200 ease-out",
2835
+ open ? "translate-x-0" : "-translate-x-full",
2836
+ className
2837
+ ].join(" "),
2838
+ style: { width: `${panelWidth}px` },
2839
+ children: [
2840
+ /* @__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: [
2841
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-xs font-semibold tracking-[0.15em] uppercase text-foreground", children: title }),
2842
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2843
+ "button",
2844
+ {
2845
+ onClick: () => setOpen(false),
2846
+ "aria-label": "Close toolbar",
2847
+ 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",
2848
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react16.X, { size: 14 })
2849
+ }
2850
+ )
2851
+ ] }),
2852
+ /* @__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: [
2853
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "p-2 text-xs font-semibold tracking-[0.14em] uppercase text-foreground/30", children: "Actions" }),
2854
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("nav", { className: "flex flex-col gap-2", children: resolvedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2855
+ "button",
2856
+ {
2857
+ onClick: () => handleItem(item),
2858
+ className: [
2859
+ "group flex items-center gap-2.5 p-2.5 rounded w-full",
2860
+ "text-left text-sm cursor-pointer border-l-2",
2861
+ "transition-colors duration-100",
2862
+ "border-transparent text-foreground/70 hover:text-foreground hover:bg-surface-alt hover:border-primary"
2863
+ ].join(" "),
2864
+ children: [
2865
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "flex shrink-0 transition-colors duration-100 text-foreground/70 group-hover:text-foreground/90", children: item.icon }),
2866
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "flex-1 leading-none", children: item.label })
2867
+ ]
2868
+ },
2869
+ item.id
2870
+ )) })
2871
+ ] }) : children }),
2872
+ 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: [
2873
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "w-1 h-1 rounded-full bg-foreground/20 shrink-0" }),
2874
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-[9px] tracking-[0.1em] uppercase text-foreground/25", children: footerLabel })
2875
+ ] })
2876
+ ]
2877
+ }
2878
+ )
2879
+ ] });
2880
+ };
2881
+ var toolbar_default = SlideToolbar;
2757
2882
  // Annotate the CommonJS export names for ESM import in node:
2758
2883
  0 && (module.exports = {
2759
2884
  CustomBreadcrumb,
2760
2885
  Grid,
2761
2886
  Navbar,
2762
2887
  Pagination,
2888
+ SlideToolbar,
2763
2889
  SortableHeaderCell
2764
2890
  });