@solidxai/core-ui 0.1.9-beta.4 → 0.1.9-beta.6

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 (132) hide show
  1. package/dist/components/common/AuthBanner.js.map +1 -1
  2. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  3. package/dist/components/core/form/SolidFormFooter.js +7 -6
  4. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  5. package/dist/components/core/form/SolidFormFooter.tsx +6 -5
  6. package/dist/components/core/form/SolidFormView.js +2 -2
  7. package/dist/components/core/form/SolidFormView.js.map +1 -1
  8. package/dist/components/core/form/SolidFormView.tsx +1 -1
  9. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  10. package/dist/components/core/form/fields/SolidBooleanField.js +10 -1
  11. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  12. package/dist/components/core/form/fields/SolidBooleanField.tsx +13 -1
  13. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  14. package/dist/components/core/form/fields/SolidDecimalField.js +7 -1
  15. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  16. package/dist/components/core/form/fields/SolidDecimalField.tsx +10 -1
  17. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  18. package/dist/components/core/form/fields/SolidIntegerField.js +14 -2
  19. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  20. package/dist/components/core/form/fields/SolidIntegerField.tsx +20 -2
  21. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  22. package/dist/components/core/form/fields/SolidJsonField.js +7 -2
  23. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  24. package/dist/components/core/form/fields/SolidJsonField.tsx +10 -2
  25. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  26. package/dist/components/core/form/fields/SolidLongTextField.js +23 -3
  27. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  28. package/dist/components/core/form/fields/SolidLongTextField.tsx +32 -3
  29. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  30. package/dist/components/core/form/fields/SolidMediaMultipleField.js +15 -2
  31. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  32. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +20 -4
  33. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  34. package/dist/components/core/form/fields/SolidMediaSingleField.js +21 -3
  35. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  36. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +30 -3
  37. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  38. package/dist/components/core/form/fields/SolidPasswordField.js +2 -1
  39. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  40. package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -1
  41. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  42. package/dist/components/core/form/fields/SolidRichTextField.js +9 -1
  43. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  44. package/dist/components/core/form/fields/SolidRichTextField.tsx +12 -1
  45. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  46. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -2
  47. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  48. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +8 -2
  49. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  50. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +14 -3
  51. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  52. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +20 -3
  53. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  54. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  55. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  56. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  57. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  58. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  59. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  60. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  61. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  62. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  63. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  64. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  65. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  66. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  67. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  68. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  69. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  70. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  71. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  72. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  73. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  74. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  75. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  76. package/dist/components/core/list/SolidListView.js +66 -2
  77. package/dist/components/core/list/SolidListView.js.map +1 -1
  78. package/dist/components/core/list/SolidListView.tsx +67 -2
  79. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  80. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  81. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  82. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  83. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  84. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  85. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  86. package/dist/components/solid-ui/SolidButton.js +36 -0
  87. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  88. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  89. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  90. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  91. package/dist/components/solid-ui/SolidTabs.js +22 -0
  92. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  93. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  94. package/dist/components/solid-ui/index.d.ts +3 -0
  95. package/dist/components/solid-ui/index.d.ts.map +1 -0
  96. package/dist/components/solid-ui/index.js +3 -0
  97. package/dist/components/solid-ui/index.js.map +1 -0
  98. package/dist/components/solid-ui/index.ts +2 -0
  99. package/dist/routes/SolidRouteMetadataBoundary.js +1 -1
  100. package/dist/routes/SolidRouteMetadataBoundary.js.map +1 -1
  101. package/dist/routes/SolidRouteMetadataBoundary.tsx +1 -1
  102. package/package.json +1 -1
  103. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  104. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  105. package/dist/components/auth/SolidOTPVerify.js +0 -67
  106. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  107. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  108. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  109. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  110. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  111. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  112. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  113. package/dist/nextAuth/authProviders.d.ts +0 -4
  114. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  115. package/dist/nextAuth/authProviders.js +0 -198
  116. package/dist/nextAuth/authProviders.js.map +0 -1
  117. package/dist/nextAuth/authProviders.tsx +0 -232
  118. package/dist/nextAuth/handleLogout.d.ts +0 -2
  119. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  120. package/dist/nextAuth/handleLogout.js +0 -36
  121. package/dist/nextAuth/handleLogout.js.map +0 -1
  122. package/dist/nextAuth/handleLogout.tsx +0 -39
  123. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  124. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  125. package/dist/nextAuth/refreshAccessToken.js +0 -24
  126. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  127. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  128. package/dist/redux/features/settingsSlice.d.ts +0 -20
  129. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  130. package/dist/redux/features/settingsSlice.js +0 -39
  131. package/dist/redux/features/settingsSlice.js.map +0 -1
  132. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -244,6 +244,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
244
244
  const [filterPredicates, setFilterPredicates] = useState<any>(null);
245
245
  const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);
246
246
  const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);
247
+ const suppressNextFilterPaginationResetRef = useRef(false);
247
248
 
248
249
  const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();
249
250
 
@@ -564,6 +565,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
564
565
  const queryObject = getFilterObjectFromLocalStorage();
565
566
 
566
567
  if (queryObject) {
568
+ suppressNextFilterPaginationResetRef.current = true;
567
569
  const queryData = {
568
570
  offset: queryObject.offset || 0,
569
571
  limit: queryObject.limit || 25,
@@ -822,8 +824,9 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
822
824
 
823
825
  const queryString = qs.stringify(queryData, { encodeValuesOnly: true });
824
826
 
825
- if (latestFilterPredicatesRef.current && latestFilterPredicatesRef.current.persistFilter) {
827
+ if (latestFilterPredicatesRef.current) {
826
828
  const fileterTobeStored = structuredClone(queryData);
829
+ fileterTobeStored.finalFullFilter = fileterTobeStored.filters;
827
830
  delete fileterTobeStored.filters;
828
831
  fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;
829
832
  fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;
@@ -853,6 +856,22 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
853
856
  }
854
857
  const updatedFilter = queryfilter;
855
858
 
859
+ const previousPredicates = latestFilterPredicatesRef.current;
860
+ const nextPredicatesComparable = {
861
+ custom_filter_predicate: filterPredicates?.custom_filter_predicate || null,
862
+ search_predicate: filterPredicates?.search_predicate || null,
863
+ saved_filter_predicate: filterPredicates?.saved_filter_predicate || null,
864
+ predefined_search_predicate: filterPredicates?.predefined_search_predicate || null,
865
+ };
866
+ const previousPredicatesComparable = {
867
+ custom_filter_predicate: previousPredicates?.custom_filter_predicate || null,
868
+ search_predicate: previousPredicates?.search_predicate || null,
869
+ saved_filter_predicate: previousPredicates?.saved_filter_predicate || null,
870
+ predefined_search_predicate: previousPredicates?.predefined_search_predicate || null,
871
+ };
872
+ const hasPredicateChanged =
873
+ JSON.stringify(previousPredicatesComparable) !== JSON.stringify(nextPredicatesComparable);
874
+
856
875
  // Update refs IMMEDIATELY (synchronously)
857
876
  latestFiltersRef.current = updatedFilter;
858
877
  const updatedFilterPredicates = structuredClone(filterPredicates);
@@ -862,7 +881,53 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
862
881
  // Then update state
863
882
  setFilters(updatedFilter);
864
883
  setFilterPredicates(updatedFilterPredicates);
865
- setFirst(0);
884
+ const hasMeaningfulFilterValueLocal = (value: any): boolean => {
885
+ if (value === null || value === undefined) return false;
886
+ if (typeof value === "string") return value.trim().length > 0;
887
+ if (typeof value === "number" || typeof value === "boolean") return true;
888
+ if (Array.isArray(value)) return value.some((item) => hasMeaningfulFilterValueLocal(item));
889
+ if (typeof value === "object") return hasAppliedFiltersLocal(value);
890
+ return false;
891
+ };
892
+
893
+ const hasAppliedFiltersLocal = (filterObject: any): boolean => {
894
+ if (!filterObject || typeof filterObject !== "object") return false;
895
+
896
+ if (Array.isArray(filterObject)) {
897
+ return filterObject.some((item) => hasAppliedFiltersLocal(item) || hasMeaningfulFilterValueLocal(item));
898
+ }
899
+
900
+ return Object.entries(filterObject).some(([key, val]) => {
901
+ if (key === "matchMode" || key === "operator") return false;
902
+ if (key === "value") return hasMeaningfulFilterValueLocal(val);
903
+ if ((key === "$and" || key === "$or") && Array.isArray(val)) {
904
+ return val.some((item) => hasAppliedFiltersLocal(item) || hasMeaningfulFilterValueLocal(item));
905
+ }
906
+ if (typeof val === "object") return hasAppliedFiltersLocal(val);
907
+ return hasMeaningfulFilterValueLocal(val);
908
+ });
909
+ };
910
+
911
+ const hasCurrentMeaningfulPredicates =
912
+ hasAppliedFiltersLocal(updatedFilterPredicates?.custom_filter_predicate) ||
913
+ hasAppliedFiltersLocal(updatedFilterPredicates?.search_predicate) ||
914
+ hasAppliedFiltersLocal(updatedFilterPredicates?.saved_filter_predicate) ||
915
+ hasAppliedFiltersLocal(updatedFilterPredicates?.predefined_search_predicate);
916
+
917
+ const hasPreviousMeaningfulPredicates =
918
+ hasAppliedFiltersLocal(previousPredicates?.custom_filter_predicate) ||
919
+ hasAppliedFiltersLocal(previousPredicates?.search_predicate) ||
920
+ hasAppliedFiltersLocal(previousPredicates?.saved_filter_predicate) ||
921
+ hasAppliedFiltersLocal(previousPredicates?.predefined_search_predicate);
922
+
923
+ const shouldResetPagination =
924
+ hasPredicateChanged && (hasCurrentMeaningfulPredicates || hasPreviousMeaningfulPredicates);
925
+
926
+ if (suppressNextFilterPaginationResetRef.current) {
927
+ suppressNextFilterPaginationResetRef.current = false;
928
+ } else if (shouldResetPagination) {
929
+ setFirst(0);
930
+ }
866
931
  // Force synchronous state updates
867
932
  };
868
933
 
@@ -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"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function cx() {
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 SolidTab(_props) {
10
+ return null;
11
+ }
12
+ export function SolidTabGroup(_a) {
13
+ var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName;
14
+ return (_jsxs("div", { className: cx("solid-tabs", className), children: [_jsx("div", { className: cx("solid-tabs-list", listClassName), role: "tablist", children: tabs.map(function (tab) {
15
+ var isActive = tab.value === value;
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-tabs-trigger", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
17
+ }) }), tabs.map(function (tab) {
18
+ var isActive = tab.value === value;
19
+ return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-tabs-panel", panelClassName), children: isActive ? tab.content : null }, tab.value));
20
+ })] }));
21
+ }
22
+ //# sourceMappingURL=SolidTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidTabs.tsx"],"names":[],"mappings":";AAiBA,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,EAOT;QANnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA;IAEd,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,aACzC,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,IAAI,EAAC,SAAS,YACjE,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;oBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;oBACrC,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,CAAC,oBAAoB,EAAE,QAAQ,IAAI,WAAW,CAAC,EAC5D,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IATL,GAAG,CAAC,KAAK,CAUP,CACV,CAAC;gBACJ,CAAC,CAAC,GACE,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,kBAAkB,EAAE,cAAc,CAAC,YAEhD,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};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\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}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-tabs\", className)}>\n <div className={cx(\"solid-tabs-list\", listClassName)} role=\"tablist\">\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(\"solid-tabs-trigger\", isActive && \"is-active\")}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\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-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
@@ -0,0 +1,73 @@
1
+ import React from "react";
2
+
3
+ type SolidTabProps = {
4
+ value: string;
5
+ label: React.ReactNode;
6
+ content: React.ReactNode;
7
+ };
8
+
9
+ type SolidTabGroupProps = {
10
+ tabs: SolidTabProps[];
11
+ value: string;
12
+ onValueChange: (value: string) => void;
13
+ className?: string;
14
+ listClassName?: string;
15
+ panelClassName?: string;
16
+ };
17
+
18
+ function cx(...parts: Array<string | false | undefined>) {
19
+ return parts.filter(Boolean).join(" ");
20
+ }
21
+
22
+ export function SolidTab(_props: SolidTabProps) {
23
+ return null;
24
+ }
25
+
26
+ export function SolidTabGroup({
27
+ tabs,
28
+ value,
29
+ onValueChange,
30
+ className,
31
+ listClassName,
32
+ panelClassName,
33
+ }: SolidTabGroupProps) {
34
+ return (
35
+ <div className={cx("solid-tabs", className)}>
36
+ <div className={cx("solid-tabs-list", listClassName)} role="tablist">
37
+ {tabs.map((tab) => {
38
+ const isActive = tab.value === value;
39
+ return (
40
+ <button
41
+ key={tab.value}
42
+ type="button"
43
+ role="tab"
44
+ aria-selected={isActive}
45
+ aria-controls={`solid-tab-panel-${tab.value}`}
46
+ id={`solid-tab-${tab.value}`}
47
+ className={cx("solid-tabs-trigger", isActive && "is-active")}
48
+ onClick={() => onValueChange(tab.value)}
49
+ >
50
+ {tab.label}
51
+ </button>
52
+ );
53
+ })}
54
+ </div>
55
+
56
+ {tabs.map((tab) => {
57
+ const isActive = tab.value === value;
58
+ return (
59
+ <div
60
+ key={tab.value}
61
+ role="tabpanel"
62
+ id={`solid-tab-panel-${tab.value}`}
63
+ aria-labelledby={`solid-tab-${tab.value}`}
64
+ hidden={!isActive}
65
+ className={cx("solid-tabs-panel", panelClassName)}
66
+ >
67
+ {isActive ? tab.content : null}
68
+ </div>
69
+ );
70
+ })}
71
+ </div>
72
+ );
73
+ }
@@ -0,0 +1,3 @@
1
+ export { SolidButton } from "./SolidButton";
2
+ export { SolidTab, SolidTabGroup } from "./SolidTabs";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SolidButton } from "./SolidButton";
2
+ export { SolidTab, SolidTabGroup } from "./SolidTabs";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/solid-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { SolidButton } from \"./SolidButton\";\nexport { SolidTab, SolidTabGroup } from \"./SolidTabs\";\n"]}
@@ -0,0 +1,2 @@
1
+ export { SolidButton } from "./SolidButton";
2
+ export { SolidTab, SolidTabGroup } from "./SolidTabs";
@@ -13,7 +13,7 @@ import { matchRoutes, Outlet, useLocation } from "react-router-dom";
13
13
  import { getSettingsMap } from "../helpers/settingsPayload";
14
14
  import { useGetAuthSettingsQuery } from "../redux/api/solidSettingsApi";
15
15
  function normalizePart(value) {
16
- var trimmed = value === null || value === void 0 ? void 0 : value.trim();
16
+ var trimmed = value;
17
17
  return trimmed ? trimmed : undefined;
18
18
  }
19
19
  function uniqueParts(parts) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRouteMetadataBoundary.js","sourceRoot":"","sources":["../../src/routes/SolidRouteMetadataBoundary.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { matchRoutes, Outlet, useLocation, type RouteObject } from \"react-router-dom\";\nimport { getSettingsMap } from \"../helpers/settingsPayload\";\nimport { useGetAuthSettingsQuery } from \"../redux/api/solidSettingsApi\";\nimport type { SolidPageMeta } from \"./types\";\n\nfunction normalizePart(value?: string): string | undefined {\n const trimmed = value?.trim();\n return trimmed ? trimmed : undefined;\n}\n\nfunction uniqueParts(parts: Array<string | undefined>): string[] {\n const seen = new Set<string>();\n const result: string[] = [];\n\n for (const part of parts) {\n if (!part || seen.has(part)) continue;\n seen.add(part);\n result.push(part);\n }\n\n return result;\n}\n\nexport function SolidRouteMetadataBoundary({ routes }: { routes: RouteObject[] }) {\n const location = useLocation();\n const { data: authSettings } = useGetAuthSettingsQuery(undefined);\n const initialDescriptionRef = useRef(\n typeof document !== \"undefined\"\n ? document.querySelector('meta[name=\"description\"]')?.getAttribute(\"content\") ?? \"\"\n : \"\",\n );\n\n useEffect(() => {\n const matches = matchRoutes(routes, location) ?? [];\n const handles = matches\n .map((match) => match.route.handle as SolidPageMeta | undefined)\n .filter((handle): handle is SolidPageMeta => Boolean(handle));\n\n const hasExplicitOptOut = handles.some((handle) => handle.manageDocumentMeta === false);\n const hasAutoManagedMeta = handles.some(\n (handle) =>\n handle.manageDocumentMeta === true ||\n Boolean(handle.title || handle.description || handle.titlePrefix || handle.titleSuffix),\n );\n\n if (hasExplicitOptOut || !hasAutoManagedMeta) {\n return;\n }\n\n const settingsMap = getSettingsMap(authSettings);\n const resolvedAppTitle = normalizePart(settingsMap.appTitle) ?? \"SolidX\";\n const resolvedTitle = [...handles]\n .reverse()\n .map((handle) => normalizePart(handle.title))\n .find(Boolean);\n const resolvedDescription = [...handles]\n .reverse()\n .map((handle) => normalizePart(handle.description))\n .find(Boolean);\n const titlePrefixes = handles.map((handle) => normalizePart(handle.titlePrefix));\n const titleSuffixes = handles.map((handle) => normalizePart(handle.titleSuffix));\n\n const nextTitleParts = uniqueParts([...titlePrefixes, resolvedTitle, ...titleSuffixes, resolvedAppTitle]);\n document.title = nextTitleParts.join(\" | \");\n\n const metaDescription = document.querySelector('meta[name=\"description\"]');\n if (metaDescription) {\n metaDescription.setAttribute(\n \"content\",\n resolvedDescription ?? normalizePart(initialDescriptionRef.current) ?? resolvedAppTitle,\n );\n }\n }, [authSettings, location, routes]);\n\n return <Outlet />;\n}\n"]}
1
+ {"version":3,"file":"SolidRouteMetadataBoundary.js","sourceRoot":"","sources":["../../src/routes/SolidRouteMetadataBoundary.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { matchRoutes, Outlet, useLocation, type RouteObject } from \"react-router-dom\";\nimport { getSettingsMap } from \"../helpers/settingsPayload\";\nimport { useGetAuthSettingsQuery } from \"../redux/api/solidSettingsApi\";\nimport type { SolidPageMeta } from \"./types\";\n\nfunction normalizePart(value?: string): string | undefined {\n const trimmed = value;\n return trimmed ? trimmed : undefined;\n}\n\nfunction uniqueParts(parts: Array<string | undefined>): string[] {\n const seen = new Set<string>();\n const result: string[] = [];\n\n for (const part of parts) {\n if (!part || seen.has(part)) continue;\n seen.add(part);\n result.push(part);\n }\n\n return result;\n}\n\nexport function SolidRouteMetadataBoundary({ routes }: { routes: RouteObject[] }) {\n const location = useLocation();\n const { data: authSettings } = useGetAuthSettingsQuery(undefined);\n const initialDescriptionRef = useRef(\n typeof document !== \"undefined\"\n ? document.querySelector('meta[name=\"description\"]')?.getAttribute(\"content\") ?? \"\"\n : \"\",\n );\n\n useEffect(() => {\n const matches = matchRoutes(routes, location) ?? [];\n const handles = matches\n .map((match) => match.route.handle as SolidPageMeta | undefined)\n .filter((handle): handle is SolidPageMeta => Boolean(handle));\n\n const hasExplicitOptOut = handles.some((handle) => handle.manageDocumentMeta === false);\n const hasAutoManagedMeta = handles.some(\n (handle) =>\n handle.manageDocumentMeta === true ||\n Boolean(handle.title || handle.description || handle.titlePrefix || handle.titleSuffix),\n );\n\n if (hasExplicitOptOut || !hasAutoManagedMeta) {\n return;\n }\n\n const settingsMap = getSettingsMap(authSettings);\n const resolvedAppTitle = normalizePart(settingsMap.appTitle) ?? \"SolidX\";\n const resolvedTitle = [...handles]\n .reverse()\n .map((handle) => normalizePart(handle.title))\n .find(Boolean);\n const resolvedDescription = [...handles]\n .reverse()\n .map((handle) => normalizePart(handle.description))\n .find(Boolean);\n const titlePrefixes = handles.map((handle) => normalizePart(handle.titlePrefix));\n const titleSuffixes = handles.map((handle) => normalizePart(handle.titleSuffix));\n\n const nextTitleParts = uniqueParts([...titlePrefixes, resolvedTitle, ...titleSuffixes, resolvedAppTitle]);\n document.title = nextTitleParts.join(\" | \");\n\n const metaDescription = document.querySelector('meta[name=\"description\"]');\n if (metaDescription) {\n metaDescription.setAttribute(\n \"content\",\n resolvedDescription ?? normalizePart(initialDescriptionRef.current) ?? resolvedAppTitle,\n );\n }\n }, [authSettings, location, routes]);\n\n return <Outlet />;\n}\n"]}
@@ -5,7 +5,7 @@ import { useGetAuthSettingsQuery } from "../redux/api/solidSettingsApi";
5
5
  import type { SolidPageMeta } from "./types";
6
6
 
7
7
  function normalizePart(value?: string): string | undefined {
8
- const trimmed = value?.trim();
8
+ const trimmed = value;
9
9
  return trimmed ? trimmed : undefined;
10
10
  }
11
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidxai/core-ui",
3
- "version": "0.1.9-beta.4",
3
+ "version": "0.1.9-beta.6",
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",
@@ -1,3 +0,0 @@
1
- declare const SolidOTPVerify: () => import("react/jsx-runtime").JSX.Element;
2
- export default SolidOTPVerify;
3
- //# sourceMappingURL=SolidOTPVerify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolidOTPVerify.d.ts","sourceRoot":"./","sources":["components/auth/SolidOTPVerify.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,cAAc,+CAmHnB,CAAC;AAEF,eAAe,cAAc,CAAC"}