@fewbox/den-web 0.2.0-preview.2 → 0.2.0-preview.21
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/engine.js +2 -0
- package/engine.js.map +1 -0
- package/index-engine.d.ts +27 -0
- package/index.css +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +10 -1
- package/scripts/generate-packages.js +12 -0
- package/server.js +71 -0
- package/src/components/Engine/Base/index.d.ts +3 -3
- package/src/components/Engine/index.d.ts +21 -14
- package/src/components/View/VAside/index.d.ts +5 -0
- package/src/components/View/VInput/VDropdown/index.d.ts +2 -0
- package/src/components/View/VNav/index.d.ts +5 -0
- package/src/components/core.d.ts +2 -0
- package/templates/.claude/skills/fewbox-den/SKILL.md +52 -28
- package/templates/style/_core.scss +12 -0
- package/templates/style/_root-properties.scss +3 -0
- package/templates/style/_variables.scss +12 -0
- package/tsconfig.app.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fewbox/den-web",
|
|
3
|
-
"version": "0.2.0-preview.
|
|
3
|
+
"version": "0.2.0-preview.21",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index-web.d.ts",
|
|
6
6
|
"repository": "https://github.com/FewBox/fewbox-den.git",
|
|
7
7
|
"author": "FewBox Support <support@fewbox.com>",
|
|
8
8
|
"license": "Apache-2.0",
|
|
9
9
|
"type": "module",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./index-web.d.ts",
|
|
13
|
+
"react-server": "./server.js",
|
|
14
|
+
"default": "./index.js"
|
|
15
|
+
},
|
|
16
|
+
"./index.css": "./index.css",
|
|
17
|
+
"./*": "./*"
|
|
18
|
+
},
|
|
10
19
|
"scripts": {
|
|
11
20
|
"postinstall": "node scripts/copy-templates.js"
|
|
12
21
|
},
|
|
@@ -21,6 +21,18 @@ for (const registry of registries) {
|
|
|
21
21
|
type: common.type,
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
if (variantConfig.hasServerEntry) {
|
|
25
|
+
pkg.exports = {
|
|
26
|
+
'.': {
|
|
27
|
+
types: `./${variantConfig.types}`,
|
|
28
|
+
'react-server': './server.js',
|
|
29
|
+
default: './index.js',
|
|
30
|
+
},
|
|
31
|
+
'./index.css': './index.css',
|
|
32
|
+
'./*': './*',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
24
36
|
if (variantConfig.hasPostinstall) {
|
|
25
37
|
pkg.scripts = { postinstall: 'node scripts/copy-templates.js' };
|
|
26
38
|
}
|
package/server.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Engine constants
|
|
2
|
+
export {
|
|
3
|
+
ColorType,
|
|
4
|
+
FontSizeType,
|
|
5
|
+
FontWeightType,
|
|
6
|
+
FontFamilyType,
|
|
7
|
+
LineHeightType,
|
|
8
|
+
PaddingType,
|
|
9
|
+
MarginType,
|
|
10
|
+
GapType,
|
|
11
|
+
LetterSpacingType,
|
|
12
|
+
BorderRadiusType,
|
|
13
|
+
BorderStyleType,
|
|
14
|
+
BorderWidthType,
|
|
15
|
+
VisibilityType,
|
|
16
|
+
DisplayType,
|
|
17
|
+
CursorType,
|
|
18
|
+
OverflowType,
|
|
19
|
+
OverflowXType,
|
|
20
|
+
OverflowYType,
|
|
21
|
+
OpacityType,
|
|
22
|
+
ViewSizeType,
|
|
23
|
+
PseudoType,
|
|
24
|
+
DirectionType,
|
|
25
|
+
getGeneratedClassName,
|
|
26
|
+
getWeightValue,
|
|
27
|
+
// Layout constants
|
|
28
|
+
ZoneCategory,
|
|
29
|
+
ScreenSizeType,
|
|
30
|
+
BreakpointCategory,
|
|
31
|
+
BreakpointType,
|
|
32
|
+
DockCategory,
|
|
33
|
+
DockAlignment,
|
|
34
|
+
PositionCategory,
|
|
35
|
+
PositionType,
|
|
36
|
+
PositionAreaCategory,
|
|
37
|
+
FlexDirectionType,
|
|
38
|
+
FlexWrapType,
|
|
39
|
+
FlexJustifyContentType,
|
|
40
|
+
FlexAlignItemsType,
|
|
41
|
+
FlexAlignContentType,
|
|
42
|
+
FlexItemAlignSelfType,
|
|
43
|
+
XCrossType,
|
|
44
|
+
YCrossType,
|
|
45
|
+
// View constants
|
|
46
|
+
BackgroundPositionType,
|
|
47
|
+
HandleSubmitCategory,
|
|
48
|
+
FileCategory,
|
|
49
|
+
SvgCategory,
|
|
50
|
+
HyperlinkCategory,
|
|
51
|
+
ImageCategory,
|
|
52
|
+
LabelCategory,
|
|
53
|
+
LabelType,
|
|
54
|
+
LabelAlignType,
|
|
55
|
+
TextCategory,
|
|
56
|
+
TextAlignType,
|
|
57
|
+
EllipseCategory,
|
|
58
|
+
LineCategory,
|
|
59
|
+
ShadowCategory,
|
|
60
|
+
AnimationCategory,
|
|
61
|
+
AnimationDelay,
|
|
62
|
+
AnimationRepeat,
|
|
63
|
+
AnimationSpeed,
|
|
64
|
+
RootCategory,
|
|
65
|
+
ThemeCategory,
|
|
66
|
+
TooltipCategory,
|
|
67
|
+
// Util
|
|
68
|
+
convertFormDataToJson
|
|
69
|
+
} from './engine.js';
|
|
70
|
+
|
|
71
|
+
export * from './index.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DirectionType, FullColorType, PseudoType, FullFontSizeType, FontWeightType, FullBorderRadiusType, FullBorderStyleType, FullBorderWidthType, FullPaddingType, FullMarginType,
|
|
1
|
+
import { DirectionType, FullColorType, PseudoType, FullFontSizeType, FontWeightType, FullBorderRadiusType, FullBorderStyleType, FullBorderWidthType, FullPaddingType, FullMarginType, FullOpacityType, FullLetterSpacingType, FullDisplayType, FullVisibilityType, FullCursorType, FullOverflowType, FullOverflowXType, FullOverflowYType } from '..';
|
|
2
2
|
import { Property } from 'csstype';
|
|
3
3
|
export interface IViewProps {
|
|
4
4
|
className?: string;
|
|
@@ -20,7 +20,7 @@ export interface IViewProps {
|
|
|
20
20
|
borderWidth?: FullBorderWidthType;
|
|
21
21
|
padding?: FullPaddingType;
|
|
22
22
|
margin?: FullMarginType;
|
|
23
|
-
opacity?:
|
|
23
|
+
opacity?: FullOpacityType;
|
|
24
24
|
display?: FullDisplayType;
|
|
25
25
|
visibility?: FullVisibilityType;
|
|
26
26
|
cursor?: FullCursorType;
|
|
@@ -33,7 +33,7 @@ export interface IViewProps {
|
|
|
33
33
|
minWidth?: Property.Width;
|
|
34
34
|
maxHeight?: Property.Width;
|
|
35
35
|
maxWidth?: Property.Width;
|
|
36
|
-
letterSpacing?:
|
|
36
|
+
letterSpacing?: FullLetterSpacingType;
|
|
37
37
|
lineHeight?: Property.LineHeight;
|
|
38
38
|
overflowX?: FullOverflowXType;
|
|
39
39
|
overflowY?: FullOverflowYType;
|
|
@@ -80,7 +80,7 @@ export declare const PaddingType: {
|
|
|
80
80
|
readonly ExtraLarge: "padding-extra-large";
|
|
81
81
|
};
|
|
82
82
|
export type PaddingType = typeof PaddingType[keyof typeof PaddingType];
|
|
83
|
-
export type FullPaddingType = PaddingType |
|
|
83
|
+
export type FullPaddingType = PaddingType | Property.Padding;
|
|
84
84
|
export declare const MarginType: {
|
|
85
85
|
readonly Default: "margin";
|
|
86
86
|
readonly Normal: "margin-normal";
|
|
@@ -90,7 +90,7 @@ export declare const MarginType: {
|
|
|
90
90
|
readonly ExtraLarge: "margin-extra-large";
|
|
91
91
|
};
|
|
92
92
|
export type MarginType = typeof MarginType[keyof typeof MarginType];
|
|
93
|
-
export type FullMarginType = MarginType |
|
|
93
|
+
export type FullMarginType = MarginType | Property.Margin;
|
|
94
94
|
export declare const GapType: {
|
|
95
95
|
readonly Default: "gap";
|
|
96
96
|
readonly Normal: "gap-normal";
|
|
@@ -103,8 +103,14 @@ export type GapType = typeof GapType[keyof typeof GapType];
|
|
|
103
103
|
export type FullGapType = GapType | Property.Gap;
|
|
104
104
|
export declare const LetterSpacingType: {
|
|
105
105
|
readonly Default: "letter-spacing";
|
|
106
|
+
readonly Normal: "letter-spacing-normal";
|
|
107
|
+
readonly ExtraSmall: "letter-spacing-extra-small";
|
|
108
|
+
readonly Small: "letter-spacing-small";
|
|
109
|
+
readonly Large: "letter-spacing-large";
|
|
110
|
+
readonly ExtraLarge: "letter-spacing-extra-large";
|
|
106
111
|
};
|
|
107
112
|
export type LetterSpacingType = typeof LetterSpacingType[keyof typeof LetterSpacingType];
|
|
113
|
+
export type FullLetterSpacingType = LetterSpacingType | Property.LetterSpacing;
|
|
108
114
|
export declare const BorderRadiusType: {
|
|
109
115
|
readonly Default: "border-radius";
|
|
110
116
|
readonly Normal: "border-radius-normal";
|
|
@@ -115,7 +121,7 @@ export declare const BorderRadiusType: {
|
|
|
115
121
|
readonly Max: "border-radius-max";
|
|
116
122
|
};
|
|
117
123
|
export type BorderRadiusType = typeof BorderRadiusType[keyof typeof BorderRadiusType];
|
|
118
|
-
export type FullBorderRadiusType = BorderRadiusType |
|
|
124
|
+
export type FullBorderRadiusType = BorderRadiusType | Property.BorderRadius;
|
|
119
125
|
export declare const BorderStyleType: {
|
|
120
126
|
readonly None: "border-style-none";
|
|
121
127
|
readonly Solid: "border-style-solid";
|
|
@@ -129,7 +135,7 @@ export declare const BorderStyleType: {
|
|
|
129
135
|
readonly Hidden: "border-style-hidden";
|
|
130
136
|
};
|
|
131
137
|
export type BorderStyleType = typeof BorderStyleType[keyof typeof BorderStyleType];
|
|
132
|
-
export type FullBorderStyleType = BorderStyleType |
|
|
138
|
+
export type FullBorderStyleType = BorderStyleType | Property.BorderStyle;
|
|
133
139
|
export declare const BorderWidthType: {
|
|
134
140
|
readonly Default: "border-width";
|
|
135
141
|
readonly Normal: "border-width-normal";
|
|
@@ -139,14 +145,14 @@ export declare const BorderWidthType: {
|
|
|
139
145
|
readonly ExtraLarge: "border-width-extra-large";
|
|
140
146
|
};
|
|
141
147
|
export type BorderWidthType = typeof BorderWidthType[keyof typeof BorderWidthType];
|
|
142
|
-
export type FullBorderWidthType = BorderWidthType |
|
|
148
|
+
export type FullBorderWidthType = BorderWidthType | Property.BorderWidth;
|
|
143
149
|
export declare const VisibilityType: {
|
|
144
150
|
readonly Visible: "visibility-visible";
|
|
145
151
|
readonly Hidden: "visibility-hidden";
|
|
146
152
|
readonly Collapse: "visibility-collapse";
|
|
147
153
|
};
|
|
148
154
|
export type VisibilityType = typeof VisibilityType[keyof typeof VisibilityType];
|
|
149
|
-
export type FullVisibilityType = VisibilityType |
|
|
155
|
+
export type FullVisibilityType = VisibilityType | Property.Visibility;
|
|
150
156
|
export declare const DisplayType: {
|
|
151
157
|
readonly None: "display-none";
|
|
152
158
|
readonly Block: "display-block";
|
|
@@ -163,7 +169,7 @@ export declare const DisplayType: {
|
|
|
163
169
|
readonly FlowRoot: "display-flow-root";
|
|
164
170
|
};
|
|
165
171
|
export type DisplayType = typeof DisplayType[keyof typeof DisplayType];
|
|
166
|
-
export type FullDisplayType = DisplayType |
|
|
172
|
+
export type FullDisplayType = DisplayType | Property.Display;
|
|
167
173
|
export declare const CursorType: {
|
|
168
174
|
readonly Auto: "cursor-auto";
|
|
169
175
|
readonly Default: "cursor-default";
|
|
@@ -203,7 +209,7 @@ export declare const CursorType: {
|
|
|
203
209
|
readonly ZoomOut: "cursor-zoom-out";
|
|
204
210
|
};
|
|
205
211
|
export type CursorType = typeof CursorType[keyof typeof CursorType];
|
|
206
|
-
export type FullCursorType = CursorType |
|
|
212
|
+
export type FullCursorType = CursorType | Property.Cursor;
|
|
207
213
|
export declare const OverflowType: {
|
|
208
214
|
readonly Visible: "overflow-visible";
|
|
209
215
|
readonly Hidden: "overflow-hidden";
|
|
@@ -212,7 +218,7 @@ export declare const OverflowType: {
|
|
|
212
218
|
readonly Clip: "overflow-clip";
|
|
213
219
|
};
|
|
214
220
|
export type OverflowType = typeof OverflowType[keyof typeof OverflowType];
|
|
215
|
-
export type FullOverflowType = OverflowType |
|
|
221
|
+
export type FullOverflowType = OverflowType | Property.Overflow;
|
|
216
222
|
export declare const OverflowXType: {
|
|
217
223
|
readonly Visible: "overflow-x-visible";
|
|
218
224
|
readonly Hidden: "overflow-x-hidden";
|
|
@@ -221,7 +227,7 @@ export declare const OverflowXType: {
|
|
|
221
227
|
readonly Clip: "overflow-x-clip";
|
|
222
228
|
};
|
|
223
229
|
export type OverflowXType = typeof OverflowXType[keyof typeof OverflowXType];
|
|
224
|
-
export type FullOverflowXType = OverflowXType |
|
|
230
|
+
export type FullOverflowXType = OverflowXType | Property.OverflowX;
|
|
225
231
|
export declare const OverflowYType: {
|
|
226
232
|
readonly Visible: "overflow-y-visible";
|
|
227
233
|
readonly Hidden: "overflow-y-hidden";
|
|
@@ -230,7 +236,7 @@ export declare const OverflowYType: {
|
|
|
230
236
|
readonly Clip: "overflow-y-clip";
|
|
231
237
|
};
|
|
232
238
|
export type OverflowYType = typeof OverflowYType[keyof typeof OverflowYType];
|
|
233
|
-
export type FullOverflowYType = OverflowYType |
|
|
239
|
+
export type FullOverflowYType = OverflowYType | Property.OverflowY;
|
|
234
240
|
export declare const OpacityType: {
|
|
235
241
|
readonly _0: "opacity-0";
|
|
236
242
|
readonly _10: "opacity-10";
|
|
@@ -247,6 +253,7 @@ export declare const OpacityType: {
|
|
|
247
253
|
readonly _100: "opacity-100";
|
|
248
254
|
};
|
|
249
255
|
export type OpacityType = typeof OpacityType[keyof typeof OpacityType];
|
|
256
|
+
export type FullOpacityType = OpacityType | Property.Opacity;
|
|
250
257
|
export declare const ViewSizeType: {
|
|
251
258
|
readonly Ellipse: "v-ellipse-size";
|
|
252
259
|
readonly Rectangle: "v-rectangle-size";
|
|
@@ -256,7 +263,7 @@ export declare const ViewSizeType: {
|
|
|
256
263
|
};
|
|
257
264
|
export type ViewSizeType = typeof ViewSizeType[keyof typeof ViewSizeType];
|
|
258
265
|
export declare const getWeightValue: (weightType: FontWeightType) => number;
|
|
259
|
-
export type FullFontSizeType = FontSizeType |
|
|
266
|
+
export type FullFontSizeType = FontSizeType | Property.FontSize;
|
|
260
267
|
export declare const FontSizeType: {
|
|
261
268
|
readonly Default: "font-size";
|
|
262
269
|
readonly Normal: "font-size-normal";
|
|
@@ -271,7 +278,7 @@ export declare const FontSizeType: {
|
|
|
271
278
|
readonly AutoExtraLarge: "auto-font-size-extra-large";
|
|
272
279
|
};
|
|
273
280
|
export type FontSizeType = typeof FontSizeType[keyof typeof FontSizeType];
|
|
274
|
-
export type FullColorType = ColorType |
|
|
281
|
+
export type FullColorType = ColorType | Property.Color;
|
|
275
282
|
export declare const PseudoType: {
|
|
276
283
|
readonly All: "all";
|
|
277
284
|
readonly Before: "before";
|
|
@@ -296,4 +303,4 @@ export declare const DirectionType: {
|
|
|
296
303
|
readonly LeftRight: "left-right";
|
|
297
304
|
};
|
|
298
305
|
export type DirectionType = typeof DirectionType[keyof typeof DirectionType];
|
|
299
|
-
export declare const getGeneratedClassName: (className: string, isDefaultValue: boolean | undefined, sizeType?: FullFontSizeType, isAutoSize?: boolean, weightType?: FontWeightType, frontColorType?: FullColorType, backgroundColorType?: FullColorType, borderColorType?: FullColorType, borderDirection?: DirectionType, pseudoType?: PseudoType, pseudoFrontColor?: FullColorType, pseudoBackgroundColor?: FullColorType, pseudoBorderColor?: FullColorType, pseudoBorderDirection?: DirectionType, borderRadius?: FullBorderRadiusType, borderStyle?: FullBorderStyleType, borderWidth?: FullBorderWidthType, padding?: FullPaddingType, margin?: FullMarginType, opacityType?:
|
|
306
|
+
export declare const getGeneratedClassName: (className: string, isDefaultValue: boolean | undefined, sizeType?: FullFontSizeType, isAutoSize?: boolean, weightType?: FontWeightType, frontColorType?: FullColorType, backgroundColorType?: FullColorType, borderColorType?: FullColorType, borderDirection?: DirectionType, pseudoType?: PseudoType, pseudoFrontColor?: FullColorType, pseudoBackgroundColor?: FullColorType, pseudoBorderColor?: FullColorType, pseudoBorderDirection?: DirectionType, borderRadius?: FullBorderRadiusType, borderStyle?: FullBorderStyleType, borderWidth?: FullBorderWidthType, padding?: FullPaddingType, margin?: FullMarginType, opacityType?: FullOpacityType, display?: FullDisplayType, visibility?: FullVisibilityType, cursor?: FullCursorType, overflow?: FullOverflowType, overflowX?: FullOverflowXType, overflowY?: FullOverflowYType, letterSpacing?: FullLetterSpacingType) => string;
|
|
@@ -22,6 +22,8 @@ export interface IVDropdownProps extends IBaseProps<'input'> {
|
|
|
22
22
|
dockAlignment?: DockAlignment;
|
|
23
23
|
menuBackgroundColor?: ColorType;
|
|
24
24
|
menuZIndex?: Property.ZIndex;
|
|
25
|
+
menuGap?: Property.Gap;
|
|
26
|
+
isSelectOnly?: boolean;
|
|
25
27
|
overWriteDropdownMenu?: (items: IDropdownItemData[]) => React.JSX.Element;
|
|
26
28
|
overWriteDropdownItem?: (item: IDropdownItemData) => React.JSX.Element;
|
|
27
29
|
handleChange?: (value: string) => void;
|
package/src/components/core.d.ts
CHANGED
|
@@ -110,6 +110,8 @@ export { default as VVideo } from './View/VVideo';
|
|
|
110
110
|
export { default as VHeader } from './View/VHeader';
|
|
111
111
|
export { default as VMain } from './View/VMain';
|
|
112
112
|
export { default as VFooter } from './View/VFooter';
|
|
113
|
+
export { default as VAside } from './View/VAside';
|
|
114
|
+
export { default as VNav } from './View/VNav';
|
|
113
115
|
export { default as VHR } from './View/VHR';
|
|
114
116
|
export { default as VSection } from './View/VSection';
|
|
115
117
|
export { default as VMask } from './View/VMask';
|
|
@@ -25,7 +25,7 @@ Den.Components.ColorType // enums are also under Components
|
|
|
25
25
|
|
|
26
26
|
### Variant Exports
|
|
27
27
|
|
|
28
|
-
- **core** (`Den.Components`): Layout (X/Y/S/Flex/FlexItem/Position/PositionArea/Dock/BreakpointDisplay/Responsive), View (VBoundary, VLabel, VText, VForm, VActionForm, VInput/*, VSelect, VDropdown, VSwitch, VImage, VSvg, VBackground, VAnimation, VTooltip, VLoading, VErrorBoundary, VShape/*, VHyperlink, VMask, VFrame, VTheme, VHeader/VMain/VFooter, VHR, VSection, VZone, VAudio, VVideo, VShadow), Enums, Types, utilities
|
|
28
|
+
- **core** (`Den.Components`): Layout (X/Y/S/Flex/FlexItem/Position/PositionArea/Dock/BreakpointDisplay/Responsive), View (VBoundary, VLabel, VText, VForm, VActionForm, VInput/*, VSelect, VDropdown, VSwitch, VImage, VSvg, VBackground, VAnimation, VTooltip, VLoading, VErrorBoundary, VShape/*, VHyperlink, VMask, VFrame, VTheme, VHeader/VNav/VMain/VAside/VFooter, VHR, VSection, VZone, VAudio, VVideo, VShadow), Enums, Types, utilities
|
|
29
29
|
- **web** (`Den.Components`): core + Debug, VGoogleFont, VChromeExtensionValidator, GoogleGrant, GoogleSignin, FigmaSignin, WeComSignin, parseJWT
|
|
30
30
|
- **app** (`Den.Components`): web + VDynamic, VAvatar, VBlock, VCard, VCardMedia, VCardSocial, VCardWindow, VPhoto, VStack, VTree
|
|
31
31
|
- **app** also exports: `Den.FewBox`, `Den.Language`, `Den.Network`, `Den.Store`
|
|
@@ -41,35 +41,35 @@ All components extend `IBaseProps` (which extends `IViewProps`) providing these
|
|
|
41
41
|
|------|------|-------------|
|
|
42
42
|
| `className` | `string` | Additional CSS classes |
|
|
43
43
|
| `style` | `CSSProperties` | Inline styles |
|
|
44
|
-
| `fontSize` | `FontSizeType \|
|
|
44
|
+
| `fontSize` | `FontSizeType \| Property.FontSize` | Font size preset or custom CSS value |
|
|
45
45
|
| `isAutoSize` | `boolean` | Use auto-responsive font size variant |
|
|
46
46
|
| `fontWeight` | `FontWeightType` | Font weight (Thin through Black) |
|
|
47
|
-
| `frontColor` | `ColorType \|
|
|
48
|
-
| `backgroundColor` | `ColorType \|
|
|
49
|
-
| `borderColor` | `ColorType \|
|
|
47
|
+
| `frontColor` | `ColorType \| Property.Color` | Text/foreground color |
|
|
48
|
+
| `backgroundColor` | `ColorType \| Property.Color` | Background color |
|
|
49
|
+
| `borderColor` | `ColorType \| Property.Color` | Border color |
|
|
50
50
|
| `borderDirection` | `DirectionType` | Which sides get the border |
|
|
51
|
-
| `borderRadius` | `BorderRadiusType \|
|
|
52
|
-
| `borderStyle` | `BorderStyleType \|
|
|
53
|
-
| `borderWidth` | `BorderWidthType \|
|
|
54
|
-
| `padding` | `PaddingType \|
|
|
55
|
-
| `margin` | `MarginType \|
|
|
56
|
-
| `opacity` | `OpacityType` | Opacity preset |
|
|
57
|
-
| `display` | `DisplayType \|
|
|
58
|
-
| `visibility` | `VisibilityType \|
|
|
59
|
-
| `cursor` | `CursorType \|
|
|
60
|
-
| `overflow` | `OverflowType \|
|
|
61
|
-
| `overflowX` | `OverflowXType \|
|
|
62
|
-
| `overflowY` | `OverflowYType \|
|
|
63
|
-
| `width` | `
|
|
64
|
-
| `height` | `
|
|
65
|
-
| `minWidth` | `
|
|
66
|
-
| `minHeight` | `
|
|
67
|
-
| `maxWidth` | `
|
|
68
|
-
| `maxHeight` | `
|
|
69
|
-
| `zIndex` | `
|
|
70
|
-
| `fontFamily` | `
|
|
71
|
-
| `letterSpacing` | `
|
|
72
|
-
| `lineHeight` | `
|
|
51
|
+
| `borderRadius` | `BorderRadiusType \| Property.BorderRadius` | Border radius preset or custom |
|
|
52
|
+
| `borderStyle` | `BorderStyleType \| Property.BorderStyle` | Border style preset or custom |
|
|
53
|
+
| `borderWidth` | `BorderWidthType \| Property.BorderWidth` | Border width preset or custom |
|
|
54
|
+
| `padding` | `PaddingType \| Property.Padding` | CSS padding (preset or custom) |
|
|
55
|
+
| `margin` | `MarginType \| Property.Margin` | CSS margin (preset or custom) |
|
|
56
|
+
| `opacity` | `OpacityType \| Property.Opacity` | Opacity preset or custom CSS value |
|
|
57
|
+
| `display` | `DisplayType \| Property.Display` | CSS display preset or custom |
|
|
58
|
+
| `visibility` | `VisibilityType \| Property.Visibility` | CSS visibility preset or custom |
|
|
59
|
+
| `cursor` | `CursorType \| Property.Cursor` | CSS cursor preset or custom |
|
|
60
|
+
| `overflow` | `OverflowType \| Property.Overflow` | CSS overflow preset or custom |
|
|
61
|
+
| `overflowX` | `OverflowXType \| Property.OverflowX` | CSS overflow-x preset or custom |
|
|
62
|
+
| `overflowY` | `OverflowYType \| Property.OverflowY` | CSS overflow-y preset or custom |
|
|
63
|
+
| `width` | `Property.Width` | CSS width |
|
|
64
|
+
| `height` | `Property.Height` | CSS height |
|
|
65
|
+
| `minWidth` | `Property.Width` | CSS min-width |
|
|
66
|
+
| `minHeight` | `Property.Width` | CSS min-height |
|
|
67
|
+
| `maxWidth` | `Property.Width` | CSS max-width |
|
|
68
|
+
| `maxHeight` | `Property.Width` | CSS max-height |
|
|
69
|
+
| `zIndex` | `Property.ZIndex` | CSS z-index |
|
|
70
|
+
| `fontFamily` | `Property.FontFamily` | CSS font-family |
|
|
71
|
+
| `letterSpacing` | `LetterSpacingType \| Property.LetterSpacing` | Letter spacing preset or custom CSS value |
|
|
72
|
+
| `lineHeight` | `Property.LineHeight` | CSS line-height |
|
|
73
73
|
| `selfShrink` | `number` | flex-shrink for the component itself |
|
|
74
74
|
| `selfGrow` | `number` | flex-grow for the component itself |
|
|
75
75
|
| `selfBasis` | `string` | flex-basis for the component itself |
|
|
@@ -146,7 +146,7 @@ FontWeightType.Black // 900
|
|
|
146
146
|
|
|
147
147
|
### Preset Enums (class-based styling)
|
|
148
148
|
|
|
149
|
-
These enums generate CSS classes.
|
|
149
|
+
These enums generate CSS classes. All `Full*Type` props accept either a preset enum value (applied as className) or a custom CSS value from `csstype` `Property.*` (applied as inline style):
|
|
150
150
|
|
|
151
151
|
```tsx
|
|
152
152
|
// Border Radius
|
|
@@ -167,6 +167,9 @@ MarginType.Default | .Normal | .ExtraSmall | .Small | .Large | .ExtraLarge
|
|
|
167
167
|
// Gap (for layout components)
|
|
168
168
|
GapType.Default | .Normal | .ExtraSmall | .Small | .Large | .ExtraLarge
|
|
169
169
|
|
|
170
|
+
// Letter Spacing
|
|
171
|
+
LetterSpacingType.Default | .Normal | .ExtraSmall | .Small | .Large | .ExtraLarge
|
|
172
|
+
|
|
170
173
|
// Opacity
|
|
171
174
|
OpacityType._0 | ._10 | ._20 | ._25 | ._30 | ._40 | ._50 | ._60 | ._70 | ._75 | ._80 | ._90 | ._100
|
|
172
175
|
|
|
@@ -549,6 +552,18 @@ For inline text. Renders as `<span>` by default, configurable to any inline/head
|
|
|
549
552
|
// Available categories:
|
|
550
553
|
// LabelCategory.Div, Span, H1-H6, Abbr, Strong, Em, Code, Pre,
|
|
551
554
|
// Blockquote, Mark, Del, Ins, Small, Sub, Sup, etc.
|
|
555
|
+
|
|
556
|
+
// fontWeight/fontSize with heading categories (H1-H6):
|
|
557
|
+
// When fontWeight or fontSize is set, VLabel adds CSS classes
|
|
558
|
+
// (.v-label-inherit-font-weight / .v-label-inherit-font-size)
|
|
559
|
+
// that apply `inherit` to the inner heading element, overriding
|
|
560
|
+
// browser defaults. Without these props, headings keep their
|
|
561
|
+
// browser default styles (e.g., H1 is bold and 2em).
|
|
562
|
+
<Den.Components.VLabel
|
|
563
|
+
category={Den.Components.LabelCategory.H1}
|
|
564
|
+
fontWeight={Den.Components.FontWeightType.Thin}
|
|
565
|
+
caption="Thin H1"
|
|
566
|
+
/>
|
|
552
567
|
```
|
|
553
568
|
|
|
554
569
|
### VText (Block Text)
|
|
@@ -739,7 +754,14 @@ const [value, setValue] = useState('');
|
|
|
739
754
|
downIcon={<DownArrowIcon />} // required
|
|
740
755
|
upIcon={<UpArrowIcon />} // required
|
|
741
756
|
enableClear
|
|
757
|
+
readOnly // renders as VLabel (non-interactive)
|
|
758
|
+
isSelectOnly // prevents manual typing, only allows selection from items
|
|
759
|
+
menuGap="4px" // gap between dropdown menu and trigger
|
|
760
|
+
menuBackgroundColor={Den.Components.ColorType.White}
|
|
761
|
+
menuZIndex={9999}
|
|
742
762
|
handleChange={(value) => console.log(value)}
|
|
763
|
+
overWriteDropdownMenu={(items) => <CustomMenu items={items} />} // custom menu renderer
|
|
764
|
+
overWriteDropdownItem={(item) => <CustomItem item={item} />} // custom item renderer
|
|
743
765
|
/>
|
|
744
766
|
// IDropdownItemData: { caption: string; value: string; icon?: JSX.Element }
|
|
745
767
|
|
|
@@ -990,7 +1012,9 @@ Den.Components.parseJWT(token) // returns IUserProfile
|
|
|
990
1012
|
```tsx
|
|
991
1013
|
// Semantic HTML wrappers
|
|
992
1014
|
<Den.Components.VHeader>...</Den.Components.VHeader>
|
|
1015
|
+
<Den.Components.VNav>...</Den.Components.VNav>
|
|
993
1016
|
<Den.Components.VMain>...</Den.Components.VMain>
|
|
1017
|
+
<Den.Components.VAside>...</Den.Components.VAside>
|
|
994
1018
|
<Den.Components.VFooter>...</Den.Components.VFooter>
|
|
995
1019
|
<Den.Components.VSection>...</Den.Components.VSection>
|
|
996
1020
|
<Den.Components.VHR />
|
|
@@ -296,6 +296,18 @@ $border-positions: "all", "top", "right", "bottom", "left", "except-top", "excep
|
|
|
296
296
|
font-weight: var(#{v.$var-prefix}font-weight-#{$font-weight});
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
|
+
/* gap */
|
|
300
|
+
@each $gap, $value in v.$gaps {
|
|
301
|
+
.gap-#{$gap} {
|
|
302
|
+
gap: var(#{v.$var-prefix}gap-#{$gap});
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/* letter-spacing */
|
|
306
|
+
@each $letter-spacing, $value in v.$letter-spacings {
|
|
307
|
+
.letter-spacing-#{$letter-spacing} {
|
|
308
|
+
letter-spacing: var(#{v.$var-prefix}letter-spacing-#{$letter-spacing});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
299
311
|
/* padding */
|
|
300
312
|
@each $padding, $value in v.$paddings {
|
|
301
313
|
.padding-#{$padding} {
|
|
@@ -75,6 +75,9 @@
|
|
|
75
75
|
#{v.$var-prefix}font-size: #{v.$font-size};
|
|
76
76
|
#{v.$var-prefix}line-height: #{v.$line-height};
|
|
77
77
|
#{v.$var-prefix}letter-spacing: #{v.$letter-spacing};
|
|
78
|
+
@each $letter-spacing, $value in v.$letter-spacings {
|
|
79
|
+
#{v.$var-prefix}letter-spacing-#{$letter-spacing}: #{$value};
|
|
80
|
+
}
|
|
78
81
|
#{v.$var-prefix}padding: #{v.$padding};
|
|
79
82
|
#{v.$var-prefix}margin: #{v.$margin};
|
|
80
83
|
#{v.$var-prefix}box-sizing: #{v.$box-sizing};
|
|
@@ -252,6 +252,18 @@ $scrollbar-radius: 8px;
|
|
|
252
252
|
/*------------------*/
|
|
253
253
|
$line-height: 1.4;
|
|
254
254
|
$letter-spacing: 0.01em;
|
|
255
|
+
$letter-spacing-normal: 0.05em;
|
|
256
|
+
$letter-spacing-extra-small: $letter-spacing-normal * 0.5;
|
|
257
|
+
$letter-spacing-small: $letter-spacing-normal * 0.8;
|
|
258
|
+
$letter-spacing-large: $letter-spacing-normal * 1.4;
|
|
259
|
+
$letter-spacing-extra-large: $letter-spacing-normal * 2.4;
|
|
260
|
+
$letter-spacings: (
|
|
261
|
+
"normal": $letter-spacing-normal,
|
|
262
|
+
"extra-small": $letter-spacing-extra-small,
|
|
263
|
+
"small": $letter-spacing-small,
|
|
264
|
+
"large": $letter-spacing-large,
|
|
265
|
+
"extra-large": $letter-spacing-extra-large,
|
|
266
|
+
);
|
|
255
267
|
$font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
|
|
256
268
|
"Segoe UI Emoji", "Segoe UI Symbol";
|
|
257
269
|
$font-size: 1em; // 16px * 0.875 = 14px;
|