@peak-ai/canvas 1.4.11-rc.8 → 1.4.11
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.
- package/.babelrc +14 -0
- package/.eslintcache +1 -0
- package/.eslintignore +5 -0
- package/.eslintrc.js +29 -0
- package/{GrapesjsCanvas.d.ts → dist/GrapesjsCanvas.d.ts} +1 -3
- package/dist/GrapesjsCanvas.js +7 -0
- package/dist/GrapesjsCanvas.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +62 -0
- package/{plugins → dist/plugins}/grapejs-plugin.d.ts +1 -1
- package/{plugins → dist/plugins}/grapejs-plugin.js +1 -1
- package/dist/plugins/grapejs-plugin.js.map +1 -0
- package/dist/plugins/helpers/custom-modal.d.ts +11 -0
- package/dist/plugins/helpers/custom-modal.js +2 -0
- package/dist/plugins/helpers/custom-modal.js.map +1 -0
- package/dist/plugins/helpers/query-details-modal.d.ts +17 -0
- package/dist/plugins/helpers/query-details-modal.js +4 -0
- package/dist/plugins/helpers/query-details-modal.js.map +1 -0
- package/dist/plugins/helpers/query-loading-modal.d.ts +5 -0
- package/dist/plugins/helpers/query-loading-modal.js +2 -0
- package/dist/plugins/helpers/query-loading-modal.js.map +1 -0
- package/dist/plugins/helpers/render-components.js +10 -0
- package/dist/plugins/helpers/render-components.js.map +1 -0
- package/dist/plugins/helpers/styled-info-button.d.ts +28 -0
- package/dist/plugins/helpers/styled-info-button.js +2 -0
- package/dist/plugins/helpers/styled-info-button.js.map +1 -0
- package/dist/shadcn/components/icons/AiAvatarIcon.d.ts +7 -0
- package/dist/shadcn/components/icons/AiAvatarIcon.js +2 -0
- package/dist/shadcn/components/icons/AiAvatarIcon.js.map +1 -0
- package/{shadcn → dist/shadcn}/components/ui/button.d.ts +1 -1
- package/package.json +45 -7
- package/scripts/build.ts +88 -0
- package/src/GrapesjsCanvas.tsx +340 -0
- package/src/constants/index.ts +27 -0
- package/src/helpers/compiled-table.css +2429 -0
- package/src/helpers/css.ts +2515 -0
- package/src/helpers/date-picker.ts +807 -0
- package/src/helpers/index.ts +13 -0
- package/src/helpers/merge-json.ts +106 -0
- package/src/index.styles.ts +58 -0
- package/src/index.ts +9 -0
- package/src/plugins/grapejs-plugin.tsx +139 -0
- package/src/plugins/helpers/custom-modal.tsx +111 -0
- package/src/plugins/helpers/data-table.tsx +300 -0
- package/src/plugins/helpers/extra.tsx +164 -0
- package/src/plugins/helpers/query-details-modal.tsx +240 -0
- package/src/plugins/helpers/query-loading-modal.tsx +36 -0
- package/src/plugins/helpers/render-components.tsx +1211 -0
- package/src/plugins/helpers/styled-info-button.tsx +320 -0
- package/src/public/canvas.css +42 -0
- package/src/public/components-css/table/table-output.css +2436 -0
- package/src/public/components-css/table/table.css +30 -0
- package/src/public/output.css +2336 -0
- package/src/public/table.css +135 -0
- package/src/shadcn/components/icons/AiAvatarIcon.tsx +47 -0
- package/src/shadcn/components/icons/Co_driver Expanding button copy.svg +21 -0
- package/src/shadcn/components/icons/ai-avatar.svg +7 -0
- package/src/shadcn/components/icons/thinking.gif +0 -0
- package/src/shadcn/components/ui/button.tsx +132 -0
- package/src/shadcn/components/ui/card.tsx +92 -0
- package/src/shadcn/components/ui/chart.tsx +324 -0
- package/src/shadcn/components/ui/checkbox.tsx +27 -0
- package/src/shadcn/components/ui/component-wrapper.tsx +61 -0
- package/src/shadcn/components/ui/date-filter.tsx +816 -0
- package/src/shadcn/components/ui/error-container.tsx +125 -0
- package/src/shadcn/components/ui/error-wrapper.tsx +124 -0
- package/src/shadcn/components/ui/filter.tsx +366 -0
- package/src/shadcn/components/ui/hover-card.tsx +36 -0
- package/src/shadcn/components/ui/input.tsx +20 -0
- package/src/shadcn/components/ui/label.tsx +24 -0
- package/src/shadcn/components/ui/pagination.tsx +213 -0
- package/src/shadcn/components/ui/scroll-area.tsx +59 -0
- package/src/shadcn/components/ui/search.tsx +149 -0
- package/src/shadcn/components/ui/separator.tsx +26 -0
- package/src/shadcn/components/ui/skeleton.tsx +69 -0
- package/src/shadcn/components/ui/table.tsx +196 -0
- package/src/shadcn/components/ui/tabs.tsx +55 -0
- package/src/shadcn/components/ui/textarea.tsx +18 -0
- package/src/shadcn/components/ui/tooltip.tsx +87 -0
- package/src/shadcn/utils.ts +6 -0
- package/src/types/grapesjs-tailwind.d.ts +61 -0
- package/tailwind.config.js +5 -0
- package/tooling/tailwind-compiler/index.js +99 -0
- package/tooling/tailwind-compiler/package.json +11 -0
- package/tooling/tailwind-compiler/yarn.lock +123 -0
- package/tsconfig.build.json +15 -0
- package/tsconfig.json +8 -0
- package/GrapesjsCanvas.js +0 -6
- package/GrapesjsCanvas.js.map +0 -1
- package/index.d.ts +0 -4
- package/index.js +0 -2
- package/index.js.map +0 -1
- package/plugins/grapejs-plugin.js.map +0 -1
- package/plugins/helpers/render-components.js +0 -10
- package/plugins/helpers/render-components.js.map +0 -1
- /package/{constants → dist/constants}/index.d.ts +0 -0
- /package/{constants → dist/constants}/index.js +0 -0
- /package/{constants → dist/constants}/index.js.map +0 -0
- /package/{helpers → dist/helpers}/compiled-table.css +0 -0
- /package/{helpers → dist/helpers}/css.d.ts +0 -0
- /package/{helpers → dist/helpers}/css.js +0 -0
- /package/{helpers → dist/helpers}/css.js.map +0 -0
- /package/{helpers → dist/helpers}/date-picker.d.ts +0 -0
- /package/{helpers → dist/helpers}/date-picker.js +0 -0
- /package/{helpers → dist/helpers}/date-picker.js.map +0 -0
- /package/{helpers → dist/helpers}/index.d.ts +0 -0
- /package/{helpers → dist/helpers}/index.js +0 -0
- /package/{helpers → dist/helpers}/index.js.map +0 -0
- /package/{helpers → dist/helpers}/merge-json.d.ts +0 -0
- /package/{helpers → dist/helpers}/merge-json.js +0 -0
- /package/{helpers → dist/helpers}/merge-json.js.map +0 -0
- /package/{index.styles.d.ts → dist/index.styles.d.ts} +0 -0
- /package/{index.styles.js → dist/index.styles.js} +0 -0
- /package/{index.styles.js.map → dist/index.styles.js.map} +0 -0
- /package/{plugins → dist/plugins}/helpers/data-table.d.ts +0 -0
- /package/{plugins → dist/plugins}/helpers/data-table.js +0 -0
- /package/{plugins → dist/plugins}/helpers/data-table.js.map +0 -0
- /package/{plugins → dist/plugins}/helpers/extra.d.ts +0 -0
- /package/{plugins → dist/plugins}/helpers/extra.js +0 -0
- /package/{plugins → dist/plugins}/helpers/extra.js.map +0 -0
- /package/{plugins → dist/plugins}/helpers/render-components.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/button.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/button.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/card.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/card.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/card.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/chart.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/chart.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/chart.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/checkbox.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/checkbox.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/checkbox.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/component-wrapper.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/component-wrapper.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/component-wrapper.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/date-filter.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/date-filter.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/date-filter.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/error-container.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/error-container.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/error-container.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/error-wrapper.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/error-wrapper.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/error-wrapper.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/filter.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/filter.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/filter.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/hover-card.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/hover-card.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/hover-card.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/input.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/input.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/input.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/label.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/label.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/label.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/pagination.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/pagination.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/pagination.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/scroll-area.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/scroll-area.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/scroll-area.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/search.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/search.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/search.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/separator.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/separator.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/separator.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/skeleton.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/skeleton.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/skeleton.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/table.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/table.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/table.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/tabs.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/tabs.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/tabs.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/textarea.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/textarea.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/textarea.js.map +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/tooltip.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/tooltip.js +0 -0
- /package/{shadcn → dist/shadcn}/components/ui/tooltip.js.map +0 -0
- /package/{shadcn → dist/shadcn}/utils.d.ts +0 -0
- /package/{shadcn → dist/shadcn}/utils.js +0 -0
- /package/{shadcn → dist/shadcn}/utils.js.map +0 -0
- /package/{types → dist/types}/grapesjs-tailwind.d.js +0 -0
- /package/{types → dist/types}/grapesjs-tailwind.d.js.map +0 -0
package/.babelrc
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"presets": [
|
|
3
|
+
"@babel/preset-typescript",
|
|
4
|
+
["@babel/preset-react", { "runtime": "automatic" }],
|
|
5
|
+
["@babel/preset-env", { "modules": false, "loose": true }]
|
|
6
|
+
],
|
|
7
|
+
"plugins": [
|
|
8
|
+
"babel-plugin-styled-components",
|
|
9
|
+
["@babel/plugin-transform-class-properties", { "loose": true }],
|
|
10
|
+
["@babel/plugin-transform-private-methods", { "loose": true }],
|
|
11
|
+
["@babel/plugin-transform-private-property-in-object", { "loose": true }],
|
|
12
|
+
"@babel/plugin-transform-runtime"
|
|
13
|
+
]
|
|
14
|
+
}
|
package/.eslintcache
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/GrapesjsCanvas.tsx":"1","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/constants/index.ts":"2","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/helpers/css.ts":"3","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/helpers/index.ts":"4","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/helpers/merge-json.ts":"5","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/index.styles.ts":"6","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/index.ts":"7","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/plugins/grapejs-plugin.tsx":"8","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/plugins/helpers/extra.tsx":"9","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/plugins/helpers/render-components.tsx":"10","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/button.tsx":"11","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/card.tsx":"12","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/chart.tsx":"13","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/checkbox.tsx":"14","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/filter.tsx":"15","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/hover-card.tsx":"16","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/input.tsx":"17","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/label.tsx":"18","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/pagination.tsx":"19","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/scroll-area.tsx":"20","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/search.tsx":"21","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/separator.tsx":"22","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/skeleton.tsx":"23","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/table.tsx":"24","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/tabs.tsx":"25","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/textarea.tsx":"26","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/tooltip.tsx":"27","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/utils.ts":"28","/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/types/grapesjs-tailwind.d.ts":"29"},{"size":7355,"mtime":1753443857826,"results":"30","hashOfConfig":"31"},{"size":973,"mtime":1751360531398,"results":"32","hashOfConfig":"31"},{"size":54814,"mtime":1753443857827,"results":"33","hashOfConfig":"31"},{"size":332,"mtime":1753167131880,"results":"34","hashOfConfig":"31"},{"size":2609,"mtime":1753756233105,"results":"35","hashOfConfig":"31"},{"size":1068,"mtime":1753167131886,"results":"36","hashOfConfig":"31"},{"size":150,"mtime":1751455501604,"results":"37","hashOfConfig":"31"},{"size":4295,"mtime":1753167131887,"results":"38","hashOfConfig":"31"},{"size":4501,"mtime":1753167131895,"results":"39","hashOfConfig":"31"},{"size":26698,"mtime":1753758002501,"results":"40","hashOfConfig":"31"},{"size":3354,"mtime":1753756233106,"results":"41","hashOfConfig":"31"},{"size":2276,"mtime":1753343048897,"results":"42","hashOfConfig":"31"},{"size":9817,"mtime":1751360531401,"results":"43","hashOfConfig":"31"},{"size":1215,"mtime":1751360531401,"results":"44","hashOfConfig":"31"},{"size":9236,"mtime":1753756233106,"results":"45","hashOfConfig":"31"},{"size":1512,"mtime":1751360531401,"results":"46","hashOfConfig":"31"},{"size":883,"mtime":1753756233106,"results":"47","hashOfConfig":"31"},{"size":679,"mtime":1751360531401,"results":"48","hashOfConfig":"31"},{"size":5097,"mtime":1753443857829,"results":"49","hashOfConfig":"31"},{"size":1800,"mtime":1753756230301,"results":"50","hashOfConfig":"31"},{"size":4726,"mtime":1753756233107,"results":"51","hashOfConfig":"31"},{"size":713,"mtime":1751360531402,"results":"52","hashOfConfig":"31"},{"size":1895,"mtime":1751455501606,"results":"53","hashOfConfig":"31"},{"size":2309,"mtime":1753756174602,"results":"54","hashOfConfig":"31"},{"size":1902,"mtime":1751360531402,"results":"55","hashOfConfig":"31"},{"size":764,"mtime":1751360531402,"results":"56","hashOfConfig":"31"},{"size":2607,"mtime":1753756233107,"results":"57","hashOfConfig":"31"},{"size":164,"mtime":1751360531402,"results":"58","hashOfConfig":"31"},{"size":915,"mtime":1751360531403,"results":"59","hashOfConfig":"31"},{"filePath":"60","messages":"61","suppressedMessages":"62","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"rbghib",{"filePath":"63","messages":"64","suppressedMessages":"65","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"66","messages":"67","suppressedMessages":"68","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"69","messages":"70","suppressedMessages":"71","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"72","messages":"73","suppressedMessages":"74","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"75","messages":"76","suppressedMessages":"77","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"78","messages":"79","suppressedMessages":"80","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"81","messages":"82","suppressedMessages":"83","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"84","messages":"85","suppressedMessages":"86","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"87","messages":"88","suppressedMessages":"89","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"90","messages":"91","suppressedMessages":"92","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"93","messages":"94","suppressedMessages":"95","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"96","messages":"97","suppressedMessages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"99","messages":"100","suppressedMessages":"101","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"102","messages":"103","suppressedMessages":"104","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"105","messages":"106","suppressedMessages":"107","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"108","messages":"109","suppressedMessages":"110","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"111","messages":"112","suppressedMessages":"113","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"114","messages":"115","suppressedMessages":"116","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"117","messages":"118","suppressedMessages":"119","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"120","messages":"121","suppressedMessages":"122","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"123","messages":"124","suppressedMessages":"125","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"126","messages":"127","suppressedMessages":"128","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"129","messages":"130","suppressedMessages":"131","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"132","messages":"133","suppressedMessages":"134","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"135","messages":"136","suppressedMessages":"137","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"138","messages":"139","suppressedMessages":"140","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"141","messages":"142","suppressedMessages":"143","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"144","messages":"145","suppressedMessages":"146","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/GrapesjsCanvas.tsx",[],["147","148","149","150","151","152","153","154","155","156"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/constants/index.ts",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/helpers/css.ts",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/helpers/index.ts",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/helpers/merge-json.ts",[],["157","158","159","160","161","162","163","164"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/index.styles.ts",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/index.ts",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/plugins/grapejs-plugin.tsx",[],["165","166","167","168","169","170","171","172","173","174","175","176"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/plugins/helpers/extra.tsx",[],["177","178","179","180","181","182","183"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/plugins/helpers/render-components.tsx",[],["184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/button.tsx",[],["207"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/card.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/chart.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/checkbox.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/filter.tsx",[],["208","209"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/hover-card.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/input.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/label.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/pagination.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/scroll-area.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/search.tsx",[],["210","211"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/separator.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/skeleton.tsx",["212"],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/table.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/tabs.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/textarea.tsx",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/components/ui/tooltip.tsx",[],["213","214"],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/shadcn/utils.ts",[],[],"/Users/chahat.singla/Desktop/table/canvas-ui-toolkit/packages/canvas/src/types/grapesjs-tailwind.d.ts",[],["215","216","217","218","219"],{"ruleId":"220","severity":1,"message":"221","line":4,"column":8,"nodeType":"222","endLine":4,"endColumn":16,"suppressions":"223"},{"ruleId":"224","severity":2,"message":"225","line":14,"column":9,"nodeType":"226","messageId":"227","endLine":14,"endColumn":12,"suggestions":"228","suppressions":"229"},{"ruleId":"224","severity":2,"message":"225","line":17,"column":48,"nodeType":"226","messageId":"227","endLine":17,"endColumn":51,"suggestions":"230","suppressions":"231"},{"ruleId":"224","severity":2,"message":"225","line":17,"column":80,"nodeType":"226","messageId":"227","endLine":17,"endColumn":83,"suggestions":"232","suppressions":"233"},{"ruleId":"224","severity":2,"message":"225","line":55,"column":37,"nodeType":"226","messageId":"227","endLine":55,"endColumn":40,"suggestions":"234","suppressions":"235"},{"ruleId":"224","severity":2,"message":"225","line":70,"column":30,"nodeType":"226","messageId":"227","endLine":70,"endColumn":33,"suggestions":"236","suppressions":"237"},{"ruleId":"224","severity":2,"message":"225","line":70,"column":36,"nodeType":"226","messageId":"227","endLine":70,"endColumn":39,"suggestions":"238","suppressions":"239"},{"ruleId":"224","severity":2,"message":"225","line":84,"column":40,"nodeType":"226","messageId":"227","endLine":84,"endColumn":43,"suggestions":"240","suppressions":"241"},{"ruleId":"224","severity":2,"message":"225","line":143,"column":33,"nodeType":"226","messageId":"227","endLine":143,"endColumn":36,"suggestions":"242","suppressions":"243"},{"ruleId":"224","severity":2,"message":"225","line":146,"column":68,"nodeType":"226","messageId":"227","endLine":146,"endColumn":71,"suggestions":"244","suppressions":"245"},{"ruleId":"224","severity":2,"message":"225","line":2,"column":44,"nodeType":"226","messageId":"227","endLine":2,"endColumn":47,"suggestions":"246","suppressions":"247"},{"ruleId":"224","severity":2,"message":"225","line":7,"column":24,"nodeType":"226","messageId":"227","endLine":7,"endColumn":27,"suggestions":"248","suppressions":"249"},{"ruleId":"224","severity":2,"message":"225","line":8,"column":27,"nodeType":"226","messageId":"227","endLine":8,"endColumn":30,"suggestions":"250","suppressions":"251"},{"ruleId":"224","severity":2,"message":"225","line":38,"column":24,"nodeType":"226","messageId":"227","endLine":38,"endColumn":27,"suggestions":"252","suppressions":"253"},{"ruleId":"224","severity":2,"message":"225","line":39,"column":27,"nodeType":"226","messageId":"227","endLine":39,"endColumn":30,"suggestions":"254","suppressions":"255"},{"ruleId":"224","severity":2,"message":"225","line":40,"column":19,"nodeType":"226","messageId":"227","endLine":40,"endColumn":22,"suggestions":"256","suppressions":"257"},{"ruleId":"224","severity":2,"message":"225","line":88,"column":57,"nodeType":"226","messageId":"227","endLine":88,"endColumn":60,"suggestions":"258","suppressions":"259"},{"ruleId":"224","severity":2,"message":"225","line":88,"column":89,"nodeType":"226","messageId":"227","endLine":88,"endColumn":92,"suggestions":"260","suppressions":"261"},{"ruleId":"224","severity":2,"message":"225","line":10,"column":48,"nodeType":"226","messageId":"227","endLine":10,"endColumn":51,"suggestions":"262","suppressions":"263"},{"ruleId":"224","severity":2,"message":"225","line":27,"column":14,"nodeType":"226","messageId":"227","endLine":27,"endColumn":17,"suggestions":"264","suppressions":"265"},{"ruleId":"266","severity":2,"message":"267","line":60,"column":9,"nodeType":"268","messageId":"269","endLine":60,"endColumn":26,"suppressions":"270"},{"ruleId":"224","severity":2,"message":"225","line":62,"column":26,"nodeType":"226","messageId":"227","endLine":62,"endColumn":29,"suggestions":"271","suppressions":"272"},{"ruleId":"273","severity":2,"message":"274","line":69,"column":15,"nodeType":"275","messageId":"276","endLine":69,"endColumn":28,"suggestions":"277","suppressions":"278"},{"ruleId":"224","severity":2,"message":"225","line":77,"column":54,"nodeType":"226","messageId":"227","endLine":77,"endColumn":57,"suggestions":"279","suppressions":"280"},{"ruleId":"281","severity":1,"message":"282","line":89,"column":15,"nodeType":"275","endLine":89,"endColumn":30,"suppressions":"283"},{"ruleId":"281","severity":1,"message":"282","line":102,"column":15,"nodeType":"275","endLine":102,"endColumn":30,"suppressions":"284"},{"ruleId":"224","severity":2,"message":"225","line":112,"column":27,"nodeType":"226","messageId":"227","endLine":112,"endColumn":30,"suggestions":"285","suppressions":"286"},{"ruleId":"273","severity":2,"message":"274","line":117,"column":13,"nodeType":"275","messageId":"276","endLine":117,"endColumn":25,"suggestions":"287","suppressions":"288"},{"ruleId":"266","severity":2,"message":"289","line":130,"column":9,"nodeType":"268","messageId":"269","endLine":130,"endColumn":26,"suppressions":"290"},{"ruleId":"281","severity":1,"message":"291","line":132,"column":11,"nodeType":"275","endLine":132,"endColumn":42,"suppressions":"292"},{"ruleId":"224","severity":2,"message":"225","line":17,"column":39,"nodeType":"226","messageId":"227","endLine":17,"endColumn":42,"suggestions":"293","suppressions":"294"},{"ruleId":"224","severity":2,"message":"225","line":34,"column":40,"nodeType":"226","messageId":"227","endLine":34,"endColumn":43,"suggestions":"295","suppressions":"296"},{"ruleId":"224","severity":2,"message":"225","line":61,"column":36,"nodeType":"226","messageId":"227","endLine":61,"endColumn":39,"suggestions":"297","suppressions":"298"},{"ruleId":"224","severity":2,"message":"225","line":85,"column":36,"nodeType":"226","messageId":"227","endLine":85,"endColumn":39,"suggestions":"299","suppressions":"300"},{"ruleId":"224","severity":2,"message":"225","line":97,"column":40,"nodeType":"226","messageId":"227","endLine":97,"endColumn":43,"suggestions":"301","suppressions":"302"},{"ruleId":"224","severity":2,"message":"225","line":105,"column":39,"nodeType":"226","messageId":"227","endLine":105,"endColumn":42,"suggestions":"303","suppressions":"304"},{"ruleId":"224","severity":2,"message":"225","line":129,"column":38,"nodeType":"226","messageId":"227","endLine":129,"endColumn":41,"suggestions":"305","suppressions":"306"},{"ruleId":"224","severity":2,"message":"225","line":99,"column":41,"nodeType":"226","messageId":"227","endLine":99,"endColumn":44,"suggestions":"307","suppressions":"308"},{"ruleId":"224","severity":2,"message":"225","line":153,"column":35,"nodeType":"226","messageId":"227","endLine":153,"endColumn":38,"suggestions":"309","suppressions":"310"},{"ruleId":"224","severity":2,"message":"225","line":259,"column":56,"nodeType":"226","messageId":"227","endLine":259,"endColumn":59,"suggestions":"311","suppressions":"312"},{"ruleId":"224","severity":2,"message":"225","line":259,"column":69,"nodeType":"226","messageId":"227","endLine":259,"endColumn":72,"suggestions":"313","suppressions":"314"},{"ruleId":"224","severity":2,"message":"225","line":350,"column":36,"nodeType":"226","messageId":"227","endLine":350,"endColumn":39,"suggestions":"315","suppressions":"316"},{"ruleId":"317","severity":2,"message":"318","line":381,"column":11,"nodeType":"319","messageId":"320","endLine":385,"endColumn":6,"suppressions":"321"},{"ruleId":"224","severity":2,"message":"225","line":486,"column":29,"nodeType":"226","messageId":"227","endLine":486,"endColumn":32,"suggestions":"322","suppressions":"323"},{"ruleId":"224","severity":2,"message":"225","line":515,"column":36,"nodeType":"226","messageId":"227","endLine":515,"endColumn":39,"suggestions":"324","suppressions":"325"},{"ruleId":"326","severity":2,"message":"327","line":516,"column":48,"nodeType":"328","messageId":"276","endLine":516,"endColumn":50,"suppressions":"329"},{"ruleId":"224","severity":2,"message":"225","line":565,"column":39,"nodeType":"226","messageId":"227","endLine":565,"endColumn":42,"suggestions":"330","suppressions":"331"},{"ruleId":"224","severity":2,"message":"225","line":595,"column":39,"nodeType":"226","messageId":"227","endLine":595,"endColumn":42,"suggestions":"332","suppressions":"333"},{"ruleId":"224","severity":2,"message":"225","line":600,"column":77,"nodeType":"226","messageId":"227","endLine":600,"endColumn":80,"suggestions":"334","suppressions":"335"},{"ruleId":"224","severity":2,"message":"225","line":651,"column":25,"nodeType":"226","messageId":"227","endLine":651,"endColumn":28,"suggestions":"336","suppressions":"337"},{"ruleId":"224","severity":2,"message":"225","line":727,"column":43,"nodeType":"226","messageId":"227","endLine":727,"endColumn":46,"suggestions":"338","suppressions":"339"},{"ruleId":"224","severity":2,"message":"225","line":772,"column":34,"nodeType":"226","messageId":"227","endLine":772,"endColumn":37,"suggestions":"340","suppressions":"341"},{"ruleId":"224","severity":2,"message":"225","line":797,"column":39,"nodeType":"226","messageId":"227","endLine":797,"endColumn":42,"suggestions":"342","suppressions":"343"},{"ruleId":"317","severity":2,"message":"318","line":827,"column":9,"nodeType":"319","messageId":"320","endLine":832,"endColumn":4,"suppressions":"344"},{"ruleId":"317","severity":2,"message":"318","line":834,"column":9,"nodeType":"319","messageId":"320","endLine":843,"endColumn":4,"suppressions":"345"},{"ruleId":"317","severity":2,"message":"318","line":846,"column":9,"nodeType":"319","messageId":"320","endLine":858,"endColumn":4,"suppressions":"346"},{"ruleId":"224","severity":2,"message":"225","line":852,"column":38,"nodeType":"226","messageId":"227","endLine":852,"endColumn":41,"suggestions":"347","suppressions":"348"},{"ruleId":"224","severity":2,"message":"225","line":911,"column":37,"nodeType":"226","messageId":"227","endLine":911,"endColumn":40,"suggestions":"349","suppressions":"350"},{"ruleId":"326","severity":2,"message":"327","line":912,"column":68,"nodeType":"328","messageId":"276","endLine":912,"endColumn":70,"suppressions":"351"},{"ruleId":"224","severity":2,"message":"225","line":972,"column":56,"nodeType":"226","messageId":"227","endLine":972,"endColumn":59,"suggestions":"352","suppressions":"353"},{"ruleId":"224","severity":2,"message":"225","line":59,"column":31,"nodeType":"226","messageId":"227","endLine":59,"endColumn":34,"suggestions":"354","suppressions":"355"},{"ruleId":"224","severity":2,"message":"225","line":17,"column":13,"nodeType":"226","messageId":"227","endLine":17,"endColumn":16,"suggestions":"356","suppressions":"357"},{"ruleId":"224","severity":2,"message":"225","line":18,"column":48,"nodeType":"226","messageId":"227","endLine":18,"endColumn":51,"suggestions":"358","suppressions":"359"},{"ruleId":"224","severity":2,"message":"225","line":13,"column":13,"nodeType":"226","messageId":"227","endLine":13,"endColumn":16,"suggestions":"360","suppressions":"361"},{"ruleId":"224","severity":2,"message":"225","line":14,"column":48,"nodeType":"226","messageId":"227","endLine":14,"endColumn":51,"suggestions":"362","suppressions":"363"},{"ruleId":"364","severity":2,"message":"365","line":21,"column":51,"nodeType":"366","messageId":"367","endLine":21,"endColumn":52},{"ruleId":"224","severity":2,"message":"225","line":46,"column":20,"nodeType":"226","messageId":"227","endLine":46,"endColumn":23,"suggestions":"368","suppressions":"369"},{"ruleId":"224","severity":2,"message":"225","line":46,"column":56,"nodeType":"226","messageId":"227","endLine":46,"endColumn":59,"suggestions":"370","suppressions":"371"},{"ruleId":"224","severity":2,"message":"225","line":14,"column":17,"nodeType":"226","messageId":"227","endLine":14,"endColumn":20,"suggestions":"372","suppressions":"373"},{"ruleId":"224","severity":2,"message":"225","line":15,"column":17,"nodeType":"226","messageId":"227","endLine":15,"endColumn":20,"suggestions":"374","suppressions":"375"},{"ruleId":"224","severity":2,"message":"225","line":16,"column":30,"nodeType":"226","messageId":"227","endLine":16,"endColumn":33,"suggestions":"376","suppressions":"377"},{"ruleId":"224","severity":2,"message":"225","line":17,"column":33,"nodeType":"226","messageId":"227","endLine":17,"endColumn":36,"suggestions":"378","suppressions":"379"},{"ruleId":"380","severity":2,"message":"381","line":31,"column":17,"nodeType":"319","messageId":"382","endLine":31,"endColumn":66,"suppressions":"383"},"import/no-named-as-default","Using exported name 'grapesjs' as identifier for default import.","ImportDefaultSpecifier",["384"],"@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["385","386"],["387"],["388","389"],["390"],["391","392"],["393"],["394","395"],["396"],["397","398"],["399"],["400","401"],["402"],["403","404"],["405"],["406","407"],["408"],["409","410"],["411"],["412","413"],["414"],["415","416"],["417"],["418","419"],["420"],["421","422"],["423"],["424","425"],["426"],["427","428"],["429"],["430","431"],["432"],["433","434"],["435"],["436","437"],["438"],["439","440"],["441"],"func-names","Unexpected unnamed method 'render'.","FunctionExpression","unnamed",["442"],["443","444"],["445"],"no-console","Unexpected console statement.","MemberExpression","unexpected",["446"],["447"],["448","449"],["450"],"import/no-named-as-default-member","Caution: `ReactDOM` also has a named export `render`. Check if you meant to write `import {render} from 'react-dom'` instead.",["451"],["452"],["453","454"],["455"],["456"],["457"],"Unexpected unnamed method 'remove'.",["458"],"Caution: `ReactDOM` also has a named export `unmountComponentAtNode`. Check if you meant to write `import {unmountComponentAtNode} from 'react-dom'` instead.",["459","460"],["461","462"],["463"],["464","465"],["466"],["467","468"],["469"],["470","471"],["472"],["473","474"],["475"],["476","477"],["478"],["479","480"],["481"],["482","483"],["484"],["485","486"],["487"],["488","489"],["490"],["491","492"],["493"],["494","495"],["496"],"func-style","Expected a function declaration.","VariableDeclarator","declaration",["497"],["498","499"],["500"],["501","502"],["503"],"@typescript-eslint/no-empty-function","Unexpected empty arrow function.","ArrowFunctionExpression",["504"],["505","506"],["507"],["508","509"],["510"],["511","512"],["513"],["514","515"],["516"],["517","518"],["519"],["520","521"],["522"],["523","524"],["525"],["526"],["527"],["528"],["529","530"],["531"],["532","533"],["534"],["535"],["536","537"],["538"],["539","540"],["541"],["542","543"],["544"],["545","546"],["547"],["548","549"],["550"],["551","552"],["553"],"@typescript-eslint/no-shadow","'_' is already declared in the upper scope on line 17 column 40.","Identifier","noShadow",["554","555"],["556"],["557","558"],["559"],["560","561"],["562"],["563","564"],["565"],["566","567"],["568"],["569","570"],["571"],"init-declarations","Variable 'grapesjsTailwind' should be initialized on declaration.","initialized",["572"],{"kind":"573","justification":"574"},{"messageId":"575","fix":"576","desc":"577"},{"messageId":"578","fix":"579","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"581","desc":"577"},{"messageId":"578","fix":"582","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"583","desc":"577"},{"messageId":"578","fix":"584","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"585","desc":"577"},{"messageId":"578","fix":"586","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"587","desc":"577"},{"messageId":"578","fix":"588","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"589","desc":"577"},{"messageId":"578","fix":"590","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"591","desc":"577"},{"messageId":"578","fix":"592","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"593","desc":"577"},{"messageId":"578","fix":"594","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"595","desc":"577"},{"messageId":"578","fix":"596","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"597","desc":"577"},{"messageId":"578","fix":"598","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"599","desc":"577"},{"messageId":"578","fix":"600","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"601","desc":"577"},{"messageId":"578","fix":"602","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"603","desc":"577"},{"messageId":"578","fix":"604","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"605","desc":"577"},{"messageId":"578","fix":"606","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"607","desc":"577"},{"messageId":"578","fix":"608","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"609","desc":"577"},{"messageId":"578","fix":"610","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"611","desc":"577"},{"messageId":"578","fix":"612","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"613","desc":"577"},{"messageId":"578","fix":"614","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"615","desc":"577"},{"messageId":"578","fix":"616","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"617","desc":"577"},{"messageId":"578","fix":"618","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"619","data":"620","fix":"621","desc":"622"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"623","desc":"577"},{"messageId":"578","fix":"624","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"625","desc":"577"},{"messageId":"578","fix":"626","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"619","data":"627","fix":"628","desc":"629"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"630","desc":"577"},{"messageId":"578","fix":"631","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"632","desc":"577"},{"messageId":"578","fix":"633","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"634","desc":"577"},{"messageId":"578","fix":"635","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"636","desc":"577"},{"messageId":"578","fix":"637","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"638","desc":"577"},{"messageId":"578","fix":"639","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"640","desc":"577"},{"messageId":"578","fix":"641","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"642","desc":"577"},{"messageId":"578","fix":"643","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"644","desc":"577"},{"messageId":"578","fix":"645","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"646","desc":"577"},{"messageId":"578","fix":"647","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"648","desc":"577"},{"messageId":"578","fix":"649","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"650","desc":"577"},{"messageId":"578","fix":"651","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"652","desc":"577"},{"messageId":"578","fix":"653","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"654","desc":"577"},{"messageId":"578","fix":"655","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"656","desc":"577"},{"messageId":"578","fix":"657","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"658","desc":"577"},{"messageId":"578","fix":"659","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"660","desc":"577"},{"messageId":"578","fix":"661","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"662","desc":"577"},{"messageId":"578","fix":"663","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"664","desc":"577"},{"messageId":"578","fix":"665","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"666","desc":"577"},{"messageId":"578","fix":"667","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"668","desc":"577"},{"messageId":"578","fix":"669","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"670","desc":"577"},{"messageId":"578","fix":"671","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"672","desc":"577"},{"messageId":"578","fix":"673","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"674","desc":"577"},{"messageId":"578","fix":"675","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"676","desc":"577"},{"messageId":"578","fix":"677","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"678","desc":"577"},{"messageId":"578","fix":"679","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"680","desc":"577"},{"messageId":"578","fix":"681","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"682","desc":"577"},{"messageId":"578","fix":"683","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"684","desc":"577"},{"messageId":"578","fix":"685","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"686","desc":"577"},{"messageId":"578","fix":"687","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"688","desc":"577"},{"messageId":"578","fix":"689","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"690","desc":"577"},{"messageId":"578","fix":"691","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"692","desc":"577"},{"messageId":"578","fix":"693","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"694","desc":"577"},{"messageId":"578","fix":"695","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"696","desc":"577"},{"messageId":"578","fix":"697","desc":"580"},{"kind":"573","justification":"574"},{"messageId":"575","fix":"698","desc":"577"},{"messageId":"578","fix":"699","desc":"580"},{"kind":"573","justification":"574"},{"kind":"573","justification":"574"},"directive","","suggestUnknown",{"range":"700","text":"701"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"702","text":"703"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.",{"range":"704","text":"701"},{"range":"705","text":"703"},{"range":"706","text":"701"},{"range":"707","text":"703"},{"range":"708","text":"701"},{"range":"709","text":"703"},{"range":"710","text":"701"},{"range":"711","text":"703"},{"range":"712","text":"701"},{"range":"713","text":"703"},{"range":"714","text":"701"},{"range":"715","text":"703"},{"range":"716","text":"701"},{"range":"717","text":"703"},{"range":"718","text":"701"},{"range":"719","text":"703"},{"range":"720","text":"701"},{"range":"721","text":"703"},{"range":"722","text":"701"},{"range":"723","text":"703"},{"range":"724","text":"701"},{"range":"725","text":"703"},{"range":"726","text":"701"},{"range":"727","text":"703"},{"range":"728","text":"701"},{"range":"729","text":"703"},{"range":"730","text":"701"},{"range":"731","text":"703"},{"range":"732","text":"701"},{"range":"733","text":"703"},{"range":"734","text":"701"},{"range":"735","text":"703"},{"range":"736","text":"701"},{"range":"737","text":"703"},{"range":"738","text":"701"},{"range":"739","text":"703"},{"range":"740","text":"701"},{"range":"741","text":"703"},"removeConsole",{"propertyName":"742"},{"range":"743","text":"574"},"Remove the console.error().",{"range":"744","text":"701"},{"range":"745","text":"703"},{"range":"746","text":"701"},{"range":"747","text":"703"},{"propertyName":"748"},{"range":"749","text":"574"},"Remove the console.warn().",{"range":"750","text":"701"},{"range":"751","text":"703"},{"range":"752","text":"701"},{"range":"753","text":"703"},{"range":"754","text":"701"},{"range":"755","text":"703"},{"range":"756","text":"701"},{"range":"757","text":"703"},{"range":"758","text":"701"},{"range":"759","text":"703"},{"range":"760","text":"701"},{"range":"761","text":"703"},{"range":"762","text":"701"},{"range":"763","text":"703"},{"range":"764","text":"701"},{"range":"765","text":"703"},{"range":"766","text":"701"},{"range":"767","text":"703"},{"range":"768","text":"701"},{"range":"769","text":"703"},{"range":"770","text":"701"},{"range":"771","text":"703"},{"range":"772","text":"701"},{"range":"773","text":"703"},{"range":"774","text":"701"},{"range":"775","text":"703"},{"range":"776","text":"701"},{"range":"777","text":"703"},{"range":"778","text":"701"},{"range":"779","text":"703"},{"range":"780","text":"701"},{"range":"781","text":"703"},{"range":"782","text":"701"},{"range":"783","text":"703"},{"range":"784","text":"701"},{"range":"785","text":"703"},{"range":"786","text":"701"},{"range":"787","text":"703"},{"range":"788","text":"701"},{"range":"789","text":"703"},{"range":"790","text":"701"},{"range":"791","text":"703"},{"range":"792","text":"701"},{"range":"793","text":"703"},{"range":"794","text":"701"},{"range":"795","text":"703"},{"range":"796","text":"701"},{"range":"797","text":"703"},{"range":"798","text":"701"},{"range":"799","text":"703"},{"range":"800","text":"701"},{"range":"801","text":"703"},{"range":"802","text":"701"},{"range":"803","text":"703"},{"range":"804","text":"701"},{"range":"805","text":"703"},{"range":"806","text":"701"},{"range":"807","text":"703"},{"range":"808","text":"701"},{"range":"809","text":"703"},{"range":"810","text":"701"},{"range":"811","text":"703"},{"range":"812","text":"701"},{"range":"813","text":"703"},{"range":"814","text":"701"},{"range":"815","text":"703"},{"range":"816","text":"701"},{"range":"817","text":"703"},{"range":"818","text":"701"},{"range":"819","text":"703"},[606,609],"unknown",[606,609],"never",[728,731],[728,731],[760,763],[760,763],[1770,1773],[1770,1773],[2197,2200],[2197,2200],[2203,2206],[2203,2206],[2606,2609],[2606,2609],[3905,3908],[3905,3908],[4045,4048],[4045,4048],[99,102],[99,102],[250,253],[250,253],[282,285],[282,285],[1066,1069],[1066,1069],[1098,1101],[1098,1101],[1122,1125],[1122,1125],[2277,2280],[2277,2280],[2309,2312],[2309,2312],[412,415],[412,415],[897,900],[897,900],[1864,1867],[1864,1867],"error",[2114,2167],[2392,2395],[2392,2395],[3582,3585],[3582,3585],"warn",[3780,3849],[680,683],[680,683],[1221,1224],[1221,1224],[1991,1994],[1991,1994],[2614,2617],[2614,2617],[3016,3019],[3016,3019],[3292,3295],[3292,3295],[3920,3923],[3920,3923],[2653,2656],[2653,2656],[4104,4107],[4104,4107],[6959,6962],[6959,6962],[6972,6975],[6972,6975],[9751,9754],[9751,9754],[13625,13628],[13625,13628],[14304,14307],[14304,14307],[15472,15475],[15472,15475],[16086,16089],[16086,16089],[16336,16339],[16336,16339],[17791,17794],[17791,17794],[20233,20236],[20233,20236],[21628,21631],[21628,21631],[22277,22280],[22277,22280],[23440,23443],[23440,23443],[25137,25140],[25137,25140],[26422,26425],[26422,26425],[2267,2270],[2267,2270],[521,524],[521,524],[573,576],[573,576],[533,536],[533,536],[585,588],[585,588],[1246,1249],[1246,1249],[1282,1285],[1282,1285],[376,379],[376,379],[399,402],[399,402],[435,438],[435,438],[473,476],[473,476]]
|
package/.eslintignore
ADDED
package/.eslintrc.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
root: true,
|
|
5
|
+
parserOptions: {
|
|
6
|
+
project: path.resolve(__dirname, 'tsconfig.json'),
|
|
7
|
+
tsconfigRootDir: __dirname,
|
|
8
|
+
},
|
|
9
|
+
settings: {
|
|
10
|
+
'import/resolver': {
|
|
11
|
+
typescript: {
|
|
12
|
+
project: path.resolve(__dirname, 'tsconfig.json'),
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
extends: [
|
|
17
|
+
'@peak-ai/eslint-config-peak-api',
|
|
18
|
+
'@peak-ai/eslint-config-peak-base',
|
|
19
|
+
'@peak-ai/eslint-config-peak-typescript',
|
|
20
|
+
],
|
|
21
|
+
overrides: [
|
|
22
|
+
{
|
|
23
|
+
files: ['**/*.test.ts', '**/*.test.tsx'],
|
|
24
|
+
env: {
|
|
25
|
+
jest: true,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
};
|
|
@@ -11,8 +11,6 @@ type GrapesjsCanvasProps = {
|
|
|
11
11
|
setEditor: (editor: Editor) => void;
|
|
12
12
|
performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;
|
|
13
13
|
newDataNotifier: (notifHandler: NotificationHandler) => void;
|
|
14
|
-
setHasChanged: (hasChanged: boolean) => void;
|
|
15
|
-
isStreaming: boolean;
|
|
16
14
|
};
|
|
17
|
-
declare function GrapesjsCanvas({ json, mode, setEditor, performInteraction, newDataNotifier,
|
|
15
|
+
declare function GrapesjsCanvas({ json, mode, setEditor, performInteraction, newDataNotifier, }: GrapesjsCanvasProps): import("react/jsx-runtime").JSX.Element;
|
|
18
16
|
export default GrapesjsCanvas;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useRef}from"react";// eslint-disable-next-line import/no-named-as-default
|
|
2
|
+
import grapesjs from"grapesjs";import"grapesjs/dist/css/grapes.min.css";import tailwind from"grapesjs-tailwind";import{TypesToRegister}from"./constants";import{toKebabCase}from"./helpers";import{createGrapesjsShadcnGenericPlugin}from"./plugins/grapejs-plugin";import{StyledEditor}from"./index.styles";import{tailwindCompiledCss}from"./helpers/css";import{datePickerCss}from"./helpers/date-picker";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function setComponentProperties(editor,isPreview){function setPropertiesRecursively(comp){comp.set({editable:!isPreview,draggable:!isPreview,droppable:!isPreview&&comp.getName()!=="Shadcn-generic",selectable:!isPreview,hoverable:!isPreview,highlightable:!isPreview,copyable:false,resizable:false,removable:!isPreview,badgable:false});if(!isPreview){comp.set("toolbar",[{attributes:{"class":"fa fa-arrows"},command:"tlb-move"},{attributes:{"class":"fa fa-trash"},command:"tlb-delete"}])}comp.components().forEach(setPropertiesRecursively)}if(isPreview){editor.runCommand("core:preview")}else{editor.stopCommand("core:preview")}var wrapper=editor.getWrapper();wrapper==null||wrapper.find("*").forEach(setPropertiesRecursively)}function convertStyles(stylesArray){return stylesArray.map(function(block){var selectors=Array.isArray(block.selectors)?block.selectors.join(", "):block.selectors;var declarations=Object.entries(block.style).map(function(_ref){var prop=_ref[0],value=_ref[1];return toKebabCase(prop)+": "+value+";"}).join(" ");return selectors+" { "+declarations+" }"}).join("\n")}function expandActions(node){var _node$componentProps;if(node.type==="shadcn-generic"&&node.componentName==="Actions"&&Array.isArray((_node$componentProps=node.componentProps)==null?void 0:_node$componentProps.actions)){var actions=node.componentProps.actions;return _extends({},node,{type:"div",classes:["dashboard-cards"].concat(node.classes||[]),componentName:undefined,componentProps:undefined,components:actions.map(function(action,i){var icon=action.icon,title=action.title,description=action.description;return{id:node.id+"--action-card-"+i,type:"shadcn-generic",componentName:"ActionCard",badgable:false,copyable:false,componentProps:{icon:icon,headerContent:title,bodyContent:description}}})})}if(Array.isArray(node.components)){return _extends({},node,{components:node.components.map(expandActions)})}return node}function setInteracting(renderedComponents,components,inProgress){components.forEach(function(component){var componentId=component.componentId,showLoader=component.showLoader;if(!showLoader){return}var gjsModel=renderedComponents[componentId];if(gjsModel){gjsModel.set("attributes",_extends({},gjsModel.get("attributes"),{interactionApiInProgress:inProgress}))}})}function GrapesjsCanvas(_ref2){var json=_ref2.json,_ref2$mode=_ref2.mode,mode=_ref2$mode===void 0?"preview":_ref2$mode,setEditor=_ref2.setEditor,performInteraction=_ref2.performInteraction,_ref2$newDataNotifier=_ref2.newDataNotifier,newDataNotifier=_ref2$newDataNotifier===void 0?function(){// Default empty handler
|
|
3
|
+
}:_ref2$newDataNotifier;var editorRef=useRef(null);var editorInstance=useRef(null);var renderedComponents={};function notificationHandler(props){if(!props){return true}var componentId=props.componentId,newProps=props.newProps,newAttributes=props.newAttributes;var model=renderedComponents[componentId];if(!model){return false}var parsedNewProps=_extends({},newProps);if(newProps.pagination){parsedNewProps.pagination=_extends({},model.get("componentProps").pagination||{},newProps.pagination)}model.set("componentProps",_extends({},model.get("componentProps"),parsedNewProps));model.set("attributes",_extends({},model.get("attributes"),newAttributes));return true}useEffect(function(){newDataNotifier(notificationHandler)},[]);function performInteractionWrapper(_x){return _performInteractionWrapper.apply(this,arguments)}function _performInteractionWrapper(){_performInteractionWrapper=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(payload){var _editorInstance$curre;var updatedJson,apiResponse,componentUpdates;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return(_editorInstance$curre=editorInstance.current)==null?void 0:_editorInstance$curre.store();case 2:updatedJson=_context.sent;setInteracting(renderedComponents,payload.affectedComponents,true);_context.prev=4;_context.next=7;return performInteraction(_extends({},payload,{json:updatedJson}));case 7:apiResponse=_context.sent;componentUpdates=apiResponse||{};Object.entries(componentUpdates).forEach(function(_ref4){var key=_ref4[0],value=_ref4[1];var model=renderedComponents[key];if(model){model.set("componentProps",_extends({},model.get("componentProps"),value))}});return _context.abrupt("return",componentUpdates);case 11:_context.prev=11;setInteracting(renderedComponents,payload.affectedComponents,false);return _context.finish(11);case 14:case"end":return _context.stop()}},_callee,null,[[4,,11,14]])}));return _performInteractionWrapper.apply(this,arguments)}useEffect(function(){var _json$pages,_json$pages$0$frames;if(!editorRef.current){return function cleanup(){// Cleanup if editorRef is not available
|
|
4
|
+
}}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(currentMode,performInteractionWrapper,renderedComponents)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});// Tailwind CSS rules aren't fully added to our component
|
|
5
|
+
// So, adding them from here!
|
|
6
|
+
editor.on("load",function(){var canvasHead=editor.Canvas.getDocument().head;var style=document.createElement("style");var fullCss="\n "+tailwindCompiledCss+"\n "+datePickerCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");canvasHead.appendChild(style)});editorInstance.current=editor;if(setEditor){setEditor(editor)}TypesToRegister.forEach(function(_ref3){var type=_ref3.type,tagName=_ref3.tagName;if(!editor.DomComponents.getType(type)){editor.DomComponents.addType(type,{model:{defaults:{tagName:tagName}},view:{}})}});if(json&&((_json$pages=json.pages)==null?void 0:_json$pages.length)>0&&((_json$pages$0$frames=json.pages[0].frames)==null?void 0:_json$pages$0$frames.length)>0){var raw=json.pages[0].frames[0].component;var processed=expandActions(raw);editor.setComponents(processed);var cssText=convertStyles(json.styles||[]);editor.setStyle(cssText)}editor.on("load",function(){setComponentProperties(editor,mode==="preview")});return function cleanup(){editor.destroy()}},[json,mode]);return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(StyledEditor,{}),/*#__PURE__*/_jsx("div",{ref:editorRef,id:"grapesjs-editor"})]})}export default GrapesjsCanvas;
|
|
7
|
+
//# sourceMappingURL=GrapesjsCanvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","createGrapesjsShadcnGenericPlugin","StyledEditor","tailwindCompiledCss","datePickerCss","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","expandActions","node","_node$componentProps","type","componentName","componentProps","actions","_extends","classes","concat","undefined","action","i","icon","title","description","id","headerContent","bodyContent","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","get","interactionApiInProgress","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","editorRef","editorInstance","notificationHandler","props","newProps","newAttributes","model","parsedNewProps","pagination","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","payload","_editorInstance$curre","updatedJson","apiResponse","componentUpdates","wrap","_callee$","_context","prev","next","current","store","sent","affectedComponents","_ref4","key","abrupt","finish","stop","_json$pages","_json$pages$0$frames","cleanup","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","canvas","customBadgeLabel","tagName","on","canvasHead","Canvas","getDocument","head","document","createElement","fullCss","innerHTML","setAttribute","appendChild","_ref3","DomComponents","getType","addType","defaults","view","pages","length","frames","raw","processed","setComponents","cssText","styles","setStyle","Fragment","children","ref"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\n\ntype NotificationHandler = (newData: {\n componentId: string;\n newProps: Record<string, any>;\n newAttributes: Record<string, any>;\n}) => boolean;\n\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n newDataNotifier: (notifHandler: NotificationHandler) => void;\n};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction expandActions(node: any): any {\n if (\n node.type === 'shadcn-generic' &&\n node.componentName === 'Actions' &&\n Array.isArray(node.componentProps?.actions)\n ) {\n const { actions } = node.componentProps;\n\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => {\n const { icon, title, description } = action;\n\n return {\n id: `${node.id}--action-card-${i}`,\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n }),\n };\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n\n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {\n // Default empty handler\n },\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<any>(null);\n const renderedComponents: Record<string, Component> = {};\n\n function notificationHandler(props: Parameters<NotificationHandler>[0]): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const {\n componentId,\n newProps,\n newAttributes,\n } = props;\n \n const model = renderedComponents[componentId];\n\n if (!model) {\n return false;\n }\n\n const parsedNewProps = {\n ...newProps,\n };\n\n if (newProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...newProps.pagination,\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n });\n return true;\n }\n\n\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents, payload.affectedComponents, true);\n\n try {\n const apiResponse = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n \n const componentUpdates = apiResponse || {};\n\n Object.entries(componentUpdates).forEach(([key, value]) => {\n const model = renderedComponents[key];\n\n if (model) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n });\n }\n });\n\n return componentUpdates;\n } finally {\n setInteracting(renderedComponents, payload.affectedComponents, false);\n }\n }\n\n\n useEffect(() => {\n if (!editorRef.current) {\n return function cleanup() {\n // Cleanup if editorRef is not available\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n currentMode,\n performInteractionWrapper,\n renderedComponents,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n canvas: {\n customBadgeLabel: (component) => {\n const tagName = component.get('tagName');\n\n return tagName === 'body' ? '' : tagName || '';\n },\n },\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', () => {\n const canvasHead = editor.Canvas.getDocument().head;\n const style = document.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n canvasHead.appendChild(style);\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editor.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editor.setStyle(cssText);\n }\n\n editor.on('load', () => {\n setComponentProperties(editor, mode === 'preview');\n });\n\n return function cleanup() {\n editor.destroy();\n };\n }, [json, mode]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div ref={editorRef} id=\"grapesjs-editor\" />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as GrapejsCanvas } from './GrapesjsCanvas';
|
|
2
|
+
export * from './index.styles';
|
|
3
|
+
export { getUpdatedUiJson } from './helpers/merge-json';
|
|
4
|
+
export { DataTable } from './plugins/helpers/data-table';
|
|
5
|
+
export { StyledInfoButton } from './plugins/helpers/styled-info-button';
|
|
6
|
+
export { AiAvatarIcon } from './shadcn/components/icons/AiAvatarIcon';
|
|
7
|
+
export { CustomModal } from './plugins/helpers/custom-modal';
|
|
8
|
+
export { QueryDetailsModal } from './plugins/helpers/query-details-modal';
|
|
9
|
+
export { QueryLoadingModal } from './plugins/helpers/query-loading-modal';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{default as GrapejsCanvas}from"./GrapesjsCanvas";export*from"./index.styles";export{getUpdatedUiJson}from"./helpers/merge-json";export{DataTable}from"./plugins/helpers/data-table";export{StyledInfoButton}from"./plugins/helpers/styled-info-button";export{AiAvatarIcon}from"./shadcn/components/icons/AiAvatarIcon";export{CustomModal}from"./plugins/helpers/custom-modal";export{QueryDetailsModal}from"./plugins/helpers/query-details-modal";export{QueryLoadingModal}from"./plugins/helpers/query-loading-modal";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","GrapejsCanvas","getUpdatedUiJson","DataTable","StyledInfoButton","AiAvatarIcon","CustomModal","QueryDetailsModal","QueryLoadingModal"],"sources":["../src/index.ts"],"sourcesContent":["export { default as GrapejsCanvas } from './GrapesjsCanvas';\nexport * from './index.styles';\nexport { getUpdatedUiJson } from './helpers/merge-json';\nexport { DataTable } from './plugins/helpers/data-table';\nexport { StyledInfoButton } from './plugins/helpers/styled-info-button';\nexport { AiAvatarIcon } from './shadcn/components/icons/AiAvatarIcon';\nexport { CustomModal } from './plugins/helpers/custom-modal';\nexport { QueryDetailsModal } from './plugins/helpers/query-details-modal';\nexport { QueryLoadingModal } from './plugins/helpers/query-loading-modal';\n"],"mappings":"AAAA,OAASA,OAAO,GAAI,CAAAC,aAAa,KAAQ,kBAAkB,CAC3D,WAAc,gBAAgB,CAC9B,OAASC,gBAAgB,KAAQ,sBAAsB,CACvD,OAASC,SAAS,KAAQ,8BAA8B,CACxD,OAASC,gBAAgB,KAAQ,sCAAsC,CACvE,OAASC,YAAY,KAAQ,wCAAwC,CACrE,OAASC,WAAW,KAAQ,gCAAgC,CAC5D,OAASC,iBAAiB,KAAQ,uCAAuC,CACzE,OAASC,iBAAiB,KAAQ,uCAAuC","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@peak-ai/canvas",
|
|
3
|
+
"author": "squad-builder-experience",
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"version": "1.4.11",
|
|
6
|
+
"description": "",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@emotion/react": "^11.11.4",
|
|
9
|
+
"@emotion/styled": "^11.11.5",
|
|
10
|
+
"@mui/icons-material": "^5.15.18",
|
|
11
|
+
"@mui/material": "^5.15.18",
|
|
12
|
+
"@peak-ai/ais-components": "6.41.0",
|
|
13
|
+
"@radix-ui/react-checkbox": "^1.3.2",
|
|
14
|
+
"@radix-ui/react-hover-card": "^1.1.7",
|
|
15
|
+
"@radix-ui/react-label": "^2.1.3",
|
|
16
|
+
"@radix-ui/react-scroll-area": "^1.2.5",
|
|
17
|
+
"@radix-ui/react-separator": "^1.1.3",
|
|
18
|
+
"@radix-ui/react-slot": "^1.2.0",
|
|
19
|
+
"@radix-ui/react-tabs": "1.0.0",
|
|
20
|
+
"@radix-ui/react-tooltip": "^1.2.7",
|
|
21
|
+
"@tailwindcss/cli": "^4.1.3",
|
|
22
|
+
"@types/chroma-js": "^3.1.1",
|
|
23
|
+
"@types/react-datepicker": "^7.0.0",
|
|
24
|
+
"chroma-js": "^3.1.2",
|
|
25
|
+
"class-variance-authority": "^0.7.1",
|
|
26
|
+
"clsx": "^2.1.1",
|
|
27
|
+
"date-fns": "^4.1.0",
|
|
28
|
+
"grapesjs": "0.22.6",
|
|
29
|
+
"grapesjs-tailwind": "1.0.7",
|
|
30
|
+
"lodash": "^4.17.21",
|
|
31
|
+
"lucide-react": "^0.525.0",
|
|
32
|
+
"markdown": "^0.5.0",
|
|
33
|
+
"markdown-to-jsx": "7.4.1",
|
|
34
|
+
"plotly.js": "2.34.0",
|
|
35
|
+
"react": "^17.0.2",
|
|
36
|
+
"react-datepicker": "^8.4.0",
|
|
37
|
+
"react-dom": "^17.0.2",
|
|
38
|
+
"react-plotly.js": "^2.6.0",
|
|
39
|
+
"react-resizable-panels": "^2.1.9",
|
|
40
|
+
"styled-components": "^5.0.0",
|
|
41
|
+
"tailwind-merge": "^3.2.0",
|
|
42
|
+
"tailwindcss": "^4.1.3",
|
|
43
|
+
"tailwindcss-animate": "^1.0.7",
|
|
44
|
+
"tslib": "^2.7.0",
|
|
45
|
+
"tw-animate-css": "^1.2.5",
|
|
46
|
+
"sherlockjs": "^1.4.2",
|
|
47
|
+
"date-fns-tz": "^2.0.0"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "^17.0.2",
|
|
51
|
+
"react-dom": "^17.0.2"
|
|
52
|
+
},
|
|
53
|
+
"resolutions": {
|
|
54
|
+
"@babel/traverse": "7.25.7",
|
|
55
|
+
"minimist": "1.2.6",
|
|
56
|
+
"tar": "^6.1.11"
|
|
57
|
+
},
|
|
58
|
+
"main": "index.js",
|
|
59
|
+
"types": "index.d.ts",
|
|
60
|
+
"module": "index.js",
|
|
61
|
+
"sideEffects": false
|
|
62
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Editor, Component } from 'grapesjs';
|
|
2
|
-
export declare function createGrapesjsShadcnGenericPlugin(mode: 'editor' | 'preview', performInteraction: (payload: Record<string, any>) => void, renderedComponents
|
|
2
|
+
export declare function createGrapesjsShadcnGenericPlugin(mode: 'editor' | 'preview', performInteraction: (payload: Record<string, any>) => void, renderedComponents?: Record<string, Component>): (editor: Editor) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";/* eslint-disable import/no-named-as-default-member *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import ReactDOM from"react-dom";import{getRenderers}from"./helpers/render-components";import{jsx as _jsx}from"react/jsx-runtime";export function createGrapesjsShadcnGenericPlugin(mode,performInteraction,renderedComponents
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";/* eslint-disable import/no-named-as-default-member *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import ReactDOM from"react-dom";import{getRenderers}from"./helpers/render-components";import{jsx as _jsx}from"react/jsx-runtime";export function createGrapesjsShadcnGenericPlugin(mode,performInteraction,renderedComponents){if(renderedComponents===void 0){renderedComponents={}}return function grapesjsShadcnGenericPlugin(editor){editor.DomComponents.addType("shadcn-generic",{model:{defaults:{tagName:"div",droppable:false,componentName:"Card",componentProps:{},traits:[]}},view:{events:{"input [data-slot]":"handleSlotInput"},handleSlotInput:function handleSlotInput(e){var target=e.target;var slot=target.dataset.slot;var text=target.innerText;var props=this.model.get("componentProps")||{};if(!slot){return}if(slot.startsWith("table-header-")){var _props$data;var idx=parseInt(slot.split("-")[2],10);var dataKeys=Object.keys(((_props$data=props.data)==null?void 0:_props$data[0])||{});if(!props.headerMapper){props.headerMapper={}}var key=dataKeys[idx];if(key){props.headerMapper[key]=text}}else{props[slot]=text}this.model.set("componentProps",_extends({},props))},render:function render(){var _this=this;var compName=this.model.get("componentName");var compProps=this.model.get("componentProps");if(typeof compProps==="string"){try{compProps=JSON.parse(compProps)}catch(err){// eslint-disable-next-line no-console
|
|
2
2
|
console.error("Invalid JSON in componentProps",err);compProps={}}}compProps.isEditable=mode==="editor";compProps.performInteraction=performInteraction;compProps.onChange=function(data){_this.model.set("componentProps",_extends({},_this.model.get("componentProps"),data))};var renderers=getRenderers();var Renderer=renderers[compName];if(Renderer){if(compName==="Tabs"){ReactDOM.render(/*#__PURE__*/_jsx(Renderer,_extends({},compProps,{gjsModel:this.model})),this.el);var children=this.model.components();var tabsContent=this.el.querySelectorAll(".tabs-content");children.each(function(childModel,i){var childView=_this.createView(childModel);if(childView){childView.render();tabsContent[i].appendChild(childView.el)}})}else{ReactDOM.render(/*#__PURE__*/_jsx(Renderer,_extends({},compProps,{gjsModel:this.model})),this.el)}}else{this.el.innerHTML="<div>Unsupported component: "+compName+"</div>"}renderedComponents[this.model.get("id")]=this.model;return this},createView:function createView(model){var _this$em$get$getType;var ComponentView=(_this$em$get$getType=this.em.get("DomComponents").getType(model.get("type")))==null?void 0:_this$em$get$getType.view;if(!ComponentView){// eslint-disable-next-line no-console
|
|
3
3
|
console.warn("No view found for component type:",model.get("type"));return null}var view=new ComponentView({model:model,config:this.config,componentTypes:this.componentTypes});return view},remove:function remove(){// eslint-disable-next-line import/no-named-as-default-member
|
|
4
4
|
ReactDOM.unmountComponentAtNode(this.el);return this}}})}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapejs-plugin.js","names":["ReactDOM","getRenderers","jsx","_jsx","createGrapesjsShadcnGenericPlugin","mode","performInteraction","renderedComponents","grapesjsShadcnGenericPlugin","editor","DomComponents","addType","model","defaults","tagName","droppable","componentName","componentProps","traits","view","events","handleSlotInput","e","target","slot","dataset","text","innerText","props","get","startsWith","_props$data","idx","parseInt","split","dataKeys","Object","keys","data","headerMapper","key","set","_extends","render","_this","compName","compProps","JSON","parse","err","console","error","isEditable","onChange","renderers","Renderer","gjsModel","el","children","components","tabsContent","querySelectorAll","each","childModel","i","childView","createView","appendChild","innerHTML","_this$em$get$getType","ComponentView","em","getType","warn","config","componentTypes","remove","unmountComponentAtNode"],"sources":["../../src/plugins/grapejs-plugin.tsx"],"sourcesContent":["/* eslint-disable import/no-named-as-default-member */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport ReactDOM from 'react-dom';\nimport { Editor, Component } from 'grapesjs';\nimport { getRenderers } from './helpers/render-components';\n\nexport function createGrapesjsShadcnGenericPlugin(\n mode: 'editor' | 'preview',\n performInteraction: (payload: Record<string, any>) => void,\n renderedComponents: Record<string, Component> = {},\n) {\n return function grapesjsShadcnGenericPlugin(editor: Editor): void {\n editor.DomComponents.addType('shadcn-generic', {\n model: {\n defaults: {\n tagName: 'div',\n droppable: false,\n componentName: 'Card',\n componentProps: {},\n traits: [],\n },\n },\n view: {\n events: {\n 'input [data-slot]': 'handleSlotInput',\n } as any,\n handleSlotInput(e: Event) {\n const target = e.target as HTMLElement;\n const slot = target.dataset.slot;\n const text = target.innerText;\n\n const props = this.model.get('componentProps') || {};\n\n if (!slot) {\n return;\n }\n\n if (slot.startsWith('table-header-')) {\n const idx = parseInt(slot.split('-')[2], 10);\n const dataKeys = Object.keys(props.data?.[0] || {});\n\n if (!props.headerMapper) {\n props.headerMapper = {};\n }\n\n const key = dataKeys[idx];\n\n if (key) {\n props.headerMapper[key] = text;\n }\n } else {\n props[slot] = text;\n }\n\n this.model.set('componentProps', {\n ...props,\n });\n },\n render: function () {\n const compName: string = this.model.get('componentName');\n let compProps: any = this.model.get('componentProps');\n\n if (typeof compProps === 'string') {\n try {\n compProps = JSON.parse(compProps);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Invalid JSON in componentProps', err);\n compProps = {};\n }\n }\n\n compProps.isEditable = mode === 'editor';\n compProps.performInteraction = performInteraction;\n\n compProps.onChange = (data: Record<string, any>) => {\n this.model.set('componentProps', {\n ...this.model.get('componentProps'),\n ...data,\n });\n };\n\n const renderers = getRenderers();\n const Renderer = renderers[compName];\n\n if (Renderer) {\n if (compName === 'Tabs') {\n ReactDOM.render(<Renderer {...compProps} gjsModel={this.model} />, this.el);\n\n const children = this.model.components();\n const tabsContent = this.el.querySelectorAll('.tabs-content');\n children.each((childModel, i) => {\n const childView = this.createView(childModel);\n\n if (childView) {\n childView.render();\n tabsContent[i].appendChild(childView.el);\n }\n });\n } else {\n ReactDOM.render(<Renderer {...compProps} gjsModel={this.model} />, this.el);\n }\n } else {\n this.el.innerHTML = `<div>Unsupported component: ${compName}</div>`;\n }\n\n renderedComponents[this.model.get('id')] = this.model;\n\n return this;\n },\n createView(model: any) {\n const ComponentView = this.em.get('DomComponents').getType(model.get('type'))?.view;\n\n if (!ComponentView) {\n // eslint-disable-next-line no-console\n console.warn('No view found for component type:', model.get('type'));\n\n return null;\n }\n\n const view = new ComponentView({\n model,\n config: this.config,\n componentTypes: this.componentTypes,\n });\n\n return view;\n },\n remove: function () {\n // eslint-disable-next-line import/no-named-as-default-member\n ReactDOM.unmountComponentAtNode(this.el);\n\n return this;\n },\n },\n });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type CustomModalProps = {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title: string;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
titleIcon?: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare function CustomModal({ isOpen, onClose, title, children, className, titleIcon }: CustomModalProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export default CustomModal;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import React,{useEffect}from"react";import{X}from"lucide-react";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function CustomModal(_ref){var isOpen=_ref.isOpen,onClose=_ref.onClose,title=_ref.title,children=_ref.children,_ref$className=_ref.className,className=_ref$className===void 0?"":_ref$className,titleIcon=_ref.titleIcon;useEffect(function(){function handleEscapeKey(event){if(event.key==="Escape"&&isOpen){onClose()}}if(isOpen){document.addEventListener("keydown",handleEscapeKey);document.body.style.overflow="hidden"}return function(){document.removeEventListener("keydown",handleEscapeKey);document.body.style.overflow="unset"}},[isOpen,onClose]);function handleBackdropClick(event){if(event.target===event.currentTarget){onClose()}}if(!isOpen){return null}return/*#__PURE__*/_jsxs("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4 bg-black bg-opacity-30 "+className,onClick:handleBackdropClick,children:[/*#__PURE__*/_jsxs("div",{className:"relative w-full max-w-2xl max-h-[90vh] bg-white rounded-lg shadow-xl overflow-hidden animate-modal-fade-in",onClick:function onClick(e){return e.stopPropagation()},children:[/*#__PURE__*/_jsxs("div",{className:"p-6 border-b border-gray-200 bg-gray-50 relative flex items-center justify-between",children:[/*#__PURE__*/_jsxs("h2",{className:"flex items-center text-lg font-semibold text-gray-900",children:[titleIcon&&/*#__PURE__*/_jsx("span",{className:"mr-2",children:titleIcon}),title]}),/*#__PURE__*/_jsx("button",{onClick:onClose,className:"transition-colors duration-200 hover:bg-gray-100 rounded p-1 flex items-center justify-center",type:"button","aria-label":"Close modal",style:{width:"24px",height:"24px"},children:/*#__PURE__*/_jsx(X,{size:12,className:"text-gray-600",style:{opacity:1,transform:"rotate(0deg)"}})})]}),/*#__PURE__*/_jsx("div",{className:"overflow-y-auto max-h-[calc(90vh-160px)]",children:children})]}),/*#__PURE__*/_jsx("style",{children:"\n .animate-modal-fade-in {\n animation: modalFadeIn 0.2s ease-out;\n }\n \n @keyframes modalFadeIn {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-10px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n "})]})}export default CustomModal;
|
|
2
|
+
//# sourceMappingURL=custom-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-modal.js","names":["React","useEffect","X","jsx","_jsx","jsxs","_jsxs","CustomModal","_ref","isOpen","onClose","title","children","_ref$className","className","titleIcon","handleEscapeKey","event","key","document","addEventListener","body","style","overflow","removeEventListener","handleBackdropClick","target","currentTarget","onClick","e","stopPropagation","type","width","height","size","opacity","transform"],"sources":["../../../src/plugins/helpers/custom-modal.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { X } from 'lucide-react';\n\ntype CustomModalProps = {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n children: React.ReactNode;\n className?: string;\n titleIcon?: React.ReactNode;\n}\n\nexport function CustomModal({\n isOpen,\n onClose,\n title,\n children,\n className = '',\n titleIcon\n}: CustomModalProps) {\n\n useEffect(() => {\n function handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape' && isOpen) {\n onClose();\n }\n }\n\n if (isOpen) {\n document.addEventListener('keydown', handleEscapeKey);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscapeKey);\n document.body.style.overflow = 'unset';\n };\n }, [isOpen, onClose]);\n\n function handleBackdropClick(event: React.MouseEvent<HTMLDivElement>) {\n if (event.target === event.currentTarget) {\n onClose();\n }\n }\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <div\n className={`fixed inset-0 z-[9999] flex items-center justify-center p-4 bg-black bg-opacity-30 ${className}`}\n onClick={handleBackdropClick}\n >\n <div\n className=\"relative w-full max-w-2xl max-h-[90vh] bg-white rounded-lg shadow-xl overflow-hidden animate-modal-fade-in\"\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"p-6 border-b border-gray-200 bg-gray-50 relative flex items-center justify-between\">\n <h2 className=\"flex items-center text-lg font-semibold text-gray-900\">\n {titleIcon && <span className=\"mr-2\">{titleIcon}</span>}\n {title}\n </h2>\n\n <button\n onClick={onClose}\n className=\"transition-colors duration-200 hover:bg-gray-100 rounded p-1 flex items-center justify-center\"\n type=\"button\"\n aria-label=\"Close modal\"\n style={{\n width: '24px',\n height: '24px'\n }}\n >\n <X \n size={12}\n className=\"text-gray-600\"\n style={{ \n opacity: 1,\n transform: 'rotate(0deg)'\n }}\n />\n </button>\n </div>\n\n <div className=\"overflow-y-auto max-h-[calc(90vh-160px)]\">\n {children}\n </div>\n </div>\n\n <style>{`\n .animate-modal-fade-in {\n animation: modalFadeIn 0.2s ease-out;\n }\n \n @keyframes modalFadeIn {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-10px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n `}</style>\n </div>\n );\n}\n\nexport default CustomModal;\n"],"mappings":"AAAA,MAAO,CAAAA,KAAK,EAAIC,SAAS,KAAQ,OAAO,CACxC,OAASC,CAAC,KAAQ,cAAc,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAWjC,MAAO,SAAS,CAAAC,WAAWA,CAAAC,IAAA,CAON,IANnB,CAAAC,MAAM,CAAAD,IAAA,CAANC,MAAM,CACNC,OAAO,CAAAF,IAAA,CAAPE,OAAO,CACPC,KAAK,CAAAH,IAAA,CAALG,KAAK,CACLC,QAAQ,CAAAJ,IAAA,CAARI,QAAQ,CAAAC,cAAA,CAAAL,IAAA,CACRM,SAAS,CAATA,SAAS,CAAAD,cAAA,UAAG,EAAE,CAAAA,cAAA,CACdE,SAAS,CAAAP,IAAA,CAATO,SAAS,CAGTd,SAAS,CAAC,UAAM,CACd,QAAS,CAAAe,eAAeA,CAACC,KAAoB,CAAE,CAC7C,GAAIA,KAAK,CAACC,GAAG,GAAK,QAAQ,EAAIT,MAAM,CAAE,CACpCC,OAAO,CAAC,CACV,CACF,CAEA,GAAID,MAAM,CAAE,CACVU,QAAQ,CAACC,gBAAgB,CAAC,SAAS,CAAEJ,eAAe,CAAC,CACrDG,QAAQ,CAACE,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAG,QACjC,CAEA,MAAO,WAAM,CACXJ,QAAQ,CAACK,mBAAmB,CAAC,SAAS,CAAER,eAAe,CAAC,CACxDG,QAAQ,CAACE,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAG,OACjC,CACF,CAAC,CAAE,CAACd,MAAM,CAAEC,OAAO,CAAC,CAAC,CAErB,QAAS,CAAAe,mBAAmBA,CAACR,KAAuC,CAAE,CACpE,GAAIA,KAAK,CAACS,MAAM,GAAKT,KAAK,CAACU,aAAa,CAAE,CACxCjB,OAAO,CAAC,CACV,CACF,CAEA,GAAI,CAACD,MAAM,CAAE,CACX,MAAO,KACT,CAEA,mBACEH,KAAA,QACEQ,SAAS,uFAAwFA,SAAY,CAC7Gc,OAAO,CAAEH,mBAAoB,CAAAb,QAAA,eAE7BN,KAAA,QACEQ,SAAS,CAAC,4GAA4G,CACtHc,OAAO,CAAE,QAAT,CAAAA,OAAOA,CAAGC,CAAC,QAAK,CAAAA,CAAC,CAACC,eAAe,CAAC,CAAC,CAAC,CAAAlB,QAAA,eAEpCN,KAAA,QAAKQ,SAAS,CAAC,oFAAoF,CAAAF,QAAA,eACjGN,KAAA,OAAIQ,SAAS,CAAC,uDAAuD,CAAAF,QAAA,EAClEG,SAAS,eAAIX,IAAA,SAAMU,SAAS,CAAC,MAAM,CAAAF,QAAA,CAAEG,SAAS,CAAO,CAAC,CACtDJ,KAAK,EACJ,CAAC,cAELP,IAAA,WACEwB,OAAO,CAAElB,OAAQ,CACjBI,SAAS,CAAC,+FAA+F,CACzGiB,IAAI,CAAC,QAAQ,CACb,aAAW,aAAa,CACxBT,KAAK,CAAE,CACLU,KAAK,CAAE,MAAM,CACbC,MAAM,CAAE,MACV,CAAE,CAAArB,QAAA,cAEFR,IAAA,CAACF,CAAC,EACAgC,IAAI,CAAE,EAAG,CACTpB,SAAS,CAAC,eAAe,CACzBQ,KAAK,CAAE,CACLa,OAAO,CAAE,CAAC,CACVC,SAAS,CAAE,cACb,CAAE,CACH,CAAC,CACI,CAAC,EACN,CAAC,cAENhC,IAAA,QAAKU,SAAS,CAAC,0CAA0C,CAAAF,QAAA,CACtDA,QAAQ,CACN,CAAC,EACH,CAAC,cAENR,IAAA,UAAAQ,QAAA,sXAeS,CAAC,EACP,CAET,CAEA,cAAe,CAAAL,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type QueryDetailsModalProps = {
|
|
2
|
+
isOpen: boolean;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
error: string;
|
|
6
|
+
sqlQuery: string | string[];
|
|
7
|
+
tableButtonExplanations?: Array<{
|
|
8
|
+
action: string;
|
|
9
|
+
explanation: string;
|
|
10
|
+
operationName?: string;
|
|
11
|
+
buttonClassName?: string;
|
|
12
|
+
buttonStyle?: Record<string, unknown>;
|
|
13
|
+
}>;
|
|
14
|
+
onRetry: () => void;
|
|
15
|
+
};
|
|
16
|
+
export declare function QueryDetailsModal({ isOpen, onClose, isLoading, error, sqlQuery, tableButtonExplanations, onRetry }: QueryDetailsModalProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export default QueryDetailsModal;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _regeneratorRuntime from"@babel/runtime/regenerator";import React,{useState,useEffect}from"react";import{CustomModal}from"./custom-modal";import{Copy,Check,ChevronDown}from"lucide-react";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export function QueryDetailsModal(_ref){var isOpen=_ref.isOpen,onClose=_ref.onClose,isLoading=_ref.isLoading,error=_ref.error,sqlQuery=_ref.sqlQuery,_ref$tableButtonExpla=_ref.tableButtonExplanations,tableButtonExplanations=_ref$tableButtonExpla===void 0?[]:_ref$tableButtonExpla,onRetry=_ref.onRetry;var _useState=useState({}),copied=_useState[0],setCopied=_useState[1];var _useState2=useState({}),expandedButtons=_useState2[0],setExpandedButtons=_useState2[1];// Reset expanded state when modal closes
|
|
2
|
+
useEffect(function(){if(!isOpen){setExpandedButtons({})}},[isOpen]);function copyToClipboard(_x,_x2){return _copyToClipboard.apply(this,arguments)}function _copyToClipboard(){_copyToClipboard=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(queryToCopy,copyId){var textToCopy,id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:textToCopy=queryToCopy;if(!textToCopy){if(Array.isArray(sqlQuery)){textToCopy=sqlQuery.filter(function(q){return q&&typeof q==="string"}).join("\n\n-- Next Query --\n\n")}else if(typeof sqlQuery==="string"){textToCopy=sqlQuery}else{textToCopy=""}}if(textToCopy){_context.next=4;break}return _context.abrupt("return");case 4:id=copyId||"main";_context.prev=5;_context.next=8;return navigator.clipboard.writeText(textToCopy);case 8:setCopied(function(prev){var _extends3;return _extends({},prev,(_extends3={},_extends3[id]=true,_extends3))});setTimeout(function(){return setCopied(function(prev){var _extends4;return _extends({},prev,(_extends4={},_extends4[id]=false,_extends4))})},2000);_context.next=14;break;case 12:_context.prev=12;_context.t0=_context["catch"](5);case 14:case"end":return _context.stop()}},_callee,null,[[5,12]])}));return _copyToClipboard.apply(this,arguments)}function toggleButtonExpansion(buttonIndex){setExpandedButtons(function(prev){var _extends2;return _extends({},prev,(_extends2={},_extends2[buttonIndex]=!prev[buttonIndex],_extends2))})}function renderTableButtonExplanations(){if(!tableButtonExplanations||tableButtonExplanations.length===0){return null}return/*#__PURE__*/_jsx("div",{className:"mb-6",children:tableButtonExplanations.map(function(button,index){var _button$buttonStyle,_button$buttonStyle2,_button$buttonStyle3;return/*#__PURE__*/_jsxs("div",{className:"mb-3 border border-gray-200 rounded-lg",children:[/*#__PURE__*/_jsxs("div",{className:"w-full px-4 py-3 flex items-center justify-between rounded-lg",children:[/*#__PURE__*/_jsx("span",{className:"font-medium text-xs text-gray-500",children:"What does this button do?"}),/*#__PURE__*/_jsxs("div",{className:"flex items-center",children:[/*#__PURE__*/_jsx("button",{onClick:function onClick(){return toggleButtonExpansion(index)},className:button.buttonClassName||"flex items-center px-3 py-1.5 rounded text-xs font-medium",style:_extends({backgroundColor:((_button$buttonStyle=button.buttonStyle)==null?void 0:_button$buttonStyle.backgroundColor)||"#f3f4f6",color:((_button$buttonStyle2=button.buttonStyle)==null?void 0:_button$buttonStyle2.color)||"#374151",border:((_button$buttonStyle3=button.buttonStyle)==null?void 0:_button$buttonStyle3.border)||"1px solid #d1d5db"},button.buttonStyle||{}),children:button.action}),/*#__PURE__*/_jsx(ChevronDown,{className:"ml-2 w-4 h-4 text-gray-500 transition-transform cursor-pointer "+(expandedButtons[index]?"rotate-180":""),onClick:function onClick(){return toggleButtonExpansion(index)}})]})]}),expandedButtons[index]&&/*#__PURE__*/_jsx("div",{className:"px-4 pb-3 border-t border-gray-200",children:/*#__PURE__*/_jsxs("p",{className:"text-xs text-gray-700 mt-2",children:["This button will hit ",/*#__PURE__*/_jsx("span",{className:"font-semibold",children:button.explanation})]})})]},index)})})}function renderModalContent(){if(isLoading){return/*#__PURE__*/_jsxs("div",{className:"flex flex-col items-center justify-center py-12",children:[/*#__PURE__*/_jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-purple-600 mb-4"}),/*#__PURE__*/_jsx("span",{className:"text-xs text-gray-600",children:"Fetching query details from semantic layer..."}),/*#__PURE__*/_jsx("span",{className:"text-xs text-gray-400 mt-2",children:"This may take a few moments"})]})}if(error){return/*#__PURE__*/_jsxs("div",{className:"text-red-600 p-4 bg-red-50 rounded-lg border border-red-200 m-6",children:[/*#__PURE__*/_jsx("p",{className:"font-medium mb-2 text-xs",children:"Unable to fetch query details"}),/*#__PURE__*/_jsx("p",{className:"text-xs mb-3",children:error}),/*#__PURE__*/_jsx("button",{onClick:onRetry,className:"px-4 py-2 bg-red-100 hover:bg-red-200 rounded text-xs font-medium transition-colors",type:"button",children:"Retry"})]})}if(!sqlQuery||Array.isArray(sqlQuery)&&sqlQuery.length===0){return/*#__PURE__*/_jsx("div",{className:"text-gray-600 p-6",children:/*#__PURE__*/_jsx("p",{className:"text-xs",children:"No query details available"})})}// Handle multiple queries
|
|
3
|
+
if(Array.isArray(sqlQuery)){return/*#__PURE__*/_jsxs("div",{className:"p-6 space-y-4",children:[sqlQuery.filter(function(query){return query&&typeof query==="string"&&query.trim()}).map(function(query,index){return/*#__PURE__*/_jsxs("div",{className:"bg-white border border-gray-200 rounded-lg p-4 h-28 overflow-y-auto",children:[/*#__PURE__*/_jsxs("div",{className:"flex justify-between items-start mb-3",children:[/*#__PURE__*/_jsx("h3",{className:"font-semibold text-xs text-gray-500 m-0",children:"Query details"}),/*#__PURE__*/_jsx("button",{onClick:function onClick(){return copyToClipboard(query,"query-"+index)},className:"flex items-center gap-2 px-2 py-1 text-xs bg-gray-50 border border-gray-300 rounded hover:bg-gray-100 transition-colors",type:"button",children:copied["query-"+index]?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Check,{className:"w-3 h-3 text-green-600"}),/*#__PURE__*/_jsx("span",{className:"text-green-600",children:"Copied!"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Copy,{className:"w-3 h-3 text-gray-600"}),/*#__PURE__*/_jsx("span",{className:"text-gray-600",children:"Copy"})]})})]}),/*#__PURE__*/_jsx("pre",{className:"whitespace-pre-wrap leading-relaxed text-xs text-gray-700 m-0 p-0",children:query})]},index)}),renderTableButtonExplanations()]})}return/*#__PURE__*/_jsxs("div",{className:"p-6 space-y-4",children:[/*#__PURE__*/_jsxs("div",{className:"bg-white border border-gray-200 rounded-lg p-4 h-28 overflow-y-auto",children:[/*#__PURE__*/_jsxs("div",{className:"flex justify-between items-start mb-3",children:[/*#__PURE__*/_jsx("h3",{className:"font-semibold text-xs text-gray-500 m-0",children:"Query details"}),/*#__PURE__*/_jsx("button",{onClick:function onClick(){return copyToClipboard(undefined,"single")},className:"flex items-center gap-2 px-2 py-1 text-xs bg-gray-50 border border-gray-300 rounded hover:bg-gray-100 transition-colors",type:"button",children:copied.single?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Check,{className:"w-3 h-3 text-green-600"}),/*#__PURE__*/_jsx("span",{className:"text-green-600",children:"Copied!"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Copy,{className:"w-3 h-3 text-gray-600"}),/*#__PURE__*/_jsx("span",{className:"text-gray-600",children:"Copy"})]})})]}),/*#__PURE__*/_jsx("pre",{className:"whitespace-pre-wrap leading-relaxed text-xs text-gray-700 m-0 p-0",children:sqlQuery})]}),renderTableButtonExplanations()]})}return/*#__PURE__*/_jsx(CustomModal,{isOpen:isOpen,onClose:onClose,title:"How was this metric calculated?",children:renderModalContent()})}export default QueryDetailsModal;
|
|
4
|
+
//# sourceMappingURL=query-details-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-details-modal.js","names":["React","useState","useEffect","CustomModal","Copy","Check","ChevronDown","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","QueryDetailsModal","_ref","isOpen","onClose","isLoading","error","sqlQuery","_ref$tableButtonExpla","tableButtonExplanations","onRetry","_useState","copied","setCopied","_useState2","expandedButtons","setExpandedButtons","copyToClipboard","_x","_x2","_copyToClipboard","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","queryToCopy","copyId","textToCopy","id","wrap","_callee$","_context","prev","next","Array","isArray","filter","q","join","abrupt","navigator","clipboard","writeText","_extends3","_extends","setTimeout","_extends4","t0","stop","toggleButtonExpansion","buttonIndex","_extends2","renderTableButtonExplanations","length","className","children","map","button","index","_button$buttonStyle","_button$buttonStyle2","_button$buttonStyle3","onClick","buttonClassName","style","backgroundColor","buttonStyle","color","border","action","explanation","renderModalContent","type","query","trim","undefined","single","title"],"sources":["../../../src/plugins/helpers/query-details-modal.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { CustomModal } from './custom-modal';\nimport { Copy, Check, ChevronDown } from 'lucide-react';\n\ntype QueryDetailsModalProps = {\n isOpen: boolean;\n onClose: () => void;\n isLoading: boolean;\n error: string;\n sqlQuery: string | string[];\n tableButtonExplanations?: Array<{action: string, explanation: string, operationName?: string, buttonClassName?: string, buttonStyle?: Record<string, unknown>}>;\n onRetry: () => void;\n};\n\nexport function QueryDetailsModal({\n isOpen,\n onClose,\n isLoading,\n error,\n sqlQuery,\n tableButtonExplanations = [],\n onRetry\n}: QueryDetailsModalProps) {\n const [copied, setCopied] = useState<{ [key: string]: boolean }>({});\n const [expandedButtons, setExpandedButtons] = useState<{ [key: string]: boolean }>({});\n\n // Reset expanded state when modal closes\n useEffect(() => {\n if (!isOpen) {\n setExpandedButtons({});\n }\n }, [isOpen]);\n\n async function copyToClipboard(queryToCopy?: string, copyId?: string) {\n let textToCopy = queryToCopy;\n \n if (!textToCopy) {\n if (Array.isArray(sqlQuery)) {\n textToCopy = sqlQuery.filter(q => q && typeof q === 'string').join('\\n\\n-- Next Query --\\n\\n');\n } else if (typeof sqlQuery === 'string') {\n textToCopy = sqlQuery;\n } else {\n textToCopy = '';\n }\n }\n \n if (!textToCopy) {\n return;\n }\n \n const id = copyId || 'main';\n \n try {\n await navigator.clipboard.writeText(textToCopy);\n setCopied(prev => ({ ...prev, [id]: true }));\n setTimeout(() => setCopied(prev => ({ ...prev, [id]: false })), 2000);\n } catch (err) {\n // Silently fail if clipboard API is not available\n }\n }\n\n function toggleButtonExpansion(buttonIndex: number) {\n setExpandedButtons(prev => ({\n ...prev,\n [buttonIndex]: !prev[buttonIndex]\n }));\n }\n\n function renderTableButtonExplanations() {\n if (!tableButtonExplanations || tableButtonExplanations.length === 0) {\n return null;\n }\n\n return (\n <div className=\"mb-6\">\n {tableButtonExplanations.map((button, index) => (\n <div key={index} className=\"mb-3 border border-gray-200 rounded-lg\">\n <div className=\"w-full px-4 py-3 flex items-center justify-between rounded-lg\">\n <span className=\"font-medium text-xs text-gray-500\">\n What does this button do?\n </span>\n <div className=\"flex items-center\">\n <button\n onClick={() => toggleButtonExpansion(index)}\n className={button.buttonClassName || \"flex items-center px-3 py-1.5 rounded text-xs font-medium\"}\n style={{\n backgroundColor: (button.buttonStyle?.backgroundColor as string) || '#f3f4f6',\n color: (button.buttonStyle?.color as string) || '#374151',\n border: (button.buttonStyle?.border as string) || '1px solid #d1d5db',\n ...(button.buttonStyle as React.CSSProperties || {})\n }}\n >\n {button.action}\n </button>\n <ChevronDown \n className={`ml-2 w-4 h-4 text-gray-500 transition-transform cursor-pointer ${\n expandedButtons[index] ? 'rotate-180' : ''\n }`}\n onClick={() => toggleButtonExpansion(index)}\n />\n </div>\n </div>\n \n {expandedButtons[index] && (\n <div className=\"px-4 pb-3 border-t border-gray-200\">\n <p className=\"text-xs text-gray-700 mt-2\">\n This button will hit <span className=\"font-semibold\">{button.explanation}</span> \n </p>\n </div>\n )}\n </div>\n ))}\n </div>\n );\n }\n\n function renderModalContent() {\n if (isLoading) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12\">\n <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-purple-600 mb-4\"></div>\n <span className=\"text-xs text-gray-600\">Fetching query details from semantic layer...</span>\n <span className=\"text-xs text-gray-400 mt-2\">This may take a few moments</span>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"text-red-600 p-4 bg-red-50 rounded-lg border border-red-200 m-6\">\n <p className=\"font-medium mb-2 text-xs\">Unable to fetch query details</p>\n <p className=\"text-xs mb-3\">{error}</p>\n <button \n onClick={onRetry}\n className=\"px-4 py-2 bg-red-100 hover:bg-red-200 rounded text-xs font-medium transition-colors\"\n type=\"button\"\n >\n Retry\n </button>\n </div>\n );\n }\n\n if (!sqlQuery || (Array.isArray(sqlQuery) && sqlQuery.length === 0)) {\n return (\n <div className=\"text-gray-600 p-6\">\n <p className=\"text-xs\">No query details available</p>\n </div>\n );\n }\n\n // Handle multiple queries\n if (Array.isArray(sqlQuery)) {\n return (\n <div className=\"p-6 space-y-4\">\n {sqlQuery\n .filter(query => query && typeof query === 'string' && query.trim())\n .map((query, index) => (\n <div \n key={index} \n className=\"bg-white border border-gray-200 rounded-lg p-4 h-28 overflow-y-auto\"\n >\n <div className=\"flex justify-between items-start mb-3\">\n <h3 className=\"font-semibold text-xs text-gray-500 m-0\">\n Query details\n </h3>\n <button\n onClick={() => copyToClipboard(query, `query-${index}`)}\n className=\"flex items-center gap-2 px-2 py-1 text-xs bg-gray-50 border border-gray-300 rounded hover:bg-gray-100 transition-colors\"\n type=\"button\"\n >\n {copied[`query-${index}`] ? (\n <>\n <Check className=\"w-3 h-3 text-green-600\" />\n <span className=\"text-green-600\">Copied!</span>\n </>\n ) : (\n <>\n <Copy className=\"w-3 h-3 text-gray-600\" />\n <span className=\"text-gray-600\">Copy</span>\n </>\n )}\n </button>\n </div>\n <pre className=\"whitespace-pre-wrap leading-relaxed text-xs text-gray-700 m-0 p-0\">\n {query}\n </pre>\n </div>\n ))}\n {renderTableButtonExplanations()}\n </div>\n );\n }\n\n return (\n <div className=\"p-6 space-y-4\">\n <div className=\"bg-white border border-gray-200 rounded-lg p-4 h-28 overflow-y-auto\">\n <div className=\"flex justify-between items-start mb-3\">\n <h3 className=\"font-semibold text-xs text-gray-500 m-0\">\n Query details\n </h3>\n <button\n onClick={() => copyToClipboard(undefined, 'single')}\n className=\"flex items-center gap-2 px-2 py-1 text-xs bg-gray-50 border border-gray-300 rounded hover:bg-gray-100 transition-colors\"\n type=\"button\"\n >\n {copied.single ? (\n <>\n <Check className=\"w-3 h-3 text-green-600\" />\n <span className=\"text-green-600\">Copied!</span>\n </>\n ) : (\n <>\n <Copy className=\"w-3 h-3 text-gray-600\" />\n <span className=\"text-gray-600\">Copy</span>\n </>\n )}\n </button>\n </div>\n <pre className=\"whitespace-pre-wrap leading-relaxed text-xs text-gray-700 m-0 p-0\">\n {sqlQuery}\n </pre>\n </div>\n {renderTableButtonExplanations()}\n </div>\n );\n }\n\n return (\n <CustomModal\n isOpen={isOpen}\n onClose={onClose}\n title=\"How was this metric calculated?\"\n >\n {renderModalContent()}\n </CustomModal>\n );\n}\n\nexport default QueryDetailsModal;\n"],"mappings":"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","ignoreList":[]}
|