@solidxai/core-ui 0.1.8-beta.6 → 0.1.8-beta.7

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 (78) hide show
  1. package/dist/components/common/AuthBanner.js.map +1 -1
  2. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  3. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  4. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  5. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  6. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  7. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  8. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  9. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  10. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  11. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  12. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  13. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  14. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  15. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  16. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  17. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  18. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  19. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  20. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  21. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  22. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  23. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  24. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  25. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +1 -1
  26. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  27. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +0 -4
  28. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  29. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  30. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  31. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  32. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  33. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  34. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  35. package/dist/components/solid-ui/SolidButton.js +36 -0
  36. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  37. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  38. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  39. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  40. package/dist/components/solid-ui/SolidTabs.js +22 -0
  41. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  42. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  43. package/dist/components/solid-ui/index.d.ts +3 -0
  44. package/dist/components/solid-ui/index.d.ts.map +1 -0
  45. package/dist/components/solid-ui/index.js +3 -0
  46. package/dist/components/solid-ui/index.js.map +1 -0
  47. package/dist/components/solid-ui/index.ts +2 -0
  48. package/package.json +1 -1
  49. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  50. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  51. package/dist/components/auth/SolidOTPVerify.js +0 -67
  52. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  53. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  54. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  55. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  56. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  57. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  58. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  59. package/dist/nextAuth/authProviders.d.ts +0 -4
  60. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  61. package/dist/nextAuth/authProviders.js +0 -198
  62. package/dist/nextAuth/authProviders.js.map +0 -1
  63. package/dist/nextAuth/authProviders.tsx +0 -232
  64. package/dist/nextAuth/handleLogout.d.ts +0 -2
  65. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  66. package/dist/nextAuth/handleLogout.js +0 -36
  67. package/dist/nextAuth/handleLogout.js.map +0 -1
  68. package/dist/nextAuth/handleLogout.tsx +0 -39
  69. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  70. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  71. package/dist/nextAuth/refreshAccessToken.js +0 -24
  72. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  73. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  74. package/dist/redux/features/settingsSlice.d.ts +0 -20
  75. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  76. package/dist/redux/features/settingsSlice.js +0 -39
  77. package/dist/redux/features/settingsSlice.js.map +0 -1
  78. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -1,7 +1,6 @@
1
1
 
2
2
  import { useState } from 'react';
3
3
  import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
4
- import { Dialog } from 'primereact/dialog';
5
4
  import { Document, Page } from "react-pdf";
6
5
  import { PDFSvg } from '../../../../components/Svg/PDFSvg';
7
6
  import MP3Image from '../../../../resources/images/fileTypes/Mp3.png'
@@ -9,29 +8,18 @@ import MP4Image from '../../../../resources/images/fileTypes/Mp4.png'
9
8
  import FileImage from '../../../../resources/images/fileTypes/File.png'
10
9
  import Image from "../../../common/Image";
11
10
  import { ExcelSvg } from '../../../../components/Svg/ExcelSvg';
11
+ import {
12
+ SolidDialog,
13
+ SolidDialogBody,
14
+ SolidDialogClose,
15
+ SolidDialogHeader,
16
+ SolidDialogTitle,
17
+ } from "../../../shad-cn-ui";
12
18
  const SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox, groupedView }: SolidKanbanViewFieldsParams) => {
13
19
  const [visible, setVisible] = useState(false);
14
20
  const widget = fieldLayout?.attrs?.widget ? fieldLayout?.attrs?.widget : "text";
15
21
  const mimeType = data && data?.mimeType
16
22
  const fileName = data?.originalFileName;
17
- const PDFHeader = () => {
18
- return (
19
- <div className='flex justify-content-between align-items-center'>
20
- <p className='m-0'>
21
- {fileName}
22
- </p>
23
- <a
24
- href={data[fieldMetadata.name]}
25
- download={fileName}
26
- target="_blank"
27
- rel="noopener noreferrer"
28
- className='mr-4'
29
- >
30
- <i className='pi pi-download' />
31
- </a>
32
- </div>
33
- )
34
- }
35
23
  return (
36
24
  <div className={`${fieldLayout?.attrs?.className ? ` ${fieldLayout.attrs.className}` : ""}`}>
37
25
  {widget === "text" && groupedView &&
@@ -61,11 +49,29 @@ const SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fie
61
49
  <div className='kanban-media-view-card' onClick={() => setVisible(true)} style={{ cursor: 'pointer' }}>
62
50
  <PDFSvg />
63
51
  </div>
64
- <Dialog header={<PDFHeader />} visible={visible} style={{ width: "" }} onHide={() => setVisible(false)} modal>
65
- <Document file={data[fieldMetadata.name]}>
66
- <Page pageNumber={1} />
67
- </Document>
68
- </Dialog>
52
+ <SolidDialog open={visible} onOpenChange={setVisible} className="solid-kanban-preview-dialog">
53
+ <SolidDialogHeader className="solid-kanban-preview-dialog-header">
54
+ <div className="solid-kanban-preview-dialog-title-row">
55
+ <SolidDialogTitle>{fileName}</SolidDialogTitle>
56
+ <a
57
+ href={data[fieldMetadata.name]}
58
+ download={fileName}
59
+ target="_blank"
60
+ rel="noopener noreferrer"
61
+ className="solid-kanban-preview-download"
62
+ onClick={(event) => event.stopPropagation()}
63
+ >
64
+ <i className='pi pi-download' />
65
+ </a>
66
+ <SolidDialogClose />
67
+ </div>
68
+ </SolidDialogHeader>
69
+ <SolidDialogBody className="solid-kanban-preview-dialog-body">
70
+ <Document file={data[fieldMetadata.name]}>
71
+ <Page pageNumber={1} />
72
+ </Document>
73
+ </SolidDialogBody>
74
+ </SolidDialog>
69
75
  </div>
70
76
  )}
71
77
 
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneKanbanField.js","sourceRoot":"","sources":["../../../../../../src/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx"],"names":[],"mappings":";AAOA,IAAM,iCAAiC,GAAG,UAAC,EAAyF;QAAvF,uBAAuB,6BAAA,EAAE,aAAa,mBAAA,EAAE,WAAW,iBAAA,EAAC,IAAI,UAAA;IAEjG,OAAO,CACJ,mBAAK,CACP,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,iCAAiC,CAAC","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/kanban/SolidVarInputsFilterElement';\nimport { SolidKanbanViewFieldsParams } from '../../../../../components/core/kanban/SolidKanbanViewFields';\n\nconst SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {\n \n return (\n <></>\n );\n\n};\n\nexport default SolidRelationManyToOneKanbanField;"]}
1
+ {"version":3,"file":"SolidRelationManyToOneKanbanField.js","sourceRoot":"","sources":["../../../../../../src/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx"],"names":[],"mappings":";AAOA,IAAM,iCAAiC,GAAG,UAAC,EAAyF;QAAvF,uBAAuB,6BAAA,EAAE,aAAa,mBAAA,EAAE,WAAW,iBAAA,EAAC,IAAI,UAAA;IAEjG,OAAO,CACJ,mBAAK,CACP,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,iCAAiC,CAAC","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/filter/SolidVarInputsFilterElement';\nimport { SolidKanbanViewFieldsParams } from '../../../../../components/core/kanban/SolidKanbanViewFields';\n\nconst SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {\n \n return (\n <></>\n );\n\n};\n\nexport default SolidRelationManyToOneKanbanField;\n"]}
@@ -2,7 +2,7 @@
2
2
  import { FilterMatchMode } from 'primereact/api';
3
3
  import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
4
  import { FormEvent } from "primereact/ts-helpers";
5
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/kanban/SolidVarInputsFilterElement';
5
+ import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/filter/SolidVarInputsFilterElement';
6
6
  import { SolidKanbanViewFieldsParams } from '../../../../../components/core/kanban/SolidKanbanViewFields';
7
7
 
8
8
  const SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
@@ -13,4 +13,4 @@ const SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetad
13
13
 
14
14
  };
15
15
 
16
- export default SolidRelationManyToOneKanbanField;
16
+ export default SolidRelationManyToOneKanbanField;
@@ -0,0 +1,15 @@
1
+ type SolidDataTablePaginationProps = {
2
+ rows: number;
3
+ first: number;
4
+ totalRecords: number;
5
+ rowsPerPageOptions?: number[];
6
+ onPage: (event: {
7
+ first: number;
8
+ rows: number;
9
+ }) => void;
10
+ currentPageReportTemplate?: string;
11
+ className?: string;
12
+ };
13
+ export declare function SolidDataTablePagination({ rows, first, totalRecords, rowsPerPageOptions, onPage, currentPageReportTemplate, className, }: SolidDataTablePaginationProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=SolidDataTablePagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidDataTablePagination.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTablePagination.tsx"],"names":[],"mappings":"AAEA,KAAK,6BAA6B,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,kBAAsC,EACtC,MAAM,EACN,yBAAgE,EAChE,SAAS,GACV,EAAE,6BAA6B,2CA+C/B"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ var cx = function () {
3
+ var parts = [];
4
+ for (var _i = 0; _i < arguments.length; _i++) {
5
+ parts[_i] = arguments[_i];
6
+ }
7
+ return parts.filter(Boolean).join(" ");
8
+ };
9
+ export function SolidDataTablePagination(_a) {
10
+ var rows = _a.rows, first = _a.first, totalRecords = _a.totalRecords, _b = _a.rowsPerPageOptions, rowsPerPageOptions = _b === void 0 ? [10, 25, 50, 100] : _b, onPage = _a.onPage, _c = _a.currentPageReportTemplate, currentPageReportTemplate = _c === void 0 ? "{first} - {last} of {totalRecords}" : _c, className = _a.className;
11
+ var safeRows = rows > 0 ? rows : 25;
12
+ var start = totalRecords === 0 ? 0 : first + 1;
13
+ var end = Math.min(first + safeRows, totalRecords);
14
+ var currentPage = Math.floor(first / safeRows) + 1;
15
+ var totalPages = Math.max(1, Math.ceil(totalRecords / safeRows));
16
+ var report = currentPageReportTemplate
17
+ .replace("{first}", String(start))
18
+ .replace("{last}", String(end))
19
+ .replace("{totalRecords}", String(totalRecords));
20
+ return (_jsxs("div", { className: cx("w-full solid-table-paginator flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", className), children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2 ml-auto", children: [_jsx("span", { className: "solid-paginator-label", children: "Rows" }), _jsx("select", { value: safeRows, onChange: function (e) { return onPage({ first: 0, rows: Number(e.target.value) }); }, className: "solid-paginator-select", children: rowsPerPageOptions.map(function (option) { return (_jsx("option", { value: option, children: option }, option)); }) }), _jsx("span", { className: "solid-paginator-report", children: report })] }), _jsxs("div", { className: "solid-paginator-actions flex items-center gap-2", children: [_jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { return onPage({ first: Math.max(0, first - safeRows), rows: safeRows }); }, disabled: currentPage <= 1, children: "Previous" }), _jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { return onPage({ first: Math.min((totalPages - 1) * safeRows, first + safeRows), rows: safeRows }); }, disabled: currentPage >= totalPages, children: "Next" })] })] }));
21
+ }
22
+ //# sourceMappingURL=SolidDataTablePagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidDataTablePagination.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTablePagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype SolidDataTablePaginationProps = {\n rows: number;\n first: number;\n totalRecords: number;\n rowsPerPageOptions?: number[];\n onPage: (event: { first: number; rows: number }) => void;\n currentPageReportTemplate?: string;\n className?: string;\n};\n\nconst cx = (...parts: Array<string | undefined | false>) => parts.filter(Boolean).join(\" \");\n\nexport function SolidDataTablePagination({\n rows,\n first,\n totalRecords,\n rowsPerPageOptions = [10, 25, 50, 100],\n onPage,\n currentPageReportTemplate = \"{first} - {last} of {totalRecords}\",\n className,\n}: SolidDataTablePaginationProps) {\n const safeRows = rows > 0 ? rows : 25;\n const start = totalRecords === 0 ? 0 : first + 1;\n const end = Math.min(first + safeRows, totalRecords);\n const currentPage = Math.floor(first / safeRows) + 1;\n const totalPages = Math.max(1, Math.ceil(totalRecords / safeRows));\n\n const report = currentPageReportTemplate\n .replace(\"{first}\", String(start))\n .replace(\"{last}\", String(end))\n .replace(\"{totalRecords}\", String(totalRecords));\n\n return (\n <div className={cx(\"w-full solid-table-paginator flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\", className)}>\n <div className=\"solid-paginator-meta flex items-center gap-2 ml-auto\">\n <span className=\"solid-paginator-label\">Rows</span>\n <select\n value={safeRows}\n onChange={(e) => onPage({ first: 0, rows: Number(e.target.value) })}\n className=\"solid-paginator-select\"\n >\n {rowsPerPageOptions.map((option) => (\n <option key={option} value={option}>{option}</option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{report}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.max(0, first - safeRows), rows: safeRows })}\n disabled={currentPage <= 1}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.min((totalPages - 1) * safeRows, first + safeRows), rows: safeRows })}\n disabled={currentPage >= totalPages}\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n\n"]}
@@ -0,0 +1,71 @@
1
+ import React from "react";
2
+
3
+ type SolidDataTablePaginationProps = {
4
+ rows: number;
5
+ first: number;
6
+ totalRecords: number;
7
+ rowsPerPageOptions?: number[];
8
+ onPage: (event: { first: number; rows: number }) => void;
9
+ currentPageReportTemplate?: string;
10
+ className?: string;
11
+ };
12
+
13
+ const cx = (...parts: Array<string | undefined | false>) => parts.filter(Boolean).join(" ");
14
+
15
+ export function SolidDataTablePagination({
16
+ rows,
17
+ first,
18
+ totalRecords,
19
+ rowsPerPageOptions = [10, 25, 50, 100],
20
+ onPage,
21
+ currentPageReportTemplate = "{first} - {last} of {totalRecords}",
22
+ className,
23
+ }: SolidDataTablePaginationProps) {
24
+ const safeRows = rows > 0 ? rows : 25;
25
+ const start = totalRecords === 0 ? 0 : first + 1;
26
+ const end = Math.min(first + safeRows, totalRecords);
27
+ const currentPage = Math.floor(first / safeRows) + 1;
28
+ const totalPages = Math.max(1, Math.ceil(totalRecords / safeRows));
29
+
30
+ const report = currentPageReportTemplate
31
+ .replace("{first}", String(start))
32
+ .replace("{last}", String(end))
33
+ .replace("{totalRecords}", String(totalRecords));
34
+
35
+ return (
36
+ <div className={cx("w-full solid-table-paginator flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", className)}>
37
+ <div className="solid-paginator-meta flex items-center gap-2 ml-auto">
38
+ <span className="solid-paginator-label">Rows</span>
39
+ <select
40
+ value={safeRows}
41
+ onChange={(e) => onPage({ first: 0, rows: Number(e.target.value) })}
42
+ className="solid-paginator-select"
43
+ >
44
+ {rowsPerPageOptions.map((option) => (
45
+ <option key={option} value={option}>{option}</option>
46
+ ))}
47
+ </select>
48
+ <span className="solid-paginator-report">{report}</span>
49
+ </div>
50
+ <div className="solid-paginator-actions flex items-center gap-2">
51
+ <button
52
+ type="button"
53
+ className="solid-paginator-btn"
54
+ onClick={() => onPage({ first: Math.max(0, first - safeRows), rows: safeRows })}
55
+ disabled={currentPage <= 1}
56
+ >
57
+ Previous
58
+ </button>
59
+ <button
60
+ type="button"
61
+ className="solid-paginator-btn"
62
+ onClick={() => onPage({ first: Math.min((totalPages - 1) * safeRows, first + safeRows), rows: safeRows })}
63
+ disabled={currentPage >= totalPages}
64
+ >
65
+ Next
66
+ </button>
67
+ </div>
68
+ </div>
69
+ );
70
+ }
71
+
@@ -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,4CAsIL,CAAC"}
1
+ {"version":3,"file":"SolidEmptyListViewPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,6BAA6B,4HAOvC,GAAG,4CAkIL,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, {}), (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 }))] }));
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" }))] }), _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":"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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"]}
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 <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"]}
@@ -126,10 +126,6 @@ export const SolidEmptyListViewPlaceholder = ({
126
126
  )}
127
127
  </div>
128
128
 
129
- <div className="solid-empty-listview-description">
130
- Click Create or Import to add {entityName} entities.
131
- </div>
132
-
133
129
  <CustomActionButtons />
134
130
 
135
131
  {(canCreate || canImport) && (
@@ -1,2 +1,2 @@
1
- export declare const SolidListViewRowButtonContextMenu: ({ button, params, getSelectedSolidViewData, solidListViewMetaData, handleCustomButtonClick }: any) => import("react/jsx-runtime").JSX.Element | null;
1
+ export declare const SolidListViewRowButtonContextMenu: ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => import("react/jsx-runtime").JSX.Element | null;
2
2
  //# sourceMappingURL=SolidListViewRowButtonContextMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewRowButtonContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,iCAAiC,iGAAkG,GAAG,mDAmClJ,CAAC"}
1
+ {"version":3,"file":"SolidListViewRowButtonContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,iCAAiC,kGAAmG,GAAG,mDAmCnJ,CAAC"}
@@ -9,23 +9,21 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { jsx as _jsx } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { useSession } from "../../../hooks/useSession";
14
14
  import { hasAnyRole } from "../../../helpers/rolesHelper";
15
- import { Button } from "primereact/button";
16
15
  export var SolidListViewRowButtonContextMenu = function (_a) {
17
16
  var _b, _c, _d, _e, _f, _g, _h;
18
- var button = _a.button, params = _a.params, getSelectedSolidViewData = _a.getSelectedSolidViewData, solidListViewMetaData = _a.solidListViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick;
19
- var selectedSolidViewData = getSelectedSolidViewData === null || getSelectedSolidViewData === void 0 ? void 0 : getSelectedSolidViewData();
17
+ var button = _a.button, params = _a.params, rowData = _a.rowData, solidListViewMetaData = _a.solidListViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, onActionComplete = _a.onActionComplete;
20
18
  var _j = useSession(), session = _j.data, status = _j.status;
21
19
  var user = session === null || session === void 0 ? void 0 : session.user;
22
20
  var hasRole = !((_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.roles) || ((_c = button === null || button === void 0 ? void 0 : button.attrs) === null || _c === void 0 ? void 0 : _c.roles.length) === 0 ? true : hasAnyRole(user === null || user === void 0 ? void 0 : user.roles, (_d = button === null || button === void 0 ? void 0 : button.attrs) === null || _d === void 0 ? void 0 : _d.roles);
23
21
  if (!hasRole)
24
22
  return null;
25
- return (_jsx(Button, { type: "button", icon: ((_e = button === null || button === void 0 ? void 0 : button.attrs) === null || _e === void 0 ? void 0 : _e.icon) ? (_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.icon : "pi pi-pencil", className: "w-full text-left gap-2 ".concat(((_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.className) ? (_h = button === null || button === void 0 ? void 0 : button.attrs) === null || _h === void 0 ? void 0 : _h.className : ''), label: button.attrs.label, size: "small", onClick: function () {
23
+ return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(((_e = button === null || button === void 0 ? void 0 : button.attrs) === null || _e === void 0 ? void 0 : _e.className) ? (_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.className : ''), onClick: function () {
26
24
  var event = {
27
25
  params: params,
28
- rowData: selectedSolidViewData,
26
+ rowData: rowData,
29
27
  solidListViewMetaData: solidListViewMetaData.data,
30
28
  };
31
29
  var modifiedButtonAttrs = __assign({}, button.attrs); // Create a copy
@@ -34,6 +32,7 @@ export var SolidListViewRowButtonContextMenu = function (_a) {
34
32
  modifiedButtonAttrs.popupWidth = '30vw';
35
33
  }
36
34
  handleCustomButtonClick(modifiedButtonAttrs, event);
37
- } }));
35
+ onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
36
+ }, children: [_jsx("i", { className: "".concat(((_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.icon) ? (_h = button === null || button === void 0 ? void 0 : button.attrs) === null || _h === void 0 ? void 0 : _h.icon : "pi pi-pencil", " solid-row-action-button-icon") }), _jsx("span", { className: "solid-row-action-button-label", children: button.attrs.label })] }));
38
37
  };
39
38
  //# sourceMappingURL=SolidListViewRowButtonContextMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewRowButtonContextMenu.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,IAAM,iCAAiC,GAAG,UAAC,EAAiG;;QAA/F,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,wBAAwB,8BAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA;IACxI,IAAM,qBAAqB,GAAG,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,EAAI,CAAC;IAErD,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,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;IAElI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACH,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,cAAc,EAChE,SAAS,EAAE,iCAA0B,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EAC/F,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EACzB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE;YACL,IAAM,KAAK,GAAG;gBACV,MAAM,QAAA;gBACN,OAAO,EAAE,qBAAqB;gBAC9B,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;aACpD,CAAC;YAEF,IAAM,mBAAmB,gBAAQ,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC,gBAAgB;YAEjE,oDAAoD;YACpD,IAAI,mBAAmB,CAAC,MAAM,KAAK,4BAA4B,IAAI,mBAAmB,CAAC,MAAM,KAAK,6BAA6B,EAAE;gBAC7H,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;aAC3C;YAED,uBAAuB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC,GACH,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { Button } from \"primereact/button\";\n\nexport const SolidListViewRowButtonContextMenu = ({ button, params, getSelectedSolidViewData, solidListViewMetaData, handleCustomButtonClick }: any) => {\n const selectedSolidViewData = getSelectedSolidViewData?.();\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n\n return (\n <Button\n type=\"button\"\n icon={button?.attrs?.icon ? button?.attrs?.icon : \"pi pi-pencil\"}\n className={`w-full text-left gap-2 ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n label={button.attrs.label}\n size=\"small\"\n onClick={() => {\n const event = {\n params,\n rowData: selectedSolidViewData,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n\n const modifiedButtonAttrs = { ...button.attrs }; // Create a copy\n\n // Conditionally add popupWidth for specific actions\n if (modifiedButtonAttrs.action === 'GenerateModelCodeRowAction' || modifiedButtonAttrs.action === 'GenerateModuleCodeRowAction') {\n modifiedButtonAttrs.popupWidth = '30vw';\n }\n\n handleCustomButtonClick(modifiedButtonAttrs, event);\n }}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"SolidListViewRowButtonContextMenu.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,CAAC,IAAM,iCAAiC,GAAG,UAAC,EAAkG;;QAAhG,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,gBAAgB,sBAAA;IAEnI,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,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;IAElI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACH,kBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,kCAA2B,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EAChG,OAAO,EAAE;YACL,IAAM,KAAK,GAAG;gBACV,MAAM,QAAA;gBACN,OAAO,EAAE,OAAO;gBAChB,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;aACpD,CAAC;YAEF,IAAM,mBAAmB,gBAAQ,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC,gBAAgB;YAEjE,oDAAoD;YACpD,IAAI,mBAAmB,CAAC,MAAM,KAAK,4BAA4B,IAAI,mBAAmB,CAAC,MAAM,KAAK,6BAA6B,EAAE;gBAC7H,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;aAC3C;YAED,uBAAuB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACpD,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACzB,CAAC,aAED,YAAG,SAAS,EAAE,UAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,cAAc,kCAA+B,GAAI,EAC9G,eAAM,SAAS,EAAC,+BAA+B,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAQ,IACtE,CACZ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\n\nexport const SolidListViewRowButtonContextMenu = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n\n const modifiedButtonAttrs = { ...button.attrs }; // Create a copy\n\n // Conditionally add popupWidth for specific actions\n if (modifiedButtonAttrs.action === 'GenerateModelCodeRowAction' || modifiedButtonAttrs.action === 'GenerateModuleCodeRowAction') {\n modifiedButtonAttrs.popupWidth = '30vw';\n }\n\n handleCustomButtonClick(modifiedButtonAttrs, event);\n onActionComplete?.();\n }}\n >\n <i className={`${button?.attrs?.icon ? button?.attrs?.icon : \"pi pi-pencil\"} solid-row-action-button-icon`} />\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n};\n"]}
@@ -1,9 +1,7 @@
1
1
  import { useSession } from "../../../hooks/useSession";
2
2
  import { hasAnyRole } from "../../../helpers/rolesHelper";
3
- import { Button } from "primereact/button";
4
3
 
5
- export const SolidListViewRowButtonContextMenu = ({ button, params, getSelectedSolidViewData, solidListViewMetaData, handleCustomButtonClick }: any) => {
6
- const selectedSolidViewData = getSelectedSolidViewData?.();
4
+ export const SolidListViewRowButtonContextMenu = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {
7
5
 
8
6
  const { data: session, status } = useSession();
9
7
  const user = session?.user;
@@ -13,16 +11,13 @@ export const SolidListViewRowButtonContextMenu = ({ button, params, getSelectedS
13
11
  if (!hasRole) return null;
14
12
 
15
13
  return (
16
- <Button
14
+ <button
17
15
  type="button"
18
- icon={button?.attrs?.icon ? button?.attrs?.icon : "pi pi-pencil"}
19
- className={`w-full text-left gap-2 ${button?.attrs?.className ? button?.attrs?.className : ''}`}
20
- label={button.attrs.label}
21
- size="small"
16
+ className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
22
17
  onClick={() => {
23
18
  const event = {
24
19
  params,
25
- rowData: selectedSolidViewData,
20
+ rowData: rowData,
26
21
  solidListViewMetaData: solidListViewMetaData.data,
27
22
  };
28
23
 
@@ -34,7 +29,11 @@ export const SolidListViewRowButtonContextMenu = ({ button, params, getSelectedS
34
29
  }
35
30
 
36
31
  handleCustomButtonClick(modifiedButtonAttrs, event);
32
+ onActionComplete?.();
37
33
  }}
38
- />
34
+ >
35
+ <i className={`${button?.attrs?.icon ? button?.attrs?.icon : "pi pi-pencil"} solid-row-action-button-icon`} />
36
+ <span className="solid-row-action-button-label">{button.attrs.label}</span>
37
+ </button>
39
38
  );
40
39
  };
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ type SolidButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive";
3
+ type SolidButtonSize = "sm" | "md" | "lg";
4
+ type SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
5
+ variant?: SolidButtonVariant;
6
+ size?: SolidButtonSize;
7
+ fullWidth?: boolean;
8
+ loading?: boolean;
9
+ leftIcon?: React.ReactNode;
10
+ rightIcon?: React.ReactNode;
11
+ };
12
+ export declare function SolidButton({ variant, size, fullWidth, loading, leftIcon, rightIcon, className, disabled, children, type, ...props }: SolidButtonProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=SolidButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidButton.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AACxF,KAAK,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,KAAK,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACtE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,OAAmB,EACnB,IAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAe,EACf,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAuBlB"}
@@ -0,0 +1,36 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
+ function cx() {
25
+ var parts = [];
26
+ for (var _i = 0; _i < arguments.length; _i++) {
27
+ parts[_i] = arguments[_i];
28
+ }
29
+ return parts.filter(Boolean).join(" ");
30
+ }
31
+ export function SolidButton(_a) {
32
+ var _b = _a.variant, variant = _b === void 0 ? "primary" : _b, _c = _a.size, size = _c === void 0 ? "md" : _c, fullWidth = _a.fullWidth, loading = _a.loading, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, className = _a.className, disabled = _a.disabled, children = _a.children, _d = _a.type, type = _d === void 0 ? "button" : _d, props = __rest(_a, ["variant", "size", "fullWidth", "loading", "leftIcon", "rightIcon", "className", "disabled", "children", "type"]);
33
+ var isDisabled = disabled || loading;
34
+ return (_jsxs("button", __assign({ type: type, className: cx("solid-btn", "solid-btn--".concat(variant), "solid-btn--".concat(size), fullWidth && "solid-btn--full", loading && "is-loading", className), disabled: isDisabled }, props, { children: [loading && _jsx("span", { className: "solid-btn-spinner", "aria-hidden": "true" }), !loading && leftIcon ? _jsx("span", { className: "solid-btn-icon", children: leftIcon }) : null, _jsx("span", { className: "solid-btn-label", children: children }), !loading && rightIcon ? _jsx("span", { className: "solid-btn-icon", children: rightIcon }) : null] })));
35
+ }
36
+ //# sourceMappingURL=SolidButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidButton.js","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcA,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,WAAW,CAAC,EAYT;IAXjB,IAAA,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA,EACnB,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,SAAS,eAAA,EACT,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,YAAe,EAAf,IAAI,mBAAG,QAAQ,KAAA,EACZ,KAAK,cAXkB,iHAY3B,CADS;IAER,IAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IAEvC,OAAO,CACL,2BACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,WAAW,EACX,qBAAc,OAAO,CAAE,EACvB,qBAAc,IAAI,CAAE,EACpB,SAAS,IAAI,iBAAiB,EAC9B,OAAO,IAAI,YAAY,EACvB,SAAS,CACV,EACD,QAAQ,EAAE,UAAU,IAChB,KAAK,eAER,OAAO,IAAI,eAAM,SAAS,EAAC,mBAAmB,iBAAa,MAAM,GAAG,EACpE,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjF,eAAM,SAAS,EAAC,iBAAiB,YAAE,QAAQ,GAAQ,EAClD,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,SAAS,GAAQ,CAAC,CAAC,CAAC,IAAI,KAC5E,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"outline\" | \"destructive\";\ntype SolidButtonSize = \"sm\" | \"md\" | \"lg\";\n\ntype SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: SolidButtonVariant;\n size?: SolidButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidButton({\n variant = \"primary\",\n size = \"md\",\n fullWidth,\n loading,\n leftIcon,\n rightIcon,\n className,\n disabled,\n children,\n type = \"button\",\n ...props\n}: SolidButtonProps) {\n const isDisabled = disabled || loading;\n\n return (\n <button\n type={type}\n className={cx(\n \"solid-btn\",\n `solid-btn--${variant}`,\n `solid-btn--${size}`,\n fullWidth && \"solid-btn--full\",\n loading && \"is-loading\",\n className\n )}\n disabled={isDisabled}\n {...props}\n >\n {loading && <span className=\"solid-btn-spinner\" aria-hidden=\"true\" />}\n {!loading && leftIcon ? <span className=\"solid-btn-icon\">{leftIcon}</span> : null}\n <span className=\"solid-btn-label\">{children}</span>\n {!loading && rightIcon ? <span className=\"solid-btn-icon\">{rightIcon}</span> : null}\n </button>\n );\n}\n"]}
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+
3
+ type SolidButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive";
4
+ type SolidButtonSize = "sm" | "md" | "lg";
5
+
6
+ type SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
7
+ variant?: SolidButtonVariant;
8
+ size?: SolidButtonSize;
9
+ fullWidth?: boolean;
10
+ loading?: boolean;
11
+ leftIcon?: React.ReactNode;
12
+ rightIcon?: React.ReactNode;
13
+ };
14
+
15
+ function cx(...parts: Array<string | false | undefined>) {
16
+ return parts.filter(Boolean).join(" ");
17
+ }
18
+
19
+ export function SolidButton({
20
+ variant = "primary",
21
+ size = "md",
22
+ fullWidth,
23
+ loading,
24
+ leftIcon,
25
+ rightIcon,
26
+ className,
27
+ disabled,
28
+ children,
29
+ type = "button",
30
+ ...props
31
+ }: SolidButtonProps) {
32
+ const isDisabled = disabled || loading;
33
+
34
+ return (
35
+ <button
36
+ type={type}
37
+ className={cx(
38
+ "solid-btn",
39
+ `solid-btn--${variant}`,
40
+ `solid-btn--${size}`,
41
+ fullWidth && "solid-btn--full",
42
+ loading && "is-loading",
43
+ className
44
+ )}
45
+ disabled={isDisabled}
46
+ {...props}
47
+ >
48
+ {loading && <span className="solid-btn-spinner" aria-hidden="true" />}
49
+ {!loading && leftIcon ? <span className="solid-btn-icon">{leftIcon}</span> : null}
50
+ <span className="solid-btn-label">{children}</span>
51
+ {!loading && rightIcon ? <span className="solid-btn-icon">{rightIcon}</span> : null}
52
+ </button>
53
+ );
54
+ }
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ type SolidTabProps = {
3
+ value: string;
4
+ label: React.ReactNode;
5
+ content: React.ReactNode;
6
+ };
7
+ type SolidTabGroupProps = {
8
+ tabs: SolidTabProps[];
9
+ value: string;
10
+ onValueChange: (value: string) => void;
11
+ className?: string;
12
+ listClassName?: string;
13
+ panelClassName?: string;
14
+ };
15
+ export declare function SolidTab(_props: SolidTabProps): null;
16
+ export declare function SolidTabGroup({ tabs, value, onValueChange, className, listClassName, panelClassName, }: SolidTabGroupProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=SolidTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,2CAwCpB"}