@lukoweb/apitogo 0.1.39 → 0.1.40
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/cli/cli.js +119 -116
- package/dist/declarations/config/validators/HeaderNavigationSchema.d.ts +96 -0
- package/dist/declarations/config/validators/ZudokuConfig.d.ts +36 -0
- package/dist/declarations/lib/authentication/providers/dev-portal-constants.d.ts +2 -0
- package/dist/declarations/lib/authentication/providers/dev-portal.d.ts +1 -2
- package/dist/flat-config.d.ts +32 -30
- package/package.json +1 -1
- package/src/config/validators/HeaderNavigationSchema.ts +3 -0
- package/src/lib/authentication/providers/dev-portal-constants.ts +2 -0
- package/src/lib/authentication/providers/dev-portal-utils.ts +39 -2
- package/src/lib/authentication/providers/dev-portal.tsx +5 -8
- package/src/lib/components/Header.tsx +2 -8
- package/src/lib/components/HeaderNavigation.tsx +32 -5
- package/src/lib/components/MobileTopNavigation.tsx +2 -8
- package/src/lib/core/RouteGuard.tsx +2 -3
package/dist/cli/cli.js
CHANGED
|
@@ -2914,100 +2914,66 @@ var init_icon_types = __esm({
|
|
|
2914
2914
|
}
|
|
2915
2915
|
});
|
|
2916
2916
|
|
|
2917
|
-
// src/config/validators/HeaderNavigationSchema.ts
|
|
2918
|
-
import { z as z5 } from "zod";
|
|
2919
|
-
var IconSchema, HeaderNavLinkItemSchema, HeaderNavGroupSchema, HeaderNavItemSchema, HeaderNavigationSchema;
|
|
2920
|
-
var init_HeaderNavigationSchema = __esm({
|
|
2921
|
-
"src/config/validators/HeaderNavigationSchema.ts"() {
|
|
2922
|
-
init_icon_types();
|
|
2923
|
-
IconSchema = z5.enum(IconNames);
|
|
2924
|
-
HeaderNavLinkItemSchema = z5.object({
|
|
2925
|
-
label: z5.string(),
|
|
2926
|
-
icon: IconSchema.optional(),
|
|
2927
|
-
description: z5.string().optional(),
|
|
2928
|
-
to: z5.string(),
|
|
2929
|
-
target: z5.enum(["_self", "_blank"]).optional()
|
|
2930
|
-
});
|
|
2931
|
-
HeaderNavGroupSchema = z5.object({
|
|
2932
|
-
label: z5.string(),
|
|
2933
|
-
items: z5.array(HeaderNavLinkItemSchema)
|
|
2934
|
-
});
|
|
2935
|
-
HeaderNavItemSchema = z5.union([
|
|
2936
|
-
z5.object({
|
|
2937
|
-
label: z5.string(),
|
|
2938
|
-
icon: IconSchema.optional(),
|
|
2939
|
-
to: z5.string(),
|
|
2940
|
-
target: z5.enum(["_self", "_blank"]).optional()
|
|
2941
|
-
}),
|
|
2942
|
-
z5.object({
|
|
2943
|
-
label: z5.string(),
|
|
2944
|
-
items: z5.array(z5.union([HeaderNavLinkItemSchema, HeaderNavGroupSchema]))
|
|
2945
|
-
})
|
|
2946
|
-
]);
|
|
2947
|
-
HeaderNavigationSchema = z5.array(HeaderNavItemSchema);
|
|
2948
|
-
}
|
|
2949
|
-
});
|
|
2950
|
-
|
|
2951
2917
|
// src/config/validators/InputNavigationSchema.ts
|
|
2952
|
-
import { z as
|
|
2953
|
-
var
|
|
2918
|
+
import { z as z5 } from "zod";
|
|
2919
|
+
var IconSchema, BadgeSchema, InputNavigationCategoryLinkDocSchema, DisplaySchema, NavigationModifyRuleSchema, NavigationInsertRuleSchema, NavigationRemoveRuleSchema, NavigationSortRuleSchema, NavigationMoveRuleSchema, NavigationRuleSchema, NavigationRulesSchema, InputNavigationDocSchema, InputNavigationLinkSchema, InputNavigationCustomPageSchema, InputNavigationSeparatorSchema, InputNavigationSectionSchema, InputNavigationFilterSchema, BaseInputNavigationCategorySchema, InputNavigationCategorySchema, InputNavigationItemSchema, InputNavigationSchema;
|
|
2954
2920
|
var init_InputNavigationSchema = __esm({
|
|
2955
2921
|
"src/config/validators/InputNavigationSchema.ts"() {
|
|
2956
|
-
|
|
2957
|
-
BadgeSchema =
|
|
2958
|
-
label:
|
|
2922
|
+
IconSchema = z5.custom((f) => typeof f === "string");
|
|
2923
|
+
BadgeSchema = z5.object({
|
|
2924
|
+
label: z5.string(),
|
|
2959
2925
|
// prettier-ignore
|
|
2960
|
-
color:
|
|
2961
|
-
invert:
|
|
2962
|
-
className:
|
|
2926
|
+
color: z5.enum(["green", "blue", "yellow", "red", "purple", "indigo", "gray", "outline"]),
|
|
2927
|
+
invert: z5.boolean().optional(),
|
|
2928
|
+
className: z5.string().optional()
|
|
2963
2929
|
});
|
|
2964
|
-
InputNavigationCategoryLinkDocSchema =
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
type:
|
|
2968
|
-
file:
|
|
2969
|
-
label:
|
|
2970
|
-
path:
|
|
2930
|
+
InputNavigationCategoryLinkDocSchema = z5.union([
|
|
2931
|
+
z5.string(),
|
|
2932
|
+
z5.object({
|
|
2933
|
+
type: z5.literal("doc"),
|
|
2934
|
+
file: z5.string(),
|
|
2935
|
+
label: z5.string().optional(),
|
|
2936
|
+
path: z5.string().optional()
|
|
2971
2937
|
})
|
|
2972
2938
|
]);
|
|
2973
|
-
DisplaySchema =
|
|
2974
|
-
|
|
2975
|
-
|
|
2939
|
+
DisplaySchema = z5.union([
|
|
2940
|
+
z5.enum(["auth", "anon", "always", "hide"]),
|
|
2941
|
+
z5.custom((val) => typeof val === "function")
|
|
2976
2942
|
]).optional();
|
|
2977
|
-
NavigationModifyRuleSchema =
|
|
2978
|
-
type:
|
|
2979
|
-
match:
|
|
2980
|
-
set:
|
|
2981
|
-
label:
|
|
2982
|
-
icon:
|
|
2943
|
+
NavigationModifyRuleSchema = z5.object({
|
|
2944
|
+
type: z5.literal("modify"),
|
|
2945
|
+
match: z5.string(),
|
|
2946
|
+
set: z5.object({
|
|
2947
|
+
label: z5.string().optional(),
|
|
2948
|
+
icon: IconSchema.optional(),
|
|
2983
2949
|
badge: BadgeSchema.optional(),
|
|
2984
|
-
collapsed:
|
|
2985
|
-
collapsible:
|
|
2950
|
+
collapsed: z5.boolean().optional(),
|
|
2951
|
+
collapsible: z5.boolean().optional(),
|
|
2986
2952
|
display: DisplaySchema
|
|
2987
2953
|
})
|
|
2988
2954
|
});
|
|
2989
|
-
NavigationInsertRuleSchema =
|
|
2990
|
-
type:
|
|
2991
|
-
match:
|
|
2992
|
-
position:
|
|
2993
|
-
items:
|
|
2955
|
+
NavigationInsertRuleSchema = z5.object({
|
|
2956
|
+
type: z5.literal("insert"),
|
|
2957
|
+
match: z5.string(),
|
|
2958
|
+
position: z5.enum(["before", "after"]),
|
|
2959
|
+
items: z5.lazy(() => InputNavigationItemSchema.array())
|
|
2994
2960
|
});
|
|
2995
|
-
NavigationRemoveRuleSchema =
|
|
2996
|
-
type:
|
|
2997
|
-
match:
|
|
2961
|
+
NavigationRemoveRuleSchema = z5.object({
|
|
2962
|
+
type: z5.literal("remove"),
|
|
2963
|
+
match: z5.string()
|
|
2998
2964
|
});
|
|
2999
|
-
NavigationSortRuleSchema =
|
|
3000
|
-
type:
|
|
3001
|
-
match:
|
|
3002
|
-
by:
|
|
2965
|
+
NavigationSortRuleSchema = z5.object({
|
|
2966
|
+
type: z5.literal("sort"),
|
|
2967
|
+
match: z5.string(),
|
|
2968
|
+
by: z5.custom((val) => typeof val === "function")
|
|
3003
2969
|
});
|
|
3004
|
-
NavigationMoveRuleSchema =
|
|
3005
|
-
type:
|
|
3006
|
-
match:
|
|
3007
|
-
to:
|
|
3008
|
-
position:
|
|
2970
|
+
NavigationMoveRuleSchema = z5.object({
|
|
2971
|
+
type: z5.literal("move"),
|
|
2972
|
+
match: z5.string(),
|
|
2973
|
+
to: z5.string(),
|
|
2974
|
+
position: z5.enum(["before", "after"])
|
|
3009
2975
|
});
|
|
3010
|
-
NavigationRuleSchema =
|
|
2976
|
+
NavigationRuleSchema = z5.discriminatedUnion("type", [
|
|
3011
2977
|
NavigationModifyRuleSchema,
|
|
3012
2978
|
NavigationInsertRuleSchema,
|
|
3013
2979
|
NavigationRemoveRuleSchema,
|
|
@@ -3015,65 +2981,65 @@ var init_InputNavigationSchema = __esm({
|
|
|
3015
2981
|
NavigationMoveRuleSchema
|
|
3016
2982
|
]);
|
|
3017
2983
|
NavigationRulesSchema = NavigationRuleSchema.array();
|
|
3018
|
-
InputNavigationDocSchema =
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
type:
|
|
3022
|
-
file:
|
|
2984
|
+
InputNavigationDocSchema = z5.union([
|
|
2985
|
+
z5.string(),
|
|
2986
|
+
z5.object({
|
|
2987
|
+
type: z5.literal("doc"),
|
|
2988
|
+
file: z5.string(),
|
|
3023
2989
|
// Custom URL path for this document (overrides file-based path)
|
|
3024
|
-
path:
|
|
3025
|
-
icon:
|
|
3026
|
-
label:
|
|
2990
|
+
path: z5.string().optional(),
|
|
2991
|
+
icon: IconSchema.optional(),
|
|
2992
|
+
label: z5.string().optional(),
|
|
3027
2993
|
badge: BadgeSchema.optional(),
|
|
3028
2994
|
display: DisplaySchema
|
|
3029
2995
|
})
|
|
3030
2996
|
]);
|
|
3031
|
-
InputNavigationLinkSchema =
|
|
3032
|
-
type:
|
|
3033
|
-
to:
|
|
3034
|
-
label:
|
|
3035
|
-
target:
|
|
3036
|
-
icon:
|
|
2997
|
+
InputNavigationLinkSchema = z5.object({
|
|
2998
|
+
type: z5.literal("link"),
|
|
2999
|
+
to: z5.string(),
|
|
3000
|
+
label: z5.string(),
|
|
3001
|
+
target: z5.enum(["_self", "_blank"]).optional(),
|
|
3002
|
+
icon: IconSchema.optional(),
|
|
3037
3003
|
badge: BadgeSchema.optional(),
|
|
3038
3004
|
display: DisplaySchema
|
|
3039
3005
|
});
|
|
3040
|
-
InputNavigationCustomPageSchema =
|
|
3041
|
-
type:
|
|
3042
|
-
path:
|
|
3043
|
-
label:
|
|
3044
|
-
element:
|
|
3045
|
-
icon:
|
|
3006
|
+
InputNavigationCustomPageSchema = z5.object({
|
|
3007
|
+
type: z5.literal("custom-page"),
|
|
3008
|
+
path: z5.string(),
|
|
3009
|
+
label: z5.string().optional(),
|
|
3010
|
+
element: z5.any(),
|
|
3011
|
+
icon: IconSchema.optional(),
|
|
3046
3012
|
badge: BadgeSchema.optional(),
|
|
3047
3013
|
display: DisplaySchema,
|
|
3048
|
-
layout:
|
|
3014
|
+
layout: z5.enum(["default", "none"]).optional()
|
|
3049
3015
|
});
|
|
3050
|
-
InputNavigationSeparatorSchema =
|
|
3051
|
-
type:
|
|
3016
|
+
InputNavigationSeparatorSchema = z5.object({
|
|
3017
|
+
type: z5.literal("separator"),
|
|
3052
3018
|
display: DisplaySchema
|
|
3053
3019
|
});
|
|
3054
|
-
InputNavigationSectionSchema =
|
|
3055
|
-
type:
|
|
3056
|
-
label:
|
|
3020
|
+
InputNavigationSectionSchema = z5.object({
|
|
3021
|
+
type: z5.literal("section"),
|
|
3022
|
+
label: z5.string(),
|
|
3057
3023
|
display: DisplaySchema
|
|
3058
3024
|
});
|
|
3059
|
-
InputNavigationFilterSchema =
|
|
3060
|
-
type:
|
|
3061
|
-
placeholder:
|
|
3025
|
+
InputNavigationFilterSchema = z5.object({
|
|
3026
|
+
type: z5.literal("filter"),
|
|
3027
|
+
placeholder: z5.string().optional(),
|
|
3062
3028
|
display: DisplaySchema
|
|
3063
3029
|
});
|
|
3064
|
-
BaseInputNavigationCategorySchema =
|
|
3065
|
-
type:
|
|
3066
|
-
icon:
|
|
3067
|
-
label:
|
|
3068
|
-
collapsible:
|
|
3069
|
-
collapsed:
|
|
3030
|
+
BaseInputNavigationCategorySchema = z5.object({
|
|
3031
|
+
type: z5.literal("category"),
|
|
3032
|
+
icon: IconSchema.optional(),
|
|
3033
|
+
label: z5.string(),
|
|
3034
|
+
collapsible: z5.boolean().optional(),
|
|
3035
|
+
collapsed: z5.boolean().optional(),
|
|
3070
3036
|
link: InputNavigationCategoryLinkDocSchema.optional(),
|
|
3071
3037
|
display: DisplaySchema
|
|
3072
3038
|
});
|
|
3073
3039
|
InputNavigationCategorySchema = BaseInputNavigationCategorySchema.extend({
|
|
3074
|
-
items:
|
|
3040
|
+
items: z5.lazy(() => InputNavigationItemSchema.array())
|
|
3075
3041
|
});
|
|
3076
|
-
InputNavigationItemSchema =
|
|
3042
|
+
InputNavigationItemSchema = z5.union([
|
|
3077
3043
|
InputNavigationDocSchema,
|
|
3078
3044
|
InputNavigationLinkSchema,
|
|
3079
3045
|
InputNavigationCustomPageSchema,
|
|
@@ -3086,6 +3052,43 @@ var init_InputNavigationSchema = __esm({
|
|
|
3086
3052
|
}
|
|
3087
3053
|
});
|
|
3088
3054
|
|
|
3055
|
+
// src/config/validators/HeaderNavigationSchema.ts
|
|
3056
|
+
import { z as z6 } from "zod";
|
|
3057
|
+
var IconSchema2, HeaderNavLinkItemSchema, HeaderNavGroupSchema, HeaderNavItemSchema, HeaderNavigationSchema;
|
|
3058
|
+
var init_HeaderNavigationSchema = __esm({
|
|
3059
|
+
"src/config/validators/HeaderNavigationSchema.ts"() {
|
|
3060
|
+
init_icon_types();
|
|
3061
|
+
init_InputNavigationSchema();
|
|
3062
|
+
IconSchema2 = z6.enum(IconNames);
|
|
3063
|
+
HeaderNavLinkItemSchema = z6.object({
|
|
3064
|
+
label: z6.string(),
|
|
3065
|
+
icon: IconSchema2.optional(),
|
|
3066
|
+
description: z6.string().optional(),
|
|
3067
|
+
to: z6.string(),
|
|
3068
|
+
target: z6.enum(["_self", "_blank"]).optional(),
|
|
3069
|
+
display: DisplaySchema
|
|
3070
|
+
});
|
|
3071
|
+
HeaderNavGroupSchema = z6.object({
|
|
3072
|
+
label: z6.string(),
|
|
3073
|
+
items: z6.array(HeaderNavLinkItemSchema)
|
|
3074
|
+
});
|
|
3075
|
+
HeaderNavItemSchema = z6.union([
|
|
3076
|
+
z6.object({
|
|
3077
|
+
label: z6.string(),
|
|
3078
|
+
icon: IconSchema2.optional(),
|
|
3079
|
+
to: z6.string(),
|
|
3080
|
+
target: z6.enum(["_self", "_blank"]).optional(),
|
|
3081
|
+
display: DisplaySchema
|
|
3082
|
+
}),
|
|
3083
|
+
z6.object({
|
|
3084
|
+
label: z6.string(),
|
|
3085
|
+
items: z6.array(z6.union([HeaderNavLinkItemSchema, HeaderNavGroupSchema]))
|
|
3086
|
+
})
|
|
3087
|
+
]);
|
|
3088
|
+
HeaderNavigationSchema = z6.array(HeaderNavItemSchema);
|
|
3089
|
+
}
|
|
3090
|
+
});
|
|
3091
|
+
|
|
3089
3092
|
// src/lib/util/joinUrl.ts
|
|
3090
3093
|
var defaultUrlRegExp, normalizeParts, parseParts, buildUrl, joinUrl;
|
|
3091
3094
|
var init_joinUrl = __esm({
|
|
@@ -4121,7 +4124,7 @@ import {
|
|
|
4121
4124
|
// package.json
|
|
4122
4125
|
var package_default = {
|
|
4123
4126
|
name: "@lukoweb/apitogo",
|
|
4124
|
-
version: "0.1.
|
|
4127
|
+
version: "0.1.40",
|
|
4125
4128
|
type: "module",
|
|
4126
4129
|
sideEffects: [
|
|
4127
4130
|
"**/*.css",
|
|
@@ -1960,6 +1960,18 @@ declare const HeaderNavLinkItemSchema: z.ZodObject<{
|
|
|
1960
1960
|
_self: "_self";
|
|
1961
1961
|
_blank: "_blank";
|
|
1962
1962
|
}>>;
|
|
1963
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
1964
|
+
auth: "auth";
|
|
1965
|
+
anon: "anon";
|
|
1966
|
+
always: "always";
|
|
1967
|
+
hide: "hide";
|
|
1968
|
+
}>, z.ZodCustom<(params: {
|
|
1969
|
+
context: import("../../index.js").ZudokuContext;
|
|
1970
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
1971
|
+
}) => boolean, (params: {
|
|
1972
|
+
context: import("../../index.js").ZudokuContext;
|
|
1973
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
1974
|
+
}) => boolean>]>>;
|
|
1963
1975
|
}, z.core.$strip>;
|
|
1964
1976
|
declare const HeaderNavGroupSchema: z.ZodObject<{
|
|
1965
1977
|
label: z.ZodString;
|
|
@@ -3924,6 +3936,18 @@ declare const HeaderNavGroupSchema: z.ZodObject<{
|
|
|
3924
3936
|
_self: "_self";
|
|
3925
3937
|
_blank: "_blank";
|
|
3926
3938
|
}>>;
|
|
3939
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
3940
|
+
auth: "auth";
|
|
3941
|
+
anon: "anon";
|
|
3942
|
+
always: "always";
|
|
3943
|
+
hide: "hide";
|
|
3944
|
+
}>, z.ZodCustom<(params: {
|
|
3945
|
+
context: import("../../index.js").ZudokuContext;
|
|
3946
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
3947
|
+
}) => boolean, (params: {
|
|
3948
|
+
context: import("../../index.js").ZudokuContext;
|
|
3949
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
3950
|
+
}) => boolean>]>>;
|
|
3927
3951
|
}, z.core.$strip>>;
|
|
3928
3952
|
}, z.core.$strip>;
|
|
3929
3953
|
declare const HeaderNavItemSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -5886,6 +5910,18 @@ declare const HeaderNavItemSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
5886
5910
|
_self: "_self";
|
|
5887
5911
|
_blank: "_blank";
|
|
5888
5912
|
}>>;
|
|
5913
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
5914
|
+
auth: "auth";
|
|
5915
|
+
anon: "anon";
|
|
5916
|
+
always: "always";
|
|
5917
|
+
hide: "hide";
|
|
5918
|
+
}>, z.ZodCustom<(params: {
|
|
5919
|
+
context: import("../../index.js").ZudokuContext;
|
|
5920
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
5921
|
+
}) => boolean, (params: {
|
|
5922
|
+
context: import("../../index.js").ZudokuContext;
|
|
5923
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
5924
|
+
}) => boolean>]>>;
|
|
5889
5925
|
}, z.core.$strip>, z.ZodObject<{
|
|
5890
5926
|
label: z.ZodString;
|
|
5891
5927
|
items: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -7849,6 +7885,18 @@ declare const HeaderNavItemSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
7849
7885
|
_self: "_self";
|
|
7850
7886
|
_blank: "_blank";
|
|
7851
7887
|
}>>;
|
|
7888
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
7889
|
+
auth: "auth";
|
|
7890
|
+
anon: "anon";
|
|
7891
|
+
always: "always";
|
|
7892
|
+
hide: "hide";
|
|
7893
|
+
}>, z.ZodCustom<(params: {
|
|
7894
|
+
context: import("../../index.js").ZudokuContext;
|
|
7895
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
7896
|
+
}) => boolean, (params: {
|
|
7897
|
+
context: import("../../index.js").ZudokuContext;
|
|
7898
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
7899
|
+
}) => boolean>]>>;
|
|
7852
7900
|
}, z.core.$strip>, z.ZodObject<{
|
|
7853
7901
|
label: z.ZodString;
|
|
7854
7902
|
items: z.ZodArray<z.ZodObject<{
|
|
@@ -9812,6 +9860,18 @@ declare const HeaderNavItemSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
9812
9860
|
_self: "_self";
|
|
9813
9861
|
_blank: "_blank";
|
|
9814
9862
|
}>>;
|
|
9863
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
9864
|
+
auth: "auth";
|
|
9865
|
+
anon: "anon";
|
|
9866
|
+
always: "always";
|
|
9867
|
+
hide: "hide";
|
|
9868
|
+
}>, z.ZodCustom<(params: {
|
|
9869
|
+
context: import("../../index.js").ZudokuContext;
|
|
9870
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
9871
|
+
}) => boolean, (params: {
|
|
9872
|
+
context: import("../../index.js").ZudokuContext;
|
|
9873
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
9874
|
+
}) => boolean>]>>;
|
|
9815
9875
|
}, z.core.$strip>>;
|
|
9816
9876
|
}, z.core.$strip>]>>;
|
|
9817
9877
|
}, z.core.$strip>]>;
|
|
@@ -11775,6 +11835,18 @@ export declare const HeaderNavigationSchema: z.ZodArray<z.ZodUnion<readonly [z.Z
|
|
|
11775
11835
|
_self: "_self";
|
|
11776
11836
|
_blank: "_blank";
|
|
11777
11837
|
}>>;
|
|
11838
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
11839
|
+
auth: "auth";
|
|
11840
|
+
anon: "anon";
|
|
11841
|
+
always: "always";
|
|
11842
|
+
hide: "hide";
|
|
11843
|
+
}>, z.ZodCustom<(params: {
|
|
11844
|
+
context: import("../../index.js").ZudokuContext;
|
|
11845
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
11846
|
+
}) => boolean, (params: {
|
|
11847
|
+
context: import("../../index.js").ZudokuContext;
|
|
11848
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
11849
|
+
}) => boolean>]>>;
|
|
11778
11850
|
}, z.core.$strip>, z.ZodObject<{
|
|
11779
11851
|
label: z.ZodString;
|
|
11780
11852
|
items: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -13738,6 +13810,18 @@ export declare const HeaderNavigationSchema: z.ZodArray<z.ZodUnion<readonly [z.Z
|
|
|
13738
13810
|
_self: "_self";
|
|
13739
13811
|
_blank: "_blank";
|
|
13740
13812
|
}>>;
|
|
13813
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
13814
|
+
auth: "auth";
|
|
13815
|
+
anon: "anon";
|
|
13816
|
+
always: "always";
|
|
13817
|
+
hide: "hide";
|
|
13818
|
+
}>, z.ZodCustom<(params: {
|
|
13819
|
+
context: import("../../index.js").ZudokuContext;
|
|
13820
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
13821
|
+
}) => boolean, (params: {
|
|
13822
|
+
context: import("../../index.js").ZudokuContext;
|
|
13823
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
13824
|
+
}) => boolean>]>>;
|
|
13741
13825
|
}, z.core.$strip>, z.ZodObject<{
|
|
13742
13826
|
label: z.ZodString;
|
|
13743
13827
|
items: z.ZodArray<z.ZodObject<{
|
|
@@ -15701,6 +15785,18 @@ export declare const HeaderNavigationSchema: z.ZodArray<z.ZodUnion<readonly [z.Z
|
|
|
15701
15785
|
_self: "_self";
|
|
15702
15786
|
_blank: "_blank";
|
|
15703
15787
|
}>>;
|
|
15788
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
15789
|
+
auth: "auth";
|
|
15790
|
+
anon: "anon";
|
|
15791
|
+
always: "always";
|
|
15792
|
+
hide: "hide";
|
|
15793
|
+
}>, z.ZodCustom<(params: {
|
|
15794
|
+
context: import("../../index.js").ZudokuContext;
|
|
15795
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
15796
|
+
}) => boolean, (params: {
|
|
15797
|
+
context: import("../../index.js").ZudokuContext;
|
|
15798
|
+
auth: import("../../lib/authentication/hook.js").UseAuthReturn;
|
|
15799
|
+
}) => boolean>]>>;
|
|
15704
15800
|
}, z.core.$strip>>;
|
|
15705
15801
|
}, z.core.$strip>]>>;
|
|
15706
15802
|
}, z.core.$strip>]>>;
|
|
@@ -2487,6 +2487,18 @@ export declare const ZudokuConfig: z.ZodObject<{
|
|
|
2487
2487
|
_self: "_self";
|
|
2488
2488
|
_blank: "_blank";
|
|
2489
2489
|
}>>;
|
|
2490
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
2491
|
+
auth: "auth";
|
|
2492
|
+
anon: "anon";
|
|
2493
|
+
always: "always";
|
|
2494
|
+
hide: "hide";
|
|
2495
|
+
}>, z.ZodCustom<(params: {
|
|
2496
|
+
context: ZudokuContext;
|
|
2497
|
+
auth: UseAuthReturn;
|
|
2498
|
+
}) => boolean, (params: {
|
|
2499
|
+
context: ZudokuContext;
|
|
2500
|
+
auth: UseAuthReturn;
|
|
2501
|
+
}) => boolean>]>>;
|
|
2490
2502
|
}, z.core.$strip>, z.ZodObject<{
|
|
2491
2503
|
label: z.ZodString;
|
|
2492
2504
|
items: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -4450,6 +4462,18 @@ export declare const ZudokuConfig: z.ZodObject<{
|
|
|
4450
4462
|
_self: "_self";
|
|
4451
4463
|
_blank: "_blank";
|
|
4452
4464
|
}>>;
|
|
4465
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
4466
|
+
auth: "auth";
|
|
4467
|
+
anon: "anon";
|
|
4468
|
+
always: "always";
|
|
4469
|
+
hide: "hide";
|
|
4470
|
+
}>, z.ZodCustom<(params: {
|
|
4471
|
+
context: ZudokuContext;
|
|
4472
|
+
auth: UseAuthReturn;
|
|
4473
|
+
}) => boolean, (params: {
|
|
4474
|
+
context: ZudokuContext;
|
|
4475
|
+
auth: UseAuthReturn;
|
|
4476
|
+
}) => boolean>]>>;
|
|
4453
4477
|
}, z.core.$strip>, z.ZodObject<{
|
|
4454
4478
|
label: z.ZodString;
|
|
4455
4479
|
items: z.ZodArray<z.ZodObject<{
|
|
@@ -6413,6 +6437,18 @@ export declare const ZudokuConfig: z.ZodObject<{
|
|
|
6413
6437
|
_self: "_self";
|
|
6414
6438
|
_blank: "_blank";
|
|
6415
6439
|
}>>;
|
|
6440
|
+
display: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
6441
|
+
auth: "auth";
|
|
6442
|
+
anon: "anon";
|
|
6443
|
+
always: "always";
|
|
6444
|
+
hide: "hide";
|
|
6445
|
+
}>, z.ZodCustom<(params: {
|
|
6446
|
+
context: ZudokuContext;
|
|
6447
|
+
auth: UseAuthReturn;
|
|
6448
|
+
}) => boolean, (params: {
|
|
6449
|
+
context: ZudokuContext;
|
|
6450
|
+
auth: UseAuthReturn;
|
|
6451
|
+
}) => boolean>]>>;
|
|
6416
6452
|
}, z.core.$strip>>;
|
|
6417
6453
|
}, z.core.$strip>]>>;
|
|
6418
6454
|
}, z.core.$strip>]>>>;
|
|
@@ -18,7 +18,6 @@ export declare class DevPortalAuthenticationProvider extends CoreAuthenticationP
|
|
|
18
18
|
private readonly redirectToAfterSignIn;
|
|
19
19
|
private readonly redirectToAfterSignUp;
|
|
20
20
|
private readonly redirectToAfterSignOut;
|
|
21
|
-
private authMode;
|
|
22
21
|
private backendAvailable;
|
|
23
22
|
private refreshGeneration;
|
|
24
23
|
private refreshInFlight;
|
|
@@ -27,7 +26,7 @@ export declare class DevPortalAuthenticationProvider extends CoreAuthenticationP
|
|
|
27
26
|
onPageLoad: () => Promise<void>;
|
|
28
27
|
private syncBackendAvailability;
|
|
29
28
|
private setPreviewState;
|
|
30
|
-
private
|
|
29
|
+
private ensureConfiguredBackend;
|
|
31
30
|
refreshUserProfile(): Promise<boolean>;
|
|
32
31
|
private refreshUserProfileInternal;
|
|
33
32
|
signIn(_: AuthActionContext, { redirectTo }?: AuthActionOptions): Promise<void>;
|
package/dist/flat-config.d.ts
CHANGED
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
export type _Schema1 = ("a-arrow-down" | "a-arrow-up" | "a-large-small" | "accessibility" | "activity" | "activity-square" | "air-vent" | "airplay" | "alarm-check" | "alarm-clock" | "alarm-clock-check" | "alarm-clock-minus" | "alarm-clock-off" | "alarm-clock-plus" | "alarm-minus" | "alarm-plus" | "alarm-smoke" | "album" | "alert-circle" | "alert-octagon" | "alert-triangle" | "align-center" | "align-center-horizontal" | "align-center-vertical" | "align-end-horizontal" | "align-end-vertical" | "align-horizontal-distribute-center" | "align-horizontal-distribute-end" | "align-horizontal-distribute-start" | "align-horizontal-justify-center" | "align-horizontal-justify-end" | "align-horizontal-justify-start" | "align-horizontal-space-around" | "align-horizontal-space-between" | "align-justify" | "align-left" | "align-right" | "align-start-horizontal" | "align-start-vertical" | "align-vertical-distribute-center" | "align-vertical-distribute-end" | "align-vertical-distribute-start" | "align-vertical-justify-center" | "align-vertical-justify-end" | "align-vertical-justify-start" | "align-vertical-space-around" | "align-vertical-space-between" | "ambulance" | "ampersand" | "ampersands" | "amphora" | "anchor" | "angry" | "annoyed" | "antenna" | "anvil" | "aperture" | "app-window" | "app-window-mac" | "apple" | "archive" | "archive-restore" | "archive-x" | "area-chart" | "armchair" | "arrow-big-down" | "arrow-big-down-dash" | "arrow-big-left" | "arrow-big-left-dash" | "arrow-big-right" | "arrow-big-right-dash" | "arrow-big-up" | "arrow-big-up-dash" | "arrow-down" | "arrow-down-0-1" | "arrow-down-01" | "arrow-down-1-0" | "arrow-down-10" | "arrow-down-a-z" | "arrow-down-az" | "arrow-down-circle" | "arrow-down-from-line" | "arrow-down-left" | "arrow-down-left-from-circle" | "arrow-down-left-from-square" | "arrow-down-left-square" | "arrow-down-narrow-wide" | "arrow-down-right" | "arrow-down-right-from-circle" | "arrow-down-right-from-square" | "arrow-down-right-square" | "arrow-down-square" | "arrow-down-to-dot" | "arrow-down-to-line" | "arrow-down-up" | "arrow-down-wide-narrow" | "arrow-down-z-a" | "arrow-down-za" | "arrow-left" | "arrow-left-circle" | "arrow-left-from-line" | "arrow-left-right" | "arrow-left-square" | "arrow-left-to-line" | "arrow-right" | "arrow-right-circle" | "arrow-right-from-line" | "arrow-right-left" | "arrow-right-square" | "arrow-right-to-line" | "arrow-up" | "arrow-up-0-1" | "arrow-up-01" | "arrow-up-1-0" | "arrow-up-10" | "arrow-up-a-z" | "arrow-up-az" | "arrow-up-circle" | "arrow-up-down" | "arrow-up-from-dot" | "arrow-up-from-line" | "arrow-up-left" | "arrow-up-left-from-circle" | "arrow-up-left-from-square" | "arrow-up-left-square" | "arrow-up-narrow-wide" | "arrow-up-right" | "arrow-up-right-from-circle" | "arrow-up-right-from-square" | "arrow-up-right-square" | "arrow-up-square" | "arrow-up-to-line" | "arrow-up-wide-narrow" | "arrow-up-z-a" | "arrow-up-za" | "arrows-up-from-line" | "asterisk" | "asterisk-square" | "at-sign" | "atom" | "audio-lines" | "audio-waveform" | "award" | "axe" | "axis-3-d" | "axis-3d" | "baby" | "backpack" | "badge" | "badge-alert" | "badge-cent" | "badge-check" | "badge-dollar-sign" | "badge-euro" | "badge-help" | "badge-indian-rupee" | "badge-info" | "badge-japanese-yen" | "badge-minus" | "badge-percent" | "badge-plus" | "badge-pound-sterling" | "badge-question-mark" | "badge-russian-ruble" | "badge-swiss-franc" | "badge-turkish-lira" | "badge-x" | "baggage-claim" | "balloon" | "ban" | "banana" | "bandage" | "banknote" | "banknote-arrow-down" | "banknote-arrow-up" | "banknote-x" | "bar-chart" | "bar-chart-2" | "bar-chart-3" | "bar-chart-4" | "bar-chart-big" | "bar-chart-horizontal" | "bar-chart-horizontal-big" | "barcode" | "barrel" | "baseline" | "bath" | "battery" | "battery-charging" | "battery-full" | "battery-low" | "battery-medium" | "battery-plus" | "battery-warning" | "beaker" | "bean" | "bean-off" | "bed" | "bed-double" | "bed-single" | "beef" | "beer" | "beer-off" | "bell" | "bell-dot" | "bell-electric" | "bell-minus" | "bell-off" | "bell-plus" | "bell-ring" | "between-horizonal-end" | "between-horizonal-start" | "between-horizontal-end" | "between-horizontal-start" | "between-vertical-end" | "between-vertical-start" | "biceps-flexed" | "bike" | "binary" | "binoculars" | "biohazard" | "bird" | "birdhouse" | "bitcoin" | "blend" | "blinds" | "blocks" | "bluetooth" | "bluetooth-connected" | "bluetooth-off" | "bluetooth-searching" | "bold" | "bolt" | "bomb" | "bone" | "book" | "book-a" | "book-alert" | "book-audio" | "book-check" | "book-copy" | "book-dashed" | "book-down" | "book-headphones" | "book-heart" | "book-image" | "book-key" | "book-lock" | "book-marked" | "book-minus" | "book-open" | "book-open-check" | "book-open-text" | "book-plus" | "book-search" | "book-template" | "book-text" | "book-type" | "book-up" | "book-up-2" | "book-user" | "book-x" | "bookmark" | "bookmark-check" | "bookmark-minus" | "bookmark-plus" | "bookmark-x" | "boom-box" | "bot" | "bot-message-square" | "bot-off" | "bottle-wine" | "bow-arrow" | "box" | "box-select" | "boxes" | "braces" | "brackets" | "brain" | "brain-circuit" | "brain-cog" | "brick-wall" | "brick-wall-fire" | "brick-wall-shield" | "briefcase" | "briefcase-business" | "briefcase-conveyor-belt" | "briefcase-medical" | "bring-to-front" | "brush" | "brush-cleaning" | "bubbles" | "bug" | "bug-off" | "bug-play" | "building" | "building-2" | "bus" | "bus-front" | "cable" | "cable-car" | "cake" | "cake-slice" | "calculator" | "calendar" | "calendar-1" | "calendar-arrow-down" | "calendar-arrow-up" | "calendar-check" | "calendar-check-2" | "calendar-clock" | "calendar-cog" | "calendar-days" | "calendar-fold" | "calendar-heart" | "calendar-minus" | "calendar-minus-2" | "calendar-off" | "calendar-plus" | "calendar-plus-2" | "calendar-range" | "calendar-search" | "calendar-sync" | "calendar-x" | "calendar-x-2" | "calendars" | "camera" | "camera-off" | "candlestick-chart" | "candy" | "candy-cane" | "candy-off" | "cannabis" | "cannabis-off" | "captions" | "captions-off" | "car" | "car-front" | "car-taxi-front" | "caravan" | "card-sim" | "carrot" | "case-lower" | "case-sensitive" | "case-upper" | "cassette-tape" | "cast" | "castle" | "cat" | "cctv" | "chart-area" | "chart-bar" | "chart-bar-big" | "chart-bar-decreasing" | "chart-bar-increasing" | "chart-bar-stacked" | "chart-candlestick" | "chart-column" | "chart-column-big" | "chart-column-decreasing" | "chart-column-increasing" | "chart-column-stacked" | "chart-gantt" | "chart-line" | "chart-network" | "chart-no-axes-column" | "chart-no-axes-column-decreasing" | "chart-no-axes-column-increasing" | "chart-no-axes-combined" | "chart-no-axes-gantt" | "chart-pie" | "chart-scatter" | "chart-spline" | "check" | "check-check" | "check-circle" | "check-circle-2" | "check-line" | "check-square" | "check-square-2" | "chef-hat" | "cherry" | "chess-bishop" | "chess-king" | "chess-knight" | "chess-pawn" | "chess-queen" | "chess-rook" | "chevron-down" | "chevron-down-circle" | "chevron-down-square" | "chevron-first" | "chevron-last" | "chevron-left" | "chevron-left-circle" | "chevron-left-square" | "chevron-right" | "chevron-right-circle" | "chevron-right-square" | "chevron-up" | "chevron-up-circle" | "chevron-up-square" | "chevrons-down" | "chevrons-down-up" | "chevrons-left" | "chevrons-left-right" | "chevrons-left-right-ellipsis" | "chevrons-right" | "chevrons-right-left" | "chevrons-up" | "chevrons-up-down" | "chrome" | "chromium" | "church" | "cigarette" | "cigarette-off" | "circle" | "circle-alert" | "circle-arrow-down" | "circle-arrow-left" | "circle-arrow-out-down-left" | "circle-arrow-out-down-right" | "circle-arrow-out-up-left" | "circle-arrow-out-up-right" | "circle-arrow-right" | "circle-arrow-up" | "circle-check" | "circle-check-big" | "circle-chevron-down" | "circle-chevron-left" | "circle-chevron-right" | "circle-chevron-up" | "circle-dashed" | "circle-divide" | "circle-dollar-sign" | "circle-dot" | "circle-dot-dashed" | "circle-ellipsis" | "circle-equal" | "circle-fading-arrow-up" | "circle-fading-plus" | "circle-gauge" | "circle-help" | "circle-minus" | "circle-off" | "circle-parking" | "circle-parking-off" | "circle-pause" | "circle-percent" | "circle-pile" | "circle-play" | "circle-plus" | "circle-pound-sterling" | "circle-power" | "circle-question-mark" | "circle-slash" | "circle-slash-2" | "circle-slashed" | "circle-small" | "circle-star" | "circle-stop" | "circle-user" | "circle-user-round" | "circle-x" | "circuit-board" | "citrus" | "clapperboard" | "clipboard" | "clipboard-check" | "clipboard-clock" | "clipboard-copy" | "clipboard-edit" | "clipboard-list" | "clipboard-minus" | "clipboard-paste" | "clipboard-pen" | "clipboard-pen-line" | "clipboard-plus" | "clipboard-signature" | "clipboard-type" | "clipboard-x" | "clock" | "clock-1" | "clock-10" | "clock-11" | "clock-12" | "clock-2" | "clock-3" | "clock-4" | "clock-5" | "clock-6" | "clock-7" | "clock-8" | "clock-9" | "clock-alert" | "clock-arrow-down" | "clock-arrow-up" | "clock-check" | "clock-fading" | "clock-plus" | "closed-caption" | "cloud" | "cloud-alert" | "cloud-backup" | "cloud-check" | "cloud-cog" | "cloud-download" | "cloud-drizzle" | "cloud-fog" | "cloud-hail" | "cloud-lightning" | "cloud-moon" | "cloud-moon-rain" | "cloud-off" | "cloud-rain" | "cloud-rain-wind" | "cloud-snow" | "cloud-sun" | "cloud-sun-rain" | "cloud-sync" | "cloud-upload" | "cloudy" | "clover" | "club" | "code" | "code-2" | "code-square" | "code-xml" | "codepen" | "codesandbox" | "coffee" | "cog" | "coins" | "columns" | "columns-2" | "columns-3" | "columns-3-cog" | "columns-4" | "columns-settings" | "combine" | "command" | "compass" | "component" | "computer" | "concierge-bell" | "cone" | "construction" | "contact" | "contact-2" | "contact-round" | "container" | "contrast" | "cookie" | "cooking-pot" | "copy" | "copy-check" | "copy-minus" | "copy-plus" | "copy-slash" | "copy-x" | "copyleft" | "copyright" | "corner-down-left" | "corner-down-right" | "corner-left-down" | "corner-left-up" | "corner-right-down" | "corner-right-up" | "corner-up-left" | "corner-up-right" | "cpu" | "creative-commons" | "credit-card" | "croissant" | "crop" | "cross" | "crosshair" | "crown" | "cuboid" | "cup-soda" | "curly-braces" | "currency" | "cylinder" | "dam" | "database" | "database-backup" | "database-search" | "database-zap" | "decimals-arrow-left" | "decimals-arrow-right" | "delete" | "dessert" | "diameter" | "diamond" | "diamond-minus" | "diamond-percent" | "diamond-plus" | "dice-1" | "dice-2" | "dice-3" | "dice-4" | "dice-5" | "dice-6" | "dices" | "diff" | "disc" | "disc-2" | "disc-3" | "disc-album" | "divide" | "divide-circle" | "divide-square" | "dna" | "dna-off" | "dock" | "dog" | "dollar-sign" | "donut" | "door-closed" | "door-closed-locked" | "door-open" | "dot" | "dot-square" | "download" | "download-cloud" | "drafting-compass" | "drama" | "dribbble" | "drill" | "drone" | "droplet" | "droplet-off" | "droplets" | "drum" | "drumstick" | "dumbbell" | "ear" | "ear-off" | "earth" | "earth-lock" | "eclipse" | "edit" | "edit-2" | "edit-3" | "egg" | "egg-fried" | "egg-off" | "ellipse" | "ellipsis" | "ellipsis-vertical" | "equal" | "equal-approximately" | "equal-not" | "equal-square" | "eraser" | "ethernet-port" | "euro" | "ev-charger" | "expand" | "external-link" | "eye" | "eye-closed" | "eye-off" | "facebook" | "factory" | "fan" | "fast-forward" | "feather" | "fence" | "ferris-wheel" | "figma" | "file" | "file-archive" | "file-audio" | "file-audio-2" | "file-axis-3-d" | "file-axis-3d" | "file-badge" | "file-badge-2" | "file-bar-chart" | "file-bar-chart-2" | "file-box" | "file-braces" | "file-braces-corner" | "file-chart-column" | "file-chart-column-increasing" | "file-chart-line" | "file-chart-pie" | "file-check" | "file-check-2" | "file-check-corner" | "file-clock" | "file-code" | "file-code-2" | "file-code-corner" | "file-cog" | "file-cog-2" | "file-diff" | "file-digit" | "file-down" | "file-edit" | "file-exclamation-point" | "file-headphone" | "file-heart" | "file-image" | "file-input" | "file-json" | "file-json-2" | "file-key" | "file-key-2" | "file-line-chart" | "file-lock" | "file-lock-2" | "file-minus" | "file-minus-2" | "file-minus-corner" | "file-music" | "file-output" | "file-pen" | "file-pen-line" | "file-pie-chart" | "file-play" | "file-plus" | "file-plus-2" | "file-plus-corner" | "file-question" | "file-question-mark" | "file-scan" | "file-search" | "file-search-2" | "file-search-corner" | "file-signal" | "file-signature" | "file-sliders" | "file-spreadsheet" | "file-stack" | "file-symlink" | "file-terminal" | "file-text" | "file-type" | "file-type-2" | "file-type-corner" | "file-up" | "file-user" | "file-video" | "file-video-2" | "file-video-camera" | "file-volume" | "file-volume-2" | "file-warning" | "file-x" | "file-x-2" | "file-x-corner" | "files" | "film" | "filter" | "filter-x" | "fingerprint" | "fingerprint-pattern" | "fire-extinguisher" | "fish" | "fish-off" | "fish-symbol" | "fishing-hook" | "fishing-rod" | "flag" | "flag-off" | "flag-triangle-left" | "flag-triangle-right" | "flame" | "flame-kindling" | "flashlight" | "flashlight-off" | "flask-conical" | "flask-conical-off" | "flask-round" | "flip-horizontal" | "flip-horizontal-2" | "flip-vertical" | "flip-vertical-2" | "flower" | "flower-2" | "focus" | "fold-horizontal" | "fold-vertical" | "folder" | "folder-archive" | "folder-check" | "folder-clock" | "folder-closed" | "folder-code" | "folder-cog" | "folder-cog-2" | "folder-dot" | "folder-down" | "folder-edit" | "folder-git" | "folder-git-2" | "folder-heart" | "folder-input" | "folder-kanban" | "folder-key" | "folder-lock" | "folder-minus" | "folder-open" | "folder-open-dot" | "folder-output" | "folder-pen" | "folder-plus" | "folder-root" | "folder-search" | "folder-search-2" | "folder-symlink" | "folder-sync" | "folder-tree" | "folder-up" | "folder-x" | "folders" | "footprints" | "fork-knife" | "fork-knife-crossed" | "forklift" | "form" | "form-input" | "forward" | "frame" | "framer" | "frown" | "fuel" | "fullscreen" | "function-square" | "funnel" | "funnel-plus" | "funnel-x" | "gallery-horizontal" | "gallery-horizontal-end" | "gallery-thumbnails" | "gallery-vertical" | "gallery-vertical-end" | "gamepad" | "gamepad-2" | "gamepad-directional" | "gantt-chart" | "gantt-chart-square" | "gauge" | "gauge-circle" | "gavel" | "gem" | "georgian-lari" | "ghost" | "gift" | "git-branch" | "git-branch-minus" | "git-branch-plus" | "git-commit" | "git-commit-horizontal" | "git-commit-vertical" | "git-compare" | "git-compare-arrows" | "git-fork" | "git-graph" | "git-merge" | "git-merge-conflict" | "git-pull-request" | "git-pull-request-arrow" | "git-pull-request-closed" | "git-pull-request-create" | "git-pull-request-create-arrow" | "git-pull-request-draft" | "github" | "gitlab" | "glass-water" | "glasses" | "globe" | "globe-2" | "globe-lock" | "globe-off" | "globe-x" | "goal" | "gpu" | "grab" | "graduation-cap" | "grape" | "grid" | "grid-2-x-2" | "grid-2-x-2-check" | "grid-2-x-2-plus" | "grid-2-x-2-x" | "grid-2x2" | "grid-2x2-check" | "grid-2x2-plus" | "grid-2x2-x" | "grid-3-x-3" | "grid-3x2" | "grid-3x3" | "grip" | "grip-horizontal" | "grip-vertical" | "group" | "guitar" | "ham" | "hamburger" | "hammer" | "hand" | "hand-coins" | "hand-fist" | "hand-grab" | "hand-heart" | "hand-helping" | "hand-metal" | "hand-platter" | "handbag" | "handshake" | "hard-drive" | "hard-drive-download" | "hard-drive-upload" | "hard-hat" | "hash" | "hat-glasses" | "haze" | "hd" | "hdmi-port" | "heading" | "heading-1" | "heading-2" | "heading-3" | "heading-4" | "heading-5" | "heading-6" | "headphone-off" | "headphones" | "headset" | "heart" | "heart-crack" | "heart-handshake" | "heart-minus" | "heart-off" | "heart-plus" | "heart-pulse" | "heater" | "helicopter" | "help-circle" | "helping-hand" | "hexagon" | "highlighter" | "history" | "home" | "hop" | "hop-off" | "hospital" | "hotel" | "hourglass" | "house" | "house-heart" | "house-plug" | "house-plus" | "house-wifi" | "ice-cream" | "ice-cream-2" | "ice-cream-bowl" | "ice-cream-cone" | "id-card" | "id-card-lanyard" | "image" | "image-down" | "image-minus" | "image-off" | "image-play" | "image-plus" | "image-up" | "image-upscale" | "images" | "import" | "inbox" | "indent" | "indent-decrease" | "indent-increase" | "indian-rupee" | "infinity" | "info" | "inspect" | "inspection-panel" | "instagram" | "italic" | "iteration-ccw" | "iteration-cw" | "japanese-yen" | "joystick" | "kanban" | "kanban-square" | "kanban-square-dashed" | "kayak" | "key" | "key-round" | "key-square" | "keyboard" | "keyboard-music" | "keyboard-off" | "lamp" | "lamp-ceiling" | "lamp-desk" | "lamp-floor" | "lamp-wall-down" | "lamp-wall-up" | "land-plot" | "landmark" | "languages" | "laptop" | "laptop-2" | "laptop-minimal" | "laptop-minimal-check" | "lasso" | "lasso-select" | "laugh" | "layers" | "layers-2" | "layers-3" | "layers-plus" | "layout" | "layout-dashboard" | "layout-grid" | "layout-list" | "layout-panel-left" | "layout-panel-top" | "layout-template" | "leaf" | "leafy-green" | "lectern" | "lens-concave" | "lens-convex" | "letter-text" | "library" | "library-big" | "library-square" | "life-buoy" | "ligature" | "lightbulb" | "lightbulb-off" | "line-chart" | "line-dot-right-horizontal" | "line-squiggle" | "link" | "link-2" | "link-2-off" | "linkedin" | "list" | "list-check" | "list-checks" | "list-chevrons-down-up" | "list-chevrons-up-down" | "list-collapse" | "list-end" | "list-filter" | "list-filter-plus" | "list-indent-decrease" | "list-indent-increase" | "list-minus" | "list-music" | "list-ordered" | "list-plus" | "list-restart" | "list-start" | "list-todo" | "list-tree" | "list-video" | "list-x" | "loader" | "loader-2" | "loader-circle" | "loader-pinwheel" | "locate" | "locate-fixed" | "locate-off" | "location-edit" | "lock" | "lock-keyhole" | "lock-keyhole-open" | "lock-open" | "log-in" | "log-out" | "logs" | "lollipop" | "luggage" | "m-square" | "magnet" | "mail" | "mail-check" | "mail-minus" | "mail-open" | "mail-plus" | "mail-question" | "mail-question-mark" | "mail-search" | "mail-warning" | "mail-x" | "mailbox" | "mails" | "map" | "map-minus" | "map-pin" | "map-pin-check" | "map-pin-check-inside" | "map-pin-house" | "map-pin-minus" | "map-pin-minus-inside" | "map-pin-off" | "map-pin-pen" | "map-pin-plus" | "map-pin-plus-inside" | "map-pin-x" | "map-pin-x-inside" | "map-pinned" | "map-plus" | "mars" | "mars-stroke" | "martini" | "maximize" | "maximize-2" | "medal" | "megaphone" | "megaphone-off" | "meh" | "memory-stick" | "menu" | "menu-square" | "merge" | "message-circle" | "message-circle-check" | "message-circle-code" | "message-circle-dashed" | "message-circle-heart" | "message-circle-more" | "message-circle-off" | "message-circle-plus" | "message-circle-question" | "message-circle-question-mark" | "message-circle-reply" | "message-circle-warning" | "message-circle-x" | "message-square" | "message-square-check" | "message-square-code" | "message-square-dashed" | "message-square-diff" | "message-square-dot" | "message-square-heart" | "message-square-lock" | "message-square-more" | "message-square-off" | "message-square-plus" | "message-square-quote" | "message-square-reply" | "message-square-share" | "message-square-text" | "message-square-warning" | "message-square-x" | "messages-square" | "metronome" | "mic" | "mic-2" | "mic-off" | "mic-vocal" | "microchip" | "microscope" | "microwave" | "milestone" | "milk" | "milk-off" | "minimize" | "minimize-2" | "minus" | "minus-circle" | "minus-square" | "mirror-rectangular" | "mirror-round" | "monitor" | "monitor-check" | "monitor-cloud" | "monitor-cog" | "monitor-dot" | "monitor-down" | "monitor-off" | "monitor-pause" | "monitor-play" | "monitor-smartphone" | "monitor-speaker" | "monitor-stop" | "monitor-up" | "monitor-x" | "moon" | "moon-star" | "more-horizontal" | "more-vertical" | "motorbike" | "mountain" | "mountain-snow" | "mouse" | "mouse-left" | "mouse-off" | "mouse-pointer" | "mouse-pointer-2" | "mouse-pointer-2-off" | "mouse-pointer-ban" | "mouse-pointer-click" | "mouse-pointer-square-dashed" | "mouse-right" | "move" | "move-3-d" | "move-3d" | "move-diagonal" | "move-diagonal-2" | "move-down" | "move-down-left" | "move-down-right" | "move-horizontal" | "move-left" | "move-right" | "move-up" | "move-up-left" | "move-up-right" | "move-vertical" | "music" | "music-2" | "music-3" | "music-4" | "navigation" | "navigation-2" | "navigation-2-off" | "navigation-off" | "network" | "newspaper" | "nfc" | "non-binary" | "notebook" | "notebook-pen" | "notebook-tabs" | "notebook-text" | "notepad-text" | "notepad-text-dashed" | "nut" | "nut-off" | "octagon" | "octagon-alert" | "octagon-minus" | "octagon-pause" | "octagon-x" | "omega" | "option" | "orbit" | "origami" | "outdent" | "package" | "package-2" | "package-check" | "package-minus" | "package-open" | "package-plus" | "package-search" | "package-x" | "paint-bucket" | "paint-roller" | "paintbrush" | "paintbrush-2" | "paintbrush-vertical" | "palette" | "palmtree" | "panda" | "panel-bottom" | "panel-bottom-close" | "panel-bottom-dashed" | "panel-bottom-inactive" | "panel-bottom-open" | "panel-left" | "panel-left-close" | "panel-left-dashed" | "panel-left-inactive" | "panel-left-open" | "panel-left-right-dashed" | "panel-right" | "panel-right-close" | "panel-right-dashed" | "panel-right-inactive" | "panel-right-open" | "panel-top" | "panel-top-bottom-dashed" | "panel-top-close" | "panel-top-dashed" | "panel-top-inactive" | "panel-top-open" | "panels-left-bottom" | "panels-left-right" | "panels-right-bottom" | "panels-top-bottom" | "panels-top-left" | "paperclip" | "parentheses" | "parking-circle" | "parking-circle-off" | "parking-meter" | "parking-square" | "parking-square-off" | "party-popper" | "pause" | "pause-circle" | "pause-octagon" | "paw-print" | "pc-case" | "pen" | "pen-box" | "pen-line" | "pen-off" | "pen-square" | "pen-tool" | "pencil" | "pencil-line" | "pencil-off" | "pencil-ruler" | "pentagon" | "percent" | "percent-circle" | "percent-diamond" | "percent-square" | "person-standing" | "philippine-peso" | "phone" | "phone-call" | "phone-forwarded" | "phone-incoming" | "phone-missed" | "phone-off" | "phone-outgoing" | "pi" | "pi-square" | "piano" | "pickaxe" | "picture-in-picture" | "picture-in-picture-2" | "pie-chart" | "piggy-bank" | "pilcrow" | "pilcrow-left" | "pilcrow-right" | "pilcrow-square" | "pill" | "pill-bottle" | "pin" | "pin-off" | "pipette" | "pizza" | "plane" | "plane-landing" | "plane-takeoff" | "play" | "play-circle" | "play-square" | "plug" | "plug-2" | "plug-zap" | "plug-zap-2" | "plus" | "plus-circle" | "plus-square" | "pocket" | "pocket-knife" | "podcast" | "pointer" | "pointer-off" | "popcorn" | "popsicle" | "pound-sterling" | "power" | "power-circle" | "power-off" | "power-square" | "presentation" | "printer" | "printer-check" | "printer-x" | "projector" | "proportions" | "puzzle" | "pyramid" | "qr-code" | "quote" | "rabbit" | "radar" | "radiation" | "radical" | "radio" | "radio-receiver" | "radio-tower" | "radius" | "rail-symbol" | "rainbow" | "rat" | "ratio" | "receipt" | "receipt-cent" | "receipt-euro" | "receipt-indian-rupee" | "receipt-japanese-yen" | "receipt-pound-sterling" | "receipt-russian-ruble" | "receipt-swiss-franc" | "receipt-text" | "receipt-turkish-lira" | "rectangle-circle" | "rectangle-ellipsis" | "rectangle-goggles" | "rectangle-horizontal" | "rectangle-vertical" | "recycle" | "redo" | "redo-2" | "redo-dot" | "refresh-ccw" | "refresh-ccw-dot" | "refresh-cw" | "refresh-cw-off" | "refrigerator" | "regex" | "remove-formatting" | "repeat" | "repeat-1" | "repeat-2" | "replace" | "replace-all" | "reply" | "reply-all" | "rewind" | "ribbon" | "rocket" | "rocking-chair" | "roller-coaster" | "rose" | "rotate-3-d" | "rotate-3d" | "rotate-ccw" | "rotate-ccw-key" | "rotate-ccw-square" | "rotate-cw" | "rotate-cw-square" | "route" | "route-off" | "router" | "rows" | "rows-2" | "rows-3" | "rows-4" | "rss" | "ruler" | "ruler-dimension-line" | "russian-ruble" | "sailboat" | "salad" | "sandwich" | "satellite" | "satellite-dish" | "saudi-riyal" | "save" | "save-all" | "save-off" | "scale" | "scale-3-d" | "scale-3d" | "scaling" | "scan" | "scan-barcode" | "scan-eye" | "scan-face" | "scan-heart" | "scan-line" | "scan-qr-code" | "scan-search" | "scan-text" | "scatter-chart" | "school" | "school-2" | "scissors" | "scissors-line-dashed" | "scissors-square" | "scissors-square-dashed-bottom" | "scooter" | "screen-share" | "screen-share-off" | "scroll" | "scroll-text" | "search" | "search-alert" | "search-check" | "search-code" | "search-slash" | "search-x" | "section" | "send" | "send-horizonal" | "send-horizontal" | "send-to-back" | "separator-horizontal" | "separator-vertical" | "server" | "server-cog" | "server-crash" | "server-off" | "settings" | "settings-2" | "shapes" | "share" | "share-2" | "sheet" | "shell" | "shelving-unit" | "shield" | "shield-alert" | "shield-ban" | "shield-check" | "shield-close" | "shield-ellipsis" | "shield-half" | "shield-minus" | "shield-off" | "shield-plus" | "shield-question" | "shield-question-mark" | "shield-user" | "shield-x" | "ship" | "ship-wheel" | "shirt" | "shopping-bag" | "shopping-basket" | "shopping-cart" | "shovel" | "shower-head" | "shredder" | "shrimp" | "shrink" | "shrub" | "shuffle" | "sidebar" | "sidebar-close" | "sidebar-open" | "sigma" | "sigma-square" | "signal" | "signal-high" | "signal-low" | "signal-medium" | "signal-zero" | "signature" | "signpost" | "signpost-big" | "siren" | "skip-back" | "skip-forward" | "skull" | "slack" | "slash" | "slash-square" | "slice" | "sliders" | "sliders-horizontal" | "sliders-vertical" | "smartphone" | "smartphone-charging" | "smartphone-nfc" | "smile" | "smile-plus" | "snail" | "snowflake" | "soap-dispenser-droplet" | "sofa" | "solar-panel" | "sort-asc" | "sort-desc" | "soup" | "space" | "spade" | "sparkle" | "sparkles" | "speaker" | "speech" | "spell-check" | "spell-check-2" | "spline" | "spline-pointer" | "split" | "split-square-horizontal" | "split-square-vertical" | "spool" | "spotlight" | "spray-can" | "sprout" | "square" | "square-activity" | "square-arrow-down" | "square-arrow-down-left" | "square-arrow-down-right" | "square-arrow-left" | "square-arrow-out-down-left" | "square-arrow-out-down-right" | "square-arrow-out-up-left" | "square-arrow-out-up-right" | "square-arrow-right" | "square-arrow-right-enter" | "square-arrow-right-exit" | "square-arrow-up" | "square-arrow-up-left" | "square-arrow-up-right" | "square-asterisk" | "square-bottom-dashed-scissors" | "square-centerline-dashed-horizontal" | "square-centerline-dashed-vertical" | "square-chart-gantt" | "square-check" | "square-check-big" | "square-chevron-down" | "square-chevron-left" | "square-chevron-right" | "square-chevron-up" | "square-code" | "square-dashed" | "square-dashed-bottom" | "square-dashed-bottom-code" | "square-dashed-kanban" | "square-dashed-mouse-pointer" | "square-dashed-top-solid" | "square-divide" | "square-dot" | "square-equal" | "square-function" | "square-gantt-chart" | "square-kanban" | "square-library" | "square-m" | "square-menu" | "square-minus" | "square-mouse-pointer" | "square-parking" | "square-parking-off" | "square-pause" | "square-pen" | "square-percent" | "square-pi" | "square-pilcrow" | "square-play" | "square-plus" | "square-power" | "square-radical" | "square-round-corner" | "square-scissors" | "square-sigma" | "square-slash" | "square-split-horizontal" | "square-split-vertical" | "square-square" | "square-stack" | "square-star" | "square-stop" | "square-terminal" | "square-user" | "square-user-round" | "square-x" | "squares-exclude" | "squares-intersect" | "squares-subtract" | "squares-unite" | "squircle" | "squircle-dashed" | "squirrel" | "stamp" | "star" | "star-half" | "star-off" | "stars" | "step-back" | "step-forward" | "stethoscope" | "sticker" | "sticky-note" | "stone" | "stop-circle" | "store" | "stretch-horizontal" | "stretch-vertical" | "strikethrough" | "subscript" | "subtitles" | "sun" | "sun-dim" | "sun-medium" | "sun-moon" | "sun-snow" | "sunrise" | "sunset" | "superscript" | "swatch-book" | "swiss-franc" | "switch-camera" | "sword" | "swords" | "syringe" | "table" | "table-2" | "table-cells-merge" | "table-cells-split" | "table-columns-split" | "table-config" | "table-of-contents" | "table-properties" | "table-rows-split" | "tablet" | "tablet-smartphone" | "tablets" | "tag" | "tags" | "tally-1" | "tally-2" | "tally-3" | "tally-4" | "tally-5" | "tangent" | "target" | "telescope" | "tent" | "tent-tree" | "terminal" | "terminal-square" | "test-tube" | "test-tube-2" | "test-tube-diagonal" | "test-tubes" | "text" | "text-align-center" | "text-align-end" | "text-align-justify" | "text-align-start" | "text-cursor" | "text-cursor-input" | "text-initial" | "text-quote" | "text-search" | "text-select" | "text-selection" | "text-wrap" | "theater" | "thermometer" | "thermometer-snowflake" | "thermometer-sun" | "thumbs-down" | "thumbs-up" | "ticket" | "ticket-check" | "ticket-minus" | "ticket-percent" | "ticket-plus" | "ticket-slash" | "ticket-x" | "tickets" | "tickets-plane" | "timer" | "timer-off" | "timer-reset" | "toggle-left" | "toggle-right" | "toilet" | "tool-case" | "toolbox" | "tornado" | "torus" | "touchpad" | "touchpad-off" | "towel-rack" | "tower-control" | "toy-brick" | "tractor" | "traffic-cone" | "train" | "train-front" | "train-front-tunnel" | "train-track" | "tram-front" | "transgender" | "trash" | "trash-2" | "tree-deciduous" | "tree-palm" | "tree-pine" | "trees" | "trello" | "trending-down" | "trending-up" | "trending-up-down" | "triangle" | "triangle-alert" | "triangle-dashed" | "triangle-right" | "trophy" | "truck" | "truck-electric" | "turkish-lira" | "turntable" | "turtle" | "tv" | "tv-2" | "tv-minimal" | "tv-minimal-play" | "twitch" | "twitter" | "type" | "type-outline" | "umbrella" | "umbrella-off" | "underline" | "undo" | "undo-2" | "undo-dot" | "unfold-horizontal" | "unfold-vertical" | "ungroup" | "university" | "unlink" | "unlink-2" | "unlock" | "unlock-keyhole" | "unplug" | "upload" | "upload-cloud" | "usb" | "user" | "user-2" | "user-check" | "user-check-2" | "user-circle" | "user-circle-2" | "user-cog" | "user-cog-2" | "user-key" | "user-lock" | "user-minus" | "user-minus-2" | "user-pen" | "user-plus" | "user-plus-2" | "user-round" | "user-round-check" | "user-round-cog" | "user-round-key" | "user-round-minus" | "user-round-pen" | "user-round-plus" | "user-round-search" | "user-round-x" | "user-search" | "user-square" | "user-square-2" | "user-star" | "user-x" | "user-x-2" | "users" | "users-2" | "users-round" | "utensils" | "utensils-crossed" | "utility-pole" | "van" | "variable" | "vault" | "vector-square" | "vegan" | "venetian-mask" | "venus" | "venus-and-mars" | "verified" | "vibrate" | "vibrate-off" | "video" | "video-off" | "videotape" | "view" | "voicemail" | "volleyball" | "volume" | "volume-1" | "volume-2" | "volume-off" | "volume-x" | "vote" | "wallet" | "wallet-2" | "wallet-cards" | "wallet-minimal" | "wallpaper" | "wand" | "wand-2" | "wand-sparkles" | "warehouse" | "washing-machine" | "watch" | "waves" | "waves-arrow-down" | "waves-arrow-up" | "waves-ladder" | "waypoints" | "webcam" | "webhook" | "webhook-off" | "weight" | "weight-tilde" | "wheat" | "wheat-off" | "whole-word" | "wifi" | "wifi-cog" | "wifi-high" | "wifi-low" | "wifi-off" | "wifi-pen" | "wifi-sync" | "wifi-zero" | "wind" | "wind-arrow-down" | "wine" | "wine-off" | "workflow" | "worm" | "wrap-text" | "wrench" | "x" | "x-circle" | "x-line-top" | "x-octagon" | "x-square" | "youtube" | "zap" | "zap-off" | "zodiac-aquarius" | "zodiac-aries" | "zodiac-cancer" | "zodiac-capricorn" | "zodiac-gemini" | "zodiac-leo" | "zodiac-libra" | "zodiac-ophiuchus" | "zodiac-pisces" | "zodiac-sagittarius" | "zodiac-scorpio" | "zodiac-taurus" | "zodiac-virgo" | "zoom-in" | "zoom-out")
|
|
2
|
-
export type
|
|
3
|
-
export type _Schema4 = (
|
|
2
|
+
export type _Schema2 = (("auth" | "anon" | "always" | "hide") | unknown)
|
|
3
|
+
export type _Schema4 = ("start" | "center" | "end")
|
|
4
|
+
export type _Schema5 = ((string | {
|
|
4
5
|
type: "doc"
|
|
5
6
|
file: string
|
|
6
7
|
path?: string
|
|
7
|
-
icon?:
|
|
8
|
+
icon?: _Schema6
|
|
8
9
|
label?: string
|
|
9
|
-
badge?:
|
|
10
|
-
display?:
|
|
10
|
+
badge?: _Schema7
|
|
11
|
+
display?: _Schema2
|
|
11
12
|
}) | {
|
|
12
13
|
type: "link"
|
|
13
14
|
to: string
|
|
14
15
|
label: string
|
|
15
16
|
target?: ("_self" | "_blank")
|
|
16
|
-
icon?:
|
|
17
|
-
badge?:
|
|
18
|
-
display?:
|
|
17
|
+
icon?: _Schema6
|
|
18
|
+
badge?: _Schema7
|
|
19
|
+
display?: _Schema2
|
|
19
20
|
} | {
|
|
20
21
|
type: "custom-page"
|
|
21
22
|
path: string
|
|
22
23
|
label?: string
|
|
23
24
|
element: unknown
|
|
24
|
-
icon?:
|
|
25
|
-
badge?:
|
|
26
|
-
display?:
|
|
25
|
+
icon?: _Schema6
|
|
26
|
+
badge?: _Schema7
|
|
27
|
+
display?: _Schema2
|
|
27
28
|
layout?: ("default" | "none")
|
|
28
29
|
} | {
|
|
29
30
|
type: "separator"
|
|
30
|
-
display?:
|
|
31
|
+
display?: _Schema2
|
|
31
32
|
} | {
|
|
32
33
|
type: "section"
|
|
33
34
|
label: string
|
|
34
|
-
display?:
|
|
35
|
+
display?: _Schema2
|
|
35
36
|
} | {
|
|
36
37
|
type: "filter"
|
|
37
38
|
placeholder?: string
|
|
38
|
-
display?:
|
|
39
|
+
display?: _Schema2
|
|
39
40
|
} | {
|
|
40
41
|
type: "category"
|
|
41
|
-
icon?:
|
|
42
|
+
icon?: _Schema6
|
|
42
43
|
label: string
|
|
43
44
|
collapsible?: boolean
|
|
44
45
|
collapsed?: boolean
|
|
@@ -48,11 +49,10 @@ export type _Schema4 = ((string | {
|
|
|
48
49
|
label?: string
|
|
49
50
|
path?: string
|
|
50
51
|
})
|
|
51
|
-
display?:
|
|
52
|
-
items:
|
|
52
|
+
display?: _Schema2
|
|
53
|
+
items: _Schema5[]
|
|
53
54
|
})
|
|
54
|
-
export type
|
|
55
|
-
export type _Schema7 = (("auth" | "anon" | "always" | "hide") | unknown)
|
|
55
|
+
export type _Schema6 = unknown
|
|
56
56
|
export type _Schema9 = (("Inter" | "Roboto" | "Open Sans" | "Poppins" | "Montserrat" | "Outfit" | "Plus Jakarta Sans" | "DM Sans" | "IBM Plex Sans" | "Geist" | "Oxanium" | "Architects Daughter" | "Merriweather" | "Playfair Display" | "Lora" | "Source Serif Pro" | "Libre Baskerville" | "Space Grotesk" | "JetBrains Mono" | "Fira Code" | "Source Code Pro" | "IBM Plex Mono" | "Roboto Mono" | "Space Mono" | "Geist Mono") | {
|
|
57
57
|
url: string
|
|
58
58
|
fontFamily?: string
|
|
@@ -158,36 +158,37 @@ export interface FlatZudokuConfig {
|
|
|
158
158
|
icon?: _Schema1
|
|
159
159
|
to: string
|
|
160
160
|
target?: ("_self" | "_blank")
|
|
161
|
+
display?: _Schema2
|
|
161
162
|
} | {
|
|
162
163
|
label: string
|
|
163
|
-
items: (
|
|
164
|
+
items: (_Schema3 | {
|
|
164
165
|
label: string
|
|
165
|
-
items:
|
|
166
|
+
items: _Schema3[]
|
|
166
167
|
})[]
|
|
167
168
|
})[]
|
|
168
169
|
placements?: {
|
|
169
|
-
navigation?:
|
|
170
|
-
search?:
|
|
170
|
+
navigation?: _Schema4
|
|
171
|
+
search?: _Schema4
|
|
171
172
|
auth?: ("start" | "center" | "end" | "navigation")
|
|
172
173
|
}
|
|
173
174
|
}
|
|
174
|
-
navigation?:
|
|
175
|
+
navigation?: _Schema5[]
|
|
175
176
|
navigationRules?: ({
|
|
176
177
|
type: "modify"
|
|
177
178
|
match: string
|
|
178
179
|
set: {
|
|
179
180
|
label?: string
|
|
180
|
-
icon?:
|
|
181
|
-
badge?:
|
|
181
|
+
icon?: _Schema6
|
|
182
|
+
badge?: _Schema7
|
|
182
183
|
collapsed?: boolean
|
|
183
184
|
collapsible?: boolean
|
|
184
|
-
display?:
|
|
185
|
+
display?: _Schema2
|
|
185
186
|
}
|
|
186
187
|
} | {
|
|
187
188
|
type: "insert"
|
|
188
189
|
match: string
|
|
189
190
|
position: ("before" | "after")
|
|
190
|
-
items:
|
|
191
|
+
items: _Schema5[]
|
|
191
192
|
} | {
|
|
192
193
|
type: "remove"
|
|
193
194
|
match: string
|
|
@@ -412,14 +413,15 @@ export interface _Schema0 {
|
|
|
412
413
|
href?: string
|
|
413
414
|
reloadDocument?: boolean
|
|
414
415
|
}
|
|
415
|
-
export interface
|
|
416
|
+
export interface _Schema3 {
|
|
416
417
|
label: string
|
|
417
418
|
icon?: _Schema1
|
|
418
419
|
description?: string
|
|
419
420
|
to: string
|
|
420
421
|
target?: ("_self" | "_blank")
|
|
422
|
+
display?: _Schema2
|
|
421
423
|
}
|
|
422
|
-
export interface
|
|
424
|
+
export interface _Schema7 {
|
|
423
425
|
label: string
|
|
424
426
|
color: ("green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray" | "outline")
|
|
425
427
|
invert?: boolean
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { IconNames } from "./icon-types.js";
|
|
3
|
+
import { DisplaySchema } from "./InputNavigationSchema.js";
|
|
3
4
|
|
|
4
5
|
const IconSchema = z.enum(IconNames);
|
|
5
6
|
|
|
@@ -9,6 +10,7 @@ const HeaderNavLinkItemSchema = z.object({
|
|
|
9
10
|
description: z.string().optional(),
|
|
10
11
|
to: z.string(),
|
|
11
12
|
target: z.enum(["_self", "_blank"]).optional(),
|
|
13
|
+
display: DisplaySchema,
|
|
12
14
|
});
|
|
13
15
|
|
|
14
16
|
const HeaderNavGroupSchema = z.object({
|
|
@@ -22,6 +24,7 @@ const HeaderNavItemSchema = z.union([
|
|
|
22
24
|
icon: IconSchema.optional(),
|
|
23
25
|
to: z.string(),
|
|
24
26
|
target: z.enum(["_self", "_blank"]).optional(),
|
|
27
|
+
display: DisplaySchema,
|
|
25
28
|
}),
|
|
26
29
|
z.object({
|
|
27
30
|
label: z.string(),
|
|
@@ -94,13 +94,50 @@ export async function probeDevPortalBackend(
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
function readOptionalString(...values: unknown[]): string | undefined {
|
|
98
|
+
for (const value of values) {
|
|
99
|
+
if (typeof value === "string" && value.trim()) {
|
|
100
|
+
return value.trim();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function readOptionalBoolean(...values: unknown[]): boolean | undefined {
|
|
108
|
+
for (const value of values) {
|
|
109
|
+
if (typeof value === "boolean") {
|
|
110
|
+
return value;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (value === "true" || value === "True") {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (value === "false" || value === "False") {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
|
|
97
125
|
export function mapEndUserMeToProfile(
|
|
98
126
|
me: EndUserMeResponse,
|
|
99
127
|
): import("../state.js").UserProfile {
|
|
128
|
+
const raw = me as EndUserMeResponse & Record<string, unknown>;
|
|
129
|
+
const email = readOptionalString(raw.email, raw.Email, raw.emailAddress);
|
|
130
|
+
const emailVerified =
|
|
131
|
+
readOptionalBoolean(
|
|
132
|
+
raw.emailVerified,
|
|
133
|
+
raw.EmailVerified,
|
|
134
|
+
raw.email_verified,
|
|
135
|
+
) ?? (email != null ? true : false);
|
|
136
|
+
|
|
100
137
|
return {
|
|
101
138
|
sub: me.userId,
|
|
102
|
-
email
|
|
103
|
-
emailVerified
|
|
139
|
+
email,
|
|
140
|
+
emailVerified,
|
|
104
141
|
name: me.displayName ?? undefined,
|
|
105
142
|
pictureUrl: undefined,
|
|
106
143
|
};
|
|
@@ -45,7 +45,6 @@ export class DevPortalAuthenticationProvider
|
|
|
45
45
|
private readonly redirectToAfterSignIn: string | undefined;
|
|
46
46
|
private readonly redirectToAfterSignUp: string | undefined;
|
|
47
47
|
private readonly redirectToAfterSignOut: string;
|
|
48
|
-
private authMode: DevPortalAuthMode = "preview";
|
|
49
48
|
private backendAvailable = false;
|
|
50
49
|
private refreshGeneration = 0;
|
|
51
50
|
private refreshInFlight: Promise<boolean> | null = null;
|
|
@@ -97,12 +96,10 @@ export class DevPortalAuthenticationProvider
|
|
|
97
96
|
private async syncBackendAvailability(): Promise<void> {
|
|
98
97
|
if (!this.apiBaseUrl || isPlaceholderDevPortalApiUrl(this.apiBaseUrl)) {
|
|
99
98
|
this.backendAvailable = false;
|
|
100
|
-
this.authMode = "preview";
|
|
101
99
|
return;
|
|
102
100
|
}
|
|
103
101
|
|
|
104
102
|
this.backendAvailable = await probeDevPortalBackend(this.apiBaseUrl);
|
|
105
|
-
this.authMode = this.backendAvailable ? "live" : "preview";
|
|
106
103
|
}
|
|
107
104
|
|
|
108
105
|
private setPreviewState(): void {
|
|
@@ -122,8 +119,8 @@ export class DevPortalAuthenticationProvider
|
|
|
122
119
|
});
|
|
123
120
|
}
|
|
124
121
|
|
|
125
|
-
private
|
|
126
|
-
if (!this.apiBaseUrl ||
|
|
122
|
+
private ensureConfiguredBackend(): string {
|
|
123
|
+
if (!this.apiBaseUrl || isPlaceholderDevPortalApiUrl(this.apiBaseUrl)) {
|
|
127
124
|
throw new Error("Dev portal authentication is not available in preview.");
|
|
128
125
|
}
|
|
129
126
|
|
|
@@ -235,7 +232,7 @@ export class DevPortalAuthenticationProvider
|
|
|
235
232
|
_: AuthActionContext,
|
|
236
233
|
{ redirectTo }: AuthActionOptions = {},
|
|
237
234
|
): Promise<void> {
|
|
238
|
-
const apiBaseUrl = this.
|
|
235
|
+
const apiBaseUrl = this.ensureConfiguredBackend();
|
|
239
236
|
const target =
|
|
240
237
|
redirectTo ?? this.redirectToAfterSignIn ?? window.location.href;
|
|
241
238
|
window.location.assign(buildDevPortalLoginUrl(apiBaseUrl, target));
|
|
@@ -245,14 +242,14 @@ export class DevPortalAuthenticationProvider
|
|
|
245
242
|
_: AuthActionContext,
|
|
246
243
|
{ redirectTo }: AuthActionOptions = {},
|
|
247
244
|
): Promise<void> {
|
|
248
|
-
const apiBaseUrl = this.
|
|
245
|
+
const apiBaseUrl = this.ensureConfiguredBackend();
|
|
249
246
|
const target =
|
|
250
247
|
redirectTo ?? this.redirectToAfterSignUp ?? window.location.href;
|
|
251
248
|
window.location.assign(buildDevPortalLoginUrl(apiBaseUrl, target));
|
|
252
249
|
}
|
|
253
250
|
|
|
254
251
|
async signOut(_: AuthActionContext): Promise<void> {
|
|
255
|
-
const apiBaseUrl = this.
|
|
252
|
+
const apiBaseUrl = this.ensureConfiguredBackend();
|
|
256
253
|
window.location.assign(
|
|
257
254
|
buildDevPortalLogoutUrl(apiBaseUrl, this.redirectToAfterSignOut),
|
|
258
255
|
);
|
|
@@ -73,15 +73,9 @@ const ProfileMenu = () => {
|
|
|
73
73
|
const context = useZudoku();
|
|
74
74
|
const profileItems = context.getProfileMenuItems();
|
|
75
75
|
const auth = useAuth();
|
|
76
|
-
const {
|
|
77
|
-
isAuthEnabled,
|
|
78
|
-
isAuthenticated,
|
|
79
|
-
isPending,
|
|
80
|
-
profile,
|
|
81
|
-
isBackendAvailable,
|
|
82
|
-
} = auth;
|
|
76
|
+
const { isAuthEnabled, isAuthenticated, isPending, profile } = auth;
|
|
83
77
|
|
|
84
|
-
if (!isAuthEnabled
|
|
78
|
+
if (!isAuthEnabled) return null;
|
|
85
79
|
|
|
86
80
|
return (
|
|
87
81
|
<ClientOnly fallback={<Skeleton className="rounded-sm h-5 w-24 mr-4" />}>
|
|
@@ -6,6 +6,9 @@ import {
|
|
|
6
6
|
type HeaderNavItem,
|
|
7
7
|
type HeaderNavLinkItem,
|
|
8
8
|
} from "../../config/validators/HeaderNavigationSchema.js";
|
|
9
|
+
import { useAuth } from "../authentication/hook.js";
|
|
10
|
+
import { shouldShowItem } from "./navigation/utils.js";
|
|
11
|
+
import type { ZudokuContext } from "../core/ZudokuContext.js";
|
|
9
12
|
import {
|
|
10
13
|
NavigationMenu,
|
|
11
14
|
NavigationMenuContent,
|
|
@@ -87,7 +90,25 @@ const DropdownContent = ({
|
|
|
87
90
|
);
|
|
88
91
|
};
|
|
89
92
|
|
|
90
|
-
const HeaderNavItemComponent = ({
|
|
93
|
+
const HeaderNavItemComponent = ({
|
|
94
|
+
item,
|
|
95
|
+
auth,
|
|
96
|
+
context,
|
|
97
|
+
}: {
|
|
98
|
+
item: HeaderNavItem;
|
|
99
|
+
auth: ReturnType<typeof useAuth>;
|
|
100
|
+
context: ZudokuContext;
|
|
101
|
+
}) => {
|
|
102
|
+
if ("to" in item) {
|
|
103
|
+
const show = shouldShowItem({ auth, context })({
|
|
104
|
+
type: "link",
|
|
105
|
+
label: item.label,
|
|
106
|
+
to: item.to,
|
|
107
|
+
display: item.display,
|
|
108
|
+
});
|
|
109
|
+
if (!show) return null;
|
|
110
|
+
}
|
|
111
|
+
|
|
91
112
|
if ("to" in item) {
|
|
92
113
|
const Icon = item.icon as LucideIcon | undefined;
|
|
93
114
|
return (
|
|
@@ -123,9 +144,10 @@ const HeaderNavItemComponent = ({ item }: { item: HeaderNavItem }) => {
|
|
|
123
144
|
};
|
|
124
145
|
|
|
125
146
|
export const HeaderNavigation = () => {
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
const
|
|
147
|
+
const context = useZudoku();
|
|
148
|
+
const auth = useAuth();
|
|
149
|
+
const items = context.options.header?.navigation;
|
|
150
|
+
const navPosition = context.options.header?.placements?.navigation ?? "end";
|
|
129
151
|
if (!items || items.length === 0) return null;
|
|
130
152
|
|
|
131
153
|
const viewportAlign =
|
|
@@ -140,7 +162,12 @@ export const HeaderNavigation = () => {
|
|
|
140
162
|
<NavigationMenuList>
|
|
141
163
|
{items.map((item, index) => (
|
|
142
164
|
// biome-ignore lint/suspicious/noArrayIndexKey: Stable because it's statically defined in the config
|
|
143
|
-
<HeaderNavItemComponent
|
|
165
|
+
<HeaderNavItemComponent
|
|
166
|
+
key={`${item.label}-${index}`}
|
|
167
|
+
item={item}
|
|
168
|
+
auth={auth}
|
|
169
|
+
context={context}
|
|
170
|
+
/>
|
|
144
171
|
))}
|
|
145
172
|
</NavigationMenuList>
|
|
146
173
|
</NavigationMenu>
|
|
@@ -130,13 +130,7 @@ export const MobileTopNavigation = () => {
|
|
|
130
130
|
getProfileMenuItems,
|
|
131
131
|
} = context;
|
|
132
132
|
const headerNavigation = header?.navigation ?? [];
|
|
133
|
-
const {
|
|
134
|
-
isAuthenticated,
|
|
135
|
-
profile,
|
|
136
|
-
isAuthEnabled,
|
|
137
|
-
isBackendAvailable,
|
|
138
|
-
isPending,
|
|
139
|
-
} = authState;
|
|
133
|
+
const { isAuthenticated, profile, isAuthEnabled, isPending } = authState;
|
|
140
134
|
const [drawerOpen, setDrawerOpen] = useState(false);
|
|
141
135
|
|
|
142
136
|
const accountItems = getProfileMenuItems();
|
|
@@ -238,7 +232,7 @@ export const MobileTopNavigation = () => {
|
|
|
238
232
|
</div>
|
|
239
233
|
<div className="border-t shadow-[0_-4px_6px_-1px_rgba(0,0,0,0.05)] px-4 pt-3 flex flex-col gap-2">
|
|
240
234
|
<div className="flex items-center justify-between">
|
|
241
|
-
{isAuthEnabled &&
|
|
235
|
+
{isAuthEnabled && (
|
|
242
236
|
<ClientOnly
|
|
243
237
|
fallback={<Skeleton className="rounded-sm h-8 w-16" />}
|
|
244
238
|
>
|
|
@@ -172,9 +172,7 @@ export const RouteGuard = () => {
|
|
|
172
172
|
? blocker.location.pathname + blocker.location.search
|
|
173
173
|
: location.pathname + location.search;
|
|
174
174
|
const showDialog =
|
|
175
|
-
auth.isBackendAvailable &&
|
|
176
|
-
needsAuth &&
|
|
177
|
-
auth.hasDistinctSignUpFlow;
|
|
175
|
+
auth.isBackendAvailable && needsAuth && auth.hasDistinctSignUpFlow;
|
|
178
176
|
const unifiedRedirectKeyRef = useRef<string | null>(null);
|
|
179
177
|
|
|
180
178
|
useEffect(() => {
|
|
@@ -198,6 +196,7 @@ export const RouteGuard = () => {
|
|
|
198
196
|
auth.isBackendAvailable,
|
|
199
197
|
auth.isPending,
|
|
200
198
|
auth.hasDistinctSignUpFlow,
|
|
199
|
+
auth.login,
|
|
201
200
|
needsAuth,
|
|
202
201
|
redirectTo,
|
|
203
202
|
]);
|