@lowdefy/blocks-antd 4.7.2 → 5.0.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.
- package/dist/blocks/Affix/Affix.js +6 -12
- package/dist/blocks/Affix/{schema.js → meta.js} +23 -14
- package/dist/blocks/Alert/Alert.js +17 -12
- package/dist/blocks/Alert/e2e.js +1 -1
- package/dist/blocks/Alert/meta.js +186 -0
- package/dist/blocks/AutoComplete/AutoComplete.js +15 -22
- package/dist/blocks/AutoComplete/meta.js +265 -0
- package/dist/blocks/Avatar/Avatar.js +58 -18
- package/dist/blocks/Avatar/meta.js +277 -0
- package/dist/blocks/Badge/Badge.js +13 -12
- package/dist/blocks/Badge/{schema.js → meta.js} +80 -1
- package/dist/blocks/Breadcrumb/Breadcrumb.js +40 -41
- package/dist/blocks/Breadcrumb/meta.js +90 -0
- package/dist/blocks/Button/Button.js +77 -39
- package/dist/blocks/Button/meta.js +230 -0
- package/dist/blocks/ButtonSelector/ButtonSelector.js +54 -59
- package/dist/blocks/ButtonSelector/meta.js +213 -0
- package/dist/blocks/Calendar/Calendar.js +111 -0
- package/dist/blocks/Calendar/e2e.js +27 -0
- package/dist/blocks/Calendar/meta.js +148 -0
- package/dist/blocks/Card/Card.js +22 -21
- package/dist/blocks/Card/meta.js +170 -0
- package/dist/blocks/Carousel/Carousel.js +6 -12
- package/dist/blocks/Carousel/{schema.js → meta.js} +61 -22
- package/dist/blocks/CheckboxSelector/CheckboxSelector.js +58 -64
- package/dist/blocks/CheckboxSelector/meta.js +150 -0
- package/dist/blocks/CheckboxSwitch/CheckboxSwitch.js +38 -44
- package/dist/blocks/CheckboxSwitch/meta.js +183 -0
- package/dist/blocks/Collapse/Collapse.js +21 -12
- package/dist/blocks/Collapse/meta.js +179 -0
- package/dist/blocks/ColorSelector/ColorSelector.js +97 -0
- package/dist/blocks/ColorSelector/e2e.js +32 -0
- package/dist/blocks/ColorSelector/meta.js +250 -0
- package/dist/blocks/ConfigProvider/ConfigProvider.js +51 -0
- package/dist/blocks/{Alert/style.less → ConfigProvider/e2e.js} +5 -3
- package/dist/blocks/{ControlledList/schema.js → ConfigProvider/meta.js} +43 -45
- package/dist/blocks/ConfirmModal/ConfirmModal.js +45 -25
- package/dist/blocks/ConfirmModal/{schema.js → meta.js} +93 -35
- package/dist/blocks/Content/Content.js +5 -12
- package/dist/blocks/{Layout/schema.js → Content/meta.js} +11 -3
- package/dist/blocks/ControlledList/ControlledList.js +42 -54
- package/dist/blocks/ControlledList/meta.js +158 -0
- package/dist/blocks/DateRangeSelector/DateRangeSelector.js +31 -29
- package/dist/blocks/DateRangeSelector/meta.js +297 -0
- package/dist/blocks/DateSelector/DateSelector.js +28 -28
- package/dist/blocks/DateSelector/meta.js +241 -0
- package/dist/blocks/DateTimeSelector/DateTimeSelector.js +28 -28
- package/dist/blocks/DateTimeSelector/meta.js +282 -0
- package/dist/blocks/Descriptions/Descriptions.js +20 -22
- package/dist/blocks/Descriptions/{schema.js → meta.js} +71 -15
- package/dist/blocks/Divider/Divider.js +8 -14
- package/dist/blocks/Divider/meta.js +86 -0
- package/dist/blocks/Drawer/Drawer.js +21 -16
- package/dist/blocks/Drawer/{schema.js → meta.js} +61 -61
- package/dist/blocks/DropdownButton/DropdownButton.js +221 -0
- package/dist/blocks/DropdownButton/e2e.js +30 -0
- package/dist/blocks/DropdownButton/meta.js +317 -0
- package/dist/blocks/DropdownMenu/DropdownMenu.js +130 -0
- package/dist/blocks/DropdownMenu/e2e.js +28 -0
- package/dist/blocks/DropdownMenu/meta.js +322 -0
- package/dist/blocks/Flex/Flex.js +31 -0
- package/dist/blocks/{Comment → Flex}/e2e.js +1 -2
- package/dist/blocks/Flex/meta.js +115 -0
- package/dist/blocks/FloatButton/FloatButton.js +46 -0
- package/dist/blocks/FloatButton/e2e.js +28 -0
- package/dist/blocks/FloatButton/meta.js +156 -0
- package/dist/blocks/Footer/Footer.js +8 -17
- package/dist/blocks/{Header/schema.js → Footer/meta.js} +11 -12
- package/dist/blocks/Header/Header.js +38 -18
- package/dist/blocks/Header/meta.js +318 -0
- package/dist/blocks/Label/Label.js +19 -27
- package/dist/blocks/Label/labelLogic.js +37 -41
- package/dist/blocks/Label/meta.js +148 -0
- package/dist/blocks/Label/style.module.css +185 -0
- package/dist/blocks/Layout/Layout.js +10 -13
- package/dist/blocks/{Content/schema.js → Layout/meta.js} +11 -3
- package/dist/blocks/Masonry/Masonry.js +37 -0
- package/dist/blocks/{Affix/style.less → Masonry/e2e.js} +9 -3
- package/dist/blocks/Masonry/meta.js +86 -0
- package/dist/blocks/MasonryList/MasonryList.js +42 -0
- package/dist/blocks/{AutoComplete/style.less → MasonryList/e2e.js} +9 -3
- package/dist/blocks/MasonryList/meta.js +86 -0
- package/dist/blocks/Menu/Menu.js +148 -122
- package/dist/blocks/Menu/meta.js +544 -0
- package/dist/blocks/Message/Message.js +18 -16
- package/dist/blocks/Message/{schema.js → meta.js} +29 -14
- package/dist/blocks/MobileMenu/MobileMenu.js +13 -21
- package/dist/blocks/MobileMenu/{schema.js → meta.js} +17 -31
- package/dist/blocks/Modal/Modal.js +20 -16
- package/dist/blocks/Modal/meta.js +234 -0
- package/dist/blocks/MonthSelector/MonthSelector.js +30 -30
- package/dist/blocks/MonthSelector/meta.js +260 -0
- package/dist/blocks/MultipleSelector/MultipleSelector.js +49 -36
- package/dist/blocks/MultipleSelector/{schema.js → meta.js} +177 -151
- package/dist/blocks/Notification/Notification.js +39 -23
- package/dist/blocks/Notification/{schema.js → meta.js} +36 -22
- package/dist/blocks/NumberInput/NumberInput.js +12 -21
- package/dist/blocks/NumberInput/meta.js +250 -0
- package/dist/blocks/PageHeaderMenu/PageHeaderMenu.js +137 -189
- package/dist/blocks/PageHeaderMenu/meta.js +420 -0
- package/dist/blocks/PageSiderMenu/PageSiderMenu.js +151 -192
- package/dist/blocks/PageSiderMenu/meta.js +476 -0
- package/dist/blocks/Pagination/Pagination.js +6 -15
- package/dist/blocks/Pagination/meta.js +233 -0
- package/dist/blocks/Paragraph/Paragraph.js +28 -16
- package/dist/blocks/Paragraph/{schema.js → meta.js} +68 -18
- package/dist/blocks/ParagraphInput/ParagraphInput.js +34 -17
- package/dist/blocks/ParagraphInput/{schema.js → meta.js} +134 -18
- package/dist/blocks/PasswordInput/PasswordInput.js +9 -16
- package/dist/blocks/PasswordInput/meta.js +195 -0
- package/dist/blocks/PhoneNumberInput/PhoneNumberInput.js +37 -33
- package/dist/blocks/PhoneNumberInput/formatPhoneNumber.js +25 -0
- package/dist/blocks/PhoneNumberInput/meta.js +225 -0
- package/dist/blocks/PhoneNumberInput/upstream-formatting-spec.md +173 -0
- package/dist/blocks/Popover/Popover.js +7 -12
- package/dist/blocks/Popover/{schema.js → meta.js} +81 -11
- package/dist/blocks/Progress/Progress.js +7 -12
- package/dist/blocks/Progress/{schema.js → meta.js} +74 -4
- package/dist/blocks/QRCode/QRCode.js +39 -0
- package/dist/blocks/{Footer/schema.js → QRCode/e2e.js} +9 -15
- package/dist/blocks/QRCode/meta.js +152 -0
- package/dist/blocks/RadioSelector/RadioSelector.js +55 -63
- package/dist/blocks/RadioSelector/meta.js +179 -0
- package/dist/blocks/RatingSlider/RatingSlider.js +95 -103
- package/dist/blocks/RatingSlider/meta.js +221 -0
- package/dist/blocks/Result/Result.js +13 -12
- package/dist/blocks/Result/meta.js +129 -0
- package/dist/blocks/Search/Search.js +135 -0
- package/dist/blocks/Search/SearchHighlight.js +33 -0
- package/dist/blocks/Search/SearchModal.js +171 -0
- package/dist/blocks/Search/SearchResults.js +129 -0
- package/dist/blocks/Search/meta.js +258 -0
- package/dist/blocks/Search/style.module.css +96 -0
- package/dist/blocks/Search/useListKeyboardNav.js +45 -0
- package/dist/blocks/Search/useRecentSearches.js +77 -0
- package/dist/blocks/Search/useSearchIndex.js +144 -0
- package/dist/blocks/SegmentedSelector/SegmentedSelector.js +93 -0
- package/dist/blocks/SegmentedSelector/e2e.js +32 -0
- package/dist/blocks/SegmentedSelector/meta.js +222 -0
- package/dist/blocks/Selector/Selector.js +35 -30
- package/dist/blocks/Selector/meta.js +379 -0
- package/dist/blocks/Sider/Sider.js +9 -18
- package/dist/blocks/Sider/{schema.js → meta.js} +20 -34
- package/dist/blocks/Slider/Slider.js +8 -20
- package/dist/blocks/Slider/meta.js +226 -0
- package/dist/blocks/Splitter/Splitter.js +70 -0
- package/dist/blocks/Splitter/e2e.js +24 -0
- package/dist/blocks/Splitter/meta.js +193 -0
- package/dist/blocks/Statistic/Statistic.js +26 -15
- package/dist/blocks/Statistic/{schema.js → meta.js} +41 -4
- package/dist/blocks/Steps/Steps.js +94 -0
- package/dist/blocks/Steps/e2e.js +31 -0
- package/dist/blocks/Steps/meta.js +246 -0
- package/dist/blocks/Switch/Switch.js +59 -54
- package/dist/blocks/Switch/meta.js +178 -0
- package/dist/blocks/Tabs/Tabs.js +49 -18
- package/dist/blocks/Tabs/meta.js +258 -0
- package/dist/blocks/Tag/Tag.js +17 -15
- package/dist/blocks/Tag/{schema.js → meta.js} +35 -13
- package/dist/blocks/TextArea/TextArea.js +10 -16
- package/dist/blocks/TextArea/meta.js +255 -0
- package/dist/blocks/TextInput/TextInput.js +23 -18
- package/dist/blocks/TextInput/meta.js +286 -0
- package/dist/blocks/TimelineList/TimelineList.js +29 -27
- package/dist/blocks/TimelineList/{schema.js → meta.js} +45 -8
- package/dist/blocks/Title/Title.js +34 -21
- package/dist/blocks/Title/{schema.js → meta.js} +117 -14
- package/dist/blocks/TitleInput/TitleInput.js +43 -25
- package/dist/blocks/TitleInput/{schema.js → meta.js} +156 -18
- package/dist/blocks/Tooltip/Tooltip.js +16 -16
- package/dist/blocks/Tooltip/{schema.js → meta.js} +74 -19
- package/dist/blocks/Tour/Tour.js +75 -0
- package/dist/blocks/Tour/e2e.js +31 -0
- package/dist/blocks/Tour/meta.js +255 -0
- package/dist/blocks/TreeSelector/TreeSelector.js +6 -12
- package/dist/blocks/TreeSelector/{schema.js → meta.js} +134 -25
- package/dist/blocks/Watermark/Watermark.js +34 -0
- package/dist/blocks/Watermark/e2e.js +23 -0
- package/dist/blocks/Watermark/meta.js +148 -0
- package/dist/blocks/WeekSelector/WeekSelector.js +35 -31
- package/dist/blocks/WeekSelector/meta.js +269 -0
- package/dist/blocks/buildMenuItems.js +95 -0
- package/dist/blocks/headerActions.js +220 -0
- package/dist/blocks/useItemShortcuts.js +64 -0
- package/dist/blocks/withTheme.js +40 -0
- package/dist/blocks.js +16 -1
- package/dist/disabledDate.js +15 -7
- package/dist/e2e.js +4 -1
- package/dist/metas.js +91 -0
- package/dist/schemas/breadcrumbList.js +64 -0
- package/dist/schemas/disabledDates.js +83 -0
- package/dist/{blocks/Avatar/style.less → schemas/icon.js} +10 -3
- package/dist/schemas/index.js +21 -0
- package/dist/schemas/inputProperties.js +70 -0
- package/dist/schemas/label.js +62 -0
- package/dist/schemas/menuLinks.js +49 -0
- package/dist/schemas/options.js +84 -0
- package/dist/types.js +4 -18
- package/package.json +19 -17
- package/dist/blocks/Affix/schema.json +0 -34
- package/dist/blocks/Alert/schema.js +0 -84
- package/dist/blocks/Alert/schema.json +0 -62
- package/dist/blocks/AutoComplete/schema.js +0 -181
- package/dist/blocks/AutoComplete/schema.json +0 -160
- package/dist/blocks/Avatar/schema.js +0 -98
- package/dist/blocks/Avatar/schema.json +0 -71
- package/dist/blocks/Badge/schema.json +0 -70
- package/dist/blocks/Badge/style.less +0 -17
- package/dist/blocks/Breadcrumb/schema.js +0 -95
- package/dist/blocks/Breadcrumb/schema.json +0 -78
- package/dist/blocks/Breadcrumb/style.less +0 -17
- package/dist/blocks/Button/schema.js +0 -123
- package/dist/blocks/Button/schema.json +0 -91
- package/dist/blocks/Button/style.less +0 -17
- package/dist/blocks/ButtonSelector/schema.js +0 -214
- package/dist/blocks/ButtonSelector/schema.json +0 -188
- package/dist/blocks/ButtonSelector/style.less +0 -18
- package/dist/blocks/Card/schema.js +0 -75
- package/dist/blocks/Card/schema.json +0 -58
- package/dist/blocks/Card/style.less +0 -17
- package/dist/blocks/Carousel/schema.json +0 -183
- package/dist/blocks/Carousel/style.less +0 -17
- package/dist/blocks/CheckboxSelector/schema.js +0 -220
- package/dist/blocks/CheckboxSelector/schema.json +0 -193
- package/dist/blocks/CheckboxSelector/style.less +0 -19
- package/dist/blocks/CheckboxSwitch/schema.js +0 -122
- package/dist/blocks/CheckboxSwitch/schema.json +0 -105
- package/dist/blocks/CheckboxSwitch/style.less +0 -19
- package/dist/blocks/Collapse/schema.js +0 -110
- package/dist/blocks/Collapse/schema.json +0 -90
- package/dist/blocks/Collapse/style.less +0 -17
- package/dist/blocks/Comment/Comment.js +0 -56
- package/dist/blocks/Comment/schema.js +0 -56
- package/dist/blocks/Comment/schema.json +0 -39
- package/dist/blocks/Comment/style.less +0 -18
- package/dist/blocks/ConfirmModal/schema.json +0 -122
- package/dist/blocks/ConfirmModal/style.less +0 -17
- package/dist/blocks/Content/schema.json +0 -16
- package/dist/blocks/Content/style.less +0 -17
- package/dist/blocks/ControlledList/schema.json +0 -73
- package/dist/blocks/ControlledList/style.less +0 -19
- package/dist/blocks/DateRangeSelector/schema.js +0 -266
- package/dist/blocks/DateRangeSelector/schema.json +0 -221
- package/dist/blocks/DateRangeSelector/style.less +0 -18
- package/dist/blocks/DateSelector/schema.js +0 -219
- package/dist/blocks/DateSelector/schema.json +0 -183
- package/dist/blocks/DateSelector/style.less +0 -18
- package/dist/blocks/DateTimeSelector/schema.js +0 -251
- package/dist/blocks/DateTimeSelector/schema.json +0 -215
- package/dist/blocks/DateTimeSelector/style.less +0 -18
- package/dist/blocks/Descriptions/schema.json +0 -186
- package/dist/blocks/Descriptions/style.less +0 -17
- package/dist/blocks/Divider/schema.js +0 -56
- package/dist/blocks/Divider/schema.json +0 -35
- package/dist/blocks/Divider/style.less +0 -17
- package/dist/blocks/Drawer/schema.json +0 -121
- package/dist/blocks/Drawer/style.less +0 -17
- package/dist/blocks/Footer/schema.json +0 -16
- package/dist/blocks/Footer/style.less +0 -17
- package/dist/blocks/Header/schema.json +0 -22
- package/dist/blocks/Header/style.less +0 -17
- package/dist/blocks/Label/schema.js +0 -83
- package/dist/blocks/Label/schema.json +0 -62
- package/dist/blocks/Label/style.less +0 -34
- package/dist/blocks/Layout/schema.json +0 -16
- package/dist/blocks/Layout/style.less +0 -17
- package/dist/blocks/Menu/schema.js +0 -283
- package/dist/blocks/Menu/schema.json +0 -236
- package/dist/blocks/Menu/style.less +0 -17
- package/dist/blocks/Message/schema.json +0 -48
- package/dist/blocks/Message/style.less +0 -17
- package/dist/blocks/MobileMenu/schema.json +0 -236
- package/dist/blocks/MobileMenu/style.less +0 -19
- package/dist/blocks/Modal/schema.js +0 -142
- package/dist/blocks/Modal/schema.json +0 -125
- package/dist/blocks/Modal/style.less +0 -17
- package/dist/blocks/MonthSelector/schema.js +0 -219
- package/dist/blocks/MonthSelector/schema.json +0 -183
- package/dist/blocks/MonthSelector/style.less +0 -18
- package/dist/blocks/MultipleSelector/schema.json +0 -297
- package/dist/blocks/MultipleSelector/style.less +0 -19
- package/dist/blocks/Notification/schema.json +0 -85
- package/dist/blocks/Notification/style.less +0 -18
- package/dist/blocks/NumberInput/schema.js +0 -193
- package/dist/blocks/NumberInput/schema.json +0 -172
- package/dist/blocks/NumberInput/style.less +0 -18
- package/dist/blocks/PageHeaderMenu/schema.js +0 -241
- package/dist/blocks/PageHeaderMenu/schema.json +0 -215
- package/dist/blocks/PageHeaderMenu/style.less +0 -23
- package/dist/blocks/PageSiderMenu/schema.js +0 -321
- package/dist/blocks/PageSiderMenu/schema.json +0 -283
- package/dist/blocks/PageSiderMenu/style.less +0 -26
- package/dist/blocks/Pagination/schema.js +0 -101
- package/dist/blocks/Pagination/schema.json +0 -75
- package/dist/blocks/Pagination/style.less +0 -17
- package/dist/blocks/Paragraph/schema.json +0 -135
- package/dist/blocks/Paragraph/style.less +0 -18
- package/dist/blocks/ParagraphInput/schema.json +0 -162
- package/dist/blocks/ParagraphInput/style.less +0 -17
- package/dist/blocks/PasswordInput/schema.js +0 -152
- package/dist/blocks/PasswordInput/schema.json +0 -131
- package/dist/blocks/PasswordInput/style.less +0 -18
- package/dist/blocks/PhoneNumberInput/schema.js +0 -243
- package/dist/blocks/PhoneNumberInput/schema.json +0 -216
- package/dist/blocks/PhoneNumberInput/style.less +0 -33
- package/dist/blocks/Popover/schema.json +0 -86
- package/dist/blocks/Popover/style.less +0 -17
- package/dist/blocks/Progress/schema.json +0 -76
- package/dist/blocks/Progress/style.less +0 -17
- package/dist/blocks/RadioSelector/schema.js +0 -217
- package/dist/blocks/RadioSelector/schema.json +0 -190
- package/dist/blocks/RadioSelector/style.less +0 -19
- package/dist/blocks/RatingSlider/schema.js +0 -196
- package/dist/blocks/RatingSlider/schema.json +0 -169
- package/dist/blocks/RatingSlider/style.less +0 -19
- package/dist/blocks/Result/schema.js +0 -55
- package/dist/blocks/Result/schema.json +0 -30
- package/dist/blocks/Result/style.less +0 -17
- package/dist/blocks/Selector/schema.js +0 -287
- package/dist/blocks/Selector/schema.json +0 -258
- package/dist/blocks/Selector/style.less +0 -18
- package/dist/blocks/Sider/schema.json +0 -71
- package/dist/blocks/Sider/style.less +0 -17
- package/dist/blocks/Slider/style.less +0 -18
- package/dist/blocks/Statistic/schema.json +0 -74
- package/dist/blocks/Statistic/style.less +0 -17
- package/dist/blocks/Switch/schema.js +0 -162
- package/dist/blocks/Switch/schema.json +0 -136
- package/dist/blocks/Switch/style.less +0 -18
- package/dist/blocks/Tabs/schema.js +0 -124
- package/dist/blocks/Tabs/schema.json +0 -93
- package/dist/blocks/Tabs/style.less +0 -17
- package/dist/blocks/Tag/schema.json +0 -45
- package/dist/blocks/Tag/style.less +0 -17
- package/dist/blocks/TextArea/schema.js +0 -196
- package/dist/blocks/TextArea/schema.json +0 -172
- package/dist/blocks/TextArea/style.less +0 -18
- package/dist/blocks/TextInput/schema.js +0 -223
- package/dist/blocks/TextInput/schema.json +0 -189
- package/dist/blocks/TextInput/style.less +0 -18
- package/dist/blocks/TimelineList/schema.json +0 -65
- package/dist/blocks/TimelineList/style.less +0 -17
- package/dist/blocks/Title/schema.json +0 -136
- package/dist/blocks/Title/style.less +0 -18
- package/dist/blocks/TitleInput/schema.json +0 -171
- package/dist/blocks/TitleInput/style.less +0 -17
- package/dist/blocks/Tooltip/schema.json +0 -91
- package/dist/blocks/Tooltip/style.less +0 -17
- package/dist/blocks/TreeSelector/schema.json +0 -166
- package/dist/blocks/TreeSelector/style.less +0 -27
- package/dist/blocks/WeekSelector/schema.js +0 -219
- package/dist/blocks/WeekSelector/schema.json +0 -183
- package/dist/blocks/WeekSelector/style.less +0 -18
- package/dist/color.js +0 -85
- package/dist/schemas.js +0 -75
- package/dist/style.less +0 -17
|
@@ -15,23 +15,25 @@
|
|
|
15
15
|
*/ // Derived from https://github.com/ant-design/ant-design/blob/master/components/form/FormItemLabel.tsx
|
|
16
16
|
// MIT Copyright (c) 2015-present Ant UED, https://xtech.antfin.com/ - 2020-09-08
|
|
17
17
|
import React from 'react';
|
|
18
|
-
import {
|
|
18
|
+
import { renderHtml, withBlockDefaults } from '@lowdefy/block-utils';
|
|
19
19
|
import { Col, Row } from 'antd';
|
|
20
20
|
import classNames from 'classnames';
|
|
21
|
-
import CSSMotion from 'rc-motion';
|
|
21
|
+
import CSSMotion from '@rc-component/motion';
|
|
22
22
|
import labelLogic from './labelLogic.js';
|
|
23
|
+
import './style.module.css';
|
|
23
24
|
const validationKeyMap = {
|
|
24
25
|
error: 'errors',
|
|
25
26
|
warning: 'warnings'
|
|
26
27
|
};
|
|
27
28
|
let iconMap;
|
|
28
|
-
const Label = ({ blockId, components: { Icon }, content,
|
|
29
|
-
const { extraClassName, feedbackClassName, iconClassName, label, labelClassName, labelCol, labelColClassName, rowClassName, showExtra, showFeedback, wrapperCol } = labelLogic({
|
|
29
|
+
const Label = ({ blockId, classNames: blockClassNames = {}, components: { Icon }, content, properties, required, styles = {}, validation })=>{
|
|
30
|
+
const { extraClassName, extraStyle, feedbackClassName, feedbackStyle, iconClassName, label, labelClassName, labelCol, labelColClassName, labelColStyle, labelStyle, rowClassName, rowStyle, showExtra, showFeedback, wrapperCol } = labelLogic({
|
|
30
31
|
blockId,
|
|
32
|
+
blockClassNames,
|
|
31
33
|
content,
|
|
32
|
-
methods,
|
|
33
34
|
properties,
|
|
34
35
|
required,
|
|
36
|
+
styles,
|
|
35
37
|
validation
|
|
36
38
|
});
|
|
37
39
|
if (!iconMap) {
|
|
@@ -56,17 +58,19 @@ const Label = ({ blockId, components: { Icon }, content, methods, properties, re
|
|
|
56
58
|
}, /*#__PURE__*/ React.createElement(IconNode, null)) : null;
|
|
57
59
|
return /*#__PURE__*/ React.createElement(Row, {
|
|
58
60
|
id: blockId,
|
|
59
|
-
className: rowClassName
|
|
61
|
+
className: rowClassName,
|
|
62
|
+
style: rowStyle
|
|
60
63
|
}, label && /*#__PURE__*/ React.createElement(Col, {
|
|
61
64
|
...labelCol,
|
|
62
|
-
className: labelColClassName
|
|
65
|
+
className: labelColClassName,
|
|
66
|
+
style: labelColStyle
|
|
63
67
|
}, /*#__PURE__*/ React.createElement("label", {
|
|
64
68
|
htmlFor: `${blockId}_input`,
|
|
65
69
|
className: labelClassName,
|
|
70
|
+
style: labelStyle,
|
|
66
71
|
title: label
|
|
67
72
|
}, renderHtml({
|
|
68
|
-
html: label
|
|
69
|
-
methods
|
|
73
|
+
html: label
|
|
70
74
|
}))), /*#__PURE__*/ React.createElement(Col, {
|
|
71
75
|
...wrapperCol,
|
|
72
76
|
className: "ant-form-item-control"
|
|
@@ -80,25 +84,13 @@ const Label = ({ blockId, components: { Icon }, content, methods, properties, re
|
|
|
80
84
|
motionAppear: true,
|
|
81
85
|
removeOnLeave: true
|
|
82
86
|
}, ({ className: motionClassName })=>/*#__PURE__*/ React.createElement("div", {
|
|
83
|
-
className: classNames(extraClassName, motionClassName)
|
|
87
|
+
className: classNames(extraClassName, motionClassName),
|
|
88
|
+
style: extraStyle
|
|
84
89
|
}, showFeedback ? /*#__PURE__*/ React.createElement("div", {
|
|
85
|
-
className:
|
|
90
|
+
className: feedbackClassName,
|
|
91
|
+
style: feedbackStyle
|
|
86
92
|
}, validation[validationKeyMap[validation.status]] && validation[validationKeyMap[validation.status]].length > 0 && validation[validationKeyMap[validation.status]][0]) : renderHtml({
|
|
87
|
-
html: properties.extra
|
|
88
|
-
methods
|
|
93
|
+
html: properties.extra
|
|
89
94
|
})))));
|
|
90
95
|
};
|
|
91
|
-
|
|
92
|
-
Label.meta = {
|
|
93
|
-
category: 'container',
|
|
94
|
-
icons: [
|
|
95
|
-
'AiFillCloseCircle',
|
|
96
|
-
'AiFillCheckCircle',
|
|
97
|
-
'AiOutlineLoading',
|
|
98
|
-
'AiFillExclamationCircle'
|
|
99
|
-
],
|
|
100
|
-
styles: [
|
|
101
|
-
'blocks/Label/style.less'
|
|
102
|
-
]
|
|
103
|
-
};
|
|
104
|
-
export default Label;
|
|
96
|
+
export default withBlockDefaults(Label);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import classNames from 'classnames';
|
|
17
17
|
import getWrapperCol from './getWrapperCol.js';
|
|
18
18
|
import getLabelCol from './getLabelCol.js';
|
|
19
|
-
const labelLogic = ({ blockId,
|
|
19
|
+
const labelLogic = ({ blockId, blockClassNames = {}, content, properties = {}, required = false, styles = {}, validation = {
|
|
20
20
|
messages: [],
|
|
21
21
|
status: null
|
|
22
22
|
} })=>{
|
|
@@ -29,56 +29,47 @@ const labelLogic = ({ blockId, content, methods, properties = {}, required = fal
|
|
|
29
29
|
if (type.isString(label) && properties.colon && label.trim() !== '') {
|
|
30
30
|
label = label.replace(/[:|:]\s*$/u, '');
|
|
31
31
|
}
|
|
32
|
-
const rowClassName = classNames({
|
|
33
|
-
'ant-form-item':
|
|
34
|
-
'ant-form-item-
|
|
35
|
-
[methods.makeCssClass({
|
|
36
|
-
flexWrap: properties.inline && 'inherit',
|
|
37
|
-
marginBottom: 0
|
|
38
|
-
})]: true
|
|
32
|
+
const rowClassName = classNames('ant-form-item', {
|
|
33
|
+
'ant-form-item-has-error': validation.status === 'error',
|
|
34
|
+
'ant-form-item-has-warning': validation.status === 'warning'
|
|
39
35
|
});
|
|
36
|
+
const rowStyle = {
|
|
37
|
+
flexWrap: properties.inline ? 'inherit' : undefined,
|
|
38
|
+
marginBottom: 0
|
|
39
|
+
};
|
|
40
40
|
const labelColClassName = classNames({
|
|
41
41
|
'ant-form-item-label': true,
|
|
42
|
-
'ant-form-item-label-left': properties.align === 'left' || !properties.align
|
|
43
|
-
[methods.makeCssClass({
|
|
44
|
-
overflow: properties.inline && 'inherit',
|
|
45
|
-
whiteSpace: !properties.inline && 'normal',
|
|
46
|
-
marginBottom: properties.size === 'small' ? 0 : 8
|
|
47
|
-
})]: true
|
|
42
|
+
'ant-form-item-label-left': properties.align === 'left' || !properties.align
|
|
48
43
|
});
|
|
44
|
+
const labelColStyle = {
|
|
45
|
+
overflow: properties.inline ? 'inherit' : undefined,
|
|
46
|
+
whiteSpace: !properties.inline ? 'normal' : undefined,
|
|
47
|
+
marginBottom: properties.size === 'small' ? 0 : 8
|
|
48
|
+
};
|
|
49
49
|
const labelClassName = classNames({
|
|
50
50
|
'ant-form-item-required': required,
|
|
51
|
-
'ant-form-item-no-colon': properties.colon === false
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
[methods.makeCssClass([
|
|
64
|
-
{
|
|
65
|
-
marginTop: properties.size === 'small' ? -4 : 0
|
|
66
|
-
},
|
|
67
|
-
properties.extraStyle
|
|
68
|
-
])]: true
|
|
69
|
-
});
|
|
51
|
+
'ant-form-item-no-colon': properties.colon === false
|
|
52
|
+
}, blockClassNames.label);
|
|
53
|
+
const labelStyle = {
|
|
54
|
+
height: 'fit-content',
|
|
55
|
+
minHeight: properties.inline ? properties.size === 'large' ? 40 : properties.size === 'small' ? 24 : 32 : undefined,
|
|
56
|
+
...styles.label
|
|
57
|
+
};
|
|
58
|
+
const extraClassName = classNames('ant-form-item-explain', 'ant-form-item-extra', blockClassNames.extra);
|
|
59
|
+
const extraStyle = {
|
|
60
|
+
marginTop: properties.size === 'small' ? -4 : 0,
|
|
61
|
+
...styles.extra
|
|
62
|
+
};
|
|
70
63
|
const feedbackClassName = classNames({
|
|
71
64
|
'ant-form-item-explain-success': validation.status === 'success',
|
|
72
65
|
'ant-form-item-explain-warning': validation.status === 'warning',
|
|
73
66
|
'ant-form-item-explain-error': validation.status === 'error',
|
|
74
|
-
'ant-form-item-explain-validating': validation.status === 'validating'
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
])]: true
|
|
81
|
-
});
|
|
67
|
+
'ant-form-item-explain-validating': validation.status === 'validating'
|
|
68
|
+
}, blockClassNames.feedback);
|
|
69
|
+
const feedbackStyle = {
|
|
70
|
+
marginTop: properties.size === 'small' ? -4 : 0,
|
|
71
|
+
...styles.feedback
|
|
72
|
+
};
|
|
82
73
|
const iconClassName = classNames({
|
|
83
74
|
'ant-form-item-feedback-icon': true,
|
|
84
75
|
'ant-form-item-feedback-icon-success': validation.status === 'success',
|
|
@@ -91,13 +82,18 @@ const labelLogic = ({ blockId, content, methods, properties = {}, required = fal
|
|
|
91
82
|
const showFeedback = validation.status === 'warning' || validation.status === 'error';
|
|
92
83
|
return {
|
|
93
84
|
extraClassName,
|
|
85
|
+
extraStyle,
|
|
94
86
|
feedbackClassName,
|
|
87
|
+
feedbackStyle,
|
|
95
88
|
iconClassName,
|
|
96
89
|
label: !properties.disabled && label,
|
|
97
90
|
labelClassName,
|
|
98
91
|
labelCol,
|
|
99
92
|
labelColClassName,
|
|
93
|
+
labelColStyle,
|
|
94
|
+
labelStyle,
|
|
100
95
|
rowClassName,
|
|
96
|
+
rowStyle,
|
|
101
97
|
showExtra,
|
|
102
98
|
showFeedback,
|
|
103
99
|
wrapperCol
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2026 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/ export default {
|
|
16
|
+
category: 'container',
|
|
17
|
+
icons: [
|
|
18
|
+
'AiFillCloseCircle',
|
|
19
|
+
'AiFillCheckCircle',
|
|
20
|
+
'AiOutlineLoading',
|
|
21
|
+
'AiFillExclamationCircle'
|
|
22
|
+
],
|
|
23
|
+
valueType: null,
|
|
24
|
+
slots: {
|
|
25
|
+
content: 'The labeled input or content blocks.'
|
|
26
|
+
},
|
|
27
|
+
cssKeys: {
|
|
28
|
+
element: 'The Label element.',
|
|
29
|
+
label: 'The Label label.',
|
|
30
|
+
extra: 'The Label extra content.',
|
|
31
|
+
feedback: 'The Label validation feedback.'
|
|
32
|
+
},
|
|
33
|
+
properties: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
additionalProperties: false,
|
|
36
|
+
properties: {
|
|
37
|
+
align: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
enum: [
|
|
40
|
+
'left',
|
|
41
|
+
'right'
|
|
42
|
+
],
|
|
43
|
+
default: 'left',
|
|
44
|
+
description: 'Align label left or right when inline.'
|
|
45
|
+
},
|
|
46
|
+
colon: {
|
|
47
|
+
type: 'boolean',
|
|
48
|
+
default: true,
|
|
49
|
+
description: 'Append label with colon.'
|
|
50
|
+
},
|
|
51
|
+
disabled: {
|
|
52
|
+
type: 'boolean',
|
|
53
|
+
default: false,
|
|
54
|
+
description: 'Disable to not render a label title.'
|
|
55
|
+
},
|
|
56
|
+
extra: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
description: 'Extra text to display beneath the content - supports html.'
|
|
59
|
+
},
|
|
60
|
+
size: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
enum: [
|
|
63
|
+
'small',
|
|
64
|
+
'default',
|
|
65
|
+
'large'
|
|
66
|
+
],
|
|
67
|
+
default: 'default',
|
|
68
|
+
description: 'Size of the block.'
|
|
69
|
+
},
|
|
70
|
+
title: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Label title - supports html.'
|
|
73
|
+
},
|
|
74
|
+
span: {
|
|
75
|
+
type: 'number',
|
|
76
|
+
description: 'Label inline span.'
|
|
77
|
+
},
|
|
78
|
+
inline: {
|
|
79
|
+
type: 'boolean',
|
|
80
|
+
default: false,
|
|
81
|
+
description: 'Render input and label inline.'
|
|
82
|
+
},
|
|
83
|
+
theme: {
|
|
84
|
+
type: 'object',
|
|
85
|
+
description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
|
|
86
|
+
docs: {
|
|
87
|
+
displayType: 'yaml',
|
|
88
|
+
link: 'https://ant.design/components/form#design-token'
|
|
89
|
+
},
|
|
90
|
+
properties: {
|
|
91
|
+
labelFontSize: {
|
|
92
|
+
type: 'number',
|
|
93
|
+
default: 14,
|
|
94
|
+
description: 'Font size of the label text.'
|
|
95
|
+
},
|
|
96
|
+
labelColor: {
|
|
97
|
+
type: 'string',
|
|
98
|
+
default: 'rgba(0,0,0,0.88)',
|
|
99
|
+
description: 'Text color of the label.'
|
|
100
|
+
},
|
|
101
|
+
labelRequiredMarkColor: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
default: '#ff4d4f',
|
|
104
|
+
description: 'Color of the required asterisk mark.'
|
|
105
|
+
},
|
|
106
|
+
labelColonMarginInlineStart: {
|
|
107
|
+
type: 'number',
|
|
108
|
+
default: 2,
|
|
109
|
+
description: 'Inline start margin of the colon after the label.'
|
|
110
|
+
},
|
|
111
|
+
labelColonMarginInlineEnd: {
|
|
112
|
+
type: 'number',
|
|
113
|
+
default: 8,
|
|
114
|
+
description: 'Inline end margin of the colon after the label.'
|
|
115
|
+
},
|
|
116
|
+
colorError: {
|
|
117
|
+
type: 'string',
|
|
118
|
+
default: '#ff4d4f',
|
|
119
|
+
description: 'Color used for error validation feedback.'
|
|
120
|
+
},
|
|
121
|
+
colorWarning: {
|
|
122
|
+
type: 'string',
|
|
123
|
+
default: '#faad14',
|
|
124
|
+
description: 'Color used for warning validation feedback.'
|
|
125
|
+
},
|
|
126
|
+
colorSuccess: {
|
|
127
|
+
type: 'string',
|
|
128
|
+
default: '#52c41a',
|
|
129
|
+
description: 'Color used for success validation feedback.'
|
|
130
|
+
},
|
|
131
|
+
colorText: {
|
|
132
|
+
type: 'string',
|
|
133
|
+
description: 'Text color for the extra and feedback text.'
|
|
134
|
+
},
|
|
135
|
+
colorTextDescription: {
|
|
136
|
+
type: 'string',
|
|
137
|
+
description: 'Color for the extra description text.'
|
|
138
|
+
},
|
|
139
|
+
fontSize: {
|
|
140
|
+
type: 'number',
|
|
141
|
+
default: 14,
|
|
142
|
+
description: 'Base font size.'
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2026 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
Antd Form.Item styles needed by the Label block.
|
|
19
|
+
|
|
20
|
+
Label reuses ant-form-item-* class names without rendering antd's <Form> or
|
|
21
|
+
<Form.Item> components, so their CSS-in-JS styles are never generated.
|
|
22
|
+
This file provides the subset of Form.Item styles that Label depends on.
|
|
23
|
+
|
|
24
|
+
Styles are extracted from antd v6 CSS-in-JS output and placed in @layer antd
|
|
25
|
+
so they sit at the correct cascade priority.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
@layer antd {
|
|
29
|
+
/* Label column */
|
|
30
|
+
:global(.ant-form-item .ant-form-item-label) {
|
|
31
|
+
flex-grow: 0;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
white-space: nowrap;
|
|
34
|
+
text-align: end;
|
|
35
|
+
vertical-align: middle;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
:global(.ant-form-item .ant-form-item-label-left) {
|
|
39
|
+
text-align: start;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:global(.ant-form-item .ant-form-item-label > label) {
|
|
43
|
+
position: relative;
|
|
44
|
+
display: inline-flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
max-width: 100%;
|
|
47
|
+
height: var(--ant-form-label-height, var(--ant-control-height));
|
|
48
|
+
color: var(--ant-form-label-color, var(--ant-color-text));
|
|
49
|
+
font-size: var(--ant-form-label-font-size, var(--ant-font-size));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Required asterisk */
|
|
53
|
+
:global(.ant-form-item .ant-form-item-label > label.ant-form-item-required)::before {
|
|
54
|
+
display: inline-block;
|
|
55
|
+
margin-inline-end: var(--ant-margin-xxs, 4px);
|
|
56
|
+
color: var(--ant-form-label-required-mark-color, var(--ant-color-error));
|
|
57
|
+
font-size: var(--ant-font-size);
|
|
58
|
+
font-family: SimSun, sans-serif;
|
|
59
|
+
line-height: 1;
|
|
60
|
+
content: '*';
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Colon after label */
|
|
64
|
+
:global(.ant-form-item .ant-form-item-label > label)::after {
|
|
65
|
+
content: ':';
|
|
66
|
+
position: relative;
|
|
67
|
+
margin-block: 0;
|
|
68
|
+
margin-inline-start: var(--ant-form-label-colon-margin-inline-start, 2px);
|
|
69
|
+
margin-inline-end: var(--ant-form-label-colon-margin-inline-end, 8px);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:global(.ant-form-item .ant-form-item-label > label.ant-form-item-no-colon)::after {
|
|
73
|
+
content: '\a0';
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Control column */
|
|
77
|
+
:global(.ant-form-item .ant-form-item-control) {
|
|
78
|
+
display: flex;
|
|
79
|
+
flex-direction: column;
|
|
80
|
+
flex-grow: 1;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:global(.ant-form-item .ant-form-item-control-input) {
|
|
84
|
+
position: relative;
|
|
85
|
+
display: flex;
|
|
86
|
+
align-items: center;
|
|
87
|
+
min-height: var(--ant-control-height);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
:global(.ant-form-item .ant-form-item-control-input-content) {
|
|
91
|
+
flex: auto;
|
|
92
|
+
max-width: 100%;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Help text / extra */
|
|
96
|
+
:global(.ant-form-item .ant-form-item-explain),
|
|
97
|
+
:global(.ant-form-item .ant-form-item-extra) {
|
|
98
|
+
clear: both;
|
|
99
|
+
color: var(--ant-color-text-description);
|
|
100
|
+
font-size: var(--ant-font-size);
|
|
101
|
+
line-height: var(--ant-line-height);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Validation feedback colors */
|
|
105
|
+
:global(.ant-form-item .ant-form-item-explain-error) {
|
|
106
|
+
color: var(--ant-color-error);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
:global(.ant-form-item .ant-form-item-explain-warning) {
|
|
110
|
+
color: var(--ant-color-warning);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
:global(.ant-form-item .ant-form-item-explain-success) {
|
|
114
|
+
color: var(--ant-color-success);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Feedback icons */
|
|
118
|
+
:global(.ant-form-item .ant-form-item-feedback-icon) {
|
|
119
|
+
font-size: var(--ant-font-size);
|
|
120
|
+
text-align: center;
|
|
121
|
+
visibility: visible;
|
|
122
|
+
pointer-events: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
:global(.ant-form-item .ant-form-item-feedback-icon-success) {
|
|
126
|
+
color: var(--ant-color-success);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
:global(.ant-form-item .ant-form-item-feedback-icon-error) {
|
|
130
|
+
color: var(--ant-color-error);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
:global(.ant-form-item .ant-form-item-feedback-icon-warning) {
|
|
134
|
+
color: var(--ant-color-warning);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
:global(.ant-form-item .ant-form-item-feedback-icon-validating) {
|
|
138
|
+
color: var(--ant-color-primary);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Custom: feedback icon spacing */
|
|
142
|
+
:global(.ldf-feedback-icon) {
|
|
143
|
+
margin-inline-start: var(--ant-margin-xxs, 4px);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/*
|
|
148
|
+
Error/warning state for group components (Radio, Checkbox, ButtonSelector,
|
|
149
|
+
Segmented) that don't support antd's native `status` prop.
|
|
150
|
+
|
|
151
|
+
These rules must live OUTSIDE @layer antd so they beat antd's unlayered
|
|
152
|
+
CSS-in-JS output in the cascade.
|
|
153
|
+
*/
|
|
154
|
+
:global(.ant-form-item-has-error .ant-radio-inner) {
|
|
155
|
+
border-color: var(--ant-color-error) !important;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
:global(.ant-form-item-has-error .ant-checkbox-inner) {
|
|
159
|
+
border-color: var(--ant-color-error) !important;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
:global(.ant-form-item-has-error .ant-radio-button-wrapper) {
|
|
163
|
+
border-color: var(--ant-color-error) !important;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
:global(.ant-form-item-has-error .ant-segmented) {
|
|
167
|
+
border-color: var(--ant-color-error);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* Warning state */
|
|
171
|
+
:global(.ant-form-item-has-warning .ant-radio-inner) {
|
|
172
|
+
border-color: var(--ant-color-warning) !important;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
:global(.ant-form-item-has-warning .ant-checkbox-inner) {
|
|
176
|
+
border-color: var(--ant-color-warning) !important;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
:global(.ant-form-item-has-warning .ant-radio-button-wrapper) {
|
|
180
|
+
border-color: var(--ant-color-warning) !important;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
:global(.ant-form-item-has-warning .ant-segmented) {
|
|
184
|
+
border-color: var(--ant-color-warning);
|
|
185
|
+
}
|
|
@@ -13,18 +13,15 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React from 'react';
|
|
16
|
-
import { blockDefaultProps } from '@lowdefy/block-utils';
|
|
17
16
|
import { Layout } from 'antd';
|
|
18
|
-
|
|
17
|
+
import { withBlockDefaults } from '@lowdefy/block-utils';
|
|
18
|
+
const LayoutBlock = ({ blockId, classNames = {}, content, properties, styles = {} })=>/*#__PURE__*/ React.createElement(Layout, {
|
|
19
19
|
id: blockId,
|
|
20
|
-
className:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
]
|
|
29
|
-
};
|
|
30
|
-
export default LayoutBlock;
|
|
20
|
+
className: classNames.element,
|
|
21
|
+
hasSider: properties.hasSider,
|
|
22
|
+
style: styles.element
|
|
23
|
+
}, content.content && content.content({
|
|
24
|
+
flexDirection: properties.hasSider ? 'row' : 'column',
|
|
25
|
+
flexWrap: properties.hasSider ? 'nowrap' : undefined
|
|
26
|
+
}));
|
|
27
|
+
export default withBlockDefaults(LayoutBlock);
|
|
@@ -13,14 +13,22 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ export default {
|
|
16
|
-
|
|
16
|
+
category: 'container',
|
|
17
|
+
icons: [],
|
|
18
|
+
valueType: null,
|
|
19
|
+
slots: {
|
|
20
|
+
content: 'Layout child blocks (Header, Sider, Content, Footer).'
|
|
21
|
+
},
|
|
22
|
+
cssKeys: {
|
|
23
|
+
element: 'The Layout element.'
|
|
24
|
+
},
|
|
17
25
|
properties: {
|
|
18
26
|
type: 'object',
|
|
19
27
|
additionalProperties: false,
|
|
20
28
|
properties: {
|
|
21
|
-
|
|
29
|
+
theme: {
|
|
22
30
|
type: 'object',
|
|
23
|
-
description: '
|
|
31
|
+
description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
|
|
24
32
|
docs: {
|
|
25
33
|
displayType: 'yaml'
|
|
26
34
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2026 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/ import React from 'react';
|
|
16
|
+
import { Masonry } from 'antd';
|
|
17
|
+
import { withBlockDefaults } from '@lowdefy/block-utils';
|
|
18
|
+
import withTheme from '../withTheme.js';
|
|
19
|
+
const MasonryBlock = ({ blockId, classNames = {}, content, properties, styles = {} })=>{
|
|
20
|
+
const rendered = content.content && content.content();
|
|
21
|
+
const children = React.Children.toArray(rendered?.props?.children ?? []);
|
|
22
|
+
const items = children.map((child, i)=>({
|
|
23
|
+
key: child.key ?? i,
|
|
24
|
+
children: child
|
|
25
|
+
}));
|
|
26
|
+
return /*#__PURE__*/ React.createElement(Masonry, {
|
|
27
|
+
id: blockId,
|
|
28
|
+
className: classNames.element,
|
|
29
|
+
style: styles.element,
|
|
30
|
+
columns: properties.columns,
|
|
31
|
+
fresh: properties.fresh,
|
|
32
|
+
gutter: properties.gutter,
|
|
33
|
+
sequential: properties.sequential,
|
|
34
|
+
items: items
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
export default withTheme('Masonry', withBlockDefaults(MasonryBlock));
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
*/ import { createBlockHelper } from '@lowdefy/e2e-utils';
|
|
16
|
+
import { expect } from '@playwright/test';
|
|
17
|
+
const locator = (page, blockId)=>page.locator(`#${blockId}`);
|
|
18
|
+
export default createBlockHelper({
|
|
19
|
+
locator,
|
|
20
|
+
expect: {
|
|
21
|
+
childCount: (page, blockId, count)=>expect(locator(page, blockId).locator('> *')).toHaveCount(count)
|
|
22
|
+
}
|
|
23
|
+
});
|