@solidxai/core-ui 0.1.8-beta.2 → 0.1.8-beta.3

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 (34) hide show
  1. package/dist/components/core/common/dndCompat.d.ts +8 -0
  2. package/dist/components/core/common/dndCompat.d.ts.map +1 -0
  3. package/dist/components/core/common/dndCompat.js +5 -0
  4. package/dist/components/core/common/dndCompat.js.map +1 -0
  5. package/dist/components/core/common/dndCompat.ts +9 -0
  6. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  7. package/dist/components/core/kanban/KanbanCard.js +2 -2
  8. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  9. package/dist/components/core/kanban/KanbanCard.tsx +4 -3
  10. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  11. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  12. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  13. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  14. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  15. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +4 -3
  16. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  17. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +13 -12
  18. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  19. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +1 -1
  20. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  21. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +6 -0
  22. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  23. package/dist/components/layout/AdminTopHeader.js +25 -1
  24. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  25. package/dist/components/layout/AdminTopHeader.tsx +38 -1
  26. package/dist/components/shad-cn-ui/SolidTabs.js +1 -1
  27. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  28. package/dist/components/shad-cn-ui/SolidTabs.tsx +1 -1
  29. package/dist/resources/shadcn-base.css +5 -1
  30. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  31. package/dist/routes/guards/AuthGuard.js +4 -1
  32. package/dist/routes/guards/AuthGuard.js.map +1 -1
  33. package/dist/routes/guards/AuthGuard.tsx +6 -1
  34. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import type { DraggableProps, DroppableProps } from "@hello-pangea/dnd";
2
+ import type { JSX, ReactNode } from "react";
3
+ type DndCompatComponent<Props> = (props: Props) => JSX.Element | null;
4
+ export declare const CompatibleDraggable: DndCompatComponent<DraggableProps>;
5
+ export declare const CompatibleDroppable: DndCompatComponent<DroppableProps>;
6
+ export declare const asCompatibleReactNode: (node: unknown) => ReactNode;
7
+ export {};
8
+ //# sourceMappingURL=dndCompat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dndCompat.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/dndCompat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,KAAK,kBAAkB,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;AAEtE,eAAO,MAAM,mBAAmB,oCAA6D,CAAC;AAC9F,eAAO,MAAM,mBAAmB,oCAA6D,CAAC;AAC9F,eAAO,MAAM,qBAAqB,SAAU,OAAO,KAAG,SAA8B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Draggable, Droppable } from "@hello-pangea/dnd";
2
+ export var CompatibleDraggable = Draggable;
3
+ export var CompatibleDroppable = Droppable;
4
+ export var asCompatibleReactNode = function (node) { return node; };
5
+ //# sourceMappingURL=dndCompat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dndCompat.js","sourceRoot":"","sources":["../../../../src/components/core/common/dndCompat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,CAAC,IAAM,mBAAmB,GAAG,SAA0D,CAAC;AAC9F,MAAM,CAAC,IAAM,mBAAmB,GAAG,SAA0D,CAAC;AAC9F,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,IAAa,IAAgB,OAAA,IAAiB,EAAjB,CAAiB,CAAC","sourcesContent":["import { Draggable, Droppable } from \"@hello-pangea/dnd\";\nimport type { DraggableProps, DroppableProps } from \"@hello-pangea/dnd\";\nimport type { JSX, ReactNode } from \"react\";\n\ntype DndCompatComponent<Props> = (props: Props) => JSX.Element | null;\n\nexport const CompatibleDraggable = Draggable as unknown as DndCompatComponent<DraggableProps>;\nexport const CompatibleDroppable = Droppable as unknown as DndCompatComponent<DroppableProps>;\nexport const asCompatibleReactNode = (node: unknown): ReactNode => node as ReactNode;\n"]}
@@ -0,0 +1,9 @@
1
+ import { Draggable, Droppable } from "@hello-pangea/dnd";
2
+ import type { DraggableProps, DroppableProps } from "@hello-pangea/dnd";
3
+ import type { JSX, ReactNode } from "react";
4
+
5
+ type DndCompatComponent<Props> = (props: Props) => JSX.Element | null;
6
+
7
+ export const CompatibleDraggable = Draggable as unknown as DndCompatComponent<DraggableProps>;
8
+ export const CompatibleDroppable = Droppable as unknown as DndCompatComponent<DroppableProps>;
9
+ export const asCompatibleReactNode = (node: unknown): ReactNode => node as ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanCard.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,uBAAuB,EAAE,GAAG,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuFzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"KanbanCard.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,uBAAuB,EAAE,GAAG,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuFzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { useRouter } from "../../../hooks/useRouter";
14
- import { Draggable } from "@hello-pangea/dnd";
14
+ import { CompatibleDraggable } from "../common/dndCompat";
15
15
  import { SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIcon, } from "../../shad-cn-ui";
16
16
  var KanbanCard = function (_a) {
17
17
  var data = _a.data, solidKanbanViewMetaData = _a.solidKanbanViewMetaData, index = _a.index, _b = _a.isDragDisabled, isDragDisabled = _b === void 0 ? false : _b, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, editButtonUrl = _a.editButtonUrl, groupByFieldName = _a.groupByFieldName, group = _a.group, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget;
@@ -28,7 +28,7 @@ var KanbanCard = function (_a) {
28
28
  var renderKanbanAction = function (data) {
29
29
  return (_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }), _jsx(SolidDropdownMenuContent, { className: "solid-custom-overlay", align: "end", children: _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () { return router.push("".concat(editButtonUrl, "/").concat(data === null || data === void 0 ? void 0 : data.id)); }, children: [_jsx(SolidIcon, { name: "si-pencil", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Edit" })] }) })] }) }));
30
30
  };
31
- return (_jsx(Draggable, { draggableId: String(data.id), index: index, isDragDisabled: isDragDisabled, children: function (provided, snapshot) {
31
+ return (_jsx(CompatibleDraggable, { draggableId: String(data.id), index: index, isDragDisabled: isDragDisabled, children: function (provided, snapshot) {
32
32
  var _a, _b;
33
33
  return (_jsx("div", __assign({ className: "", ref: provided.innerRef }, provided.draggableProps, (!isDragDisabled ? provided.dragHandleProps : {}), { style: __assign({ marginTop: "1rem" }, provided.draggableProps.style), className: "kanban-card-container", children: _jsxs("div", { style: {
34
34
  opacity: snapshot.isDragging ? 0.9 : 1,
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanCard.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanCard.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Draggable, DraggableProvided } from \"@hello-pangea/dnd\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\n// Define the types for the data and props\ninterface Data {\n id: string;\n title: string;\n content: string;\n}\n\ninterface KanbanCardProps {\n data: Data;\n solidKanbanViewMetaData: any;\n index: number;\n isDragDisabled?: boolean;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n editButtonUrl?: string;\n groupByFieldName?: string;\n group?: any;\n cardNode?: any;\n DynamicCardWidget?: any;\n}\n\nconst KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData, index, isDragDisabled = false, setLightboxUrls, setOpenLightbox, editButtonUrl, groupByFieldName, group, cardNode, DynamicCardWidget }) => {\n const router = useRouter()\n const openRecord = () => {\n if (typeof window !== \"undefined\") {\n sessionStorage.setItem(\"fromView\", \"kanban\");\n }\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const openEdit = () => {\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const renderKanbanAction = (data) => {\n return (\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => router.push(`${editButtonUrl}/${data?.id}`)}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n )\n }\n\n return (\n <Draggable draggableId={String(data.id)} index={index} isDragDisabled={isDragDisabled}>\n {(provided: DraggableProvided, snapshot) => (\n <div\n className=\"\"\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...(!isDragDisabled ? provided.dragHandleProps : {})}\n style={{ marginTop: \"1rem\", ...provided.draggableProps.style }}\n className=\"kanban-card-container\"\n >\n {/* <p className=\"kanban-card-heading\">{data.title}</p> */}\n {/* <p className=\"kanban-card-content\">{data.content}</p> */}\n <div\n style={{\n opacity: snapshot.isDragging ? 0.9 : 1,\n transform: snapshot.isDragging ? \"rotate(-2deg)\" : \"\",\n cursor: isDragDisabled ? \"pointer\" : \"grab\"\n }}\n elevation={snapshot.isDragging ? 3 : 1}\n className=\"solid-kanban-card\"\n onClick={openRecord}\n >\n {renderKanbanAction(data)}\n {DynamicCardWidget ? (\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidKanbanViewMetaData}\n solidView={solidKanbanViewMetaData?.solidView}\n solidFieldsMetadata={solidKanbanViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidKanbanViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={true}\n groupByFieldName={groupByFieldName}\n group={group}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n ) : null}\n </div>\n </div>\n )}\n </Draggable>\n );\n};\n\nexport default KanbanCard;\n"]}
1
+ {"version":3,"file":"KanbanCard.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanCard.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { DraggableProvided } from \"@hello-pangea/dnd\";\nimport { CompatibleDraggable } from \"../common/dndCompat\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\n// Define the types for the data and props\ninterface Data {\n id: string;\n title: string;\n content: string;\n}\n\ninterface KanbanCardProps {\n data: Data;\n solidKanbanViewMetaData: any;\n index: number;\n isDragDisabled?: boolean;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n editButtonUrl?: string;\n groupByFieldName?: string;\n group?: any;\n cardNode?: any;\n DynamicCardWidget?: any;\n}\n\nconst KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData, index, isDragDisabled = false, setLightboxUrls, setOpenLightbox, editButtonUrl, groupByFieldName, group, cardNode, DynamicCardWidget }) => {\n const router = useRouter()\n const openRecord = () => {\n if (typeof window !== \"undefined\") {\n sessionStorage.setItem(\"fromView\", \"kanban\");\n }\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const openEdit = () => {\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const renderKanbanAction = (data) => {\n return (\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => router.push(`${editButtonUrl}/${data?.id}`)}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n )\n }\n\n return (\n <CompatibleDraggable draggableId={String(data.id)} index={index} isDragDisabled={isDragDisabled}>\n {(provided: DraggableProvided, snapshot) => (\n <div\n className=\"\"\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...(!isDragDisabled ? provided.dragHandleProps : {})}\n style={{ marginTop: \"1rem\", ...provided.draggableProps.style }}\n className=\"kanban-card-container\"\n >\n {/* <p className=\"kanban-card-heading\">{data.title}</p> */}\n {/* <p className=\"kanban-card-content\">{data.content}</p> */}\n <div\n style={{\n opacity: snapshot.isDragging ? 0.9 : 1,\n transform: snapshot.isDragging ? \"rotate(-2deg)\" : \"\",\n cursor: isDragDisabled ? \"pointer\" : \"grab\"\n }}\n elevation={snapshot.isDragging ? 3 : 1}\n className=\"solid-kanban-card\"\n onClick={openRecord}\n >\n {renderKanbanAction(data)}\n {DynamicCardWidget ? (\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidKanbanViewMetaData}\n solidView={solidKanbanViewMetaData?.solidView}\n solidFieldsMetadata={solidKanbanViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidKanbanViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={true}\n groupByFieldName={groupByFieldName}\n group={group}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n ) : null}\n </div>\n </div>\n )}\n </CompatibleDraggable>\n );\n};\n\nexport default KanbanCard;\n"]}
@@ -1,7 +1,8 @@
1
1
  // @ts-nocheck
2
2
  import React from "react";
3
3
  import { useRouter } from "../../../hooks/useRouter";
4
- import { Draggable, DraggableProvided } from "@hello-pangea/dnd";
4
+ import { DraggableProvided } from "@hello-pangea/dnd";
5
+ import { CompatibleDraggable } from "../common/dndCompat";
5
6
  import {
6
7
  SolidDropdownMenu,
7
8
  SolidDropdownMenuContent,
@@ -72,7 +73,7 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
72
73
  }
73
74
 
74
75
  return (
75
- <Draggable draggableId={String(data.id)} index={index} isDragDisabled={isDragDisabled}>
76
+ <CompatibleDraggable draggableId={String(data.id)} index={index} isDragDisabled={isDragDisabled}>
76
77
  {(provided: DraggableProvided, snapshot) => (
77
78
  <div
78
79
  className=""
@@ -116,7 +117,7 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
116
117
  </div>
117
118
  </div>
118
119
  )}
119
- </Draggable>
120
+ </CompatibleDraggable>
120
121
  );
121
122
  };
122
123
 
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAA;CACrB;AAGD,QAAA,MAAM,YAAY,+LAAuM,iBAAiB,4CA0EzO,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"AAcA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAA;CACrB;AAGD,QAAA,MAAM,YAAY,+LAAuM,iBAAiB,4CA0EzO,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -10,8 +10,8 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { Droppable } from "@hello-pangea/dnd";
14
13
  import KanbanCard from "./KanbanCard";
14
+ import { asCompatibleReactNode, CompatibleDroppable } from "../common/dndCompat";
15
15
  import { SolidButton, SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIcon, } from "../../shad-cn-ui";
16
16
  // @ts-ignore
17
17
  var KanbanColumn = function (_a) {
@@ -19,9 +19,9 @@ var KanbanColumn = function (_a) {
19
19
  return (_jsxs("div", { className: group.folded ? "kanban-column kanban-column-folded" : "kanban-column", children: [_jsxs("div", { className: "kaban-heading-area", children: [group.folded &&
20
20
  _jsx("a", { onClick: function (e) { return toggleFold(groupByField); }, children: _jsxs("div", { className: "flex align-items-center", children: [_jsxs("div", { className: "kanban-arrow-icon-container", children: [_jsx(SolidIcon, { name: "si-sort-up-fill", "aria-hidden": true }), _jsx(SolidIcon, { name: "si-sort-down-fill", "aria-hidden": true })] }), _jsxs("p", { className: "kanban-group-heading", children: ["".concat(group.label), _jsx("span", { className: "kanban-count-badge", children: group.count })] })] }) }), !group.folded &&
21
21
  _jsx("div", { className: "flex align-items-center", children: _jsxs("p", { className: "kanban-group-heading", children: ["".concat(group.label), _jsx("span", { className: "kanban-count-badge", children: group.count })] }) }), !group.folded &&
22
- _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger kanban-column-cogwheel", "aria-label": "Open ".concat(group.label, " lane options"), children: _jsx(SolidIcon, { name: "si-cog", "aria-hidden": true }) }) }), _jsx(SolidDropdownMenuContent, { className: "solid-custom-overlay kanban-options-panel", align: "start", children: _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item kanban-fold-action-button", onSelect: function () { return toggleFold(groupByField); }, children: [_jsx(SolidIcon, { name: "si-angle-double-left", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Fold" })] }) })] })] }), !group.folded && (_jsx(Droppable, { droppableId: groupByField, isDropDisabled: !isKanbanDragEnabled, children: function (provided) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.droppableProps, { style: { minHeight: "100px" }, children: [groupData.map(function (data, index) { return (
22
+ _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger kanban-column-cogwheel", "aria-label": "Open ".concat(group.label, " lane options"), children: _jsx(SolidIcon, { name: "si-cog", "aria-hidden": true }) }) }), _jsx(SolidDropdownMenuContent, { className: "solid-custom-overlay kanban-options-panel", align: "start", children: _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item kanban-fold-action-button", onSelect: function () { return toggleFold(groupByField); }, children: [_jsx(SolidIcon, { name: "si-angle-double-left", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Fold" })] }) })] })] }), !group.folded && (_jsx(CompatibleDroppable, { droppableId: groupByField, isDropDisabled: !isKanbanDragEnabled, children: function (provided) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.droppableProps, { style: { minHeight: "100px" }, children: [groupData.map(function (data, index) { return (
23
23
  // @ts-ignore
24
- _jsx(KanbanCard, { data: data, solidKanbanViewMetaData: solidKanbanViewMetaData, index: index, isDragDisabled: !isKanbanDragEnabled, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, editButtonUrl: editButtonUrl, groupByFieldName: groupByField, group: group, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget }, data.id)); }), provided.placeholder, group.count > 0 && (group.count > (group.limit * group.currentPage)) &&
24
+ _jsx(KanbanCard, { data: data, solidKanbanViewMetaData: solidKanbanViewMetaData, index: index, isDragDisabled: !isKanbanDragEnabled, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, editButtonUrl: editButtonUrl, groupByFieldName: groupByField, group: group, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget }, data.id)); }), asCompatibleReactNode(provided.placeholder), group.count > 0 && (group.count > (group.limit * group.currentPage)) &&
25
25
  _jsx(SolidButton, { type: "button", variant: "ghost", size: "sm", className: "kaban-load-more", onClick: function () { return handleLoadMore(groupByField); }, children: "Load more data... (".concat(group.count - (group.limit * group.currentPage), " remaining)") })] }))); } }))] }));
26
26
  };
27
27
  export default KanbanColumn;
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanColumn.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { Droppable, DroppableProvided } from \"@hello-pangea/dnd\";\nimport KanbanCard from \"./KanbanCard\";\nimport {\n SolidButton,\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\n// Define types for props\ninterface Group {\n label: string;\n count: number;\n folded: boolean;\n limit: number;\n currentPage: number;\n}\n\ninterface GroupData {\n id: string;\n title: string;\n groupByField: string;\n}\n\ninterface KanbanColumnProps {\n groupByField: string;\n group: Group;\n groupData: GroupData[];\n isKanbanDragEnabled?: boolean;\n cardNode?: any;\n DynamicCardWidget?: any;\n toggleFold: (groupByField: string) => void;\n handleLoadMore: (groupByField: string) => void;\n setLightboxUrls: any,\n setOpenLightbox: any\n}\n\n// @ts-ignore\nconst KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled = true, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, setLightboxUrls, setOpenLightbox, editButtonUrl }: KanbanColumnProps) => {\n return (\n <div className={group.folded ? \"kanban-column kanban-column-folded\" : \"kanban-column\"}>\n <div className=\"kaban-heading-area\">\n {group.folded &&\n <a onClick={e => toggleFold(groupByField)}>\n <div className=\"flex align-items-center\">\n <div className=\"kanban-arrow-icon-container\">\n <SolidIcon name=\"si-sort-up-fill\" aria-hidden />\n <SolidIcon name=\"si-sort-down-fill\" aria-hidden />\n </div>\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n </a>\n }\n\n {!group.folded &&\n <div className=\"flex align-items-center\">\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n }\n {!group.folded &&\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger kanban-column-cogwheel\"\n aria-label={`Open ${group.label} lane options`}\n >\n <SolidIcon name=\"si-cog\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay kanban-options-panel\" align=\"start\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item kanban-fold-action-button\"\n onSelect={() => toggleFold(groupByField)}\n >\n <SolidIcon name=\"si-angle-double-left\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Fold</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n }\n </div>\n {!group.folded && (\n <Droppable droppableId={groupByField} isDropDisabled={!isKanbanDragEnabled}>\n {(provided: DroppableProvided) => (\n <div\n ref={provided.innerRef}\n {...provided.droppableProps}\n style={{ minHeight: \"100px\" }}\n >\n {groupData.map((data, index) => (\n // @ts-ignore\n <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} />\n ))}\n {provided.placeholder}\n {group.count > 0 && (group.count > (group.limit * group.currentPage)) &&\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"kaban-load-more\"\n onClick={() => handleLoadMore(groupByField)}\n >\n {`Load more data... (${group.count - (group.limit * group.currentPage)} remaining)`}\n </SolidButton>\n }\n </div>\n )}\n </Droppable>\n )}\n </div>\n );\n};\n\nexport default KanbanColumn;\n"]}
1
+ {"version":3,"file":"KanbanColumn.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DroppableProvided } from \"@hello-pangea/dnd\";\nimport KanbanCard from \"./KanbanCard\";\nimport { asCompatibleReactNode, CompatibleDroppable } from \"../common/dndCompat\";\nimport {\n SolidButton,\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\n// Define types for props\ninterface Group {\n label: string;\n count: number;\n folded: boolean;\n limit: number;\n currentPage: number;\n}\n\ninterface GroupData {\n id: string;\n title: string;\n groupByField: string;\n}\n\ninterface KanbanColumnProps {\n groupByField: string;\n group: Group;\n groupData: GroupData[];\n isKanbanDragEnabled?: boolean;\n cardNode?: any;\n DynamicCardWidget?: any;\n toggleFold: (groupByField: string) => void;\n handleLoadMore: (groupByField: string) => void;\n setLightboxUrls: any,\n setOpenLightbox: any\n}\n\n// @ts-ignore\nconst KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled = true, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, setLightboxUrls, setOpenLightbox, editButtonUrl }: KanbanColumnProps) => {\n return (\n <div className={group.folded ? \"kanban-column kanban-column-folded\" : \"kanban-column\"}>\n <div className=\"kaban-heading-area\">\n {group.folded &&\n <a onClick={e => toggleFold(groupByField)}>\n <div className=\"flex align-items-center\">\n <div className=\"kanban-arrow-icon-container\">\n <SolidIcon name=\"si-sort-up-fill\" aria-hidden />\n <SolidIcon name=\"si-sort-down-fill\" aria-hidden />\n </div>\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n </a>\n }\n\n {!group.folded &&\n <div className=\"flex align-items-center\">\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n }\n {!group.folded &&\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger kanban-column-cogwheel\"\n aria-label={`Open ${group.label} lane options`}\n >\n <SolidIcon name=\"si-cog\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay kanban-options-panel\" align=\"start\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item kanban-fold-action-button\"\n onSelect={() => toggleFold(groupByField)}\n >\n <SolidIcon name=\"si-angle-double-left\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Fold</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n }\n </div>\n {!group.folded && (\n <CompatibleDroppable droppableId={groupByField} isDropDisabled={!isKanbanDragEnabled}>\n {(provided: DroppableProvided) => (\n <div\n ref={provided.innerRef}\n {...provided.droppableProps}\n style={{ minHeight: \"100px\" }}\n >\n {groupData.map((data, index) => (\n // @ts-ignore\n <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} />\n ))}\n {asCompatibleReactNode(provided.placeholder)}\n {group.count > 0 && (group.count > (group.limit * group.currentPage)) &&\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"kaban-load-more\"\n onClick={() => handleLoadMore(groupByField)}\n >\n {`Load more data... (${group.count - (group.limit * group.currentPage)} remaining)`}\n </SolidButton>\n }\n </div>\n )}\n </CompatibleDroppable>\n )}\n </div>\n );\n};\n\nexport default KanbanColumn;\n"]}
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
- import { Droppable, DroppableProvided } from "@hello-pangea/dnd";
2
+ import { DroppableProvided } from "@hello-pangea/dnd";
3
3
  import KanbanCard from "./KanbanCard";
4
+ import { asCompatibleReactNode, CompatibleDroppable } from "../common/dndCompat";
4
5
  import {
5
6
  SolidButton,
6
7
  SolidDropdownMenu,
@@ -84,7 +85,7 @@ const KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData,
84
85
  }
85
86
  </div>
86
87
  {!group.folded && (
87
- <Droppable droppableId={groupByField} isDropDisabled={!isKanbanDragEnabled}>
88
+ <CompatibleDroppable droppableId={groupByField} isDropDisabled={!isKanbanDragEnabled}>
88
89
  {(provided: DroppableProvided) => (
89
90
  <div
90
91
  ref={provided.innerRef}
@@ -95,7 +96,7 @@ const KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData,
95
96
  // @ts-ignore
96
97
  <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} />
97
98
  ))}
98
- {provided.placeholder}
99
+ {asCompatibleReactNode(provided.placeholder)}
99
100
  {group.count > 0 && (group.count > (group.limit * group.currentPage)) &&
100
101
  <SolidButton
101
102
  type="button"
@@ -109,7 +110,7 @@ const KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData,
109
110
  }
110
111
  </div>
111
112
  )}
112
- </Droppable>
113
+ </CompatibleDroppable>
113
114
  )}
114
115
  </div>
115
116
  );
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"AAkBA,eAAO,MAAM,uBAAuB,kCAAmC,GAAG,wDAuMzE,CAAA"}
1
+ {"version":3,"file":"SolidListColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,uBAAuB,kCAAmC,GAAG,wDAuMzE,CAAA"}
@@ -59,10 +59,11 @@ import { useFormik } from 'formik';
59
59
  import { useState } from 'react';
60
60
  import { useDispatch } from 'react-redux';
61
61
  import { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';
62
- import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
62
+ import { DragDropContext } from '@hello-pangea/dnd';
63
63
  import styles from './SolidListColumnSelector.module.css';
64
64
  import { ERROR_MESSAGES } from '../../../../constants/error-messages';
65
65
  import { showToast } from '../../../../redux/features/toastSlice';
66
+ import { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';
66
67
  export var SolidListColumnSelector = function (_a) {
67
68
  var _b, _c;
68
69
  var listViewMetaData = _a.listViewMetaData, onClose = _a.onClose;
@@ -190,12 +191,12 @@ export var SolidListColumnSelector = function (_a) {
190
191
  reordered.splice(result.destination.index, 0, moved);
191
192
  setFields(reordered);
192
193
  };
193
- return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, className: "flex flex-column gap-1 px-0", children: [_jsx(DragDropContext, { onDragEnd: onDragEnd, onDragStart: function () { return setIsDragging(true); }, children: _jsx(Droppable, { droppableId: "columns", children: function (provided) { return (_jsxs("div", __assign({}, provided.droppableProps, { ref: provided.innerRef, className: "flex flex-column cogwheel-column-filter px-0 ".concat(isDragging ? styles.SolidColumnDragContextActive : ''), style: { maxHeight: 400, overflowY: 'auto' }, children: [fields.map(function (column, index) { return (_jsx(Draggable, { draggableId: column.key, index: index, children: function (provided, snapshot) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps, { className: "flex align-items-center justify-content-between gap-3 px-2 py-2 ".concat(snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''), style: __assign({}, provided.draggableProps.style), children: [_jsxs("label", { htmlFor: column.key, className: 'solid-column-selector-item-main', children: [_jsx("input", { id: column.key, type: "checkbox", name: "selectedColumns", className: "solid-column-selector-checkbox", checked: formik.values.selectedColumns.some(function (item) { return item.key === column.key; }), onChange: function () {
194
+ return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, className: "flex flex-column gap-1 px-0", children: [_jsx(DragDropContext, { onDragEnd: onDragEnd, onDragStart: function () { return setIsDragging(true); }, children: _jsx(CompatibleDroppable, { droppableId: "columns", children: function (provided) { return (_jsxs("div", __assign({}, provided.droppableProps, { ref: provided.innerRef, className: "flex flex-column cogwheel-column-filter px-0 ".concat(isDragging ? styles.SolidColumnDragContextActive : ''), style: { maxHeight: 400, overflowY: 'auto' }, children: [fields.map(function (column, index) { return (_jsx(CompatibleDraggable, { draggableId: column.key, index: index, children: function (provided, snapshot) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps, { className: "flex align-items-center justify-content-between gap-3 px-2 py-2 ".concat(snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''), style: __assign({}, provided.draggableProps.style), children: [_jsxs("label", { htmlFor: column.key, className: 'solid-column-selector-item-main', children: [_jsx("input", { id: column.key, type: "checkbox", name: "selectedColumns", className: "solid-column-selector-checkbox", checked: formik.values.selectedColumns.some(function (item) { return item.key === column.key; }), onChange: function () {
194
195
  var isChecked = formik.values.selectedColumns.some(function (item) { return item.key === column.key; });
195
196
  formik.setFieldValue("selectedColumns", isChecked
196
197
  ? formik.values.selectedColumns.filter(function (item) { return item.key !== column.key; })
197
198
  : __spreadArray(__spreadArray([], formik.values.selectedColumns, true), [column], false));
198
- } }), _jsx("span", { className: "solid-column-selector-label", children: column.name })] }), _jsx(DragActive, { active: snapshot.isDragging })] }))); } }, column.key)); }), provided.placeholder] }))); } }) }), _jsxs("div", { className: "solid-column-selector-actions", children: [_jsx("button", { type: 'submit', className: "solid-compact-action-button solid-compact-action-button-primary", children: "Apply" }), _jsx("button", { type: 'button', className: "solid-compact-action-button", onClick: function () { return onClose === null || onClose === void 0 ? void 0 : onClose(); }, children: "Cancel" })] })] }) }));
199
+ } }), _jsx("span", { className: "solid-column-selector-label", children: column.name })] }), _jsx(DragActive, { active: snapshot.isDragging })] }))); } }, column.key)); }), asCompatibleReactNode(provided.placeholder)] }))); } }) }), _jsxs("div", { className: "solid-column-selector-actions", children: [_jsx("button", { type: 'submit', className: "solid-compact-action-button solid-compact-action-button-primary", children: "Apply" }), _jsx("button", { type: 'button', className: "solid-compact-action-button", onClick: function () { return onClose === null || onClose === void 0 ? void 0 : onClose(); }, children: "Cancel" })] })] }) }));
199
200
  };
200
201
  var DragActive = function (_a) {
201
202
  var active = _a.active;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListColumnSelector.js","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';\nimport { DragDropContext, Droppable, Draggable, DropResult } from '@hello-pangea/dnd';\nimport styles from './SolidListColumnSelector.module.css'\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { showToast } from '../../../../redux/features/toastSlice';\n\ninterface FieldMetadata {\n displayName: string;\n}\n\ninterface FilterColumns {\n name: string;\n key: string;\n}\n\nexport const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {\n const dispatch = useDispatch();\n const [isDragging, setIsDragging] = useState(false);\n const entityApi = createSolidEntityApi('userViewMetadata');\n const {\n useUpsertSolidEntityMutation\n } = entityApi;\n\n const [upsertUserView, { isLoading, error: viewCreateError, isSuccess, data: data }] = useUpsertSolidEntityMutation();\n\n if (!listViewMetaData) {\n return;\n }\n if (!listViewMetaData.data) {\n return;\n }\n\n const solidView = listViewMetaData?.data?.solidView;\n\n // This is a key value map of field name vs field metadata.\n const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;\n\n\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n\n const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));\n\n const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const [fields, setFields] = useState<FilterColumns[]>(() => {\n const selectedOrder = solidView.layout.children.map((child: any) => child.attrs.name);\n\n const allColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const selectedFields: FilterColumns[] = [];\n const remainingFields: FilterColumns[] = [];\n\n const usedKeys = new Set<string>();\n\n // First, add selected fields in the order of solidView\n for (const key of selectedOrder) {\n const column = allColumns.find(col => col.key === key);\n if (column) {\n selectedFields.push(column);\n usedKeys.add(key);\n }\n }\n\n // Then, add remaining fields that are not selected\n for (const col of allColumns) {\n if (!usedKeys.has(col.key)) {\n remainingFields.push(col);\n }\n }\n\n return [...selectedFields, ...remainingFields];\n });\n\n const formik = useFormik({\n initialValues: {\n selectedColumns: solidListColumns.filter(col => checkedFieldNames.has(col.key)),\n },\n onSubmit: async (values) => {\n const selectedKeys = values.selectedColumns.map(col => col.key);\n\n // Step 1: Extract current children\n const currentChildren = solidView.layout.children;\n\n // Step 2: Create a map of all available metadata\n const allFieldMeta = solidFieldsMetadata;\n\n // Step 3: Filter children to include only selected keys\n const newChildren = fields\n .filter(col => selectedKeys.includes(col.key))\n .map(({ key }) => {\n const existingChild = currentChildren.find((child: any) => child.attrs.name === key);\n if (existingChild) return existingChild;\n \n // @ts-ignore\n const fieldType = allFieldMeta[key]?.type;\n const isTextType = fieldType === \"shortText\" || fieldType === \"longText\" || fieldType ===\"selectionStatic\" || fieldType ===\"selectionDynamic\";\n \n return {\n type: 'field',\n attrs: {\n name: key,\n label: allFieldMeta[key]?.displayName || key,\n ...(isTextType ? { isSearchable: true } : {}),\n },\n };\n });\n \n // Now build updated solidView\n const updatedView = {\n layout: {\n ...solidView.layout,\n children: newChildren\n }\n };\n\n try {\n if (listViewMetaData?.data?.solidView?.id) {\n // Update existing user view\n const response = await upsertUserView({\n viewMetadataId: listViewMetaData?.data?.solidView?.id,\n layout: JSON.stringify(updatedView.layout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATING_USER, error);\n }\n },\n });\n\n const onDragEnd = (result: DropResult) => {\n setIsDragging(false);\n if (!result.destination) return;\n const reordered = [...fields];\n const [moved] = reordered.splice(result.source.index, 1);\n reordered.splice(result.destination.index, 0, moved);\n setFields(reordered);\n };\n\n return (\n <>\n <form onSubmit={formik.handleSubmit} className=\"flex flex-column gap-1 px-0\">\n <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>\n <Droppable droppableId=\"columns\">\n {(provided): React.ReactElement => (\n <div\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={`flex flex-column cogwheel-column-filter px-0 ${isDragging ? styles.SolidColumnDragContextActive : ''}`}\n style={{ maxHeight: 400, overflowY: 'auto' }}\n >\n {fields.map((column, index) => (\n <Draggable key={column.key} draggableId={column.key} index={index}>\n {(provided, snapshot): React.ReactElement => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={`flex align-items-center justify-content-between gap-3 px-2 py-2 ${snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''}`}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <label htmlFor={column.key} className='solid-column-selector-item-main'>\n <input\n id={column.key}\n type=\"checkbox\"\n name=\"selectedColumns\"\n className=\"solid-column-selector-checkbox\"\n checked={formik.values.selectedColumns.some(item => item.key === column.key)}\n onChange={() => {\n const isChecked = formik.values.selectedColumns.some(item => item.key === column.key);\n formik.setFieldValue(\n \"selectedColumns\",\n isChecked\n ? formik.values.selectedColumns.filter(item => item.key !== column.key)\n : [...formik.values.selectedColumns, column]\n );\n }}\n />\n <span className=\"solid-column-selector-label\">\n {column.name}\n </span>\n </label>\n <DragActive active={snapshot.isDragging} />\n </div>\n )}\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n <div className=\"solid-column-selector-actions\">\n <button type='submit' className=\"solid-compact-action-button solid-compact-action-button-primary\">Apply</button>\n <button type='button' className=\"solid-compact-action-button\" onClick={() => onClose?.()}>\n Cancel\n </button>\n </div>\n </form>\n </>\n )\n}\n\nconst DragActive = ({ active }: any) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.46354 11.7331C7.46354 12.0997 7.33299 12.4136 7.07187 12.6747C6.81076 12.9359 6.49687 13.0664 6.13021 13.0664C5.76354 13.0664 5.44965 12.9359 5.18854 12.6747C4.92743 12.4136 4.79688 12.0997 4.79688 11.7331C4.79688 11.3664 4.92743 11.0525 5.18854 10.7914C5.44965 10.5303 5.76354 10.3997 6.13021 10.3997C6.49687 10.3997 6.81076 10.5303 7.07187 10.7914C7.33299 11.0525 7.46354 11.3664 7.46354 11.7331ZM7.46354 7.73307C7.46354 8.09974 7.33299 8.41363 7.07187 8.67474C6.81076 8.93585 6.49687 9.06641 6.13021 9.06641C5.76354 9.06641 5.44965 8.93585 5.18854 8.67474C4.92743 8.41363 4.79688 8.09974 4.79688 7.73307C4.79688 7.36641 4.92743 7.05252 5.18854 6.79141C5.44965 6.5303 5.76354 6.39974 6.13021 6.39974C6.49687 6.39974 6.81076 6.5303 7.07187 6.79141C7.33299 7.05252 7.46354 7.36641 7.46354 7.73307ZM7.46354 3.73307C7.46354 4.09974 7.33299 4.41363 7.07187 4.67474C6.81076 4.93585 6.49687 5.06641 6.13021 5.06641C5.76354 5.06641 5.44965 4.93585 5.18854 4.67474C4.92743 4.41363 4.79688 4.09974 4.79688 3.73307C4.79688 3.36641 4.92743 3.05252 5.18854 2.79141C5.44965 2.5303 5.76354 2.39974 6.13021 2.39974C6.49687 2.39974 6.81076 2.5303 7.07187 2.79141C7.33299 3.05252 7.46354 3.36641 7.46354 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n <path d=\"M11.737 11.7331C11.737 12.0997 11.6064 12.4136 11.3453 12.6747C11.0842 12.9359 10.7703 13.0664 10.4036 13.0664C10.037 13.0664 9.72309 12.9359 9.46198 12.6747C9.20087 12.4136 9.07031 12.0997 9.07031 11.7331C9.07031 11.3664 9.20087 11.0525 9.46198 10.7914C9.72309 10.5303 10.037 10.3997 10.4036 10.3997C10.7703 10.3997 11.0842 10.5303 11.3453 10.7914C11.6064 11.0525 11.737 11.3664 11.737 11.7331ZM11.737 7.73307C11.737 8.09974 11.6064 8.41363 11.3453 8.67474C11.0842 8.93585 10.7703 9.06641 10.4036 9.06641C10.037 9.06641 9.72309 8.93585 9.46198 8.67474C9.20087 8.41363 9.07031 8.09974 9.07031 7.73307C9.07031 7.36641 9.20087 7.05252 9.46198 6.79141C9.72309 6.5303 10.037 6.39974 10.4036 6.39974C10.7703 6.39974 11.0842 6.5303 11.3453 6.79141C11.6064 7.05252 11.737 7.36641 11.737 7.73307ZM11.737 3.73307C11.737 4.09974 11.6064 4.41363 11.3453 4.67474C11.0842 4.93585 10.7703 5.06641 10.4036 5.06641C10.037 5.06641 9.72309 4.93585 9.46198 4.67474C9.20087 4.41363 9.07031 4.09974 9.07031 3.73307C9.07031 3.36641 9.20087 3.05252 9.46198 2.79141C9.72309 2.5303 10.037 2.39974 10.4036 2.39974C10.7703 2.39974 11.0842 2.5303 11.3453 2.79141C11.6064 3.05252 11.737 3.36641 11.737 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n </svg>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidListColumnSelector.js","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';\nimport { DragDropContext, DropResult } from '@hello-pangea/dnd';\nimport styles from './SolidListColumnSelector.module.css'\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';\n\ninterface FieldMetadata {\n displayName: string;\n}\n\ninterface FilterColumns {\n name: string;\n key: string;\n}\n\nexport const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {\n const dispatch = useDispatch();\n const [isDragging, setIsDragging] = useState(false);\n const entityApi = createSolidEntityApi('userViewMetadata');\n const {\n useUpsertSolidEntityMutation\n } = entityApi;\n\n const [upsertUserView, { isLoading, error: viewCreateError, isSuccess, data: data }] = useUpsertSolidEntityMutation();\n\n if (!listViewMetaData) {\n return;\n }\n if (!listViewMetaData.data) {\n return;\n }\n\n const solidView = listViewMetaData?.data?.solidView;\n\n // This is a key value map of field name vs field metadata.\n const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;\n\n\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n\n const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));\n\n const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const [fields, setFields] = useState<FilterColumns[]>(() => {\n const selectedOrder = solidView.layout.children.map((child: any) => child.attrs.name);\n\n const allColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const selectedFields: FilterColumns[] = [];\n const remainingFields: FilterColumns[] = [];\n\n const usedKeys = new Set<string>();\n\n // First, add selected fields in the order of solidView\n for (const key of selectedOrder) {\n const column = allColumns.find(col => col.key === key);\n if (column) {\n selectedFields.push(column);\n usedKeys.add(key);\n }\n }\n\n // Then, add remaining fields that are not selected\n for (const col of allColumns) {\n if (!usedKeys.has(col.key)) {\n remainingFields.push(col);\n }\n }\n\n return [...selectedFields, ...remainingFields];\n });\n\n const formik = useFormik({\n initialValues: {\n selectedColumns: solidListColumns.filter(col => checkedFieldNames.has(col.key)),\n },\n onSubmit: async (values) => {\n const selectedKeys = values.selectedColumns.map(col => col.key);\n\n // Step 1: Extract current children\n const currentChildren = solidView.layout.children;\n\n // Step 2: Create a map of all available metadata\n const allFieldMeta = solidFieldsMetadata;\n\n // Step 3: Filter children to include only selected keys\n const newChildren = fields\n .filter(col => selectedKeys.includes(col.key))\n .map(({ key }) => {\n const existingChild = currentChildren.find((child: any) => child.attrs.name === key);\n if (existingChild) return existingChild;\n\n // @ts-ignore\n const fieldType = allFieldMeta[key]?.type;\n const isTextType = fieldType === \"shortText\" || fieldType === \"longText\" || fieldType === \"selectionStatic\" || fieldType === \"selectionDynamic\";\n\n return {\n type: 'field',\n attrs: {\n name: key,\n label: allFieldMeta[key]?.displayName || key,\n ...(isTextType ? { isSearchable: true } : {}),\n },\n };\n });\n\n // Now build updated solidView\n const updatedView = {\n layout: {\n ...solidView.layout,\n children: newChildren\n }\n };\n\n try {\n if (listViewMetaData?.data?.solidView?.id) {\n // Update existing user view\n const response = await upsertUserView({\n viewMetadataId: listViewMetaData?.data?.solidView?.id,\n layout: JSON.stringify(updatedView.layout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATING_USER, error);\n }\n },\n });\n\n const onDragEnd = (result: DropResult) => {\n setIsDragging(false);\n if (!result.destination) return;\n const reordered = [...fields];\n const [moved] = reordered.splice(result.source.index, 1);\n reordered.splice(result.destination.index, 0, moved);\n setFields(reordered);\n };\n\n return (\n <>\n <form onSubmit={formik.handleSubmit} className=\"flex flex-column gap-1 px-0\">\n <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>\n <CompatibleDroppable droppableId=\"columns\">\n {(provided): any => (\n <div\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={`flex flex-column cogwheel-column-filter px-0 ${isDragging ? styles.SolidColumnDragContextActive : ''}`}\n style={{ maxHeight: 400, overflowY: 'auto' }}\n >\n {fields.map((column, index) => (\n <CompatibleDraggable key={column.key} draggableId={column.key} index={index}>\n {(provided, snapshot): any => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={`flex align-items-center justify-content-between gap-3 px-2 py-2 ${snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''}`}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <label htmlFor={column.key} className='solid-column-selector-item-main'>\n <input\n id={column.key}\n type=\"checkbox\"\n name=\"selectedColumns\"\n className=\"solid-column-selector-checkbox\"\n checked={formik.values.selectedColumns.some(item => item.key === column.key)}\n onChange={() => {\n const isChecked = formik.values.selectedColumns.some(item => item.key === column.key);\n formik.setFieldValue(\n \"selectedColumns\",\n isChecked\n ? formik.values.selectedColumns.filter(item => item.key !== column.key)\n : [...formik.values.selectedColumns, column]\n );\n }}\n />\n <span className=\"solid-column-selector-label\">\n {column.name}\n </span>\n </label>\n <DragActive active={snapshot.isDragging} />\n </div>\n )}\n </CompatibleDraggable>\n ))}\n {asCompatibleReactNode(provided.placeholder)}\n </div>\n )}\n </CompatibleDroppable>\n </DragDropContext>\n <div className=\"solid-column-selector-actions\">\n <button type='submit' className=\"solid-compact-action-button solid-compact-action-button-primary\">Apply</button>\n <button type='button' className=\"solid-compact-action-button\" onClick={() => onClose?.()}>\n Cancel\n </button>\n </div>\n </form>\n </>\n )\n}\n\nconst DragActive = ({ active }: any) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.46354 11.7331C7.46354 12.0997 7.33299 12.4136 7.07187 12.6747C6.81076 12.9359 6.49687 13.0664 6.13021 13.0664C5.76354 13.0664 5.44965 12.9359 5.18854 12.6747C4.92743 12.4136 4.79688 12.0997 4.79688 11.7331C4.79688 11.3664 4.92743 11.0525 5.18854 10.7914C5.44965 10.5303 5.76354 10.3997 6.13021 10.3997C6.49687 10.3997 6.81076 10.5303 7.07187 10.7914C7.33299 11.0525 7.46354 11.3664 7.46354 11.7331ZM7.46354 7.73307C7.46354 8.09974 7.33299 8.41363 7.07187 8.67474C6.81076 8.93585 6.49687 9.06641 6.13021 9.06641C5.76354 9.06641 5.44965 8.93585 5.18854 8.67474C4.92743 8.41363 4.79688 8.09974 4.79688 7.73307C4.79688 7.36641 4.92743 7.05252 5.18854 6.79141C5.44965 6.5303 5.76354 6.39974 6.13021 6.39974C6.49687 6.39974 6.81076 6.5303 7.07187 6.79141C7.33299 7.05252 7.46354 7.36641 7.46354 7.73307ZM7.46354 3.73307C7.46354 4.09974 7.33299 4.41363 7.07187 4.67474C6.81076 4.93585 6.49687 5.06641 6.13021 5.06641C5.76354 5.06641 5.44965 4.93585 5.18854 4.67474C4.92743 4.41363 4.79688 4.09974 4.79688 3.73307C4.79688 3.36641 4.92743 3.05252 5.18854 2.79141C5.44965 2.5303 5.76354 2.39974 6.13021 2.39974C6.49687 2.39974 6.81076 2.5303 7.07187 2.79141C7.33299 3.05252 7.46354 3.36641 7.46354 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n <path d=\"M11.737 11.7331C11.737 12.0997 11.6064 12.4136 11.3453 12.6747C11.0842 12.9359 10.7703 13.0664 10.4036 13.0664C10.037 13.0664 9.72309 12.9359 9.46198 12.6747C9.20087 12.4136 9.07031 12.0997 9.07031 11.7331C9.07031 11.3664 9.20087 11.0525 9.46198 10.7914C9.72309 10.5303 10.037 10.3997 10.4036 10.3997C10.7703 10.3997 11.0842 10.5303 11.3453 10.7914C11.6064 11.0525 11.737 11.3664 11.737 11.7331ZM11.737 7.73307C11.737 8.09974 11.6064 8.41363 11.3453 8.67474C11.0842 8.93585 10.7703 9.06641 10.4036 9.06641C10.037 9.06641 9.72309 8.93585 9.46198 8.67474C9.20087 8.41363 9.07031 8.09974 9.07031 7.73307C9.07031 7.36641 9.20087 7.05252 9.46198 6.79141C9.72309 6.5303 10.037 6.39974 10.4036 6.39974C10.7703 6.39974 11.0842 6.5303 11.3453 6.79141C11.6064 7.05252 11.737 7.36641 11.737 7.73307ZM11.737 3.73307C11.737 4.09974 11.6064 4.41363 11.3453 4.67474C11.0842 4.93585 10.7703 5.06641 10.4036 5.06641C10.037 5.06641 9.72309 4.93585 9.46198 4.67474C9.20087 4.41363 9.07031 4.09974 9.07031 3.73307C9.07031 3.36641 9.20087 3.05252 9.46198 2.79141C9.72309 2.5303 10.037 2.39974 10.4036 2.39974C10.7703 2.39974 11.0842 2.5303 11.3453 2.79141C11.6064 3.05252 11.737 3.36641 11.737 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n </svg>\n )\n}\n"]}
@@ -2,10 +2,11 @@ import { useFormik } from 'formik';
2
2
  import React, { useState } from 'react'
3
3
  import { useDispatch } from 'react-redux';
4
4
  import { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';
5
- import { DragDropContext, Droppable, Draggable, DropResult } from '@hello-pangea/dnd';
5
+ import { DragDropContext, DropResult } from '@hello-pangea/dnd';
6
6
  import styles from './SolidListColumnSelector.module.css'
7
7
  import { ERROR_MESSAGES } from '../../../../constants/error-messages';
8
8
  import { showToast } from '../../../../redux/features/toastSlice';
9
+ import { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';
9
10
 
10
11
  interface FieldMetadata {
11
12
  displayName: string;
@@ -101,11 +102,11 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
101
102
  .map(({ key }) => {
102
103
  const existingChild = currentChildren.find((child: any) => child.attrs.name === key);
103
104
  if (existingChild) return existingChild;
104
-
105
+
105
106
  // @ts-ignore
106
107
  const fieldType = allFieldMeta[key]?.type;
107
- const isTextType = fieldType === "shortText" || fieldType === "longText" || fieldType ==="selectionStatic" || fieldType ==="selectionDynamic";
108
-
108
+ const isTextType = fieldType === "shortText" || fieldType === "longText" || fieldType === "selectionStatic" || fieldType === "selectionDynamic";
109
+
109
110
  return {
110
111
  type: 'field',
111
112
  attrs: {
@@ -115,7 +116,7 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
115
116
  },
116
117
  };
117
118
  });
118
-
119
+
119
120
  // Now build updated solidView
120
121
  const updatedView = {
121
122
  layout: {
@@ -155,8 +156,8 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
155
156
  <>
156
157
  <form onSubmit={formik.handleSubmit} className="flex flex-column gap-1 px-0">
157
158
  <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>
158
- <Droppable droppableId="columns">
159
- {(provided): React.ReactElement => (
159
+ <CompatibleDroppable droppableId="columns">
160
+ {(provided): any => (
160
161
  <div
161
162
  {...provided.droppableProps}
162
163
  ref={provided.innerRef}
@@ -164,8 +165,8 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
164
165
  style={{ maxHeight: 400, overflowY: 'auto' }}
165
166
  >
166
167
  {fields.map((column, index) => (
167
- <Draggable key={column.key} draggableId={column.key} index={index}>
168
- {(provided, snapshot): React.ReactElement => (
168
+ <CompatibleDraggable key={column.key} draggableId={column.key} index={index}>
169
+ {(provided, snapshot): any => (
169
170
  <div
170
171
  ref={provided.innerRef}
171
172
  {...provided.draggableProps}
@@ -199,12 +200,12 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
199
200
  <DragActive active={snapshot.isDragging} />
200
201
  </div>
201
202
  )}
202
- </Draggable>
203
+ </CompatibleDraggable>
203
204
  ))}
204
- {provided.placeholder}
205
+ {asCompatibleReactNode(provided.placeholder)}
205
206
  </div>
206
207
  )}
207
- </Droppable>
208
+ </CompatibleDroppable>
208
209
  </DragDropContext>
209
210
  <div className="solid-column-selector-actions">
210
211
  <button type='submit' className="solid-compact-action-button solid-compact-action-button-primary">Apply</button>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidEmptyListViewPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,6BAA6B,4HAOvC,GAAG,4CAgIL,CAAC"}
1
+ {"version":3,"file":"SolidEmptyListViewPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,6BAA6B,4HAOvC,GAAG,4CAsIL,CAAC"}
@@ -60,6 +60,6 @@ export var SolidEmptyListViewPlaceholder = function (_a) {
60
60
  }, children: button.attrs.label }, ((_j = button === null || button === void 0 ? void 0 : button.attrs) === null || _j === void 0 ? void 0 : _j.name) || ((_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.label)));
61
61
  }) }));
62
62
  };
63
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: 'solid-empty-listview-placeholder-container', children: _jsxs("div", { className: "solid-empty-listview-placeholder-panel", children: [_jsxs("div", { className: "solid-empty-listview-header", children: [_jsx("div", { className: "solid-empty-listview-header-title", children: displayName }), _jsx("div", { className: "solid-empty-listview-header-subtitle", children: noDataText })] }), _jsxs("div", { className: "solid-empty-listview-body", children: [_jsxs("div", { className: "solid-empty-listview-actions", children: [canCreate && (_jsx("div", { className: "solid-empty-listview-create-action", children: _jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, title: (_s = (_r = solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data) === null || _r === void 0 ? void 0 : _r.solidView) === null || _s === void 0 ? void 0 : _s.displayName }) })), canImport && (_jsx(SolidButton, { type: "button", variant: "outline", leftIcon: _jsx(Download, { size: 14 }), className: "solid-empty-listview-import-button", onClick: function () { return setOpenImportDialog(true); }, children: "Import" }))] }), _jsxs("div", { className: "solid-empty-listview-description", children: ["Click Create or Import to add ", entityName, " entities."] }), _jsx(CustomActionButtons, {})] })] }) }), openImportDialog && (_jsx(SolidGenericImport, { openImportDialog: openImportDialog, setOpenImportDialog: setOpenImportDialog, listViewMetaData: solidListViewMetaData, handleFetchUpdatedRecords: handleFetchUpdatedRecords }))] }));
63
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: 'solid-empty-listview-placeholder-container', children: _jsxs("div", { className: "solid-empty-listview-placeholder-panel", children: [_jsxs("div", { className: "solid-empty-listview-header", children: [_jsx("div", { className: "solid-empty-listview-header-title", children: displayName }), _jsx("div", { className: "solid-empty-listview-header-subtitle", children: noDataText })] }), _jsxs("div", { className: "solid-empty-listview-body", children: [_jsxs("div", { className: "solid-empty-listview-actions", children: [canCreate && (_jsx("div", { className: "solid-empty-listview-create-action", children: _jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, title: (_s = (_r = solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data) === null || _r === void 0 ? void 0 : _r.solidView) === null || _s === void 0 ? void 0 : _s.displayName }) })), canImport && (_jsx(SolidButton, { type: "button", variant: "outline", leftIcon: _jsx(Download, { size: 14 }), className: "solid-empty-listview-import-button", onClick: function () { return setOpenImportDialog(true); }, children: "Import" }))] }), _jsxs("div", { className: "solid-empty-listview-description", children: ["Click Create or Import to add ", entityName, " entities."] }), _jsx(CustomActionButtons, {}), (canCreate || canImport) && (_jsxs("div", { className: "solid-empty-listview-description", children: ["Click Create or Import to add ", entityName, " entities."] }))] })] }) }), openImportDialog && (_jsx(SolidGenericImport, { openImportDialog: openImportDialog, setOpenImportDialog: setOpenImportDialog, listViewMetaData: solidListViewMetaData, handleFetchUpdatedRecords: handleFetchUpdatedRecords }))] }));
64
64
  };
65
65
  //# sourceMappingURL=SolidEmptyListViewPlaceholder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidEmptyListViewPlaceholder.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAA;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAAC,EAOxC;;QANF,eAAe,qBAAA,EACf,uBAAuB,6BAAA,EACvB,cAAc,oBAAA,EACd,MAAM,YAAA,EACN,qBAAqB,2BAAA,EACrB,yBAAyB,+BAAA;IAEnB,IAAA,KAA0C,QAAQ,CAAC,KAAK,CAAC,EAAxD,gBAAgB,QAAA,EAAE,mBAAmB,QAAmB,CAAC;IACxD,IAAM,OAAO,GAAK,UAAU,EAAE,KAAjB,CAAkB;IACvC,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,WAAW,GAAG,MAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,mCAAI,EAAE,CAAC;IAChF,IAAM,WAAW,GAAG,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,mCAAI,SAAS,CAAC;IACrF,IAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAM,UAAU,GAAG,MAAA,MAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,wBAAwB,mCAC3F,CAAC,GAAG,CAAC,kDAAkD,CAAC,KAAI,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,CAAA;QAC9G,CAAC,CAAC,UAAG,GAAG,CAAC,kDAAkD,CAAC,cAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAE;QAClH,CAAC,CAAC,uBAAgB,UAAU,kBAAe,CAAC,CAAC;IAErD,IAAM,uBAAuB,GAAG,8BAA8B,EAAE,CAAC;IAEjE,IAAM,eAAe,GAAG,UAAC,KAAqC;QAC1D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;QAC3F,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;IACpD,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,IAAM,SAAS,GACX,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC;QAC9E,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,MAAK,KAAK;QAC7B,MAAM,CAAC,OAAO,KAAK,IAAI;QACvB,WAAW,CAAC,oBAAoB,KAAK,KAAK,CAAC;IAC/C,IAAM,SAAS,GACX,MAAM,CAAC,OAAO,KAAK,IAAI;QACvB,YAAY,CAAC,OAAO;QACpB,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC;QAC9E,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAE,CAAC;QACjF,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAErF,IAAM,mBAAmB,GAAG;;QACxB,IAAM,aAAa,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAa,mCAAI,EAAE,CAAC;QACvD,IAAI,WAAW,CAAC,oBAAoB,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAErF,OAAO,CACH,cAAK,SAAS,EAAC,qCAAqC,YAC/C,aAAa,CAAC,GAAG,CAAC,UAAC,MAAW;;gBAC3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;gBAClI,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBAE1B,OAAO,CACH,KAAC,WAAW,IAER,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,gDAAyC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAAE,EACpF,OAAO,EAAE,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,MAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAChE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EACzB,QAAQ,EAAE,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAA,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,SAAS,EACpE,OAAO,EAAE;wBACL,IAAM,KAAK,GAAG;4BACV,MAAM,QAAA;4BACN,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;yBACpD,CAAC;wBACF,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACjD,CAAC,YAEA,MAAM,CAAC,KAAK,CAAC,KAAK,IAfd,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,MAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,CAgBtC,CACjB,CAAC;YACN,CAAC,CAAC,GACA,CACT,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,8BACI,cAAK,SAAS,EAAC,4CAA4C,YACvD,eAAK,SAAS,EAAC,wCAAwC,aACnD,eAAK,SAAS,EAAC,6BAA6B,aACxC,cAAK,SAAS,EAAC,mCAAmC,YAAE,WAAW,GAAO,EACtE,cAAK,SAAS,EAAC,sCAAsC,YAAE,UAAU,GAAO,IACtE,EAEN,eAAK,SAAS,EAAC,2BAA2B,aAQtC,eAAK,SAAS,EAAC,8BAA8B,aACxC,SAAS,IAAI,CACV,cAAK,SAAS,EAAC,oCAAoC,YAC/C,KAAC,iBAAiB,IACd,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,EAChD,KAAK,EAAE,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,GAC5D,GACA,CACT,EACA,SAAS,IAAI,CACV,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,EAChC,SAAS,EAAC,oCAAoC,EAC9C,OAAO,EAAE,cAAM,OAAA,mBAAmB,CAAC,IAAI,CAAC,EAAzB,CAAyB,uBAG9B,CACjB,IACC,EAEN,eAAK,SAAS,EAAC,kCAAkC,+CACd,UAAU,kBACvC,EAEN,KAAC,mBAAmB,KAAG,IACrB,IACJ,GACJ,EACL,gBAAgB,IAAI,CACjB,KAAC,kBAAkB,IACf,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,qBAAqB,EACvC,yBAAyB,EAAE,yBAAyB,GACtD,CACL,IACF,CACN,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { permissionExpression } from '../../../helpers/permissions'\nimport { SolidCreateButton } from '../common/SolidCreateButton'\nimport { useHandleListCustomButtonClick } from '../../../components/common/useHandleListCustomButtonClick'\nimport { hasAnyRole } from '../../../helpers/rolesHelper'\nimport { env } from \"../../../adapters/env\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { useState } from \"react\";\nimport { Download, SquarePen } from \"lucide-react\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { SolidButton } from \"../../shad-cn-ui\";\n\nexport const SolidEmptyListViewPlaceholder = ({\n createButtonUrl,\n createActionQueryParams,\n actionsAllowed,\n params,\n solidListViewMetaData,\n handleFetchUpdatedRecords,\n}: any) => {\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const { data: session } = useSession();\n const user = session?.user;\n\n const layoutAttrs = solidListViewMetaData?.data?.solidView?.layout?.attrs ?? {};\n const displayName = solidListViewMetaData?.data?.solidView?.displayName ?? \"records\";\n const entityName = displayName.toLowerCase();\n const noDataText = solidListViewMetaData?.data?.solidView?.layout?.attrs?.listViewNoDataHelperText\n ?? (env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\") && solidListViewMetaData?.data?.solidView?.displayName\n ? `${env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\")} ${solidListViewMetaData.data.solidView.displayName}`\n : `There are no ${entityName} records yet.`);\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const normalizeAction = (value: boolean | string[] | undefined) => {\n if (value === true || value === undefined) return { enabled: true, roles: [] as string[] };\n if (value === false) return { enabled: false, roles: [] as string[] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] as string[] };\n };\n\n const importAction = normalizeAction(layoutAttrs.import);\n const canCreate =\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n layoutAttrs?.create !== false &&\n params.embeded !== true &&\n layoutAttrs.showDefaultAddButton !== false;\n const canImport =\n params.embeded !== true &&\n importAction.enabled &&\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) &&\n (importAction.roles.length === 0 || hasAnyRole(user?.roles, importAction.roles));\n\n const CustomActionButtons = () => {\n const headerButtons = layoutAttrs?.headerButtons ?? [];\n if (layoutAttrs.showDefaultAddButton !== false || !headerButtons.length) return null;\n\n return (\n <div className=\"solid-empty-listview-custom-actions\">\n {headerButtons.map((button: any) => {\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n if (!hasRole) return null;\n\n return (\n <SolidButton\n key={button?.attrs?.name || button?.attrs?.label}\n type=\"button\"\n className={`solid-empty-listview-secondary-action ${button?.attrs?.className ?? ''}`}\n variant={button?.attrs?.showText === false ? \"primary\" : \"ghost\"}\n size=\"small\"\n icon={button?.attrs?.icon}\n leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}\n onClick={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n >\n {button.attrs.label}\n </SolidButton>\n );\n })}\n </div>\n );\n };\n\n return (\n <>\n <div className='solid-empty-listview-placeholder-container'>\n <div className=\"solid-empty-listview-placeholder-panel\">\n <div className=\"solid-empty-listview-header\">\n <div className=\"solid-empty-listview-header-title\">{displayName}</div>\n <div className=\"solid-empty-listview-header-subtitle\">{noDataText}</div>\n </div>\n\n <div className=\"solid-empty-listview-body\">\n {/* <div className=\"solid-empty-listview-icon-wrap\">\n <FolderOpen className=\"solid-empty-listview-icon\" aria-hidden=\"true\" />\n </div>\n <div className=\"solid-empty-listview-title\">\n No {displayName} Data Available\n </div> */}\n\n <div className=\"solid-empty-listview-actions\">\n {canCreate && (\n <div className=\"solid-empty-listview-create-action\">\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n title={solidListViewMetaData?.data?.solidView?.displayName}\n />\n </div>\n )}\n {canImport && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n leftIcon={<Download size={14} />}\n className=\"solid-empty-listview-import-button\"\n onClick={() => setOpenImportDialog(true)}\n >\n Import\n </SolidButton>\n )}\n </div>\n\n <div className=\"solid-empty-listview-description\">\n Click Create or Import to add {entityName} entities.\n </div>\n\n <CustomActionButtons />\n </div>\n </div>\n </div>\n {openImportDialog && (\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={solidListViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidEmptyListViewPlaceholder.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from '../../../helpers/permissions'\nimport { SolidCreateButton } from '../common/SolidCreateButton'\nimport { useHandleListCustomButtonClick } from '../../../components/common/useHandleListCustomButtonClick'\nimport { hasAnyRole } from '../../../helpers/rolesHelper'\nimport { env } from \"../../../adapters/env\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { useState } from \"react\";\nimport { Download, SquarePen } from \"lucide-react\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { SolidButton } from \"../../shad-cn-ui\";\n\nexport const SolidEmptyListViewPlaceholder = ({\n createButtonUrl,\n createActionQueryParams,\n actionsAllowed,\n params,\n solidListViewMetaData,\n handleFetchUpdatedRecords,\n}: any) => {\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const { data: session } = useSession();\n const user = session?.user;\n\n const layoutAttrs = solidListViewMetaData?.data?.solidView?.layout?.attrs ?? {};\n const displayName = solidListViewMetaData?.data?.solidView?.displayName ?? \"records\";\n const entityName = displayName.toLowerCase();\n const noDataText = solidListViewMetaData?.data?.solidView?.layout?.attrs?.listViewNoDataHelperText\n ?? (env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\") && solidListViewMetaData?.data?.solidView?.displayName\n ? `${env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\")} ${solidListViewMetaData.data.solidView.displayName}`\n : `There are no ${entityName} records yet.`);\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const normalizeAction = (value: boolean | string[] | undefined) => {\n if (value === true || value === undefined) return { enabled: true, roles: [] as string[] };\n if (value === false) return { enabled: false, roles: [] as string[] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] as string[] };\n };\n\n const importAction = normalizeAction(layoutAttrs.import);\n const canCreate =\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n layoutAttrs?.create !== false &&\n params.embeded !== true &&\n layoutAttrs.showDefaultAddButton !== false;\n const canImport =\n params.embeded !== true &&\n importAction.enabled &&\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) &&\n (importAction.roles.length === 0 || hasAnyRole(user?.roles, importAction.roles));\n\n const CustomActionButtons = () => {\n const headerButtons = layoutAttrs?.headerButtons ?? [];\n if (layoutAttrs.showDefaultAddButton !== false || !headerButtons.length) return null;\n\n return (\n <div className=\"solid-empty-listview-custom-actions\">\n {headerButtons.map((button: any) => {\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n if (!hasRole) return null;\n\n return (\n <SolidButton\n key={button?.attrs?.name || button?.attrs?.label}\n type=\"button\"\n className={`solid-empty-listview-secondary-action ${button?.attrs?.className ?? ''}`}\n variant={button?.attrs?.showText === false ? \"primary\" : \"ghost\"}\n size=\"small\"\n icon={button?.attrs?.icon}\n leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}\n onClick={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n >\n {button.attrs.label}\n </SolidButton>\n );\n })}\n </div>\n );\n };\n\n return (\n <>\n <div className='solid-empty-listview-placeholder-container'>\n <div className=\"solid-empty-listview-placeholder-panel\">\n <div className=\"solid-empty-listview-header\">\n <div className=\"solid-empty-listview-header-title\">{displayName}</div>\n <div className=\"solid-empty-listview-header-subtitle\">{noDataText}</div>\n </div>\n\n <div className=\"solid-empty-listview-body\">\n {/* <div className=\"solid-empty-listview-icon-wrap\">\n <FolderOpen className=\"solid-empty-listview-icon\" aria-hidden=\"true\" />\n </div>\n <div className=\"solid-empty-listview-title\">\n No {displayName} Data Available\n </div> */}\n\n <div className=\"solid-empty-listview-actions\">\n {canCreate && (\n <div className=\"solid-empty-listview-create-action\">\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n title={solidListViewMetaData?.data?.solidView?.displayName}\n />\n </div>\n )}\n {canImport && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n leftIcon={<Download size={14} />}\n className=\"solid-empty-listview-import-button\"\n onClick={() => setOpenImportDialog(true)}\n >\n Import\n </SolidButton>\n )}\n </div>\n\n <div className=\"solid-empty-listview-description\">\n Click Create or Import to add {entityName} entities.\n </div>\n\n <CustomActionButtons />\n\n {(canCreate || canImport) && (\n <div className=\"solid-empty-listview-description\">\n Click Create or Import to add {entityName} entities.\n </div>\n )}\n </div>\n </div>\n </div>\n {openImportDialog && (\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={solidListViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n )}\n </>\n );\n};\n"]}
@@ -131,6 +131,12 @@ export const SolidEmptyListViewPlaceholder = ({
131
131
  </div>
132
132
 
133
133
  <CustomActionButtons />
134
+
135
+ {(canCreate || canImport) && (
136
+ <div className="solid-empty-listview-description">
137
+ Click Create or Import to add {entityName} entities.
138
+ </div>
139
+ )}
134
140
  </div>
135
141
  </div>
136
142
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"AdminTopHeader.d.ts","sourceRoot":"","sources":["../../../src/components/layout/AdminTopHeader.tsx"],"names":[],"mappings":"AA0BA,eAAO,MAAM,cAAc,+CA0I1B,CAAC"}
1
+ {"version":3,"file":"AdminTopHeader.d.ts","sourceRoot":"","sources":["../../../src/components/layout/AdminTopHeader.tsx"],"names":[],"mappings":"AA0BA,eAAO,MAAM,cAAc,+CA+K1B,CAAC"}
@@ -75,6 +75,30 @@ export var AdminTopHeader = function () {
75
75
  var triggerSidebar = function () {
76
76
  window.dispatchEvent(new CustomEvent(SIDEBAR_TOGGLE_EVENT));
77
77
  };
78
- return (_jsx("header", { className: "solid-admin-header", children: _jsxs("div", { className: "solid-admin-header-inner", children: [_jsx("button", { type: "button", className: "solid-admin-sidebar-trigger", onClick: triggerSidebar, "aria-label": "Toggle sidebar", children: _jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [_jsx("rect", { x: "1.5", y: "2", width: "13", height: "12", rx: "2", stroke: "currentColor" }), _jsx("path", { d: "M5.5 2V14", stroke: "currentColor" }), _jsx("rect", { x: "8", y: "5.25", width: "4.5", height: "5.5", rx: "0.9", stroke: "currentColor" })] }) }), _jsx("div", { className: "solid-admin-header-sep" }), _jsx("nav", { className: "solid-admin-breadcrumbs", "aria-label": "Breadcrumb", children: crumbs.map(function (crumb, index) { return (_jsxs("span", { className: "solid-admin-crumb", children: [index > 0 && _jsx("span", { className: "solid-admin-crumb-sep", children: "\u203A" }), _jsx("span", { children: crumb })] }, "".concat(crumb, "-").concat(index))); }) }), _jsxs("div", { className: "solid-admin-header-actions", children: [isAdmin && isDev && !isStudioMode && (_jsxs("button", { type: "button", className: "solid-studio-trigger-btn", onClick: function () { dispatch(enterStudioMode()); router.push("/studio"); }, title: "Enter SolidX Studio", children: [_jsx(StudioSparkleIcon, {}), "Studio"] })), _jsxs("button", { type: "button", className: "solid-admin-theme-toggle", onClick: toggleThemeMode, "aria-label": "Toggle theme", title: "Toggle theme", children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [_jsx("path", { d: "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 3l0 18", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 9l4.65 -4.65", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 14.3l7.37 -7.37", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 19.6l8.85 -8.85", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] }), _jsx("span", { className: "solid-sr-only", children: "Toggle theme" })] }), showBack && (_jsx("button", { type: "button", className: "solid-admin-back-btn", onClick: function () { return router.back(); }, "aria-label": "Go back", children: "Back" }))] })] }) }));
78
+ var handleBreadcrumbClick = function (crumbIndex) {
79
+ // When on a form view, clicking the model name (second crumb) should navigate back to list
80
+ // Index 1 is the model name in a breadcrumb like: Module > Model > Action
81
+ if (crumbIndex === 1 && showBack) {
82
+ if (typeof window !== "undefined") {
83
+ // First, try to use the full stored URL (preserves all query params)
84
+ var storedFullUrl = sessionStorage.getItem("fromViewUrl");
85
+ if (storedFullUrl) {
86
+ router.push(storedFullUrl);
87
+ return;
88
+ }
89
+ }
90
+ // Fallback: construct URL from current path and stored view
91
+ var segments = pathname.split("/").filter(Boolean);
92
+ if (segments[0] === "admin" && segments[1] === "core") {
93
+ var moduleName = segments[2];
94
+ var modelName = segments[3];
95
+ var fromView = typeof window !== "undefined"
96
+ ? sessionStorage.getItem("fromView") || "list"
97
+ : "list";
98
+ router.push("/admin/core/".concat(moduleName, "/").concat(modelName, "/").concat(fromView));
99
+ }
100
+ }
101
+ };
102
+ return (_jsx("header", { className: "solid-admin-header", children: _jsxs("div", { className: "solid-admin-header-inner", children: [_jsx("button", { type: "button", className: "solid-admin-sidebar-trigger", onClick: triggerSidebar, "aria-label": "Toggle sidebar", children: _jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [_jsx("rect", { x: "1.5", y: "2", width: "13", height: "12", rx: "2", stroke: "currentColor" }), _jsx("path", { d: "M5.5 2V14", stroke: "currentColor" }), _jsx("rect", { x: "8", y: "5.25", width: "4.5", height: "5.5", rx: "0.9", stroke: "currentColor" })] }) }), _jsx("div", { className: "solid-admin-header-sep" }), _jsx("nav", { className: "solid-admin-breadcrumbs", "aria-label": "Breadcrumb", children: crumbs.map(function (crumb, index) { return (_jsxs("span", { className: "solid-admin-crumb", children: [index > 0 && _jsx("span", { className: "solid-admin-crumb-sep", children: "\u203A" }), index === 1 && showBack ? (_jsx("button", { type: "button", className: "solid-admin-crumb-link", onClick: function () { return handleBreadcrumbClick(index); }, style: { background: "none", border: "none", cursor: "pointer", color: "inherit", textDecoration: "underline" }, children: crumb })) : (_jsx("span", { children: crumb }))] }, "".concat(crumb, "-").concat(index))); }) }), _jsxs("div", { className: "solid-admin-header-actions", children: [isAdmin && isDev && !isStudioMode && (_jsxs("button", { type: "button", className: "solid-studio-trigger-btn", onClick: function () { dispatch(enterStudioMode()); router.push("/studio"); }, title: "Enter SolidX Studio", children: [_jsx(StudioSparkleIcon, {}), "Studio"] })), _jsxs("button", { type: "button", className: "solid-admin-theme-toggle", onClick: toggleThemeMode, "aria-label": "Toggle theme", title: "Toggle theme", children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [_jsx("path", { d: "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 3l0 18", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 9l4.65 -4.65", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 14.3l7.37 -7.37", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 19.6l8.85 -8.85", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] }), _jsx("span", { className: "solid-sr-only", children: "Toggle theme" })] }), showBack && (_jsx("button", { type: "button", className: "solid-admin-back-btn", onClick: function () { return router.back(); }, "aria-label": "Go back", children: "Back" }))] })] }) }));
79
103
  };
80
104
  //# sourceMappingURL=AdminTopHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminTopHeader.js","sourceRoot":"","sources":["../../../src/components/layout/AdminTopHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { useGetSolidActionByIdQuery } from \"../../redux/api/solidActionApi\";\nimport { LayoutContext } from \"./context/layoutcontext\";\nimport { enterStudioMode } from \"../../redux/features/solidStudioSlice\";\nimport { hasAnyRole } from \"../../helpers/rolesHelper\";\nimport { env } from \"../../adapters/env\";\n\nconst SIDEBAR_TOGGLE_EVENT = \"solidx:sidebar-toggle\";\n\nconst toLabel = (value: string) =>\n decodeURIComponent(value)\n .replace(/[-_]/g, \" \")\n .replace(/\\b\\w/g, (m) => m.toUpperCase());\n\nconst StudioSparkleIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7 1v2M7 11v2M1 7h2M11 7h2M2.93 2.93l1.41 1.41M9.66 9.66l1.41 1.41M2.93 11.07l1.41-1.41M9.66 4.34l1.41-1.41\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n <circle cx=\"7\" cy=\"7\" r=\"2\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n </svg>\n);\n\nexport const AdminTopHeader = () => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n const dispatch = useDispatch();\n const { toggleThemeMode } = useContext(LayoutContext);\n const { data: session } = useSession();\n const user = session?.user;\n const isAdmin = hasAnyRole(user?.roles, [\"Admin\"]);\n const isStudioMode = useSelector((state: any) => state.solidStudio?.isStudioMode ?? false);\n const isDev = env(\"VITE_SOLIDX_ENV\") === \"dev\";\n\n // We treat actionId as the source of truth for breadcrumb labels.\n // If present, we resolve module/model/action via action-metadata API\n // so breadcrumbs are consistent across list/form/tree/kanban pages.\n const actionId = searchParams.get(\"actionId\");\n const { data: actionResponse } = useGetSolidActionByIdQuery(actionId as string, {\n skip: !actionId,\n });\n\n const crumbs = useMemo(() => {\n // API response shapes vary by adapter layer, so normalize defensively.\n const actionData = actionResponse?.data?.data ?? actionResponse?.data ?? actionResponse;\n const moduleFromApi = actionData?.module?.displayName || actionData?.module?.name;\n const modelFromApi = actionData?.model?.displayName || actionData?.model?.name;\n const actionFromApi = actionData?.displayName || actionData?.name;\n const actionDataId = actionData?.id != null ? String(actionData.id) : null;\n const hasMatchingActionData = Boolean(actionId) && actionDataId === actionId;\n\n // Priority 1: exact business breadcrumb contract requested:\n // <module> > <model> > <action>.\n // We only trust API crumbs when they belong to the current URL's actionId.\n // This avoids stale list breadcrumbs bleeding into form routes that do not\n // carry actionId in their query string.\n if (hasMatchingActionData && (moduleFromApi || modelFromApi || actionFromApi)) {\n return [moduleFromApi, modelFromApi, actionFromApi].filter(Boolean);\n }\n\n const segments = pathname.split(\"/\").filter(Boolean);\n // Priority 2: derive from route segments when API data is unavailable.\n // This is intentionally ahead of query fallback so form pages don't\n // inherit stale list query labels after list -> form navigation.\n if (segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n const viewName = segments[4];\n const next = [moduleName, modelName, viewName].filter(Boolean).map((item) => toLabel(item!));\n return next.length ? next : [\"Admin\"];\n }\n\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionName = searchParams.get(\"actionName\");\n\n // Priority 3: legacy URL-query fallback for older links/pages.\n if (menuItemName || actionName) {\n return [menuItemName, actionName].filter(Boolean).map((item) => toLabel(item!));\n }\n\n return [\"Admin\"];\n }, [actionId, actionResponse, pathname, searchParams]);\n\n const showBack = /\\/admin\\/core\\/[^/]+\\/[^/]+\\/form\\/[^/]+/.test(pathname);\n\n const triggerSidebar = () => {\n window.dispatchEvent(new CustomEvent(SIDEBAR_TOGGLE_EVENT));\n };\n\n return (\n <header className=\"solid-admin-header\">\n <div className=\"solid-admin-header-inner\">\n <button\n type=\"button\"\n className=\"solid-admin-sidebar-trigger\"\n onClick={triggerSidebar}\n aria-label=\"Toggle sidebar\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"2\" width=\"13\" height=\"12\" rx=\"2\" stroke=\"currentColor\" />\n <path d=\"M5.5 2V14\" stroke=\"currentColor\" />\n <rect x=\"8\" y=\"5.25\" width=\"4.5\" height=\"5.5\" rx=\"0.9\" stroke=\"currentColor\" />\n </svg>\n </button>\n\n <div className=\"solid-admin-header-sep\" />\n\n <nav className=\"solid-admin-breadcrumbs\" aria-label=\"Breadcrumb\">\n {crumbs.map((crumb, index) => (\n <span key={`${crumb}-${index}`} className=\"solid-admin-crumb\">\n {index > 0 && <span className=\"solid-admin-crumb-sep\">›</span>}\n <span>{crumb}</span>\n </span>\n ))}\n </nav>\n\n <div className=\"solid-admin-header-actions\">\n {isAdmin && isDev && !isStudioMode && (\n <button\n type=\"button\"\n className=\"solid-studio-trigger-btn\"\n onClick={() => { dispatch(enterStudioMode()); router.push(\"/studio\"); }}\n title=\"Enter SolidX Studio\"\n >\n <StudioSparkleIcon />\n Studio\n </button>\n )}\n\n <button\n type=\"button\"\n className=\"solid-admin-theme-toggle\"\n onClick={toggleThemeMode}\n aria-label=\"Toggle theme\"\n title=\"Toggle theme\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 3l0 18\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 9l4.65 -4.65\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 14.3l7.37 -7.37\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 19.6l8.85 -8.85\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n <span className=\"solid-sr-only\">Toggle theme</span>\n </button>\n\n {showBack && (\n <button\n type=\"button\"\n className=\"solid-admin-back-btn\"\n onClick={() => router.back()}\n aria-label=\"Go back\"\n >\n Back\n </button>\n )}\n </div>\n </div>\n </header>\n );\n};\n"]}
1
+ {"version":3,"file":"AdminTopHeader.js","sourceRoot":"","sources":["../../../src/components/layout/AdminTopHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { useGetSolidActionByIdQuery } from \"../../redux/api/solidActionApi\";\nimport { LayoutContext } from \"./context/layoutcontext\";\nimport { enterStudioMode } from \"../../redux/features/solidStudioSlice\";\nimport { hasAnyRole } from \"../../helpers/rolesHelper\";\nimport { env } from \"../../adapters/env\";\n\nconst SIDEBAR_TOGGLE_EVENT = \"solidx:sidebar-toggle\";\n\nconst toLabel = (value: string) =>\n decodeURIComponent(value)\n .replace(/[-_]/g, \" \")\n .replace(/\\b\\w/g, (m) => m.toUpperCase());\n\nconst StudioSparkleIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7 1v2M7 11v2M1 7h2M11 7h2M2.93 2.93l1.41 1.41M9.66 9.66l1.41 1.41M2.93 11.07l1.41-1.41M9.66 4.34l1.41-1.41\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n <circle cx=\"7\" cy=\"7\" r=\"2\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n </svg>\n);\n\nexport const AdminTopHeader = () => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n const dispatch = useDispatch();\n const { toggleThemeMode } = useContext(LayoutContext);\n const { data: session } = useSession();\n const user = session?.user;\n const isAdmin = hasAnyRole(user?.roles, [\"Admin\"]);\n const isStudioMode = useSelector((state: any) => state.solidStudio?.isStudioMode ?? false);\n const isDev = env(\"VITE_SOLIDX_ENV\") === \"dev\";\n\n // We treat actionId as the source of truth for breadcrumb labels.\n // If present, we resolve module/model/action via action-metadata API\n // so breadcrumbs are consistent across list/form/tree/kanban pages.\n const actionId = searchParams.get(\"actionId\");\n const { data: actionResponse } = useGetSolidActionByIdQuery(actionId as string, {\n skip: !actionId,\n });\n\n const crumbs = useMemo(() => {\n // API response shapes vary by adapter layer, so normalize defensively.\n const actionData = actionResponse?.data?.data ?? actionResponse?.data ?? actionResponse;\n const moduleFromApi = actionData?.module?.displayName || actionData?.module?.name;\n const modelFromApi = actionData?.model?.displayName || actionData?.model?.name;\n const actionFromApi = actionData?.displayName || actionData?.name;\n const actionDataId = actionData?.id != null ? String(actionData.id) : null;\n const hasMatchingActionData = Boolean(actionId) && actionDataId === actionId;\n\n // Priority 1: exact business breadcrumb contract requested:\n // <module> > <model> > <action>.\n // We only trust API crumbs when they belong to the current URL's actionId.\n // This avoids stale list breadcrumbs bleeding into form routes that do not\n // carry actionId in their query string.\n if (hasMatchingActionData && (moduleFromApi || modelFromApi || actionFromApi)) {\n return [moduleFromApi, modelFromApi, actionFromApi].filter(Boolean);\n }\n\n const segments = pathname.split(\"/\").filter(Boolean);\n // Priority 2: derive from route segments when API data is unavailable.\n // This is intentionally ahead of query fallback so form pages don't\n // inherit stale list query labels after list -> form navigation.\n if (segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n const viewName = segments[4];\n const next = [moduleName, modelName, viewName].filter(Boolean).map((item) => toLabel(item!));\n return next.length ? next : [\"Admin\"];\n }\n\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionName = searchParams.get(\"actionName\");\n\n // Priority 3: legacy URL-query fallback for older links/pages.\n if (menuItemName || actionName) {\n return [menuItemName, actionName].filter(Boolean).map((item) => toLabel(item!));\n }\n\n return [\"Admin\"];\n }, [actionId, actionResponse, pathname, searchParams]);\n\n const showBack = /\\/admin\\/core\\/[^/]+\\/[^/]+\\/form\\/[^/]+/.test(pathname);\n\n const triggerSidebar = () => {\n window.dispatchEvent(new CustomEvent(SIDEBAR_TOGGLE_EVENT));\n };\n\n const handleBreadcrumbClick = (crumbIndex: number) => {\n // When on a form view, clicking the model name (second crumb) should navigate back to list\n // Index 1 is the model name in a breadcrumb like: Module > Model > Action\n if (crumbIndex === 1 && showBack) {\n if (typeof window !== \"undefined\") {\n // First, try to use the full stored URL (preserves all query params)\n const storedFullUrl = sessionStorage.getItem(\"fromViewUrl\");\n if (storedFullUrl) {\n router.push(storedFullUrl);\n return;\n }\n }\n \n // Fallback: construct URL from current path and stored view\n const segments = pathname.split(\"/\").filter(Boolean);\n if (segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n const fromView = typeof window !== \"undefined\" \n ? sessionStorage.getItem(\"fromView\") || \"list\" \n : \"list\";\n router.push(`/admin/core/${moduleName}/${modelName}/${fromView}`);\n }\n }\n };\n\n return (\n <header className=\"solid-admin-header\">\n <div className=\"solid-admin-header-inner\">\n <button\n type=\"button\"\n className=\"solid-admin-sidebar-trigger\"\n onClick={triggerSidebar}\n aria-label=\"Toggle sidebar\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"2\" width=\"13\" height=\"12\" rx=\"2\" stroke=\"currentColor\" />\n <path d=\"M5.5 2V14\" stroke=\"currentColor\" />\n <rect x=\"8\" y=\"5.25\" width=\"4.5\" height=\"5.5\" rx=\"0.9\" stroke=\"currentColor\" />\n </svg>\n </button>\n\n <div className=\"solid-admin-header-sep\" />\n\n <nav className=\"solid-admin-breadcrumbs\" aria-label=\"Breadcrumb\">\n {crumbs.map((crumb, index) => (\n <span key={`${crumb}-${index}`} className=\"solid-admin-crumb\">\n {index > 0 && <span className=\"solid-admin-crumb-sep\">›</span>}\n {index === 1 && showBack ? (\n <button\n type=\"button\"\n className=\"solid-admin-crumb-link\"\n onClick={() => handleBreadcrumbClick(index)}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", color: \"inherit\", textDecoration: \"underline\" }}\n >\n {crumb}\n </button>\n ) : (\n <span>{crumb}</span>\n )}\n </span>\n ))}\n </nav>\n\n <div className=\"solid-admin-header-actions\">\n {isAdmin && isDev && !isStudioMode && (\n <button\n type=\"button\"\n className=\"solid-studio-trigger-btn\"\n onClick={() => { dispatch(enterStudioMode()); router.push(\"/studio\"); }}\n title=\"Enter SolidX Studio\"\n >\n <StudioSparkleIcon />\n Studio\n </button>\n )}\n\n <button\n type=\"button\"\n className=\"solid-admin-theme-toggle\"\n onClick={toggleThemeMode}\n aria-label=\"Toggle theme\"\n title=\"Toggle theme\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 3l0 18\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 9l4.65 -4.65\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 14.3l7.37 -7.37\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 19.6l8.85 -8.85\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n <span className=\"solid-sr-only\">Toggle theme</span>\n </button>\n\n {showBack && (\n <button\n type=\"button\"\n className=\"solid-admin-back-btn\"\n onClick={() => router.back()}\n aria-label=\"Go back\"\n >\n Back\n </button>\n )}\n </div>\n </div>\n </header>\n );\n};\n"]}
@@ -91,6 +91,32 @@ export const AdminTopHeader = () => {
91
91
  window.dispatchEvent(new CustomEvent(SIDEBAR_TOGGLE_EVENT));
92
92
  };
93
93
 
94
+ const handleBreadcrumbClick = (crumbIndex: number) => {
95
+ // When on a form view, clicking the model name (second crumb) should navigate back to list
96
+ // Index 1 is the model name in a breadcrumb like: Module > Model > Action
97
+ if (crumbIndex === 1 && showBack) {
98
+ if (typeof window !== "undefined") {
99
+ // First, try to use the full stored URL (preserves all query params)
100
+ const storedFullUrl = sessionStorage.getItem("fromViewUrl");
101
+ if (storedFullUrl) {
102
+ router.push(storedFullUrl);
103
+ return;
104
+ }
105
+ }
106
+
107
+ // Fallback: construct URL from current path and stored view
108
+ const segments = pathname.split("/").filter(Boolean);
109
+ if (segments[0] === "admin" && segments[1] === "core") {
110
+ const moduleName = segments[2];
111
+ const modelName = segments[3];
112
+ const fromView = typeof window !== "undefined"
113
+ ? sessionStorage.getItem("fromView") || "list"
114
+ : "list";
115
+ router.push(`/admin/core/${moduleName}/${modelName}/${fromView}`);
116
+ }
117
+ }
118
+ };
119
+
94
120
  return (
95
121
  <header className="solid-admin-header">
96
122
  <div className="solid-admin-header-inner">
@@ -113,7 +139,18 @@ export const AdminTopHeader = () => {
113
139
  {crumbs.map((crumb, index) => (
114
140
  <span key={`${crumb}-${index}`} className="solid-admin-crumb">
115
141
  {index > 0 && <span className="solid-admin-crumb-sep">›</span>}
116
- <span>{crumb}</span>
142
+ {index === 1 && showBack ? (
143
+ <button
144
+ type="button"
145
+ className="solid-admin-crumb-link"
146
+ onClick={() => handleBreadcrumbClick(index)}
147
+ style={{ background: "none", border: "none", cursor: "pointer", color: "inherit", textDecoration: "underline" }}
148
+ >
149
+ {crumb}
150
+ </button>
151
+ ) : (
152
+ <span>{crumb}</span>
153
+ )}
117
154
  </span>
118
155
  ))}
119
156
  </nav>
@@ -11,7 +11,7 @@ export function SolidTab(_props) {
11
11
  }
12
12
  export function SolidTabGroup(_a) {
13
13
  var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName, _b = _a.tabPosition, tabPosition = _b === void 0 ? "left" : _b, extra = _a.extra;
14
- return (_jsxs("div", { className: cx("solid-notebook", "solid-tabs", "solid-tabs--".concat(tabPosition), className), children: [_jsxs("div", { className: cx("solid-notebook-tablist", "solid-tabs-list", listClassName), role: "tablist", style: extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined, children: [_jsx("div", { style: extra ? { display: "flex" } : undefined, children: tabs.map(function (tab) {
14
+ return (_jsxs("div", { className: cx("solid-notebook", "solid-tabs", "solid-tabs--".concat(tabPosition), className), children: [_jsxs("div", { className: cx("solid-notebook-tablist", "solid-tabs-list", listClassName), role: "tablist", style: extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined, children: [_jsx("div", { style: extra ? { display: "flex" } : undefined, className: cx("solid-tabs-list-inner", listClassName), children: tabs.map(function (tab) {
15
15
  var isActive = tab.value === value;
16
16
  return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-notebook-tab-trigger", "solid-tabs-trigger", tab.hasError && "error", isActive && "active", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
17
17
  }) }), extra && _jsx("div", { children: extra })] }), tabs.map(function (tab) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":";AAoBA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAST;QARnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,mBAAoB,EAApB,WAAW,mBAAG,MAAM,KAAA,EACpB,KAAK,WAAA;IAEL,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,sBAAe,WAAW,CAAE,EAAE,SAAS,CAAC,aACzF,eACE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,CAAC,EACzE,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,aAErG,cAAK,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,YAClD,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;4BACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;4BACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;wBACJ,CAAC,CAAC,GACI,EACL,KAAK,IAAI,wBAAM,KAAK,GAAO,IACxB,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,cAAc,CAAC,YAE1E,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAPzB,GAAG,CAAC,KAAK,CAQV,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-notebook\", \"solid-tabs\", `solid-tabs--${tabPosition}`, className)}>\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n <div style={extra ? { display: \"flex\" } : undefined}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":";AAoBA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAST;QARnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,mBAAoB,EAApB,WAAW,mBAAG,MAAM,KAAA,EACpB,KAAK,WAAA;IAEL,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,sBAAe,WAAW,CAAE,EAAE,SAAS,CAAC,aACzF,eACE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,CAAC,EACzE,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,aAErG,cAAK,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,aAAa,CAAC,YACzG,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;4BACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;4BACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;wBACJ,CAAC,CAAC,GACI,EACL,KAAK,IAAI,wBAAM,KAAK,GAAO,IACxB,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,cAAc,CAAC,YAE1E,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAPzB,GAAG,CAAC,KAAK,CAQV,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-notebook\", \"solid-tabs\", `solid-tabs--${tabPosition}`, className)}>\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n <div style={extra ? { display: \"flex\" } : undefined} className={cx(\"solid-tabs-list-inner\", listClassName)}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
@@ -43,7 +43,7 @@ export function SolidTabGroup({
43
43
  role="tablist"
44
44
  style={extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined}
45
45
  >
46
- <div style={extra ? { display: "flex" } : undefined}>
46
+ <div style={extra ? { display: "flex" } : undefined} className={cx("solid-tabs-list-inner", listClassName)}>
47
47
  {tabs.map((tab) => {
48
48
  const isActive = tab.value === value;
49
49
  return (
@@ -1553,6 +1553,10 @@ body {
1553
1553
  justify-content: flex-start;
1554
1554
  }
1555
1555
 
1556
+ .solid-tabs-list-inner {
1557
+ width: 100%;
1558
+ }
1559
+
1556
1560
  .solid-tabs--center .solid-tabs-list {
1557
1561
  justify-content: center;
1558
1562
  }
@@ -2407,7 +2411,7 @@ body {
2407
2411
  }
2408
2412
 
2409
2413
  .solid-auth-theme-wrapper .solid-auth-tabs-list {
2410
- display: grid !important;
2414
+ /* display: grid !important; */
2411
2415
  grid-template-columns: 1fr 1fr !important;
2412
2416
  gap: 4px !important;
2413
2417
  padding: 3px !important;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthGuard.d.ts","sourceRoot":"","sources":["../../../src/routes/guards/AuthGuard.tsx"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,2CAiC1D"}
1
+ {"version":3,"file":"AuthGuard.d.ts","sourceRoot":"","sources":["../../../src/routes/guards/AuthGuard.tsx"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,2CAsC1D"}
@@ -10,8 +10,11 @@ export function AuthGuard(_a) {
10
10
  if (segments.length === 0)
11
11
  return "/auth/login";
12
12
  var base = segments[0];
13
- if (base === "auth")
13
+ // routes that should NOT be treated as tenant
14
+ var systemRoutes = ["admin", "auth"];
15
+ if (systemRoutes.includes(base)) {
14
16
  return "/auth/login";
17
+ }
15
18
  return "/".concat(base, "/auth/login");
16
19
  };
17
20
  var resolveLoginRoute = getLoginRoute || defaultGetLoginRoute;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthGuard.js","sourceRoot":"","sources":["../../../src/routes/guards/AuthGuard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,MAAM,UAAU,SAAS,CAAC,EAAiC;QAA/B,aAAa,mBAAA;IACvC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACvB,IAAA,MAAM,GAAK,UAAU,EAAE,OAAjB,CAAkB;IAEhC,IAAM,oBAAoB,GAAG,UAAC,QAAgB;QAC5C,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC;QAEhD,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,aAAa,CAAC;QAE1C,OAAO,WAAI,IAAI,gBAAa,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG,aAAa,IAAI,oBAAoB,CAAC;IAEhE,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO,uCAAqB,CAAC;KAC9B;IAED,IAAI,MAAM,KAAK,iBAAiB,EAAE;QAChC,OAAO,CACL,KAAC,QAAQ,IACP,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACxC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EACzB,OAAO,SACP,CACH,CAAC;KACH;IAED,OAAO,KAAC,MAAM,KAAG,CAAC;AACpB,CAAC","sourcesContent":["import { Navigate, Outlet, useLocation } from \"react-router-dom\";\nimport { useSession } from \"../../hooks/useSession\";\n\ntype AuthGuardProps = {\n getLoginRoute?: (pathname: string) => string;\n};\n\nexport function AuthGuard({ getLoginRoute }: AuthGuardProps) {\n const location = useLocation();\n const { status } = useSession();\n\n const defaultGetLoginRoute = (pathname: string) => {\n const segments = pathname.split(\"/\").filter(Boolean);\n\n if (segments.length === 0) return \"/auth/login\";\n\n const base = segments[0];\n\n if (base === \"auth\") return \"/auth/login\";\n\n return `/${base}/auth/login`;\n };\n\n const resolveLoginRoute = getLoginRoute || defaultGetLoginRoute;\n\n if (status === \"loading\") {\n return <div>Loading...</div>;\n }\n\n if (status === \"unauthenticated\") {\n return (\n <Navigate\n to={resolveLoginRoute(location.pathname)}\n state={{ from: location }}\n replace\n />\n );\n }\n\n return <Outlet />;\n}"]}
1
+ {"version":3,"file":"AuthGuard.js","sourceRoot":"","sources":["../../../src/routes/guards/AuthGuard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,MAAM,UAAU,SAAS,CAAC,EAAiC;QAA/B,aAAa,mBAAA;IACvC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACvB,IAAA,MAAM,GAAK,UAAU,EAAE,OAAjB,CAAkB;IAEhC,IAAM,oBAAoB,GAAG,UAAC,QAAgB;QAC5C,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC;QAEhD,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEzB,8CAA8C;QAC9C,IAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEvC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC/B,OAAO,aAAa,CAAC;SACtB;QAED,OAAO,WAAI,IAAI,gBAAa,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG,aAAa,IAAI,oBAAoB,CAAC;IAEhE,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO,uCAAqB,CAAC;KAC9B;IAED,IAAI,MAAM,KAAK,iBAAiB,EAAE;QAChC,OAAO,CACL,KAAC,QAAQ,IACP,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACxC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EACzB,OAAO,SACP,CACH,CAAC;KACH;IAED,OAAO,KAAC,MAAM,KAAG,CAAC;AACpB,CAAC","sourcesContent":["import { Navigate, Outlet, useLocation } from \"react-router-dom\";\nimport { useSession } from \"../../hooks/useSession\";\n\ntype AuthGuardProps = {\n getLoginRoute?: (pathname: string) => string;\n};\n\nexport function AuthGuard({ getLoginRoute }: AuthGuardProps) {\n const location = useLocation();\n const { status } = useSession();\n\n const defaultGetLoginRoute = (pathname: string) => {\n const segments = pathname.split(\"/\").filter(Boolean);\n\n if (segments.length === 0) return \"/auth/login\";\n\n const base = segments[0];\n\n // routes that should NOT be treated as tenant\n const systemRoutes = [\"admin\", \"auth\"];\n\n if (systemRoutes.includes(base)) {\n return \"/auth/login\";\n }\n\n return `/${base}/auth/login`;\n };\n\n const resolveLoginRoute = getLoginRoute || defaultGetLoginRoute;\n\n if (status === \"loading\") {\n return <div>Loading...</div>;\n }\n\n if (status === \"unauthenticated\") {\n return (\n <Navigate\n to={resolveLoginRoute(location.pathname)}\n state={{ from: location }}\n replace\n />\n );\n }\n\n return <Outlet />;\n}"]}
@@ -16,7 +16,12 @@ export function AuthGuard({ getLoginRoute }: AuthGuardProps) {
16
16
 
17
17
  const base = segments[0];
18
18
 
19
- if (base === "auth") return "/auth/login";
19
+ // routes that should NOT be treated as tenant
20
+ const systemRoutes = ["admin", "auth"];
21
+
22
+ if (systemRoutes.includes(base)) {
23
+ return "/auth/login";
24
+ }
20
25
 
21
26
  return `/${base}/auth/login`;
22
27
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidxai/core-ui",
3
- "version": "0.1.8-beta.2",
3
+ "version": "0.1.8-beta.3",
4
4
  "scripts": {
5
5
  "prebuild": "npm run copy-resources && npm run copy-styles",
6
6
  "build": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json",