@mesob/ui 0.2.3 → 0.2.4
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.d.ts +992 -0
- package/dist/components.js +8030 -0
- package/dist/components.js.map +1 -0
- package/dist/hooks.d.ts +6 -0
- package/dist/hooks.js +85 -0
- package/dist/hooks.js.map +1 -0
- package/dist/providers.d.ts +20 -0
- package/dist/providers.js +61 -0
- package/dist/providers.js.map +1 -0
- package/dist/use-entity-params-nqD69tdX.d.ts +82 -0
- package/package.json +14 -27
- package/dist/components/accordion.d.ts +0 -10
- package/dist/components/accordion.js +0 -74
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/alert-dialog.d.ts +0 -17
- package/dist/components/alert-dialog.js +0 -187
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/alert.d.ts +0 -13
- package/dist/components/alert.js +0 -74
- package/dist/components/alert.js.map +0 -1
- package/dist/components/animated-tabs.d.ts +0 -26
- package/dist/components/animated-tabs.js +0 -290
- package/dist/components/animated-tabs.js.map +0 -1
- package/dist/components/app-breadcrumbs-context.d.ts +0 -19
- package/dist/components/app-breadcrumbs-context.js +0 -19
- package/dist/components/app-breadcrumbs-context.js.map +0 -1
- package/dist/components/app-breadcrumbs.d.ts +0 -25
- package/dist/components/app-breadcrumbs.js +0 -175
- package/dist/components/app-breadcrumbs.js.map +0 -1
- package/dist/components/app-header-actions.d.ts +0 -39
- package/dist/components/app-header-actions.js +0 -644
- package/dist/components/app-header-actions.js.map +0 -1
- package/dist/components/app-sidebar.d.ts +0 -24
- package/dist/components/app-sidebar.js +0 -667
- package/dist/components/app-sidebar.js.map +0 -1
- package/dist/components/aspect-ratio.d.ts +0 -6
- package/dist/components/aspect-ratio.js +0 -14
- package/dist/components/aspect-ratio.js.map +0 -1
- package/dist/components/avatar.d.ts +0 -9
- package/dist/components/avatar.js +0 -63
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/badge.d.ts +0 -13
- package/dist/components/badge.js +0 -48
- package/dist/components/badge.js.map +0 -1
- package/dist/components/breadcrumb.d.ts +0 -14
- package/dist/components/breadcrumb.js +0 -110
- package/dist/components/breadcrumb.js.map +0 -1
- package/dist/components/button-group.d.ts +0 -17
- package/dist/components/button-group.js +0 -106
- package/dist/components/button-group.js.map +0 -1
- package/dist/components/button.d.ts +0 -17
- package/dist/components/button.js +0 -68
- package/dist/components/button.js.map +0 -1
- package/dist/components/calendar.d.ts +0 -13
- package/dist/components/calendar.js +0 -262
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/card.d.ts +0 -12
- package/dist/components/card.js +0 -98
- package/dist/components/card.js.map +0 -1
- package/dist/components/carousel.d.ts +0 -24
- package/dist/components/carousel.js +0 -268
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/chart.d.ts +0 -43
- package/dist/components/chart.js +0 -271
- package/dist/components/chart.js.map +0 -1
- package/dist/components/checkbox.d.ts +0 -7
- package/dist/components/checkbox.js +0 -41
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/collapsible.d.ts +0 -8
- package/dist/components/collapsible.js +0 -38
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/command.d.ts +0 -22
- package/dist/components/command.js +0 -281
- package/dist/components/command.js.map +0 -1
- package/dist/components/context-menu.d.ts +0 -28
- package/dist/components/context-menu.js +0 -233
- package/dist/components/context-menu.js.map +0 -1
- package/dist/components/data-table/index.d.ts +0 -53
- package/dist/components/data-table/index.js +0 -823
- package/dist/components/data-table/index.js.map +0 -1
- package/dist/components/dialog.d.ts +0 -18
- package/dist/components/dialog.js +0 -146
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/drawer.d.ts +0 -16
- package/dist/components/drawer.js +0 -138
- package/dist/components/drawer.js.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -28
- package/dist/components/dropdown-menu.js +0 -241
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/empty.d.ts +0 -15
- package/dist/components/empty.js +0 -110
- package/dist/components/empty.js.map +0 -1
- package/dist/components/entity/index.d.ts +0 -236
- package/dist/components/entity/index.js +0 -1796
- package/dist/components/entity/index.js.map +0 -1
- package/dist/components/field.d.ts +0 -30
- package/dist/components/field.js +0 -279
- package/dist/components/field.js.map +0 -1
- package/dist/components/form.d.ts +0 -28
- package/dist/components/form.js +0 -150
- package/dist/components/form.js.map +0 -1
- package/dist/components/hover-card.d.ts +0 -9
- package/dist/components/hover-card.js +0 -48
- package/dist/components/hover-card.js.map +0 -1
- package/dist/components/input-group.d.ts +0 -20
- package/dist/components/input-group.js +0 -265
- package/dist/components/input-group.js.map +0 -1
- package/dist/components/input-otp.d.ts +0 -14
- package/dist/components/input-otp.js +0 -76
- package/dist/components/input-otp.js.map +0 -1
- package/dist/components/input.d.ts +0 -6
- package/dist/components/input.js +0 -29
- package/dist/components/input.js.map +0 -1
- package/dist/components/item.d.ts +0 -28
- package/dist/components/item.js +0 -220
- package/dist/components/item.js.map +0 -1
- package/dist/components/kbd.d.ts +0 -6
- package/dist/components/kbd.js +0 -39
- package/dist/components/kbd.js.map +0 -1
- package/dist/components/label.d.ts +0 -7
- package/dist/components/label.js +0 -32
- package/dist/components/label.js.map +0 -1
- package/dist/components/link.d.ts +0 -12
- package/dist/components/link.js +0 -51
- package/dist/components/link.js.map +0 -1
- package/dist/components/menubar.d.ts +0 -29
- package/dist/components/menubar.js +0 -261
- package/dist/components/menubar.js.map +0 -1
- package/dist/components/mesob-context.d.ts +0 -34
- package/dist/components/mesob-context.js +0 -53
- package/dist/components/mesob-context.js.map +0 -1
- package/dist/components/mesob-logo.d.ts +0 -13
- package/dist/components/mesob-logo.js +0 -80
- package/dist/components/mesob-logo.js.map +0 -1
- package/dist/components/navigation-menu.d.ts +0 -18
- package/dist/components/navigation-menu.js +0 -178
- package/dist/components/navigation-menu.js.map +0 -1
- package/dist/components/page/index.d.ts +0 -46
- package/dist/components/page/index.js +0 -205
- package/dist/components/page/index.js.map +0 -1
- package/dist/components/pagination.d.ts +0 -18
- package/dist/components/pagination.js +0 -160
- package/dist/components/pagination.js.map +0 -1
- package/dist/components/popover.d.ts +0 -10
- package/dist/components/popover.js +0 -54
- package/dist/components/popover.js.map +0 -1
- package/dist/components/powered-by.d.ts +0 -8
- package/dist/components/powered-by.js +0 -114
- package/dist/components/powered-by.js.map +0 -1
- package/dist/components/progress.d.ts +0 -7
- package/dist/components/progress.js +0 -41
- package/dist/components/progress.js.map +0 -1
- package/dist/components/radio-group.d.ts +0 -8
- package/dist/components/radio-group.js +0 -55
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/resizable.d.ts +0 -11
- package/dist/components/resizable.js +0 -58
- package/dist/components/resizable.js.map +0 -1
- package/dist/components/scroll-area.d.ts +0 -8
- package/dist/components/scroll-area.js +0 -70
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/section/index.d.ts +0 -14
- package/dist/components/section/index.js +0 -147
- package/dist/components/section/index.js.map +0 -1
- package/dist/components/select.d.ts +0 -18
- package/dist/components/select.js +0 -181
- package/dist/components/select.js.map +0 -1
- package/dist/components/separator.d.ts +0 -7
- package/dist/components/separator.js +0 -36
- package/dist/components/separator.js.map +0 -1
- package/dist/components/sheet.d.ts +0 -16
- package/dist/components/sheet.js +0 -136
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/shell.d.ts +0 -13
- package/dist/components/shell.js +0 -548
- package/dist/components/shell.js.map +0 -1
- package/dist/components/sidebar-context.d.ts +0 -19
- package/dist/components/sidebar-context.js +0 -17
- package/dist/components/sidebar-context.js.map +0 -1
- package/dist/components/sidebar.d.ts +0 -66
- package/dist/components/sidebar.js +0 -943
- package/dist/components/sidebar.js.map +0 -1
- package/dist/components/skeleton.d.ts +0 -5
- package/dist/components/skeleton.js +0 -23
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slider.d.ts +0 -7
- package/dist/components/slider.js +0 -76
- package/dist/components/slider.js.map +0 -1
- package/dist/components/sonner.d.ts +0 -7
- package/dist/components/sonner.js +0 -43
- package/dist/components/sonner.js.map +0 -1
- package/dist/components/spinner.d.ts +0 -6
- package/dist/components/spinner.js +0 -28
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/spotlight-search.d.ts +0 -25
- package/dist/components/spotlight-search.js +0 -395
- package/dist/components/spotlight-search.js.map +0 -1
- package/dist/components/switch.d.ts +0 -7
- package/dist/components/switch.js +0 -41
- package/dist/components/switch.js.map +0 -1
- package/dist/components/table.d.ts +0 -13
- package/dist/components/table.js +0 -124
- package/dist/components/table.js.map +0 -1
- package/dist/components/tabs.d.ts +0 -10
- package/dist/components/tabs.js +0 -77
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/textarea.d.ts +0 -6
- package/dist/components/textarea.js +0 -26
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/theme-toggle.d.ts +0 -8
- package/dist/components/theme-toggle.js +0 -94
- package/dist/components/theme-toggle.js.map +0 -1
- package/dist/components/toggle-group.d.ts +0 -14
- package/dist/components/toggle-group.js +0 -102
- package/dist/components/toggle-group.js.map +0 -1
- package/dist/components/toggle.d.ts +0 -13
- package/dist/components/toggle.js +0 -53
- package/dist/components/toggle.js.map +0 -1
- package/dist/components/tooltip.d.ts +0 -10
- package/dist/components/tooltip.js +0 -66
- package/dist/components/tooltip.js.map +0 -1
- package/dist/hooks/use-mobile.d.ts +0 -3
- package/dist/hooks/use-mobile.js +0 -22
- package/dist/hooks/use-mobile.js.map +0 -1
- package/dist/hooks/use-router.d.ts +0 -7
- package/dist/hooks/use-router.js +0 -36
- package/dist/hooks/use-router.js.map +0 -1
- package/dist/hooks/use-translation.d.ts +0 -5
- package/dist/hooks/use-translation.js +0 -42
- package/dist/hooks/use-translation.js.map +0 -1
package/dist/hooks.d.ts
ADDED
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// src/components/entity/use-entity-pagination.ts
|
|
2
|
+
function useEntityPagination({
|
|
3
|
+
items,
|
|
4
|
+
total,
|
|
5
|
+
pageSize
|
|
6
|
+
}) {
|
|
7
|
+
const totalCount = Number(total ?? items.length);
|
|
8
|
+
const pageCount = Math.ceil(totalCount / pageSize);
|
|
9
|
+
return {
|
|
10
|
+
total: totalCount,
|
|
11
|
+
pageCount,
|
|
12
|
+
hasData: items.length > 0,
|
|
13
|
+
isEmpty: totalCount === 0
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// src/components/entity/use-entity-params.ts
|
|
18
|
+
import { parseAsInteger, parseAsString, useQueryStates } from "nuqs";
|
|
19
|
+
import { useMemo } from "react";
|
|
20
|
+
function useEntityParams(config = {}) {
|
|
21
|
+
const {
|
|
22
|
+
searchKey = "search",
|
|
23
|
+
searchParamName,
|
|
24
|
+
defaultSort = "createdAt",
|
|
25
|
+
defaultOrder = "desc",
|
|
26
|
+
defaultPageSize = 10
|
|
27
|
+
} = config;
|
|
28
|
+
const [params, setParams] = useQueryStates({
|
|
29
|
+
...searchKey && {
|
|
30
|
+
[searchKey]: parseAsString.withDefault("")
|
|
31
|
+
},
|
|
32
|
+
view: parseAsString.withDefault("table"),
|
|
33
|
+
page: parseAsInteger.withDefault(1),
|
|
34
|
+
pageSize: parseAsInteger.withDefault(defaultPageSize),
|
|
35
|
+
filter: parseAsString,
|
|
36
|
+
sort: parseAsString.withDefault(defaultSort),
|
|
37
|
+
order: parseAsString.withDefault(defaultOrder)
|
|
38
|
+
});
|
|
39
|
+
const queryConfig = useMemo(
|
|
40
|
+
() => ({
|
|
41
|
+
params: {
|
|
42
|
+
query: {
|
|
43
|
+
page: params.page,
|
|
44
|
+
limit: params.pageSize,
|
|
45
|
+
...searchKey && params[searchKey] && {
|
|
46
|
+
[searchParamName || (searchKey === "search" ? "search" : "handle")]: params[searchKey]
|
|
47
|
+
},
|
|
48
|
+
...params.filter && { filter: params.filter },
|
|
49
|
+
...params.sort && { sort: params.sort, order: params.order }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}),
|
|
53
|
+
[params, searchKey, searchParamName]
|
|
54
|
+
);
|
|
55
|
+
return {
|
|
56
|
+
params,
|
|
57
|
+
setParams,
|
|
58
|
+
queryConfig
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/hooks/use-mobile.ts
|
|
63
|
+
import * as React from "react";
|
|
64
|
+
var MOBILE_BREAKPOINT = 768;
|
|
65
|
+
function useIsMobile() {
|
|
66
|
+
const [isMobile, setIsMobile] = React.useState(
|
|
67
|
+
void 0
|
|
68
|
+
);
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
71
|
+
const onChange = () => {
|
|
72
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
73
|
+
};
|
|
74
|
+
mql.addEventListener("change", onChange);
|
|
75
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
76
|
+
return () => mql.removeEventListener("change", onChange);
|
|
77
|
+
}, []);
|
|
78
|
+
return !!isMobile;
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
useEntityPagination,
|
|
82
|
+
useEntityParams,
|
|
83
|
+
useIsMobile
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/entity/use-entity-pagination.ts","../src/components/entity/use-entity-params.ts","../src/hooks/use-mobile.ts"],"sourcesContent":["type PaginationData = {\n items: unknown[];\n total?: number | string | null;\n pageSize: number;\n};\n\nexport function useEntityPagination({\n items,\n total,\n pageSize,\n}: PaginationData) {\n const totalCount = Number(total ?? items.length);\n const pageCount = Math.ceil(totalCount / pageSize);\n\n return {\n total: totalCount,\n pageCount,\n hasData: items.length > 0,\n isEmpty: totalCount === 0,\n };\n}\n","'use client';\n\nimport { parseAsInteger, parseAsString, useQueryStates } from 'nuqs';\nimport { useMemo } from 'react';\n\ntype EntityParamsConfig = {\n searchKey?: string;\n searchParamName?: string;\n defaultSort?: string;\n defaultOrder?: 'asc' | 'desc';\n defaultPageSize?: number;\n};\n\nexport function useEntityParams(config: EntityParamsConfig = {}) {\n const {\n searchKey = 'search',\n searchParamName,\n defaultSort = 'createdAt',\n defaultOrder = 'desc',\n defaultPageSize = 10,\n } = config;\n\n const [params, setParams] = useQueryStates({\n ...(searchKey && {\n [searchKey]: parseAsString.withDefault(''),\n }),\n view: parseAsString.withDefault('table'),\n page: parseAsInteger.withDefault(1),\n pageSize: parseAsInteger.withDefault(defaultPageSize),\n filter: parseAsString,\n sort: parseAsString.withDefault(defaultSort),\n order: parseAsString.withDefault(defaultOrder),\n });\n\n const queryConfig = useMemo(\n () => ({\n params: {\n query: {\n page: params.page,\n limit: params.pageSize,\n ...(searchKey &&\n (params as Record<string, string | number | null | undefined>)[\n searchKey\n ] && {\n [searchParamName ||\n (searchKey === 'search' ? 'search' : 'handle')]: (\n params as Record<string, string | number | null | undefined>\n )[searchKey],\n }),\n ...(params.filter && { filter: params.filter }),\n ...(params.sort && { sort: params.sort, order: params.order }),\n },\n },\n }),\n [params, searchKey, searchParamName],\n );\n\n return {\n params,\n setParams,\n queryConfig,\n };\n}\n","import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n"],"mappings":";AAMO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAAmB;AACjB,QAAM,aAAa,OAAO,SAAS,MAAM,MAAM;AAC/C,QAAM,YAAY,KAAK,KAAK,aAAa,QAAQ;AAEjD,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA,SAAS,MAAM,SAAS;AAAA,IACxB,SAAS,eAAe;AAAA,EAC1B;AACF;;;AClBA,SAAS,gBAAgB,eAAe,sBAAsB;AAC9D,SAAS,eAAe;AAUjB,SAAS,gBAAgB,SAA6B,CAAC,GAAG;AAC/D,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA,cAAc;AAAA,IACd,eAAe;AAAA,IACf,kBAAkB;AAAA,EACpB,IAAI;AAEJ,QAAM,CAAC,QAAQ,SAAS,IAAI,eAAe;AAAA,IACzC,GAAI,aAAa;AAAA,MACf,CAAC,SAAS,GAAG,cAAc,YAAY,EAAE;AAAA,IAC3C;AAAA,IACA,MAAM,cAAc,YAAY,OAAO;AAAA,IACvC,MAAM,eAAe,YAAY,CAAC;AAAA,IAClC,UAAU,eAAe,YAAY,eAAe;AAAA,IACpD,QAAQ;AAAA,IACR,MAAM,cAAc,YAAY,WAAW;AAAA,IAC3C,OAAO,cAAc,YAAY,YAAY;AAAA,EAC/C,CAAC;AAED,QAAM,cAAc;AAAA,IAClB,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,UACL,MAAM,OAAO;AAAA,UACb,OAAO,OAAO;AAAA,UACd,GAAI,aACD,OACC,SACF,KAAK;AAAA,YACH,CAAC,oBACE,cAAc,WAAW,WAAW,SAAS,GAC9C,OACA,SAAS;AAAA,UACb;AAAA,UACF,GAAI,OAAO,UAAU,EAAE,QAAQ,OAAO,OAAO;AAAA,UAC7C,GAAI,OAAO,QAAQ,EAAE,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM;AAAA,QAC9D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,WAAW,eAAe;AAAA,EACrC;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC9DA,YAAY,WAAW;AAEvB,IAAM,oBAAoB;AAEnB,SAAS,cAAc;AAC5B,QAAM,CAAC,UAAU,WAAW,IAAU;AAAA,IACpC;AAAA,EACF;AAEA,EAAM,gBAAU,MAAM;AACpB,UAAM,MAAM,OAAO,WAAW,eAAe,oBAAoB,CAAC,KAAK;AACvE,UAAM,WAAW,MAAM;AACrB,kBAAY,OAAO,aAAa,iBAAiB;AAAA,IACnD;AACA,QAAI,iBAAiB,UAAU,QAAQ;AACvC,gBAAY,OAAO,aAAa,iBAAiB;AACjD,WAAO,MAAM,IAAI,oBAAoB,UAAU,QAAQ;AAAA,EACzD,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,CAAC;AACX;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { createNavigation } from 'next-intl/navigation';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
type Navigation = ReturnType<typeof createNavigation>;
|
|
6
|
+
type MesobContextValue = {
|
|
7
|
+
navigation: Navigation;
|
|
8
|
+
linkComponent: Navigation['Link'];
|
|
9
|
+
locale: string;
|
|
10
|
+
t?: (key: string, params?: Record<string, string | number>) => string;
|
|
11
|
+
};
|
|
12
|
+
type MesobProviderProps = {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
routing: Parameters<typeof createNavigation>[0];
|
|
15
|
+
linkComponent?: Navigation['Link'];
|
|
16
|
+
};
|
|
17
|
+
declare function MesobProvider({ children, routing, linkComponent: linkComponentProp, }: MesobProviderProps): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function useMesob(): MesobContextValue | null;
|
|
19
|
+
|
|
20
|
+
export { MesobProvider, type MesobProviderProps, useMesob };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// src/provider/mesob-provider.tsx
|
|
2
|
+
import { useLocale } from "next-intl";
|
|
3
|
+
import { createNavigation } from "next-intl/navigation";
|
|
4
|
+
import { createContext, useContext, useMemo } from "react";
|
|
5
|
+
|
|
6
|
+
// src/components/ui/tooltip.tsx
|
|
7
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
8
|
+
|
|
9
|
+
// src/lib/utils.ts
|
|
10
|
+
import { clsx } from "clsx";
|
|
11
|
+
import { twMerge } from "tailwind-merge";
|
|
12
|
+
|
|
13
|
+
// src/components/ui/tooltip.tsx
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
function TooltipProvider({
|
|
16
|
+
delayDuration = 0,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
TooltipPrimitive.Provider,
|
|
21
|
+
{
|
|
22
|
+
"data-slot": "tooltip-provider",
|
|
23
|
+
delayDuration,
|
|
24
|
+
...props
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// src/provider/mesob-provider.tsx
|
|
30
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
31
|
+
var MesobContext = createContext(null);
|
|
32
|
+
var MESOB_ERR = "[MesobProvider]";
|
|
33
|
+
function MesobProvider({
|
|
34
|
+
children,
|
|
35
|
+
routing,
|
|
36
|
+
linkComponent: linkComponentProp
|
|
37
|
+
}) {
|
|
38
|
+
if (!routing) {
|
|
39
|
+
throw new Error(`${MESOB_ERR} routing is required`);
|
|
40
|
+
}
|
|
41
|
+
const locale = useLocale();
|
|
42
|
+
const navigation = useMemo(() => createNavigation(routing), [routing]);
|
|
43
|
+
const value = useMemo(() => {
|
|
44
|
+
const linkComponent = linkComponentProp ?? navigation?.Link;
|
|
45
|
+
if (!linkComponent) {
|
|
46
|
+
throw new Error(
|
|
47
|
+
`${MESOB_ERR} linkComponent or valid createNavigation required`
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
return { navigation, linkComponent, locale };
|
|
51
|
+
}, [navigation, linkComponentProp, locale]);
|
|
52
|
+
return /* @__PURE__ */ jsx2(MesobContext.Provider, { value, children: /* @__PURE__ */ jsx2(TooltipProvider, { delayDuration: 0, children }) });
|
|
53
|
+
}
|
|
54
|
+
function useMesob() {
|
|
55
|
+
return useContext(MesobContext);
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
MesobProvider,
|
|
59
|
+
useMesob
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/provider/mesob-provider.tsx","../src/components/ui/tooltip.tsx","../src/lib/utils.ts"],"sourcesContent":["'use client';\n\nimport { useLocale } from 'next-intl';\nimport { createNavigation } from 'next-intl/navigation';\nimport { createContext, type ReactNode, useContext, useMemo } from 'react';\nimport { TooltipProvider } from '../components/ui/tooltip';\n\ntype Navigation = ReturnType<typeof createNavigation>;\n\ntype MesobContextValue = {\n navigation: Navigation;\n linkComponent: Navigation['Link'];\n locale: string;\n t?: (key: string, params?: Record<string, string | number>) => string;\n};\n\nconst MesobContext = createContext<MesobContextValue | null>(null);\n\nconst MESOB_ERR = '[MesobProvider]';\n\nexport type MesobProviderProps = {\n children: ReactNode;\n routing: Parameters<typeof createNavigation>[0];\n linkComponent?: Navigation['Link'];\n};\n\nexport function MesobProvider({\n children,\n routing,\n linkComponent: linkComponentProp,\n}: MesobProviderProps) {\n if (!routing) {\n throw new Error(`${MESOB_ERR} routing is required`);\n }\n\n const locale = useLocale();\n const navigation = useMemo(() => createNavigation(routing), [routing]);\n\n const value = useMemo(() => {\n const linkComponent = linkComponentProp ?? navigation?.Link;\n if (!linkComponent) {\n throw new Error(\n `${MESOB_ERR} linkComponent or valid createNavigation required`,\n );\n }\n return { navigation, linkComponent, locale };\n }, [navigation, linkComponentProp, locale]);\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 * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport type * as React from 'react';\nimport { cn } from '../../lib/utils';\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","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";AAEA,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AACjC,SAAS,eAA+B,YAAY,eAAe;;;ACFnE,YAAY,sBAAsB;;;ACFlC,SAA0B,YAAY;AACtC,SAAS,eAAe;;;ADUpB,cAiCE,YAjCF;AALJ,SAAS,gBAAgB;AAAA,EACvB,gBAAgB;AAAA,EAChB,GAAG;AACL,GAA2D;AACzD,SACE;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ADiCM,gBAAAA,YAAA;AAlCN,IAAM,eAAe,cAAwC,IAAI;AAEjE,IAAM,YAAY;AAQX,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,eAAe;AACjB,GAAuB;AACrB,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,GAAG,SAAS,sBAAsB;AAAA,EACpD;AAEA,QAAM,SAAS,UAAU;AACzB,QAAM,aAAa,QAAQ,MAAM,iBAAiB,OAAO,GAAG,CAAC,OAAO,CAAC;AAErE,QAAM,QAAQ,QAAQ,MAAM;AAC1B,UAAM,gBAAgB,qBAAqB,YAAY;AACvD,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI;AAAA,QACR,GAAG,SAAS;AAAA,MACd;AAAA,IACF;AACA,WAAO,EAAE,YAAY,eAAe,OAAO;AAAA,EAC7C,GAAG,CAAC,YAAY,mBAAmB,MAAM,CAAC;AAE1C,SACE,gBAAAA,KAAC,aAAa,UAAb,EAAsB,OACrB,0BAAAA,KAAC,mBAAgB,eAAe,GAAI,UAAS,GAC/C;AAEJ;AAEO,SAAS,WAAqC;AACnD,SAAO,WAAW,YAAY;AAChC;","names":["jsx"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as nuqs from 'nuqs';
|
|
2
|
+
|
|
3
|
+
type PaginationData = {
|
|
4
|
+
items: unknown[];
|
|
5
|
+
total?: number | string | null;
|
|
6
|
+
pageSize: number;
|
|
7
|
+
};
|
|
8
|
+
declare function useEntityPagination({ items, total, pageSize, }: PaginationData): {
|
|
9
|
+
total: number;
|
|
10
|
+
pageCount: number;
|
|
11
|
+
hasData: boolean;
|
|
12
|
+
isEmpty: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
type EntityParamsConfig = {
|
|
16
|
+
searchKey?: string;
|
|
17
|
+
searchParamName?: string;
|
|
18
|
+
defaultSort?: string;
|
|
19
|
+
defaultOrder?: 'asc' | 'desc';
|
|
20
|
+
defaultPageSize?: number;
|
|
21
|
+
};
|
|
22
|
+
declare function useEntityParams(config?: EntityParamsConfig): {
|
|
23
|
+
params: nuqs.Values<{
|
|
24
|
+
view: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
|
|
25
|
+
readonly defaultValue: string;
|
|
26
|
+
parseServerSide(value: string | string[] | undefined): string;
|
|
27
|
+
};
|
|
28
|
+
page: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
|
|
29
|
+
readonly defaultValue: number;
|
|
30
|
+
parseServerSide(value: string | string[] | undefined): number;
|
|
31
|
+
};
|
|
32
|
+
pageSize: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
|
|
33
|
+
readonly defaultValue: number;
|
|
34
|
+
parseServerSide(value: string | string[] | undefined): number;
|
|
35
|
+
};
|
|
36
|
+
filter: nuqs.SingleParserBuilder<string>;
|
|
37
|
+
sort: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
|
|
38
|
+
readonly defaultValue: string;
|
|
39
|
+
parseServerSide(value: string | string[] | undefined): string;
|
|
40
|
+
};
|
|
41
|
+
order: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
|
|
42
|
+
readonly defaultValue: string;
|
|
43
|
+
parseServerSide(value: string | string[] | undefined): string;
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
46
|
+
setParams: nuqs.SetValues<{
|
|
47
|
+
view: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
|
|
48
|
+
readonly defaultValue: string;
|
|
49
|
+
parseServerSide(value: string | string[] | undefined): string;
|
|
50
|
+
};
|
|
51
|
+
page: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
|
|
52
|
+
readonly defaultValue: number;
|
|
53
|
+
parseServerSide(value: string | string[] | undefined): number;
|
|
54
|
+
};
|
|
55
|
+
pageSize: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
|
|
56
|
+
readonly defaultValue: number;
|
|
57
|
+
parseServerSide(value: string | string[] | undefined): number;
|
|
58
|
+
};
|
|
59
|
+
filter: nuqs.SingleParserBuilder<string>;
|
|
60
|
+
sort: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
|
|
61
|
+
readonly defaultValue: string;
|
|
62
|
+
parseServerSide(value: string | string[] | undefined): string;
|
|
63
|
+
};
|
|
64
|
+
order: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
|
|
65
|
+
readonly defaultValue: string;
|
|
66
|
+
parseServerSide(value: string | string[] | undefined): string;
|
|
67
|
+
};
|
|
68
|
+
}>;
|
|
69
|
+
queryConfig: {
|
|
70
|
+
params: {
|
|
71
|
+
query: {
|
|
72
|
+
sort?: string | undefined;
|
|
73
|
+
order?: string | undefined;
|
|
74
|
+
filter?: string | undefined;
|
|
75
|
+
page: number;
|
|
76
|
+
limit: number;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export { useEntityParams as a, useEntityPagination as u };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesob/ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -10,34 +10,22 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"default": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
+
"./components": {
|
|
14
|
+
"types": "./dist/components.d.ts",
|
|
15
|
+
"default": "./dist/components.js"
|
|
16
|
+
},
|
|
17
|
+
"./providers": {
|
|
18
|
+
"types": "./dist/providers.d.ts",
|
|
19
|
+
"default": "./dist/providers.js"
|
|
20
|
+
},
|
|
21
|
+
"./hooks": {
|
|
22
|
+
"types": "./dist/hooks.d.ts",
|
|
23
|
+
"default": "./dist/hooks.js"
|
|
24
|
+
},
|
|
13
25
|
"./postcss.config": "./postcss.config.mjs",
|
|
14
26
|
"./lib/*": {
|
|
15
27
|
"types": "./dist/lib/*.d.ts",
|
|
16
28
|
"default": "./dist/lib/*.js"
|
|
17
|
-
},
|
|
18
|
-
"./components/*": {
|
|
19
|
-
"types": "./dist/components/*.d.ts",
|
|
20
|
-
"default": "./dist/components/*.js"
|
|
21
|
-
},
|
|
22
|
-
"./hooks/*": {
|
|
23
|
-
"types": "./dist/hooks/*.d.ts",
|
|
24
|
-
"default": "./dist/hooks/*.js"
|
|
25
|
-
},
|
|
26
|
-
"./components/data-table": {
|
|
27
|
-
"types": "./dist/components/data-table/index.d.ts",
|
|
28
|
-
"default": "./dist/components/data-table/index.js"
|
|
29
|
-
},
|
|
30
|
-
"./components/entity": {
|
|
31
|
-
"types": "./dist/components/entity/index.d.ts",
|
|
32
|
-
"default": "./dist/components/entity/index.js"
|
|
33
|
-
},
|
|
34
|
-
"./components/page": {
|
|
35
|
-
"types": "./dist/components/page/index.d.ts",
|
|
36
|
-
"default": "./dist/components/page/index.js"
|
|
37
|
-
},
|
|
38
|
-
"./components/section": {
|
|
39
|
-
"types": "./dist/components/section/index.d.ts",
|
|
40
|
-
"default": "./dist/components/section/index.js"
|
|
41
29
|
}
|
|
42
30
|
},
|
|
43
31
|
"files": [
|
|
@@ -113,8 +101,7 @@
|
|
|
113
101
|
"access": "public"
|
|
114
102
|
},
|
|
115
103
|
"scripts": {
|
|
116
|
-
"build": "tsup",
|
|
117
|
-
"prebuild": "tsx scripts/generate-exports.ts",
|
|
104
|
+
"build": "tsup && node scripts/prepend-use-client.mjs",
|
|
118
105
|
"dev": "tsup --watch",
|
|
119
106
|
"lint": "biome check --write .",
|
|
120
107
|
"check-types": "tsc --noEmit"
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
6
|
-
declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime.JSX.Element;
|
|
7
|
-
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
8
|
-
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
9
|
-
|
|
10
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/lib/utils.ts
|
|
4
|
-
import { clsx } from "clsx";
|
|
5
|
-
import { twMerge } from "tailwind-merge";
|
|
6
|
-
function cn(...inputs) {
|
|
7
|
-
return twMerge(clsx(inputs));
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
// src/components/accordion.tsx
|
|
11
|
-
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
12
|
-
import { IconChevronDown } from "@tabler/icons-react";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
function Accordion({
|
|
15
|
-
...props
|
|
16
|
-
}) {
|
|
17
|
-
return /* @__PURE__ */ jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
|
|
18
|
-
}
|
|
19
|
-
function AccordionItem({
|
|
20
|
-
className,
|
|
21
|
-
...props
|
|
22
|
-
}) {
|
|
23
|
-
return /* @__PURE__ */ jsx(
|
|
24
|
-
AccordionPrimitive.Item,
|
|
25
|
-
{
|
|
26
|
-
"data-slot": "accordion-item",
|
|
27
|
-
className: cn("border-b last:border-b-0", className),
|
|
28
|
-
...props
|
|
29
|
-
}
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
function AccordionTrigger({
|
|
33
|
-
className,
|
|
34
|
-
children,
|
|
35
|
-
...props
|
|
36
|
-
}) {
|
|
37
|
-
return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
38
|
-
AccordionPrimitive.Trigger,
|
|
39
|
-
{
|
|
40
|
-
"data-slot": "accordion-trigger",
|
|
41
|
-
className: cn(
|
|
42
|
-
"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
|
|
43
|
-
className
|
|
44
|
-
),
|
|
45
|
-
...props,
|
|
46
|
-
children: [
|
|
47
|
-
children,
|
|
48
|
-
/* @__PURE__ */ jsx(IconChevronDown, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
) });
|
|
52
|
-
}
|
|
53
|
-
function AccordionContent({
|
|
54
|
-
className,
|
|
55
|
-
children,
|
|
56
|
-
...props
|
|
57
|
-
}) {
|
|
58
|
-
return /* @__PURE__ */ jsx(
|
|
59
|
-
AccordionPrimitive.Content,
|
|
60
|
-
{
|
|
61
|
-
"data-slot": "accordion-content",
|
|
62
|
-
className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
|
|
63
|
-
...props,
|
|
64
|
-
children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
|
|
65
|
-
}
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
export {
|
|
69
|
-
Accordion,
|
|
70
|
-
AccordionContent,
|
|
71
|
-
AccordionItem,
|
|
72
|
-
AccordionTrigger
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=accordion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/utils.ts","../../src/components/accordion.tsx"],"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 AccordionPrimitive from '@radix-ui/react-accordion';\nimport { IconChevronDown } from '@tabler/icons-react';\nimport type * as React from 'react';\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <IconChevronDown className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn('pt-0 pb-4', className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACFA,YAAY,wBAAwB;AACpC,SAAS,uBAAuB;AAMvB,cAuBH,YAvBG;AAHT,SAAS,UAAU;AAAA,EACjB,GAAG;AACL,GAAyD;AACvD,SAAO,oBAAoB,yBAAnB,EAAwB,aAAU,aAAa,GAAG,OAAO;AACnE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,4BAA4B,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE,oBAAoB,2BAAnB,EAA0B,WAAU,QACnC;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAC,mBAAgB,WAAU,+GAA8G;AAAA;AAAA;AAAA,EAC3I,GACF;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,8BAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GAAI,UAAS;AAAA;AAAA,EACxD;AAEJ;","names":[]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
6
|
-
declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
7
|
-
declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
8
|
-
declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
|
|
9
|
-
declare function AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
10
|
-
declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
|
|
11
|
-
declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
|
|
12
|
-
declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
|
|
13
|
-
declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
|
|
14
|
-
declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime.JSX.Element;
|
|
15
|
-
declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime.JSX.Element;
|
|
16
|
-
|
|
17
|
-
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/lib/utils.ts
|
|
4
|
-
import { clsx } from "clsx";
|
|
5
|
-
import { twMerge } from "tailwind-merge";
|
|
6
|
-
function cn(...inputs) {
|
|
7
|
-
return twMerge(clsx(inputs));
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
// src/components/button.tsx
|
|
11
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
12
|
-
import { cva } from "class-variance-authority";
|
|
13
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
var buttonVariants = cva(
|
|
15
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
16
|
-
{
|
|
17
|
-
variants: {
|
|
18
|
-
variant: {
|
|
19
|
-
default: "bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400",
|
|
20
|
-
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
|
|
21
|
-
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
22
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400",
|
|
23
|
-
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
24
|
-
link: "text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline"
|
|
25
|
-
},
|
|
26
|
-
size: {
|
|
27
|
-
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
28
|
-
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
29
|
-
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
30
|
-
icon: "size-9",
|
|
31
|
-
"icon-sm": "size-8",
|
|
32
|
-
"icon-lg": "size-10"
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
defaultVariants: {
|
|
36
|
-
variant: "default",
|
|
37
|
-
size: "default"
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
// src/components/alert-dialog.tsx
|
|
43
|
-
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
44
|
-
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
45
|
-
function AlertDialog({
|
|
46
|
-
...props
|
|
47
|
-
}) {
|
|
48
|
-
return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
|
|
49
|
-
}
|
|
50
|
-
function AlertDialogTrigger({
|
|
51
|
-
...props
|
|
52
|
-
}) {
|
|
53
|
-
return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
|
|
54
|
-
}
|
|
55
|
-
function AlertDialogPortal({
|
|
56
|
-
...props
|
|
57
|
-
}) {
|
|
58
|
-
return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props });
|
|
59
|
-
}
|
|
60
|
-
function AlertDialogOverlay({
|
|
61
|
-
className,
|
|
62
|
-
...props
|
|
63
|
-
}) {
|
|
64
|
-
return /* @__PURE__ */ jsx2(
|
|
65
|
-
AlertDialogPrimitive.Overlay,
|
|
66
|
-
{
|
|
67
|
-
"data-slot": "alert-dialog-overlay",
|
|
68
|
-
className: cn(
|
|
69
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=open]:opacity-100 fixed inset-0 z-50 bg-[var(--overlay,oklch(0_0_0/0.5))]",
|
|
70
|
-
className
|
|
71
|
-
),
|
|
72
|
-
...props
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
function AlertDialogContent({
|
|
77
|
-
className,
|
|
78
|
-
...props
|
|
79
|
-
}) {
|
|
80
|
-
return /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
|
|
81
|
-
/* @__PURE__ */ jsx2(AlertDialogOverlay, {}),
|
|
82
|
-
/* @__PURE__ */ jsx2(
|
|
83
|
-
AlertDialogPrimitive.Content,
|
|
84
|
-
{
|
|
85
|
-
"data-slot": "alert-dialog-content",
|
|
86
|
-
className: cn(
|
|
87
|
-
"bg-background text-foreground border-border data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[51] grid w-full min-w-[280px] max-w-[calc(100vw-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:min-w-[320px] sm:max-w-[32rem]",
|
|
88
|
-
className
|
|
89
|
-
),
|
|
90
|
-
...props
|
|
91
|
-
}
|
|
92
|
-
)
|
|
93
|
-
] });
|
|
94
|
-
}
|
|
95
|
-
function AlertDialogHeader({
|
|
96
|
-
className,
|
|
97
|
-
...props
|
|
98
|
-
}) {
|
|
99
|
-
return /* @__PURE__ */ jsx2(
|
|
100
|
-
"div",
|
|
101
|
-
{
|
|
102
|
-
"data-slot": "alert-dialog-header",
|
|
103
|
-
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
104
|
-
...props
|
|
105
|
-
}
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
function AlertDialogFooter({
|
|
109
|
-
className,
|
|
110
|
-
...props
|
|
111
|
-
}) {
|
|
112
|
-
return /* @__PURE__ */ jsx2(
|
|
113
|
-
"div",
|
|
114
|
-
{
|
|
115
|
-
"data-slot": "alert-dialog-footer",
|
|
116
|
-
className: cn(
|
|
117
|
-
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
118
|
-
className
|
|
119
|
-
),
|
|
120
|
-
...props
|
|
121
|
-
}
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
function AlertDialogTitle({
|
|
125
|
-
className,
|
|
126
|
-
...props
|
|
127
|
-
}) {
|
|
128
|
-
return /* @__PURE__ */ jsx2(
|
|
129
|
-
AlertDialogPrimitive.Title,
|
|
130
|
-
{
|
|
131
|
-
"data-slot": "alert-dialog-title",
|
|
132
|
-
className: cn("text-lg font-semibold", className),
|
|
133
|
-
...props
|
|
134
|
-
}
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
function AlertDialogDescription({
|
|
138
|
-
className,
|
|
139
|
-
...props
|
|
140
|
-
}) {
|
|
141
|
-
return /* @__PURE__ */ jsx2(
|
|
142
|
-
AlertDialogPrimitive.Description,
|
|
143
|
-
{
|
|
144
|
-
"data-slot": "alert-dialog-description",
|
|
145
|
-
className: cn("text-muted-foreground text-sm", className),
|
|
146
|
-
...props
|
|
147
|
-
}
|
|
148
|
-
);
|
|
149
|
-
}
|
|
150
|
-
function AlertDialogAction({
|
|
151
|
-
className,
|
|
152
|
-
...props
|
|
153
|
-
}) {
|
|
154
|
-
return /* @__PURE__ */ jsx2(
|
|
155
|
-
AlertDialogPrimitive.Action,
|
|
156
|
-
{
|
|
157
|
-
className: cn(buttonVariants(), className),
|
|
158
|
-
...props
|
|
159
|
-
}
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
function AlertDialogCancel({
|
|
163
|
-
className,
|
|
164
|
-
...props
|
|
165
|
-
}) {
|
|
166
|
-
return /* @__PURE__ */ jsx2(
|
|
167
|
-
AlertDialogPrimitive.Cancel,
|
|
168
|
-
{
|
|
169
|
-
className: cn(buttonVariants({ variant: "outline" }), className),
|
|
170
|
-
...props
|
|
171
|
-
}
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
export {
|
|
175
|
-
AlertDialog,
|
|
176
|
-
AlertDialogAction,
|
|
177
|
-
AlertDialogCancel,
|
|
178
|
-
AlertDialogContent,
|
|
179
|
-
AlertDialogDescription,
|
|
180
|
-
AlertDialogFooter,
|
|
181
|
-
AlertDialogHeader,
|
|
182
|
-
AlertDialogOverlay,
|
|
183
|
-
AlertDialogPortal,
|
|
184
|
-
AlertDialogTitle,
|
|
185
|
-
AlertDialogTrigger
|
|
186
|
-
};
|
|
187
|
-
//# sourceMappingURL=alert-dialog.js.map
|