@mesob/ui 0.1.0 → 0.2.0
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/components/app-breadcrumbs.d.ts +34 -0
- package/dist/components/app-breadcrumbs.js +177 -0
- package/dist/components/app-breadcrumbs.js.map +1 -0
- package/dist/components/app-header-actions.d.ts +39 -0
- package/dist/components/app-header-actions.js +629 -0
- package/dist/components/app-header-actions.js.map +1 -0
- package/dist/components/app-sidebar.d.ts +24 -0
- package/dist/components/app-sidebar.js +669 -0
- package/dist/components/app-sidebar.js.map +1 -0
- package/dist/components/button.d.ts +1 -1
- package/dist/components/data-table/index.d.ts +9 -2
- package/dist/components/data-table/index.js +276 -101
- package/dist/components/data-table/index.js.map +1 -1
- package/dist/components/entity/index.d.ts +85 -9
- package/dist/components/entity/index.js +424 -304
- package/dist/components/entity/index.js.map +1 -1
- package/dist/components/input-group.d.ts +1 -1
- package/dist/components/item.d.ts +1 -1
- package/dist/components/link.d.ts +12 -0
- package/dist/components/link.js +51 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/mesob-context.d.ts +34 -0
- package/dist/components/mesob-context.js +53 -0
- package/dist/components/mesob-context.js.map +1 -0
- package/dist/components/page/index.d.ts +46 -0
- package/dist/components/page/index.js +197 -0
- package/dist/components/page/index.js.map +1 -0
- package/dist/components/powered-by.d.ts +4 -1
- package/dist/components/powered-by.js +28 -12
- package/dist/components/powered-by.js.map +1 -1
- package/dist/components/shell.d.ts +13 -0
- package/dist/components/shell.js +545 -0
- package/dist/components/shell.js.map +1 -0
- package/dist/components/sidebar.d.ts +4 -0
- package/dist/components/sidebar.js +37 -8
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tooltip.d.ts +1 -1
- package/dist/components/tooltip.js +2 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/hooks/use-router.d.ts +7 -0
- package/dist/hooks/use-router.js +36 -0
- package/dist/hooks/use-router.js.map +1 -0
- package/dist/hooks/use-translation.d.ts +5 -0
- package/dist/hooks/use-translation.js +41 -0
- package/dist/hooks/use-translation.js.map +1 -0
- package/package.json +7 -1
- package/src/styles/globals.css +4 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/lib/utils.ts
|
|
4
|
+
import { clsx } from "clsx";
|
|
5
|
+
import { twMerge } from "tailwind-merge";
|
|
6
|
+
|
|
7
|
+
// src/components/tooltip.tsx
|
|
8
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
|
|
11
|
+
// src/components/mesob-context.tsx
|
|
12
|
+
import {
|
|
13
|
+
createContext,
|
|
14
|
+
useContext,
|
|
15
|
+
useMemo
|
|
16
|
+
} from "react";
|
|
17
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
18
|
+
var MesobContext = createContext(null);
|
|
19
|
+
function useMesob() {
|
|
20
|
+
return useContext(MesobContext);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/hooks/use-router.ts
|
|
24
|
+
function useRouter() {
|
|
25
|
+
const mesob = useMesob();
|
|
26
|
+
if (!mesob?.router) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
"useRouter must be used within MesobProvider with useRouter prop provided"
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
return mesob.router;
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
useRouter
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=use-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/utils.ts","../../src/components/tooltip.tsx","../../src/components/mesob-context.tsx","../../src/hooks/use-router.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport type * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props}>\n {children}\n </TooltipPrimitive.Root>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","'use client';\n\nimport { TooltipProvider } from '@mesob/ui/components/tooltip';\nimport {\n type ComponentType,\n createContext,\n type ReactNode,\n useContext,\n useMemo,\n} from 'react';\n\nexport type MesobLinkProps = {\n href: string;\n children: ReactNode;\n className?: string;\n onClick?: () => void;\n};\n\nexport type Router = {\n push: (href: string) => void;\n replace: (href: string) => void;\n back: () => void;\n forward: () => void;\n refresh: () => void;\n prefetch: (href: string) => void;\n};\n\nexport type MesobContextValue = {\n linkComponent?: ComponentType<MesobLinkProps>;\n t?: (key: string, params?: Record<string, string | number>) => string;\n router?: Router;\n};\n\nconst MesobContext = createContext<MesobContextValue | null>(null);\n\nexport type MesobProviderProps = {\n children: ReactNode;\n linkComponent?: ComponentType<MesobLinkProps>;\n /** Hook that returns the app's t function (e.g. from next-intl useTranslations()). */\n useTranslation?: () => (\n key: string,\n params?: Record<string, string | number>,\n ) => string;\n /** Hook that returns the app's router (e.g. from next-intl useRouter()). */\n useRouter?: () => Router;\n};\n\nexport function MesobProvider({\n children,\n linkComponent,\n useTranslation,\n useRouter,\n}: MesobProviderProps) {\n const t = useTranslation?.();\n const router = useRouter?.();\n const value = useMemo<MesobContextValue>(\n () => ({ linkComponent, t: t ?? undefined, router: router ?? undefined }),\n [linkComponent, t, router],\n );\n return (\n <MesobContext.Provider value={value}>\n <TooltipProvider delayDuration={0}>{children}</TooltipProvider>\n </MesobContext.Provider>\n );\n}\n\nexport function useMesob(): MesobContextValue | null {\n return useContext(MesobContext);\n}\n","'use client';\n\nimport { useMesob } from '../components/mesob-context';\n\nexport function useRouter() {\n const mesob = useMesob();\n\n if (!mesob?.router) {\n throw new Error(\n 'useRouter must be used within MesobProvider with useRouter prop provided',\n );\n }\n\n return mesob.router;\n}\n"],"mappings":";;;AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;;;ACExB,YAAY,sBAAsB;AAQ9B,cAiCE,YAjCF;;;ACRJ;AAAA,EAEE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAoDD,gBAAAA,YAAA;AA5BN,IAAM,eAAe,cAAwC,IAAI;AAiC1D,SAAS,WAAqC;AACnD,SAAO,WAAW,YAAY;AAChC;;;AChEO,SAAS,YAAY;AAC1B,QAAM,QAAQ,SAAS;AAEvB,MAAI,CAAC,OAAO,QAAQ;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,MAAM;AACf;","names":["jsx"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/hooks/use-translation.ts
|
|
4
|
+
import { useTranslations } from "next-intl";
|
|
5
|
+
import { useMemo as useMemo2 } from "react";
|
|
6
|
+
|
|
7
|
+
// src/lib/utils.ts
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
import { twMerge } from "tailwind-merge";
|
|
10
|
+
|
|
11
|
+
// src/components/tooltip.tsx
|
|
12
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
|
|
15
|
+
// src/components/mesob-context.tsx
|
|
16
|
+
import {
|
|
17
|
+
createContext,
|
|
18
|
+
useContext,
|
|
19
|
+
useMemo
|
|
20
|
+
} from "react";
|
|
21
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
22
|
+
var MesobContext = createContext(null);
|
|
23
|
+
function useMesob() {
|
|
24
|
+
return useContext(MesobContext);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/hooks/use-translation.ts
|
|
28
|
+
function useTranslation(namespace) {
|
|
29
|
+
const mesob = useMesob();
|
|
30
|
+
const nextIntlT = useTranslations(namespace);
|
|
31
|
+
return useMemo2(() => {
|
|
32
|
+
if (mesob?.t) {
|
|
33
|
+
return (key, params) => mesob.t(namespace ? `${namespace}.${key}` : key, params);
|
|
34
|
+
}
|
|
35
|
+
return nextIntlT;
|
|
36
|
+
}, [mesob?.t, namespace, nextIntlT]);
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
useTranslation
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=use-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-translation.ts","../../src/lib/utils.ts","../../src/components/tooltip.tsx","../../src/components/mesob-context.tsx"],"sourcesContent":["'use client';\n\nimport { useTranslations } from 'next-intl';\nimport { useMemo } from 'react';\nimport { useMesob } from '../components/mesob-context';\n\nexport function useTranslation(namespace?: string) {\n const mesob = useMesob();\n const nextIntlT = useTranslations(namespace);\n\n return useMemo(() => {\n if (mesob?.t) {\n return (key: string, params?: Record<string, string | number>) =>\n mesob.t!(namespace ? `${namespace}.${key}` : key, params);\n }\n return nextIntlT;\n }, [mesob?.t, namespace, nextIntlT]);\n}\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport type * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props}>\n {children}\n </TooltipPrimitive.Root>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","'use client';\n\nimport { TooltipProvider } from '@mesob/ui/components/tooltip';\nimport {\n type ComponentType,\n createContext,\n type ReactNode,\n useContext,\n useMemo,\n} from 'react';\n\nexport type MesobLinkProps = {\n href: string;\n children: ReactNode;\n className?: string;\n onClick?: () => void;\n};\n\nexport type Router = {\n push: (href: string) => void;\n replace: (href: string) => void;\n back: () => void;\n forward: () => void;\n refresh: () => void;\n prefetch: (href: string) => void;\n};\n\nexport type MesobContextValue = {\n linkComponent?: ComponentType<MesobLinkProps>;\n t?: (key: string, params?: Record<string, string | number>) => string;\n router?: Router;\n};\n\nconst MesobContext = createContext<MesobContextValue | null>(null);\n\nexport type MesobProviderProps = {\n children: ReactNode;\n linkComponent?: ComponentType<MesobLinkProps>;\n /** Hook that returns the app's t function (e.g. from next-intl useTranslations()). */\n useTranslation?: () => (\n key: string,\n params?: Record<string, string | number>,\n ) => string;\n /** Hook that returns the app's router (e.g. from next-intl useRouter()). */\n useRouter?: () => Router;\n};\n\nexport function MesobProvider({\n children,\n linkComponent,\n useTranslation,\n useRouter,\n}: MesobProviderProps) {\n const t = useTranslation?.();\n const router = useRouter?.();\n const value = useMemo<MesobContextValue>(\n () => ({ linkComponent, t: t ?? undefined, router: router ?? undefined }),\n [linkComponent, t, router],\n );\n return (\n <MesobContext.Provider value={value}>\n <TooltipProvider delayDuration={0}>{children}</TooltipProvider>\n </MesobContext.Provider>\n );\n}\n\nexport function useMesob(): MesobContextValue | null {\n return useContext(MesobContext);\n}\n"],"mappings":";;;AAEA,SAAS,uBAAuB;AAChC,SAAS,WAAAA,gBAAe;;;ACHxB,SAA0B,YAAY;AACtC,SAAS,eAAe;;;ACExB,YAAY,sBAAsB;AAQ9B,cAiCE,YAjCF;;;ACRJ;AAAA,EAEE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAoDD,gBAAAC,YAAA;AA5BN,IAAM,eAAe,cAAwC,IAAI;AAiC1D,SAAS,WAAqC;AACnD,SAAO,WAAW,YAAY;AAChC;;;AH9DO,SAAS,eAAe,WAAoB;AACjD,QAAM,QAAQ,SAAS;AACvB,QAAM,YAAY,gBAAgB,SAAS;AAE3C,SAAOC,SAAQ,MAAM;AACnB,QAAI,OAAO,GAAG;AACZ,aAAO,CAAC,KAAa,WACnB,MAAM,EAAG,YAAY,GAAG,SAAS,IAAI,GAAG,KAAK,KAAK,MAAM;AAAA,IAC5D;AACA,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,GAAG,WAAW,SAAS,CAAC;AACrC;","names":["useMemo","jsx","useMemo"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesob/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -33,6 +33,10 @@
|
|
|
33
33
|
"types": "./dist/components/entity/index.d.ts",
|
|
34
34
|
"default": "./dist/components/entity/index.js"
|
|
35
35
|
},
|
|
36
|
+
"./components/page": {
|
|
37
|
+
"types": "./dist/components/page/index.d.ts",
|
|
38
|
+
"default": "./dist/components/page/index.js"
|
|
39
|
+
},
|
|
36
40
|
"./components/section": {
|
|
37
41
|
"types": "./dist/components/section/index.d.ts",
|
|
38
42
|
"default": "./dist/components/section/index.js"
|
|
@@ -95,12 +99,14 @@
|
|
|
95
99
|
"@tailwindcss/postcss": "^4.1.11",
|
|
96
100
|
"@types/react": "^19",
|
|
97
101
|
"@types/react-dom": "^19",
|
|
102
|
+
"next-intl": "^4.5.6",
|
|
98
103
|
"tailwindcss": "^4.1.11",
|
|
99
104
|
"tsup": "^8.5.0",
|
|
100
105
|
"tsx": "^4.20.3",
|
|
101
106
|
"typescript": "^5.7.2"
|
|
102
107
|
},
|
|
103
108
|
"peerDependencies": {
|
|
109
|
+
"next-intl": "^4.5.6",
|
|
104
110
|
"nuqs": "^2.8.1",
|
|
105
111
|
"react": "^19.2.0",
|
|
106
112
|
"react-dom": "^19.2.0",
|
package/src/styles/globals.css
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
@import "tailwindcss";
|
|
2
2
|
@import "tw-animate-css";
|
|
3
3
|
@source "../../../../apps/**/*.{ts,tsx}";
|
|
4
|
+
@source "../../../../demos/**/*.{ts,tsx}";
|
|
4
5
|
@source "../**/*.{ts,tsx}";
|
|
5
6
|
@source "../../../auth-react/src/**/*.{ts,tsx}";
|
|
6
7
|
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
39
40
|
--sidebar-accent: oklch(0.97 0 0);
|
|
40
41
|
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
42
|
+
--sidebar-active: oklch(0.94 0.04 250);
|
|
41
43
|
--sidebar-border: oklch(0.922 0 0);
|
|
42
44
|
--sidebar-ring: oklch(0.708 0 0);
|
|
43
45
|
}
|
|
@@ -73,6 +75,7 @@
|
|
|
73
75
|
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
74
76
|
--sidebar-accent: oklch(0.269 0 0);
|
|
75
77
|
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
78
|
+
--sidebar-active: oklch(0.28 0.06 264);
|
|
76
79
|
--sidebar-border: oklch(0.269 0 0);
|
|
77
80
|
--sidebar-ring: oklch(0.439 0 0);
|
|
78
81
|
}
|
|
@@ -112,6 +115,7 @@
|
|
|
112
115
|
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
113
116
|
--color-sidebar-accent: var(--sidebar-accent);
|
|
114
117
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
118
|
+
--color-sidebar-active: var(--sidebar-active);
|
|
115
119
|
--color-sidebar-border: var(--sidebar-border);
|
|
116
120
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
117
121
|
}
|