sea-react-components 1.3.33 → 1.3.35

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 (47) hide show
  1. package/dist/components/cards-list/index.d.ts.map +1 -1
  2. package/dist/components/cards-list/index.js +0 -1
  3. package/dist/components/list-item/index.d.ts +7 -4
  4. package/dist/components/list-item/index.d.ts.map +1 -1
  5. package/dist/components/list-item/index.js +12 -6
  6. package/dist/components/menu/index.d.ts +2 -1
  7. package/dist/components/menu/index.d.ts.map +1 -1
  8. package/dist/components/menu/index.js +1 -1
  9. package/dist/components/modal/index.d.ts.map +1 -1
  10. package/dist/components/modal/index.js +23 -0
  11. package/dist/components/select/SelectView.d.ts +2 -1
  12. package/dist/components/select/SelectView.d.ts.map +1 -1
  13. package/dist/components/select/SelectView.js +2 -2
  14. package/dist/components/select/index.d.ts +2 -1
  15. package/dist/components/select/index.d.ts.map +1 -1
  16. package/dist/components/select/index.js +2 -2
  17. package/dist/components/tab/index.d.ts +1 -0
  18. package/dist/components/tab/index.d.ts.map +1 -1
  19. package/dist/components/toaster/index.d.ts +11 -0
  20. package/dist/components/toaster/index.d.ts.map +1 -0
  21. package/dist/components/toaster/index.js +159 -0
  22. package/dist/components/toaster/toaster-actions/index.d.ts +5 -0
  23. package/dist/components/toaster/toaster-actions/index.d.ts.map +1 -0
  24. package/dist/components/toaster/toaster-actions/index.js +26 -0
  25. package/dist/components/toaster/toaster-card/index.d.ts +24 -0
  26. package/dist/components/toaster/toaster-card/index.d.ts.map +1 -0
  27. package/dist/components/toaster/toaster-card/index.js +56 -0
  28. package/dist/components/toaster/toaster-hook/index.d.ts +2 -0
  29. package/dist/components/toaster/toaster-hook/index.d.ts.map +1 -0
  30. package/dist/components/toaster/toaster-hook/index.js +5 -0
  31. package/dist/components/toaster/toaster-store/index.d.ts +23 -0
  32. package/dist/components/toaster/toaster-store/index.d.ts.map +1 -0
  33. package/dist/components/toaster/toaster-store/index.js +15 -0
  34. package/dist/hooks/use-translation/index.d.ts +179 -1
  35. package/dist/hooks/use-translation/index.d.ts.map +1 -1
  36. package/dist/hooks/use-translation/index.js +5 -1
  37. package/dist/index.d.ts +4 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4 -0
  40. package/dist/providers/socket-provider/index.d.ts +17 -0
  41. package/dist/providers/socket-provider/index.d.ts.map +1 -0
  42. package/dist/providers/socket-provider/index.js +60 -0
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/dist/utils/axios/index.d.ts +1 -0
  45. package/dist/utils/axios/index.d.ts.map +1 -1
  46. package/dist/utils/axios/index.js +6 -1
  47. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/cards-list/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,eAAO,MAAM,wCAAwC;;;GAKpD,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,CAAC,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAClE,OAAO,CAAC,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,EAAE,EACnC,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,OAGC,EACD,OAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,2CAuCV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/cards-list/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,eAAO,MAAM,wCAAwC;;;GAKpD,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,GAAG,CAAC,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAClE,OAAO,CAAC,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,EAAE,EACnC,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,OAGC,EACD,OAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,2CAsCV"}
@@ -11,7 +11,6 @@ export default function CardsList({ CardComponent, rows, bulkActionFeature, clas
11
11
  containerClasses: "grid grid-cols-4 gap-2 md:gap-4",
12
12
  cardClasses: "col-span-4 md:col-span-2 col-span-1",
13
13
  }, loading = false, }) {
14
- console.log({ rows });
15
14
  return (_jsx("div", { children: loading ? (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Loader, {}) })) : (_jsx("div", { className: clsx(classes.containerClasses), children: rows.map((row) => (_jsxs("div", { className: clsx(classes.cardClasses), children: [bulkActionFeature && (_jsx(Checkbox, { checked: bulkActionFeature.selectedRowIds.length === rows.length, onChange: (checked) => {
16
15
  if (checked) {
17
16
  bulkActionFeature.setSelectedRowIds(rows.map((r) => r.id));
@@ -1,8 +1,11 @@
1
1
  import React from "react";
2
2
  import { SelectOption } from "../select";
3
3
  import { BulkActionFeature, Filter } from "../../hooks/list-items-hook/types";
4
- declare const DEFAULT_LOCALIZATIONS: {
5
- "rows-per-page": string;
4
+ type ListItemLocalization = {
5
+ searchPlaceholder: (name: string) => string;
6
+ allLabel: string;
7
+ noItemsFound: (itemName: string) => string;
8
+ rowsPerPage: string;
6
9
  };
7
10
  export type Props<K> = {
8
11
  title?: string;
@@ -26,8 +29,8 @@ export type Props<K> = {
26
29
  children?: React.ReactNode;
27
30
  headerComponent?: React.ReactNode;
28
31
  itemName?: string;
29
- localization?: Record<keyof typeof DEFAULT_LOCALIZATIONS, string>;
32
+ localizations?: ListItemLocalization;
30
33
  };
31
- export default function ListItem<K>({ title, name, filters, totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime, bulkActionFeature, loading, showPaginationRow, showFiltersRow, headerComponent, children, itemName, localization, }: Props<K>): import("react/jsx-runtime").JSX.Element;
34
+ export default function ListItem<K>({ title, name, filters, totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime, bulkActionFeature, loading, showPaginationRow, showFiltersRow, headerComponent, children, itemName, localizations, }: Props<K>): import("react/jsx-runtime").JSX.Element;
32
35
  export {};
33
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/list-item/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,EACL,iBAAiB,EACjB,MAAM,EAEP,MAAM,mCAAmC,CAAC;AAM3C,QAAA,MAAM,qBAAqB;;CAE1B,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,OAAO,qBAAqB,EAAE,MAAM,CAAC,CAAC;CACnE,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAE,EAClC,KAAK,EACL,IAAI,EACJ,OAAY,EACZ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,kBAAwB,EACxB,iBAA6B,EAC7B,OAAe,EACf,iBAAwB,EACxB,cAAqB,EACrB,eAAe,EACf,QAAQ,EACR,QAAiB,EACjB,YAAoC,GACrC,EAAE,KAAK,CAAC,CAAC,CAAC,2CAkHV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/list-item/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,EACL,iBAAiB,EACjB,MAAM,EAEP,MAAM,mCAAmC,CAAC;AAM3C,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AASF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAE,EAClC,KAAK,EACL,IAAI,EACJ,OAAY,EACZ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,kBAAwB,EACxB,iBAA6B,EAC7B,OAAe,EACf,iBAAwB,EACxB,cAAqB,EACrB,eAAe,EACf,QAAQ,EACR,QAAiB,EACjB,aAAoC,GACrC,EAAE,KAAK,CAAC,CAAC,CAAC,2CAuHV"}
@@ -10,17 +10,23 @@ import { useFilters } from "../..//hooks/list-items-hook/useFilters";
10
10
  import { usePagination } from "../../hooks/list-items-hook/usePagination";
11
11
  import { useBulkActions } from "../../hooks/list-items-hook/useBulkActions";
12
12
  import Loader from "../loader";
13
- const DEFAULT_LOCALIZATIONS = {
14
- "rows-per-page": "Rows Per Page",
13
+ const DEFAULT_LOCALIZATION = {
14
+ searchPlaceholder: (name) => `Search about ${name}`,
15
+ allLabel: "All",
16
+ noItemsFound: (itemName) => `No ${itemName} found!`,
17
+ rowsPerPage: "Rows per page",
15
18
  };
16
- export default function ListItem({ title, name, filters = [], totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime = 500, bulkActionFeature = undefined, loading = false, showPaginationRow = true, showFiltersRow = true, headerComponent, children, itemName = "Item", localization = DEFAULT_LOCALIZATIONS, }) {
19
+ export default function ListItem({ title, name, filters = [], totalPages, query, setQuery, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam, rowsPerPageOptions, QueryDebouncedTime = 500, bulkActionFeature = undefined, loading = false, showPaginationRow = true, showFiltersRow = true, headerComponent, children, itemName = "Item", localizations = DEFAULT_LOCALIZATION, }) {
17
20
  useFilters(name, filters, updateParams, getParam);
18
21
  usePagination(name, page, setPage, rowsPerPage, setRowsPerPage, updateParams, getParam);
19
22
  useBulkActions(bulkActionFeature, filters, query);
20
23
  return (_jsxs("div", { className: "flex flex-col gap-5", children: [title && (_jsx("h3", { className: "text-2xl font-semibold text-primary", children: title })), (showFiltersRow || bulkActionFeature) && (_jsxs("div", { className: clsx("flex items-center flex-wrap", showFiltersRow && bulkActionFeature
21
24
  ? "justify-between"
22
- : "justify-end"), children: [showFiltersRow && (_jsxs("div", { className: "flex items-end gap-2 flex-wrap", children: [_jsx(SearchInput, { placeholder: `search about ${name}`, value: query, onDebouncedChange: setQuery, QueryDebouncedTime: QueryDebouncedTime }), filters.map((f, i) => (_jsxs("div", { className: "flex flex-col gap-1", children: [f.label && (_jsx("p", { className: "text-text font-semibold", children: f.label })), _jsx(Select, { name: `table-${name}-filter-${f.label}-${i}`, values: [f.value], setValues: (newValues) => f.setValue(newValues[0]), options: [
23
- { label: "All", value: DEFAULT_FILTER_VALUE },
25
+ : "justify-end"), children: [showFiltersRow && (_jsxs("div", { className: "flex items-end gap-2 flex-wrap", children: [_jsx(SearchInput, { placeholder: localizations.searchPlaceholder(name), value: query, onDebouncedChange: setQuery, QueryDebouncedTime: QueryDebouncedTime }), filters.map((f, i) => (_jsxs("div", { className: "flex flex-col gap-1", children: [f.label && (_jsx("p", { className: "text-text font-semibold", children: f.label })), _jsx(Select, { name: `table-${name}-filter-${f.label}-${i}`, values: [f.value], setValues: (newValues) => f.setValue(newValues[0]), options: [
26
+ {
27
+ label: localizations.allLabel,
28
+ value: DEFAULT_FILTER_VALUE,
29
+ },
24
30
  ...f.options,
25
- ], placeholder: f.label })] }, `table-${name}-filter-${f.label}-${i}`)))] })), bulkActionFeature && (_jsx("div", { className: "flex items-center gap-2 justify-end w-full md:w-fit", children: bulkActionFeature.bulkActions.map((a, i) => (_jsx(Button, { ...a, disabled: bulkActionFeature.selectedRowIds.length === 0 }, `table-${name}-bulk-action-${i}`))) })), headerComponent] })), _jsx("div", { className: "overflow-x-auto", children: loading ? (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Loader, {}) })) : (_jsx(_Fragment, { children: totalPages > 0 ? (_jsx(_Fragment, { children: children })) : (_jsxs("p", { className: "text-center text-text", children: ["No ", itemName, " found!"] })) })) }), showPaginationRow && (_jsxs("div", { className: "flex items-center justify-end gap-2 md:gap-4 mt-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("p", { className: "text-text text-sm", children: localization["rows-per-page"] }), _jsx(Select, { name: `${name}-select`, values: [rowsPerPage], setValues: (newValues) => setRowsPerPage(newValues[0]), options: rowsPerPageOptions })] }), totalPages >= 1 && (_jsx(Pagination, { name: name, page: page, setPage: setPage, totalPages: totalPages }))] }))] }));
31
+ ], placeholder: f.label })] }, `table-${name}-filter-${f.label}-${i}`)))] })), bulkActionFeature && (_jsx("div", { className: "flex items-center gap-2 justify-end w-full md:w-fit", children: bulkActionFeature.bulkActions.map((a, i) => (_jsx(Button, { ...a, disabled: bulkActionFeature.selectedRowIds.length === 0 }, `table-${name}-bulk-action-${i}`))) })), headerComponent] })), _jsx("div", { className: "overflow-x-auto", children: loading ? (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Loader, {}) })) : (_jsx(_Fragment, { children: totalPages > 0 ? (_jsx(_Fragment, { children: children })) : (_jsx("p", { className: "text-center text-text", children: localizations.noItemsFound(itemName) })) })) }), showPaginationRow && (_jsxs("div", { className: "flex items-center justify-end gap-2 md:gap-4 mt-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("p", { className: "text-text text-sm", children: localizations.rowsPerPage }), _jsx(Select, { name: `${name}-select`, values: [rowsPerPage], setValues: (newValues) => setRowsPerPage(newValues[0]), options: rowsPerPageOptions })] }), totalPages >= 1 && (_jsx(Pagination, { name: name, page: page, setPage: setPage, totalPages: totalPages }))] }))] }));
26
32
  }
@@ -1,7 +1,8 @@
1
1
  import React from "react";
2
- import { MenuProps } from "@szhsin/react-menu";
2
+ import { MenuProps, MenuInstance } from "@szhsin/react-menu";
3
3
  import "@szhsin/react-menu/dist/index.css";
4
4
  import "@szhsin/react-menu/dist/transitions/zoom.css";
5
+ export { MenuInstance };
5
6
  export type Props = {
6
7
  menuButton: React.ReactNode;
7
8
  children: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/menu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA6B,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8CAA8C,CAAC;AAEtD,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,SAAS,CAAC;AACd,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,2CAUP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/menu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAGL,SAAS,EACT,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,SAAS,CAAC;AACd,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,2CAUP"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { Menu as SMenu, MenuButton } from "@szhsin/react-menu";
3
+ import { Menu as SMenu, MenuButton, } from "@szhsin/react-menu";
4
4
  import clsx from "clsx";
5
5
  import "@szhsin/react-menu/dist/index.css";
6
6
  import "@szhsin/react-menu/dist/transitions/zoom.css";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,KAAK,GACL,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBlD,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAmB,EACnB,IAAW,EACX,iBAAsB,EACtB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,2CA4EP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,KAAK,GACL,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBlD,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAmB,EACnB,IAAW,EACX,iBAAsB,EACtB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,2CAsGP"}
@@ -36,6 +36,29 @@ export default function Modal({ isOpen, onClose, children, position = "center",
36
36
  return () => clearTimeout(timeout);
37
37
  }
38
38
  }, [isOpen]);
39
+ useEffect(() => {
40
+ if (animate) {
41
+ // or isOpen if you have that prop
42
+ // Store the current scroll position
43
+ const scrollY = window.scrollY;
44
+ // Prevent scrolling on body
45
+ document.body.style.position = "fixed";
46
+ document.body.style.top = `-${scrollY}px`;
47
+ document.body.style.left = "0";
48
+ document.body.style.right = "0";
49
+ document.body.style.overflow = "hidden";
50
+ return () => {
51
+ // Restore scrolling when modal closes
52
+ const scrollY = document.body.style.top;
53
+ document.body.style.position = "";
54
+ document.body.style.top = "";
55
+ document.body.style.left = "";
56
+ document.body.style.right = "";
57
+ document.body.style.overflow = "";
58
+ window.scrollTo(0, parseInt(scrollY || "0") * -1);
59
+ };
60
+ }
61
+ }, [animate]);
39
62
  if (!show)
40
63
  return null;
41
64
  return (_jsx("div", { className: clsx(`fixed inset-0 bg-black z-50 overflow-auto`, `transition-opacity duration-300`, animate ? "opacity-100" : "opacity-0 pointer-events-none"), style: {
@@ -28,6 +28,7 @@ export type SelectViewProps<T> = {
28
28
  filteredOptions: SelectOption<T>[];
29
29
  onOptionClick: (o: SelectOption<T>) => void;
30
30
  desiredMax: number;
31
+ className?: string;
31
32
  };
32
- export default function SelectView<T>({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, }: SelectViewProps<T>): import("react/jsx-runtime").JSX.Element;
33
+ export default function SelectView<T>({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, className, }: SelectViewProps<T>): import("react/jsx-runtime").JSX.Element;
33
34
  //# sourceMappingURL=SelectView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectView.d.ts","sourceRoot":"","sources":["../../../src/components/select/SelectView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAO3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAGhC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAGzC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAGvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,EACpC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,GACX,EAAE,eAAe,CAAC,CAAC,CAAC,2CA2FpB"}
1
+ {"version":3,"file":"SelectView.d.ts","sourceRoot":"","sources":["../../../src/components/select/SelectView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAO3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAGhC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAGzC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAGvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,EACpC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,2CA2FpB"}
@@ -6,10 +6,10 @@ import SelectControl from "./SelectControl";
6
6
  import SelectPlaceHolder from "./SelectPlaceholder";
7
7
  import SelectChips from "./SelectChips";
8
8
  import SelectDropdownContent from "./SelectDropdownContent";
9
- export default function SelectView({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, }) {
9
+ export default function SelectView({ label, required, errorMessage, containerRef, menuRef, disabled, isOpen, buttonClassName, onToggle, multiselect, selectedOptions, placeholder, IconPlaceholderLeft, onClear, name, show, usePortal, dropdownClassName, animate, menuPos, isSearchable, search, onChangeSearchInput, filteredOptions, onOptionClick, desiredMax, className, }) {
10
10
  const leftContent = multiselect ? (selectedOptions.length ? (_jsx(SelectChips, { name: name, selectedOptions: selectedOptions, disabled: disabled, onRemove: (o) => onOptionClick(o) })) : (_jsx(SelectPlaceHolder, { placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft }))) : selectedOptions[0] ? (_jsx("div", { className: "text-text truncate line-clamp-1", children: selectedOptions[0].label })) : (_jsx(SelectPlaceHolder, { placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft }));
11
11
  const dropdownEl = (_jsx(SelectDropdownContent, { ref: menuRef, usePortal: usePortal, dropdownClassName: dropdownClassName, animate: animate, menuPos: menuPos, isSearchable: isSearchable, search: search, onChangeSearchInput: onChangeSearchInput, filteredOptions: filteredOptions, selectedOptions: selectedOptions, name: name, onOptionClick: onOptionClick, onStopClick: (e) => e.stopPropagation() }));
12
- return (_jsxs("div", { className: "flex flex-col gap-1", children: [label && (_jsxs("label", { htmlFor: name, className: "pl-1 text-sm text-foreground font-medium mb-2", children: [label, " ", required && _jsx("span", { className: "font-bold", children: "*" })] })), _jsxs("div", { ref: containerRef, className: "relative w-full", children: [_jsx(SelectControl, { disabled: disabled, errorMessage: errorMessage, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: onToggle, leftContent: leftContent, showClear: !disabled &&
12
+ return (_jsxs("div", { className: clsx("flex flex-col gap-1", className), children: [label && (_jsxs("label", { htmlFor: name, className: "pl-1 text-sm text-foreground font-medium mb-2", children: [label, " ", required && _jsx("span", { className: "font-bold", children: "*" })] })), _jsxs("div", { ref: containerRef, className: "relative w-full", children: [_jsx(SelectControl, { disabled: disabled, errorMessage: errorMessage, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: onToggle, leftContent: leftContent, showClear: !disabled &&
13
13
  (multiselect ? selectedOptions.length > 0 : !!selectedOptions[0]), onClear: onClear }), show &&
14
14
  !disabled &&
15
15
  (usePortal ? (createPortal(dropdownEl, document.body)) : (_jsx("div", { className: clsx("absolute left-0 mt-1 z-50 max-w-[360px] min-w-[260px] w-full"), style: { maxHeight: desiredMax }, children: dropdownEl })))] }), errorMessage && (_jsx("p", { className: "pl-1 text-sm text-error", children: errorMessage }))] }));
@@ -8,6 +8,7 @@ export type Props<T> = {
8
8
  setValues: (newValues: T[]) => void;
9
9
  errorMessage?: string | boolean;
10
10
  buttonClassName?: string;
11
+ className?: string;
11
12
  placeholder?: string;
12
13
  IconPlaceholderLeft?: React.ReactNode;
13
14
  multiselect?: boolean;
@@ -23,5 +24,5 @@ export type Props<T> = {
23
24
  usePortal?: boolean;
24
25
  dropdownClassName?: string;
25
26
  };
26
- export default function Select<T>({ name, options, values, setValues, errorMessage, buttonClassName, placeholder, multiselect, disabled, label, isSearchable, required, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout, isRemote, usePortal, dropdownClassName, excludeIds, }: Props<T>): import("react/jsx-runtime").JSX.Element;
27
+ export default function Select<T>({ name, options, values, setValues, errorMessage, buttonClassName, className, placeholder, multiselect, disabled, label, isSearchable, required, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout, isRemote, usePortal, dropdownClassName, excludeIds, }: Props<T>): import("react/jsx-runtime").JSX.Element;
27
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAEpC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,EAAE,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAyB,EACzB,WAAmB,EACnB,QAAgB,EAChB,KAAK,EACL,YAAoB,EACpB,QAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,qBAA2B,EAC3B,QAAgB,EAChB,SAAgB,EAChB,iBAAiB,EACjB,UAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,2CAsIV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAEpC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,EAAE,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,WAAyB,EACzB,WAAmB,EACnB,QAAgB,EAChB,KAAK,EACL,YAAoB,EACpB,QAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,qBAA2B,EAC3B,QAAgB,EAChB,SAAgB,EAChB,iBAAiB,EACjB,UAAe,GAChB,EAAE,KAAK,CAAC,CAAC,CAAC,2CAuIV"}
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useState, useRef, useEffect, useMemo, } from "react";
4
4
  import { useSelectPortal } from "./useSelectPortal";
5
5
  import SelectView from "./SelectView";
6
- export default function Select({ name, options, values, setValues, errorMessage, buttonClassName, placeholder = "Select...", multiselect = false, disabled = false, label, isSearchable = false, required = false, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout = 500, isRemote = false, usePortal = true, dropdownClassName, excludeIds = [], }) {
6
+ export default function Select({ name, options, values, setValues, errorMessage, buttonClassName, className, placeholder = "Select...", multiselect = false, disabled = false, label, isSearchable = false, required = false, IconPlaceholderLeft, onChangeSearchInput, onRemove, searchDebounceTimeout = 500, isRemote = false, usePortal = true, dropdownClassName, excludeIds = [], }) {
7
7
  const [isOpen, setIsOpen] = useState(false);
8
8
  const [search, setSearch] = useState("");
9
9
  const [selectedCache, setSelectedCache] = useState([]);
@@ -81,7 +81,7 @@ export default function Select({ name, options, values, setValues, errorMessage,
81
81
  document.addEventListener("mousedown", onDocMouseDown);
82
82
  return () => document.removeEventListener("mousedown", onDocMouseDown);
83
83
  }, []);
84
- return (_jsx(SelectView, { label: label, required: required, errorMessage: errorMessage, containerRef: containerRef, menuRef: menuRef, disabled: disabled, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: () => setIsOpen((o) => !o), multiselect: multiselect, selectedOptions: selectedOptions, placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft, onClear: handleClear, name: name, show: show, usePortal: usePortal, dropdownClassName: dropdownClassName, animate: animate, menuPos: menuPos, isSearchable: isSearchable, search: search, onChangeSearchInput: handleSearchInputChange, filteredOptions: filteredOptions, onOptionClick: (o) => {
84
+ return (_jsx(SelectView, { className: className, label: label, required: required, errorMessage: errorMessage, containerRef: containerRef, menuRef: menuRef, disabled: disabled, isOpen: isOpen, buttonClassName: buttonClassName, onToggle: () => setIsOpen((o) => !o), multiselect: multiselect, selectedOptions: selectedOptions, placeholder: placeholder, IconPlaceholderLeft: IconPlaceholderLeft, onClear: handleClear, name: name, show: show, usePortal: usePortal, dropdownClassName: dropdownClassName, animate: animate, menuPos: menuPos, isSearchable: isSearchable, search: search, onChangeSearchInput: handleSearchInputChange, filteredOptions: filteredOptions, onOptionClick: (o) => {
85
85
  setSearch("");
86
86
  toggleOption(o);
87
87
  }, desiredMax: desiredMax }));
@@ -2,6 +2,7 @@ export type TabItem<T> = {
2
2
  label: string | ((item: TabItem<T>, isActive: boolean) => React.ReactNode);
3
3
  key: T;
4
4
  isDisabled?: boolean;
5
+ icon?: string;
5
6
  };
6
7
  export type Props<T> = {
7
8
  /** Unique parameter name for query sync */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tab/index.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnB,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAC;IAEV,+BAA+B;IAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IAElC,sCAAsC;IACtC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEvD,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC;QACV,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KACvE,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAC5C,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,CAAC,CAAC,CAAC,2CAmDV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tab/index.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnB,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAC;IAEV,+BAA+B;IAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IAElC,sCAAsC;IACtC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEvD,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC;QACV,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KACvE,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAC5C,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,CAAC,CAAC,CAAC,2CAmDV"}
@@ -0,0 +1,11 @@
1
+ import type { ToastPosition, ToastSize } from "./toaster-store";
2
+ type ToasterProps = {
3
+ timeout?: number;
4
+ position?: ToastPosition;
5
+ size?: ToastSize;
6
+ className?: string;
7
+ showIcon?: boolean;
8
+ };
9
+ export default function Toaster({ timeout, position, size, className, showIcon, }: ToasterProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toaster/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,aAAa,EACb,SAAS,EAEV,MAAM,iBAAiB,CAAC;AAGzB,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,OAAc,EACd,QAAsB,EACtB,IAAW,EACX,SAAS,EACT,QAAe,GAChB,EAAE,YAAY,2CA6Ld"}
@@ -0,0 +1,159 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from "react";
3
+ import { removeToast } from "./toaster-actions";
4
+ import ToastCard from "./toaster-card";
5
+ import { useStore } from "./toaster-hook";
6
+ import { colors as toastColors, icons as toastIcons } from "./toaster-card";
7
+ const POSITION_CLASSES = {
8
+ "top-left": "top-4 left-4 items-start",
9
+ "top-right": "top-4 right-4 items-end",
10
+ "bottom-left": "bottom-4 left-4 items-start",
11
+ "bottom-right": "bottom-4 right-4 items-end",
12
+ };
13
+ const SIZE_CLASSES = {
14
+ sm: "text-sm",
15
+ md: "text-base",
16
+ lg: "text-lg",
17
+ };
18
+ export default function Toaster({ timeout = 5000, position = "top-right", size = "sm", className, showIcon = true, }) {
19
+ const toasts = useStore((state) => state.toasts);
20
+ const timersRef = useRef(new Map());
21
+ const closeTimersRef = useRef(new Map());
22
+ const nodesRef = useRef(new Map());
23
+ const positionsRef = useRef(new Map());
24
+ const [closingIds, setClosingIds] = useState(new Set());
25
+ const exitDuration = 200;
26
+ const layoutDuration = 200;
27
+ const requestClose = useCallback((id) => {
28
+ setClosingIds((prev) => {
29
+ if (prev.has(id)) {
30
+ return prev;
31
+ }
32
+ const next = new Set(prev);
33
+ next.add(id);
34
+ return next;
35
+ });
36
+ if (closeTimersRef.current.has(id)) {
37
+ return;
38
+ }
39
+ const timer = setTimeout(() => {
40
+ removeToast(id);
41
+ setClosingIds((prev) => {
42
+ const next = new Set(prev);
43
+ next.delete(id);
44
+ return next;
45
+ });
46
+ closeTimersRef.current.delete(id);
47
+ }, exitDuration);
48
+ closeTimersRef.current.set(id, timer);
49
+ }, [exitDuration]);
50
+ useEffect(() => {
51
+ const timers = timersRef.current;
52
+ toasts.forEach((toast) => {
53
+ var _a;
54
+ const toastTimeout = (_a = toast.timeout) !== null && _a !== void 0 ? _a : timeout;
55
+ if (toastTimeout <= 0) {
56
+ return;
57
+ }
58
+ if (!timers.has(toast.id)) {
59
+ const timer = setTimeout(() => requestClose(toast.id), toastTimeout);
60
+ timers.set(toast.id, timer);
61
+ }
62
+ });
63
+ for (const [id, timer] of timers.entries()) {
64
+ if (!toasts.some((toast) => toast.id === id)) {
65
+ clearTimeout(timer);
66
+ timers.delete(id);
67
+ }
68
+ }
69
+ if (closingIds.size > 0) {
70
+ const toastIds = new Set(toasts.map((toast) => toast.id));
71
+ setClosingIds((prev) => {
72
+ if ([...prev].every((id) => toastIds.has(id))) {
73
+ return prev;
74
+ }
75
+ return new Set([...prev].filter((id) => toastIds.has(id)));
76
+ });
77
+ for (const [id, timer] of closeTimersRef.current.entries()) {
78
+ if (!toastIds.has(id)) {
79
+ clearTimeout(timer);
80
+ closeTimersRef.current.delete(id);
81
+ }
82
+ }
83
+ }
84
+ }, [toasts, timeout, requestClose, closingIds.size]);
85
+ useEffect(() => {
86
+ const timers = timersRef.current;
87
+ return () => {
88
+ for (const timer of timers.values()) {
89
+ clearTimeout(timer);
90
+ }
91
+ timers.clear();
92
+ for (const timer of closeTimersRef.current.values()) {
93
+ clearTimeout(timer);
94
+ }
95
+ closeTimersRef.current.clear();
96
+ };
97
+ }, []);
98
+ useLayoutEffect(() => {
99
+ const nextPositions = new Map();
100
+ toasts.forEach((toast) => {
101
+ const node = nodesRef.current.get(toast.id);
102
+ if (node) {
103
+ nextPositions.set(toast.id, node.getBoundingClientRect());
104
+ }
105
+ });
106
+ nextPositions.forEach((nextRect, id) => {
107
+ const prevRect = positionsRef.current.get(id);
108
+ if (!prevRect) {
109
+ return;
110
+ }
111
+ const deltaX = prevRect.left - nextRect.left;
112
+ const deltaY = prevRect.top - nextRect.top;
113
+ if (deltaX === 0 && deltaY === 0) {
114
+ return;
115
+ }
116
+ const node = nodesRef.current.get(id);
117
+ if (!node) {
118
+ return;
119
+ }
120
+ node.style.transition = "transform 0ms";
121
+ node.style.transform = `translate(${deltaX}px, ${deltaY}px)`;
122
+ node.getBoundingClientRect();
123
+ node.style.transition = `transform ${layoutDuration}ms ease`;
124
+ node.style.transform = "translate(0px, 0px)";
125
+ const handleTransitionEnd = (event) => {
126
+ if (event.propertyName !== "transform") {
127
+ return;
128
+ }
129
+ node.style.transition = "";
130
+ node.removeEventListener("transitionend", handleTransitionEnd);
131
+ };
132
+ node.addEventListener("transitionend", handleTransitionEnd);
133
+ });
134
+ positionsRef.current = nextPositions;
135
+ }, [toasts, layoutDuration]);
136
+ const positionClasses = POSITION_CLASSES[position];
137
+ const containerClassName = useMemo(() => {
138
+ const base = "fixed z-50 flex w-full max-w-sm flex-col gap-3 pointer-events-none";
139
+ return className
140
+ ? `${base} ${positionClasses} ${className}`
141
+ : `${base} ${positionClasses}`;
142
+ }, [className, positionClasses]);
143
+ const enterOffset = position.startsWith("bottom") ? 12 : -12;
144
+ return (_jsx("div", { className: containerClassName, children: toasts.map((toast) => {
145
+ var _a, _b;
146
+ const toastSize = (_a = toast.size) !== null && _a !== void 0 ? _a : size;
147
+ const toastType = (_b = toast.type) !== null && _b !== void 0 ? _b : "primary";
148
+ const color = toastColors[toastType];
149
+ const icon = toastIcons[toastType];
150
+ return (_jsx("div", { ref: (node) => {
151
+ if (node) {
152
+ nodesRef.current.set(toast.id, node);
153
+ }
154
+ else {
155
+ nodesRef.current.delete(toast.id);
156
+ }
157
+ }, children: _jsx(ToastCard, { toast: toast, sizeClass: SIZE_CLASSES[toastSize], type: toastType, color: color, icon: icon, enterOffset: enterOffset, onClose: requestClose, showIcon: showIcon, isClosing: closingIds.has(toast.id) }) }, toast.id));
158
+ }) }));
159
+ }
@@ -0,0 +1,5 @@
1
+ import { type ToastInput } from "../toaster-store";
2
+ export declare const pushToast: (input: ToastInput) => string;
3
+ export declare const removeToast: (id: string) => void;
4
+ export declare const clearToasts: () => void;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,SAAS,GAAI,OAAO,UAAU,KAAG,MAiB7C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,IAKxC,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,IAE9B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { toasterStore, } from "../toaster-store";
2
+ const createToastId = () => `toast_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
3
+ export const pushToast = (input) => {
4
+ const { toasts } = toasterStore.getState();
5
+ if (toasts.some((toast) => toast.message === input.message)) {
6
+ return "";
7
+ }
8
+ const toast = {
9
+ id: createToastId(),
10
+ createdAt: Date.now(),
11
+ ...input,
12
+ };
13
+ toasterStore.setState({
14
+ toasts: [...toasts, toast],
15
+ });
16
+ return toast.id;
17
+ };
18
+ export const removeToast = (id) => {
19
+ const { toasts } = toasterStore.getState();
20
+ toasterStore.setState({
21
+ toasts: toasts.filter((toast) => toast.id !== id),
22
+ });
23
+ };
24
+ export const clearToasts = () => {
25
+ toasterStore.setState({ toasts: [] });
26
+ };
@@ -0,0 +1,24 @@
1
+ import type { ToastItem, Types } from "../toaster-store";
2
+ type ToastCardProps = {
3
+ toast: ToastItem;
4
+ sizeClass: string;
5
+ type: Types;
6
+ color: {
7
+ bg: string;
8
+ text: string;
9
+ };
10
+ icon: string;
11
+ enterOffset: number;
12
+ onClose: (id: string) => void;
13
+ showIcon: boolean;
14
+ theme?: "default";
15
+ isClosing: boolean;
16
+ };
17
+ export declare const colors: Record<Types, {
18
+ bg: string;
19
+ text: string;
20
+ }>;
21
+ export declare const icons: Record<Types, string>;
22
+ export default function ToastCard({ toast, sizeClass, type, icon, enterOffset, onClose, showIcon, theme, isClosing, }: ToastCardProps): import("react/jsx-runtime").JSX.Element;
23
+ export {};
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-card/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CACzB,KAAK,EACL;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CA0BF,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAOvC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,cAAc,2CAmDhB"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Icon from "../../icon";
3
+ import clsx from "clsx";
4
+ import { useEffect, useState } from "react";
5
+ export const colors = {
6
+ primary: {
7
+ bg: "bg-primary",
8
+ text: "text-white",
9
+ },
10
+ secondary: {
11
+ bg: "bg-secondary",
12
+ text: "text-secondary",
13
+ },
14
+ success: {
15
+ bg: "bg-success",
16
+ text: "text-success",
17
+ },
18
+ info: {
19
+ bg: "bg-info",
20
+ text: "text-info",
21
+ },
22
+ warning: {
23
+ bg: "bg-warning",
24
+ text: "text-warning",
25
+ },
26
+ error: {
27
+ bg: "bg-error",
28
+ text: "text-error",
29
+ },
30
+ };
31
+ export const icons = {
32
+ primary: "gg:info",
33
+ secondary: "gg:info",
34
+ success: "qlementine-icons:success-16",
35
+ info: "gg:info",
36
+ warning: "mi:warning",
37
+ error: "material-symbols:error-outline",
38
+ };
39
+ export default function ToastCard({ toast, sizeClass, type, icon, enterOffset, onClose, showIcon, theme, isClosing, }) {
40
+ const [mounted, setMounted] = useState(false);
41
+ useEffect(() => {
42
+ const id = requestAnimationFrame(() => setMounted(true));
43
+ return () => cancelAnimationFrame(id);
44
+ }, []);
45
+ let className = clsx(theme === "default"
46
+ ? "text-white"
47
+ : `${colors[type].text} ${colors[type].bg} bg-opacity-20`);
48
+ const isVisible = mounted && !isClosing;
49
+ const translateY = isVisible ? 0 : enterOffset;
50
+ const scale = isVisible ? 1 : 0.98;
51
+ const opacity = isVisible ? 1 : 0;
52
+ return (_jsx("div", { className: clsx("pointer-events-auto w-full rounded-lg transition-all duration-200 ease-out", className), style: {
53
+ opacity,
54
+ transform: `translateY(${translateY}px) scale(${scale})`,
55
+ }, "data-toast-type": type, children: _jsxs("div", { className: clsx("flex items-center gap-3 rounded-lg p-2", sizeClass), children: [showIcon ? _jsx(Icon, { icon: icon, className: "h-5 w-5" }) : null, _jsx("div", { className: "flex-1", children: _jsx("p", { className: "text-sm md:text-base ", children: toast.message }) }), _jsx("button", { type: "button", onClick: () => onClose(toast.id), "aria-label": "Close notification", children: _jsx(Icon, { icon: "line-md:close-small", className: "h-5 w-5 transition-all duration-300 ease-in-out hover:scale-110" }) })] }) }));
56
+ }
@@ -0,0 +1,2 @@
1
+ export declare function useStore<TState, TSelected = TState>(selector?: (state: TState) => TSelected): TSelected;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-hook/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EACjD,QAAQ,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAA4C,GACxE,SAAS,CAIX"}
@@ -0,0 +1,5 @@
1
+ import { useSyncExternalStore } from "react";
2
+ import { toasterStore } from "../toaster-store";
3
+ export function useStore(selector = (s) => s) {
4
+ return useSyncExternalStore(toasterStore.subscribe, () => selector(toasterStore.getState()));
5
+ }
@@ -0,0 +1,23 @@
1
+ export type ToastSize = "sm" | "md" | "lg";
2
+ export type Types = "primary" | "secondary" | "success" | "info" | "warning" | "error";
3
+ export type ToastPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right";
4
+ export type ToastItem = {
5
+ id: string;
6
+ message: string;
7
+ type?: Types;
8
+ size?: ToastSize;
9
+ timeout?: number;
10
+ createdAt: number;
11
+ };
12
+ export type ToastInput = Omit<ToastItem, "id" | "createdAt">;
13
+ export type ToasterState = {
14
+ toasts: ToastItem[];
15
+ };
16
+ type Listener = (state: ToasterState) => void;
17
+ export declare const toasterStore: {
18
+ getState: () => ToasterState;
19
+ setState: (partial: Partial<ToasterState>) => void;
20
+ subscribe: (listener: Listener) => (() => void);
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/toaster/toaster-store/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,MAAM,KAAK,GACb,SAAS,GACT,WAAW,GACX,SAAS,GACT,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAQ9C,eAAO,MAAM,YAAY;oBACT,YAAY;wBAEN,OAAO,CAAC,YAAY,CAAC,KAAG,IAAI;0BAK1B,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC;CAI9C,CAAC"}
@@ -0,0 +1,15 @@
1
+ let state = {
2
+ toasts: [],
3
+ };
4
+ const listeners = new Set();
5
+ export const toasterStore = {
6
+ getState: () => state,
7
+ setState: (partial) => {
8
+ state = { ...state, ...partial };
9
+ listeners.forEach((l) => l(state));
10
+ },
11
+ subscribe: (listener) => {
12
+ listeners.add(listener);
13
+ return () => listeners.delete(listener);
14
+ },
15
+ };
@@ -7,6 +7,7 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
7
7
  roles: string;
8
8
  accounts: string;
9
9
  emailTemplates: string;
10
+ developerCenter: string;
10
11
  "dashboard.welcome": string;
11
12
  "header.profile": string;
12
13
  "header.settings": string;
@@ -187,6 +188,12 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
187
188
  "localization.delete": string;
188
189
  "localization.updateLanguage": string;
189
190
  "localization.createLanguage": string;
191
+ "developmentCenter.title": string;
192
+ "developmentCenter.syncCenter": string;
193
+ "developmentCenter.systemManagementCenter": string;
194
+ "developmentCenter.freeCache": string;
195
+ "developmentCenter.logoutAllAccounts": string;
196
+ "developmentCenter.systemStatus": string;
190
197
  };
191
198
  "Strategy-Application": {
192
199
  goal: string;
@@ -350,6 +357,7 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
350
357
  "button.confirm": string;
351
358
  "button.create": string;
352
359
  "button.add": string;
360
+ "button.saveConfiguration": string;
353
361
  "button.update": string;
354
362
  "button.newProgram": string;
355
363
  "button.newActivity": string;
@@ -390,6 +398,34 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
390
398
  "progress.card.weight": string;
391
399
  "progress.overAllProgress": string;
392
400
  "progress.progressDetails": string;
401
+ "progress.form.title": string;
402
+ "progress.form.subtitle": string;
403
+ "kpi.new": string;
404
+ "kpi.title": string;
405
+ "kpi.subtitle.initiative": string;
406
+ "kpi.progressToTarget": string;
407
+ "kpi.message.delete.confirm": string;
408
+ "kpi.form.title.edit": string;
409
+ "kpi.form.title.add": string;
410
+ "kpi.form.subtitle.edit": string;
411
+ "kpi.form.subtitle.add": string;
412
+ "kpi.form.kpiTitle": string;
413
+ "kpi.form.kpiTitle.placeholder": string;
414
+ "kpi.form.description.placeholder": string;
415
+ "kpi.form.targetValue.placeholder": string;
416
+ "kpi.form.unit": string;
417
+ "kpi.form.unit.placeholder": string;
418
+ "kpi.form.updateFrequency": string;
419
+ "kpi.form.updateFrequency.placeholder": string;
420
+ "kpi.form.currentValue.placeholder": string;
421
+ "kpi.form.button.update": string;
422
+ "kpi.form.button.create": string;
423
+ "kpi.updateProgress.title": string;
424
+ "kpi.updateProgress.subtitle": string;
425
+ "kpi.updateProgress.newCurrentValue": string;
426
+ "kpi.updateProgress.frequencyNote": string;
427
+ "kpi.updateProgress.updateBasis": string;
428
+ "kpi.updateProgress.button": string;
393
429
  "strategy.visionAndMission": string;
394
430
  "strategy.vision": string;
395
431
  "strategy.Vision": string;
@@ -405,6 +441,8 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
405
441
  "goal.modal.edit.description": string;
406
442
  "goal.message.delete.confirm": string;
407
443
  "goal.message.delete.warning": string;
444
+ "goal.notFound.title": string;
445
+ "goal.notFound.description": string;
408
446
  "objective.new": string;
409
447
  "objective.list.empty.title": string;
410
448
  "objective.details.initiatives.subtitle": string;
@@ -413,6 +451,35 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
413
451
  "objective.message.delete.warning": string;
414
452
  "objective.modal.add.description": string;
415
453
  "objective.modal.edit.description": string;
454
+ "objectives.empty": string;
455
+ "okr.objective.list.noObjectivesDescription": string;
456
+ "okr.objective.form.title.edit": string;
457
+ "okr.objective.form.title.add": string;
458
+ "okr.objective.form.subtitle.ofThe": string;
459
+ "okr.objective.form.subtitle.edit": string;
460
+ "okr.objective.form.subtitle.add": string;
461
+ "okr.objective.form.initiative.placeholder": string;
462
+ "okr.objective.form.objectiveTitle": string;
463
+ "okr.objective.form.objectiveTitle.placeholder": string;
464
+ "okr.objective.form.description.placeholder": string;
465
+ "okr.objective.form.targetYear": string;
466
+ "okr.objective.form.button.update": string;
467
+ "okr.objective.form.button.add": string;
468
+ "okr.keyResult.form.title.edit": string;
469
+ "okr.keyResult.form.title.add": string;
470
+ "okr.keyResult.form.subtitle.edit": string;
471
+ "okr.keyResult.form.subtitle.add": string;
472
+ "okr.keyResult.form.keyResultTitle": string;
473
+ "okr.keyResult.form.keyResultTitle.placeholder": string;
474
+ "okr.keyResult.form.targetValue": string;
475
+ "okr.keyResult.form.targetValue.placeholder": string;
476
+ "okr.keyResult.form.unitOfMeasurement": string;
477
+ "okr.keyResult.form.unitOfMeasurement.placeholder": string;
478
+ "okr.keyResult.form.progressCalculation": string;
479
+ "okr.keyResult.form.currentValue": string;
480
+ "okr.keyResult.form.currentValue.placeholder": string;
481
+ "okr.keyResult.form.button.update": string;
482
+ "okr.keyResult.form.button.add": string;
416
483
  "initiative.list.empty.title": string;
417
484
  "initiative.details.programs.title": string;
418
485
  "initiative.details.programs.subtitle": string;
@@ -422,6 +489,8 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
422
489
  "initiative.details.projects.empty.description": string;
423
490
  "initiative.details.activities.title": string;
424
491
  "initiative.details.activities.subtitle": string;
492
+ "initiative.details.okrs.title": string;
493
+ "initiative.details.okrs.subtitle": string;
425
494
  "initiative.modal.edit.description": string;
426
495
  "initiative.modal.title": string;
427
496
  "initiative.activity.description": string;
@@ -437,7 +506,6 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
437
506
  "program.details.objectives.modal.description": string;
438
507
  "program.details.objectives.modal.message.empty": string;
439
508
  "program.details.objectives.modal.placeholder": string;
440
- "program.details.objectives.empty": string;
441
509
  "program.details.projects.subtitle": string;
442
510
  "program.details.projects.empty": string;
443
511
  "program.detials.projects.empty": string;
@@ -461,6 +529,7 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
461
529
  links: string;
462
530
  "project.list.empty.title": string;
463
531
  "project.list.empty.description": string;
532
+ "project.title.kpi": string;
464
533
  "documents.list.empty.title": string;
465
534
  "documents.list.empty": string;
466
535
  "documents.card.delete.confirm": string;
@@ -596,6 +665,113 @@ export declare const DEFAULT_TRANSLATIONS_MAP: {
596
665
  "frequency.monthly": string;
597
666
  "frequency.quarterly": string;
598
667
  "frequency.oneTime": string;
668
+ "program.details.objectives.empty": string;
669
+ "empty.no__items__Found": string;
670
+ "empty.noDescription__name__found": string;
671
+ searchAbout__name__: string;
672
+ };
673
+ "Student-Attendance-Application": {
674
+ studentPortal: string;
675
+ sharjahEducationAcademy: string;
676
+ attendanceHistory: string;
677
+ overallAttendance: string;
678
+ present: string;
679
+ absent: string;
680
+ excused: string;
681
+ totalClasses: string;
682
+ tip: string;
683
+ delete: string;
684
+ scanTipMessage: string;
685
+ markYourAttendance: string;
686
+ scanQRCodeDescription: string;
687
+ scanQRCode: string;
688
+ cameraAccessHelper: string;
689
+ attendance: string;
690
+ todaysSessions: string;
691
+ sessionHistory: string;
692
+ completedSessions: string;
693
+ inProgress: string;
694
+ upcoming: string;
695
+ students: string;
696
+ notStarted: string;
697
+ start: string;
698
+ previousSessions: string;
699
+ filterBy: string;
700
+ allCourses: string;
701
+ allSections: string;
702
+ fromDate: string;
703
+ toDate: string;
704
+ late: string;
705
+ close: string;
706
+ markAsExcused: string;
707
+ enterReasonForExcusing: string;
708
+ reason: string;
709
+ reasonPlaceholder: string;
710
+ medical: string;
711
+ familyEmergency: string;
712
+ officialEvent: string;
713
+ cancel: string;
714
+ confirmExcuse: string;
715
+ timeRemaining: string;
716
+ scanQRCodeMessage: string;
717
+ endSession: string;
718
+ markPresent: string;
719
+ markExcused: string;
720
+ markAbsent: string;
721
+ total: string;
722
+ searchByNameOrSSN: string;
723
+ exportToCSV: string;
724
+ attended: string;
725
+ rate: string;
726
+ courseBreakdown: string;
727
+ exportReport: string;
728
+ admin: string;
729
+ faculty: string;
730
+ changed: string;
731
+ in: string;
732
+ session: string;
733
+ avgAttendance: string;
734
+ sessions: string;
735
+ low: string;
736
+ classes: string;
737
+ attendanceRate: string;
738
+ from: string;
739
+ to: string;
740
+ recentOverrideActivity: string;
741
+ viewAll: string;
742
+ allStudents: string;
743
+ searchByNameIDEmail: string;
744
+ attendanceOverrideAuditLog: string;
745
+ export: string;
746
+ adminDashboard: string;
747
+ overview: string;
748
+ courses: string;
749
+ auditLog: string;
750
+ reports: string;
751
+ totalStudents: string;
752
+ activeCourses: string;
753
+ lowAttendanceAlerts: string;
754
+ below75: string;
755
+ weeklyAttendanceSummary: string;
756
+ weeklyAttendanceSummaryDescription: string;
757
+ lowAttendanceReport: string;
758
+ lowAttendanceReportDescription: string;
759
+ courseComparisonReport: string;
760
+ courseComparisonReportDescription: string;
761
+ overrideActivityReport: string;
762
+ overrideActivityReportDescription: string;
763
+ online: string;
764
+ sessionActive: string;
765
+ pending: string;
766
+ waiting: string;
767
+ studentsCount: string;
768
+ attendancePercentage: string;
769
+ studentServicesDepartment: string;
770
+ details: string;
771
+ academicYear: string;
772
+ select: string;
773
+ noItemsFound: string;
774
+ noItemsFoundMessage: string;
599
775
  };
600
776
  };
601
777
  type TranslationKeysMap = {
@@ -603,6 +779,8 @@ type TranslationKeysMap = {
603
779
  .PlatformAdministrationApplication]: (typeof DEFAULT_TRANSLATIONS_MAP)[CONSTANTS.Application.ApplicationKeys.PlatformAdministrationApplication];
604
780
  [CONSTANTS.Application.ApplicationKeys
605
781
  .StrategyApplication]: (typeof DEFAULT_TRANSLATIONS_MAP)[CONSTANTS.Application.ApplicationKeys.StrategyApplication];
782
+ [CONSTANTS.Application.ApplicationKeys
783
+ .StudentAttendanceApplication]: (typeof DEFAULT_TRANSLATIONS_MAP)[CONSTANTS.Application.ApplicationKeys.StudentAttendanceApplication];
606
784
  };
607
785
  export declare function useSeaTranslation<K extends keyof TranslationKeysMap>(applicationKey: K, fetchTranslation: () => Promise<Record<keyof TranslationKeysMap[K], string>>, selectedLanguageCode?: string): {
608
786
  t: (key: keyof TranslationKeysMap[K], params?: Record<string, string | number>) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-translation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKpC,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,iCAAiC,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;IAClJ,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,mBAAmB,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;CACvH,CAAC;AAUF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAClE,cAAc,EAAE,CAAC,EACjB,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAC5E,oBAAoB,CAAC,EAAE,MAAM;aA0CtB,MAAM,kBAAkB,CAAC,CAAC,CAAC,WACvB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACvC,MAAM;EAsBV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-translation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOpC,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,iCAAiC,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;IAClJ,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,mBAAmB,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACtH,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe;SACnC,4BAA4B,CAAC,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;CACzI,CAAC;AAUF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAClE,cAAc,EAAE,CAAC,EACjB,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAC5E,oBAAoB,CAAC,EAAE,MAAM;aA+CtB,MAAM,kBAAkB,CAAC,CAAC,CAAC,WACvB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACvC,MAAM;EAsBV"}
@@ -4,6 +4,7 @@ import { useState, useEffect } from "react";
4
4
  export const DEFAULT_TRANSLATIONS_MAP = {
5
5
  [CONSTANTS.Application.ApplicationKeys.PlatformAdministrationApplication]: CONSTANTS.Localization.platformAdministrationApplication,
6
6
  [CONSTANTS.Application.ApplicationKeys.StrategyApplication]: CONSTANTS.Localization.strategyApplication,
7
+ [CONSTANTS.Application.ApplicationKeys.StudentAttendanceApplication]: CONSTANTS.Localization.studentAttendanceApplication,
7
8
  };
8
9
  let json = {};
9
10
  let isFetching = false;
@@ -14,7 +15,10 @@ export function useSeaTranslation(applicationKey, fetchTranslation, selectedLang
14
15
  const [, setRenderTrigger] = useState(false);
15
16
  useEffect(() => {
16
17
  const fetchDefaultTranslation = async () => {
17
- if (!json[selectedLanguageCode] && isFetching == false) {
18
+ if (!json[selectedLanguageCode] &&
19
+ isFetching == false &&
20
+ !!selectedLanguageCode) {
21
+ console.log({ selectedLanguageCode });
18
22
  try {
19
23
  isFetching = true;
20
24
  const languageResponse = await fetchTranslation();
package/dist/index.d.ts CHANGED
@@ -9,16 +9,20 @@ export * as FirebaseUtils from "./utils/firebase-client";
9
9
  export * as DeviceUtils from "./utils/device";
10
10
  export * as Services from "./services";
11
11
  export { default as MustAuth } from "./middleware/must-auth";
12
+ export { default as SocketProvider, useSocket, SocketProviderProps, } from "./providers/socket-provider";
12
13
  export { useHasApplicationAccess } from "./hooks/user-has-application-access";
13
14
  export { useHasOneOfPermissions, useHasPermission, } from "./hooks/use-has-permission-access";
14
15
  export { useSeaTranslation, DEFAULT_TRANSLATIONS_MAP, } from "./hooks/use-translation";
15
16
  export { default as Icon, Props as IconProps } from "./components/icon";
16
17
  export { default as Button, Props as ButtonProps } from "./components/button";
17
18
  export { default as Alert, Props as AlertProps, Types as AlertTypes, Themes as AlertThemes, } from "./components/alert";
19
+ export { default as Toaster } from "./components/toaster";
20
+ export { clearToasts, pushToast, removeToast, } from "./components/toaster/toaster-actions";
18
21
  export { default as Badge, Props as BadgeProps, Types as BudgeTypes, } from "./components/badge";
19
22
  export { default as Modal, ModalPosition, ModalSize, Props as ModalProps, } from "./components/modal";
20
23
  export { default as Menu, Props as MenuProps } from "./components/menu";
21
24
  export { default as MenuItem, Props as MenuItemProps, } from "./components/menu/menu-item";
25
+ export { MenuInstance } from "./components/menu";
22
26
  export { default as NativeMenu, Props as NativeMenuProps, } from "./components/native-menu";
23
27
  export { default as NativeMenuItem, Props as NativeMenuItemProps, } from "./components/native-menu/native-menu-item";
24
28
  export { default as Select, Props as SelectProps, SelectOption, } from "./components/select";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,6 +13,8 @@ export * as DeviceUtils from "./utils/device";
13
13
  export * as Services from "./services";
14
14
  // middleware
15
15
  export { default as MustAuth } from "./middleware/must-auth";
16
+ // providers
17
+ export { default as SocketProvider, useSocket, } from "./providers/socket-provider";
16
18
  // hooks
17
19
  export { useHasApplicationAccess } from "./hooks/user-has-application-access";
18
20
  export { useHasOneOfPermissions, useHasPermission, } from "./hooks/use-has-permission-access";
@@ -21,6 +23,8 @@ export { useSeaTranslation, DEFAULT_TRANSLATIONS_MAP, } from "./hooks/use-transl
21
23
  export { default as Icon } from "./components/icon";
22
24
  export { default as Button } from "./components/button";
23
25
  export { default as Alert, } from "./components/alert";
26
+ export { default as Toaster } from "./components/toaster";
27
+ export { clearToasts, pushToast, removeToast, } from "./components/toaster/toaster-actions";
24
28
  export { default as Badge, } from "./components/badge";
25
29
  export { default as Modal, } from "./components/modal";
26
30
  export { default as Menu } from "./components/menu";
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { io, Socket } from "socket.io-client";
3
+ export type SocketStatus = "idle" | "connecting" | "connected" | "disconnected" | "error";
4
+ export type SocketContextValue = {
5
+ socket: Socket | null;
6
+ status: SocketStatus;
7
+ error: Error | null;
8
+ };
9
+ export type SocketProviderProps = {
10
+ children: React.ReactNode;
11
+ link: string;
12
+ autoConnect?: boolean;
13
+ options?: Parameters<typeof io>[1];
14
+ };
15
+ export default function SocketProvider({ children, link, autoConnect, options, }: Readonly<SocketProviderProps>): import("react/jsx-runtime").JSX.Element;
16
+ export declare function useSocket(): SocketContextValue;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/socket-provider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI9C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,cAAc,GACd,OAAO,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,QAAQ,EACR,IAAI,EACJ,WAAkB,EAClB,OAAO,GACR,EAAE,QAAQ,CAAC,mBAAmB,CAAC,2CA4D/B;AAED,wBAAgB,SAAS,uBAMxB"}
@@ -0,0 +1,60 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from "react";
4
+ import { io } from "socket.io-client";
5
+ import { getCookie } from "../../utils/cookie";
6
+ import { CONSTANTS } from "sea-platform-helpers";
7
+ const SocketContext = createContext(null);
8
+ export default function SocketProvider({ children, link, autoConnect = true, options, }) {
9
+ const accessToken = getCookie(CONSTANTS.JWT.JWTCookieKey);
10
+ const [socket, setSocket] = useState(null);
11
+ const [status, setStatus] = useState("idle");
12
+ const [error, setError] = useState(null);
13
+ const connect = useCallback(() => {
14
+ setStatus("connecting");
15
+ const created = io(link, {
16
+ autoConnect,
17
+ auth: {
18
+ token: accessToken,
19
+ },
20
+ ...options,
21
+ });
22
+ created.on("connect", () => {
23
+ setStatus("connected");
24
+ setError(null);
25
+ });
26
+ created.on("disconnect", () => {
27
+ setStatus("disconnected");
28
+ });
29
+ created.on("connect_error", (err) => {
30
+ setStatus("error");
31
+ setError(err instanceof Error ? err : new Error("Socket connect error"));
32
+ });
33
+ setSocket(created);
34
+ return created;
35
+ }, [autoConnect, link, options]);
36
+ useEffect(() => {
37
+ if (!link) {
38
+ setStatus("error");
39
+ setError(new Error("Socket link is required"));
40
+ setSocket(null);
41
+ return undefined;
42
+ }
43
+ const created = connect();
44
+ return () => {
45
+ created.removeAllListeners();
46
+ created.disconnect();
47
+ setSocket(null);
48
+ setStatus("disconnected");
49
+ };
50
+ }, [connect, link]);
51
+ const value = useMemo(() => ({ socket, status, error }), [socket, status, error]);
52
+ return (_jsx(SocketContext.Provider, { value: value, children: children }));
53
+ }
54
+ export function useSocket() {
55
+ const context = useContext(SocketContext);
56
+ if (!context) {
57
+ throw new Error("useSocket must be used within SocketProvider");
58
+ }
59
+ return context;
60
+ }
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/hoc/can-access-application/index.tsx","../src/hoc/with-authorization/index.tsx","../src/components/accordion/index.tsx","../src/components/alert/index.tsx","../src/components/auto-complete/auto-complete-context.tsx","../src/components/auto-complete/auto-complete-dropdown.tsx","../src/components/auto-complete/auto-complete-input.tsx","../src/components/auto-complete/auto-complete-selected.tsx","../src/components/auto-complete/auto-complete.tsx","../src/components/auto-complete/index.tsx","../src/components/auto-complete/use-autocomplete.ts","../src/components/auto-complete-input/index.tsx","../src/components/avatar/index.tsx","../src/components/badge/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/break-line/index.tsx","../src/components/button/index.tsx","../src/components/calendar/index.tsx","../src/components/cards-list/index.tsx","../src/components/carousel/index.tsx","../src/components/checkbox/index.tsx","../src/components/color-picker/index.tsx","../src/components/comments-container/index.tsx","../src/components/comments-container/comment-event-bus/index.ts","../src/components/comments-container/comment-form/index.tsx","../src/components/comments-container/comment-item/index.tsx","../src/components/comments-container/comments-list/index.tsx","../src/components/comments-container/constants/index.ts","../src/components/comments-container/use-comments/index.tsx","../src/components/confirm/index.tsx","../src/components/count-down/index.tsx","../src/components/day-calendar/index.tsx","../src/components/drawer/index.tsx","../src/components/editable-text/index.tsx","../src/components/expandable-text/index.tsx","../src/components/file-input/index.tsx","../src/components/file-input/components/file-item/index.tsx","../src/components/firebase-token-handler/index.tsx","../src/components/form/index.tsx","../src/components/icon/index.tsx","../src/components/input/index.tsx","../src/components/item-not-found/index.tsx","../src/components/list-item/index.tsx","../src/components/list-item/components/page-button/index.tsx","../src/components/list-item/components/pagination/index.tsx","../src/components/loader/index.tsx","../src/components/log-activities-container/index.tsx","../src/components/log-activities-container/log-activities-list/index.tsx","../src/components/log-activities-container/log-activity-item/index.tsx","../src/components/log-activities-container/use-log-activities/index.tsx","../src/components/menu/index.tsx","../src/components/menu/menu-item/index.tsx","../src/components/modal/index.tsx","../src/components/month-calendar/index.tsx","../src/components/native-menu/index.tsx","../src/components/native-menu/native-menu-item/index.tsx","../src/components/not-authorized/index.tsx","../src/components/notifications-menu/index.tsx","../src/components/otp-input/index.tsx","../src/components/paper/index.tsx","../src/components/progress-bar/index.tsx","../src/components/radio-button/index.tsx","../src/components/search-input/index.tsx","../src/components/searchable-select/index.tsx","../src/components/select/selectchips.tsx","../src/components/select/selectcontrol.tsx","../src/components/select/selectdropdowncontent.tsx","../src/components/select/selectplaceholder.tsx","../src/components/select/selecttypes.ts","../src/components/select/selectview.tsx","../src/components/select/index.tsx","../src/components/select/useselectportal.ts","../src/components/skeleton/index.tsx","../src/components/stacked-avatars/index.tsx","../src/components/tab/index.tsx","../src/components/table/index.tsx","../src/components/text-editor/index.tsx","../src/components/text-editor/components/toolbar/index.tsx","../src/components/text-editor/utils/index.ts","../src/components/textarea/index.tsx","../src/components/toggle/index.tsx","../src/components/tooltip/index.tsx","../src/components/tree-checkbox/index.tsx","../src/components/tree-checkbox/components/tree-checkbox-item/index.tsx","../src/components/tree-checkbox/utils/index.ts","../src/components/week-calendar/index.tsx","../src/constants/index.ts","../src/hooks/list-items-hook/types.ts","../src/hooks/list-items-hook/usebulkactions.ts","../src/hooks/list-items-hook/usefilters.ts","../src/hooks/list-items-hook/usepagination.ts","../src/hooks/use-has-permission-access/index.ts","../src/hooks/use-translation/index.ts","../src/hooks/user-has-application-access/index.ts","../src/middleware/must-auth/index.tsx","../src/services/index.ts","../src/services/remote-service/index.ts","../src/utils/auth-axios/index.ts","../src/utils/axios/index.ts","../src/utils/color/index.ts","../src/utils/cookie/index.ts","../src/utils/device/index.ts","../src/utils/file/index.ts","../src/utils/firebase-client/firebase.ts","../src/utils/firebase-client/index.ts","../src/utils/firebase-client/types.ts","../src/utils/jwt/index.ts","../src/utils/notification-localstorage/index.ts","../src/utils/validation/index.ts"],"version":"5.9.3"}
1
+ {"root":["../src/index.ts","../src/hoc/can-access-application/index.tsx","../src/hoc/with-authorization/index.tsx","../src/components/accordion/index.tsx","../src/components/alert/index.tsx","../src/components/auto-complete/auto-complete-context.tsx","../src/components/auto-complete/auto-complete-dropdown.tsx","../src/components/auto-complete/auto-complete-input.tsx","../src/components/auto-complete/auto-complete-selected.tsx","../src/components/auto-complete/auto-complete.tsx","../src/components/auto-complete/index.tsx","../src/components/auto-complete/use-autocomplete.ts","../src/components/auto-complete-input/index.tsx","../src/components/avatar/index.tsx","../src/components/badge/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/break-line/index.tsx","../src/components/button/index.tsx","../src/components/calendar/index.tsx","../src/components/cards-list/index.tsx","../src/components/carousel/index.tsx","../src/components/checkbox/index.tsx","../src/components/color-picker/index.tsx","../src/components/comments-container/index.tsx","../src/components/comments-container/comment-event-bus/index.ts","../src/components/comments-container/comment-form/index.tsx","../src/components/comments-container/comment-item/index.tsx","../src/components/comments-container/comments-list/index.tsx","../src/components/comments-container/constants/index.ts","../src/components/comments-container/use-comments/index.tsx","../src/components/confirm/index.tsx","../src/components/count-down/index.tsx","../src/components/day-calendar/index.tsx","../src/components/drawer/index.tsx","../src/components/editable-text/index.tsx","../src/components/expandable-text/index.tsx","../src/components/file-input/index.tsx","../src/components/file-input/components/file-item/index.tsx","../src/components/firebase-token-handler/index.tsx","../src/components/form/index.tsx","../src/components/icon/index.tsx","../src/components/input/index.tsx","../src/components/item-not-found/index.tsx","../src/components/list-item/index.tsx","../src/components/list-item/components/page-button/index.tsx","../src/components/list-item/components/pagination/index.tsx","../src/components/loader/index.tsx","../src/components/log-activities-container/index.tsx","../src/components/log-activities-container/log-activities-list/index.tsx","../src/components/log-activities-container/log-activity-item/index.tsx","../src/components/log-activities-container/use-log-activities/index.tsx","../src/components/menu/index.tsx","../src/components/menu/menu-item/index.tsx","../src/components/modal/index.tsx","../src/components/month-calendar/index.tsx","../src/components/native-menu/index.tsx","../src/components/native-menu/native-menu-item/index.tsx","../src/components/not-authorized/index.tsx","../src/components/notifications-menu/index.tsx","../src/components/otp-input/index.tsx","../src/components/paper/index.tsx","../src/components/progress-bar/index.tsx","../src/components/radio-button/index.tsx","../src/components/search-input/index.tsx","../src/components/searchable-select/index.tsx","../src/components/select/selectchips.tsx","../src/components/select/selectcontrol.tsx","../src/components/select/selectdropdowncontent.tsx","../src/components/select/selectplaceholder.tsx","../src/components/select/selecttypes.ts","../src/components/select/selectview.tsx","../src/components/select/index.tsx","../src/components/select/useselectportal.ts","../src/components/skeleton/index.tsx","../src/components/stacked-avatars/index.tsx","../src/components/tab/index.tsx","../src/components/table/index.tsx","../src/components/text-editor/index.tsx","../src/components/text-editor/components/toolbar/index.tsx","../src/components/text-editor/utils/index.ts","../src/components/textarea/index.tsx","../src/components/toaster/index.tsx","../src/components/toaster/toaster-actions/index.ts","../src/components/toaster/toaster-card/index.tsx","../src/components/toaster/toaster-hook/index.ts","../src/components/toaster/toaster-store/index.ts","../src/components/toggle/index.tsx","../src/components/tooltip/index.tsx","../src/components/tree-checkbox/index.tsx","../src/components/tree-checkbox/components/tree-checkbox-item/index.tsx","../src/components/tree-checkbox/utils/index.ts","../src/components/week-calendar/index.tsx","../src/constants/index.ts","../src/hooks/list-items-hook/types.ts","../src/hooks/list-items-hook/usebulkactions.ts","../src/hooks/list-items-hook/usefilters.ts","../src/hooks/list-items-hook/usepagination.ts","../src/hooks/use-has-permission-access/index.ts","../src/hooks/use-translation/index.ts","../src/hooks/user-has-application-access/index.ts","../src/middleware/must-auth/index.tsx","../src/providers/socket-provider/index.tsx","../src/services/index.ts","../src/services/remote-service/index.ts","../src/utils/auth-axios/index.ts","../src/utils/axios/index.ts","../src/utils/color/index.ts","../src/utils/cookie/index.ts","../src/utils/device/index.ts","../src/utils/file/index.ts","../src/utils/firebase-client/firebase.ts","../src/utils/firebase-client/index.ts","../src/utils/firebase-client/types.ts","../src/utils/jwt/index.ts","../src/utils/notification-localstorage/index.ts","../src/utils/validation/index.ts"],"version":"5.9.3"}
@@ -5,6 +5,7 @@ type AxiosOptions = {
5
5
  storage?: "localStorage" | "cookie";
6
6
  deviceIdKey?: string;
7
7
  cookieDomain?: string;
8
+ withTimeZone?: boolean;
8
9
  onError?: (message: string) => void;
9
10
  };
10
11
  export declare const createInstance: (baseURL: string, options?: AxiosOptions) => import("axios").AxiosInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/axios/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,UAAS,YAOR,kCA+DF,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/axios/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,MAAM,EACf,UAAS,YAQR,kCAoEF,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import axios from "axios";
2
2
  import { getCookie, removeCookie } from "../cookie";
3
- import { CONSTANTS } from "sea-platform-helpers";
3
+ import { CONSTANTS, Utils } from "sea-platform-helpers";
4
4
  import { getDeviceId } from "../device";
5
5
  export const createInstance = (baseURL, options = {
6
6
  withCredentials: true,
@@ -8,6 +8,7 @@ export const createInstance = (baseURL, options = {
8
8
  storage: "localStorage",
9
9
  deviceIdKey: CONSTANTS.Server.DEVICE_ID_HEADER_KEY,
10
10
  cookieDomain: ".platform.sea.ac.ae", // TODO: fix the hardcoded value
11
+ withTimeZone: false,
11
12
  onError: (message) => console.log("Axios error:\n", message),
12
13
  }) => {
13
14
  const axiosInstance = axios.create({
@@ -28,6 +29,10 @@ export const createInstance = (baseURL, options = {
28
29
  console.log("deviceId:", deviceId);
29
30
  config.headers["Authorization"] = `Bearer ${token}`;
30
31
  config.headers[(_a = options.deviceIdKey) !== null && _a !== void 0 ? _a : CONSTANTS.Server.DEVICE_ID_HEADER_KEY] = deviceId;
32
+ if (options.withTimeZone) {
33
+ const timeZone = Utils.Moment.moment.tz.guess();
34
+ config.headers[CONSTANTS.Server.TIMEZONE_HEADER_KEY] = timeZone;
35
+ }
31
36
  return config;
32
37
  }, (error) => {
33
38
  // Handle request error
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sea-react-components",
3
3
  "description": "SEA react components library",
4
- "version": "1.3.33",
4
+ "version": "1.3.35",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "build": "tsc --build && npx postcss src/styles.css -o dist/styles.css && npx postcss src/components/text-editor/style.css -o dist/components/text-editor/style.css",
@@ -48,8 +48,9 @@
48
48
  "jwt-decode": "^4.0.0",
49
49
  "lowlight": "^3.3.0",
50
50
  "react-dom": "^19.2.3",
51
- "sea-platform-helpers": "^1.5.26",
51
+ "sea-platform-helpers": "^1.5.30",
52
52
  "sea-react-components": "file:",
53
+ "socket.io-client": "^4.8.3",
53
54
  "uuid": "^13.0.0",
54
55
  "yup": "^1.5.0"
55
56
  },