@jfdevelops/react-layout 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/composable.cjs.map +1 -1
  2. package/dist/composable.d.cts +3 -1
  3. package/dist/composable.d.cts.map +1 -1
  4. package/dist/composable.d.mts +3 -1
  5. package/dist/composable.d.mts.map +1 -1
  6. package/dist/composable.mjs.map +1 -1
  7. package/dist/create-config.cjs +9 -6
  8. package/dist/create-config.cjs.map +1 -1
  9. package/dist/create-config.d.cts +1 -1
  10. package/dist/create-config.d.cts.map +1 -1
  11. package/dist/create-config.d.mts +1 -1
  12. package/dist/create-config.d.mts.map +1 -1
  13. package/dist/create-config.mjs +5 -2
  14. package/dist/create-config.mjs.map +1 -1
  15. package/dist/index.cjs +5 -4
  16. package/dist/index.d.cts +3 -1
  17. package/dist/index.d.mts +3 -1
  18. package/dist/index.mjs +2 -1
  19. package/dist/props.d.cts +2 -1
  20. package/dist/props.d.cts.map +1 -1
  21. package/dist/props.d.mts +2 -1
  22. package/dist/props.d.mts.map +1 -1
  23. package/dist/resource.cjs.map +1 -1
  24. package/dist/resource.d.cts +1 -1
  25. package/dist/resource.d.cts.map +1 -1
  26. package/dist/resource.d.mts +1 -1
  27. package/dist/resource.d.mts.map +1 -1
  28. package/dist/resource.mjs.map +1 -1
  29. package/dist/utils/capitalize.cjs +9 -0
  30. package/dist/utils/capitalize.cjs.map +1 -0
  31. package/dist/utils/capitalize.d.cts +7 -0
  32. package/dist/utils/capitalize.d.cts.map +1 -0
  33. package/dist/utils/capitalize.d.mts +7 -0
  34. package/dist/utils/capitalize.d.mts.map +1 -0
  35. package/dist/utils/capitalize.mjs +8 -0
  36. package/dist/utils/capitalize.mjs.map +1 -0
  37. package/dist/utils.cjs.map +1 -1
  38. package/dist/utils.d.cts.map +1 -1
  39. package/dist/utils.d.mts.map +1 -1
  40. package/dist/utils.mjs.map +1 -1
  41. package/dist/validators/base.cjs +41 -0
  42. package/dist/validators/base.cjs.map +1 -0
  43. package/dist/validators/base.d.cts +18 -0
  44. package/dist/validators/base.d.cts.map +1 -0
  45. package/dist/validators/base.d.mts +18 -0
  46. package/dist/validators/base.d.mts.map +1 -0
  47. package/dist/validators/base.mjs +39 -0
  48. package/dist/validators/base.mjs.map +1 -0
  49. package/dist/validators/builders.cjs +137 -0
  50. package/dist/validators/builders.cjs.map +1 -0
  51. package/dist/validators/builders.d.cts +156 -0
  52. package/dist/validators/builders.d.cts.map +1 -0
  53. package/dist/validators/builders.d.mts +156 -0
  54. package/dist/validators/builders.d.mts.map +1 -0
  55. package/dist/validators/builders.mjs +136 -0
  56. package/dist/validators/builders.mjs.map +1 -0
  57. package/dist/validators/component.cjs +73 -0
  58. package/dist/validators/component.cjs.map +1 -0
  59. package/dist/validators/component.d.cts +28 -0
  60. package/dist/validators/component.d.cts.map +1 -0
  61. package/dist/validators/component.d.mts +28 -0
  62. package/dist/validators/component.d.mts.map +1 -0
  63. package/dist/validators/component.mjs +71 -0
  64. package/dist/validators/component.mjs.map +1 -0
  65. package/dist/validators/enum.cjs +27 -0
  66. package/dist/validators/enum.cjs.map +1 -0
  67. package/dist/validators/enum.d.cts +14 -0
  68. package/dist/validators/enum.d.cts.map +1 -0
  69. package/dist/validators/enum.d.mts +14 -0
  70. package/dist/validators/enum.d.mts.map +1 -0
  71. package/dist/validators/enum.mjs +27 -0
  72. package/dist/validators/enum.mjs.map +1 -0
  73. package/dist/validators/index.d.cts +10 -0
  74. package/dist/validators/index.d.mts +10 -0
  75. package/dist/validators/literal.cjs +25 -0
  76. package/dist/validators/literal.cjs.map +1 -0
  77. package/dist/validators/literal.d.cts +14 -0
  78. package/dist/validators/literal.d.cts.map +1 -0
  79. package/dist/validators/literal.d.mts +14 -0
  80. package/dist/validators/literal.d.mts.map +1 -0
  81. package/dist/validators/literal.mjs +25 -0
  82. package/dist/validators/literal.mjs.map +1 -0
  83. package/dist/validators/object.cjs +53 -0
  84. package/dist/validators/object.cjs.map +1 -0
  85. package/dist/validators/object.d.cts +14 -0
  86. package/dist/validators/object.d.cts.map +1 -0
  87. package/dist/validators/object.d.mts +14 -0
  88. package/dist/validators/object.d.mts.map +1 -0
  89. package/dist/validators/object.mjs +53 -0
  90. package/dist/validators/object.mjs.map +1 -0
  91. package/dist/validators/primitive.cjs +80 -0
  92. package/dist/validators/primitive.cjs.map +1 -0
  93. package/dist/validators/primitive.d.cts +33 -0
  94. package/dist/validators/primitive.d.cts.map +1 -0
  95. package/dist/validators/primitive.d.mts +33 -0
  96. package/dist/validators/primitive.d.mts.map +1 -0
  97. package/dist/validators/primitive.mjs +78 -0
  98. package/dist/validators/primitive.mjs.map +1 -0
  99. package/dist/validators/types.d.cts +71 -0
  100. package/dist/validators/types.d.cts.map +1 -0
  101. package/dist/validators/types.d.mts +71 -0
  102. package/dist/validators/types.d.mts.map +1 -0
  103. package/dist/validators/union.cjs +27 -0
  104. package/dist/validators/union.cjs.map +1 -0
  105. package/dist/validators/union.d.cts +14 -0
  106. package/dist/validators/union.d.cts.map +1 -0
  107. package/dist/validators/union.d.mts +14 -0
  108. package/dist/validators/union.d.mts.map +1 -0
  109. package/dist/validators/union.mjs +27 -0
  110. package/dist/validators/union.mjs.map +1 -0
  111. package/dist/validators/validate-props.cjs +20 -0
  112. package/dist/validators/validate-props.cjs.map +1 -0
  113. package/dist/validators/validate-props.d.cts +7 -0
  114. package/dist/validators/validate-props.d.cts.map +1 -0
  115. package/dist/validators/validate-props.d.mts +7 -0
  116. package/dist/validators/validate-props.d.mts.map +1 -0
  117. package/dist/validators/validate-props.mjs +19 -0
  118. package/dist/validators/validate-props.mjs.map +1 -0
  119. package/package.json +63 -59
  120. package/dist/create-value.cjs +0 -417
  121. package/dist/create-value.cjs.map +0 -1
  122. package/dist/create-value.d.cts +0 -348
  123. package/dist/create-value.d.cts.map +0 -1
  124. package/dist/create-value.d.mts +0 -348
  125. package/dist/create-value.d.mts.map +0 -1
  126. package/dist/create-value.mjs +0 -414
  127. package/dist/create-value.mjs.map +0 -1
@@ -1,348 +0,0 @@
1
- import { JSX, ReactNode } from "react";
2
-
3
- //#region src/create-value.d.ts
4
- type PrimitiveTypesMap = PrimitiveValueTypes & {
5
- object: object;
6
- array: unknown[];
7
- date: Date;
8
- regex: RegExp;
9
- error: Error;
10
- symbol: symbol;
11
- bigint: bigint;
12
- };
13
- type PrimitiveValueTypes = {
14
- string: string;
15
- number: number;
16
- boolean: boolean;
17
- };
18
- declare class InvalidPropValueError<Type extends string> extends Error {
19
- constructor(type: Type);
20
- }
21
- type PropVisibility = 'optional' | 'required';
22
- type PrimitivePropType = keyof PrimitiveValueTypes;
23
- type NonEmptyReadonlyArray<Value> = readonly [Value, ...Value[]];
24
- type PropConfig = Record<string, unknown>;
25
- type PropType = keyof PrimitiveTypesMap | ComponentPropType | 'union' | 'function';
26
- type BasePropOptions<Type extends PropType, Visibility extends PropVisibility, Value = unknown> = {
27
- type: Type;
28
- visibility: Visibility;
29
- value?: Value;
30
- };
31
- declare abstract class BaseProp<Type extends PropType, Visibility extends PropVisibility, Value = unknown> {
32
- readonly type: Type;
33
- readonly visibility: Visibility;
34
- readonly value?: Value;
35
- protected error: InvalidPropValueError<Type>;
36
- constructor(options: BasePropOptions<Type, Visibility, Value>);
37
- abstract validate(value: unknown): void;
38
- abstract allows(value: unknown): value is Value;
39
- }
40
- declare class StringProp<Visibility extends PropVisibility> extends BaseProp<'string', Visibility, string> {
41
- constructor(visibility: Visibility);
42
- optional(this: StringProp<'required'>): StringProp<"optional">;
43
- literal<const Value extends string>(value: Value): LiteralProp<Value, "string", Visibility>;
44
- enum<const Values extends NonEmptyReadonlyArray<string>>(values: Values): EnumProp<Values, "string", Visibility>;
45
- validate(value: unknown): void;
46
- allows(value: unknown): value is string;
47
- }
48
- declare class NumberProp<Visibility extends PropVisibility> extends BaseProp<'number', Visibility, number> {
49
- constructor(visibility: Visibility);
50
- optional(this: NumberProp<'required'>): NumberProp<"optional">;
51
- literal<const Value extends number>(value: Value): LiteralProp<Value, "number", Visibility>;
52
- enum<const Values extends NonEmptyReadonlyArray<number>>(values: Values): EnumProp<Values, "number", Visibility>;
53
- validate(value: unknown): void;
54
- allows(value: unknown): value is number;
55
- }
56
- declare class BooleanProp<Visibility extends PropVisibility> extends BaseProp<'boolean', Visibility, boolean> {
57
- constructor(visibility: Visibility);
58
- optional(this: BooleanProp<'required'>): BooleanProp<"optional">;
59
- literal<const Value extends boolean>(value: Value): LiteralProp<Value, "boolean", Visibility>;
60
- enum<const Values extends NonEmptyReadonlyArray<boolean>>(values: Values): EnumProp<Values, "boolean", Visibility>;
61
- validate(value: unknown): void;
62
- allows(value: unknown): value is boolean;
63
- }
64
- declare class LiteralProp<const Value extends PrimitiveTypesMap[Type], Type extends PrimitivePropType, Visibility extends PropVisibility> extends BaseProp<Type, Visibility, Value> {
65
- readonly value: Value;
66
- constructor(value: Value, type: Type, visibility: Visibility);
67
- optional(this: LiteralProp<Value, Type, 'required'>): LiteralProp<Value, Type, "optional">;
68
- validate(value: unknown): void;
69
- allows(value: unknown): value is Value;
70
- }
71
- declare class EnumProp<const Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>, Type extends PrimitivePropType, Visibility extends PropVisibility> extends BaseProp<Type, Visibility, Values[number]> {
72
- private readonly allowedValues;
73
- constructor(values: Values, type: Type, visibility: Visibility);
74
- optional(this: EnumProp<Values, Type, 'required'>): EnumProp<Values, Type, "optional">;
75
- validate(value: unknown): void;
76
- allows(value: unknown): value is Values[number];
77
- }
78
- type AnyBaseProp = BaseProp<PropType, PropVisibility, unknown>;
79
- type ExtractPropValue<Prop extends AnyBaseProp> = Prop extends BaseProp<any, any, infer V> ? V : never;
80
- type ExtractVisibility<Prop extends AnyBaseProp> = Prop extends BaseProp<any, infer V extends PropVisibility, any> ? V : PropVisibility;
81
- type OptionalChain<Visibility extends PropVisibility, OptionalProp extends AnyBaseProp> = Visibility extends 'required' ? {
82
- optional(): WrappedProp<OptionalProp>;
83
- } : {};
84
- type ConfigChain<Prop extends AnyBaseProp> = {
85
- config<const Config extends PropConfig>(config: Config): ConfiguredWrappedProp<Prop, Config>;
86
- };
87
- type PrimitiveWrappedPropState<Type extends PrimitivePropType, Visibility extends PropVisibility, Value> = {
88
- type: Type;
89
- visibility: Visibility;
90
- } & ([Value] extends [never] ? {} : {
91
- value: Value;
92
- });
93
- type ObjectWrappedPropState<Shape extends BuiltPropShape, Visibility extends PropVisibility> = {
94
- type: 'object';
95
- visibility: Visibility;
96
- properties: Shape;
97
- };
98
- type ComponentWithPropsWrappedPropState<Type extends ComponentPropType, Shape extends BuiltPropShape, Visibility extends PropVisibility> = {
99
- type: Type;
100
- visibility: Visibility;
101
- properties: Shape;
102
- };
103
- type UnionWrappedPropState<Members extends readonly AnyBaseProp[], Visibility extends PropVisibility> = {
104
- type: 'union';
105
- visibility: Visibility;
106
- members: Members;
107
- };
108
- type RenderChildrenWrappedPropState<Shape extends BuiltPropShape, ChildrenType extends ComponentPropType, Visibility extends PropVisibility> = {
109
- type: 'function';
110
- visibility: Visibility;
111
- renderProps: Shape;
112
- childrenType: ChildrenType;
113
- };
114
- type StringWrappedPropState<Visibility extends PropVisibility> = PrimitiveWrappedPropState<'string', Visibility, string | undefined>;
115
- type NumberWrappedPropState<Visibility extends PropVisibility> = PrimitiveWrappedPropState<'number', Visibility, number | undefined>;
116
- type BooleanWrappedPropState<Visibility extends PropVisibility> = PrimitiveWrappedPropState<'boolean', Visibility, boolean | undefined>;
117
- type LiteralWrappedPropState<Value, Type extends PrimitivePropType, Visibility extends PropVisibility> = PrimitiveWrappedPropState<Type, Visibility, Value>;
118
- type EnumWrappedPropState<Type extends PrimitivePropType, Visibility extends PropVisibility> = PrimitiveWrappedPropState<Type, Visibility, never>;
119
- type WrappedPropState<Prop extends AnyBaseProp> = Prop extends StringProp<infer Visibility> ? StringWrappedPropState<Visibility> : Prop extends NumberProp<infer Visibility> ? NumberWrappedPropState<Visibility> : Prop extends BooleanProp<infer Visibility> ? BooleanWrappedPropState<Visibility> : Prop extends LiteralProp<infer Value, infer Type, infer Visibility> ? LiteralWrappedPropState<Value, Type, Visibility> : Prop extends EnumProp<infer _Values, infer Type, infer Visibility> ? EnumWrappedPropState<Type, Visibility> : Prop extends ObjectProp<infer Shape, infer Visibility> ? ObjectWrappedPropState<Shape, Visibility> : Prop extends ComponentPropWithPropertiesProp<infer Type, infer Shape, infer Visibility> ? ComponentWithPropsWrappedPropState<Type, Shape, Visibility> : Prop extends ComponentProp<infer Type, infer Visibility> ? {
120
- type: Type;
121
- visibility: Visibility;
122
- } : Prop extends UnionProp<infer Members, infer Visibility> ? UnionWrappedPropState<Members, Visibility> : Prop extends RenderChildrenProp<infer Shape, infer ChildrenType, infer Visibility> ? RenderChildrenWrappedPropState<Shape, ChildrenType, Visibility> : never;
123
- type ConfiguredWrappedProp<Prop extends AnyBaseProp, Config extends PropConfig> = ((value: unknown) => ReturnType<Prop['validate']>) & WrappedPropState<Prop> & {
124
- _baseProp: Prop;
125
- config: Config;
126
- };
127
- type WrappedProp<Prop extends AnyBaseProp> = ((value: unknown) => ReturnType<Prop['validate']>) & WrappedPropState<Prop> & WrappedPropChainMembers<Prop> & {
128
- _baseProp: Prop;
129
- or<Other extends AnyBaseProp>(other: {
130
- _baseProp: Other;
131
- }): WrappedProp<UnionProp<readonly [Prop, Other], ExtractVisibility<Prop>>>;
132
- };
133
- type LiteralWrappedProp<Value extends PrimitiveTypesMap[Type], Type extends PrimitivePropType, Visibility extends PropVisibility> = WrappedProp<LiteralProp<Value, Type, Visibility>>;
134
- type EnumWrappedProp<Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>, Type extends PrimitivePropType, Visibility extends PropVisibility> = WrappedProp<EnumProp<Values, Type, Visibility>>;
135
- type WrapperFor = 'literal' | 'enum';
136
- type GetValueForWrapper<Type extends PrimitivePropType, For extends WrapperFor, Value extends PrimitiveTypesMap[Type]> = For extends 'literal' ? Value : For extends 'enum' ? NonEmptyReadonlyArray<Value> : never;
137
- type WrappedPropFor<Type extends PrimitivePropType, Visibility extends PropVisibility, For extends WrapperFor, Value extends PrimitiveTypesMap[Type]> = For extends 'literal' ? LiteralWrappedProp<Value, Type, Visibility> : For extends 'enum' ? EnumWrappedProp<NonEmptyReadonlyArray<Value>, Type, Visibility> : never;
138
- type CreateWrappedProp<Type extends PrimitivePropType, Visibility extends PropVisibility, For extends WrapperFor> = <Value extends PrimitiveTypesMap[Type]>(value: GetValueForWrapper<Type, For, Value>) => WrappedPropFor<Type, Visibility, For, Value>;
139
- type WrappedPropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility, Prop extends AnyBaseProp, OptionalProp extends AnyBaseProp> = ConfigChain<Prop> & OptionalChain<Visibility, OptionalProp> & {
140
- literal: CreateWrappedProp<Type, Visibility, 'literal'>;
141
- enum: CreateWrappedProp<Type, Visibility, 'enum'>;
142
- };
143
- type PrimitivePropTypeMap<Visibility extends PropVisibility> = {
144
- string: WrappedPropBuilder<'string', Visibility, StringProp<Visibility>, StringProp<'optional'>>;
145
- number: WrappedPropBuilder<'number', Visibility, NumberProp<Visibility>, NumberProp<'optional'>>;
146
- boolean: WrappedPropBuilder<'boolean', Visibility, BooleanProp<Visibility>, BooleanProp<'optional'>>;
147
- };
148
- type WrappedPrimitiveProp<Prop> = Prop extends BaseProp<infer type extends PrimitivePropType, infer visibility extends PropVisibility> ? PrimitivePropTypeMap<visibility>[type] : never;
149
- type ConfigChainBuilder<Prop extends AnyBaseProp, Visibility extends PropVisibility, OptionalProp extends AnyBaseProp> = ConfigChain<Prop> & OptionalChain<Visibility, OptionalProp>;
150
- type WrappedSpecialProp<Prop> = Prop extends LiteralProp<infer value, infer type, infer visibility> ? ConfigChainBuilder<LiteralProp<value, type, visibility>, visibility, LiteralProp<value, type, 'optional'>> : Prop extends EnumProp<infer values, infer type, infer visibility> ? ConfigChainBuilder<EnumProp<values, type, visibility>, visibility, EnumProp<values, type, 'optional'>> : never;
151
- type WrappedObjectProp<Prop> = Prop extends ObjectProp<infer Shape, infer Visibility> ? OptionalChain<Visibility, ObjectProp<Shape, 'optional'>> : never;
152
- type WrappedComponentWithPropsProp<Prop> = Prop extends ComponentPropWithPropertiesProp<infer Type, infer Shape, infer Visibility> ? OptionalChain<Visibility, ComponentPropWithPropertiesProp<Type, Shape, 'optional'>> : never;
153
- type WrappedUnionProp<Prop> = Prop extends UnionProp<infer Members, infer Visibility> ? OptionalChain<Visibility, UnionProp<Members, 'optional'>> : never;
154
- type WrappedPropChainMembers<Prop extends AnyBaseProp> = [WrappedSpecialProp<Prop>] extends [never] ? [WrappedObjectProp<Prop>] extends [never] ? [WrappedComponentWithPropsProp<Prop>] extends [never] ? [WrappedUnionProp<Prop>] extends [never] ? [WrappedPrimitiveProp<Prop>] extends [never] ? {} : WrappedPrimitiveProp<Prop> : WrappedUnionProp<Prop> : WrappedComponentWithPropsProp<Prop> : WrappedObjectProp<Prop> : WrappedSpecialProp<Prop>;
155
- interface AnyBuiltPropDefinition {
156
- (value: unknown): unknown;
157
- visibility: PropVisibility;
158
- _baseProp?: AnyBaseProp;
159
- }
160
- interface BuiltPropShape {
161
- [key: string]: AnyBuiltPropDefinition;
162
- }
163
- type ResolveBuiltPropValue<Definition extends AnyBuiltPropDefinition> = ReturnType<Definition>;
164
- type ExtractDefinitionValue<D extends AnyBuiltPropDefinition> = D extends {
165
- _baseProp: infer P extends AnyBaseProp;
166
- } ? ExtractPropValue<P> : ReturnType<D>;
167
- type ResolvedBuiltPropShape<Shape extends BuiltPropShape> = { [Key in keyof Shape as Shape[Key]['visibility'] extends 'required' ? Key : never]: ExtractDefinitionValue<Shape[Key]> } & { [Key in keyof Shape as Shape[Key]['visibility'] extends 'required' ? never : Key]?: ExtractDefinitionValue<Shape[Key]> };
168
- /** True when the prop's state type carries `type: 'JSX.Element'`. */
169
- type IsJSXElementProp<D extends AnyBuiltPropDefinition> = D extends {
170
- type: 'JSX.Element';
171
- } ? true : false;
172
- /**
173
- * Returns the resolved key name for a prop: capitalizes the key when the prop
174
- * is a JSX.Element component prop (React convention for component slot props).
175
- */
176
- type ResolvedPropKey<K extends string, D extends AnyBuiltPropDefinition> = IsJSXElementProp<D> extends true ? Capitalize<K> : K;
177
- /**
178
- * Resolves a shape of prop definitions created by the `createProp` builders
179
- * into a plain TypeScript props interface.
180
- *
181
- * - Optional props become optional keys (`prop?: Type`).
182
- * - Props whose type is `JSX.Element` have their key capitalized
183
- * (`icon` → `Icon`), following React's component-prop convention.
184
- */
185
- type ResolveProps<Shape extends Record<string, AnyBuiltPropDefinition>> = { [K in keyof Shape & string as Shape[K]['visibility'] extends 'required' ? ResolvedPropKey<K, Shape[K]> : never]: ExtractDefinitionValue<Shape[K]> } & { [K in keyof Shape & string as Shape[K]['visibility'] extends 'required' ? never : ResolvedPropKey<K, Shape[K]>]?: ExtractDefinitionValue<Shape[K]> };
186
- /**
187
- * Like `ExtractDefinitionValue` but for union members (base props).
188
- * JSX.Element component props become render functions.
189
- */
190
- type ExtractLayoutMemberValue<P extends AnyBaseProp> = P extends {
191
- type: 'JSX.Element';
192
- properties: infer Shape extends Record<string, AnyBuiltPropDefinition>;
193
- } ? (props: ResolveProps<Shape>) => JSX.Element : P extends {
194
- type: 'JSX.Element';
195
- } ? () => JSX.Element : ExtractPropValue<P>;
196
- /**
197
- * Like `ExtractDefinitionValue` but JSX.Element component props resolve as
198
- * render functions instead of the raw `JSX.Element` value:
199
- * - No component props → `() => JSX.Element`
200
- * - With component props → `(props: ResolveProps<Shape>) => JSX.Element`
201
- * Union members are resolved individually with the same rule.
202
- */
203
- type ExtractLayoutDefinitionValue<D extends AnyBuiltPropDefinition> = D extends {
204
- type: 'JSX.Element';
205
- properties: infer Shape extends Record<string, AnyBuiltPropDefinition>;
206
- } ? (props: ResolveProps<Shape>) => JSX.Element : D extends {
207
- type: 'JSX.Element';
208
- } ? () => JSX.Element : D extends {
209
- members: infer Members extends readonly AnyBaseProp[];
210
- } ? ExtractLayoutMemberValue<Members[number]> : ExtractDefinitionValue<D>;
211
- /**
212
- * Like `ResolveProps` but intended for the resolved options passed to the
213
- * function returned by `defineResourceLayout`. JSX.Element component props
214
- * become render functions so consumers provide a component slot rather than
215
- * a pre-rendered element:
216
- * - `createProp.component({ type: 'JSX.Element' })` → `() => JSX.Element`
217
- * - `createProp.component({ type: 'JSX.Element' }).props({ ... })` →
218
- * `(props: ResolveProps<Shape>) => JSX.Element`
219
- */
220
- type ResolveLayoutProps<Shape extends Record<string, AnyBuiltPropDefinition>> = { [K in keyof Shape & string as Shape[K]['visibility'] extends 'required' ? ResolvedPropKey<K, Shape[K]> : never]: ExtractLayoutDefinitionValue<Shape[K]> } & { [K in keyof Shape & string as Shape[K]['visibility'] extends 'required' ? never : ResolvedPropKey<K, Shape[K]>]?: ExtractLayoutDefinitionValue<Shape[K]> };
221
- declare class ObjectProp<const Shape extends BuiltPropShape, Visibility extends PropVisibility> extends BaseProp<'object', Visibility, { [Key in keyof Shape]: ResolveBuiltPropValue<Shape[Key]> }> {
222
- readonly properties: Shape;
223
- constructor(properties: Shape, visibility: Visibility);
224
- optional(this: ObjectProp<Shape, 'required'>): ObjectProp<Shape, "optional">;
225
- validate(value: unknown): { [Key in keyof Shape]: ReturnType<Shape[Key]> };
226
- allows(value: unknown): value is { [Key in keyof Shape]: ResolveBuiltPropValue<Shape[Key]> };
227
- }
228
- declare class ComponentProp<Type extends ComponentPropType, Visibility extends PropVisibility> extends BaseProp<Type, Visibility, ComponentPropTypeMap[Type]> {
229
- constructor(type: Type, visibility: Visibility);
230
- optional(this: ComponentProp<Type, 'required'>): ComponentProp<Type, "optional">;
231
- validate(value: unknown): void;
232
- allows(value: unknown): value is ComponentPropTypeMap[Type];
233
- }
234
- declare class ComponentPropWithPropertiesProp<Type extends ComponentPropType, const Shape extends BuiltPropShape, Visibility extends PropVisibility> extends BaseProp<Type, Visibility, ComponentPropTypeMap[Type]> {
235
- readonly properties: Shape;
236
- constructor(type: Type, properties: Shape, visibility: Visibility);
237
- optional(this: ComponentPropWithPropertiesProp<Type, Shape, 'required'>): ComponentPropWithPropertiesProp<Type, Shape, "optional">;
238
- validate(value: unknown): void;
239
- allows(value: unknown): value is ComponentPropTypeMap[Type];
240
- }
241
- declare class UnionProp<const Members extends readonly AnyBaseProp[], Visibility extends PropVisibility> extends BaseProp<'union', Visibility, ExtractPropValue<Members[number]>> {
242
- readonly members: Members;
243
- constructor(members: Members, visibility: Visibility);
244
- optional(this: UnionProp<Members, 'required'>): UnionProp<Members, "optional">;
245
- validate(value: unknown): void;
246
- allows(value: unknown): value is ExtractPropValue<Members[number]>;
247
- }
248
- declare class RenderChildrenProp<const Shape extends BuiltPropShape, ChildrenType extends ComponentPropType, Visibility extends PropVisibility> extends BaseProp<'function', Visibility, (renderProps: ResolvedBuiltPropShape<Shape>) => ComponentPropTypeMap[ChildrenType]> {
249
- readonly renderProps: Shape;
250
- readonly childrenType: ChildrenType;
251
- constructor(renderProps: Shape, childrenType: ChildrenType, visibility: Visibility);
252
- optional(this: RenderChildrenProp<Shape, ChildrenType, 'required'>): RenderChildrenProp<Shape, ChildrenType, "optional">;
253
- validate(value: unknown): (renderProps: ResolvedBuiltPropShape<Shape>) => ComponentPropTypeMap[ChildrenType];
254
- allows(value: unknown): value is (renderProps: ResolvedBuiltPropShape<Shape>) => ComponentPropTypeMap[ChildrenType];
255
- }
256
- type ObjectValueDefinition<Shape extends BuiltPropShape, Visibility extends PropVisibility = 'required'> = WrappedProp<ObjectProp<Shape, Visibility>>;
257
- type PrimitivePropInstanceMap<Visibility extends PropVisibility> = {
258
- string: WrappedProp<StringProp<Visibility>>;
259
- number: WrappedProp<NumberProp<Visibility>>;
260
- boolean: WrappedProp<BooleanProp<Visibility>>;
261
- };
262
- type PrimitiveBasePropInstanceMap<Visibility extends PropVisibility> = {
263
- string: StringProp<Visibility>;
264
- number: NumberProp<Visibility>;
265
- boolean: BooleanProp<Visibility>;
266
- };
267
- type LiteralPropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'> = <const Value extends PrimitiveTypesMap[Type]>(value: Value) => LiteralWrappedProp<Value, Type, Visibility>;
268
- type EnumPropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'> = <const Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>>(values: Values) => EnumWrappedProp<Values, Type, Visibility>;
269
- type PrimitivePropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'> = (() => PrimitivePropInstanceMap<Visibility>[Type]) & {
270
- literal: LiteralPropBuilder<Type, Visibility>;
271
- enum: EnumPropBuilder<Type, Visibility>;
272
- config<const Config extends PropConfig>(config: Config): ConfiguredWrappedProp<PrimitiveBasePropInstanceMap<Visibility>[Type], Config>;
273
- } & (Visibility extends 'required' ? {
274
- optional(): PrimitivePropBuilder<Type, 'optional'>;
275
- } : {});
276
- declare function createPrimitivePropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'>(type: Type, visibility?: Visibility): PrimitivePropBuilder<Type, Visibility>;
277
- declare function createObjectProp<const Shape extends BuiltPropShape>(properties: Shape): ObjectValueDefinition<Shape, 'required'>;
278
- type ComponentPropType = 'ReactNode' | 'JSX.Element';
279
- type ComponentPropTypeMap = {
280
- ReactNode: ReactNode;
281
- 'JSX.Element': JSX.Element;
282
- };
283
- type ChildrenPropFor<ChildrenType extends ComponentPropType, ChildrenVisibility extends PropVisibility, RenderProps extends BuiltPropShape | undefined> = (RenderProps extends BuiltPropShape ? WrappedProp<RenderChildrenProp<RenderProps, ChildrenType, ChildrenVisibility>> : WrappedProp<ComponentProp<ChildrenType, ChildrenVisibility>>) & AnyBuiltPropDefinition;
284
- type WithChildrenShape<Shape extends BuiltPropShape, ChildrenProp extends AnyBuiltPropDefinition> = Shape & {
285
- children: ChildrenProp;
286
- };
287
- type WithChildrenOptions<ChildrenType extends ComponentPropType, ChildrenVisibility extends PropVisibility, RenderProps extends BuiltPropShape | undefined> = {
288
- /**
289
- * The type of the children.
290
- * @default 'ReactNode'
291
- */
292
- type?: ChildrenType;
293
- /**
294
- * The visibility of the children.
295
- * @default 'optional'
296
- */
297
- visibility?: ChildrenVisibility;
298
- /**
299
- * Optional props for the children. If provided, the children
300
- * will be a function that renders the children.
301
- */
302
- props?: RenderProps;
303
- };
304
- type ComponentPropWithChildrenBuilder<Type extends ComponentPropType, Visibility extends PropVisibility, ChildrenProp extends AnyBuiltPropDefinition> = ((value: unknown) => void) & {
305
- _baseProp: ComponentPropWithPropertiesProp<Type, {
306
- children: ChildrenProp;
307
- }, Visibility>;
308
- type: Type;
309
- visibility: Visibility;
310
- props<const Shape extends BuiltPropShape>(shape: Shape): WrappedProp<ComponentPropWithPropertiesProp<Type, WithChildrenShape<Shape, ChildrenProp>, Visibility>>;
311
- or<Other extends AnyBaseProp>(other: {
312
- _baseProp: Other;
313
- }): WrappedProp<UnionProp<readonly [ComponentPropWithPropertiesProp<Type, {
314
- children: ChildrenProp;
315
- }, Visibility>, Other], Visibility>>;
316
- } & (Visibility extends 'required' ? {
317
- optional(): ComponentPropWithChildrenBuilder<Type, 'optional', ChildrenProp>;
318
- } : {});
319
- type ComponentPropBuilder<Type extends ComponentPropType, Visibility extends PropVisibility = 'required'> = ((value: unknown) => void) & {
320
- _baseProp: ComponentProp<Type, Visibility>;
321
- type: Type;
322
- visibility: Visibility;
323
- props<const Shape extends BuiltPropShape>(shape: Shape): WrappedProp<ComponentPropWithPropertiesProp<Type, Shape, Visibility>>;
324
- config<const Config extends PropConfig>(config: Config): ConfiguredWrappedProp<ComponentProp<Type, Visibility>, Config>;
325
- /**
326
- * Allows the component to have children.
327
- * @param options The options for the children.
328
- */
329
- withChildren<ChildrenType extends ComponentPropType = 'ReactNode', ChildrenVisibility extends PropVisibility = 'optional', const RenderProps extends BuiltPropShape | undefined = undefined>(options?: WithChildrenOptions<ChildrenType, ChildrenVisibility, RenderProps>): ComponentPropWithChildrenBuilder<Type, Visibility, ChildrenPropFor<ChildrenType, ChildrenVisibility, RenderProps>>;
330
- or<Other extends AnyBaseProp>(other: {
331
- _baseProp: Other;
332
- }): WrappedProp<UnionProp<readonly [ComponentProp<Type, Visibility>, Other], Visibility>>;
333
- } & (Visibility extends 'required' ? {
334
- optional(): ComponentPropBuilder<Type, 'optional'>;
335
- } : {});
336
- declare function validateProps<T extends object>(shape: Record<string, AnyBuiltPropDefinition>, props: T): T;
337
- declare const createProp: {
338
- string: PrimitivePropBuilder<"string", "required">;
339
- number: PrimitivePropBuilder<"number", "required">;
340
- boolean: PrimitivePropBuilder<"boolean", "required">;
341
- object: typeof createObjectProp;
342
- component: <Type extends ComponentPropType>(options: {
343
- type: Type;
344
- }) => ComponentPropBuilder<Type, "required">;
345
- };
346
- //#endregion
347
- export { AnyBuiltPropDefinition, EnumWrappedProp, LiteralWrappedProp, NonEmptyReadonlyArray, ResolveLayoutProps, ResolveProps, createPrimitivePropBuilder, createProp, validateProps };
348
- //# sourceMappingURL=create-value.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-value.d.mts","names":[],"sources":["../src/create-value.ts"],"mappings":";;;KAEY,iBAAA,GAAoB,mBAAA;EAC9B,MAAA;EACA,KAAA;EACA,IAAA,EAAM,IAAA;EACN,KAAA,EAAO,MAAA;EACP,KAAA,EAAO,KAAA;EACP,MAAA;EACA,MAAA;AAAA;AAAA,KAEU,mBAAA;EACV,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AAAA,cAoBI,qBAAA,8BAAmD,KAAK;cAChD,IAAA,EAAM,IAAA;AAAA;AAAA,KAOf,cAAA;AAAA,KACA,iBAAA,SAA0B,mBAAmB;AAAA,KACtC,qBAAA,oBAAyC,KAAA,KAAU,KAAK;AAAA,KAC/D,UAAA,GAAa,MAAM;AAAA,KAEnB,QAAA,SACK,iBAAA,GACN,iBAAiB;AAAA,KAGhB,eAAA,cACU,QAAA,qBACM,cAAA;EAGnB,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,KAAA,GAAQ,KAAA;AAAA;AAAA,uBAGK,QAAA,cACA,QAAA,qBACM,cAAA;EAAA,SAGV,IAAA,EAAM,IAAA;EAAA,SACN,UAAA,EAAY,UAAA;EAAA,SACZ,KAAA,GAAQ,KAAA;EAAA,UAEP,KAAA,EAAO,qBAAA,CAAsB,IAAA;cAE3B,OAAA,EAAS,eAAA,CAAgB,IAAA,EAAM,UAAA,EAAY,KAAA;EAAA,SAS9C,QAAA,CAAS,KAAA;EAAA,SACT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,KAAA;AAAA;AAAA,cAG/B,UAAA,oBAA8B,cAAA,UAAwB,QAAA,WAEjE,UAAA;cAGY,UAAA,EAAY,UAAA;EAIxB,QAAA,CAAS,IAAA,EAAM,UAAA,eAAsB,UAAA;EAIrC,OAAA,6BAAoC,KAAA,EAAO,KAAA,GAAK,WAAA,CAAA,KAAA,YAAA,UAAA;EAIhD,IAAA,sBAA0B,qBAAA,UAA+B,MAAA,EAAQ,MAAA,GAAM,QAAA,CAAA,MAAA,YAAA,UAAA;EAIvE,QAAA,CAAS,KAAA;EAMT,MAAA,CAAO,KAAA,YAAiB,KAAA;AAAA;AAAA,cAKpB,UAAA,oBAA8B,cAAA,UAAwB,QAAA,WAE1D,UAAA;cAGY,UAAA,EAAY,UAAA;EAIxB,QAAA,CAAS,IAAA,EAAM,UAAA,eAAsB,UAAA;EAIrC,OAAA,6BAAoC,KAAA,EAAO,KAAA,GAAK,WAAA,CAAA,KAAA,YAAA,UAAA;EAIhD,IAAA,sBAA0B,qBAAA,UAA+B,MAAA,EAAQ,MAAA,GAAM,QAAA,CAAA,MAAA,YAAA,UAAA;EAIvE,QAAA,CAAS,KAAA;EAMT,MAAA,CAAO,KAAA,YAAiB,KAAA;AAAA;AAAA,cAKpB,WAAA,oBAA+B,cAAA,UAAwB,QAAA,YAE3D,UAAA;cAGY,UAAA,EAAY,UAAA;EAIxB,QAAA,CAAS,IAAA,EAAM,WAAA,eAAuB,WAAA;EAItC,OAAA,8BAAqC,KAAA,EAAO,KAAA,GAAK,WAAA,CAAA,KAAA,aAAA,UAAA;EAIjD,IAAA,sBAA0B,qBAAA,WAAgC,MAAA,EAAQ,MAAA,GAAM,QAAA,CAAA,MAAA,aAAA,UAAA;EAIxE,QAAA,CAAS,KAAA;EAMT,MAAA,CAAO,KAAA,YAAiB,KAAA;AAAA;AAAA,cAKpB,WAAA,qBACgB,iBAAA,CAAkB,IAAA,gBACzB,iBAAA,qBACM,cAAA,UACX,QAAA,CAAS,IAAA,EAAM,UAAA,EAAY,KAAA;EAAA,SAClB,KAAA,EAAO,KAAA;cAEZ,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,UAAA,EAAY,UAAA;EAIlD,QAAA,CAAS,IAAA,EAAM,WAAA,CAAY,KAAA,EAAO,IAAA,gBAAiB,WAAA,CAAA,KAAA,EAAA,IAAA;EAInD,QAAA,CAAS,KAAA;EAMT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,KAAA;AAAA;AAAA,cAK7B,QAAA,sBACiB,qBAAA,CAAsB,iBAAA,CAAkB,IAAA,iBAChD,iBAAA,qBACM,cAAA,UACX,QAAA,CAAS,IAAA,EAAM,UAAA,EAAY,MAAA;EAAA,iBAClB,aAAA;cAEL,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,UAAA,EAAY,UAAA;EAKpD,QAAA,CAAS,IAAA,EAAM,QAAA,CAAS,MAAA,EAAQ,IAAA,gBAAiB,QAAA,CAAA,MAAA,EAAA,IAAA;EAIjD,QAAA,CAAS,KAAA;EAcT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,MAAA;AAAA;AAAA,KAM9B,WAAA,GAAc,QAAA,CAAS,QAAA,EAAU,cAAA;AAAA,KAEjC,gBAAA,cAA8B,WAAA,IACjC,IAAA,SAAa,QAAA,sBAA8B,CAAA;AAAA,KAExC,iBAAA,cAA+B,WAAA,IAClC,IAAA,SAAa,QAAA,sBAA8B,cAAA,SACvC,CAAA,GACA,cAAA;AAAA,KAED,aAAA,oBACgB,cAAA,uBACE,WAAA,IACnB,UAAA;EACE,QAAA,IAAY,WAAA,CAAY,YAAA;AAAA;AAAA,KAIzB,WAAA,cAAyB,WAAA;EAC5B,MAAA,sBAA4B,UAAA,EAC1B,MAAA,EAAQ,MAAA,GACP,qBAAA,CAAsB,IAAA,EAAM,MAAA;AAAA;AAAA,KAG5B,yBAAA,cACU,iBAAA,qBACM,cAAA;EAGnB,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;AAAA,MACR,KAAA;EAAgC,KAAA,EAAO,KAAA;AAAA;AAAA,KAExC,sBAAA,eACW,cAAA,qBACK,cAAA;EAEnB,IAAA;EACA,UAAA,EAAY,UAAA;EACZ,UAAA,EAAY,KAAA;AAAA;AAAA,KAGT,kCAAA,cACU,iBAAA,gBACC,cAAA,qBACK,cAAA;EAEnB,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,UAAA,EAAY,KAAA;AAAA;AAAA,KAGT,qBAAA,0BACsB,WAAA,uBACN,cAAA;EAEnB,IAAA;EACA,UAAA,EAAY,UAAA;EACZ,OAAA,EAAS,OAAA;AAAA;AAAA,KAGN,8BAAA,eACW,cAAA,uBACO,iBAAA,qBACF,cAAA;EAEnB,IAAA;EACA,UAAA,EAAY,UAAA;EACZ,WAAA,EAAa,KAAA;EACb,YAAA,EAAc,YAAA;AAAA;AAAA,KAGX,sBAAA,oBAA0C,cAAA,IAC7C,yBAAA,WAAoC,UAAA;AAAA,KACjC,sBAAA,oBAA0C,cAAA,IAC7C,yBAAA,WAAoC,UAAA;AAAA,KACjC,uBAAA,oBAA2C,cAAA,IAC9C,yBAAA,YAAqC,UAAA;AAAA,KAClC,uBAAA,qBAEU,iBAAA,qBACM,cAAA,IACjB,yBAAA,CAA0B,IAAA,EAAM,UAAA,EAAY,KAAA;AAAA,KAC3C,oBAAA,cACU,iBAAA,qBACM,cAAA,IACjB,yBAAA,CAA0B,IAAA,EAAM,UAAA;AAAA,KAE/B,gBAAA,cAA8B,WAAA,IACjC,IAAA,SAAa,UAAA,qBACT,sBAAA,CAAuB,UAAA,IACvB,IAAA,SAAa,UAAA,qBACX,sBAAA,CAAuB,UAAA,IACvB,IAAA,SAAa,WAAA,qBACX,uBAAA,CAAwB,UAAA,IACxB,IAAA,SAAa,WAAA,8CACX,uBAAA,CAAwB,KAAA,EAAO,IAAA,EAAM,UAAA,IACrC,IAAA,SAAa,QAAA,gDACX,oBAAA,CAAqB,IAAA,EAAM,UAAA,IAC3B,IAAA,SAAa,UAAA,kCACX,sBAAA,CAAuB,KAAA,EAAO,UAAA,IAC9B,IAAA,SAAa,+BAAA,8CAKX,kCAAA,CAAmC,IAAA,EAAM,KAAA,EAAO,UAAA,IAChD,IAAA,SAAa,aAAA;EACT,IAAA,EAAM,IAAA;EAAM,UAAA,EAAY,UAAA;AAAA,IAC1B,IAAA,SAAa,SAAA,oCACX,qBAAA,CAAsB,OAAA,EAAS,UAAA,IAC/B,IAAA,SAAa,kBAAA,sDAKX,8BAAA,CACE,KAAA,EACA,YAAA,EACA,UAAA;AAAA,KAIrB,qBAAA,cACU,WAAA,iBACE,UAAA,MACX,KAAA,cAAmB,UAAA,CAAW,IAAA,iBAClC,gBAAA,CAAiB,IAAA;EACf,SAAA,EAAW,IAAA;EACX,MAAA,EAAQ,MAAA;AAAA;AAAA,KAGA,WAAA,cAAyB,WAAA,MACnC,KAAA,cACG,UAAA,CAAW,IAAA,iBACd,gBAAA,CAAiB,IAAA,IACjB,uBAAA,CAAwB,IAAA;EACtB,SAAA,EAAW,IAAA;EACX,EAAA,eAAiB,WAAA,EAAa,KAAA;IAC5B,SAAA,EAAW,KAAA;EAAA,IACT,WAAA,CAAY,SAAA,WAAoB,IAAA,EAAM,KAAA,GAAQ,iBAAA,CAAkB,IAAA;AAAA;AAAA,KAG5D,kBAAA,eACI,iBAAA,CAAkB,IAAA,gBACnB,iBAAA,qBACM,cAAA,IACjB,WAAA,CAAY,WAAA,CAAY,KAAA,EAAO,IAAA,EAAM,UAAA;AAAA,KAE7B,eAAA,gBACK,qBAAA,CAAsB,iBAAA,CAAkB,IAAA,iBAC1C,iBAAA,qBACM,cAAA,IACjB,WAAA,CAAY,QAAA,CAAS,MAAA,EAAQ,IAAA,EAAM,UAAA;AAAA,KAClC,UAAA;AAAA,KACA,kBAAA,cACU,iBAAA,cACD,UAAA,gBACE,iBAAA,CAAkB,IAAA,KAC9B,GAAA,qBACA,KAAA,GACA,GAAA,kBACE,qBAAA,CAAsB,KAAA;AAAA,KAEvB,cAAA,cACU,iBAAA,qBACM,cAAA,cACP,UAAA,gBACE,iBAAA,CAAkB,IAAA,KAC9B,GAAA,qBACA,kBAAA,CAAmB,KAAA,EAAO,IAAA,EAAM,UAAA,IAChC,GAAA,kBACE,eAAA,CAAgB,qBAAA,CAAsB,KAAA,GAAQ,IAAA,EAAM,UAAA;AAAA,KAErD,iBAAA,cACU,iBAAA,qBACM,cAAA,cACP,UAAA,mBACK,iBAAA,CAAkB,IAAA,GACnC,KAAA,EAAO,kBAAA,CAAmB,IAAA,EAAM,GAAA,EAAK,KAAA,MAClC,cAAA,CAAe,IAAA,EAAM,UAAA,EAAY,GAAA,EAAK,KAAA;AAAA,KAEtC,kBAAA,cACU,iBAAA,qBACM,cAAA,eACN,WAAA,uBACQ,WAAA,IACnB,WAAA,CAAY,IAAA,IACd,aAAA,CAAc,UAAA,EAAY,YAAA;EACxB,OAAA,EAAS,iBAAA,CAAkB,IAAA,EAAM,UAAA;EACjC,IAAA,EAAM,iBAAA,CAAkB,IAAA,EAAM,UAAA;AAAA;AAAA,KAG7B,oBAAA,oBAAwC,cAAA;EAC3C,MAAA,EAAQ,kBAAA,WAEN,UAAA,EACA,UAAA,CAAW,UAAA,GACX,UAAA;EAEF,MAAA,EAAQ,kBAAA,WAEN,UAAA,EACA,UAAA,CAAW,UAAA,GACX,UAAA;EAEF,OAAA,EAAS,kBAAA,YAEP,UAAA,EACA,WAAA,CAAY,UAAA,GACZ,WAAA;AAAA;AAAA,KAIC,oBAAA,SACH,IAAA,SAAa,QAAA,oBACQ,iBAAA,2BACM,cAAA,IAEvB,oBAAA,CAAqB,UAAA,EAAY,IAAA;AAAA,KAElC,kBAAA,cACU,WAAA,qBACM,cAAA,uBACE,WAAA,IACnB,WAAA,CAAY,IAAA,IAAQ,aAAA,CAAc,UAAA,EAAY,YAAA;AAAA,KAE7C,kBAAA,SACH,IAAA,SAAa,WAAA,8CACT,kBAAA,CACE,WAAA,CAAY,KAAA,EAAO,IAAA,EAAM,UAAA,GACzB,UAAA,EACA,WAAA,CAAY,KAAA,EAAO,IAAA,iBAErB,IAAA,SAAa,QAAA,+CACX,kBAAA,CACE,QAAA,CAAS,MAAA,EAAQ,IAAA,EAAM,UAAA,GACvB,UAAA,EACA,QAAA,CAAS,MAAA,EAAQ,IAAA;AAAA,KAGtB,iBAAA,SACH,IAAA,SAAa,UAAA,kCACT,aAAA,CAAc,UAAA,EAAY,UAAA,CAAW,KAAA;AAAA,KAEtC,6BAAA,SACH,IAAA,SAAa,+BAAA,8CAKT,aAAA,CACE,UAAA,EACA,+BAAA,CAAgC,IAAA,EAAM,KAAA;AAAA,KAGzC,gBAAA,SACH,IAAA,SAAa,SAAA,oCACT,aAAA,CAAc,UAAA,EAAY,SAAA,CAAU,OAAA;AAAA,KAErC,uBAAA,cAAqC,WAAA,KACxC,kBAAA,CAAmB,IAAA,sBAEhB,iBAAA,CAAkB,IAAA,sBAChB,6BAAA,CAA8B,IAAA,sBAC5B,gBAAA,CAAiB,IAAA,sBACf,oBAAA,CAAqB,IAAA,0BAEpB,oBAAA,CAAqB,IAAA,IACvB,gBAAA,CAAiB,IAAA,IACnB,6BAAA,CAA8B,IAAA,IAChC,iBAAA,CAAkB,IAAA,IACpB,kBAAA,CAAmB,IAAA;AAAA,UACN,sBAAA;EAAA,CACd,KAAA;EACD,UAAA,EAAY,cAAA;EACZ,SAAA,GAAY,WAAW;AAAA;AAAA,UAEf,cAAA;EAAA,CACP,GAAA,WAAc,sBAAsB;AAAA;AAAA,KAElC,qBAAA,oBAAyC,sBAAA,IAC5C,UAAA,CAAW,UAAA;AAAA,KACR,sBAAA,WAAiC,sBAAA,IAA0B,CAAA;EAC9D,SAAA,kBAA2B,WAAA;AAAA,IAEzB,gBAAA,CAAiB,CAAA,IACjB,UAAA,CAAW,CAAA;AAAA,KACV,sBAAA,eAAqC,cAAA,oBAC1B,KAAA,IAAS,KAAA,CAAM,GAAA,qCACzB,GAAA,WACQ,sBAAA,CAAuB,KAAA,CAAM,GAAA,uBAE3B,KAAA,IAAS,KAAA,CAAM,GAAA,6CAEzB,GAAA,IAAO,sBAAA,CAAuB,KAAA,CAAM,GAAA;;KAIrC,gBAAA,WAA2B,sBAAA,IAA0B,CAAC;EACzD,IAAA;AAAA;;;;;KASG,eAAA,6BAA4C,sBAAA,IAC/C,gBAAA,CAAiB,CAAA,iBAAkB,UAAA,CAAW,CAAA,IAAK,CAAA;;;;;;;;;KAUzC,YAAA,eAA2B,MAAA,SAAe,sBAAA,mBAEtC,KAAA,aAAkB,KAAA,CAAM,CAAA,qCAChC,eAAA,CAAgB,CAAA,EAAG,KAAA,CAAM,CAAA,aACjB,sBAAA,CAAuB,KAAA,CAAM,CAAA,qBAE7B,KAAA,aAAkB,KAAA,CAAM,CAAA,6CAEhC,eAAA,CAAgB,CAAA,EAAG,KAAA,CAAM,CAAA,MAAO,sBAAA,CAAuB,KAAA,CAAM,CAAA;;AA3ctC;AAG9B;;KA+cI,wBAAA,WAAmC,WAAA,IAAe,CAAA;EACrD,IAAA;EACA,UAAA,sBAAgC,MAAA,SAAe,sBAAA;AAAA,KAE5C,KAAA,EAAO,YAAA,CAAa,KAAA,MAAW,GAAA,CAAI,OAAA,GACpC,CAAA;EAAY,IAAA;AAAA,UACJ,GAAA,CAAI,OAAA,GACV,gBAAA,CAAiB,CAAA;;;;;;;;KASlB,4BAAA,WAAuC,sBAAA,IAC1C,CAAA;EACE,IAAA;EACA,UAAA,sBAAgC,MAAA,SAAe,sBAAA;AAAA,KAE5C,KAAA,EAAO,YAAA,CAAa,KAAA,MAAW,GAAA,CAAI,OAAA,GACpC,CAAA;EAAY,IAAA;AAAA,UACJ,GAAA,CAAI,OAAA,GACV,CAAA;EAAY,OAAA,iCAAwC,WAAA;AAAA,IAClD,wBAAA,CAAyB,OAAA,YACzB,sBAAA,CAAuB,CAAA;;;;;;;;;;KAWrB,kBAAA,eACI,MAAA,SAAe,sBAAA,mBAEjB,KAAA,aAAkB,KAAA,CAAM,CAAA,qCAChC,eAAA,CAAgB,CAAA,EAAG,KAAA,CAAM,CAAA,aACjB,4BAAA,CAA6B,KAAA,CAAM,CAAA,qBAEnC,KAAA,aAAkB,KAAA,CAAM,CAAA,6CAEhC,eAAA,CAAgB,CAAA,EAAG,KAAA,CAAM,CAAA,MAAO,4BAAA,CAA6B,KAAA,CAAM,CAAA;AAAA,cAGnE,UAAA,qBACgB,cAAA,qBACD,cAAA,UACX,QAAA,WAER,UAAA,kBAEgB,KAAA,GAAQ,qBAAA,CAAsB,KAAA,CAAM,GAAA;EAAA,SAG3C,UAAA,EAAY,KAAA;cAET,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,UAAA;EAK3C,QAAA,CAAS,IAAA,EAAM,UAAA,CAAW,KAAA,gBAAkB,UAAA,CAAA,KAAA;EAI5C,QAAA,CAAS,KAAA,4BAED,KAAA,GAAA,UAAA,CAAA,KAAA,CAAA,GAAA;EA6BR,MAAA,CAAO,KAAA,YAAiB,KAAA,oBACR,KAAA,GAAQ,qBAAA,CAAsB,KAAA,CAAM,GAAA;AAAA;AAAA,cA+BhD,aAAA,cACS,iBAAA,qBACM,cAAA,UACX,QAAA,CAAS,IAAA,EAAM,UAAA,EAAY,oBAAA,CAAqB,IAAA;cAC5C,IAAA,EAAM,IAAA,EAAM,UAAA,EAAY,UAAA;EAIpC,QAAA,CAAS,IAAA,EAAM,aAAA,CAAc,IAAA,gBAAiB,aAAA,CAAA,IAAA;EAI9C,QAAA,CAAS,KAAA;EAYT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,oBAAA,CAAqB,IAAA;AAAA;AAAA,cAQlD,+BAAA,cACS,iBAAA,sBACO,cAAA,qBACD,cAAA,UACX,QAAA,CAAS,IAAA,EAAM,UAAA,EAAY,oBAAA,CAAqB,IAAA;EAAA,SAC/C,UAAA,EAAY,KAAA;cAET,IAAA,EAAM,IAAA,EAAM,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,UAAA;EAKvD,QAAA,CAAS,IAAA,EAAM,+BAAA,CAAgC,IAAA,EAAM,KAAA,gBAAkB,+BAAA,CAAA,IAAA,EAAA,KAAA;EAQvE,QAAA,CAAS,KAAA;EAYT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,oBAAA,CAAqB,IAAA;AAAA;AAAA,cAQlD,SAAA,gCAC2B,WAAA,uBACZ,cAAA,UACX,QAAA,UAAkB,UAAA,EAAY,gBAAA,CAAiB,OAAA;EAAA,SAC9C,OAAA,EAAS,OAAA;cAEN,OAAA,EAAS,OAAA,EAAS,UAAA,EAAY,UAAA;EAK1C,QAAA,CAAS,IAAA,EAAM,SAAA,CAAU,OAAA,gBAAoB,SAAA,CAAA,OAAA;EAI7C,QAAA,CAAS,KAAA;EAOT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,gBAAA,CAAiB,OAAA;AAAA;AAAA,cAK9C,kBAAA,qBACgB,cAAA,uBACC,iBAAA,qBACF,cAAA,UACX,QAAA,aAER,UAAA,GAEE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,oBAAA,CAAqB,YAAA;EAAA,SAEjB,WAAA,EAAa,KAAA;EAAA,SACb,YAAA,EAAc,YAAA;cAGrB,WAAA,EAAa,KAAA,EACb,YAAA,EAAc,YAAA,EACd,UAAA,EAAY,UAAA;EAOd,QAAA,CAAS,IAAA,EAAM,kBAAA,CAAmB,KAAA,EAAO,YAAA,gBAAyB,kBAAA,CAAA,KAAA,EAAA,YAAA;EAQlE,QAAA,CAAS,KAAA,aAKL,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,oBAAA,CAAqB,YAAA;EAG5B,MAAA,CACE,KAAA,YACC,KAAA,KACD,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,oBAAA,CAAqB,YAAA;AAAA;AAAA,KAUhB,qBAAA,eACI,cAAA,qBACK,cAAA,iBACjB,WAAA,CAAY,UAAA,CAAW,KAAA,EAAO,UAAA;AAAA,KAE7B,wBAAA,oBAA4C,cAAA;EAC/C,MAAA,EAAQ,WAAA,CAAY,UAAA,CAAW,UAAA;EAC/B,MAAA,EAAQ,WAAA,CAAY,UAAA,CAAW,UAAA;EAC/B,OAAA,EAAS,WAAA,CAAY,WAAA,CAAY,UAAA;AAAA;AAAA,KAG9B,4BAAA,oBAAgD,cAAA;EACnD,MAAA,EAAQ,UAAA,CAAW,UAAA;EACnB,MAAA,EAAQ,UAAA,CAAW,UAAA;EACnB,OAAA,EAAS,WAAA,CAAY,UAAA;AAAA;AAAA,KAGlB,kBAAA,cACU,iBAAA,qBACM,cAAA,sCACI,iBAAA,CAAkB,IAAA,GACzC,KAAA,EAAO,KAAA,KACJ,kBAAA,CAAmB,KAAA,EAAO,IAAA,EAAM,UAAA;AAAA,KAChC,eAAA,cACU,iBAAA,qBACM,cAAA,uCACK,qBAAA,CAAsB,iBAAA,CAAkB,IAAA,IAChE,MAAA,EAAQ,MAAA,KACL,eAAA,CAAgB,MAAA,EAAQ,IAAA,EAAM,UAAA;AAAA,KAC9B,oBAAA,cACU,iBAAA,qBACM,cAAA,wBACV,wBAAA,CAAyB,UAAA,EAAY,IAAA;EAC9C,OAAA,EAAS,kBAAA,CAAmB,IAAA,EAAM,UAAA;EAClC,IAAA,EAAM,eAAA,CAAgB,IAAA,EAAM,UAAA;EAC5B,MAAA,sBAA4B,UAAA,EAC1B,MAAA,EAAQ,MAAA,GACP,qBAAA,CACD,4BAAA,CAA6B,UAAA,EAAY,IAAA,GACzC,MAAA;AAAA,KAEC,UAAA;EAEG,QAAA,IAAY,oBAAA,CAAqB,IAAA;AAAA;AAAA,iBA8IzB,0BAAA,cACD,iBAAA,qBACM,cAAA,eAEnB,IAAA,EAAM,IAAA,EACN,UAAA,GAA2B,UAAA,GAC1B,oBAAA,CAAqB,IAAA,EAAM,UAAA;AAAA,iBAqBrB,gBAAA,qBAAqC,cAAA,EAC5C,UAAA,EAAY,KAAA,GACX,qBAAA,CAAsB,KAAA;AAAA,KAIpB,iBAAA;AAAA,KACA,oBAAA;EACH,SAAA,EAAW,SAAA;EACX,aAAA,EAAe,GAAA,CAAI,OAAO;AAAA;AAAA,KAGvB,eAAA,sBACkB,iBAAA,6BACM,cAAA,sBACP,cAAA,iBACjB,WAAA,SAAoB,cAAA,GACrB,WAAA,CACE,kBAAA,CAAmB,WAAA,EAAa,YAAA,EAAc,kBAAA,KAEhD,WAAA,CAAY,aAAA,CAAc,YAAA,EAAc,kBAAA,MAC1C,sBAAA;AAAA,KAEG,iBAAA,eACW,cAAA,uBACO,sBAAA,IACnB,KAAA;EAAU,QAAA,EAAU,YAAA;AAAA;AAAA,KAEnB,mBAAA,sBACkB,iBAAA,6BACM,cAAA,sBACP,cAAA;EA95BA;;;;EAo6BpB,IAAA,GAAO,YAAA;EAj6BgB;;;;EAs6BvB,UAAA,GAAa,kBAAA;EAn6BqC;;;;EAw6BlD,KAAA,GAAQ,WAAA;AAAA;AAAA,KAGE,gCAAA,cACG,iBAAA,qBACM,cAAA,uBACE,sBAAA,MACjB,KAAA;EACJ,SAAA,EAAW,+BAAA,CACT,IAAA;IACE,QAAA,EAAU,YAAA;EAAA,GACZ,UAAA;EAEF,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,KAAA,qBAA0B,cAAA,EACxB,KAAA,EAAO,KAAA,GACN,WAAA,CACD,+BAAA,CACE,IAAA,EACA,iBAAA,CAAkB,KAAA,EAAO,YAAA,GACzB,UAAA;EAGJ,EAAA,eAAiB,WAAA,EAAa,KAAA;IAC5B,SAAA,EAAW,KAAA;EAAA,IACT,WAAA,CACF,SAAA,WAEI,+BAAA,CACE,IAAA;IACE,QAAA,EAAU,YAAA;EAAA,GACZ,UAAA,GAEF,KAAA,GAEF,UAAA;AAAA,KAGD,UAAA;EAEG,QAAA,IAAY,gCAAA,CACV,IAAA,cAEA,YAAA;AAAA;AAAA,KAKE,oBAAA,cACG,iBAAA,qBACM,cAAA,mBACf,KAAA;EACJ,SAAA,EAAW,aAAA,CAAc,IAAA,EAAM,UAAA;EAC/B,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,KAAA,qBAA0B,cAAA,EACxB,KAAA,EAAO,KAAA,GACN,WAAA,CAAY,+BAAA,CAAgC,IAAA,EAAM,KAAA,EAAO,UAAA;EAC5D,MAAA,sBAA4B,UAAA,EAC1B,MAAA,EAAQ,MAAA,GACP,qBAAA,CAAsB,aAAA,CAAc,IAAA,EAAM,UAAA,GAAa,MAAA;EAr+BpB;;;;EA0+BtC,YAAA,sBACuB,iBAAA,2CACM,cAAA,yCACD,cAAA,0BAE1B,OAAA,GAAU,mBAAA,CACR,YAAA,EACA,kBAAA,EACA,WAAA,IAED,gCAAA,CACD,IAAA,EACA,UAAA,EACA,eAAA,CAAgB,YAAA,EAAc,kBAAA,EAAoB,WAAA;EAEpD,EAAA,eAAiB,WAAA,EAAa,KAAA;IAC5B,SAAA,EAAW,KAAA;EAAA,IACT,WAAA,CACF,SAAA,WAAoB,aAAA,CAAc,IAAA,EAAM,UAAA,GAAa,KAAA,GAAQ,UAAA;AAAA,KAE5D,UAAA;EACG,QAAA,IAAY,oBAAA,CAAqB,IAAA;AAAA;AAAA,iBAgJzB,aAAA,mBACd,KAAA,EAAO,MAAA,SAAe,sBAAA,GACtB,KAAA,EAAO,CAAA,GAAC,CAAA;AAAA,cAmBG,UAAA;;;;;2BAKc,iBAAA,EAAiB,OAAA;IAAa,IAAA,EAAM,IAAA;EAAA,MAAM,oBAAA,CAAA,IAAA;AAAA"}