@mesob/ui 0.1.1 → 0.2.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.
Files changed (103) hide show
  1. package/dist/components/alert-dialog.js +22 -22
  2. package/dist/components/alert-dialog.js.map +1 -1
  3. package/dist/components/alert.js +1 -1
  4. package/dist/components/alert.js.map +1 -1
  5. package/dist/components/animated-tabs.js +1 -1
  6. package/dist/components/animated-tabs.js.map +1 -1
  7. package/dist/components/app-breadcrumbs.d.ts +34 -0
  8. package/dist/components/app-breadcrumbs.js +177 -0
  9. package/dist/components/app-breadcrumbs.js.map +1 -0
  10. package/dist/components/app-header-actions.d.ts +39 -0
  11. package/dist/components/app-header-actions.js +644 -0
  12. package/dist/components/app-header-actions.js.map +1 -0
  13. package/dist/components/app-sidebar.d.ts +24 -0
  14. package/dist/components/app-sidebar.js +669 -0
  15. package/dist/components/app-sidebar.js.map +1 -0
  16. package/dist/components/button-group.js +1 -1
  17. package/dist/components/button-group.js.map +1 -1
  18. package/dist/components/button.d.ts +6 -3
  19. package/dist/components/button.js +16 -8
  20. package/dist/components/button.js.map +1 -1
  21. package/dist/components/calendar.js +24 -16
  22. package/dist/components/calendar.js.map +1 -1
  23. package/dist/components/card.js +1 -1
  24. package/dist/components/card.js.map +1 -1
  25. package/dist/components/carousel.js +28 -20
  26. package/dist/components/carousel.js.map +1 -1
  27. package/dist/components/command.js +5 -5
  28. package/dist/components/command.js.map +1 -1
  29. package/dist/components/context-menu.js +2 -2
  30. package/dist/components/context-menu.js.map +1 -1
  31. package/dist/components/data-table/index.d.ts +9 -2
  32. package/dist/components/data-table/index.js +336 -152
  33. package/dist/components/data-table/index.js.map +1 -1
  34. package/dist/components/dialog.js +2 -2
  35. package/dist/components/dialog.js.map +1 -1
  36. package/dist/components/drawer.js +2 -2
  37. package/dist/components/drawer.js.map +1 -1
  38. package/dist/components/dropdown-menu.js +2 -2
  39. package/dist/components/dropdown-menu.js.map +1 -1
  40. package/dist/components/entity/index.d.ts +85 -9
  41. package/dist/components/entity/index.js +539 -414
  42. package/dist/components/entity/index.js.map +1 -1
  43. package/dist/components/hover-card.js +1 -1
  44. package/dist/components/hover-card.js.map +1 -1
  45. package/dist/components/input-group.d.ts +1 -1
  46. package/dist/components/input-group.js +27 -19
  47. package/dist/components/input-group.js.map +1 -1
  48. package/dist/components/item.d.ts +1 -1
  49. package/dist/components/link.d.ts +12 -0
  50. package/dist/components/link.js +51 -0
  51. package/dist/components/link.js.map +1 -0
  52. package/dist/components/menubar.js +3 -3
  53. package/dist/components/menubar.js.map +1 -1
  54. package/dist/components/mesob-context.d.ts +34 -0
  55. package/dist/components/mesob-context.js +53 -0
  56. package/dist/components/mesob-context.js.map +1 -0
  57. package/dist/components/navigation-menu.js +1 -1
  58. package/dist/components/navigation-menu.js.map +1 -1
  59. package/dist/components/page/index.d.ts +46 -0
  60. package/dist/components/page/index.js +205 -0
  61. package/dist/components/page/index.js.map +1 -0
  62. package/dist/components/pagination.js +20 -20
  63. package/dist/components/pagination.js.map +1 -1
  64. package/dist/components/popover.js +1 -1
  65. package/dist/components/popover.js.map +1 -1
  66. package/dist/components/powered-by.d.ts +4 -1
  67. package/dist/components/powered-by.js +28 -12
  68. package/dist/components/powered-by.js.map +1 -1
  69. package/dist/components/section/index.js +29 -21
  70. package/dist/components/section/index.js.map +1 -1
  71. package/dist/components/select.js +1 -1
  72. package/dist/components/select.js.map +1 -1
  73. package/dist/components/sheet.js +2 -2
  74. package/dist/components/sheet.js.map +1 -1
  75. package/dist/components/shell.d.ts +13 -0
  76. package/dist/components/shell.js +553 -0
  77. package/dist/components/shell.js.map +1 -0
  78. package/dist/components/sidebar.d.ts +4 -0
  79. package/dist/components/sidebar.js +119 -82
  80. package/dist/components/sidebar.js.map +1 -1
  81. package/dist/components/spotlight-search.js +67 -59
  82. package/dist/components/spotlight-search.js.map +1 -1
  83. package/dist/components/table.js +1 -1
  84. package/dist/components/table.js.map +1 -1
  85. package/dist/components/theme-toggle.js +21 -13
  86. package/dist/components/theme-toggle.js.map +1 -1
  87. package/dist/components/tooltip.d.ts +1 -1
  88. package/dist/components/tooltip.js +2 -1
  89. package/dist/components/tooltip.js.map +1 -1
  90. package/dist/hooks/use-router.d.ts +7 -0
  91. package/dist/hooks/use-router.js +36 -0
  92. package/dist/hooks/use-router.js.map +1 -0
  93. package/dist/hooks/use-translation.d.ts +5 -0
  94. package/dist/hooks/use-translation.js +42 -0
  95. package/dist/hooks/use-translation.js.map +1 -0
  96. package/dist/index.d.ts +1 -0
  97. package/dist/index.js +94 -1
  98. package/dist/index.js.map +1 -1
  99. package/dist/lib/theme-schema.d.ts +21 -0
  100. package/dist/lib/theme-schema.js +95 -0
  101. package/dist/lib/theme-schema.js.map +1 -0
  102. package/package.json +8 -5
  103. package/src/styles/globals.css +0 -126
@@ -0,0 +1,95 @@
1
+ // src/lib/theme-schema.ts
2
+ var SHADE_KEYS = [
3
+ 50,
4
+ 100,
5
+ 200,
6
+ 300,
7
+ 400,
8
+ 500,
9
+ 600,
10
+ 700,
11
+ 800,
12
+ 900,
13
+ 950
14
+ ];
15
+ var THEME_VAR_NAMES = [
16
+ "--background",
17
+ "--foreground",
18
+ "--card",
19
+ "--card-foreground",
20
+ "--popover",
21
+ "--popover-foreground",
22
+ "--primary",
23
+ "--primary-foreground",
24
+ ...SHADE_KEYS.map((s) => `--primary-${s}`),
25
+ "--secondary",
26
+ "--secondary-foreground",
27
+ ...SHADE_KEYS.map((s) => `--secondary-${s}`),
28
+ "--accent",
29
+ "--accent-foreground",
30
+ ...SHADE_KEYS.map((s) => `--accent-${s}`),
31
+ "--muted",
32
+ "--muted-foreground",
33
+ "--destructive",
34
+ "--destructive-foreground",
35
+ "--border",
36
+ "--input",
37
+ "--ring",
38
+ "--chart-1",
39
+ "--chart-2",
40
+ "--chart-3",
41
+ "--chart-4",
42
+ "--chart-5",
43
+ "--radius",
44
+ "--spacing",
45
+ "--sidebar",
46
+ "--sidebar-foreground",
47
+ "--sidebar-primary",
48
+ "--sidebar-primary-foreground",
49
+ "--sidebar-accent",
50
+ "--sidebar-accent-foreground",
51
+ "--sidebar-active",
52
+ "--sidebar-border",
53
+ "--sidebar-ring",
54
+ "--overlay"
55
+ ];
56
+ var THEME_VAR_SET = new Set(THEME_VAR_NAMES);
57
+ var REQUIRED_THEME_VARS = [
58
+ "--primary",
59
+ "--primary-foreground",
60
+ ...SHADE_KEYS.map((s) => `--primary-${s}`),
61
+ "--secondary",
62
+ "--secondary-foreground",
63
+ ...SHADE_KEYS.map((s) => `--secondary-${s}`),
64
+ "--accent",
65
+ "--accent-foreground",
66
+ ...SHADE_KEYS.map((s) => `--accent-${s}`),
67
+ "--radius",
68
+ "--spacing"
69
+ ];
70
+ function validateTheme(theme) {
71
+ const keys = new Set(Object.keys(theme));
72
+ const unknown = [];
73
+ const missing = [];
74
+ for (const key of keys) {
75
+ if (!THEME_VAR_SET.has(key)) {
76
+ unknown.push(key);
77
+ }
78
+ }
79
+ for (const key of REQUIRED_THEME_VARS) {
80
+ if (!keys.has(key)) {
81
+ missing.push(key);
82
+ }
83
+ }
84
+ return {
85
+ valid: unknown.length === 0 && missing.length === 0,
86
+ unknown,
87
+ missing
88
+ };
89
+ }
90
+ export {
91
+ REQUIRED_THEME_VARS,
92
+ THEME_VAR_NAMES,
93
+ validateTheme
94
+ };
95
+ //# sourceMappingURL=theme-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/theme-schema.ts"],"sourcesContent":["/**\n * Canonical theme variable names for consumer theme (theme.css or generateTheme).\n * UI components depend on these CSS vars; consumer defines them.\n */\n\nconst SHADE_KEYS = [\n 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950,\n] as const;\n\nexport const THEME_VAR_NAMES = [\n '--background',\n '--foreground',\n '--card',\n '--card-foreground',\n '--popover',\n '--popover-foreground',\n '--primary',\n '--primary-foreground',\n ...SHADE_KEYS.map((s) => `--primary-${s}`),\n '--secondary',\n '--secondary-foreground',\n ...SHADE_KEYS.map((s) => `--secondary-${s}`),\n '--accent',\n '--accent-foreground',\n ...SHADE_KEYS.map((s) => `--accent-${s}`),\n '--muted',\n '--muted-foreground',\n '--destructive',\n '--destructive-foreground',\n '--border',\n '--input',\n '--ring',\n '--chart-1',\n '--chart-2',\n '--chart-3',\n '--chart-4',\n '--chart-5',\n '--radius',\n '--spacing',\n '--sidebar',\n '--sidebar-foreground',\n '--sidebar-primary',\n '--sidebar-primary-foreground',\n '--sidebar-accent',\n '--sidebar-accent-foreground',\n '--sidebar-active',\n '--sidebar-border',\n '--sidebar-ring',\n '--overlay',\n] as const;\n\nexport type ThemeVarName = (typeof THEME_VAR_NAMES)[number];\n\nconst THEME_VAR_SET = new Set<string>(THEME_VAR_NAMES);\n\n/** Vars that a minimal theme (e.g. generateTheme) should provide for primary/secondary/accent. */\nexport const REQUIRED_THEME_VARS: readonly string[] = [\n '--primary',\n '--primary-foreground',\n ...SHADE_KEYS.map((s) => `--primary-${s}`),\n '--secondary',\n '--secondary-foreground',\n ...SHADE_KEYS.map((s) => `--secondary-${s}`),\n '--accent',\n '--accent-foreground',\n ...SHADE_KEYS.map((s) => `--accent-${s}`),\n '--radius',\n '--spacing',\n];\n\nexport type ThemeValidation = {\n valid: boolean;\n unknown: string[];\n missing: string[];\n};\n\n/**\n * Validates a theme object against the consumer theme contract.\n * - unknown: keys not in THEME_VAR_NAMES (typos / unsupported).\n * - missing: required vars absent (for full theme override).\n */\nexport function validateTheme(theme: Record<string, string>): ThemeValidation {\n const keys = new Set(Object.keys(theme));\n const unknown: string[] = [];\n const missing: string[] = [];\n\n for (const key of keys) {\n if (!THEME_VAR_SET.has(key)) {\n unknown.push(key);\n }\n }\n for (const key of REQUIRED_THEME_VARS) {\n if (!keys.has(key)) {\n missing.push(key);\n }\n }\n\n return {\n valid: unknown.length === 0 && missing.length === 0,\n unknown,\n missing,\n };\n}\n"],"mappings":";AAKA,IAAM,aAAa;AAAA,EACjB;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AACnD;AAEO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG,WAAW,IAAI,CAAC,MAAM,aAAa,CAAC,EAAE;AAAA,EACzC;AAAA,EACA;AAAA,EACA,GAAG,WAAW,IAAI,CAAC,MAAM,eAAe,CAAC,EAAE;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,GAAG,WAAW,IAAI,CAAC,MAAM,YAAY,CAAC,EAAE;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIA,IAAM,gBAAgB,IAAI,IAAY,eAAe;AAG9C,IAAM,sBAAyC;AAAA,EACpD;AAAA,EACA;AAAA,EACA,GAAG,WAAW,IAAI,CAAC,MAAM,aAAa,CAAC,EAAE;AAAA,EACzC;AAAA,EACA;AAAA,EACA,GAAG,WAAW,IAAI,CAAC,MAAM,eAAe,CAAC,EAAE;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,GAAG,WAAW,IAAI,CAAC,MAAM,YAAY,CAAC,EAAE;AAAA,EACxC;AAAA,EACA;AACF;AAaO,SAAS,cAAc,OAAgD;AAC5E,QAAM,OAAO,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC;AACvC,QAAM,UAAoB,CAAC;AAC3B,QAAM,UAAoB,CAAC;AAE3B,aAAW,OAAO,MAAM;AACtB,QAAI,CAAC,cAAc,IAAI,GAAG,GAAG;AAC3B,cAAQ,KAAK,GAAG;AAAA,IAClB;AAAA,EACF;AACA,aAAW,OAAO,qBAAqB;AACrC,QAAI,CAAC,KAAK,IAAI,GAAG,GAAG;AAClB,cAAQ,KAAK,GAAG;AAAA,IAClB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO,QAAQ,WAAW,KAAK,QAAQ,WAAW;AAAA,IAClD;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mesob/ui",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -10,8 +10,6 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "default": "./dist/index.js"
12
12
  },
13
- "./globals.css": "./src/styles/globals.css",
14
- "./styles/globals.css": "./src/styles/globals.css",
15
13
  "./postcss.config": "./postcss.config.mjs",
16
14
  "./lib/*": {
17
15
  "types": "./dist/lib/*.d.ts",
@@ -33,14 +31,17 @@
33
31
  "types": "./dist/components/entity/index.d.ts",
34
32
  "default": "./dist/components/entity/index.js"
35
33
  },
34
+ "./components/page": {
35
+ "types": "./dist/components/page/index.d.ts",
36
+ "default": "./dist/components/page/index.js"
37
+ },
36
38
  "./components/section": {
37
39
  "types": "./dist/components/section/index.d.ts",
38
40
  "default": "./dist/components/section/index.js"
39
41
  }
40
42
  },
41
43
  "files": [
42
- "dist",
43
- "src/styles"
44
+ "dist"
44
45
  ],
45
46
  "dependencies": {
46
47
  "@hookform/resolvers": "^5.2.2",
@@ -95,12 +96,14 @@
95
96
  "@tailwindcss/postcss": "^4.1.11",
96
97
  "@types/react": "^19",
97
98
  "@types/react-dom": "^19",
99
+ "next-intl": "^4.5.6",
98
100
  "tailwindcss": "^4.1.11",
99
101
  "tsup": "^8.5.0",
100
102
  "tsx": "^4.20.3",
101
103
  "typescript": "^5.7.2"
102
104
  },
103
105
  "peerDependencies": {
106
+ "next-intl": "^4.5.6",
104
107
  "nuqs": "^2.8.1",
105
108
  "react": "^19.2.0",
106
109
  "react-dom": "^19.2.0",
@@ -1,126 +0,0 @@
1
- @import "tailwindcss";
2
- @import "tw-animate-css";
3
- @source "../../../../apps/**/*.{ts,tsx}";
4
- @source "../**/*.{ts,tsx}";
5
- @source "../../../auth-react/src/**/*.{ts,tsx}";
6
-
7
- @custom-variant dark (&:is(.dark *));
8
-
9
- :root {
10
- --background: oklch(1 0 0);
11
- --foreground: oklch(0.145 0 0);
12
- --card: oklch(1 0 0);
13
- --card-foreground: oklch(0.145 0 0);
14
- --popover: oklch(1 0 0);
15
- --popover-foreground: oklch(0.145 0 0);
16
- --primary: oklch(0.205 0 0);
17
- --primary-foreground: oklch(0.985 0 0);
18
- --secondary: oklch(0.97 0 0);
19
- --secondary-foreground: oklch(0.205 0 0);
20
- --muted: oklch(0.97 0 0);
21
- --muted-foreground: oklch(0.556 0 0);
22
- --accent: oklch(0.97 0 0);
23
- --accent-foreground: oklch(0.205 0 0);
24
- --destructive: oklch(0.577 0.245 27.325);
25
- --destructive-foreground: oklch(0.577 0.245 27.325);
26
- --border: oklch(0.922 0 0);
27
- --input: oklch(0.922 0 0);
28
- --ring: oklch(0.708 0 0);
29
- --chart-1: oklch(0.646 0.222 41.116);
30
- --chart-2: oklch(0.6 0.118 184.704);
31
- --chart-3: oklch(0.398 0.07 227.392);
32
- --chart-4: oklch(0.828 0.189 84.429);
33
- --chart-5: oklch(0.769 0.188 70.08);
34
- --radius: 0.625rem;
35
- --sidebar: oklch(0.985 0 0);
36
- --sidebar-foreground: oklch(0.145 0 0);
37
- --sidebar-primary: oklch(0.205 0 0);
38
- --sidebar-primary-foreground: oklch(0.985 0 0);
39
- --sidebar-accent: oklch(0.97 0 0);
40
- --sidebar-accent-foreground: oklch(0.205 0 0);
41
- --sidebar-border: oklch(0.922 0 0);
42
- --sidebar-ring: oklch(0.708 0 0);
43
- }
44
-
45
- .dark {
46
- --background: oklch(0.145 0 0);
47
- --foreground: oklch(0.985 0 0);
48
- --card: oklch(0.145 0 0);
49
- --card-foreground: oklch(0.985 0 0);
50
- --popover: oklch(0.145 0 0);
51
- --popover-foreground: oklch(0.985 0 0);
52
- --primary: oklch(0.985 0 0);
53
- --primary-foreground: oklch(0.205 0 0);
54
- --secondary: oklch(0.269 0 0);
55
- --secondary-foreground: oklch(0.985 0 0);
56
- --muted: oklch(0.269 0 0);
57
- --muted-foreground: oklch(0.708 0 0);
58
- --accent: oklch(0.269 0 0);
59
- --accent-foreground: oklch(0.985 0 0);
60
- --destructive: oklch(0.396 0.141 25.723);
61
- --destructive-foreground: oklch(0.637 0.237 25.331);
62
- --border: oklch(0.269 0 0);
63
- --input: oklch(0.269 0 0);
64
- --ring: oklch(0.556 0 0);
65
- --chart-1: oklch(0.488 0.243 264.376);
66
- --chart-2: oklch(0.696 0.17 162.48);
67
- --chart-3: oklch(0.769 0.188 70.08);
68
- --chart-4: oklch(0.627 0.265 303.9);
69
- --chart-5: oklch(0.645 0.246 16.439);
70
- --sidebar: oklch(0.205 0 0);
71
- --sidebar-foreground: oklch(0.985 0 0);
72
- --sidebar-primary: oklch(0.488 0.243 264.376);
73
- --sidebar-primary-foreground: oklch(0.985 0 0);
74
- --sidebar-accent: oklch(0.269 0 0);
75
- --sidebar-accent-foreground: oklch(0.985 0 0);
76
- --sidebar-border: oklch(0.269 0 0);
77
- --sidebar-ring: oklch(0.439 0 0);
78
- }
79
-
80
- @theme inline {
81
- --color-background: var(--background);
82
- --color-foreground: var(--foreground);
83
- --color-card: var(--card);
84
- --color-card-foreground: var(--card-foreground);
85
- --color-popover: var(--popover);
86
- --color-popover-foreground: var(--popover-foreground);
87
- --color-primary: var(--primary);
88
- --color-primary-foreground: var(--primary-foreground);
89
- --color-secondary: var(--secondary);
90
- --color-secondary-foreground: var(--secondary-foreground);
91
- --color-muted: var(--muted);
92
- --color-muted-foreground: var(--muted-foreground);
93
- --color-accent: var(--accent);
94
- --color-accent-foreground: var(--accent-foreground);
95
- --color-destructive: var(--destructive);
96
- --color-destructive-foreground: var(--destructive-foreground);
97
- --color-border: var(--border);
98
- --color-input: var(--input);
99
- --color-ring: var(--ring);
100
- --color-chart-1: var(--chart-1);
101
- --color-chart-2: var(--chart-2);
102
- --color-chart-3: var(--chart-3);
103
- --color-chart-4: var(--chart-4);
104
- --color-chart-5: var(--chart-5);
105
- --radius-sm: calc(var(--radius) - 4px);
106
- --radius-md: calc(var(--radius) - 2px);
107
- --radius-lg: var(--radius);
108
- --radius-xl: calc(var(--radius) + 4px);
109
- --color-sidebar: var(--sidebar);
110
- --color-sidebar-foreground: var(--sidebar-foreground);
111
- --color-sidebar-primary: var(--sidebar-primary);
112
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
113
- --color-sidebar-accent: var(--sidebar-accent);
114
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
115
- --color-sidebar-border: var(--sidebar-border);
116
- --color-sidebar-ring: var(--sidebar-ring);
117
- }
118
-
119
- @layer base {
120
- * {
121
- @apply border-border outline-ring/50;
122
- }
123
- body {
124
- @apply bg-background text-foreground;
125
- }
126
- }