@rebasepro/studio 0.6.0 → 0.6.1
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/dist/{RLSEditor-CTxYbBdW.js → RLSEditor-DpF1u9EC.js} +190 -183
- package/dist/RLSEditor-DpF1u9EC.js.map +1 -0
- package/dist/{StorageView-nDaC2foF.js → StorageView-CvrnHmDG.js} +89 -76
- package/dist/StorageView-CvrnHmDG.js.map +1 -0
- package/dist/index.es.js +2 -2
- package/dist/index.umd.js +277 -257
- package/dist/index.umd.js.map +1 -1
- package/package.json +8 -8
- package/src/components/RLSEditor/PolicyEditor.tsx +1 -0
- package/src/components/StorageView/StorageView.tsx +3 -3
- package/dist/RLSEditor-CTxYbBdW.js.map +0 -1
- package/dist/StorageView-nDaC2foF.js.map +0 -1
package/dist/index.umd.js
CHANGED
|
@@ -4819,194 +4819,201 @@ return result;
|
|
|
4819
4819
|
open: helpOpen,
|
|
4820
4820
|
onOpenChange: setHelpOpen,
|
|
4821
4821
|
maxWidth: "3xl",
|
|
4822
|
-
children: [
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
|
|
4844
|
-
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4845
|
-
children: t("studio_policy_help_step1_desc")
|
|
4846
|
-
})]
|
|
4847
|
-
}),
|
|
4848
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4849
|
-
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4850
|
-
children: [
|
|
4851
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4852
|
-
variant: "subtitle2",
|
|
4853
|
-
className: "text-primary dark:text-primary-light font-medium",
|
|
4854
|
-
children: t("studio_policy_help_step2_title")
|
|
4855
|
-
}),
|
|
4856
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4857
|
-
variant: "body2",
|
|
4858
|
-
className: "text-text-secondary dark:text-text-secondary-dark mb-1",
|
|
4859
|
-
children: t("studio_policy_help_step2_desc")
|
|
4860
|
-
}),
|
|
4861
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ul", {
|
|
4862
|
-
className: "list-disc pl-5 space-y-1 text-sm text-text-secondary dark:text-text-secondary-dark",
|
|
4863
|
-
children: [
|
|
4864
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
4865
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "public" }),
|
|
4866
|
-
": ",
|
|
4867
|
-
t("studio_policy_help_role_public")
|
|
4868
|
-
] }),
|
|
4869
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
4870
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "authenticated" }),
|
|
4871
|
-
": ",
|
|
4872
|
-
t("studio_policy_help_role_authenticated")
|
|
4873
|
-
] }),
|
|
4874
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
4875
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "anon" }),
|
|
4876
|
-
": ",
|
|
4877
|
-
t("studio_policy_help_role_anon")
|
|
4878
|
-
] })
|
|
4879
|
-
]
|
|
4880
|
-
})
|
|
4881
|
-
]
|
|
4882
|
-
}),
|
|
4883
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4884
|
-
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4885
|
-
children: [
|
|
4886
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4887
|
-
variant: "subtitle2",
|
|
4888
|
-
className: "text-primary dark:text-primary-light font-medium",
|
|
4889
|
-
children: t("studio_policy_help_step3_title")
|
|
4890
|
-
}),
|
|
4891
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4892
|
-
variant: "body2",
|
|
4893
|
-
className: "text-text-secondary dark:text-text-secondary-dark mb-1",
|
|
4894
|
-
children: t("studio_policy_help_step3_desc")
|
|
4895
|
-
}),
|
|
4896
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4897
|
-
className: (0, _rebasepro_ui.cls)("bg-surface-100 dark:bg-surface-950 px-3 py-2 rounded-md font-mono text-sm my-2", _rebasepro_ui.defaultBorderMixin),
|
|
4898
|
-
children: "Example: auth.uid() = user_id"
|
|
4899
|
-
}),
|
|
4900
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4901
|
-
variant: "caption",
|
|
4902
|
-
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4903
|
-
children: t("studio_policy_help_step3_example")
|
|
4904
|
-
})
|
|
4905
|
-
]
|
|
4906
|
-
}),
|
|
4907
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4908
|
-
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4909
|
-
children: [
|
|
4910
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4911
|
-
variant: "subtitle2",
|
|
4912
|
-
className: "text-primary dark:text-primary-light font-medium",
|
|
4913
|
-
children: t("studio_policy_help_step4_title")
|
|
4914
|
-
}),
|
|
4915
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4916
|
-
variant: "body2",
|
|
4917
|
-
className: "text-text-secondary dark:text-text-secondary-dark mb-1",
|
|
4918
|
-
children: t("studio_policy_help_step4_desc")
|
|
4919
|
-
}),
|
|
4920
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4921
|
-
className: (0, _rebasepro_ui.cls)("bg-surface-100 dark:bg-surface-950 px-3 py-2 rounded-md font-mono text-sm my-2", _rebasepro_ui.defaultBorderMixin),
|
|
4922
|
-
children: "Example: auth.uid() = user_id"
|
|
4923
|
-
}),
|
|
4924
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4925
|
-
variant: "caption",
|
|
4926
|
-
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4927
|
-
children: t("studio_policy_help_step4_example")
|
|
4928
|
-
})
|
|
4929
|
-
]
|
|
4930
|
-
}),
|
|
4931
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4932
|
-
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-2 bg-primary/5 dark:bg-primary-bg-dark/10", _rebasepro_ui.defaultBorderMixin),
|
|
4933
|
-
children: [
|
|
4934
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4822
|
+
children: [
|
|
4823
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.DialogTitle, {
|
|
4824
|
+
hidden: true,
|
|
4825
|
+
children: "Row-Level Security Help"
|
|
4826
|
+
}),
|
|
4827
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogContent, {
|
|
4828
|
+
className: "p-4 sm:p-6 lg:p-8 flex flex-col gap-6",
|
|
4829
|
+
children: [
|
|
4830
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4831
|
+
variant: "h5",
|
|
4832
|
+
className: "mb-2",
|
|
4833
|
+
children: t("studio_policy_help_title")
|
|
4834
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4835
|
+
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4836
|
+
children: t("studio_policy_help_intro")
|
|
4837
|
+
})] }),
|
|
4838
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4839
|
+
className: "flex flex-col gap-4",
|
|
4840
|
+
children: [
|
|
4841
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4842
|
+
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4843
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4935
4844
|
variant: "subtitle2",
|
|
4936
4845
|
className: "text-primary dark:text-primary-light font-medium",
|
|
4937
|
-
children: t("
|
|
4938
|
-
}),
|
|
4939
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4846
|
+
children: t("studio_policy_help_step1_title")
|
|
4847
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4940
4848
|
variant: "body2",
|
|
4941
4849
|
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4942
|
-
children: t("
|
|
4943
|
-
})
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
})
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
})
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4850
|
+
children: t("studio_policy_help_step1_desc")
|
|
4851
|
+
})]
|
|
4852
|
+
}),
|
|
4853
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4854
|
+
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4855
|
+
children: [
|
|
4856
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4857
|
+
variant: "subtitle2",
|
|
4858
|
+
className: "text-primary dark:text-primary-light font-medium",
|
|
4859
|
+
children: t("studio_policy_help_step2_title")
|
|
4860
|
+
}),
|
|
4861
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4862
|
+
variant: "body2",
|
|
4863
|
+
className: "text-text-secondary dark:text-text-secondary-dark mb-1",
|
|
4864
|
+
children: t("studio_policy_help_step2_desc")
|
|
4865
|
+
}),
|
|
4866
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ul", {
|
|
4867
|
+
className: "list-disc pl-5 space-y-1 text-sm text-text-secondary dark:text-text-secondary-dark",
|
|
4868
|
+
children: [
|
|
4869
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
4870
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "public" }),
|
|
4871
|
+
": ",
|
|
4872
|
+
t("studio_policy_help_role_public")
|
|
4873
|
+
] }),
|
|
4874
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
4875
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "authenticated" }),
|
|
4876
|
+
": ",
|
|
4877
|
+
t("studio_policy_help_role_authenticated")
|
|
4878
|
+
] }),
|
|
4879
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
4880
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "anon" }),
|
|
4881
|
+
": ",
|
|
4882
|
+
t("studio_policy_help_role_anon")
|
|
4883
|
+
] })
|
|
4884
|
+
]
|
|
4885
|
+
})
|
|
4886
|
+
]
|
|
4887
|
+
}),
|
|
4888
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4889
|
+
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4890
|
+
children: [
|
|
4891
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4892
|
+
variant: "subtitle2",
|
|
4893
|
+
className: "text-primary dark:text-primary-light font-medium",
|
|
4894
|
+
children: t("studio_policy_help_step3_title")
|
|
4895
|
+
}),
|
|
4896
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4897
|
+
variant: "body2",
|
|
4898
|
+
className: "text-text-secondary dark:text-text-secondary-dark mb-1",
|
|
4899
|
+
children: t("studio_policy_help_step3_desc")
|
|
4900
|
+
}),
|
|
4901
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4902
|
+
className: (0, _rebasepro_ui.cls)("bg-surface-100 dark:bg-surface-950 px-3 py-2 rounded-md font-mono text-sm my-2", _rebasepro_ui.defaultBorderMixin),
|
|
4903
|
+
children: "Example: auth.uid() = user_id"
|
|
4904
|
+
}),
|
|
4905
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4906
|
+
variant: "caption",
|
|
4907
|
+
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4908
|
+
children: t("studio_policy_help_step3_example")
|
|
4909
|
+
})
|
|
4910
|
+
]
|
|
4911
|
+
}),
|
|
4912
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4913
|
+
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-1", _rebasepro_ui.defaultBorderMixin),
|
|
4914
|
+
children: [
|
|
4915
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4916
|
+
variant: "subtitle2",
|
|
4917
|
+
className: "text-primary dark:text-primary-light font-medium",
|
|
4918
|
+
children: t("studio_policy_help_step4_title")
|
|
4919
|
+
}),
|
|
4920
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4921
|
+
variant: "body2",
|
|
4922
|
+
className: "text-text-secondary dark:text-text-secondary-dark mb-1",
|
|
4923
|
+
children: t("studio_policy_help_step4_desc")
|
|
4924
|
+
}),
|
|
4925
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4926
|
+
className: (0, _rebasepro_ui.cls)("bg-surface-100 dark:bg-surface-950 px-3 py-2 rounded-md font-mono text-sm my-2", _rebasepro_ui.defaultBorderMixin),
|
|
4927
|
+
children: "Example: auth.uid() = user_id"
|
|
4928
|
+
}),
|
|
4929
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4930
|
+
variant: "caption",
|
|
4931
|
+
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4932
|
+
children: t("studio_policy_help_step4_example")
|
|
4933
|
+
})
|
|
4934
|
+
]
|
|
4935
|
+
}),
|
|
4936
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Paper, {
|
|
4937
|
+
className: (0, _rebasepro_ui.cls)("p-4 sm:p-5 flex flex-col gap-2 bg-primary/5 dark:bg-primary-bg-dark/10", _rebasepro_ui.defaultBorderMixin),
|
|
4938
|
+
children: [
|
|
4939
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4940
|
+
variant: "subtitle2",
|
|
4941
|
+
className: "text-primary dark:text-primary-light font-medium",
|
|
4942
|
+
children: t("studio_policy_help_auth_vars_title")
|
|
4943
|
+
}),
|
|
4944
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4945
|
+
variant: "body2",
|
|
4946
|
+
className: "text-text-secondary dark:text-text-secondary-dark",
|
|
4947
|
+
children: t("studio_policy_help_auth_vars_desc")
|
|
4948
|
+
}),
|
|
4949
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ul", {
|
|
4950
|
+
className: "list-disc pl-5 space-y-2 text-sm text-text-secondary dark:text-text-secondary-dark font-normal",
|
|
4951
|
+
children: [
|
|
4952
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
4953
|
+
className: "bg-surface-100 dark:bg-surface-950 px-1.5 py-0.5 rounded mr-1 whitespace-nowrap",
|
|
4954
|
+
children: "auth.uid()"
|
|
4955
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
4956
|
+
className: "block mt-0.5",
|
|
4957
|
+
children: ["Returns the current user's ID as text. Example: ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
4958
|
+
className: "bg-surface-100 dark:bg-surface-950 px-1 py-0.5 rounded text-[11px]",
|
|
4959
|
+
children: "auth.uid() = user_id"
|
|
4960
|
+
})]
|
|
4961
|
+
})] }),
|
|
4962
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
4963
|
+
className: "bg-surface-100 dark:bg-surface-950 px-1.5 py-0.5 rounded mr-1 whitespace-nowrap",
|
|
4964
|
+
children: "auth.jwt()"
|
|
4965
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
4966
|
+
className: "block mt-0.5",
|
|
4967
|
+
children: ["Returns the full JWT payload as JSONB so you can check custom claims. Example: ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
4968
|
+
className: "bg-surface-100 dark:bg-surface-950 px-1 py-0.5 rounded text-[11px]",
|
|
4969
|
+
children: "auth.jwt() ->> 'email' = 'admin@example.com'"
|
|
4970
|
+
})]
|
|
4971
|
+
})] }),
|
|
4972
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
4973
|
+
className: "bg-surface-100 dark:bg-surface-950 px-1.5 py-0.5 rounded mr-1 whitespace-nowrap",
|
|
4974
|
+
children: "auth.roles()"
|
|
4975
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
4976
|
+
className: "block mt-0.5",
|
|
4977
|
+
children: ["Returns the user's role IDs as a comma-separated string. Best used with: ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
4978
|
+
className: "bg-surface-100 dark:bg-surface-950 px-1 py-0.5 rounded text-[11px]",
|
|
4979
|
+
children: "string_to_array(auth.roles(), ',') @> ARRAY['admin']"
|
|
4980
|
+
})]
|
|
4981
|
+
})] })
|
|
4982
|
+
]
|
|
4983
|
+
})
|
|
4984
|
+
]
|
|
4985
|
+
})
|
|
4986
|
+
]
|
|
4987
|
+
}),
|
|
4988
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4989
|
+
className: (0, _rebasepro_ui.cls)("mt-2 flex flex-col sm:flex-row justify-between items-start sm:items-center bg-primary/5 dark:bg-primary-bg-dark/10 p-4 rounded-xl border border-primary/10 dark:border-primary/20", _rebasepro_ui.defaultBorderMixin),
|
|
4990
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
4991
|
+
variant: "body2",
|
|
4992
|
+
className: "text-primary dark:text-primary-light mb-4 sm:mb-0 max-w-md",
|
|
4993
|
+
children: t("studio_policy_help_docs_cta")
|
|
4994
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
4995
|
+
component: "a",
|
|
4996
|
+
href: "https://www.postgresql.org/docs/current/sql-createpolicy.html",
|
|
4997
|
+
target: "_blank",
|
|
4998
|
+
variant: "outlined",
|
|
4999
|
+
color: "primary",
|
|
5000
|
+
size: "small",
|
|
5001
|
+
className: "whitespace-nowrap flex-shrink-0",
|
|
5002
|
+
children: t("studio_policy_help_read_docs")
|
|
5003
|
+
})]
|
|
5004
|
+
})
|
|
5005
|
+
]
|
|
5006
|
+
}),
|
|
5007
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.DialogActions, {
|
|
5008
|
+
className: "p-4 sm:px-6 sm:pb-6 pt-0 border-t-0",
|
|
5009
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
5010
|
+
onClick: () => setHelpOpen(false),
|
|
5011
|
+
variant: "filled",
|
|
5012
|
+
color: "primary",
|
|
5013
|
+
children: t("studio_policy_help_got_it")
|
|
4999
5014
|
})
|
|
5000
|
-
]
|
|
5001
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.DialogActions, {
|
|
5002
|
-
className: "p-4 sm:px-6 sm:pb-6 pt-0 border-t-0",
|
|
5003
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
5004
|
-
onClick: () => setHelpOpen(false),
|
|
5005
|
-
variant: "filled",
|
|
5006
|
-
color: "primary",
|
|
5007
|
-
children: t("studio_policy_help_got_it")
|
|
5008
5015
|
})
|
|
5009
|
-
|
|
5016
|
+
]
|
|
5010
5017
|
})
|
|
5011
5018
|
] });
|
|
5012
5019
|
};
|
|
@@ -6180,30 +6187,37 @@ return result;
|
|
|
6180
6187
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Dialog, {
|
|
6181
6188
|
open: deleteDialogOpen,
|
|
6182
6189
|
onOpenChange: setDeleteDialogOpen,
|
|
6183
|
-
children: [
|
|
6184
|
-
|
|
6185
|
-
|
|
6186
|
-
|
|
6187
|
-
|
|
6188
|
-
|
|
6189
|
-
|
|
6190
|
-
|
|
6191
|
-
|
|
6192
|
-
|
|
6193
|
-
|
|
6194
|
-
|
|
6195
|
-
|
|
6196
|
-
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
setDeleteDialogOpen(false)
|
|
6203
|
-
|
|
6204
|
-
},
|
|
6205
|
-
|
|
6206
|
-
|
|
6190
|
+
children: [
|
|
6191
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.DialogTitle, {
|
|
6192
|
+
hidden: true,
|
|
6193
|
+
children: "Delete File"
|
|
6194
|
+
}),
|
|
6195
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogContent, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
6196
|
+
variant: "subtitle1",
|
|
6197
|
+
className: "mb-2",
|
|
6198
|
+
children: "Delete File?"
|
|
6199
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Typography, {
|
|
6200
|
+
className: "text-surface-accent-600 dark:text-surface-accent-400",
|
|
6201
|
+
children: [
|
|
6202
|
+
"Are you sure you want to delete \"",
|
|
6203
|
+
file.name,
|
|
6204
|
+
"\"? This action cannot be undone."
|
|
6205
|
+
]
|
|
6206
|
+
})] }),
|
|
6207
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogActions, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
6208
|
+
variant: "text",
|
|
6209
|
+
onClick: () => setDeleteDialogOpen(false),
|
|
6210
|
+
children: "Cancel"
|
|
6211
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
6212
|
+
variant: "filled",
|
|
6213
|
+
color: "error",
|
|
6214
|
+
onClick: () => {
|
|
6215
|
+
setDeleteDialogOpen(false);
|
|
6216
|
+
onDelete();
|
|
6217
|
+
},
|
|
6218
|
+
children: "Delete"
|
|
6219
|
+
})] })
|
|
6220
|
+
]
|
|
6207
6221
|
})] });
|
|
6208
6222
|
}
|
|
6209
6223
|
var StorageView$1;
|
|
@@ -7094,31 +7108,38 @@ return result;
|
|
|
7094
7108
|
setDeleteDialogTarget(null);
|
|
7095
7109
|
}
|
|
7096
7110
|
},
|
|
7097
|
-
children: [
|
|
7098
|
-
|
|
7099
|
-
|
|
7100
|
-
|
|
7101
|
-
|
|
7102
|
-
|
|
7103
|
-
|
|
7104
|
-
|
|
7105
|
-
|
|
7106
|
-
|
|
7107
|
-
|
|
7108
|
-
|
|
7109
|
-
|
|
7110
|
-
},
|
|
7111
|
-
|
|
7112
|
-
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7116
|
-
|
|
7117
|
-
|
|
7118
|
-
|
|
7119
|
-
|
|
7120
|
-
|
|
7121
|
-
|
|
7111
|
+
children: [
|
|
7112
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.DialogTitle, {
|
|
7113
|
+
hidden: true,
|
|
7114
|
+
children: "Delete Confirmation"
|
|
7115
|
+
}),
|
|
7116
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogContent, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
7117
|
+
variant: "subtitle1",
|
|
7118
|
+
className: "font-semibold mb-2",
|
|
7119
|
+
children: deleteDialogTarget === "selection" ? `Delete ${selectedPaths.size} item${selectedPaths.size !== 1 ? "s" : ""}?` : deleteDialogTarget ? `Delete folder "${deleteDialogTarget.name}"?` : "Delete?"
|
|
7120
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Typography, {
|
|
7121
|
+
variant: "body2",
|
|
7122
|
+
color: "secondary",
|
|
7123
|
+
children: deleteDialogTarget === "selection" ? "This will permanently delete all selected files and folders, including their contents. This action cannot be undone." : "This will permanently delete the folder and all of its contents. This action cannot be undone."
|
|
7124
|
+
})] }),
|
|
7125
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogActions, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
7126
|
+
variant: "text",
|
|
7127
|
+
onClick: () => {
|
|
7128
|
+
setDeleteDialogOpen(false);
|
|
7129
|
+
setDeleteDialogTarget(null);
|
|
7130
|
+
},
|
|
7131
|
+
disabled: deleting,
|
|
7132
|
+
children: "Cancel"
|
|
7133
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.LoadingButton, {
|
|
7134
|
+
color: "error",
|
|
7135
|
+
loading: deleting,
|
|
7136
|
+
onClick: deleteDialogTarget === "selection" ? handleBulkDelete : handleConfirmDeleteFolder,
|
|
7137
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Trash2Icon, {
|
|
7138
|
+
size: 14,
|
|
7139
|
+
className: "mr-1"
|
|
7140
|
+
}), "Delete"]
|
|
7141
|
+
})] })
|
|
7142
|
+
]
|
|
7122
7143
|
}),
|
|
7123
7144
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Dialog, {
|
|
7124
7145
|
open: newFolderDialogOpen,
|
|
@@ -7128,13 +7149,12 @@ return result;
|
|
|
7128
7149
|
setNewFolderName("");
|
|
7129
7150
|
}
|
|
7130
7151
|
},
|
|
7131
|
-
children: [
|
|
7132
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.
|
|
7133
|
-
|
|
7134
|
-
className: "font-semibold mb-4",
|
|
7152
|
+
children: [
|
|
7153
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.DialogTitle, {
|
|
7154
|
+
hidden: true,
|
|
7135
7155
|
children: "New Folder"
|
|
7136
7156
|
}),
|
|
7137
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.TextField, {
|
|
7157
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogContent, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.TextField, {
|
|
7138
7158
|
autoFocus: true,
|
|
7139
7159
|
size: "small",
|
|
7140
7160
|
label: "Folder name",
|
|
@@ -7148,8 +7168,7 @@ return result;
|
|
|
7148
7168
|
},
|
|
7149
7169
|
disabled: creatingFolder,
|
|
7150
7170
|
placeholder: "Enter folder name"
|
|
7151
|
-
}),
|
|
7152
|
-
currentPath && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Typography, {
|
|
7171
|
+
}), currentPath && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.Typography, {
|
|
7153
7172
|
variant: "caption",
|
|
7154
7173
|
color: "secondary",
|
|
7155
7174
|
className: "mt-2",
|
|
@@ -7161,25 +7180,26 @@ return result;
|
|
|
7161
7180
|
"/"
|
|
7162
7181
|
]
|
|
7163
7182
|
})]
|
|
7164
|
-
})
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
+
})] }),
|
|
7184
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.DialogActions, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.Button, {
|
|
7185
|
+
variant: "text",
|
|
7186
|
+
onClick: () => {
|
|
7187
|
+
setNewFolderDialogOpen(false);
|
|
7188
|
+
setNewFolderName("");
|
|
7189
|
+
},
|
|
7190
|
+
disabled: creatingFolder,
|
|
7191
|
+
children: "Cancel"
|
|
7192
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_rebasepro_ui.LoadingButton, {
|
|
7193
|
+
color: "primary",
|
|
7194
|
+
loading: creatingFolder,
|
|
7195
|
+
disabled: !newFolderName.trim(),
|
|
7196
|
+
onClick: handleCreateFolder,
|
|
7197
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_rebasepro_ui.FolderPlusIcon, {
|
|
7198
|
+
size: 14,
|
|
7199
|
+
className: "mr-1"
|
|
7200
|
+
}), "Create"]
|
|
7201
|
+
})] })
|
|
7202
|
+
]
|
|
7183
7203
|
})
|
|
7184
7204
|
]
|
|
7185
7205
|
});
|