@lowdefy/blocks-antd 4.7.3 → 5.1.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 (359) hide show
  1. package/dist/blocks/Affix/Affix.js +6 -12
  2. package/dist/blocks/Affix/{schema.js → meta.js} +23 -14
  3. package/dist/blocks/Alert/Alert.js +17 -12
  4. package/dist/blocks/Alert/e2e.js +1 -1
  5. package/dist/blocks/Alert/meta.js +186 -0
  6. package/dist/blocks/AutoComplete/AutoComplete.js +21 -22
  7. package/dist/blocks/AutoComplete/meta.js +266 -0
  8. package/dist/blocks/Avatar/Avatar.js +58 -18
  9. package/dist/blocks/Avatar/meta.js +277 -0
  10. package/dist/blocks/Badge/Badge.js +13 -12
  11. package/dist/blocks/Badge/{schema.js → meta.js} +80 -1
  12. package/dist/blocks/Breadcrumb/Breadcrumb.js +40 -41
  13. package/dist/blocks/Breadcrumb/meta.js +90 -0
  14. package/dist/blocks/Button/Button.js +77 -39
  15. package/dist/blocks/Button/meta.js +230 -0
  16. package/dist/blocks/ButtonSelector/ButtonSelector.js +54 -59
  17. package/dist/blocks/ButtonSelector/meta.js +213 -0
  18. package/dist/blocks/Calendar/Calendar.js +153 -0
  19. package/dist/blocks/Calendar/e2e.js +27 -0
  20. package/dist/blocks/Calendar/meta.js +148 -0
  21. package/dist/blocks/Card/Card.js +22 -21
  22. package/dist/blocks/Card/meta.js +170 -0
  23. package/dist/blocks/Carousel/Carousel.js +6 -12
  24. package/dist/blocks/Carousel/{schema.js → meta.js} +61 -22
  25. package/dist/blocks/CheckboxSelector/CheckboxSelector.js +58 -64
  26. package/dist/blocks/CheckboxSelector/meta.js +150 -0
  27. package/dist/blocks/CheckboxSwitch/CheckboxSwitch.js +38 -44
  28. package/dist/blocks/CheckboxSwitch/meta.js +183 -0
  29. package/dist/blocks/Collapse/Collapse.js +21 -12
  30. package/dist/blocks/Collapse/meta.js +179 -0
  31. package/dist/blocks/ColorSelector/ColorSelector.js +97 -0
  32. package/dist/blocks/ColorSelector/e2e.js +32 -0
  33. package/dist/blocks/ColorSelector/meta.js +250 -0
  34. package/dist/blocks/ConfigProvider/ConfigProvider.js +51 -0
  35. package/dist/blocks/{Alert/style.less → ConfigProvider/e2e.js} +5 -3
  36. package/dist/blocks/{ControlledList/schema.js → ConfigProvider/meta.js} +43 -45
  37. package/dist/blocks/ConfirmModal/ConfirmModal.js +45 -25
  38. package/dist/blocks/ConfirmModal/{schema.js → meta.js} +93 -35
  39. package/dist/blocks/Content/Content.js +5 -12
  40. package/dist/blocks/{Layout/schema.js → Content/meta.js} +11 -3
  41. package/dist/blocks/ControlledList/ControlledList.js +42 -54
  42. package/dist/blocks/ControlledList/meta.js +158 -0
  43. package/dist/blocks/DateRangeSelector/DateRangeSelector.js +31 -29
  44. package/dist/blocks/DateRangeSelector/meta.js +297 -0
  45. package/dist/blocks/DateSelector/DateSelector.js +28 -28
  46. package/dist/blocks/DateSelector/meta.js +241 -0
  47. package/dist/blocks/DateTimeSelector/DateTimeSelector.js +28 -28
  48. package/dist/blocks/DateTimeSelector/meta.js +282 -0
  49. package/dist/blocks/Descriptions/Descriptions.js +20 -22
  50. package/dist/blocks/Descriptions/{schema.js → meta.js} +71 -15
  51. package/dist/blocks/Divider/Divider.js +8 -14
  52. package/dist/blocks/Divider/meta.js +86 -0
  53. package/dist/blocks/Drawer/Drawer.js +23 -16
  54. package/dist/blocks/Drawer/{schema.js → meta.js} +62 -61
  55. package/dist/blocks/DropdownButton/DropdownButton.js +221 -0
  56. package/dist/blocks/DropdownButton/e2e.js +30 -0
  57. package/dist/blocks/DropdownButton/meta.js +317 -0
  58. package/dist/blocks/DropdownMenu/DropdownMenu.js +130 -0
  59. package/dist/blocks/DropdownMenu/e2e.js +28 -0
  60. package/dist/blocks/DropdownMenu/meta.js +322 -0
  61. package/dist/blocks/Flex/Flex.js +31 -0
  62. package/dist/blocks/{Comment → Flex}/e2e.js +1 -2
  63. package/dist/blocks/Flex/meta.js +115 -0
  64. package/dist/blocks/FloatButton/FloatButton.js +46 -0
  65. package/dist/blocks/FloatButton/e2e.js +28 -0
  66. package/dist/blocks/FloatButton/meta.js +156 -0
  67. package/dist/blocks/Footer/Footer.js +8 -17
  68. package/dist/blocks/{Header/schema.js → Footer/meta.js} +11 -12
  69. package/dist/blocks/Header/Header.js +38 -18
  70. package/dist/blocks/Header/meta.js +318 -0
  71. package/dist/blocks/Label/Label.js +19 -27
  72. package/dist/blocks/Label/labelLogic.js +37 -41
  73. package/dist/blocks/Label/meta.js +148 -0
  74. package/dist/blocks/Label/style.module.css +185 -0
  75. package/dist/blocks/Layout/Layout.js +10 -13
  76. package/dist/blocks/{Content/schema.js → Layout/meta.js} +11 -3
  77. package/dist/blocks/Masonry/Masonry.js +37 -0
  78. package/dist/blocks/{Affix/style.less → Masonry/e2e.js} +9 -3
  79. package/dist/blocks/Masonry/meta.js +86 -0
  80. package/dist/blocks/MasonryList/MasonryList.js +42 -0
  81. package/dist/blocks/{AutoComplete/style.less → MasonryList/e2e.js} +9 -3
  82. package/dist/blocks/MasonryList/meta.js +86 -0
  83. package/dist/blocks/Menu/Menu.js +153 -124
  84. package/dist/blocks/Menu/meta.js +544 -0
  85. package/dist/blocks/Message/Message.js +18 -16
  86. package/dist/blocks/Message/{schema.js → meta.js} +29 -14
  87. package/dist/blocks/MobileMenu/MobileMenu.js +28 -23
  88. package/dist/blocks/MobileMenu/{schema.js → meta.js} +48 -31
  89. package/dist/blocks/Modal/Modal.js +20 -16
  90. package/dist/blocks/Modal/meta.js +234 -0
  91. package/dist/blocks/MonthSelector/MonthSelector.js +30 -30
  92. package/dist/blocks/MonthSelector/meta.js +260 -0
  93. package/dist/blocks/MultipleSelector/MultipleSelector.js +57 -37
  94. package/dist/blocks/MultipleSelector/{schema.js → meta.js} +178 -151
  95. package/dist/blocks/Notification/Notification.js +39 -23
  96. package/dist/blocks/Notification/{schema.js → meta.js} +36 -22
  97. package/dist/blocks/NumberInput/NumberInput.js +12 -21
  98. package/dist/blocks/NumberInput/meta.js +250 -0
  99. package/dist/blocks/PageHeaderMenu/PageHeaderMenu.js +137 -189
  100. package/dist/blocks/PageHeaderMenu/meta.js +420 -0
  101. package/dist/blocks/PageSidebarLayout/PageSidebarLayout.js +511 -0
  102. package/dist/blocks/PageSidebarLayout/e2e.js +34 -0
  103. package/dist/blocks/PageSidebarLayout/meta.js +516 -0
  104. package/dist/blocks/PageSiderMenu/PageSiderMenu.js +188 -196
  105. package/dist/blocks/PageSiderMenu/meta.js +486 -0
  106. package/dist/blocks/Pagination/Pagination.js +6 -15
  107. package/dist/blocks/Pagination/meta.js +233 -0
  108. package/dist/blocks/Paragraph/Paragraph.js +28 -16
  109. package/dist/blocks/Paragraph/{schema.js → meta.js} +68 -18
  110. package/dist/blocks/ParagraphInput/ParagraphInput.js +34 -17
  111. package/dist/blocks/ParagraphInput/{schema.js → meta.js} +134 -18
  112. package/dist/blocks/PasswordInput/PasswordInput.js +9 -16
  113. package/dist/blocks/PasswordInput/meta.js +195 -0
  114. package/dist/blocks/PhoneNumberInput/PhoneNumberInput.js +37 -33
  115. package/dist/blocks/PhoneNumberInput/formatPhoneNumber.js +25 -0
  116. package/dist/blocks/PhoneNumberInput/meta.js +225 -0
  117. package/dist/blocks/PhoneNumberInput/upstream-formatting-spec.md +173 -0
  118. package/dist/blocks/Popover/Popover.js +7 -12
  119. package/dist/blocks/Popover/{schema.js → meta.js} +81 -11
  120. package/dist/blocks/Progress/Progress.js +7 -12
  121. package/dist/blocks/Progress/{schema.js → meta.js} +74 -4
  122. package/dist/blocks/QRCode/QRCode.js +39 -0
  123. package/dist/blocks/{Footer/schema.js → QRCode/e2e.js} +9 -15
  124. package/dist/blocks/QRCode/meta.js +152 -0
  125. package/dist/blocks/RadioSelector/RadioSelector.js +55 -63
  126. package/dist/blocks/RadioSelector/meta.js +179 -0
  127. package/dist/blocks/RatingSlider/RatingSlider.js +95 -103
  128. package/dist/blocks/RatingSlider/meta.js +221 -0
  129. package/dist/blocks/Result/Result.js +13 -12
  130. package/dist/blocks/Result/meta.js +129 -0
  131. package/dist/blocks/Search/Search.js +135 -0
  132. package/dist/blocks/Search/SearchHighlight.js +33 -0
  133. package/dist/blocks/Search/SearchModal.js +171 -0
  134. package/dist/blocks/Search/SearchResults.js +129 -0
  135. package/dist/blocks/Search/meta.js +258 -0
  136. package/dist/blocks/Search/style.module.css +96 -0
  137. package/dist/blocks/Search/useListKeyboardNav.js +45 -0
  138. package/dist/blocks/Search/useRecentSearches.js +77 -0
  139. package/dist/blocks/Search/useSearchIndex.js +144 -0
  140. package/dist/blocks/SegmentedSelector/SegmentedSelector.js +93 -0
  141. package/dist/blocks/SegmentedSelector/e2e.js +32 -0
  142. package/dist/blocks/SegmentedSelector/meta.js +222 -0
  143. package/dist/blocks/Selector/Selector.js +41 -30
  144. package/dist/blocks/Selector/meta.js +380 -0
  145. package/dist/blocks/Sider/Sider.js +19 -18
  146. package/dist/blocks/Sider/{schema.js → meta.js} +20 -34
  147. package/dist/blocks/Slider/Slider.js +8 -20
  148. package/dist/blocks/Slider/meta.js +226 -0
  149. package/dist/blocks/Splitter/Splitter.js +70 -0
  150. package/dist/blocks/Splitter/e2e.js +24 -0
  151. package/dist/blocks/Splitter/meta.js +193 -0
  152. package/dist/blocks/Statistic/Statistic.js +26 -15
  153. package/dist/blocks/Statistic/{schema.js → meta.js} +41 -4
  154. package/dist/blocks/Steps/Steps.js +94 -0
  155. package/dist/blocks/Steps/e2e.js +31 -0
  156. package/dist/blocks/Steps/meta.js +246 -0
  157. package/dist/blocks/Switch/Switch.js +59 -54
  158. package/dist/blocks/Switch/meta.js +178 -0
  159. package/dist/blocks/Tabs/Tabs.js +49 -18
  160. package/dist/blocks/Tabs/meta.js +258 -0
  161. package/dist/blocks/Tag/Tag.js +17 -15
  162. package/dist/blocks/Tag/{schema.js → meta.js} +35 -13
  163. package/dist/blocks/TextArea/TextArea.js +10 -16
  164. package/dist/blocks/TextArea/meta.js +255 -0
  165. package/dist/blocks/TextInput/TextInput.js +23 -18
  166. package/dist/blocks/TextInput/meta.js +286 -0
  167. package/dist/blocks/TimelineList/TimelineList.js +29 -27
  168. package/dist/blocks/TimelineList/{schema.js → meta.js} +45 -8
  169. package/dist/blocks/Title/Title.js +34 -21
  170. package/dist/blocks/Title/{schema.js → meta.js} +117 -14
  171. package/dist/blocks/TitleInput/TitleInput.js +43 -25
  172. package/dist/blocks/TitleInput/{schema.js → meta.js} +156 -18
  173. package/dist/blocks/Tooltip/Tooltip.js +16 -16
  174. package/dist/blocks/Tooltip/{schema.js → meta.js} +74 -19
  175. package/dist/blocks/Tour/Tour.js +75 -0
  176. package/dist/blocks/Tour/e2e.js +31 -0
  177. package/dist/blocks/Tour/meta.js +255 -0
  178. package/dist/blocks/TreeSelector/TreeSelector.js +6 -12
  179. package/dist/blocks/TreeSelector/{schema.js → meta.js} +134 -25
  180. package/dist/blocks/Watermark/Watermark.js +34 -0
  181. package/dist/blocks/Watermark/e2e.js +23 -0
  182. package/dist/blocks/Watermark/meta.js +148 -0
  183. package/dist/blocks/WeekSelector/WeekSelector.js +35 -31
  184. package/dist/blocks/WeekSelector/meta.js +269 -0
  185. package/dist/blocks/buildMenuItems.js +95 -0
  186. package/dist/blocks/headerActions.js +220 -0
  187. package/dist/blocks/useItemShortcuts.js +64 -0
  188. package/dist/blocks/withTheme.js +40 -0
  189. package/dist/blocks.js +17 -1
  190. package/dist/disabledDate.js +15 -7
  191. package/dist/e2e.js +4 -1
  192. package/dist/metas.js +92 -0
  193. package/dist/schemas/breadcrumbList.js +64 -0
  194. package/dist/schemas/disabledDates.js +83 -0
  195. package/dist/{blocks/Avatar/style.less → schemas/icon.js} +10 -3
  196. package/dist/schemas/index.js +21 -0
  197. package/dist/schemas/inputProperties.js +70 -0
  198. package/dist/schemas/label.js +62 -0
  199. package/dist/schemas/menuLinks.js +49 -0
  200. package/dist/schemas/options.js +84 -0
  201. package/dist/types.js +4 -18
  202. package/package.json +19 -17
  203. package/dist/blocks/Affix/schema.json +0 -34
  204. package/dist/blocks/Alert/schema.js +0 -84
  205. package/dist/blocks/Alert/schema.json +0 -62
  206. package/dist/blocks/AutoComplete/schema.js +0 -181
  207. package/dist/blocks/AutoComplete/schema.json +0 -160
  208. package/dist/blocks/Avatar/schema.js +0 -98
  209. package/dist/blocks/Avatar/schema.json +0 -71
  210. package/dist/blocks/Badge/schema.json +0 -70
  211. package/dist/blocks/Badge/style.less +0 -17
  212. package/dist/blocks/Breadcrumb/schema.js +0 -95
  213. package/dist/blocks/Breadcrumb/schema.json +0 -78
  214. package/dist/blocks/Breadcrumb/style.less +0 -17
  215. package/dist/blocks/Button/schema.js +0 -123
  216. package/dist/blocks/Button/schema.json +0 -91
  217. package/dist/blocks/Button/style.less +0 -17
  218. package/dist/blocks/ButtonSelector/schema.js +0 -214
  219. package/dist/blocks/ButtonSelector/schema.json +0 -188
  220. package/dist/blocks/ButtonSelector/style.less +0 -18
  221. package/dist/blocks/Card/schema.js +0 -75
  222. package/dist/blocks/Card/schema.json +0 -58
  223. package/dist/blocks/Card/style.less +0 -17
  224. package/dist/blocks/Carousel/schema.json +0 -183
  225. package/dist/blocks/Carousel/style.less +0 -17
  226. package/dist/blocks/CheckboxSelector/schema.js +0 -220
  227. package/dist/blocks/CheckboxSelector/schema.json +0 -193
  228. package/dist/blocks/CheckboxSelector/style.less +0 -19
  229. package/dist/blocks/CheckboxSwitch/schema.js +0 -122
  230. package/dist/blocks/CheckboxSwitch/schema.json +0 -105
  231. package/dist/blocks/CheckboxSwitch/style.less +0 -19
  232. package/dist/blocks/Collapse/schema.js +0 -110
  233. package/dist/blocks/Collapse/schema.json +0 -90
  234. package/dist/blocks/Collapse/style.less +0 -17
  235. package/dist/blocks/Comment/Comment.js +0 -56
  236. package/dist/blocks/Comment/schema.js +0 -56
  237. package/dist/blocks/Comment/schema.json +0 -39
  238. package/dist/blocks/Comment/style.less +0 -18
  239. package/dist/blocks/ConfirmModal/schema.json +0 -122
  240. package/dist/blocks/ConfirmModal/style.less +0 -17
  241. package/dist/blocks/Content/schema.json +0 -16
  242. package/dist/blocks/Content/style.less +0 -17
  243. package/dist/blocks/ControlledList/schema.json +0 -73
  244. package/dist/blocks/ControlledList/style.less +0 -19
  245. package/dist/blocks/DateRangeSelector/schema.js +0 -266
  246. package/dist/blocks/DateRangeSelector/schema.json +0 -221
  247. package/dist/blocks/DateRangeSelector/style.less +0 -18
  248. package/dist/blocks/DateSelector/schema.js +0 -219
  249. package/dist/blocks/DateSelector/schema.json +0 -183
  250. package/dist/blocks/DateSelector/style.less +0 -18
  251. package/dist/blocks/DateTimeSelector/schema.js +0 -251
  252. package/dist/blocks/DateTimeSelector/schema.json +0 -215
  253. package/dist/blocks/DateTimeSelector/style.less +0 -18
  254. package/dist/blocks/Descriptions/schema.json +0 -186
  255. package/dist/blocks/Descriptions/style.less +0 -17
  256. package/dist/blocks/Divider/schema.js +0 -56
  257. package/dist/blocks/Divider/schema.json +0 -35
  258. package/dist/blocks/Divider/style.less +0 -17
  259. package/dist/blocks/Drawer/schema.json +0 -121
  260. package/dist/blocks/Drawer/style.less +0 -17
  261. package/dist/blocks/Footer/schema.json +0 -16
  262. package/dist/blocks/Footer/style.less +0 -17
  263. package/dist/blocks/Header/schema.json +0 -22
  264. package/dist/blocks/Header/style.less +0 -17
  265. package/dist/blocks/Label/schema.js +0 -83
  266. package/dist/blocks/Label/schema.json +0 -62
  267. package/dist/blocks/Label/style.less +0 -34
  268. package/dist/blocks/Layout/schema.json +0 -16
  269. package/dist/blocks/Layout/style.less +0 -17
  270. package/dist/blocks/Menu/schema.js +0 -283
  271. package/dist/blocks/Menu/schema.json +0 -236
  272. package/dist/blocks/Menu/style.less +0 -17
  273. package/dist/blocks/Message/schema.json +0 -48
  274. package/dist/blocks/Message/style.less +0 -17
  275. package/dist/blocks/MobileMenu/schema.json +0 -236
  276. package/dist/blocks/MobileMenu/style.less +0 -19
  277. package/dist/blocks/Modal/schema.js +0 -142
  278. package/dist/blocks/Modal/schema.json +0 -125
  279. package/dist/blocks/Modal/style.less +0 -17
  280. package/dist/blocks/MonthSelector/schema.js +0 -219
  281. package/dist/blocks/MonthSelector/schema.json +0 -183
  282. package/dist/blocks/MonthSelector/style.less +0 -18
  283. package/dist/blocks/MultipleSelector/schema.json +0 -297
  284. package/dist/blocks/MultipleSelector/style.less +0 -19
  285. package/dist/blocks/Notification/schema.json +0 -85
  286. package/dist/blocks/Notification/style.less +0 -18
  287. package/dist/blocks/NumberInput/schema.js +0 -193
  288. package/dist/blocks/NumberInput/schema.json +0 -172
  289. package/dist/blocks/NumberInput/style.less +0 -18
  290. package/dist/blocks/PageHeaderMenu/schema.js +0 -241
  291. package/dist/blocks/PageHeaderMenu/schema.json +0 -215
  292. package/dist/blocks/PageHeaderMenu/style.less +0 -23
  293. package/dist/blocks/PageSiderMenu/schema.js +0 -321
  294. package/dist/blocks/PageSiderMenu/schema.json +0 -283
  295. package/dist/blocks/PageSiderMenu/style.less +0 -26
  296. package/dist/blocks/Pagination/schema.js +0 -101
  297. package/dist/blocks/Pagination/schema.json +0 -75
  298. package/dist/blocks/Pagination/style.less +0 -17
  299. package/dist/blocks/Paragraph/schema.json +0 -135
  300. package/dist/blocks/Paragraph/style.less +0 -18
  301. package/dist/blocks/ParagraphInput/schema.json +0 -162
  302. package/dist/blocks/ParagraphInput/style.less +0 -17
  303. package/dist/blocks/PasswordInput/schema.js +0 -152
  304. package/dist/blocks/PasswordInput/schema.json +0 -131
  305. package/dist/blocks/PasswordInput/style.less +0 -18
  306. package/dist/blocks/PhoneNumberInput/schema.js +0 -243
  307. package/dist/blocks/PhoneNumberInput/schema.json +0 -216
  308. package/dist/blocks/PhoneNumberInput/style.less +0 -33
  309. package/dist/blocks/Popover/schema.json +0 -86
  310. package/dist/blocks/Popover/style.less +0 -17
  311. package/dist/blocks/Progress/schema.json +0 -76
  312. package/dist/blocks/Progress/style.less +0 -17
  313. package/dist/blocks/RadioSelector/schema.js +0 -217
  314. package/dist/blocks/RadioSelector/schema.json +0 -190
  315. package/dist/blocks/RadioSelector/style.less +0 -19
  316. package/dist/blocks/RatingSlider/schema.js +0 -196
  317. package/dist/blocks/RatingSlider/schema.json +0 -169
  318. package/dist/blocks/RatingSlider/style.less +0 -19
  319. package/dist/blocks/Result/schema.js +0 -55
  320. package/dist/blocks/Result/schema.json +0 -30
  321. package/dist/blocks/Result/style.less +0 -17
  322. package/dist/blocks/Selector/schema.js +0 -287
  323. package/dist/blocks/Selector/schema.json +0 -258
  324. package/dist/blocks/Selector/style.less +0 -18
  325. package/dist/blocks/Sider/schema.json +0 -71
  326. package/dist/blocks/Sider/style.less +0 -17
  327. package/dist/blocks/Slider/style.less +0 -18
  328. package/dist/blocks/Statistic/schema.json +0 -74
  329. package/dist/blocks/Statistic/style.less +0 -17
  330. package/dist/blocks/Switch/schema.js +0 -162
  331. package/dist/blocks/Switch/schema.json +0 -136
  332. package/dist/blocks/Switch/style.less +0 -18
  333. package/dist/blocks/Tabs/schema.js +0 -124
  334. package/dist/blocks/Tabs/schema.json +0 -93
  335. package/dist/blocks/Tabs/style.less +0 -17
  336. package/dist/blocks/Tag/schema.json +0 -45
  337. package/dist/blocks/Tag/style.less +0 -17
  338. package/dist/blocks/TextArea/schema.js +0 -196
  339. package/dist/blocks/TextArea/schema.json +0 -172
  340. package/dist/blocks/TextArea/style.less +0 -18
  341. package/dist/blocks/TextInput/schema.js +0 -223
  342. package/dist/blocks/TextInput/schema.json +0 -189
  343. package/dist/blocks/TextInput/style.less +0 -18
  344. package/dist/blocks/TimelineList/schema.json +0 -65
  345. package/dist/blocks/TimelineList/style.less +0 -17
  346. package/dist/blocks/Title/schema.json +0 -136
  347. package/dist/blocks/Title/style.less +0 -18
  348. package/dist/blocks/TitleInput/schema.json +0 -171
  349. package/dist/blocks/TitleInput/style.less +0 -17
  350. package/dist/blocks/Tooltip/schema.json +0 -91
  351. package/dist/blocks/Tooltip/style.less +0 -17
  352. package/dist/blocks/TreeSelector/schema.json +0 -166
  353. package/dist/blocks/TreeSelector/style.less +0 -27
  354. package/dist/blocks/WeekSelector/schema.js +0 -219
  355. package/dist/blocks/WeekSelector/schema.json +0 -183
  356. package/dist/blocks/WeekSelector/style.less +0 -18
  357. package/dist/color.js +0 -85
  358. package/dist/schemas.js +0 -75
  359. package/dist/style.less +0 -17
@@ -0,0 +1,173 @@
1
+ # Upstream PhoneNumberInput Formatting to Lowdefy
2
+
3
+ ## Background
4
+
5
+ The PRP project has two behavioral improvements to `PhoneNumberInput` that should be upstreamed into Lowdefy. Currently, Lowdefy does raw string concatenation to build the `phone_number` value (`` `${region?.dial_code ?? ''}${input}` ``), which produces malformed phone numbers when users type leading zeros or non-digit characters. It also stores the dial code as `phone_number` when the input is empty.
6
+
7
+ ### Current behavior (Lowdefy) vs desired behavior (PRP)
8
+
9
+ With ZA (+27) dial code selected:
10
+
11
+ | User types | Current `phone_number` | Desired `phone_number` |
12
+ |---|---|---|
13
+ | `0821234567` | `+270821234567` | `+27821234567` |
14
+ | `(082) 123-4567` | `+27(082) 123-4567` | `+27821234567` |
15
+ | (empty) | `+27` | `""` |
16
+
17
+ ## Changes
18
+
19
+ All paths relative to `packages/plugins/blocks/blocks-antd/src/blocks/PhoneNumberInput/`.
20
+
21
+ ### A. Create `formatPhoneNumber.js`
22
+
23
+ New file. Strips non-digit characters and leading zeros from input before concatenating with the dial code. Returns empty string when the cleaned input is empty.
24
+
25
+ ```js
26
+ const formatPhoneNumber = (dialCode = '', input) => {
27
+ // Strip all non-digit characters from input, then strip leading zeros
28
+ const cleanInput = (input || '').replace(/\D/g, '').replace(/^0+/, '');
29
+
30
+ // If the cleaned input is empty, return an empty string
31
+ if (cleanInput.length === 0) {
32
+ return '';
33
+ }
34
+ // Concatenate the cleaned dial code and input
35
+ return `${dialCode}${cleanInput}`;
36
+ };
37
+
38
+ export default formatPhoneNumber;
39
+ ```
40
+
41
+ ### B. Update `PhoneNumberInput.js`
42
+
43
+ 1. Add import at the top with the other imports:
44
+
45
+ ```js
46
+ import formatPhoneNumber from './formatPhoneNumber.js';
47
+ ```
48
+
49
+ 2. Replace the two raw concatenation lines with `formatPhoneNumber` calls:
50
+
51
+ **In `AddOnSelect` onChange handler (line 78):**
52
+
53
+ ```diff
54
+ - const phone_number = `${region?.dial_code ?? ''}${input}`;
55
+ + const phone_number = formatPhoneNumber(region?.dial_code, input);
56
+ ```
57
+
58
+ **In main `Input` onChange handler (line 224):**
59
+
60
+ ```diff
61
+ - const phone_number = `${region?.dial_code ?? ''}${input}`;
62
+ + const phone_number = formatPhoneNumber(region?.dial_code, input);
63
+ ```
64
+
65
+ 3. Fix null initialization (line 163–169) — remove `phone_number` so the initial value doesn't store just a dial code as a phone number:
66
+
67
+ ```diff
68
+ if (value === null) {
69
+ methods.setValue({
70
+ input: '',
71
+ region: allowedRegions[defaultValue],
72
+ - phone_number: allowedRegions[defaultValue].dial_code,
73
+ });
74
+ }
75
+ ```
76
+
77
+ ### C. Update e2e tests
78
+
79
+ **In `tests/PhoneNumberInput.e2e.yaml`**, add test blocks:
80
+
81
+ ```yaml
82
+ - id: phone_format_test
83
+ type: PhoneNumberInput
84
+ properties:
85
+ title: Format Test
86
+ defaultRegion: ZA
87
+ allowedRegions:
88
+ - ZA
89
+
90
+ - id: format_display
91
+ type: Span
92
+ properties:
93
+ content:
94
+ _if:
95
+ test:
96
+ _ne:
97
+ - _state: phone_format_test.phone_number
98
+ - null
99
+ then:
100
+ _string.concat:
101
+ - 'Formatted: '
102
+ - _state: phone_format_test.phone_number
103
+ else: ''
104
+
105
+ - id: phone_empty_test
106
+ type: PhoneNumberInput
107
+ properties:
108
+ title: Empty Init Test
109
+ defaultRegion: ZA
110
+ allowedRegions:
111
+ - ZA
112
+
113
+ - id: empty_display
114
+ type: Span
115
+ properties:
116
+ content:
117
+ _if:
118
+ test:
119
+ _ne:
120
+ - _state: phone_empty_test
121
+ - null
122
+ then:
123
+ _string.concat:
124
+ - 'PhoneNumber: ['
125
+ - _state: phone_empty_test.phone_number
126
+ - ']'
127
+ else: 'null'
128
+ ```
129
+
130
+ **In `tests/PhoneNumberInput.e2e.spec.js`**, add tests:
131
+
132
+ ```js
133
+ test('strips leading zeros from phone number value', async ({ page }) => {
134
+ const input = getInput(page, 'phone_format_test');
135
+ await input.fill('0821234567');
136
+ await expect(input).toHaveValue('0821234567');
137
+
138
+ const display = getBlock(page, 'format_display');
139
+ await expect(display).toHaveText('Formatted: +27821234567');
140
+ });
141
+
142
+ test('strips non-digit characters from phone number value', async ({ page }) => {
143
+ const input = getInput(page, 'phone_format_test');
144
+ await input.fill('(082) 123-4567');
145
+ await expect(input).toHaveValue('(082) 123-4567');
146
+
147
+ const display = getBlock(page, 'format_display');
148
+ await expect(display).toHaveText('Formatted: +27821234567');
149
+ });
150
+
151
+ test('empty input produces empty phone_number, not just dial code', async ({ page }) => {
152
+ const display = getBlock(page, 'empty_display');
153
+ // On init with no input, phone_number should not be set to "+27"
154
+ await expect(display).not.toContainText('+27');
155
+ });
156
+ ```
157
+
158
+ ## Files to modify
159
+
160
+ 1. **New:** `formatPhoneNumber.js`
161
+ 2. **Edit:** `PhoneNumberInput.js` — import + 2 line replacements + null init fix
162
+ 3. **Edit:** `tests/PhoneNumberInput.e2e.yaml` — add formatting test blocks
163
+ 4. **Edit:** `tests/PhoneNumberInput.e2e.spec.js` — add formatting tests
164
+
165
+ ## Acceptance criteria
166
+
167
+ - Typing `0821234567` with +27 dial code produces `phone_number: "+27821234567"` (not `"+270821234567"`)
168
+ - Typing `(082) 123-4567` produces `phone_number: "+27821234567"`
169
+ - Empty input produces `phone_number: ""` (not `"+27"`)
170
+ - Initial null value does not set `phone_number` to the dial code
171
+ - The `input` field in the value object still stores exactly what the user typed (formatting only affects `phone_number`)
172
+ - All existing e2e tests pass
173
+ - New formatting tests pass
@@ -13,28 +13,23 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import React, { useState } from 'react';
16
- import { blockDefaultProps } from '@lowdefy/block-utils';
17
16
  import { Popover } from 'antd';
18
- const PopoverBlock = ({ blockId, content, methods, properties })=>{
17
+ import { withBlockDefaults } from '@lowdefy/block-utils';
18
+ import withTheme from '../withTheme.js';
19
+ const PopoverBlock = ({ blockId, classNames = {}, content, methods, properties, styles = {} })=>{
19
20
  const [elementId] = useState((0 | Math.random() * 9e2) + 1e2);
20
21
  return /*#__PURE__*/ React.createElement(Popover, {
21
22
  id: blockId,
22
23
  ...properties,
24
+ className: classNames.element,
23
25
  content: content.popover && content.popover(),
24
26
  onOpenChange: ()=>methods.triggerEvent({
25
27
  name: 'onOpenChange'
26
28
  }),
27
- getPopupContainer: ()=>document.getElementById(`${blockId}_${elementId}_popup`)
29
+ getPopupContainer: ()=>document.getElementById(`${blockId}_${elementId}_popup`),
30
+ style: styles.element
28
31
  }, content.content && content.content(), /*#__PURE__*/ React.createElement("div", {
29
32
  id: `${blockId}_${elementId}_popup`
30
33
  }));
31
34
  };
32
- PopoverBlock.defaultProps = blockDefaultProps;
33
- PopoverBlock.meta = {
34
- category: 'container',
35
- icons: [],
36
- styles: [
37
- 'blocks/Popover/style.less'
38
- ]
39
- };
40
- export default PopoverBlock;
35
+ export default withTheme('Popover', withBlockDefaults(PopoverBlock));
@@ -13,7 +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
- type: 'object',
16
+ category: 'container',
17
+ icons: [],
18
+ valueType: null,
19
+ slots: {
20
+ content: 'Blocks that trigger the Popover.',
21
+ popover: 'Blocks inside the popup.'
22
+ },
23
+ cssKeys: {
24
+ element: 'The Popover element.',
25
+ inner: 'The Popover inner.',
26
+ title: 'The Popover title.',
27
+ content: 'The Popover content.'
28
+ },
29
+ events: {
30
+ onOpenChange: 'Trigger actions when visibility of the tooltip card is changed.'
31
+ },
17
32
  properties: {
18
33
  type: 'object',
19
34
  additionalProperties: false,
@@ -88,16 +103,71 @@
88
103
  type: 'number',
89
104
  description: 'Delay in milliseconds, before tooltip is hidden on mouse leave.',
90
105
  default: 0.1
91
- }
92
- }
93
- },
94
- events: {
95
- type: 'object',
96
- additionalProperties: false,
97
- properties: {
98
- onOpenChange: {
99
- type: 'array',
100
- description: 'Trigger actions when visibility of the tooltip card is changed.'
106
+ },
107
+ theme: {
108
+ type: 'object',
109
+ description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
110
+ docs: {
111
+ displayType: 'yaml',
112
+ link: 'https://ant.design/components/popover#design-token'
113
+ },
114
+ properties: {
115
+ titleMinWidth: {
116
+ type: [
117
+ 'number',
118
+ 'string'
119
+ ],
120
+ default: 177,
121
+ description: 'Minimum width of the popover when it has a title.'
122
+ },
123
+ zIndexPopup: {
124
+ type: 'number',
125
+ default: 1030,
126
+ description: 'Z-index of the popover.'
127
+ },
128
+ innerPadding: {
129
+ type: [
130
+ 'number',
131
+ 'string'
132
+ ],
133
+ default: 12,
134
+ description: 'Padding inside the popover content area.'
135
+ },
136
+ titlePadding: {
137
+ type: [
138
+ 'number',
139
+ 'string'
140
+ ],
141
+ description: 'Padding of the title area.'
142
+ },
143
+ titleMarginBottom: {
144
+ type: 'number',
145
+ default: 8,
146
+ description: 'Margin bottom of the title.'
147
+ },
148
+ titleBorderBottom: {
149
+ type: 'string',
150
+ default: 'none',
151
+ description: 'Border bottom of the title area.'
152
+ },
153
+ innerContentPadding: {
154
+ type: [
155
+ 'number',
156
+ 'string'
157
+ ],
158
+ default: 0,
159
+ description: 'Padding of the inner content area.'
160
+ },
161
+ colorBgElevated: {
162
+ type: 'string',
163
+ description: 'Background color of the popover.'
164
+ },
165
+ borderRadiusLG: {
166
+ type: 'number',
167
+ default: 8,
168
+ description: 'Border radius of the popover container.'
169
+ }
170
+ }
101
171
  }
102
172
  }
103
173
  }
@@ -14,12 +14,15 @@
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
16
  import { Progress } from 'antd';
17
- import { blockDefaultProps } from '@lowdefy/block-utils';
18
- const ProgressBlock = ({ blockId, properties })=>/*#__PURE__*/ React.createElement(Progress, {
17
+ import { withBlockDefaults } from '@lowdefy/block-utils';
18
+ import withTheme from '../withTheme.js';
19
+ const ProgressBlock = ({ blockId, classNames = {}, properties, styles = {} })=>/*#__PURE__*/ React.createElement(Progress, {
20
+ className: classNames.element,
19
21
  gapDegree: properties.gapDegree,
20
- gapPosition: properties.gapPosition,
22
+ gapPlacement: properties.gapPlacement,
21
23
  id: blockId,
22
24
  percent: properties.percent,
25
+ style: styles.element,
23
26
  showInfo: properties.showInfo,
24
27
  status: properties.status,
25
28
  steps: properties.steps,
@@ -31,12 +34,4 @@ const ProgressBlock = ({ blockId, properties })=>/*#__PURE__*/ React.createEleme
31
34
  type: properties.type,
32
35
  width: properties.width
33
36
  });
34
- ProgressBlock.defaultProps = blockDefaultProps;
35
- ProgressBlock.meta = {
36
- category: 'display',
37
- icons: [],
38
- styles: [
39
- 'blocks/Progress/style.less'
40
- ]
41
- };
42
- export default ProgressBlock;
37
+ export default withTheme('Progress', withBlockDefaults(ProgressBlock));
@@ -13,7 +13,12 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The Progress element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
@@ -69,9 +74,22 @@
69
74
  }
70
75
  },
71
76
  success: {
72
- type: 'number',
73
- default: 0,
74
- description: 'Segmented success percent.'
77
+ type: 'object',
78
+ description: 'Segmented success percent configuration.',
79
+ properties: {
80
+ percent: {
81
+ type: 'number',
82
+ default: 0,
83
+ description: 'Segmented success percent.'
84
+ },
85
+ strokeColor: {
86
+ type: 'string',
87
+ description: 'Color of the success segment.',
88
+ docs: {
89
+ displayType: 'color'
90
+ }
91
+ }
92
+ }
75
93
  },
76
94
  trailColor: {
77
95
  type: 'string',
@@ -104,6 +122,58 @@
104
122
  ],
105
123
  default: 'top',
106
124
  description: 'The gap position.'
125
+ },
126
+ steps: {
127
+ type: 'number',
128
+ description: 'Number of steps for a segmented progress bar (line type only).'
129
+ },
130
+ theme: {
131
+ type: 'object',
132
+ description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
133
+ docs: {
134
+ displayType: 'yaml',
135
+ link: 'https://ant.design/components/progress#design-token'
136
+ },
137
+ properties: {
138
+ defaultColor: {
139
+ type: 'string',
140
+ default: '#1677ff',
141
+ description: 'Default color of the progress bar.'
142
+ },
143
+ remainingColor: {
144
+ type: 'string',
145
+ default: 'rgba(0,0,0,0.06)',
146
+ description: 'Color of the unfilled portion of the progress bar.'
147
+ },
148
+ circleTextColor: {
149
+ type: 'string',
150
+ default: 'rgba(0,0,0,0.88)',
151
+ description: 'Text color inside the circular progress.'
152
+ },
153
+ circleTextFontSize: {
154
+ type: 'string',
155
+ default: '1em',
156
+ description: 'Font size of text inside the circular progress.'
157
+ },
158
+ circleIconFontSize: {
159
+ type: 'string',
160
+ default: '1.167em',
161
+ description: 'Font size of icons inside the circular progress.'
162
+ },
163
+ lineBorderRadius: {
164
+ type: 'number',
165
+ default: 100,
166
+ description: 'Border radius of the linear progress bar.'
167
+ },
168
+ colorSuccess: {
169
+ type: 'string',
170
+ description: 'Color used for success status.'
171
+ },
172
+ colorError: {
173
+ type: 'string',
174
+ description: 'Color used for exception status.'
175
+ }
176
+ }
107
177
  }
108
178
  }
109
179
  }
@@ -0,0 +1,39 @@
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 { QRCode } from 'antd';
17
+ import { withBlockDefaults } from '@lowdefy/block-utils';
18
+ import withTheme from '../withTheme.js';
19
+ const QRCodeBlock = ({ blockId, classNames = {}, methods, properties, styles = {} })=>/*#__PURE__*/ React.createElement(QRCode, {
20
+ id: blockId,
21
+ className: classNames.element,
22
+ style: styles.element,
23
+ value: properties.value ?? '',
24
+ size: properties.size,
25
+ color: properties.color,
26
+ bgColor: properties.bgColor,
27
+ errorLevel: properties.errorLevel,
28
+ icon: properties.icon,
29
+ iconSize: properties.iconSize,
30
+ marginSize: properties.marginSize,
31
+ minVersion: properties.minVersion,
32
+ type: properties.type,
33
+ bordered: properties.bordered,
34
+ status: properties.status,
35
+ onRefresh: ()=>methods.triggerEvent({
36
+ name: 'onRefresh'
37
+ })
38
+ });
39
+ export default withTheme('QRCode', withBlockDefaults(QRCodeBlock));
@@ -12,19 +12,13 @@
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
- */ export default {
16
- type: 'object',
17
- properties: {
18
- type: 'object',
19
- additionalProperties: false,
20
- properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to applied to footer.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- }
28
- }
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
+ status: (page, blockId, status)=>expect(locator(page, blockId)).toHaveAttribute('data-status', status),
22
+ hasCanvas: (page, blockId)=>expect(locator(page, blockId).locator('canvas')).toBeVisible()
29
23
  }
30
- };
24
+ });
@@ -0,0 +1,152 @@
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: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The QRCode element.'
21
+ },
22
+ events: {
23
+ onRefresh: 'Trigger action when expired QR code refresh button is clicked.'
24
+ },
25
+ properties: {
26
+ type: 'object',
27
+ additionalProperties: false,
28
+ properties: {
29
+ value: {
30
+ type: 'string',
31
+ description: 'Scanned text.'
32
+ },
33
+ size: {
34
+ type: 'integer',
35
+ default: 160,
36
+ description: 'QRCode size in pixels.'
37
+ },
38
+ color: {
39
+ type: 'string',
40
+ default: '#000000',
41
+ description: 'QRCode color.'
42
+ },
43
+ bgColor: {
44
+ type: 'string',
45
+ default: 'transparent',
46
+ description: 'QRCode background color.'
47
+ },
48
+ errorLevel: {
49
+ type: 'string',
50
+ enum: [
51
+ 'L',
52
+ 'M',
53
+ 'Q',
54
+ 'H'
55
+ ],
56
+ default: 'M',
57
+ description: 'Error correction level.'
58
+ },
59
+ icon: {
60
+ type: 'string',
61
+ description: 'Icon URL in the center of the QR code.'
62
+ },
63
+ iconSize: {
64
+ type: 'integer',
65
+ default: 40,
66
+ description: 'Icon size in pixels.'
67
+ },
68
+ marginSize: {
69
+ type: 'number',
70
+ default: 0,
71
+ description: 'Margin size of the QR code in modules.'
72
+ },
73
+ minVersion: {
74
+ type: 'integer',
75
+ minimum: 1,
76
+ maximum: 40,
77
+ default: 1,
78
+ description: 'Minimum QR code version (1-40). Higher versions support more data.'
79
+ },
80
+ type: {
81
+ type: 'string',
82
+ enum: [
83
+ 'canvas',
84
+ 'svg'
85
+ ],
86
+ default: 'canvas',
87
+ description: 'Render type.'
88
+ },
89
+ bordered: {
90
+ type: 'boolean',
91
+ default: true,
92
+ description: 'Whether has border style.'
93
+ },
94
+ status: {
95
+ type: 'string',
96
+ enum: [
97
+ 'active',
98
+ 'expired',
99
+ 'loading',
100
+ 'scanned'
101
+ ],
102
+ default: 'active',
103
+ description: 'QRCode status.'
104
+ },
105
+ theme: {
106
+ type: 'object',
107
+ description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
108
+ docs: {
109
+ displayType: 'yaml',
110
+ link: 'https://ant.design/components/qr-code#design-token'
111
+ },
112
+ properties: {
113
+ QRCodeTextColor: {
114
+ type: 'string',
115
+ description: 'Text color displayed on the QR code overlay.'
116
+ },
117
+ QRCodeCoverBackgroundColor: {
118
+ type: 'string',
119
+ description: 'Background color of the cover overlay shown when expired, loading, or scanned.'
120
+ },
121
+ borderRadiusLG: {
122
+ type: 'number',
123
+ default: 8,
124
+ description: 'Border radius of the QR code container.'
125
+ },
126
+ colorText: {
127
+ type: 'string',
128
+ description: 'Text color.'
129
+ },
130
+ colorBgContainer: {
131
+ type: 'string',
132
+ description: 'Background color of the QR code container.'
133
+ },
134
+ colorSplit: {
135
+ type: 'string',
136
+ description: 'Border color when bordered is true.'
137
+ },
138
+ lineWidth: {
139
+ type: 'number',
140
+ default: 1,
141
+ description: 'Border width.'
142
+ },
143
+ padding: {
144
+ type: 'number',
145
+ default: 12,
146
+ description: 'Padding inside the QR code container.'
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ };