@rovula/ui 0.1.30 → 0.1.32

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.
@@ -510,6 +510,10 @@ export declare const LucideIconBrowser: {
510
510
  args: {};
511
511
  render: () => import("react/jsx-runtime").JSX.Element;
512
512
  };
513
+ export declare const LucideIconAllBrowser: {
514
+ args: {};
515
+ render: () => import("react/jsx-runtime").JSX.Element;
516
+ };
513
517
  export declare const PreviewMaterialIcon: {
514
518
  args: {};
515
519
  render: (args: {}) => import("react/jsx-runtime").JSX.Element;
@@ -2993,9 +2993,9 @@
2993
2993
  --loading-track-color: var(--transparent-grey-32);
2994
2994
  /* Navbar */
2995
2995
  --navbar-height: 58px;
2996
- --navbar-bg-color: var(--primary-default);
2997
- --navbar-text-color: var(--primary-foreground);
2998
- --navbar-border-color: var(--primary-foreground);
2996
+ --navbar-bg-color: var(--bg-bg1);
2997
+ --navbar-text-color: var(--text-contrast-max);
2998
+ --navbar-border-color: var(--bg-stroke1);
2999
2999
  --navbar-gap: 16px;
3000
3000
  --navbar-shadow-scrolled: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
3001
3001
  /* Footer */
@@ -5686,8 +5686,8 @@ input[type=number] {
5686
5686
  border-color: rgb(255 255 255 / 0.2);
5687
5687
  }
5688
5688
 
5689
- .border-b-\[rgb\(var\(--navbar-border-color\)\)\] {
5690
- border-bottom-color: rgb(var(--navbar-border-color));
5689
+ .border-b-\[var\(--navbar-border-color\)\] {
5690
+ border-bottom-color: var(--navbar-border-color);
5691
5691
  }
5692
5692
 
5693
5693
  .border-l-input-default-stroke {
@@ -5794,10 +5794,6 @@ input[type=number] {
5794
5794
  background-color: rgb(var(--base-bg-2));
5795
5795
  }
5796
5796
 
5797
- .bg-\[rgb\(var\(--navbar-bg-color\)\)\] {
5798
- background-color: rgb(var(--navbar-bg-color));
5799
- }
5800
-
5801
5797
  .bg-\[var\(--badge-default-bg\)\] {
5802
5798
  background-color: var(--badge-default-bg);
5803
5799
  }
@@ -5866,6 +5862,10 @@ input[type=number] {
5866
5862
  background-color: var(--footer-bg-color);
5867
5863
  }
5868
5864
 
5865
+ .bg-\[var\(--navbar-bg-color\)\] {
5866
+ background-color: var(--navbar-bg-color);
5867
+ }
5868
+
5869
5869
  .bg-action-button-icon-active {
5870
5870
  --tw-bg-opacity: 1;
5871
5871
  background-color: color-mix(in srgb, var(--action-button-icon-active-bg) calc(100% * var(--tw-bg-opacity, 1)), transparent);
@@ -8346,10 +8346,6 @@ input[type=number] {
8346
8346
  color: color-mix(in srgb, var(--state-primary-text-solid) calc(100% * var(--tw-text-opacity, 1)), transparent) !important;
8347
8347
  }
8348
8348
 
8349
- .text-\[rgb\(var\(--navbar-text-color\)\)\] {
8350
- color: rgb(var(--navbar-text-color));
8351
- }
8352
-
8353
8349
  .text-\[var\(--badge-default-text\)\] {
8354
8350
  color: var(--badge-default-text);
8355
8351
  }
@@ -8410,6 +8406,10 @@ input[type=number] {
8410
8406
  color: var(--loading-track-color);
8411
8407
  }
8412
8408
 
8409
+ .text-\[var\(--navbar-text-color\)\] {
8410
+ color: var(--navbar-text-color);
8411
+ }
8412
+
8413
8413
  .text-action-button-icon-active {
8414
8414
  --tw-text-opacity: 1;
8415
8415
  color: color-mix(in srgb, var(--action-button-icon-active-text) calc(100% * var(--tw-text-opacity, 1)), transparent);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rovula/ui",
3
- "version": "0.1.30",
3
+ "version": "0.1.32",
4
4
  "main": "dist/cjs/bundle.js",
5
5
  "module": "dist/esm/bundle.js",
6
6
  "types": "dist/index.d.ts",
@@ -63,10 +63,10 @@
63
63
  "@vitejs/plugin-react": "^4.3.4",
64
64
  "autoprefixer": "^10.4.19",
65
65
  "babel-loader": "^9.1.3",
66
- "jsdom": "^26.0.0",
67
66
  "chromatic": "^11.7.1",
68
67
  "copyfiles": "^2.4.1",
69
68
  "css-loader": "^7.1.2",
69
+ "jsdom": "^26.0.0",
70
70
  "postcss": "^8.4.38",
71
71
  "rollup": "^4.18.0",
72
72
  "rollup-plugin-dts": "^6.1.1",
@@ -111,7 +111,7 @@
111
111
  "class-variance-authority": "^0.7.0",
112
112
  "clsx": "^2.1.1",
113
113
  "date-fns": "^3.6.0",
114
- "lucide-react": "^0.460.0",
114
+ "lucide-react": "^1.7.0",
115
115
  "react": "^17.0.0 || ^18.0.0",
116
116
  "react-day-picker": "^9.0.7",
117
117
  "react-dom": "^17.0.0 || ^18.0.0",
@@ -390,13 +390,40 @@ export const PreviewLucideIcon = {
390
390
  <div className="flex flex-col justify-start gap-4 w-full h-full">
391
391
  <h4>Lucide icons (designer set)</h4>
392
392
  <p className="text-sm text-gray-500">
393
- Names from <a href="https://lucide.dev/icons" target="_blank" rel="noreferrer" className="underline">lucide.dev/icons</a>. Use <code>getLucideIconNames()</code> for full list.
393
+ Names from{" "}
394
+ <a
395
+ href="https://lucide.dev/icons"
396
+ target="_blank"
397
+ rel="noreferrer"
398
+ className="underline"
399
+ >
400
+ lucide.dev/icons
401
+ </a>
402
+ . Use <code>getLucideIconNames()</code> for full list.
394
403
  </p>
395
404
  {LUCIDE_DESIGNER_ICONS.map((iconName) => (
396
405
  <div key={iconName} className="flex flex-row gap-6 items-center">
397
- <Icon {...args} type="lucide" name={iconName} variant="outline" size="sm" />
398
- <Icon {...args} type="lucide" name={iconName} variant="outline" size="md" />
399
- <Icon {...args} type="lucide" name={iconName} variant="outline" size="lg" />
406
+ <Icon
407
+ {...args}
408
+ type="lucide"
409
+ name={iconName}
410
+ variant="outline"
411
+ size="sm"
412
+ />
413
+ <Icon
414
+ {...args}
415
+ type="lucide"
416
+ name={iconName}
417
+ variant="outline"
418
+ size="md"
419
+ />
420
+ <Icon
421
+ {...args}
422
+ type="lucide"
423
+ name={iconName}
424
+ variant="outline"
425
+ size="lg"
426
+ />
400
427
  <p className="ml-4 font-mono text-sm">{iconName}</p>
401
428
  </div>
402
429
  ))}
@@ -421,8 +448,12 @@ export const LucideIconBrowser = {
421
448
  });
422
449
  }, []);
423
450
 
451
+ console.log(names);
452
+
424
453
  const filtered = filter
425
- ? names.filter((n) => n.toLowerCase().includes(filter.toLowerCase())).slice(0, 80)
454
+ ? names
455
+ .filter((n) => n.toLowerCase().includes(filter.toLowerCase()))
456
+ .slice(0, 80)
426
457
  : names.slice(0, 50);
427
458
 
428
459
  return (
@@ -457,6 +488,47 @@ export const LucideIconBrowser = {
457
488
  },
458
489
  } satisfies StoryObj;
459
490
 
491
+ export const LucideIconAllBrowser = {
492
+ args: {},
493
+ render: () => {
494
+ const [names, setNames] = React.useState<string[]>([]);
495
+ const [loading, setLoading] = React.useState(true);
496
+
497
+ React.useEffect(() => {
498
+ import("@/icons").then(({ getLucideIconNames }) => {
499
+ getLucideIconNames().then((n) => {
500
+ setNames(n.sort());
501
+ setLoading(false);
502
+ });
503
+ });
504
+ }, []);
505
+
506
+ return (
507
+ <div className="flex flex-col gap-4 p-4 max-h-[80vh] overflow-auto w-full h-full">
508
+ <h4>Lucide icon names ({names.length} total)</h4>
509
+
510
+ {loading ? (
511
+ <p>Loading...</p>
512
+ ) : (
513
+ <div className="grid grid-cols-[repeat(auto-fill,minmax(140px,1fr))] gap-2">
514
+ {names.map((name) => (
515
+ <div
516
+ key={name}
517
+ className="flex flex-col items-center gap-1 p-2 border rounded hover:bg-gray-50"
518
+ >
519
+ <Icon type="lucide" name={name} size="md" />
520
+ <span className="font-mono text-xs truncate w-full text-center">
521
+ {name}
522
+ </span>
523
+ </div>
524
+ ))}
525
+ </div>
526
+ )}
527
+ </div>
528
+ );
529
+ },
530
+ } satisfies StoryObj;
531
+
460
532
  export const PreviewMaterialIcon = {
461
533
  args: {
462
534
  // variant: "outline",
@@ -57,16 +57,17 @@ const Navbar: FC<NavbarProps> = ({
57
57
  return (
58
58
  <header
59
59
  className={cn(
60
- "relative w-full px-4 py-6 h-[var(--navbar-height)] box-border overflow-hidden typography-subtitle2 border-solid border-b-2 text-[rgb(var(--navbar-text-color))] border-b-[rgb(var(--navbar-border-color))] transition-shadow duration-200",
60
+ "relative w-full px-4 py-6 h-[var(--navbar-height)] box-border overflow-hidden typography-subtitle2 border-solid border-b-2 border-b-[var(--navbar-border-color)] transition-shadow duration-200",
61
+ isTransparent ? "text-inherit" : "text-[var(--navbar-text-color)]",
61
62
  { position },
62
63
  scrollShadow && isScrolled && "shadow-[var(--navbar-shadow-scrolled)]",
63
- className
64
+ className,
64
65
  )}
65
66
  >
66
67
  {/* Default bg (z:-10) + overlay for className override - hidden when transparent */}
67
68
  {!isTransparent && (
68
69
  <div
69
- className="absolute inset-0 -z-10 bg-[rgb(var(--navbar-bg-color))]"
70
+ className="absolute inset-0 -z-10 bg-[var(--navbar-bg-color)]"
70
71
  aria-hidden
71
72
  />
72
73
  )}
@@ -80,7 +81,7 @@ const Navbar: FC<NavbarProps> = ({
80
81
  {
81
82
  container,
82
83
  },
83
- containerClassName
84
+ containerClassName,
84
85
  )}
85
86
  >
86
87
  {children || (
@@ -88,7 +89,7 @@ const Navbar: FC<NavbarProps> = ({
88
89
  <nav
89
90
  className={cn(
90
91
  "flex w-1/2 gap-x-[var(--navbar-gap)] text-xl",
91
- leftNavClassName
92
+ leftNavClassName,
92
93
  )}
93
94
  >
94
95
  {leftNav}
@@ -97,7 +98,7 @@ const Navbar: FC<NavbarProps> = ({
97
98
  <div
98
99
  className={cn(
99
100
  "flex flex-shrink-0 flex-wrap justify-center",
100
- centerClassName
101
+ centerClassName,
101
102
  )}
102
103
  >
103
104
  {center}
@@ -106,7 +107,7 @@ const Navbar: FC<NavbarProps> = ({
106
107
  <nav
107
108
  className={cn(
108
109
  "flex w-1/2 justify-end gap-x-[var(--navbar-gap)] text-xl",
109
- rightNavClassName
110
+ rightNavClassName,
110
111
  )}
111
112
  >
112
113
  {rightNav}
@@ -1,9 +1,9 @@
1
1
  :root {
2
2
  /* Navbar */
3
3
  --navbar-height: 58px;
4
- --navbar-bg-color: var(--primary-default);
5
- --navbar-text-color: var(--primary-foreground);
6
- --navbar-border-color: var(--primary-foreground);
4
+ --navbar-bg-color: var(--bg-bg1);
5
+ --navbar-text-color: var(--text-contrast-max);
6
+ --navbar-border-color: var(--bg-stroke1);
7
7
  --navbar-gap: 16px;
8
8
  --navbar-shadow-scrolled: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
9
9
  }