@moontra/moonui-pro 3.3.20 → 3.3.22

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.d.ts CHANGED
@@ -3987,7 +3987,15 @@ interface NavbarConfig {
3987
3987
  minimalConfig?: MinimalModeConfig;
3988
3988
  maxWidth?: "sm" | "md" | "lg" | "xl" | "2xl" | "full";
3989
3989
  fullWidth?: boolean;
3990
+ /** Overlay mode - navbar becomes absolute positioned, content doesn't shift down */
3991
+ overlayMode?: boolean;
3992
+ /** Auto-expand navbar when content overflows instead of showing scrollbar */
3993
+ autoExpand?: boolean;
3994
+ /** Container max-width for floating-centered variant (default: "5xl") */
3995
+ containerMaxWidth?: "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "full";
3990
3996
  enableNProgress?: boolean;
3997
+ /** Position progress bar inside border-radius (default: true for professional look) */
3998
+ progressBarInset?: boolean;
3991
3999
  }
3992
4000
  interface NavbarProps extends NavbarConfig {
3993
4001
  className?: string;
package/dist/index.mjs CHANGED
@@ -78175,7 +78175,7 @@ TableRow2.displayName = "TableRow";
78175
78175
  var MoonUIDataTable = DataTable;
78176
78176
 
78177
78177
  // src/styles/nprogress.css
78178
- styleInject("#nprogress {\n pointer-events: none;\n}\n#nprogress .bar {\n background: linear-gradient(90deg, #8b5cf6 0%, #d946ef 50%, #8b5cf6 100%);\n background-size: 200% 100%;\n animation: gradient-shift 2s ease infinite;\n position: fixed;\n z-index: 9999;\n top: 0;\n left: 0;\n width: 100%;\n height: 3px;\n box-shadow: 0 0 10px rgba(139, 92, 246, 0.5), 0 0 5px rgba(217, 70, 239, 0.5);\n}\n#nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 15px rgba(139, 92, 246, 0.7), 0 0 8px rgba(217, 70, 239, 0.7);\n opacity: 1.0;\n transform: rotate(3deg) translate(0px, -4px);\n}\n#nprogress .spinner {\n display: none;\n}\n@keyframes gradient-shift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n.dark #nprogress .bar {\n background: linear-gradient(90deg, #a78bfa 0%, #e879f9 50%, #a78bfa 100%);\n box-shadow: 0 0 15px rgba(167, 139, 250, 0.6), 0 0 8px rgba(232, 121, 249, 0.6);\n}\n.dark #nprogress .peg {\n box-shadow: 0 0 20px rgba(167, 139, 250, 0.8), 0 0 10px rgba(232, 121, 249, 0.8);\n}\n");
78178
+ styleInject("#nprogress {\n pointer-events: none;\n}\n#nprogress .bar {\n background: linear-gradient(90deg, #8b5cf6 0%, #d946ef 50%, #8b5cf6 100%);\n background-size: 200% 100%;\n animation: gradient-shift 2s ease infinite;\n position: fixed;\n z-index: 9999;\n top: 0;\n left: 0;\n width: 100%;\n height: 3px;\n box-shadow: 0 0 10px rgba(139, 92, 246, 0.5), 0 0 5px rgba(217, 70, 239, 0.5);\n}\n#nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 15px rgba(139, 92, 246, 0.7), 0 0 8px rgba(217, 70, 239, 0.7);\n opacity: 1.0;\n transform: rotate(3deg) translate(0px, -4px);\n}\n#nprogress .spinner {\n display: none;\n}\n@keyframes gradient-shift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n.dark #nprogress .bar {\n background: linear-gradient(90deg, #a78bfa 0%, #e879f9 50%, #a78bfa 100%);\n box-shadow: 0 0 15px rgba(167, 139, 250, 0.6), 0 0 8px rgba(232, 121, 249, 0.6);\n}\n.dark #nprogress .peg {\n box-shadow: 0 0 20px rgba(167, 139, 250, 0.8), 0 0 10px rgba(232, 121, 249, 0.8);\n}\n.scrollbar-hide::-webkit-scrollbar {\n display: none;\n}\n.scrollbar-hide {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.scroll-smooth {\n scroll-behavior: smooth;\n}\n");
78179
78179
  var SearchInput = React71__default.memo(({
78180
78180
  searchInputRef,
78181
78181
  searchPlaceholder,
@@ -78934,7 +78934,11 @@ function NavbarInternal({
78934
78934
  minimalConfig = {},
78935
78935
  maxWidth = "2xl",
78936
78936
  fullWidth = false,
78937
+ overlayMode = false,
78938
+ autoExpand = false,
78939
+ containerMaxWidth = "5xl",
78937
78940
  enableNProgress = true,
78941
+ progressBarInset = true,
78938
78942
  className,
78939
78943
  activePath,
78940
78944
  onNavigate
@@ -79191,11 +79195,25 @@ function NavbarInternal({
79191
79195
  // Base variant styles
79192
79196
  variant === "default" && "border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
79193
79197
  variant === "floating" && "mx-4 mt-4 rounded-lg border bg-background/95 backdrop-blur shadow-lg",
79194
- variant === "floating-centered" && "mx-auto my-4 max-w-5xl rounded-2xl border border-border/40 bg-background/70 backdrop-blur-xl shadow-lg shadow-black/5 dark:shadow-black/20 px-6",
79198
+ variant === "floating-centered" && cn(
79199
+ "mx-auto rounded-2xl border border-border/40 bg-background/70 backdrop-blur-xl shadow-lg shadow-black/5 dark:shadow-black/20 px-6",
79200
+ // Overlay mode kontrolü - absolute veya margin
79201
+ overlayMode ? "absolute top-4 left-1/2 -translate-x-1/2 z-50" : "my-4",
79202
+ // Dynamic max-width based on containerMaxWidth prop
79203
+ containerMaxWidth === "3xl" && "max-w-3xl",
79204
+ containerMaxWidth === "4xl" && "max-w-4xl",
79205
+ containerMaxWidth === "5xl" && "max-w-5xl",
79206
+ containerMaxWidth === "6xl" && "max-w-6xl",
79207
+ containerMaxWidth === "7xl" && "max-w-7xl",
79208
+ containerMaxWidth === "full" && "max-w-full px-8",
79209
+ // Auto-expand mode - genişlik içeriğe göre ayarlanır
79210
+ !containerMaxWidth && autoExpand && "max-w-max"
79211
+ ),
79195
79212
  variant === "minimal" && "bg-background",
79196
79213
  variant === "transparent" && "bg-transparent",
79197
- // Sticky behavior
79198
- sticky && "sticky top-0 z-50",
79214
+ // Positioning - overlay mode takes precedence over sticky
79215
+ overlayMode && "absolute",
79216
+ sticky && !overlayMode && "sticky top-0 z-50",
79199
79217
  // Scroll states
79200
79218
  scrolled && sticky && variant !== "transparent" && "shadow-sm",
79201
79219
  scrolled && variant === "transparent" && "bg-background/95 backdrop-blur border-b",
@@ -79255,6 +79273,9 @@ function NavbarInternal({
79255
79273
  {
79256
79274
  className: cn(
79257
79275
  "hidden md:flex",
79276
+ // Overflow handling - auto-expand veya horizontal scroll
79277
+ autoExpand ? "flex-nowrap" : "flex-wrap overflow-x-auto scrollbar-hide scroll-smooth",
79278
+ // Positioning
79258
79279
  navItemsPosition === "center" && variant !== "floating-centered" && "flex-1 justify-center mx-4",
79259
79280
  navItemsPosition === "center" && variant === "floating-centered" && "flex-1 justify-center",
79260
79281
  navItemsPosition === "right" && "ml-auto",
@@ -79668,13 +79689,37 @@ function NavbarInternal({
79668
79689
  }
79669
79690
  }
79670
79691
  ),
79671
- showScrollProgress && /* @__PURE__ */ jsx("div", { className: "absolute bottom-0 left-0 w-full h-0.5 bg-muted", children: /* @__PURE__ */ jsx(
79692
+ showScrollProgress && /* @__PURE__ */ jsx(
79672
79693
  "div",
79673
79694
  {
79674
- className: "h-full bg-primary transition-all duration-150",
79675
- style: { width: `${scrollProgress}%` }
79695
+ className: cn(
79696
+ "absolute left-0 w-full h-0.5 bg-muted transition-all",
79697
+ // progressBarInset kontrolü - border-radius içinde mi dışında mı
79698
+ progressBarInset ? cn(
79699
+ "bottom-1 mx-2",
79700
+ // İçeriden margin
79701
+ // Border-radius uyumu
79702
+ rounded && "rounded-b-lg",
79703
+ variant === "floating-centered" && "rounded-b-2xl",
79704
+ variant === "floating" && "rounded-b-lg"
79705
+ ) : "bottom-0"
79706
+ // Dışarıdan (backward compat)
79707
+ ),
79708
+ children: /* @__PURE__ */ jsx(
79709
+ "div",
79710
+ {
79711
+ className: cn(
79712
+ "h-full bg-primary transition-all duration-150",
79713
+ // Progress bar'ın sağ köşesi border-radius ile uyumlu
79714
+ progressBarInset && rounded && "rounded-br-lg",
79715
+ progressBarInset && variant === "floating-centered" && "rounded-br-2xl",
79716
+ progressBarInset && variant === "floating" && "rounded-br-lg"
79717
+ ),
79718
+ style: { width: `${scrollProgress}%` }
79719
+ }
79720
+ )
79676
79721
  }
79677
- ) })
79722
+ )
79678
79723
  ] }),
79679
79724
  /* @__PURE__ */ jsxs(
79680
79725
  MoonUICommandDialogPro,
@@ -29,4 +29,4 @@ function styleInject(css, { insertAt } = {}) {
29
29
  }
30
30
 
31
31
  // src/styles/nprogress.css
32
- styleInject("#nprogress {\n pointer-events: none;\n}\n#nprogress .bar {\n background: linear-gradient(90deg, #8b5cf6 0%, #d946ef 50%, #8b5cf6 100%);\n background-size: 200% 100%;\n animation: gradient-shift 2s ease infinite;\n position: fixed;\n z-index: 9999;\n top: 0;\n left: 0;\n width: 100%;\n height: 3px;\n box-shadow: 0 0 10px rgba(139, 92, 246, 0.5), 0 0 5px rgba(217, 70, 239, 0.5);\n}\n#nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 15px rgba(139, 92, 246, 0.7), 0 0 8px rgba(217, 70, 239, 0.7);\n opacity: 1.0;\n transform: rotate(3deg) translate(0px, -4px);\n}\n#nprogress .spinner {\n display: none;\n}\n@keyframes gradient-shift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n.dark #nprogress .bar {\n background: linear-gradient(90deg, #a78bfa 0%, #e879f9 50%, #a78bfa 100%);\n box-shadow: 0 0 15px rgba(167, 139, 250, 0.6), 0 0 8px rgba(232, 121, 249, 0.6);\n}\n.dark #nprogress .peg {\n box-shadow: 0 0 20px rgba(167, 139, 250, 0.8), 0 0 10px rgba(232, 121, 249, 0.8);\n}\n");
32
+ styleInject("#nprogress {\n pointer-events: none;\n}\n#nprogress .bar {\n background: linear-gradient(90deg, #8b5cf6 0%, #d946ef 50%, #8b5cf6 100%);\n background-size: 200% 100%;\n animation: gradient-shift 2s ease infinite;\n position: fixed;\n z-index: 9999;\n top: 0;\n left: 0;\n width: 100%;\n height: 3px;\n box-shadow: 0 0 10px rgba(139, 92, 246, 0.5), 0 0 5px rgba(217, 70, 239, 0.5);\n}\n#nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 15px rgba(139, 92, 246, 0.7), 0 0 8px rgba(217, 70, 239, 0.7);\n opacity: 1.0;\n transform: rotate(3deg) translate(0px, -4px);\n}\n#nprogress .spinner {\n display: none;\n}\n@keyframes gradient-shift {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n.dark #nprogress .bar {\n background: linear-gradient(90deg, #a78bfa 0%, #e879f9 50%, #a78bfa 100%);\n box-shadow: 0 0 15px rgba(167, 139, 250, 0.6), 0 0 8px rgba(232, 121, 249, 0.6);\n}\n.dark #nprogress .peg {\n box-shadow: 0 0 20px rgba(167, 139, 250, 0.8), 0 0 10px rgba(232, 121, 249, 0.8);\n}\n.scrollbar-hide::-webkit-scrollbar {\n display: none;\n}\n.scrollbar-hide {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.scroll-smooth {\n scroll-behavior: smooth;\n}\n");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moontra/moonui-pro",
3
- "version": "3.3.20",
3
+ "version": "3.3.22",
4
4
  "description": "Premium React components for MoonUI - Advanced UI library with 50+ pro components including performance, interactive, and gesture components",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",