@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.
Files changed (356) 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 +15 -22
  7. package/dist/blocks/AutoComplete/meta.js +265 -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 +111 -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 +21 -16
  54. package/dist/blocks/Drawer/{schema.js → meta.js} +61 -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 +148 -122
  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 +13 -21
  88. package/dist/blocks/MobileMenu/{schema.js → meta.js} +17 -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 +49 -36
  94. package/dist/blocks/MultipleSelector/{schema.js → meta.js} +177 -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/PageSiderMenu/PageSiderMenu.js +151 -192
  102. package/dist/blocks/PageSiderMenu/meta.js +476 -0
  103. package/dist/blocks/Pagination/Pagination.js +6 -15
  104. package/dist/blocks/Pagination/meta.js +233 -0
  105. package/dist/blocks/Paragraph/Paragraph.js +28 -16
  106. package/dist/blocks/Paragraph/{schema.js → meta.js} +68 -18
  107. package/dist/blocks/ParagraphInput/ParagraphInput.js +34 -17
  108. package/dist/blocks/ParagraphInput/{schema.js → meta.js} +134 -18
  109. package/dist/blocks/PasswordInput/PasswordInput.js +9 -16
  110. package/dist/blocks/PasswordInput/meta.js +195 -0
  111. package/dist/blocks/PhoneNumberInput/PhoneNumberInput.js +37 -33
  112. package/dist/blocks/PhoneNumberInput/formatPhoneNumber.js +25 -0
  113. package/dist/blocks/PhoneNumberInput/meta.js +225 -0
  114. package/dist/blocks/PhoneNumberInput/upstream-formatting-spec.md +173 -0
  115. package/dist/blocks/Popover/Popover.js +7 -12
  116. package/dist/blocks/Popover/{schema.js → meta.js} +81 -11
  117. package/dist/blocks/Progress/Progress.js +7 -12
  118. package/dist/blocks/Progress/{schema.js → meta.js} +74 -4
  119. package/dist/blocks/QRCode/QRCode.js +39 -0
  120. package/dist/blocks/{Footer/schema.js → QRCode/e2e.js} +9 -15
  121. package/dist/blocks/QRCode/meta.js +152 -0
  122. package/dist/blocks/RadioSelector/RadioSelector.js +55 -63
  123. package/dist/blocks/RadioSelector/meta.js +179 -0
  124. package/dist/blocks/RatingSlider/RatingSlider.js +95 -103
  125. package/dist/blocks/RatingSlider/meta.js +221 -0
  126. package/dist/blocks/Result/Result.js +13 -12
  127. package/dist/blocks/Result/meta.js +129 -0
  128. package/dist/blocks/Search/Search.js +135 -0
  129. package/dist/blocks/Search/SearchHighlight.js +33 -0
  130. package/dist/blocks/Search/SearchModal.js +171 -0
  131. package/dist/blocks/Search/SearchResults.js +129 -0
  132. package/dist/blocks/Search/meta.js +258 -0
  133. package/dist/blocks/Search/style.module.css +96 -0
  134. package/dist/blocks/Search/useListKeyboardNav.js +45 -0
  135. package/dist/blocks/Search/useRecentSearches.js +77 -0
  136. package/dist/blocks/Search/useSearchIndex.js +144 -0
  137. package/dist/blocks/SegmentedSelector/SegmentedSelector.js +93 -0
  138. package/dist/blocks/SegmentedSelector/e2e.js +32 -0
  139. package/dist/blocks/SegmentedSelector/meta.js +222 -0
  140. package/dist/blocks/Selector/Selector.js +35 -30
  141. package/dist/blocks/Selector/meta.js +379 -0
  142. package/dist/blocks/Sider/Sider.js +9 -18
  143. package/dist/blocks/Sider/{schema.js → meta.js} +20 -34
  144. package/dist/blocks/Slider/Slider.js +8 -20
  145. package/dist/blocks/Slider/meta.js +226 -0
  146. package/dist/blocks/Splitter/Splitter.js +70 -0
  147. package/dist/blocks/Splitter/e2e.js +24 -0
  148. package/dist/blocks/Splitter/meta.js +193 -0
  149. package/dist/blocks/Statistic/Statistic.js +26 -15
  150. package/dist/blocks/Statistic/{schema.js → meta.js} +41 -4
  151. package/dist/blocks/Steps/Steps.js +94 -0
  152. package/dist/blocks/Steps/e2e.js +31 -0
  153. package/dist/blocks/Steps/meta.js +246 -0
  154. package/dist/blocks/Switch/Switch.js +59 -54
  155. package/dist/blocks/Switch/meta.js +178 -0
  156. package/dist/blocks/Tabs/Tabs.js +49 -18
  157. package/dist/blocks/Tabs/meta.js +258 -0
  158. package/dist/blocks/Tag/Tag.js +17 -15
  159. package/dist/blocks/Tag/{schema.js → meta.js} +35 -13
  160. package/dist/blocks/TextArea/TextArea.js +10 -16
  161. package/dist/blocks/TextArea/meta.js +255 -0
  162. package/dist/blocks/TextInput/TextInput.js +23 -18
  163. package/dist/blocks/TextInput/meta.js +286 -0
  164. package/dist/blocks/TimelineList/TimelineList.js +29 -27
  165. package/dist/blocks/TimelineList/{schema.js → meta.js} +45 -8
  166. package/dist/blocks/Title/Title.js +34 -21
  167. package/dist/blocks/Title/{schema.js → meta.js} +117 -14
  168. package/dist/blocks/TitleInput/TitleInput.js +43 -25
  169. package/dist/blocks/TitleInput/{schema.js → meta.js} +156 -18
  170. package/dist/blocks/Tooltip/Tooltip.js +16 -16
  171. package/dist/blocks/Tooltip/{schema.js → meta.js} +74 -19
  172. package/dist/blocks/Tour/Tour.js +75 -0
  173. package/dist/blocks/Tour/e2e.js +31 -0
  174. package/dist/blocks/Tour/meta.js +255 -0
  175. package/dist/blocks/TreeSelector/TreeSelector.js +6 -12
  176. package/dist/blocks/TreeSelector/{schema.js → meta.js} +134 -25
  177. package/dist/blocks/Watermark/Watermark.js +34 -0
  178. package/dist/blocks/Watermark/e2e.js +23 -0
  179. package/dist/blocks/Watermark/meta.js +148 -0
  180. package/dist/blocks/WeekSelector/WeekSelector.js +35 -31
  181. package/dist/blocks/WeekSelector/meta.js +269 -0
  182. package/dist/blocks/buildMenuItems.js +95 -0
  183. package/dist/blocks/headerActions.js +220 -0
  184. package/dist/blocks/useItemShortcuts.js +64 -0
  185. package/dist/blocks/withTheme.js +40 -0
  186. package/dist/blocks.js +16 -1
  187. package/dist/disabledDate.js +15 -7
  188. package/dist/e2e.js +4 -1
  189. package/dist/metas.js +91 -0
  190. package/dist/schemas/breadcrumbList.js +64 -0
  191. package/dist/schemas/disabledDates.js +83 -0
  192. package/dist/{blocks/Avatar/style.less → schemas/icon.js} +10 -3
  193. package/dist/schemas/index.js +21 -0
  194. package/dist/schemas/inputProperties.js +70 -0
  195. package/dist/schemas/label.js +62 -0
  196. package/dist/schemas/menuLinks.js +49 -0
  197. package/dist/schemas/options.js +84 -0
  198. package/dist/types.js +4 -18
  199. package/package.json +19 -17
  200. package/dist/blocks/Affix/schema.json +0 -34
  201. package/dist/blocks/Alert/schema.js +0 -84
  202. package/dist/blocks/Alert/schema.json +0 -62
  203. package/dist/blocks/AutoComplete/schema.js +0 -181
  204. package/dist/blocks/AutoComplete/schema.json +0 -160
  205. package/dist/blocks/Avatar/schema.js +0 -98
  206. package/dist/blocks/Avatar/schema.json +0 -71
  207. package/dist/blocks/Badge/schema.json +0 -70
  208. package/dist/blocks/Badge/style.less +0 -17
  209. package/dist/blocks/Breadcrumb/schema.js +0 -95
  210. package/dist/blocks/Breadcrumb/schema.json +0 -78
  211. package/dist/blocks/Breadcrumb/style.less +0 -17
  212. package/dist/blocks/Button/schema.js +0 -123
  213. package/dist/blocks/Button/schema.json +0 -91
  214. package/dist/blocks/Button/style.less +0 -17
  215. package/dist/blocks/ButtonSelector/schema.js +0 -214
  216. package/dist/blocks/ButtonSelector/schema.json +0 -188
  217. package/dist/blocks/ButtonSelector/style.less +0 -18
  218. package/dist/blocks/Card/schema.js +0 -75
  219. package/dist/blocks/Card/schema.json +0 -58
  220. package/dist/blocks/Card/style.less +0 -17
  221. package/dist/blocks/Carousel/schema.json +0 -183
  222. package/dist/blocks/Carousel/style.less +0 -17
  223. package/dist/blocks/CheckboxSelector/schema.js +0 -220
  224. package/dist/blocks/CheckboxSelector/schema.json +0 -193
  225. package/dist/blocks/CheckboxSelector/style.less +0 -19
  226. package/dist/blocks/CheckboxSwitch/schema.js +0 -122
  227. package/dist/blocks/CheckboxSwitch/schema.json +0 -105
  228. package/dist/blocks/CheckboxSwitch/style.less +0 -19
  229. package/dist/blocks/Collapse/schema.js +0 -110
  230. package/dist/blocks/Collapse/schema.json +0 -90
  231. package/dist/blocks/Collapse/style.less +0 -17
  232. package/dist/blocks/Comment/Comment.js +0 -56
  233. package/dist/blocks/Comment/schema.js +0 -56
  234. package/dist/blocks/Comment/schema.json +0 -39
  235. package/dist/blocks/Comment/style.less +0 -18
  236. package/dist/blocks/ConfirmModal/schema.json +0 -122
  237. package/dist/blocks/ConfirmModal/style.less +0 -17
  238. package/dist/blocks/Content/schema.json +0 -16
  239. package/dist/blocks/Content/style.less +0 -17
  240. package/dist/blocks/ControlledList/schema.json +0 -73
  241. package/dist/blocks/ControlledList/style.less +0 -19
  242. package/dist/blocks/DateRangeSelector/schema.js +0 -266
  243. package/dist/blocks/DateRangeSelector/schema.json +0 -221
  244. package/dist/blocks/DateRangeSelector/style.less +0 -18
  245. package/dist/blocks/DateSelector/schema.js +0 -219
  246. package/dist/blocks/DateSelector/schema.json +0 -183
  247. package/dist/blocks/DateSelector/style.less +0 -18
  248. package/dist/blocks/DateTimeSelector/schema.js +0 -251
  249. package/dist/blocks/DateTimeSelector/schema.json +0 -215
  250. package/dist/blocks/DateTimeSelector/style.less +0 -18
  251. package/dist/blocks/Descriptions/schema.json +0 -186
  252. package/dist/blocks/Descriptions/style.less +0 -17
  253. package/dist/blocks/Divider/schema.js +0 -56
  254. package/dist/blocks/Divider/schema.json +0 -35
  255. package/dist/blocks/Divider/style.less +0 -17
  256. package/dist/blocks/Drawer/schema.json +0 -121
  257. package/dist/blocks/Drawer/style.less +0 -17
  258. package/dist/blocks/Footer/schema.json +0 -16
  259. package/dist/blocks/Footer/style.less +0 -17
  260. package/dist/blocks/Header/schema.json +0 -22
  261. package/dist/blocks/Header/style.less +0 -17
  262. package/dist/blocks/Label/schema.js +0 -83
  263. package/dist/blocks/Label/schema.json +0 -62
  264. package/dist/blocks/Label/style.less +0 -34
  265. package/dist/blocks/Layout/schema.json +0 -16
  266. package/dist/blocks/Layout/style.less +0 -17
  267. package/dist/blocks/Menu/schema.js +0 -283
  268. package/dist/blocks/Menu/schema.json +0 -236
  269. package/dist/blocks/Menu/style.less +0 -17
  270. package/dist/blocks/Message/schema.json +0 -48
  271. package/dist/blocks/Message/style.less +0 -17
  272. package/dist/blocks/MobileMenu/schema.json +0 -236
  273. package/dist/blocks/MobileMenu/style.less +0 -19
  274. package/dist/blocks/Modal/schema.js +0 -142
  275. package/dist/blocks/Modal/schema.json +0 -125
  276. package/dist/blocks/Modal/style.less +0 -17
  277. package/dist/blocks/MonthSelector/schema.js +0 -219
  278. package/dist/blocks/MonthSelector/schema.json +0 -183
  279. package/dist/blocks/MonthSelector/style.less +0 -18
  280. package/dist/blocks/MultipleSelector/schema.json +0 -297
  281. package/dist/blocks/MultipleSelector/style.less +0 -19
  282. package/dist/blocks/Notification/schema.json +0 -85
  283. package/dist/blocks/Notification/style.less +0 -18
  284. package/dist/blocks/NumberInput/schema.js +0 -193
  285. package/dist/blocks/NumberInput/schema.json +0 -172
  286. package/dist/blocks/NumberInput/style.less +0 -18
  287. package/dist/blocks/PageHeaderMenu/schema.js +0 -241
  288. package/dist/blocks/PageHeaderMenu/schema.json +0 -215
  289. package/dist/blocks/PageHeaderMenu/style.less +0 -23
  290. package/dist/blocks/PageSiderMenu/schema.js +0 -321
  291. package/dist/blocks/PageSiderMenu/schema.json +0 -283
  292. package/dist/blocks/PageSiderMenu/style.less +0 -26
  293. package/dist/blocks/Pagination/schema.js +0 -101
  294. package/dist/blocks/Pagination/schema.json +0 -75
  295. package/dist/blocks/Pagination/style.less +0 -17
  296. package/dist/blocks/Paragraph/schema.json +0 -135
  297. package/dist/blocks/Paragraph/style.less +0 -18
  298. package/dist/blocks/ParagraphInput/schema.json +0 -162
  299. package/dist/blocks/ParagraphInput/style.less +0 -17
  300. package/dist/blocks/PasswordInput/schema.js +0 -152
  301. package/dist/blocks/PasswordInput/schema.json +0 -131
  302. package/dist/blocks/PasswordInput/style.less +0 -18
  303. package/dist/blocks/PhoneNumberInput/schema.js +0 -243
  304. package/dist/blocks/PhoneNumberInput/schema.json +0 -216
  305. package/dist/blocks/PhoneNumberInput/style.less +0 -33
  306. package/dist/blocks/Popover/schema.json +0 -86
  307. package/dist/blocks/Popover/style.less +0 -17
  308. package/dist/blocks/Progress/schema.json +0 -76
  309. package/dist/blocks/Progress/style.less +0 -17
  310. package/dist/blocks/RadioSelector/schema.js +0 -217
  311. package/dist/blocks/RadioSelector/schema.json +0 -190
  312. package/dist/blocks/RadioSelector/style.less +0 -19
  313. package/dist/blocks/RatingSlider/schema.js +0 -196
  314. package/dist/blocks/RatingSlider/schema.json +0 -169
  315. package/dist/blocks/RatingSlider/style.less +0 -19
  316. package/dist/blocks/Result/schema.js +0 -55
  317. package/dist/blocks/Result/schema.json +0 -30
  318. package/dist/blocks/Result/style.less +0 -17
  319. package/dist/blocks/Selector/schema.js +0 -287
  320. package/dist/blocks/Selector/schema.json +0 -258
  321. package/dist/blocks/Selector/style.less +0 -18
  322. package/dist/blocks/Sider/schema.json +0 -71
  323. package/dist/blocks/Sider/style.less +0 -17
  324. package/dist/blocks/Slider/style.less +0 -18
  325. package/dist/blocks/Statistic/schema.json +0 -74
  326. package/dist/blocks/Statistic/style.less +0 -17
  327. package/dist/blocks/Switch/schema.js +0 -162
  328. package/dist/blocks/Switch/schema.json +0 -136
  329. package/dist/blocks/Switch/style.less +0 -18
  330. package/dist/blocks/Tabs/schema.js +0 -124
  331. package/dist/blocks/Tabs/schema.json +0 -93
  332. package/dist/blocks/Tabs/style.less +0 -17
  333. package/dist/blocks/Tag/schema.json +0 -45
  334. package/dist/blocks/Tag/style.less +0 -17
  335. package/dist/blocks/TextArea/schema.js +0 -196
  336. package/dist/blocks/TextArea/schema.json +0 -172
  337. package/dist/blocks/TextArea/style.less +0 -18
  338. package/dist/blocks/TextInput/schema.js +0 -223
  339. package/dist/blocks/TextInput/schema.json +0 -189
  340. package/dist/blocks/TextInput/style.less +0 -18
  341. package/dist/blocks/TimelineList/schema.json +0 -65
  342. package/dist/blocks/TimelineList/style.less +0 -17
  343. package/dist/blocks/Title/schema.json +0 -136
  344. package/dist/blocks/Title/style.less +0 -18
  345. package/dist/blocks/TitleInput/schema.json +0 -171
  346. package/dist/blocks/TitleInput/style.less +0 -17
  347. package/dist/blocks/Tooltip/schema.json +0 -91
  348. package/dist/blocks/Tooltip/style.less +0 -17
  349. package/dist/blocks/TreeSelector/schema.json +0 -166
  350. package/dist/blocks/TreeSelector/style.less +0 -27
  351. package/dist/blocks/WeekSelector/schema.js +0 -219
  352. package/dist/blocks/WeekSelector/schema.json +0 -183
  353. package/dist/blocks/WeekSelector/style.less +0 -18
  354. package/dist/color.js +0 -85
  355. package/dist/schemas.js +0 -75
  356. 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
+ };