@spacesync/client 0.1.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/README.md +39 -0
- package/dist/analog-clock-picker.d.ts +10 -0
- package/dist/analog-clock-picker.js +408 -0
- package/dist/analog-clock-picker.js.map +1 -0
- package/dist/api.d.ts +222 -0
- package/dist/api.js +167 -0
- package/dist/api.js.map +1 -0
- package/dist/app-modal.d.ts +25 -0
- package/dist/app-modal.js +145 -0
- package/dist/app-modal.js.map +1 -0
- package/dist/app-shell-mobile-nav.d.ts +29 -0
- package/dist/app-shell-mobile-nav.js +122 -0
- package/dist/app-shell-mobile-nav.js.map +1 -0
- package/dist/app-web-shell.d.ts +20 -0
- package/dist/app-web-shell.js +45 -0
- package/dist/app-web-shell.js.map +1 -0
- package/dist/booking-schedule-calendars.d.ts +95 -0
- package/dist/booking-schedule-calendars.js +1343 -0
- package/dist/booking-schedule-calendars.js.map +1 -0
- package/dist/chat-stick-to-bottom.d.ts +22 -0
- package/dist/chat-stick-to-bottom.js +190 -0
- package/dist/chat-stick-to-bottom.js.map +1 -0
- package/dist/detail-page-header.d.ts +16 -0
- package/dist/detail-page-header.js +220 -0
- package/dist/detail-page-header.js.map +1 -0
- package/dist/dialog-CIdvylPK.d.ts +16 -0
- package/dist/errors-D1niseaa.d.ts +34 -0
- package/dist/file-picker-field.d.ts +23 -0
- package/dist/file-picker-field.js +165 -0
- package/dist/file-picker-field.js.map +1 -0
- package/dist/file-viewer-dialog.d.ts +15 -0
- package/dist/file-viewer-dialog.js +387 -0
- package/dist/file-viewer-dialog.js.map +1 -0
- package/dist/floor-switcher.d.ts +14 -0
- package/dist/floor-switcher.js +416 -0
- package/dist/floor-switcher.js.map +1 -0
- package/dist/forms.d.ts +52 -0
- package/dist/forms.js +66 -0
- package/dist/forms.js.map +1 -0
- package/dist/image-picker-field.d.ts +11 -0
- package/dist/image-picker-field.js +135 -0
- package/dist/image-picker-field.js.map +1 -0
- package/dist/layout-canvas-view.d.ts +57 -0
- package/dist/layout-canvas-view.js +974 -0
- package/dist/layout-canvas-view.js.map +1 -0
- package/dist/lib/dateDisplay.d.ts +24 -0
- package/dist/lib/dateDisplay.js +84 -0
- package/dist/lib/dateDisplay.js.map +1 -0
- package/dist/live-resource-meta.d.ts +11 -0
- package/dist/live-resource-meta.js +27 -0
- package/dist/live-resource-meta.js.map +1 -0
- package/dist/live-space-pulse-dot.d.ts +8 -0
- package/dist/live-space-pulse-dot.js +18 -0
- package/dist/live-space-pulse-dot.js.map +1 -0
- package/dist/notification-sidebar-preview.d.ts +37 -0
- package/dist/notification-sidebar-preview.js +121 -0
- package/dist/notification-sidebar-preview.js.map +1 -0
- package/dist/page-list-chrome.d.ts +124 -0
- package/dist/page-list-chrome.js +970 -0
- package/dist/page-list-chrome.js.map +1 -0
- package/dist/platform-support-message-composer.d.ts +38 -0
- package/dist/platform-support-message-composer.js +446 -0
- package/dist/platform-support-message-composer.js.map +1 -0
- package/dist/shell-sidebar-nav.d.ts +16 -0
- package/dist/shell-sidebar-nav.js +69 -0
- package/dist/shell-sidebar-nav.js.map +1 -0
- package/dist/shell-theme.d.ts +6 -0
- package/dist/shell-theme.js +9 -0
- package/dist/shell-theme.js.map +1 -0
- package/dist/shell-top-bar-chrome.d.ts +39 -0
- package/dist/shell-top-bar-chrome.js +105 -0
- package/dist/shell-top-bar-chrome.js.map +1 -0
- package/dist/shell-top-bar.d.ts +16 -0
- package/dist/shell-top-bar.js +71 -0
- package/dist/shell-top-bar.js.map +1 -0
- package/dist/styles/theme.css +223 -0
- package/dist/styles/theme.css.map +1 -0
- package/dist/styles/theme.d.ts +2 -0
- package/dist/support-presence-status.d.ts +11 -0
- package/dist/support-presence-status.js +92 -0
- package/dist/support-presence-status.js.map +1 -0
- package/dist/theme-appearance-control.d.ts +5 -0
- package/dist/theme-appearance-control.js +114 -0
- package/dist/theme-appearance-control.js.map +1 -0
- package/dist/theme-boot-script.d.ts +4 -0
- package/dist/theme-boot-script.js +9 -0
- package/dist/theme-boot-script.js.map +1 -0
- package/dist/theme-provider.d.ts +9 -0
- package/dist/theme-provider.js +25 -0
- package/dist/theme-provider.js.map +1 -0
- package/dist/ui.d.ts +765 -0
- package/dist/ui.js +5637 -0
- package/dist/ui.js.map +1 -0
- package/dist/use-client-pagination.d.ts +22 -0
- package/dist/use-client-pagination.js +51 -0
- package/dist/use-client-pagination.js.map +1 -0
- package/dist/use-client-sort.d.ts +20 -0
- package/dist/use-client-sort.js +41 -0
- package/dist/use-client-sort.js.map +1 -0
- package/package.json +208 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type UseClientPaginationOptions = {
|
|
2
|
+
initialPageSize?: number;
|
|
3
|
+
pageSizeOptions?: readonly number[];
|
|
4
|
+
resetDeps?: unknown[];
|
|
5
|
+
};
|
|
6
|
+
type UseClientPaginationResult<T> = {
|
|
7
|
+
page: number;
|
|
8
|
+
setPage: (page: number) => void;
|
|
9
|
+
pageSize: number;
|
|
10
|
+
setPageSize: (size: number) => void;
|
|
11
|
+
pageSizeOptions: readonly number[];
|
|
12
|
+
pageItems: T[];
|
|
13
|
+
totalItems: number;
|
|
14
|
+
totalPages: number;
|
|
15
|
+
rangeStart: number;
|
|
16
|
+
rangeEnd: number;
|
|
17
|
+
canPrev: boolean;
|
|
18
|
+
canNext: boolean;
|
|
19
|
+
};
|
|
20
|
+
declare function useClientPagination<T>(items: T[], { initialPageSize, pageSizeOptions, resetDeps, }?: UseClientPaginationOptions): UseClientPaginationResult<T>;
|
|
21
|
+
|
|
22
|
+
export { type UseClientPaginationOptions, type UseClientPaginationResult, useClientPagination };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
// src/hooks/use-client-pagination.ts
|
|
4
|
+
var DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
|
|
5
|
+
function useClientPagination(items, {
|
|
6
|
+
initialPageSize = 25,
|
|
7
|
+
pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
|
|
8
|
+
resetDeps = []
|
|
9
|
+
} = {}) {
|
|
10
|
+
const [page, setPage] = useState(1);
|
|
11
|
+
const [pageSize, setPageSizeState] = useState(initialPageSize);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
setPage(1);
|
|
14
|
+
}, resetDeps);
|
|
15
|
+
const totalItems = items.length;
|
|
16
|
+
const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (page > totalPages) {
|
|
19
|
+
setPage(totalPages);
|
|
20
|
+
}
|
|
21
|
+
}, [page, totalPages]);
|
|
22
|
+
const pageItems = useMemo(() => {
|
|
23
|
+
if (totalItems === 0) return [];
|
|
24
|
+
const start = (page - 1) * pageSize;
|
|
25
|
+
return items.slice(start, start + pageSize);
|
|
26
|
+
}, [items, page, pageSize, totalItems]);
|
|
27
|
+
const rangeStart = totalItems === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
28
|
+
const rangeEnd = totalItems === 0 ? 0 : Math.min(page * pageSize, totalItems);
|
|
29
|
+
const setPageSize = (size) => {
|
|
30
|
+
setPageSizeState(size);
|
|
31
|
+
setPage(1);
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
page,
|
|
35
|
+
setPage,
|
|
36
|
+
pageSize,
|
|
37
|
+
setPageSize,
|
|
38
|
+
pageSizeOptions,
|
|
39
|
+
pageItems,
|
|
40
|
+
totalItems,
|
|
41
|
+
totalPages,
|
|
42
|
+
rangeStart,
|
|
43
|
+
rangeEnd,
|
|
44
|
+
canPrev: page > 1,
|
|
45
|
+
canNext: page < totalPages
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { useClientPagination };
|
|
50
|
+
//# sourceMappingURL=use-client-pagination.js.map
|
|
51
|
+
//# sourceMappingURL=use-client-pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-client-pagination.ts"],"names":[],"mappings":";;;AAEA,IAAM,yBAAA,GAA4B,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAuB3C,SAAS,oBACd,KAAA,EACA;AAAA,EACE,eAAA,GAAkB,EAAA;AAAA,EAClB,eAAA,GAAkB,yBAAA;AAAA,EAClB,YAAY;AACd,CAAA,GAAgC,EAAC,EACH;AAC9B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,CAAC,CAAA;AAClC,EAAA,MAAM,CAAC,QAAA,EAAU,gBAAgB,CAAA,GAAI,SAAS,eAAe,CAAA;AAE7D,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,EAEX,GAAG,SAAS,CAAA;AAEZ,EAAA,MAAM,aAAa,KAAA,CAAM,MAAA;AACzB,EAAA,MAAM,UAAA,GAAa,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,IAAA,CAAK,UAAA,GAAa,QAAQ,CAAC,CAAA;AAE/D,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,UAAA,EAAY;AACrB,MAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,IACpB;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,UAAU,CAAC,CAAA;AAErB,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAM;AAC9B,IAAA,IAAI,UAAA,KAAe,CAAA,EAAG,OAAO,EAAC;AAC9B,IAAA,MAAM,KAAA,GAAA,CAAS,OAAO,CAAA,IAAK,QAAA;AAC3B,IAAA,OAAO,KAAA,CAAM,KAAA,CAAM,KAAA,EAAO,KAAA,GAAQ,QAAQ,CAAA;AAAA,EAC5C,GAAG,CAAC,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,UAAU,CAAC,CAAA;AAEtC,EAAA,MAAM,aAAa,UAAA,KAAe,CAAA,GAAI,CAAA,GAAA,CAAK,IAAA,GAAO,KAAK,QAAA,GAAW,CAAA;AAClE,EAAA,MAAM,QAAA,GAAW,eAAe,CAAA,GAAI,CAAA,GAAI,KAAK,GAAA,CAAI,IAAA,GAAO,UAAU,UAAU,CAAA;AAE5E,EAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAAiB;AACpC,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAS,IAAA,GAAO,CAAA;AAAA,IAChB,SAAS,IAAA,GAAO;AAAA,GAClB;AACF","file":"use-client-pagination.js","sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100] as const;\n\nexport type UseClientPaginationOptions = {\n initialPageSize?: number;\n pageSizeOptions?: readonly number[];\n resetDeps?: unknown[];\n};\n\nexport type UseClientPaginationResult<T> = {\n page: number;\n setPage: (page: number) => void;\n pageSize: number;\n setPageSize: (size: number) => void;\n pageSizeOptions: readonly number[];\n pageItems: T[];\n totalItems: number;\n totalPages: number;\n rangeStart: number;\n rangeEnd: number;\n canPrev: boolean;\n canNext: boolean;\n};\n\nexport function useClientPagination<T>(\n items: T[],\n {\n initialPageSize = 25,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n resetDeps = [],\n }: UseClientPaginationOptions = {},\n): UseClientPaginationResult<T> {\n const [page, setPage] = useState(1);\n const [pageSize, setPageSizeState] = useState(initialPageSize);\n\n useEffect(() => {\n setPage(1);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- resetDeps is caller-controlled\n }, resetDeps);\n\n const totalItems = items.length;\n const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));\n\n useEffect(() => {\n if (page > totalPages) {\n setPage(totalPages);\n }\n }, [page, totalPages]);\n\n const pageItems = useMemo(() => {\n if (totalItems === 0) return [];\n const start = (page - 1) * pageSize;\n return items.slice(start, start + pageSize);\n }, [items, page, pageSize, totalItems]);\n\n const rangeStart = totalItems === 0 ? 0 : (page - 1) * pageSize + 1;\n const rangeEnd = totalItems === 0 ? 0 : Math.min(page * pageSize, totalItems);\n\n const setPageSize = (size: number) => {\n setPageSizeState(size);\n setPage(1);\n };\n\n return {\n page,\n setPage,\n pageSize,\n setPageSize,\n pageSizeOptions,\n pageItems,\n totalItems,\n totalPages,\n rangeStart,\n rangeEnd,\n canPrev: page > 1,\n canNext: page < totalPages,\n };\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type SortDirection = "asc" | "desc";
|
|
2
|
+
type ClientSortState<K extends string> = {
|
|
3
|
+
key: K;
|
|
4
|
+
direction: SortDirection;
|
|
5
|
+
};
|
|
6
|
+
type UseClientSortOptions<K extends string> = {
|
|
7
|
+
defaultSort: ClientSortState<K>;
|
|
8
|
+
resetDeps?: unknown[];
|
|
9
|
+
/** Per-column direction when activating a new column (defaults to asc). */
|
|
10
|
+
initialDirectionForKey?: Partial<Record<K, SortDirection>>;
|
|
11
|
+
};
|
|
12
|
+
type UseClientSortResult<K extends string> = {
|
|
13
|
+
sort: ClientSortState<K>;
|
|
14
|
+
setSort: (sort: ClientSortState<K>) => void;
|
|
15
|
+
toggleSort: (key: K) => void;
|
|
16
|
+
};
|
|
17
|
+
declare function useClientSort<K extends string>({ defaultSort, resetDeps, initialDirectionForKey, }: UseClientSortOptions<K>): UseClientSortResult<K>;
|
|
18
|
+
declare function sortBy<T, K extends string>(items: T[], sort: ClientSortState<K>, comparators: Record<K, (a: T, b: T) => number>): T[];
|
|
19
|
+
|
|
20
|
+
export { type ClientSortState, type SortDirection, type UseClientSortOptions, type UseClientSortResult, sortBy, useClientSort };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
// src/hooks/use-client-sort.ts
|
|
4
|
+
function useClientSort({
|
|
5
|
+
defaultSort,
|
|
6
|
+
resetDeps = [],
|
|
7
|
+
initialDirectionForKey
|
|
8
|
+
}) {
|
|
9
|
+
const [sort, setSort] = useState(defaultSort);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
setSort(defaultSort);
|
|
12
|
+
}, resetDeps);
|
|
13
|
+
const toggleSort = useCallback(
|
|
14
|
+
(key) => {
|
|
15
|
+
setSort((prev) => {
|
|
16
|
+
if (prev.key === key) {
|
|
17
|
+
return {
|
|
18
|
+
key,
|
|
19
|
+
direction: prev.direction === "asc" ? "desc" : "asc"
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
key,
|
|
24
|
+
direction: initialDirectionForKey?.[key] ?? "asc"
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
[initialDirectionForKey]
|
|
29
|
+
);
|
|
30
|
+
return { sort, setSort, toggleSort };
|
|
31
|
+
}
|
|
32
|
+
function sortBy(items, sort, comparators) {
|
|
33
|
+
const compare = comparators[sort.key];
|
|
34
|
+
if (!compare) return [...items];
|
|
35
|
+
const directionMultiplier = sort.direction === "asc" ? 1 : -1;
|
|
36
|
+
return [...items].sort((a, b) => compare(a, b) * directionMultiplier);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { sortBy, useClientSort };
|
|
40
|
+
//# sourceMappingURL=use-client-sort.js.map
|
|
41
|
+
//# sourceMappingURL=use-client-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-client-sort.ts"],"names":[],"mappings":";;;AAsBO,SAAS,aAAA,CAAgC;AAAA,EAC9C,WAAA;AAAA,EACA,YAAY,EAAC;AAAA,EACb;AACF,CAAA,EAAoD;AAClD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA6B,WAAW,CAAA;AAEhE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAA,CAAQ,WAAW,CAAA;AAAA,EAErB,GAAG,SAAS,CAAA;AAEZ,EAAA,MAAM,UAAA,GAAa,WAAA;AAAA,IACjB,CAAC,GAAA,KAAW;AACV,MAAA,OAAA,CAAQ,CAAC,IAAA,KAAS;AAChB,QAAA,IAAI,IAAA,CAAK,QAAQ,GAAA,EAAK;AACpB,UAAA,OAAO;AAAA,YACL,GAAA;AAAA,YACA,SAAA,EAAW,IAAA,CAAK,SAAA,KAAc,KAAA,GAAQ,MAAA,GAAS;AAAA,WACjD;AAAA,QACF;AACA,QAAA,OAAO;AAAA,UACL,GAAA;AAAA,UACA,SAAA,EAAW,sBAAA,GAAyB,GAAG,CAAA,IAAK;AAAA,SAC9C;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IACA,CAAC,sBAAsB;AAAA,GACzB;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,UAAA,EAAW;AACrC;AAEO,SAAS,MAAA,CACd,KAAA,EACA,IAAA,EACA,WAAA,EACK;AACL,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,IAAA,CAAK,GAAG,CAAA;AACpC,EAAA,IAAI,CAAC,OAAA,EAAS,OAAO,CAAC,GAAG,KAAK,CAAA;AAE9B,EAAA,MAAM,mBAAA,GAAsB,IAAA,CAAK,SAAA,KAAc,KAAA,GAAQ,CAAA,GAAI,EAAA;AAC3D,EAAA,OAAO,CAAC,GAAG,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA,GAAI,mBAAmB,CAAA;AACtE","file":"use-client-sort.js","sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\n\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport type ClientSortState<K extends string> = {\n key: K;\n direction: SortDirection;\n};\n\nexport type UseClientSortOptions<K extends string> = {\n defaultSort: ClientSortState<K>;\n resetDeps?: unknown[];\n /** Per-column direction when activating a new column (defaults to asc). */\n initialDirectionForKey?: Partial<Record<K, SortDirection>>;\n};\n\nexport type UseClientSortResult<K extends string> = {\n sort: ClientSortState<K>;\n setSort: (sort: ClientSortState<K>) => void;\n toggleSort: (key: K) => void;\n};\n\nexport function useClientSort<K extends string>({\n defaultSort,\n resetDeps = [],\n initialDirectionForKey,\n}: UseClientSortOptions<K>): UseClientSortResult<K> {\n const [sort, setSort] = useState<ClientSortState<K>>(defaultSort);\n\n useEffect(() => {\n setSort(defaultSort);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- resetDeps is caller-controlled\n }, resetDeps);\n\n const toggleSort = useCallback(\n (key: K) => {\n setSort((prev) => {\n if (prev.key === key) {\n return {\n key,\n direction: prev.direction === \"asc\" ? \"desc\" : \"asc\",\n };\n }\n return {\n key,\n direction: initialDirectionForKey?.[key] ?? \"asc\",\n };\n });\n },\n [initialDirectionForKey],\n );\n\n return { sort, setSort, toggleSort };\n}\n\nexport function sortBy<T, K extends string>(\n items: T[],\n sort: ClientSortState<K>,\n comparators: Record<K, (a: T, b: T) => number>,\n): T[] {\n const compare = comparators[sort.key];\n if (!compare) return [...items];\n\n const directionMultiplier = sort.direction === \"asc\" ? 1 : -1;\n return [...items].sort((a, b) => compare(a, b) * directionMultiplier);\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@spacesync/client",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Reusable SpaceSync React UI, shell, theme, and API client primitives.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=18"
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": [
|
|
16
|
+
"**/*.css"
|
|
17
|
+
],
|
|
18
|
+
"exports": {
|
|
19
|
+
"./api": {
|
|
20
|
+
"types": "./dist/api.d.ts",
|
|
21
|
+
"import": "./dist/api.js"
|
|
22
|
+
},
|
|
23
|
+
"./forms": {
|
|
24
|
+
"types": "./dist/forms.d.ts",
|
|
25
|
+
"import": "./dist/forms.js"
|
|
26
|
+
},
|
|
27
|
+
"./ui": {
|
|
28
|
+
"types": "./dist/ui.d.ts",
|
|
29
|
+
"import": "./dist/ui.js"
|
|
30
|
+
},
|
|
31
|
+
"./app-web-shell": {
|
|
32
|
+
"types": "./dist/app-web-shell.d.ts",
|
|
33
|
+
"import": "./dist/app-web-shell.js"
|
|
34
|
+
},
|
|
35
|
+
"./app-shell-mobile-nav": {
|
|
36
|
+
"types": "./dist/app-shell-mobile-nav.d.ts",
|
|
37
|
+
"import": "./dist/app-shell-mobile-nav.js"
|
|
38
|
+
},
|
|
39
|
+
"./app-modal": {
|
|
40
|
+
"types": "./dist/app-modal.d.ts",
|
|
41
|
+
"import": "./dist/app-modal.js"
|
|
42
|
+
},
|
|
43
|
+
"./page-list-chrome": {
|
|
44
|
+
"types": "./dist/page-list-chrome.d.ts",
|
|
45
|
+
"import": "./dist/page-list-chrome.js"
|
|
46
|
+
},
|
|
47
|
+
"./detail-page-header": {
|
|
48
|
+
"types": "./dist/detail-page-header.d.ts",
|
|
49
|
+
"import": "./dist/detail-page-header.js"
|
|
50
|
+
},
|
|
51
|
+
"./use-client-pagination": {
|
|
52
|
+
"types": "./dist/use-client-pagination.d.ts",
|
|
53
|
+
"import": "./dist/use-client-pagination.js"
|
|
54
|
+
},
|
|
55
|
+
"./use-client-sort": {
|
|
56
|
+
"types": "./dist/use-client-sort.d.ts",
|
|
57
|
+
"import": "./dist/use-client-sort.js"
|
|
58
|
+
},
|
|
59
|
+
"./shell-top-bar": {
|
|
60
|
+
"types": "./dist/shell-top-bar.d.ts",
|
|
61
|
+
"import": "./dist/shell-top-bar.js"
|
|
62
|
+
},
|
|
63
|
+
"./shell-sidebar-nav": {
|
|
64
|
+
"types": "./dist/shell-sidebar-nav.d.ts",
|
|
65
|
+
"import": "./dist/shell-sidebar-nav.js"
|
|
66
|
+
},
|
|
67
|
+
"./shell-top-bar-chrome": {
|
|
68
|
+
"types": "./dist/shell-top-bar-chrome.d.ts",
|
|
69
|
+
"import": "./dist/shell-top-bar-chrome.js"
|
|
70
|
+
},
|
|
71
|
+
"./notification-sidebar-preview": {
|
|
72
|
+
"types": "./dist/notification-sidebar-preview.d.ts",
|
|
73
|
+
"import": "./dist/notification-sidebar-preview.js"
|
|
74
|
+
},
|
|
75
|
+
"./lib/dateDisplay": {
|
|
76
|
+
"types": "./dist/lib/dateDisplay.d.ts",
|
|
77
|
+
"import": "./dist/lib/dateDisplay.js"
|
|
78
|
+
},
|
|
79
|
+
"./live-resource-meta": {
|
|
80
|
+
"types": "./dist/live-resource-meta.d.ts",
|
|
81
|
+
"import": "./dist/live-resource-meta.js"
|
|
82
|
+
},
|
|
83
|
+
"./live-space-pulse-dot": {
|
|
84
|
+
"types": "./dist/live-space-pulse-dot.d.ts",
|
|
85
|
+
"import": "./dist/live-space-pulse-dot.js"
|
|
86
|
+
},
|
|
87
|
+
"./support-presence-status": {
|
|
88
|
+
"types": "./dist/support-presence-status.d.ts",
|
|
89
|
+
"import": "./dist/support-presence-status.js"
|
|
90
|
+
},
|
|
91
|
+
"./layout-canvas-view": {
|
|
92
|
+
"types": "./dist/layout-canvas-view.d.ts",
|
|
93
|
+
"import": "./dist/layout-canvas-view.js"
|
|
94
|
+
},
|
|
95
|
+
"./floor-switcher": {
|
|
96
|
+
"types": "./dist/floor-switcher.d.ts",
|
|
97
|
+
"import": "./dist/floor-switcher.js"
|
|
98
|
+
},
|
|
99
|
+
"./file-viewer-dialog": {
|
|
100
|
+
"types": "./dist/file-viewer-dialog.d.ts",
|
|
101
|
+
"import": "./dist/file-viewer-dialog.js"
|
|
102
|
+
},
|
|
103
|
+
"./file-picker-field": {
|
|
104
|
+
"types": "./dist/file-picker-field.d.ts",
|
|
105
|
+
"import": "./dist/file-picker-field.js"
|
|
106
|
+
},
|
|
107
|
+
"./platform-support-message-composer": {
|
|
108
|
+
"types": "./dist/platform-support-message-composer.d.ts",
|
|
109
|
+
"import": "./dist/platform-support-message-composer.js"
|
|
110
|
+
},
|
|
111
|
+
"./chat-stick-to-bottom": {
|
|
112
|
+
"types": "./dist/chat-stick-to-bottom.d.ts",
|
|
113
|
+
"import": "./dist/chat-stick-to-bottom.js"
|
|
114
|
+
},
|
|
115
|
+
"./image-picker-field": {
|
|
116
|
+
"types": "./dist/image-picker-field.d.ts",
|
|
117
|
+
"import": "./dist/image-picker-field.js"
|
|
118
|
+
},
|
|
119
|
+
"./booking-schedule-calendars": {
|
|
120
|
+
"types": "./dist/booking-schedule-calendars.d.ts",
|
|
121
|
+
"import": "./dist/booking-schedule-calendars.js"
|
|
122
|
+
},
|
|
123
|
+
"./analog-clock-picker": {
|
|
124
|
+
"types": "./dist/analog-clock-picker.d.ts",
|
|
125
|
+
"import": "./dist/analog-clock-picker.js"
|
|
126
|
+
},
|
|
127
|
+
"./shell-theme": {
|
|
128
|
+
"types": "./dist/shell-theme.d.ts",
|
|
129
|
+
"import": "./dist/shell-theme.js"
|
|
130
|
+
},
|
|
131
|
+
"./theme-provider": {
|
|
132
|
+
"types": "./dist/theme-provider.d.ts",
|
|
133
|
+
"import": "./dist/theme-provider.js"
|
|
134
|
+
},
|
|
135
|
+
"./theme-appearance-control": {
|
|
136
|
+
"types": "./dist/theme-appearance-control.d.ts",
|
|
137
|
+
"import": "./dist/theme-appearance-control.js"
|
|
138
|
+
},
|
|
139
|
+
"./theme-boot-script": {
|
|
140
|
+
"types": "./dist/theme-boot-script.d.ts",
|
|
141
|
+
"import": "./dist/theme-boot-script.js"
|
|
142
|
+
},
|
|
143
|
+
"./styles/theme.css": "./dist/styles/theme.css"
|
|
144
|
+
},
|
|
145
|
+
"peerDependencies": {
|
|
146
|
+
"react": "^18.3.1",
|
|
147
|
+
"react-dom": "^18.3.1"
|
|
148
|
+
},
|
|
149
|
+
"dependencies": {
|
|
150
|
+
"@fontsource-variable/inter": "^5.2.8",
|
|
151
|
+
"@hookform/resolvers": "^5.4.0",
|
|
152
|
+
"@radix-ui/react-accordion": "1.2.3",
|
|
153
|
+
"@radix-ui/react-alert-dialog": "1.1.6",
|
|
154
|
+
"@radix-ui/react-aspect-ratio": "1.1.2",
|
|
155
|
+
"@radix-ui/react-avatar": "1.1.3",
|
|
156
|
+
"@radix-ui/react-checkbox": "1.1.4",
|
|
157
|
+
"@radix-ui/react-collapsible": "1.1.3",
|
|
158
|
+
"@radix-ui/react-context-menu": "2.2.6",
|
|
159
|
+
"@radix-ui/react-dialog": "1.1.6",
|
|
160
|
+
"@radix-ui/react-dropdown-menu": "2.1.6",
|
|
161
|
+
"@radix-ui/react-hover-card": "1.1.6",
|
|
162
|
+
"@radix-ui/react-label": "2.1.2",
|
|
163
|
+
"@radix-ui/react-menubar": "1.1.6",
|
|
164
|
+
"@radix-ui/react-navigation-menu": "1.2.5",
|
|
165
|
+
"@radix-ui/react-popover": "1.1.6",
|
|
166
|
+
"@radix-ui/react-progress": "1.1.2",
|
|
167
|
+
"@radix-ui/react-radio-group": "1.2.3",
|
|
168
|
+
"@radix-ui/react-scroll-area": "1.2.3",
|
|
169
|
+
"@radix-ui/react-select": "2.1.6",
|
|
170
|
+
"@radix-ui/react-separator": "1.1.2",
|
|
171
|
+
"@radix-ui/react-slider": "1.2.3",
|
|
172
|
+
"@radix-ui/react-slot": "1.1.2",
|
|
173
|
+
"@radix-ui/react-switch": "1.1.3",
|
|
174
|
+
"@radix-ui/react-tabs": "1.1.3",
|
|
175
|
+
"@radix-ui/react-toggle": "1.1.2",
|
|
176
|
+
"@radix-ui/react-toggle-group": "1.1.2",
|
|
177
|
+
"@radix-ui/react-tooltip": "1.1.8",
|
|
178
|
+
"axios": "^1.18.1",
|
|
179
|
+
"class-variance-authority": "0.7.1",
|
|
180
|
+
"clsx": "2.1.1",
|
|
181
|
+
"cmdk": "1.1.1",
|
|
182
|
+
"embla-carousel-react": "8.6.0",
|
|
183
|
+
"framer-motion": "^12.38.0",
|
|
184
|
+
"input-otp": "1.4.2",
|
|
185
|
+
"lucide-react": "0.487.0",
|
|
186
|
+
"next-themes": "0.4.6",
|
|
187
|
+
"react-day-picker": "8.10.1",
|
|
188
|
+
"react-hook-form": "7.55.0",
|
|
189
|
+
"react-resizable-panels": "2.1.7",
|
|
190
|
+
"recharts": "2.15.2",
|
|
191
|
+
"sonner": "2.0.3",
|
|
192
|
+
"tailwind-merge": "3.2.0",
|
|
193
|
+
"vaul": "1.1.2",
|
|
194
|
+
"zod": "^3.24.1"
|
|
195
|
+
},
|
|
196
|
+
"scripts": {
|
|
197
|
+
"build": "tsup",
|
|
198
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
199
|
+
"prepack": "pnpm build",
|
|
200
|
+
"prepublishOnly": "pnpm typecheck"
|
|
201
|
+
},
|
|
202
|
+
"devDependencies": {
|
|
203
|
+
"@types/react": "^18.3.28",
|
|
204
|
+
"@types/react-dom": "^18.3.7",
|
|
205
|
+
"tsup": "^8.5.1",
|
|
206
|
+
"typescript": "^6.0.3"
|
|
207
|
+
}
|
|
208
|
+
}
|