@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.
Files changed (100) hide show
  1. package/README.md +39 -0
  2. package/dist/analog-clock-picker.d.ts +10 -0
  3. package/dist/analog-clock-picker.js +408 -0
  4. package/dist/analog-clock-picker.js.map +1 -0
  5. package/dist/api.d.ts +222 -0
  6. package/dist/api.js +167 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/app-modal.d.ts +25 -0
  9. package/dist/app-modal.js +145 -0
  10. package/dist/app-modal.js.map +1 -0
  11. package/dist/app-shell-mobile-nav.d.ts +29 -0
  12. package/dist/app-shell-mobile-nav.js +122 -0
  13. package/dist/app-shell-mobile-nav.js.map +1 -0
  14. package/dist/app-web-shell.d.ts +20 -0
  15. package/dist/app-web-shell.js +45 -0
  16. package/dist/app-web-shell.js.map +1 -0
  17. package/dist/booking-schedule-calendars.d.ts +95 -0
  18. package/dist/booking-schedule-calendars.js +1343 -0
  19. package/dist/booking-schedule-calendars.js.map +1 -0
  20. package/dist/chat-stick-to-bottom.d.ts +22 -0
  21. package/dist/chat-stick-to-bottom.js +190 -0
  22. package/dist/chat-stick-to-bottom.js.map +1 -0
  23. package/dist/detail-page-header.d.ts +16 -0
  24. package/dist/detail-page-header.js +220 -0
  25. package/dist/detail-page-header.js.map +1 -0
  26. package/dist/dialog-CIdvylPK.d.ts +16 -0
  27. package/dist/errors-D1niseaa.d.ts +34 -0
  28. package/dist/file-picker-field.d.ts +23 -0
  29. package/dist/file-picker-field.js +165 -0
  30. package/dist/file-picker-field.js.map +1 -0
  31. package/dist/file-viewer-dialog.d.ts +15 -0
  32. package/dist/file-viewer-dialog.js +387 -0
  33. package/dist/file-viewer-dialog.js.map +1 -0
  34. package/dist/floor-switcher.d.ts +14 -0
  35. package/dist/floor-switcher.js +416 -0
  36. package/dist/floor-switcher.js.map +1 -0
  37. package/dist/forms.d.ts +52 -0
  38. package/dist/forms.js +66 -0
  39. package/dist/forms.js.map +1 -0
  40. package/dist/image-picker-field.d.ts +11 -0
  41. package/dist/image-picker-field.js +135 -0
  42. package/dist/image-picker-field.js.map +1 -0
  43. package/dist/layout-canvas-view.d.ts +57 -0
  44. package/dist/layout-canvas-view.js +974 -0
  45. package/dist/layout-canvas-view.js.map +1 -0
  46. package/dist/lib/dateDisplay.d.ts +24 -0
  47. package/dist/lib/dateDisplay.js +84 -0
  48. package/dist/lib/dateDisplay.js.map +1 -0
  49. package/dist/live-resource-meta.d.ts +11 -0
  50. package/dist/live-resource-meta.js +27 -0
  51. package/dist/live-resource-meta.js.map +1 -0
  52. package/dist/live-space-pulse-dot.d.ts +8 -0
  53. package/dist/live-space-pulse-dot.js +18 -0
  54. package/dist/live-space-pulse-dot.js.map +1 -0
  55. package/dist/notification-sidebar-preview.d.ts +37 -0
  56. package/dist/notification-sidebar-preview.js +121 -0
  57. package/dist/notification-sidebar-preview.js.map +1 -0
  58. package/dist/page-list-chrome.d.ts +124 -0
  59. package/dist/page-list-chrome.js +970 -0
  60. package/dist/page-list-chrome.js.map +1 -0
  61. package/dist/platform-support-message-composer.d.ts +38 -0
  62. package/dist/platform-support-message-composer.js +446 -0
  63. package/dist/platform-support-message-composer.js.map +1 -0
  64. package/dist/shell-sidebar-nav.d.ts +16 -0
  65. package/dist/shell-sidebar-nav.js +69 -0
  66. package/dist/shell-sidebar-nav.js.map +1 -0
  67. package/dist/shell-theme.d.ts +6 -0
  68. package/dist/shell-theme.js +9 -0
  69. package/dist/shell-theme.js.map +1 -0
  70. package/dist/shell-top-bar-chrome.d.ts +39 -0
  71. package/dist/shell-top-bar-chrome.js +105 -0
  72. package/dist/shell-top-bar-chrome.js.map +1 -0
  73. package/dist/shell-top-bar.d.ts +16 -0
  74. package/dist/shell-top-bar.js +71 -0
  75. package/dist/shell-top-bar.js.map +1 -0
  76. package/dist/styles/theme.css +223 -0
  77. package/dist/styles/theme.css.map +1 -0
  78. package/dist/styles/theme.d.ts +2 -0
  79. package/dist/support-presence-status.d.ts +11 -0
  80. package/dist/support-presence-status.js +92 -0
  81. package/dist/support-presence-status.js.map +1 -0
  82. package/dist/theme-appearance-control.d.ts +5 -0
  83. package/dist/theme-appearance-control.js +114 -0
  84. package/dist/theme-appearance-control.js.map +1 -0
  85. package/dist/theme-boot-script.d.ts +4 -0
  86. package/dist/theme-boot-script.js +9 -0
  87. package/dist/theme-boot-script.js.map +1 -0
  88. package/dist/theme-provider.d.ts +9 -0
  89. package/dist/theme-provider.js +25 -0
  90. package/dist/theme-provider.js.map +1 -0
  91. package/dist/ui.d.ts +765 -0
  92. package/dist/ui.js +5637 -0
  93. package/dist/ui.js.map +1 -0
  94. package/dist/use-client-pagination.d.ts +22 -0
  95. package/dist/use-client-pagination.js +51 -0
  96. package/dist/use-client-pagination.js.map +1 -0
  97. package/dist/use-client-sort.d.ts +20 -0
  98. package/dist/use-client-sort.js +41 -0
  99. package/dist/use-client-sort.js.map +1 -0
  100. 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
+ }