@solidxai/core-ui 0.1.9-beta.16 → 0.1.9-beta.18

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 (126) hide show
  1. package/dist/components/auth/SolidLogin.js +2 -2
  2. package/dist/components/auth/SolidLogin.js.map +1 -1
  3. package/dist/components/auth/SolidLogin.tsx +2 -2
  4. package/dist/components/auth/SolidRegister.js +1 -1
  5. package/dist/components/auth/SolidRegister.js.map +1 -1
  6. package/dist/components/auth/SolidRegister.tsx +1 -1
  7. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  8. package/dist/components/common/SettingsComponent.js +3 -0
  9. package/dist/components/common/SettingsComponent.js.map +1 -1
  10. package/dist/components/common/SettingsComponent.tsx +3 -0
  11. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  12. package/dist/components/common/SocialMediaLogin.js +1 -1
  13. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  14. package/dist/components/common/SocialMediaLogin.tsx +4 -0
  15. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  16. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  17. package/dist/components/common/SolidFaviconProvider.js +102 -0
  18. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  19. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  20. package/dist/components/core/card/SolidCardView.js +1 -1
  21. package/dist/components/core/card/SolidCardView.js.map +1 -1
  22. package/dist/components/core/card/SolidCardView.tsx +1 -1
  23. package/dist/components/core/chatter/SolidChatterMessageBox.js +1 -1
  24. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  25. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +1 -1
  26. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  27. package/dist/components/core/chatter/SolidMessageComposer.js +2 -1
  28. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  29. package/dist/components/core/chatter/SolidMessageComposer.tsx +2 -0
  30. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  31. package/dist/components/core/common/FilterComponent.js +4 -2
  32. package/dist/components/core/common/FilterComponent.js.map +1 -1
  33. package/dist/components/core/common/FilterComponent.tsx +5 -2
  34. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
  35. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  36. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
  37. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  38. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
  39. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  40. package/dist/components/core/common/SolidGlobalSearchElement.js +77 -42
  41. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  42. package/dist/components/core/common/SolidGlobalSearchElement.tsx +43 -5
  43. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  44. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  45. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  46. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  47. package/dist/components/core/form/SolidFormView.js +1 -1
  48. package/dist/components/core/form/SolidFormView.js.map +1 -1
  49. package/dist/components/core/form/SolidFormView.tsx +1 -1
  50. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  51. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
  52. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  53. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
  54. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  55. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
  56. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  57. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
  58. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  59. package/dist/components/core/list/SolidListView.js +28 -19
  60. package/dist/components/core/list/SolidListView.js.map +1 -1
  61. package/dist/components/core/list/SolidListView.tsx +25 -15
  62. package/dist/components/core/list/SolidListViewColumn.d.ts +1 -0
  63. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  64. package/dist/components/core/list/SolidListViewColumn.js +27 -0
  65. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  66. package/dist/components/core/list/SolidListViewColumn.tsx +13 -0
  67. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  68. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  69. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  70. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  71. package/dist/components/core/list/SolidListViewHeaderButton.js +6 -3
  72. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  73. package/dist/components/core/list/SolidListViewHeaderButton.tsx +10 -7
  74. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  75. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +16 -7
  76. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  77. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +17 -6
  78. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  79. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  80. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  81. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  82. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  83. package/dist/components/core/model/CreateModel.js +11 -24
  84. package/dist/components/core/model/CreateModel.js.map +1 -1
  85. package/dist/components/core/model/CreateModel.tsx +10 -22
  86. package/dist/components/core/model/FieldMetaDataForm.js +1 -1
  87. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  88. package/dist/components/core/model/FieldMetaDataForm.tsx +1 -1
  89. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  90. package/dist/components/core/model/ModelMetaData.js +6 -18
  91. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  92. package/dist/components/core/model/ModelMetaData.tsx +8 -21
  93. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  94. package/dist/components/layout/AdminTopHeader.js +1 -1
  95. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  96. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  97. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  98. package/dist/components/shad-cn-ui/SolidAutocomplete.js +15 -0
  99. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  100. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +13 -0
  101. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  102. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  103. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  104. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  105. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  106. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  107. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  108. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  109. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  110. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  111. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  112. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  113. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  114. package/dist/helpers/buttonPresentation.d.ts +24 -0
  115. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  116. package/dist/helpers/buttonPresentation.js +28 -0
  117. package/dist/helpers/buttonPresentation.js.map +1 -0
  118. package/dist/helpers/buttonPresentation.ts +53 -0
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +1 -0
  122. package/dist/index.js.map +1 -1
  123. package/dist/index.ts +1 -0
  124. package/dist/resources/globals.css +9 -7
  125. package/dist/resources/shadcn-base.css +24 -4
  126. package/package.json +1 -1
@@ -884,7 +884,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
884
884
  const baseFormPath = normalizeSolidFormActionPath(pathname, "form");
885
885
  const queryParams = new URLSearchParams(searchParams.toString());
886
886
  queryParams.set("viewMode", "view");
887
- router.push(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);
887
+ router.replace(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);
888
888
  setViewMode("view")
889
889
  }
890
890
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormViewContextMenuHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"AAIA,UAAU,yCAAyC;IAC/C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,oCAAoC,CAAC,EACjD,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,yCAAyC,kDAyD3C"}
1
+ {"version":3,"file":"SolidFormViewContextMenuHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"AAKA,UAAU,yCAAyC;IAC/C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,oCAAoC,CAAC,EACjD,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,yCAAyC,kDA6D3C"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { hasAnyRole } from "../../../helpers/rolesHelper";
3
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
3
4
  import { useSession } from "../../../hooks/useSession";
4
5
  import { SolidButton, SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui";
5
6
  export function SolidFormViewContextMenuHeaderButton(_a) {
@@ -8,11 +9,19 @@ export function SolidFormViewContextMenuHeaderButton(_a) {
8
9
  var _o = useSession(), session = _o.data, status = _o.status;
9
10
  var user = session === null || session === void 0 ? void 0 : session.user;
10
11
  var hasRole = !((_b = 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);
12
+ var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
11
13
  if (!hasRole)
12
14
  return null;
13
15
  if (((_e = button.attrs) === null || _e === void 0 ? void 0 : _e.visible) == false)
14
16
  return null;
15
- var iconMeta = parseSolidIconMeta((_g = (_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.icon) !== null && _g !== void 0 ? _g : "si si-pencil");
17
+ if (!presentation.showIcon && !presentation.showLabel)
18
+ return null;
19
+ var iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
20
+ var iconNode = presentation.showIcon
21
+ ? (iconMeta
22
+ ? _jsx(SolidIcon, { name: iconMeta.name, spin: iconMeta.spin, className: "solid-row-action-button-icon", "aria-hidden": true })
23
+ : _jsx("i", { className: "".concat(presentation.icon, " solid-row-action-button-icon"), "aria-hidden": true }))
24
+ : null;
16
25
  var handleClick = function () {
17
26
  var event = {
18
27
  action: button.attrs.action,
@@ -25,8 +34,8 @@ export function SolidFormViewContextMenuHeaderButton(_a) {
25
34
  onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
26
35
  };
27
36
  if (variant === "menu") {
28
- return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(((_h = button === null || button === void 0 ? void 0 : button.attrs) === null || _h === void 0 ? void 0 : _h.className) ? (_j = button === null || button === void 0 ? void 0 : button.attrs) === null || _j === void 0 ? void 0 : _j.className : ''), onClick: handleClick, children: [iconMeta ? (_jsx(SolidIcon, { name: iconMeta.name, spin: iconMeta.spin, className: "solid-row-action-button-icon", "aria-hidden": true })) : null, _jsx("span", { className: "solid-row-action-button-label", children: button.attrs.label })] }));
37
+ return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), onClick: handleClick, title: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_h = (_f = presentation.tooltip) !== null && _f !== void 0 ? _f : (_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.action) !== null && _h !== void 0 ? _h : "Action") : undefined, children: [presentation.iconPos === "left" ? iconNode : null, presentation.showLabel ? _jsx("span", { className: "solid-row-action-button-label", children: presentation.label }) : null, presentation.iconPos === "right" ? iconNode : null] }));
29
38
  }
30
- return (_jsx("div", { children: _jsx(SolidButton, { text: true, type: "button", className: "w-full text-left gap-2 ".concat(((_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.className) ? (_l = button === null || button === void 0 ? void 0 : button.attrs) === null || _l === void 0 ? void 0 : _l.className : ''), label: button.attrs.label, size: "sm", leftIcon: iconMeta ? _jsx(SolidIcon, { name: iconMeta.name, spin: iconMeta.spin, "aria-hidden": true }) : undefined, onClick: handleClick }) }));
39
+ return (_jsx("div", { children: _jsx(SolidButton, { text: true, type: "button", className: "w-full text-left gap-2 ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), label: presentation.label, size: "sm", icon: presentation.icon, iconPos: presentation.iconPos, tooltip: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_l = (_j = presentation.tooltip) !== null && _j !== void 0 ? _j : (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.action) !== null && _l !== void 0 ? _l : "Action") : undefined, onClick: handleClick }) }));
31
40
  }
32
41
  //# sourceMappingURL=SolidFormViewContextMenuHeaderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormViewContextMenuHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidButton, SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui\";\n\ninterface SolidFormViewContextMenuHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewContextMenuHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewContextMenuHeaderButtonProps) {\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 if (button.attrs?.visible == false) return null\n const iconMeta = parseSolidIconMeta(button?.attrs?.icon ?? \"si si-pencil\");\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={handleClick}\n >\n {iconMeta ? (\n <SolidIcon\n name={iconMeta.name}\n spin={iconMeta.spin}\n className=\"solid-row-action-button-icon\"\n aria-hidden\n />\n ) : null}\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n text\n type=\"button\"\n className={`w-full text-left gap-2 ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n label={button.attrs.label}\n size=\"sm\"\n leftIcon={\n iconMeta ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} aria-hidden /> : undefined\n }\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidFormViewContextMenuHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { resolveButtonPresentation } from \"../../../helpers/buttonPresentation\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidButton, SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui\";\n\ninterface SolidFormViewContextMenuHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewContextMenuHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewContextMenuHeaderButtonProps) {\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 const presentation = resolveButtonPresentation(button?.attrs);\n\n if (!hasRole) return null;\n if (button.attrs?.visible == false) return null\n if (!presentation.showIcon && !presentation.showLabel) return null;\n const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;\n const iconNode = presentation.showIcon\n ? (iconMeta\n ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className=\"solid-row-action-button-icon\" aria-hidden />\n : <i className={`${presentation.icon} solid-row-action-button-icon`} aria-hidden />)\n : null;\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n onClick={handleClick}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-row-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n text\n type=\"button\"\n className={`w-full text-left gap-2 ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n label={presentation.label}\n size=\"sm\"\n icon={presentation.icon}\n iconPos={presentation.iconPos}\n tooltip={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { hasAnyRole } from "../../../helpers/rolesHelper";
2
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
2
3
  import { useSession } from "../../../hooks/useSession";
3
4
  import { SolidButton, SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui";
4
5
 
@@ -28,10 +29,17 @@ export function SolidFormViewContextMenuHeaderButton({
28
29
  const user = session?.user;
29
30
 
30
31
  const hasRole = !button.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);
32
+ const presentation = resolveButtonPresentation(button?.attrs);
31
33
 
32
34
  if (!hasRole) return null;
33
35
  if (button.attrs?.visible == false) return null
34
- const iconMeta = parseSolidIconMeta(button?.attrs?.icon ?? "si si-pencil");
36
+ if (!presentation.showIcon && !presentation.showLabel) return null;
37
+ const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
38
+ const iconNode = presentation.showIcon
39
+ ? (iconMeta
40
+ ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className="solid-row-action-button-icon" aria-hidden />
41
+ : <i className={`${presentation.icon} solid-row-action-button-icon`} aria-hidden />)
42
+ : null;
35
43
  const handleClick = () => {
36
44
  const event = {
37
45
  action: button.attrs.action,
@@ -48,18 +56,14 @@ export function SolidFormViewContextMenuHeaderButton({
48
56
  return (
49
57
  <button
50
58
  type="button"
51
- className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
59
+ className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
52
60
  onClick={handleClick}
61
+ title={presentation.tooltip}
62
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
53
63
  >
54
- {iconMeta ? (
55
- <SolidIcon
56
- name={iconMeta.name}
57
- spin={iconMeta.spin}
58
- className="solid-row-action-button-icon"
59
- aria-hidden
60
- />
61
- ) : null}
62
- <span className="solid-row-action-button-label">{button.attrs.label}</span>
64
+ {presentation.iconPos === "left" ? iconNode : null}
65
+ {presentation.showLabel ? <span className="solid-row-action-button-label">{presentation.label}</span> : null}
66
+ {presentation.iconPos === "right" ? iconNode : null}
63
67
  </button>
64
68
  );
65
69
  }
@@ -69,12 +73,13 @@ export function SolidFormViewContextMenuHeaderButton({
69
73
  <SolidButton
70
74
  text
71
75
  type="button"
72
- className={`w-full text-left gap-2 ${button?.attrs?.className ? button?.attrs?.className : ''}`}
73
- label={button.attrs.label}
76
+ className={`w-full text-left gap-2 ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
77
+ label={presentation.label}
74
78
  size="sm"
75
- leftIcon={
76
- iconMeta ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} aria-hidden /> : undefined
77
- }
79
+ icon={presentation.icon}
80
+ iconPos={presentation.iconPos}
81
+ tooltip={presentation.tooltip}
82
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
78
83
  onClick={handleClick}
79
84
  />
80
85
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormViewNormalHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"AAKA,UAAU,oCAAoC;IAC1C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,+BAA+B,CAAC,EAC5C,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,oCAAoC,kDAkDtC"}
1
+ {"version":3,"file":"SolidFormViewNormalHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"AAMA,UAAU,oCAAoC;IAC1C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,+BAA+B,CAAC,EAC5C,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,oCAAoC,kDA6DtC"}
@@ -12,18 +12,22 @@ var __assign = (this && this.__assign) || function () {
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { hasAnyRole } from '../../../helpers/rolesHelper';
14
14
  import { useSession } from "../../../hooks/useSession";
15
+ import { resolveButtonPresentation } from '../../../helpers/buttonPresentation';
15
16
  import { SolidButton } from '../../shad-cn-ui';
16
17
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
17
18
  export function SolidFormViewNormalHeaderButton(_a) {
18
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
19
- var button = _a.button, params = _a.params, formik = _a.formik, solidFormViewMetaData = _a.solidFormViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, formData = _a.formData, onActionComplete = _a.onActionComplete, _o = _a.variant, variant = _o === void 0 ? "default" : _o;
20
- var _p = useSession(), session = _p.data, status = _p.status;
19
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
20
+ var button = _a.button, params = _a.params, formik = _a.formik, solidFormViewMetaData = _a.solidFormViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, formData = _a.formData, onActionComplete = _a.onActionComplete, _m = _a.variant, variant = _m === void 0 ? "default" : _m;
21
+ var _o = useSession(), session = _o.data, status = _o.status;
21
22
  var user = session === null || session === void 0 ? void 0 : session.user;
22
23
  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);
24
+ var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
23
25
  if (!hasRole)
24
26
  return null;
25
27
  if (((_e = button === null || button === void 0 ? void 0 : button.attrs) === null || _e === void 0 ? void 0 : _e.visible) == false)
26
28
  return null;
29
+ if (!presentation.showIcon && !presentation.showLabel)
30
+ return null;
27
31
  var handleClick = function () {
28
32
  var event = {
29
33
  action: button.attrs.action,
@@ -36,8 +40,14 @@ export function SolidFormViewNormalHeaderButton(_a) {
36
40
  onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
37
41
  };
38
42
  if (variant === "menu") {
39
- return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(((_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.className) ? (_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.className : ''), onClick: handleClick, children: [((_h = button === null || button === void 0 ? void 0 : button.attrs) === null || _h === void 0 ? void 0 : _h.icon) && ((function () { var m = parseSolidIconMeta(button.attrs.icon); return m ? _jsx(SolidIcon, { name: m.name, spin: m.spin, className: "solid-row-action-button-icon" }) : _jsx("i", { className: "".concat(button.attrs.icon, " solid-row-action-button-icon") }); })()), _jsx("span", { className: "solid-row-action-button-label", children: button.attrs.label })] }));
43
+ var iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
44
+ var iconNode = presentation.showIcon
45
+ ? (iconMeta
46
+ ? _jsx(SolidIcon, { name: iconMeta.name, spin: iconMeta.spin, className: "solid-row-action-button-icon" })
47
+ : _jsx("i", { className: "".concat(presentation.icon, " solid-row-action-button-icon") }))
48
+ : null;
49
+ return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), onClick: handleClick, title: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_h = (_f = presentation.tooltip) !== null && _f !== void 0 ? _f : (_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.action) !== null && _h !== void 0 ? _h : "Action") : undefined, children: [presentation.iconPos === "left" ? iconNode : null, presentation.showLabel ? _jsx("span", { className: "solid-row-action-button-label", children: presentation.label }) : null, presentation.iconPos === "right" ? iconNode : null] }));
40
50
  }
41
- return (_jsx("div", { children: _jsx(SolidButton, __assign({ type: "button", className: "w-full text-left gap-2 solid-icon-button ".concat(((_j = button === null || button === void 0 ? void 0 : button.attrs) === null || _j === void 0 ? void 0 : _j.className) ? (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.className : '') }, button.attrs, { label: button.attrs.label, size: "sm", iconPos: "left", icon: ((_l = button === null || button === void 0 ? void 0 : button.attrs) === null || _l === void 0 ? void 0 : _l.icon) ? (_m = button === null || button === void 0 ? void 0 : button.attrs) === null || _m === void 0 ? void 0 : _m.icon : "", onClick: handleClick })) }));
51
+ return (_jsx("div", { children: _jsx(SolidButton, __assign({ type: "button", className: "w-full text-left gap-2 solid-icon-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : '') }, button.attrs, { label: presentation.label, size: "sm", iconPos: presentation.iconPos, icon: presentation.icon, tooltip: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_l = (_j = presentation.tooltip) !== null && _j !== void 0 ? _j : (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.action) !== null && _l !== void 0 ? _l : "Action") : undefined, onClick: handleClick })) }));
42
52
  }
43
53
  //# sourceMappingURL=SolidFormViewNormalHeaderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormViewNormalHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from '../../../helpers/rolesHelper';\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidButton } from '../../shad-cn-ui';\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\ninterface SolidFormViewNormalHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewNormalHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewNormalHeaderButtonProps) {\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 if (button?.attrs?.visible == false) return null\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={handleClick}\n >\n {button?.attrs?.icon && (\n (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-row-action-button-icon\" /> : <i className={`${button.attrs.icon} solid-row-action-button-icon`} />; })()\n )}\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n type=\"button\"\n className={`w-full text-left gap-2 solid-icon-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n {...button.attrs}\n label={button.attrs.label}\n size=\"sm\"\n iconPos=\"left\"\n icon={button?.attrs?.icon ? button?.attrs?.icon : \"\"}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidFormViewNormalHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from '../../../helpers/rolesHelper';\nimport { useSession } from \"../../../hooks/useSession\";\nimport { resolveButtonPresentation } from '../../../helpers/buttonPresentation';\nimport { SolidButton } from '../../shad-cn-ui';\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\ninterface SolidFormViewNormalHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewNormalHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewNormalHeaderButtonProps) {\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 const presentation = resolveButtonPresentation(button?.attrs);\n\n if (!hasRole) return null;\n if (button?.attrs?.visible == false) return null\n if (!presentation.showIcon && !presentation.showLabel) return null;\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;\n const iconNode = presentation.showIcon\n ? (iconMeta\n ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className=\"solid-row-action-button-icon\" />\n : <i className={`${presentation.icon} solid-row-action-button-icon`} />)\n : null;\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n onClick={handleClick}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-row-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n type=\"button\"\n className={`w-full text-left gap-2 solid-icon-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n {...button.attrs}\n label={presentation.label}\n size=\"sm\"\n iconPos={presentation.iconPos}\n icon={presentation.icon}\n tooltip={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { hasAnyRole } from '../../../helpers/rolesHelper';
2
2
  import { useSession } from "../../../hooks/useSession";
3
+ import { resolveButtonPresentation } from '../../../helpers/buttonPresentation';
3
4
  import { SolidButton } from '../../shad-cn-ui';
4
5
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
5
6
 
@@ -29,9 +30,11 @@ export function SolidFormViewNormalHeaderButton({
29
30
  const user = session?.user;
30
31
 
31
32
  const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);
33
+ const presentation = resolveButtonPresentation(button?.attrs);
32
34
 
33
35
  if (!hasRole) return null;
34
36
  if (button?.attrs?.visible == false) return null
37
+ if (!presentation.showIcon && !presentation.showLabel) return null;
35
38
  const handleClick = () => {
36
39
  const event = {
37
40
  action: button.attrs.action,
@@ -45,16 +48,23 @@ export function SolidFormViewNormalHeaderButton({
45
48
  };
46
49
 
47
50
  if (variant === "menu") {
51
+ const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
52
+ const iconNode = presentation.showIcon
53
+ ? (iconMeta
54
+ ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className="solid-row-action-button-icon" />
55
+ : <i className={`${presentation.icon} solid-row-action-button-icon`} />)
56
+ : null;
48
57
  return (
49
58
  <button
50
59
  type="button"
51
- className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
60
+ className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
52
61
  onClick={handleClick}
62
+ title={presentation.tooltip}
63
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
53
64
  >
54
- {button?.attrs?.icon && (
55
- (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className="solid-row-action-button-icon" /> : <i className={`${button.attrs.icon} solid-row-action-button-icon`} />; })()
56
- )}
57
- <span className="solid-row-action-button-label">{button.attrs.label}</span>
65
+ {presentation.iconPos === "left" ? iconNode : null}
66
+ {presentation.showLabel ? <span className="solid-row-action-button-label">{presentation.label}</span> : null}
67
+ {presentation.iconPos === "right" ? iconNode : null}
58
68
  </button>
59
69
  );
60
70
  }
@@ -63,12 +73,14 @@ export function SolidFormViewNormalHeaderButton({
63
73
  <div>
64
74
  <SolidButton
65
75
  type="button"
66
- className={`w-full text-left gap-2 solid-icon-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
76
+ className={`w-full text-left gap-2 solid-icon-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
67
77
  {...button.attrs}
68
- label={button.attrs.label}
78
+ label={presentation.label}
69
79
  size="sm"
70
- iconPos="left"
71
- icon={button?.attrs?.icon ? button?.attrs?.icon : ""}
80
+ iconPos={presentation.iconPos}
81
+ icon={presentation.icon}
82
+ tooltip={presentation.tooltip}
83
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
72
84
  onClick={handleClick}
73
85
  />
74
86
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListView.tsx"],"names":[],"mappings":";AAwDA,eAAO,MAAM,+BAA+B,WAgB3C,CAAC;AAGF,eAAO,MAAM,oCAAoC,QAAS,MAAM,QAgB/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAAiB,GAAG,kBAU7D,CAAC;AAGF,eAAO,MAAM,kCAAkC,QAAS,MAAM,eAAe,GAAG,kBAU/E,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B,CAAC,EAAE,GAAG,CAAC;IACpC,8BAA8B,CAAC,EAAE,GAAG,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC,KAAK,IAAI,CAAC;IACX;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpE;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;QACb,gBAAgB,EAAE,GAAG,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,qHA4oDxB,CAAC"}
1
+ {"version":3,"file":"SolidListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListView.tsx"],"names":[],"mappings":";AAyDA,eAAO,MAAM,+BAA+B,WAgB3C,CAAC;AAGF,eAAO,MAAM,oCAAoC,QAAS,MAAM,QAgB/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAAiB,GAAG,kBAU7D,CAAC;AAGF,eAAO,MAAM,kCAAkC,QAAS,MAAM,eAAe,GAAG,kBAU/E,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B,CAAC,EAAE,GAAG,CAAC;IACpC,8BAA8B,CAAC,EAAE,GAAG,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC,KAAK,IAAI,CAAC;IACX;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpE;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;QACb,gBAAgB,EAAE,GAAG,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,qHAqpDxB,CAAC"}
@@ -60,7 +60,7 @@ import { SolidDataTable as DataTable, Column } from "./SolidDataTable";
60
60
  import qs from "qs";
61
61
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
62
62
  import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
63
- import { SolidListViewColumn } from "./SolidListViewColumn";
63
+ import { SolidListViewColumn, isFieldSortable } from "./SolidListViewColumn";
64
64
  import { SolidCreateButton } from "../common/SolidCreateButton";
65
65
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
66
66
  import { useLazyCheckIfPermissionExistsQuery } from "../../../redux/api/userApi";
@@ -79,6 +79,7 @@ import { SolidEmptyListViewPlaceholder } from "./SolidEmptyListViewPlaceholder";
79
79
  import { useHandleListCustomButtonClick } from "../../../components/common/useHandleListCustomButtonClick";
80
80
  import { hasAnyRole } from "../../../helpers/rolesHelper";
81
81
  import { SolidListViewHeaderButton } from "./SolidListViewHeaderButton";
82
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
82
83
  import { useDispatch, useSelector } from "react-redux";
83
84
  import styles from "./SolidListViewWrapper.module.css";
84
85
  import { getExtensionFunction } from "../../../helpers/registry";
@@ -92,7 +93,7 @@ import { SolidListViewRowActionsMenu } from "./SolidListViewRowActionsMenu";
92
93
  import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus";
93
94
  import { SolidButton, SolidConfirmDialog, SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../shad-cn-ui";
94
95
  import { FilterMatchMode } from "../filter/filterMatchMode";
95
- import { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, SquarePen, Trash2 } from "lucide-react";
96
+ import { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, Trash2 } from "lucide-react";
96
97
  // import { ERROR_MESSAGES } from "../../../constants/error-messages";
97
98
  var getRandomInt = function (min, max) {
98
99
  return Math.floor(Math.random() * (max - min + 1)) + min;
@@ -621,11 +622,16 @@ export var SolidListView = forwardRef(function (params, ref) {
621
622
  currentSortOrder = latestSortOrderRef.current;
622
623
  if (currentSortField && (currentSortOrder === 1 || currentSortOrder === -1)) {
623
624
  meta = solidFieldsMetadata === null || solidFieldsMetadata === void 0 ? void 0 : solidFieldsMetadata[currentSortField];
624
- resolvedField = currentSortField;
625
- if ((meta === null || meta === void 0 ? void 0 : meta.type) === "relation" && (meta === null || meta === void 0 ? void 0 : meta.relationType) === "many-to-one") {
626
- resolvedField = "".concat(currentSortField, ".").concat((_d = (_c = meta === null || meta === void 0 ? void 0 : meta.relationModel) === null || _c === void 0 ? void 0 : _c.userKeyField) === null || _d === void 0 ? void 0 : _d.name);
625
+ if (!isFieldSortable(meta)) {
626
+ queryData.sort = ["id:desc"];
627
+ }
628
+ else {
629
+ resolvedField = currentSortField;
630
+ if ((meta === null || meta === void 0 ? void 0 : meta.type) === "relation" && (meta === null || meta === void 0 ? void 0 : meta.relationType) === "many-to-one") {
631
+ resolvedField = "".concat(currentSortField, ".").concat((_d = (_c = meta === null || meta === void 0 ? void 0 : meta.relationModel) === null || _c === void 0 ? void 0 : _c.userKeyField) === null || _d === void 0 ? void 0 : _d.name);
632
+ }
633
+ queryData.sort = ["".concat(resolvedField, ":").concat(currentSortOrder === 1 ? "asc" : "desc")];
627
634
  }
628
- queryData.sort = ["".concat(resolvedField, ":").concat(currentSortOrder === 1 ? "asc" : "desc")];
629
635
  }
630
636
  else {
631
637
  queryData.sort = ["id:desc"];
@@ -1197,19 +1203,22 @@ export var SolidListView = forwardRef(function (params, ref) {
1197
1203
  return !isInContextMenu && isAllowed && isVisible;
1198
1204
  }).map(function (button, index) {
1199
1205
  return (_jsx(Column, { header: button.attrs.label, body: function (rowData) {
1200
- var _a, _b, _c, _d;
1201
- return (_jsx(SolidButton, { type: "button", icon: (_a = button === null || button === void 0 ? void 0 : button.attrs) === null || _a === void 0 ? void 0 : _a.icon, leftIcon: !((_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.icon) ? _jsx(SquarePen, { size: 14 }) : undefined, className: "solid-inline-row-button w-full text-left gap-2 ".concat(((_c = button === null || button === void 0 ? void 0 : button.attrs) === null || _c === void 0 ? void 0 : _c.className)
1202
- ? (_d = button === null || button === void 0 ? void 0 : button.attrs) === null || _d === void 0 ? void 0 : _d.className
1203
- : ""), size: "small", variant: "ghost", onClick: function () {
1204
- var event = {
1205
- params: params,
1206
- rowData: rowData,
1207
- solidListViewMetaData: solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data,
1208
- };
1209
- handleCustomButtonClick(button.attrs, event);
1210
- }, children: button.attrs.showLabel !== false
1211
- ? button.attrs.label
1212
- : "" }));
1206
+ return ((function () {
1207
+ var _a, _b, _c;
1208
+ var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
1209
+ if (!presentation.showIcon && !presentation.showLabel)
1210
+ return null;
1211
+ return (_jsx(SolidButton, { type: "button", icon: presentation.icon, iconPos: presentation.iconPos, label: presentation.label, tooltip: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_c = (_a = presentation.tooltip) !== null && _a !== void 0 ? _a : (_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.action) !== null && _c !== void 0 ? _c : "Action") : undefined, className: "solid-inline-row-button w-full text-left gap-2 ".concat(presentation.buttonClassName
1212
+ ? presentation.buttonClassName
1213
+ : ""), size: "small", variant: "ghost", onClick: function () {
1214
+ var event = {
1215
+ params: params,
1216
+ rowData: rowData,
1217
+ solidListViewMetaData: solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data,
1218
+ };
1219
+ handleCustomButtonClick(button.attrs, event);
1220
+ } }));
1221
+ })());
1213
1222
  } }, index));
1214
1223
  })), actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
1215
1224
  ((_18 = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _18 === void 0 ? void 0 : _18.edit) !== false &&