@lowdefy/blocks-antd 5.6.0 → 6.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.
Files changed (283) hide show
  1. package/dist/TagPillRow.js +88 -0
  2. package/dist/blocks/Affix/gallery.yaml +399 -0
  3. package/dist/blocks/Affix/tests/Affix.e2e.yaml +72 -0
  4. package/dist/blocks/Affix/tests.yaml +29 -0
  5. package/dist/blocks/Alert/gallery.yaml +701 -0
  6. package/dist/blocks/Alert/tests/Alert.e2e.yaml +161 -0
  7. package/dist/blocks/Alert/tests.yaml +261 -0
  8. package/dist/blocks/AutoComplete/gallery.yaml +713 -0
  9. package/dist/blocks/AutoComplete/tests/AutoComplete.e2e.yaml +330 -0
  10. package/dist/blocks/AutoComplete/tests.yaml +178 -0
  11. package/dist/blocks/Avatar/gallery.yaml +1037 -0
  12. package/dist/blocks/Avatar/tests/Avatar.e2e.yaml +125 -0
  13. package/dist/blocks/Avatar/tests.yaml +76 -0
  14. package/dist/blocks/Badge/gallery.yaml +1090 -0
  15. package/dist/blocks/Badge/tests/Badge.e2e.yaml +195 -0
  16. package/dist/blocks/Badge/tests.yaml +91 -0
  17. package/dist/blocks/Breadcrumb/gallery.yaml +484 -0
  18. package/dist/blocks/Breadcrumb/tests/Breadcrumb.e2e.yaml +165 -0
  19. package/dist/blocks/Breadcrumb/tests.yaml +106 -0
  20. package/dist/blocks/Button/gallery.yaml +718 -0
  21. package/dist/blocks/Button/tests/Button.e2e.yaml +246 -0
  22. package/dist/blocks/Button/tests.yaml +104 -0
  23. package/dist/blocks/ButtonSelector/gallery.yaml +891 -0
  24. package/dist/blocks/ButtonSelector/tests/ButtonSelector.e2e.yaml +188 -0
  25. package/dist/blocks/ButtonSelector/tests.yaml +167 -0
  26. package/dist/blocks/Calendar/gallery.yaml +128 -0
  27. package/dist/blocks/Calendar/tests/Calendar.e2e.yaml +136 -0
  28. package/dist/blocks/Calendar/tests.yaml +50 -0
  29. package/dist/blocks/Card/gallery.yaml +1035 -0
  30. package/dist/blocks/Card/tests/Card.e2e.yaml +209 -0
  31. package/dist/blocks/Card/tests.yaml +75 -0
  32. package/dist/blocks/Carousel/gallery.yaml +1971 -0
  33. package/dist/blocks/Carousel/tests/Carousel.e2e.yaml +211 -0
  34. package/dist/blocks/Carousel/tests.yaml +117 -0
  35. package/dist/blocks/CheckboxSelector/gallery.yaml +781 -0
  36. package/dist/blocks/CheckboxSelector/tests/CheckboxSelector.e2e.yaml +272 -0
  37. package/dist/blocks/CheckboxSelector/tests.yaml +325 -0
  38. package/dist/blocks/CheckboxSwitch/gallery.yaml +457 -0
  39. package/dist/blocks/CheckboxSwitch/tests/CheckboxSwitch.e2e.yaml +126 -0
  40. package/dist/blocks/CheckboxSwitch/tests.yaml +96 -0
  41. package/dist/blocks/Collapse/gallery.yaml +1079 -0
  42. package/dist/blocks/Collapse/tests/Collapse.e2e.yaml +206 -0
  43. package/dist/blocks/Collapse/tests.yaml +265 -0
  44. package/dist/blocks/ColorSelector/gallery.yaml +807 -0
  45. package/dist/blocks/ColorSelector/tests/ColorSelector.e2e.yaml +77 -0
  46. package/dist/blocks/ColorSelector/tests.yaml +84 -0
  47. package/dist/blocks/ConfigProvider/gallery.yaml +1003 -0
  48. package/dist/blocks/ConfigProvider/tests.yaml +62 -0
  49. package/dist/blocks/ConfirmModal/gallery.yaml +1043 -0
  50. package/dist/blocks/ConfirmModal/tests/ConfirmModal.e2e.yaml +410 -0
  51. package/dist/blocks/ConfirmModal/tests.yaml +95 -0
  52. package/dist/blocks/Content/gallery.yaml +528 -0
  53. package/dist/blocks/Content/tests/Content.e2e.yaml +71 -0
  54. package/dist/blocks/Content/tests.yaml +42 -0
  55. package/dist/blocks/ControlledList/ControlledList.js +1 -1
  56. package/dist/blocks/ControlledList/gallery.yaml +481 -0
  57. package/dist/blocks/ControlledList/{style.module.css → style.css} +3 -3
  58. package/dist/blocks/ControlledList/tests/ControlledList.e2e.yaml +161 -0
  59. package/dist/blocks/ControlledList/tests.yaml +57 -0
  60. package/dist/blocks/DateRangeSelector/DateRangeSelector.js +7 -0
  61. package/dist/blocks/DateRangeSelector/e2e.js +28 -2
  62. package/dist/blocks/DateRangeSelector/gallery.yaml +858 -0
  63. package/dist/blocks/DateRangeSelector/meta.js +2 -0
  64. package/dist/blocks/DateRangeSelector/tests/DateRangeSelector.e2e.yaml +204 -0
  65. package/dist/blocks/DateRangeSelector/tests.yaml +129 -0
  66. package/dist/blocks/DateSelector/DateSelector.js +6 -0
  67. package/dist/blocks/DateSelector/e2e.js +28 -2
  68. package/dist/blocks/DateSelector/gallery.yaml +691 -0
  69. package/dist/blocks/DateSelector/meta.js +6 -0
  70. package/dist/blocks/DateSelector/tests/DateSelector.e2e.yaml +229 -0
  71. package/dist/blocks/DateSelector/tests.yaml +117 -0
  72. package/dist/blocks/DateTimeSelector/DateTimeSelector.js +7 -0
  73. package/dist/blocks/DateTimeSelector/e2e.js +26 -2
  74. package/dist/blocks/DateTimeSelector/gallery.yaml +770 -0
  75. package/dist/blocks/DateTimeSelector/meta.js +2 -0
  76. package/dist/blocks/DateTimeSelector/tests/DateTimeSelector.e2e.yaml +163 -0
  77. package/dist/blocks/DateTimeSelector/tests.yaml +140 -0
  78. package/dist/blocks/Descriptions/gallery.yaml +839 -0
  79. package/dist/blocks/Descriptions/tests/Descriptions.e2e.yaml +143 -0
  80. package/dist/blocks/Descriptions/tests.yaml +256 -0
  81. package/dist/blocks/Divider/gallery.yaml +375 -0
  82. package/dist/blocks/Divider/tests/Divider.e2e.yaml +107 -0
  83. package/dist/blocks/Divider/tests.yaml +58 -0
  84. package/dist/blocks/Drawer/gallery.yaml +1257 -0
  85. package/dist/blocks/Drawer/tests/Drawer.e2e.yaml +562 -0
  86. package/dist/blocks/Drawer/tests.yaml +80 -0
  87. package/dist/blocks/DropdownButton/gallery.yaml +606 -0
  88. package/dist/blocks/DropdownButton/tests/DropdownButton.e2e.yaml +243 -0
  89. package/dist/blocks/DropdownMenu/gallery.yaml +578 -0
  90. package/dist/blocks/DropdownMenu/tests/DropdownMenu.e2e.yaml +267 -0
  91. package/dist/blocks/Flex/gallery.yaml +1416 -0
  92. package/dist/blocks/Flex/tests/Flex.e2e.yaml +95 -0
  93. package/dist/blocks/Flex/tests.yaml +92 -0
  94. package/dist/blocks/FloatButton/gallery.yaml +518 -0
  95. package/dist/blocks/FloatButton/tests/FloatButton.e2e.yaml +73 -0
  96. package/dist/blocks/FloatButton/tests.yaml +59 -0
  97. package/dist/blocks/Footer/gallery.yaml +355 -0
  98. package/dist/blocks/Footer/tests/Footer.e2e.yaml +70 -0
  99. package/dist/blocks/Footer/tests.yaml +28 -0
  100. package/dist/blocks/Header/gallery.yaml +249 -0
  101. package/dist/blocks/Header/tests/Header.e2e.yaml +77 -0
  102. package/dist/blocks/Header/tests.yaml +36 -0
  103. package/dist/blocks/Label/Label.js +1 -1
  104. package/dist/blocks/Label/gallery.yaml +762 -0
  105. package/dist/blocks/Label/{style.module.css → style.css} +28 -28
  106. package/dist/blocks/Label/tests/Label.e2e.yaml +247 -0
  107. package/dist/blocks/Label/tests.yaml +212 -0
  108. package/dist/blocks/Layout/gallery.yaml +548 -0
  109. package/dist/blocks/Layout/tests/Layout.e2e.yaml +86 -0
  110. package/dist/blocks/Layout/tests.yaml +28 -0
  111. package/dist/blocks/ListSelector/gallery.yaml +223 -0
  112. package/dist/blocks/Masonry/gallery.yaml +989 -0
  113. package/dist/blocks/Masonry/tests/Masonry.e2e.yaml +128 -0
  114. package/dist/blocks/Masonry/tests.yaml +42 -0
  115. package/dist/blocks/MasonryList/gallery.yaml +224 -0
  116. package/dist/blocks/MasonryList/tests/MasonryList.e2e.yaml +55 -0
  117. package/dist/blocks/MasonryList/tests.yaml +42 -0
  118. package/dist/blocks/Menu/gallery.yaml +974 -0
  119. package/dist/blocks/Menu/tests/Menu.e2e.yaml +484 -0
  120. package/dist/blocks/Menu/tests.yaml +1053 -0
  121. package/dist/blocks/Message/gallery.yaml +860 -0
  122. package/dist/blocks/Message/tests/Message.e2e.yaml +246 -0
  123. package/dist/blocks/Message/tests.yaml +54 -0
  124. package/dist/blocks/MobileMenu/gallery.yaml +1172 -0
  125. package/dist/blocks/MobileMenu/tests/MobileMenu.e2e.yaml +314 -0
  126. package/dist/blocks/MobileMenu/tests.yaml +359 -0
  127. package/dist/blocks/Modal/gallery.yaml +1039 -0
  128. package/dist/blocks/Modal/tests/Modal.e2e.yaml +493 -0
  129. package/dist/blocks/Modal/tests.yaml +75 -0
  130. package/dist/blocks/MonthSelector/MonthSelector.js +6 -0
  131. package/dist/blocks/MonthSelector/e2e.js +26 -2
  132. package/dist/blocks/MonthSelector/gallery.yaml +687 -0
  133. package/dist/blocks/MonthSelector/meta.js +6 -0
  134. package/dist/blocks/MonthSelector/tests/MonthSelector.e2e.yaml +167 -0
  135. package/dist/blocks/MonthSelector/tests.yaml +124 -0
  136. package/dist/blocks/MultipleSelector/gallery.yaml +1245 -0
  137. package/dist/blocks/MultipleSelector/tests/MultipleSelector.e2e.yaml +445 -0
  138. package/dist/blocks/MultipleSelector/tests.yaml +201 -0
  139. package/dist/blocks/Notification/gallery.yaml +1376 -0
  140. package/dist/blocks/Notification/tests/Notification.e2e.yaml +362 -0
  141. package/dist/blocks/Notification/tests.yaml +97 -0
  142. package/dist/blocks/NumberInput/gallery.yaml +753 -0
  143. package/dist/blocks/NumberInput/tests/NumberInput.e2e.yaml +228 -0
  144. package/dist/blocks/NumberInput/tests.yaml +116 -0
  145. package/dist/blocks/PageHeaderMenu/PageHeaderMenu.js +1 -1
  146. package/dist/blocks/PageHeaderMenu/gallery.yaml +480 -0
  147. package/dist/blocks/PageHeaderMenu/tests/PageHeaderMenu.e2e.yaml +110 -0
  148. package/dist/blocks/PageHeaderMenu/tests.yaml +173 -0
  149. package/dist/blocks/PageSidebarLayout/PageSidebarLayout.js +10 -1
  150. package/dist/blocks/PageSidebarLayout/gallery.yaml +302 -0
  151. package/dist/blocks/PageSidebarLayout/meta.js +1 -0
  152. package/dist/blocks/PageSidebarLayout/tests/PageSidebarLayout.e2e.yaml +216 -0
  153. package/dist/blocks/PageSidebarLayout/tests.yaml +174 -0
  154. package/dist/blocks/PageSiderMenu/PageSiderMenu.js +1 -1
  155. package/dist/blocks/PageSiderMenu/gallery.yaml +516 -0
  156. package/dist/blocks/PageSiderMenu/tests/PageSiderMenu.e2e.yaml +175 -0
  157. package/dist/blocks/PageSiderMenu/tests.yaml +211 -0
  158. package/dist/blocks/Pagination/gallery.yaml +503 -0
  159. package/dist/blocks/Pagination/tests/Pagination.e2e.yaml +159 -0
  160. package/dist/blocks/Pagination/tests.yaml +80 -0
  161. package/dist/blocks/Paragraph/gallery.yaml +458 -0
  162. package/dist/blocks/Paragraph/tests/Paragraph.e2e.yaml +153 -0
  163. package/dist/blocks/Paragraph/tests.yaml +176 -0
  164. package/dist/blocks/ParagraphInput/gallery.yaml +1483 -0
  165. package/dist/blocks/ParagraphInput/tests/ParagraphInput.e2e.yaml +189 -0
  166. package/dist/blocks/ParagraphInput/tests.yaml +163 -0
  167. package/dist/blocks/PasswordInput/gallery.yaml +420 -0
  168. package/dist/blocks/PasswordInput/tests/PasswordInput.e2e.yaml +188 -0
  169. package/dist/blocks/PasswordInput/tests.yaml +78 -0
  170. package/dist/blocks/PhoneNumberInput/gallery.yaml +677 -0
  171. package/dist/blocks/PhoneNumberInput/tests/PhoneNumberInput.e2e.yaml +279 -0
  172. package/dist/blocks/PhoneNumberInput/tests.yaml +25 -0
  173. package/dist/blocks/Popover/gallery.yaml +1301 -0
  174. package/dist/blocks/Popover/tests/Popover.e2e.yaml +249 -0
  175. package/dist/blocks/Popover/tests.yaml +105 -0
  176. package/dist/blocks/Progress/gallery.yaml +772 -0
  177. package/dist/blocks/Progress/tests/Progress.e2e.yaml +167 -0
  178. package/dist/blocks/Progress/tests.yaml +114 -0
  179. package/dist/blocks/QRCode/gallery.yaml +492 -0
  180. package/dist/blocks/QRCode/tests/QRCode.e2e.yaml +66 -0
  181. package/dist/blocks/QRCode/tests.yaml +113 -0
  182. package/dist/blocks/RadioSelector/gallery.yaml +816 -0
  183. package/dist/blocks/RadioSelector/tests/RadioSelector.e2e.yaml +269 -0
  184. package/dist/blocks/RadioSelector/tests.yaml +339 -0
  185. package/dist/blocks/RatingSlider/gallery.yaml +627 -0
  186. package/dist/blocks/RatingSlider/tests/RatingSlider.e2e.yaml +188 -0
  187. package/dist/blocks/RatingSlider/tests.yaml +116 -0
  188. package/dist/blocks/Result/gallery.yaml +925 -0
  189. package/dist/blocks/Result/tests/Result.e2e.yaml +126 -0
  190. package/dist/blocks/Result/tests.yaml +75 -0
  191. package/dist/blocks/Search/Search.js +1 -1
  192. package/dist/blocks/Search/SearchModal.js +18 -9
  193. package/dist/blocks/Search/gallery.yaml +170 -0
  194. package/dist/blocks/Search/meta.js +2 -1
  195. package/dist/blocks/Search/{style.module.css → style.css} +19 -12
  196. package/dist/blocks/Search/tests/Search.e2e.yaml +125 -0
  197. package/dist/blocks/Search/useSearchIndex.js +24 -2
  198. package/dist/blocks/SegmentedSelector/gallery.yaml +725 -0
  199. package/dist/blocks/SegmentedSelector/tests/SegmentedSelector.e2e.yaml +115 -0
  200. package/dist/blocks/SegmentedSelector/tests.yaml +141 -0
  201. package/dist/blocks/Selector/gallery.yaml +1055 -0
  202. package/dist/blocks/Selector/tests/Selector.e2e.yaml +427 -0
  203. package/dist/blocks/Selector/tests.yaml +196 -0
  204. package/dist/blocks/Sider/gallery.yaml +994 -0
  205. package/dist/blocks/Sider/tests/Sider.e2e.yaml +162 -0
  206. package/dist/blocks/Sider/tests.yaml +20 -0
  207. package/dist/blocks/Slider/gallery.yaml +600 -0
  208. package/dist/blocks/Slider/tests/Slider.e2e.yaml +190 -0
  209. package/dist/blocks/Slider/tests.yaml +68 -0
  210. package/dist/blocks/Splitter/gallery.yaml +1511 -0
  211. package/dist/blocks/Splitter/tests/Splitter.e2e.yaml +114 -0
  212. package/dist/blocks/Splitter/tests.yaml +79 -0
  213. package/dist/blocks/Statistic/gallery.yaml +460 -0
  214. package/dist/blocks/Statistic/tests/Statistic.e2e.yaml +137 -0
  215. package/dist/blocks/Statistic/tests.yaml +77 -0
  216. package/dist/blocks/Steps/gallery.yaml +550 -0
  217. package/dist/blocks/Switch/gallery.yaml +502 -0
  218. package/dist/blocks/Switch/tests/Switch.e2e.yaml +132 -0
  219. package/dist/blocks/Switch/tests.yaml +87 -0
  220. package/dist/blocks/Tabs/gallery.yaml +1353 -0
  221. package/dist/blocks/Tabs/tests/Tabs.e2e.yaml +370 -0
  222. package/dist/blocks/Tabs/tests.yaml +349 -0
  223. package/dist/blocks/Tag/gallery.yaml +598 -0
  224. package/dist/blocks/Tag/tests/Tag.e2e.yaml +173 -0
  225. package/dist/blocks/Tag/tests.yaml +51 -0
  226. package/dist/blocks/TagMultipleSelector/TagMultipleSelector.js +53 -0
  227. package/dist/blocks/TagMultipleSelector/e2e.js +36 -0
  228. package/dist/blocks/TagMultipleSelector/gallery.yaml +70 -0
  229. package/dist/blocks/TagMultipleSelector/meta.js +91 -0
  230. package/dist/blocks/TagMultipleSelector/tests/TagMultipleSelector.e2e.yaml +93 -0
  231. package/dist/blocks/TagSelector/TagSelector.js +49 -0
  232. package/dist/blocks/TagSelector/e2e.js +36 -0
  233. package/dist/blocks/TagSelector/gallery.yaml +70 -0
  234. package/dist/blocks/TagSelector/meta.js +91 -0
  235. package/dist/blocks/TagSelector/tests/TagSelector.e2e.yaml +93 -0
  236. package/dist/blocks/TextArea/gallery.yaml +618 -0
  237. package/dist/blocks/TextArea/tests/TextArea.e2e.yaml +218 -0
  238. package/dist/blocks/TextArea/tests.yaml +100 -0
  239. package/dist/blocks/TextInput/gallery.yaml +560 -0
  240. package/dist/blocks/TextInput/tests/TextInput.e2e.yaml +287 -0
  241. package/dist/blocks/TextInput/tests.yaml +114 -0
  242. package/dist/blocks/TimelineList/gallery.yaml +431 -0
  243. package/dist/blocks/TimelineList/tests/TimelineList.e2e.yaml +244 -0
  244. package/dist/blocks/TimelineList/tests.yaml +251 -0
  245. package/dist/blocks/Title/gallery.yaml +483 -0
  246. package/dist/blocks/Title/tests/Title.e2e.yaml +180 -0
  247. package/dist/blocks/Title/tests.yaml +175 -0
  248. package/dist/blocks/TitleInput/gallery.yaml +1006 -0
  249. package/dist/blocks/TitleInput/tests/TitleInput.e2e.yaml +195 -0
  250. package/dist/blocks/TitleInput/tests.yaml +181 -0
  251. package/dist/blocks/Tooltip/gallery.yaml +1214 -0
  252. package/dist/blocks/Tooltip/tests/Tooltip.e2e.yaml +195 -0
  253. package/dist/blocks/Tooltip/tests.yaml +92 -0
  254. package/dist/blocks/Tour/gallery.yaml +2305 -0
  255. package/dist/blocks/Tour/tests/Tour.e2e.yaml +90 -0
  256. package/dist/blocks/Tour/tests.yaml +151 -0
  257. package/dist/blocks/TreeInput/gallery.yaml +78 -0
  258. package/dist/blocks/TreeInput/tests/TreeInput.e2e.yaml +139 -0
  259. package/dist/blocks/TreeInput/tests.yaml +140 -0
  260. package/dist/blocks/TreeMultipleSelector/gallery.yaml +67 -0
  261. package/dist/blocks/TreeSelector/gallery.yaml +81 -0
  262. package/dist/blocks/Watermark/gallery.yaml +479 -0
  263. package/dist/blocks/Watermark/tests/Watermark.e2e.yaml +62 -0
  264. package/dist/blocks/Watermark/tests.yaml +86 -0
  265. package/dist/blocks/WeekSelector/WeekSelector.js +6 -0
  266. package/dist/blocks/WeekSelector/e2e.js +26 -2
  267. package/dist/blocks/WeekSelector/gallery.yaml +589 -0
  268. package/dist/blocks/WeekSelector/meta.js +6 -0
  269. package/dist/blocks/WeekSelector/tests/WeekSelector.e2e.yaml +154 -0
  270. package/dist/blocks/WeekSelector/tests.yaml +122 -0
  271. package/dist/blocks.js +2 -0
  272. package/dist/disabledDate.js +91 -19
  273. package/dist/e2e.js +2 -0
  274. package/dist/getPresets.js +151 -0
  275. package/dist/getTagColor.js +44 -0
  276. package/dist/getTagSelectorOptions.js +30 -0
  277. package/dist/metas.js +2 -0
  278. package/dist/pickerPresetsStyle.css +26 -0
  279. package/dist/schemas/disabledDates.js +6 -2
  280. package/dist/schemas/index.js +1 -0
  281. package/dist/schemas/presets.js +111 -0
  282. package/dist/tagSelectorStyle.css +68 -0
  283. package/package.json +13 -13
@@ -0,0 +1,481 @@
1
+ # Copyright 2020-2026 Lowdefy, Inc
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # ──────────────────────────────────────────────
16
+ # Basic Examples
17
+ # ──────────────────────────────────────────────
18
+
19
+ - title: Team Members
20
+ blocks:
21
+ - id: team
22
+ type: ControlledList
23
+ properties:
24
+ title: Team Members
25
+ blocks:
26
+ - id: team.$.name
27
+ type: TextInput
28
+ required: true
29
+ layout:
30
+ flex: 1 1 0
31
+ properties:
32
+ label:
33
+ disabled: true
34
+ placeholder: Full name
35
+ - id: team.$.role
36
+ type: Selector
37
+ layout:
38
+ flex: 1 1 0
39
+ properties:
40
+ label:
41
+ disabled: true
42
+ placeholder: Role
43
+ options:
44
+ - Developer
45
+ - Designer
46
+ - PM
47
+ - QA
48
+ - id: team.$.email
49
+ type: TextInput
50
+ layout:
51
+ flex: 1 1 0
52
+ properties:
53
+ label:
54
+ disabled: true
55
+ placeholder: Email
56
+
57
+ - title: Bookmarks
58
+ blocks:
59
+ - id: bookmarks
60
+ type: ControlledList
61
+ properties:
62
+ title: Bookmarks
63
+ addToFront: true
64
+ size: small
65
+ addItemButton:
66
+ title: Bookmark
67
+ icon: AiOutlinePlus
68
+ color: primary
69
+ variant: dashed
70
+ removeItemIcon:
71
+ name: AiOutlineDelete
72
+ blocks:
73
+ - id: bookmarks.$.url
74
+ type: TextInput
75
+ layout:
76
+ flex: 1 1 0
77
+ properties:
78
+ label:
79
+ disabled: true
80
+ placeholder: 'https://...'
81
+ prefixIcon: AiOutlineLink
82
+ - id: bookmarks.$.label
83
+ type: TextInput
84
+ layout:
85
+ flex: 1 1 0
86
+ properties:
87
+ label:
88
+ disabled: true
89
+ placeholder: Label
90
+
91
+ # ──────────────────────────────────────────────
92
+ # Advanced Examples
93
+ # ──────────────────────────────────────────────
94
+
95
+ - title: Event Registration
96
+ fullWidth: true
97
+ blocks:
98
+ - id: attendees
99
+ type: ControlledList
100
+ properties:
101
+ title: Attendees
102
+ addItemButton:
103
+ title: Add Attendee
104
+ icon: AiOutlineUserAdd
105
+ color: primary
106
+ variant: outlined
107
+ blocks:
108
+ - id: attendees.$.name
109
+ type: TextInput
110
+ required: true
111
+ layout:
112
+ flex: 2 1 0
113
+ properties:
114
+ label:
115
+ disabled: true
116
+ placeholder: Full name
117
+ - id: attendees.$.type
118
+ type: Selector
119
+ required: true
120
+ layout:
121
+ flex: 1 1 0
122
+ properties:
123
+ label:
124
+ disabled: true
125
+ placeholder: Type
126
+ options:
127
+ - Adult
128
+ - Child
129
+ - Senior
130
+ - id: attendees.$.email
131
+ type: TextInput
132
+ required: true
133
+ visible:
134
+ _eq:
135
+ - _state: attendees.$.type
136
+ - Adult
137
+ layout:
138
+ flex: 1 1 0
139
+ properties:
140
+ label:
141
+ disabled: true
142
+ placeholder: Email
143
+ validate:
144
+ - message: Enter a valid email.
145
+ status: error
146
+ pass:
147
+ _regex:
148
+ pattern: '^[^@]+@[^@]+\.[^@]+$'
149
+ on:
150
+ _if_none:
151
+ - _state: attendees.$.email
152
+ - ''
153
+ - id: attendees.$.meal
154
+ type: Selector
155
+ visible:
156
+ _eq:
157
+ - _state: attendees.$.type
158
+ - Adult
159
+ layout:
160
+ flex: 1 1 0
161
+ properties:
162
+ label:
163
+ disabled: true
164
+ placeholder: Meal
165
+ options:
166
+ - Standard
167
+ - Vegetarian
168
+ - Vegan
169
+ - id: attendees.$.age
170
+ type: NumberInput
171
+ visible:
172
+ _eq:
173
+ - _state: attendees.$.type
174
+ - Child
175
+ layout:
176
+ flex: 1 1 0
177
+ properties:
178
+ label:
179
+ disabled: true
180
+ placeholder: Age
181
+ min: 1
182
+ max: 17
183
+ - id: attendees.$.supervision
184
+ type: Switch
185
+ visible:
186
+ _eq:
187
+ - _state: attendees.$.type
188
+ - Child
189
+ layout:
190
+ flex: 0 0 auto
191
+ properties:
192
+ label: Needs supervision
193
+ size: small
194
+ - id: attendees.$.wheelchair
195
+ type: Switch
196
+ visible:
197
+ _eq:
198
+ - _state: attendees.$.type
199
+ - Senior
200
+ layout:
201
+ flex: 0 0 auto
202
+ properties:
203
+ label: Wheelchair access
204
+ size: small
205
+ - id: attendees.$.dietary
206
+ type: TextInput
207
+ visible:
208
+ _eq:
209
+ - _state: attendees.$.type
210
+ - Senior
211
+ layout:
212
+ flex: 1 1 0
213
+ properties:
214
+ label:
215
+ disabled: true
216
+ placeholder: Dietary notes
217
+ - id: attendees_footer
218
+ type: Box
219
+ layout:
220
+ justify: flex-end
221
+ blocks:
222
+ - id: attendees_register
223
+ type: Button
224
+ layout:
225
+ flex: 0 0 auto
226
+ properties:
227
+ title: Register All
228
+ icon: AiOutlineSend
229
+ color: primary
230
+ variant: solid
231
+ events:
232
+ onClick:
233
+ - id: attendees_validate
234
+ type: Validate
235
+ params:
236
+ regex: ^attendees
237
+ - id: attendees_msg
238
+ type: DisplayMessage
239
+ params:
240
+ content: All attendees registered!
241
+ status: success
242
+
243
+ - title: Expense Report
244
+ fullWidth: true
245
+ blocks:
246
+ - id: expenses
247
+ type: ControlledList
248
+ properties:
249
+ title: Expenses
250
+ addItemButton:
251
+ title: Add Expense
252
+ icon: AiOutlinePlus
253
+ color: primary
254
+ variant: dashed
255
+ theme:
256
+ itemPadding: '16px 12px'
257
+ blocks:
258
+ - id: expenses.$.date
259
+ type: DateSelector
260
+ required: true
261
+ layout:
262
+ flex: 1 1 0
263
+ properties:
264
+ label:
265
+ disabled: true
266
+ placeholder: Date
267
+ - id: expenses.$.category
268
+ type: Selector
269
+ required: true
270
+ layout:
271
+ flex: 1 1 0
272
+ properties:
273
+ label:
274
+ disabled: true
275
+ placeholder: Category
276
+ options:
277
+ - Travel
278
+ - Meals
279
+ - Software
280
+ - Equipment
281
+ - Other
282
+ - id: expenses.$.desc
283
+ type: TextInput
284
+ required: true
285
+ layout:
286
+ flex: 2 1 0
287
+ properties:
288
+ label:
289
+ disabled: true
290
+ placeholder: Description
291
+ - id: expenses.$.amount
292
+ type: NumberInput
293
+ required: true
294
+ layout:
295
+ flex: 1 1 0
296
+ properties:
297
+ label:
298
+ disabled: true
299
+ placeholder: Amount
300
+ min: 0
301
+ step: 0.01
302
+ prefix: '$'
303
+ - id: expenses_footer
304
+ type: Box
305
+ layout:
306
+ gap: 16
307
+ justify: flex-end
308
+ align: center
309
+ blocks:
310
+ - id: expenses_total
311
+ type: Statistic
312
+ layout:
313
+ flex: 0 0 auto
314
+ properties:
315
+ title: Total Expenses
316
+ prefix: '$'
317
+ precision: 2
318
+ value:
319
+ _js: |
320
+ const expenses = state('expenses') || [];
321
+ return expenses.reduce((sum, item) => sum + (item.amount || 0), 0);
322
+ - id: expenses_submit
323
+ type: Button
324
+ layout:
325
+ flex: 0 0 auto
326
+ properties:
327
+ title: Submit Report
328
+ icon: AiOutlineSend
329
+ color: primary
330
+ variant: solid
331
+ events:
332
+ onClick:
333
+ - id: expenses_validate
334
+ type: Validate
335
+ params:
336
+ regex: ^expenses
337
+ - id: expenses_msg
338
+ type: DisplayMessage
339
+ params:
340
+ content: Expense report submitted!
341
+ status: success
342
+
343
+ - title: Project Planner
344
+ fullWidth: true
345
+ blocks:
346
+ - id: projects
347
+ type: ControlledList
348
+ properties:
349
+ title: Projects
350
+ addItemButton:
351
+ title: Add Project
352
+ icon: AiOutlinePlus
353
+ color: primary
354
+ variant: outlined
355
+ blocks:
356
+ - id: projects.$.name
357
+ type: TextInput
358
+ required: true
359
+ layout:
360
+ flex: 1 1 0
361
+ properties:
362
+ label:
363
+ disabled: true
364
+ placeholder: Project name
365
+ - id: projects.$.status
366
+ type: Selector
367
+ layout:
368
+ flex: 0 0 140px
369
+ properties:
370
+ label:
371
+ disabled: true
372
+ placeholder: Status
373
+ options:
374
+ - Planning
375
+ - Active
376
+ - Review
377
+ - Done
378
+ - id: projects.$.tasks
379
+ type: ControlledList
380
+ properties:
381
+ title: Tasks
382
+ size: small
383
+ addItemButton:
384
+ title: Add Task
385
+ icon: AiOutlinePlus
386
+ size: small
387
+ variant: dashed
388
+ blocks:
389
+ - id: projects.$.tasks.$.task
390
+ type: TextInput
391
+ required: true
392
+ layout:
393
+ flex: 1 1 0
394
+ properties:
395
+ label:
396
+ disabled: true
397
+ placeholder: Task description
398
+ size: small
399
+ - id: projects.$.tasks.$.done
400
+ type: Switch
401
+ layout:
402
+ flex: 0 0 auto
403
+ properties:
404
+ label: Done
405
+ size: small
406
+ - id: projects_footer
407
+ type: Box
408
+ layout:
409
+ justify: flex-end
410
+ blocks:
411
+ - id: projects_save
412
+ type: Button
413
+ layout:
414
+ flex: 0 0 auto
415
+ properties:
416
+ title: Save All
417
+ icon: AiOutlineSave
418
+ color: primary
419
+ variant: solid
420
+ events:
421
+ onClick:
422
+ - id: projects_validate
423
+ type: Validate
424
+ params:
425
+ regex: ^projects
426
+ - id: projects_msg
427
+ type: DisplayMessage
428
+ params:
429
+ content: Projects saved!
430
+ status: success
431
+
432
+ # ──────────────────────────────────────────────
433
+ # onAdd / onRemove events
434
+ # ──────────────────────────────────────────────
435
+
436
+ - title: onAdd / onRemove events
437
+ blocks:
438
+ - id: tags
439
+ type: ControlledList
440
+ properties:
441
+ title: Tags
442
+ size: small
443
+ addItemButton:
444
+ title: Add Tag
445
+ icon: AiOutlinePlus
446
+ size: small
447
+ variant: dashed
448
+ events:
449
+ onAdd:
450
+ - id: tags_added_msg
451
+ type: DisplayMessage
452
+ params:
453
+ content:
454
+ _string.concat:
455
+ - 'Added row at index '
456
+ - _event: index
457
+ duration: 1
458
+ onRemove:
459
+ - id: tags_removed_msg
460
+ type: DisplayMessage
461
+ params:
462
+ content:
463
+ _string.concat:
464
+ - 'Removed "'
465
+ - _if_none:
466
+ - _event: item.label
467
+ - '(empty)'
468
+ - '" at index '
469
+ - _event: index
470
+ status: warning
471
+ duration: 2
472
+ blocks:
473
+ - id: tags.$.label
474
+ type: TextInput
475
+ layout:
476
+ flex: 1 1 0
477
+ properties:
478
+ label:
479
+ disabled: true
480
+ placeholder: Tag name
481
+ size: small
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  @layer components {
18
- :global(.lf-controlled-list-remove) {
18
+ .lf-controlled-list-remove {
19
19
  display: inline-flex;
20
20
  align-items: center;
21
21
  padding-left: var(--ant-padding-xs);
@@ -25,11 +25,11 @@
25
25
  transition: color 0.2s;
26
26
  }
27
27
 
28
- :global(.lf-controlled-list-remove:hover) {
28
+ .lf-controlled-list-remove:hover {
29
29
  color: var(--ant-color-error-hover);
30
30
  }
31
31
 
32
- :global(.lf-controlled-list-remove:active) {
32
+ .lf-controlled-list-remove:active {
33
33
  color: var(--ant-color-error-active);
34
34
  }
35
35
  }
@@ -0,0 +1,161 @@
1
+ # Copyright 2020-2026 Lowdefy, Inc
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ id: controlledlist
16
+ type: Box
17
+
18
+ events:
19
+ onInit:
20
+ - id: set_defaults
21
+ type: SetState
22
+ params:
23
+ controlledlist_with_items:
24
+ - name: Item 1
25
+ - name: Item 2
26
+ - name: Item 3
27
+ controlledlist_minitems:
28
+ - name: Item 1
29
+ controlledlist_remove:
30
+ - name: Item A
31
+ - name: Item B
32
+ - name: Item C
33
+
34
+ blocks:
35
+ # ============================================
36
+ # BASIC RENDERING
37
+ # ============================================
38
+
39
+ - id: controlledlist_basic
40
+ type: ControlledList
41
+ properties:
42
+ title: Basic List
43
+
44
+ - id: controlledlist_with_items
45
+ type: ControlledList
46
+ properties:
47
+ title: List With Items
48
+ slots:
49
+ content:
50
+ blocks:
51
+ - id: controlledlist_with_items_text
52
+ type: Span
53
+ properties:
54
+ content:
55
+ _string.concat:
56
+ - 'Item: '
57
+ - _state: controlledlist_with_items.$.name
58
+
59
+ # ============================================
60
+ # STYLE TESTS
61
+ # ============================================
62
+
63
+ - id: controlledlist_small
64
+ type: ControlledList
65
+ properties:
66
+ title: Small Size List
67
+ size: small
68
+
69
+ - id: controlledlist_large
70
+ type: ControlledList
71
+ properties:
72
+ title: Large Size List
73
+ size: large
74
+
75
+ # ============================================
76
+ # ADD BUTTON TESTS
77
+ # ============================================
78
+
79
+ - id: controlledlist_add_front
80
+ type: ControlledList
81
+ properties:
82
+ title: Add to Front
83
+ addToFront: true
84
+
85
+ - id: controlledlist_hide_add
86
+ type: ControlledList
87
+ properties:
88
+ title: Hidden Add Button
89
+ hideAddButton: true
90
+
91
+ - id: controlledlist_custom_add
92
+ type: ControlledList
93
+ properties:
94
+ title: Custom Add Button
95
+ addItemButton:
96
+ title: New Entry
97
+ type: primary
98
+
99
+ # ============================================
100
+ # EMPTY STATE
101
+ # ============================================
102
+
103
+ - id: controlledlist_nodata
104
+ type: ControlledList
105
+ properties:
106
+ title: Empty List
107
+ noDataTitle: No items available
108
+
109
+ # ============================================
110
+ # MIN ITEMS
111
+ # ============================================
112
+
113
+ - id: controlledlist_minitems
114
+ type: ControlledList
115
+ properties:
116
+ title: Min Items List
117
+ minItems: 2
118
+ slots:
119
+ content:
120
+ blocks:
121
+ - id: controlledlist_minitems_text
122
+ type: Span
123
+ properties:
124
+ content:
125
+ _string.concat:
126
+ - 'Name: '
127
+ - _state: controlledlist_minitems.$.name
128
+
129
+ # ============================================
130
+ # INTERACTION TESTS
131
+ # ============================================
132
+
133
+ - id: controlledlist_add
134
+ type: ControlledList
135
+ properties:
136
+ title: Add Items List
137
+ slots:
138
+ content:
139
+ blocks:
140
+ - id: controlledlist_add_text
141
+ type: Span
142
+ properties:
143
+ content:
144
+ _string.concat:
145
+ - 'Index: '
146
+ - _index: true
147
+
148
+ - id: controlledlist_remove
149
+ type: ControlledList
150
+ properties:
151
+ title: Remove Items List
152
+ slots:
153
+ content:
154
+ blocks:
155
+ - id: controlledlist_remove_text
156
+ type: Span
157
+ properties:
158
+ content:
159
+ _string.concat:
160
+ - 'Item: '
161
+ - _state: controlledlist_remove.$.name
@@ -0,0 +1,57 @@
1
+ # default opens numerous lists on examples
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
+ - id: default
17
+ type: ControlledList
18
+ - id: properties.title
19
+ type: ControlledList
20
+ properties:
21
+ title: ControlledList block
22
+ - id: 'properties.noDataTitle: No title display'
23
+ type: ControlledList
24
+ properties:
25
+ noDataTitle: No title display
26
+ - id: 'properties.addToFront: true'
27
+ type: ControlledList
28
+ properties:
29
+ addToFront: true
30
+ - id: 'properties.hideAddButton: true'
31
+ type: ControlledList
32
+ properties:
33
+ hideAddButton: true
34
+ - id: 'properties.size: small'
35
+ type: ControlledList
36
+ properties:
37
+ size: small
38
+ - id: 'properties.size: large'
39
+ type: ControlledList
40
+ properties:
41
+ size: large
42
+ - id: 'properties.addItemButton:
43
+ title: Add new Item'
44
+ type: ControlledList
45
+ properties:
46
+ addItemButton:
47
+ title: Add new Item
48
+ - id: 'properties.removeItemIcon: AiOutlineDelete'
49
+ type: ControlledList
50
+ properties:
51
+ removeItemIcon: AiOutlineDelete
52
+ - id: 'properties.removeItemIcon:
53
+ name: AiOutlineDelete'
54
+ type: ControlledList
55
+ properties:
56
+ removeItemIcon:
57
+ name: AiOutlineDelete