@lowdefy/blocks-antd 5.5.1 → 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 (288) 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/CheckboxSelector.js +54 -29
  36. package/dist/blocks/CheckboxSelector/gallery.yaml +781 -0
  37. package/dist/blocks/CheckboxSelector/meta.js +24 -4
  38. package/dist/blocks/CheckboxSelector/tests/CheckboxSelector.e2e.yaml +272 -0
  39. package/dist/blocks/CheckboxSelector/tests.yaml +325 -0
  40. package/dist/blocks/CheckboxSwitch/gallery.yaml +457 -0
  41. package/dist/blocks/CheckboxSwitch/tests/CheckboxSwitch.e2e.yaml +126 -0
  42. package/dist/blocks/CheckboxSwitch/tests.yaml +96 -0
  43. package/dist/blocks/Collapse/gallery.yaml +1079 -0
  44. package/dist/blocks/Collapse/tests/Collapse.e2e.yaml +206 -0
  45. package/dist/blocks/Collapse/tests.yaml +265 -0
  46. package/dist/blocks/ColorSelector/gallery.yaml +807 -0
  47. package/dist/blocks/ColorSelector/tests/ColorSelector.e2e.yaml +77 -0
  48. package/dist/blocks/ColorSelector/tests.yaml +84 -0
  49. package/dist/blocks/ConfigProvider/gallery.yaml +1003 -0
  50. package/dist/blocks/ConfigProvider/tests.yaml +62 -0
  51. package/dist/blocks/ConfirmModal/gallery.yaml +1043 -0
  52. package/dist/blocks/ConfirmModal/tests/ConfirmModal.e2e.yaml +410 -0
  53. package/dist/blocks/ConfirmModal/tests.yaml +95 -0
  54. package/dist/blocks/Content/gallery.yaml +528 -0
  55. package/dist/blocks/Content/tests/Content.e2e.yaml +71 -0
  56. package/dist/blocks/Content/tests.yaml +42 -0
  57. package/dist/blocks/ControlledList/ControlledList.js +1 -1
  58. package/dist/blocks/ControlledList/gallery.yaml +481 -0
  59. package/dist/blocks/ControlledList/{style.module.css → style.css} +3 -3
  60. package/dist/blocks/ControlledList/tests/ControlledList.e2e.yaml +161 -0
  61. package/dist/blocks/ControlledList/tests.yaml +57 -0
  62. package/dist/blocks/DateRangeSelector/DateRangeSelector.js +7 -0
  63. package/dist/blocks/DateRangeSelector/e2e.js +28 -2
  64. package/dist/blocks/DateRangeSelector/gallery.yaml +858 -0
  65. package/dist/blocks/DateRangeSelector/meta.js +2 -0
  66. package/dist/blocks/DateRangeSelector/tests/DateRangeSelector.e2e.yaml +204 -0
  67. package/dist/blocks/DateRangeSelector/tests.yaml +129 -0
  68. package/dist/blocks/DateSelector/DateSelector.js +6 -0
  69. package/dist/blocks/DateSelector/e2e.js +28 -2
  70. package/dist/blocks/DateSelector/gallery.yaml +691 -0
  71. package/dist/blocks/DateSelector/meta.js +6 -0
  72. package/dist/blocks/DateSelector/tests/DateSelector.e2e.yaml +229 -0
  73. package/dist/blocks/DateSelector/tests.yaml +117 -0
  74. package/dist/blocks/DateTimeSelector/DateTimeSelector.js +7 -0
  75. package/dist/blocks/DateTimeSelector/e2e.js +26 -2
  76. package/dist/blocks/DateTimeSelector/gallery.yaml +770 -0
  77. package/dist/blocks/DateTimeSelector/meta.js +2 -0
  78. package/dist/blocks/DateTimeSelector/tests/DateTimeSelector.e2e.yaml +163 -0
  79. package/dist/blocks/DateTimeSelector/tests.yaml +140 -0
  80. package/dist/blocks/Descriptions/gallery.yaml +839 -0
  81. package/dist/blocks/Descriptions/tests/Descriptions.e2e.yaml +143 -0
  82. package/dist/blocks/Descriptions/tests.yaml +256 -0
  83. package/dist/blocks/Divider/gallery.yaml +375 -0
  84. package/dist/blocks/Divider/tests/Divider.e2e.yaml +107 -0
  85. package/dist/blocks/Divider/tests.yaml +58 -0
  86. package/dist/blocks/Drawer/gallery.yaml +1257 -0
  87. package/dist/blocks/Drawer/tests/Drawer.e2e.yaml +562 -0
  88. package/dist/blocks/Drawer/tests.yaml +80 -0
  89. package/dist/blocks/DropdownButton/gallery.yaml +606 -0
  90. package/dist/blocks/DropdownButton/tests/DropdownButton.e2e.yaml +243 -0
  91. package/dist/blocks/DropdownMenu/gallery.yaml +578 -0
  92. package/dist/blocks/DropdownMenu/tests/DropdownMenu.e2e.yaml +267 -0
  93. package/dist/blocks/Flex/gallery.yaml +1416 -0
  94. package/dist/blocks/Flex/tests/Flex.e2e.yaml +95 -0
  95. package/dist/blocks/Flex/tests.yaml +92 -0
  96. package/dist/blocks/FloatButton/gallery.yaml +518 -0
  97. package/dist/blocks/FloatButton/tests/FloatButton.e2e.yaml +73 -0
  98. package/dist/blocks/FloatButton/tests.yaml +59 -0
  99. package/dist/blocks/Footer/gallery.yaml +355 -0
  100. package/dist/blocks/Footer/tests/Footer.e2e.yaml +70 -0
  101. package/dist/blocks/Footer/tests.yaml +28 -0
  102. package/dist/blocks/Header/gallery.yaml +249 -0
  103. package/dist/blocks/Header/tests/Header.e2e.yaml +77 -0
  104. package/dist/blocks/Header/tests.yaml +36 -0
  105. package/dist/blocks/Label/Label.js +4 -4
  106. package/dist/blocks/Label/gallery.yaml +762 -0
  107. package/dist/blocks/Label/labelLogic.js +4 -1
  108. package/dist/blocks/Label/{style.module.css → style.css} +28 -28
  109. package/dist/blocks/Label/tests/Label.e2e.yaml +247 -0
  110. package/dist/blocks/Label/tests.yaml +212 -0
  111. package/dist/blocks/Layout/gallery.yaml +548 -0
  112. package/dist/blocks/Layout/tests/Layout.e2e.yaml +86 -0
  113. package/dist/blocks/Layout/tests.yaml +28 -0
  114. package/dist/blocks/ListSelector/gallery.yaml +223 -0
  115. package/dist/blocks/Masonry/gallery.yaml +989 -0
  116. package/dist/blocks/Masonry/tests/Masonry.e2e.yaml +128 -0
  117. package/dist/blocks/Masonry/tests.yaml +42 -0
  118. package/dist/blocks/MasonryList/gallery.yaml +224 -0
  119. package/dist/blocks/MasonryList/tests/MasonryList.e2e.yaml +55 -0
  120. package/dist/blocks/MasonryList/tests.yaml +42 -0
  121. package/dist/blocks/Menu/gallery.yaml +974 -0
  122. package/dist/blocks/Menu/tests/Menu.e2e.yaml +484 -0
  123. package/dist/blocks/Menu/tests.yaml +1053 -0
  124. package/dist/blocks/Message/gallery.yaml +860 -0
  125. package/dist/blocks/Message/tests/Message.e2e.yaml +246 -0
  126. package/dist/blocks/Message/tests.yaml +54 -0
  127. package/dist/blocks/MobileMenu/gallery.yaml +1172 -0
  128. package/dist/blocks/MobileMenu/tests/MobileMenu.e2e.yaml +314 -0
  129. package/dist/blocks/MobileMenu/tests.yaml +359 -0
  130. package/dist/blocks/Modal/gallery.yaml +1039 -0
  131. package/dist/blocks/Modal/tests/Modal.e2e.yaml +493 -0
  132. package/dist/blocks/Modal/tests.yaml +75 -0
  133. package/dist/blocks/MonthSelector/MonthSelector.js +6 -0
  134. package/dist/blocks/MonthSelector/e2e.js +26 -2
  135. package/dist/blocks/MonthSelector/gallery.yaml +687 -0
  136. package/dist/blocks/MonthSelector/meta.js +6 -0
  137. package/dist/blocks/MonthSelector/tests/MonthSelector.e2e.yaml +167 -0
  138. package/dist/blocks/MonthSelector/tests.yaml +124 -0
  139. package/dist/blocks/MultipleSelector/gallery.yaml +1245 -0
  140. package/dist/blocks/MultipleSelector/tests/MultipleSelector.e2e.yaml +445 -0
  141. package/dist/blocks/MultipleSelector/tests.yaml +201 -0
  142. package/dist/blocks/Notification/gallery.yaml +1376 -0
  143. package/dist/blocks/Notification/tests/Notification.e2e.yaml +362 -0
  144. package/dist/blocks/Notification/tests.yaml +97 -0
  145. package/dist/blocks/NumberInput/gallery.yaml +753 -0
  146. package/dist/blocks/NumberInput/tests/NumberInput.e2e.yaml +228 -0
  147. package/dist/blocks/NumberInput/tests.yaml +116 -0
  148. package/dist/blocks/PageHeaderMenu/PageHeaderMenu.js +1 -1
  149. package/dist/blocks/PageHeaderMenu/gallery.yaml +480 -0
  150. package/dist/blocks/PageHeaderMenu/tests/PageHeaderMenu.e2e.yaml +110 -0
  151. package/dist/blocks/PageHeaderMenu/tests.yaml +173 -0
  152. package/dist/blocks/PageSidebarLayout/PageSidebarLayout.js +10 -1
  153. package/dist/blocks/PageSidebarLayout/gallery.yaml +302 -0
  154. package/dist/blocks/PageSidebarLayout/meta.js +1 -0
  155. package/dist/blocks/PageSidebarLayout/tests/PageSidebarLayout.e2e.yaml +216 -0
  156. package/dist/blocks/PageSidebarLayout/tests.yaml +174 -0
  157. package/dist/blocks/PageSiderMenu/PageSiderMenu.js +1 -1
  158. package/dist/blocks/PageSiderMenu/gallery.yaml +516 -0
  159. package/dist/blocks/PageSiderMenu/tests/PageSiderMenu.e2e.yaml +175 -0
  160. package/dist/blocks/PageSiderMenu/tests.yaml +211 -0
  161. package/dist/blocks/Pagination/gallery.yaml +503 -0
  162. package/dist/blocks/Pagination/tests/Pagination.e2e.yaml +159 -0
  163. package/dist/blocks/Pagination/tests.yaml +80 -0
  164. package/dist/blocks/Paragraph/gallery.yaml +458 -0
  165. package/dist/blocks/Paragraph/tests/Paragraph.e2e.yaml +153 -0
  166. package/dist/blocks/Paragraph/tests.yaml +176 -0
  167. package/dist/blocks/ParagraphInput/gallery.yaml +1483 -0
  168. package/dist/blocks/ParagraphInput/tests/ParagraphInput.e2e.yaml +189 -0
  169. package/dist/blocks/ParagraphInput/tests.yaml +163 -0
  170. package/dist/blocks/PasswordInput/gallery.yaml +420 -0
  171. package/dist/blocks/PasswordInput/tests/PasswordInput.e2e.yaml +188 -0
  172. package/dist/blocks/PasswordInput/tests.yaml +78 -0
  173. package/dist/blocks/PhoneNumberInput/gallery.yaml +677 -0
  174. package/dist/blocks/PhoneNumberInput/tests/PhoneNumberInput.e2e.yaml +279 -0
  175. package/dist/blocks/PhoneNumberInput/tests.yaml +25 -0
  176. package/dist/blocks/Popover/gallery.yaml +1301 -0
  177. package/dist/blocks/Popover/tests/Popover.e2e.yaml +249 -0
  178. package/dist/blocks/Popover/tests.yaml +105 -0
  179. package/dist/blocks/Progress/gallery.yaml +772 -0
  180. package/dist/blocks/Progress/tests/Progress.e2e.yaml +167 -0
  181. package/dist/blocks/Progress/tests.yaml +114 -0
  182. package/dist/blocks/QRCode/gallery.yaml +492 -0
  183. package/dist/blocks/QRCode/tests/QRCode.e2e.yaml +66 -0
  184. package/dist/blocks/QRCode/tests.yaml +113 -0
  185. package/dist/blocks/RadioSelector/RadioSelector.js +50 -25
  186. package/dist/blocks/RadioSelector/gallery.yaml +816 -0
  187. package/dist/blocks/RadioSelector/meta.js +23 -3
  188. package/dist/blocks/RadioSelector/tests/RadioSelector.e2e.yaml +269 -0
  189. package/dist/blocks/RadioSelector/tests.yaml +339 -0
  190. package/dist/blocks/RatingSlider/gallery.yaml +627 -0
  191. package/dist/blocks/RatingSlider/tests/RatingSlider.e2e.yaml +188 -0
  192. package/dist/blocks/RatingSlider/tests.yaml +116 -0
  193. package/dist/blocks/Result/gallery.yaml +925 -0
  194. package/dist/blocks/Result/tests/Result.e2e.yaml +126 -0
  195. package/dist/blocks/Result/tests.yaml +75 -0
  196. package/dist/blocks/Search/Search.js +1 -1
  197. package/dist/blocks/Search/SearchModal.js +18 -9
  198. package/dist/blocks/Search/gallery.yaml +170 -0
  199. package/dist/blocks/Search/meta.js +2 -1
  200. package/dist/blocks/Search/{style.module.css → style.css} +19 -12
  201. package/dist/blocks/Search/tests/Search.e2e.yaml +125 -0
  202. package/dist/blocks/Search/useSearchIndex.js +24 -2
  203. package/dist/blocks/SegmentedSelector/gallery.yaml +725 -0
  204. package/dist/blocks/SegmentedSelector/tests/SegmentedSelector.e2e.yaml +115 -0
  205. package/dist/blocks/SegmentedSelector/tests.yaml +141 -0
  206. package/dist/blocks/Selector/gallery.yaml +1055 -0
  207. package/dist/blocks/Selector/tests/Selector.e2e.yaml +427 -0
  208. package/dist/blocks/Selector/tests.yaml +196 -0
  209. package/dist/blocks/Sider/gallery.yaml +994 -0
  210. package/dist/blocks/Sider/tests/Sider.e2e.yaml +162 -0
  211. package/dist/blocks/Sider/tests.yaml +20 -0
  212. package/dist/blocks/Slider/gallery.yaml +600 -0
  213. package/dist/blocks/Slider/tests/Slider.e2e.yaml +190 -0
  214. package/dist/blocks/Slider/tests.yaml +68 -0
  215. package/dist/blocks/Splitter/gallery.yaml +1511 -0
  216. package/dist/blocks/Splitter/tests/Splitter.e2e.yaml +114 -0
  217. package/dist/blocks/Splitter/tests.yaml +79 -0
  218. package/dist/blocks/Statistic/gallery.yaml +460 -0
  219. package/dist/blocks/Statistic/tests/Statistic.e2e.yaml +137 -0
  220. package/dist/blocks/Statistic/tests.yaml +77 -0
  221. package/dist/blocks/Steps/gallery.yaml +550 -0
  222. package/dist/blocks/Switch/gallery.yaml +502 -0
  223. package/dist/blocks/Switch/tests/Switch.e2e.yaml +132 -0
  224. package/dist/blocks/Switch/tests.yaml +87 -0
  225. package/dist/blocks/Tabs/gallery.yaml +1353 -0
  226. package/dist/blocks/Tabs/tests/Tabs.e2e.yaml +370 -0
  227. package/dist/blocks/Tabs/tests.yaml +349 -0
  228. package/dist/blocks/Tag/gallery.yaml +598 -0
  229. package/dist/blocks/Tag/tests/Tag.e2e.yaml +173 -0
  230. package/dist/blocks/Tag/tests.yaml +51 -0
  231. package/dist/blocks/TagMultipleSelector/TagMultipleSelector.js +53 -0
  232. package/dist/blocks/TagMultipleSelector/e2e.js +36 -0
  233. package/dist/blocks/TagMultipleSelector/gallery.yaml +70 -0
  234. package/dist/blocks/TagMultipleSelector/meta.js +91 -0
  235. package/dist/blocks/TagMultipleSelector/tests/TagMultipleSelector.e2e.yaml +93 -0
  236. package/dist/blocks/TagSelector/TagSelector.js +49 -0
  237. package/dist/blocks/TagSelector/e2e.js +36 -0
  238. package/dist/blocks/TagSelector/gallery.yaml +70 -0
  239. package/dist/blocks/TagSelector/meta.js +91 -0
  240. package/dist/blocks/TagSelector/tests/TagSelector.e2e.yaml +93 -0
  241. package/dist/blocks/TextArea/gallery.yaml +618 -0
  242. package/dist/blocks/TextArea/tests/TextArea.e2e.yaml +218 -0
  243. package/dist/blocks/TextArea/tests.yaml +100 -0
  244. package/dist/blocks/TextInput/gallery.yaml +560 -0
  245. package/dist/blocks/TextInput/tests/TextInput.e2e.yaml +287 -0
  246. package/dist/blocks/TextInput/tests.yaml +114 -0
  247. package/dist/blocks/TimelineList/gallery.yaml +431 -0
  248. package/dist/blocks/TimelineList/tests/TimelineList.e2e.yaml +244 -0
  249. package/dist/blocks/TimelineList/tests.yaml +251 -0
  250. package/dist/blocks/Title/gallery.yaml +483 -0
  251. package/dist/blocks/Title/tests/Title.e2e.yaml +180 -0
  252. package/dist/blocks/Title/tests.yaml +175 -0
  253. package/dist/blocks/TitleInput/gallery.yaml +1006 -0
  254. package/dist/blocks/TitleInput/tests/TitleInput.e2e.yaml +195 -0
  255. package/dist/blocks/TitleInput/tests.yaml +181 -0
  256. package/dist/blocks/Tooltip/gallery.yaml +1214 -0
  257. package/dist/blocks/Tooltip/tests/Tooltip.e2e.yaml +195 -0
  258. package/dist/blocks/Tooltip/tests.yaml +92 -0
  259. package/dist/blocks/Tour/gallery.yaml +2305 -0
  260. package/dist/blocks/Tour/tests/Tour.e2e.yaml +90 -0
  261. package/dist/blocks/Tour/tests.yaml +151 -0
  262. package/dist/blocks/TreeInput/gallery.yaml +78 -0
  263. package/dist/blocks/TreeInput/tests/TreeInput.e2e.yaml +139 -0
  264. package/dist/blocks/TreeInput/tests.yaml +140 -0
  265. package/dist/blocks/TreeMultipleSelector/gallery.yaml +67 -0
  266. package/dist/blocks/TreeSelector/gallery.yaml +81 -0
  267. package/dist/blocks/Watermark/gallery.yaml +479 -0
  268. package/dist/blocks/Watermark/tests/Watermark.e2e.yaml +62 -0
  269. package/dist/blocks/Watermark/tests.yaml +86 -0
  270. package/dist/blocks/WeekSelector/WeekSelector.js +6 -0
  271. package/dist/blocks/WeekSelector/e2e.js +26 -2
  272. package/dist/blocks/WeekSelector/gallery.yaml +589 -0
  273. package/dist/blocks/WeekSelector/meta.js +6 -0
  274. package/dist/blocks/WeekSelector/tests/WeekSelector.e2e.yaml +154 -0
  275. package/dist/blocks/WeekSelector/tests.yaml +122 -0
  276. package/dist/blocks.js +2 -0
  277. package/dist/disabledDate.js +91 -19
  278. package/dist/e2e.js +2 -0
  279. package/dist/getPresets.js +151 -0
  280. package/dist/getTagColor.js +44 -0
  281. package/dist/getTagSelectorOptions.js +30 -0
  282. package/dist/metas.js +2 -0
  283. package/dist/pickerPresetsStyle.css +26 -0
  284. package/dist/schemas/disabledDates.js +6 -2
  285. package/dist/schemas/index.js +1 -0
  286. package/dist/schemas/presets.js +111 -0
  287. package/dist/tagSelectorStyle.css +68 -0
  288. package/package.json +13 -13
@@ -0,0 +1,88 @@
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 { cn } from '@lowdefy/block-utils';
17
+ import Label from './blocks/Label/Label.js';
18
+ import getTagColor from './getTagColor.js';
19
+ import getContrastTextColor from './getContrastTextColor.js';
20
+ import './tagSelectorStyle.css';
21
+ // Shared body for TagSelector (single) and TagMultipleSelector (multi): the
22
+ // input Label wrapping a row of toggleable tag pills. Value semantics differ
23
+ // between the two blocks, so selection state and toggling are injected as
24
+ // `isSelected` / `onToggle`; everything visual — stable per-value colors,
25
+ // filled-selected / outlined-unselected pills, per-option and whole-block
26
+ // disabling — lives here so both blocks render identically. Colors are stable
27
+ // per option (see getTagColor); `properties.colored: false` gives single-accent
28
+ // pills that use the primary color.
29
+ function TagPillRow({ blockId, classNames = {}, components: { Icon }, events, isSelected, loading, methods, onToggle, options, properties, required, styles = {}, validation }) {
30
+ const colored = properties.colored !== false;
31
+ return /*#__PURE__*/ React.createElement(Label, {
32
+ blockId: blockId,
33
+ methods: methods,
34
+ classNames: classNames,
35
+ components: {
36
+ Icon
37
+ },
38
+ events: events,
39
+ properties: {
40
+ title: properties.title,
41
+ size: properties.size,
42
+ ...properties.label
43
+ },
44
+ required: required,
45
+ styles: styles,
46
+ validation: validation,
47
+ content: {
48
+ content: ()=>/*#__PURE__*/ React.createElement("div", {
49
+ id: `${blockId}_input`,
50
+ className: cn('lf-tag-selector', classNames.element),
51
+ style: styles.element
52
+ }, options.map((opt)=>{
53
+ const selected = isSelected(opt.value);
54
+ const color = getTagColor({
55
+ option: opt,
56
+ colored
57
+ });
58
+ // Filled when selected: solid hue + black/white contrast text.
59
+ // Outlined with a hue-tinted border when off.
60
+ let colorStyle = {};
61
+ if (color && selected) {
62
+ colorStyle = {
63
+ background: color,
64
+ borderColor: color,
65
+ color: getContrastTextColor(color) || '#fff'
66
+ };
67
+ } else if (color) {
68
+ colorStyle = {
69
+ borderColor: `color-mix(in srgb, ${color} 45%, var(--ant-color-border))`
70
+ };
71
+ }
72
+ return /*#__PURE__*/ React.createElement("button", {
73
+ key: `${opt.value}`,
74
+ type: "button",
75
+ disabled: opt.disabled || properties.disabled || loading,
76
+ "aria-pressed": selected,
77
+ className: cn('lf-tag-selector-tag', selected && 'lf-tag-selector-tag-selected', classNames.tag),
78
+ style: {
79
+ ...colorStyle,
80
+ ...styles.tag
81
+ },
82
+ onClick: ()=>onToggle(opt)
83
+ }, opt.label);
84
+ }))
85
+ }
86
+ });
87
+ }
88
+ export default TagPillRow;
@@ -0,0 +1,399 @@
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
+ - title: Basic Affix (Top)
16
+ blocks:
17
+ - id: affix_basic_top
18
+ type: Affix
19
+ properties:
20
+ offsetTop: 10
21
+ blocks:
22
+ - id: affix_basic_top_btn
23
+ type: Button
24
+ properties:
25
+ title: Affix Top (10px)
26
+ color: primary
27
+ variant: solid
28
+
29
+ - title: Offset Top
30
+ blocks:
31
+ - id: affix_offset_top_0
32
+ type: Affix
33
+ layout:
34
+ flex: 0 0 auto
35
+ properties:
36
+ offsetTop: 0
37
+ blocks:
38
+ - id: affix_offset_top_0_btn
39
+ type: Button
40
+ layout:
41
+ flex: 0 0 auto
42
+ properties:
43
+ title: Offset 0px
44
+ color: primary
45
+ variant: solid
46
+ size: small
47
+ - id: affix_offset_top_20
48
+ type: Affix
49
+ layout:
50
+ flex: 0 0 auto
51
+ properties:
52
+ offsetTop: 20
53
+ blocks:
54
+ - id: affix_offset_top_20_btn
55
+ type: Button
56
+ layout:
57
+ flex: 0 0 auto
58
+ properties:
59
+ title: Offset 20px
60
+ color: primary
61
+ variant: outlined
62
+ size: small
63
+ - id: affix_offset_top_80
64
+ type: Affix
65
+ layout:
66
+ flex: 0 0 auto
67
+ properties:
68
+ offsetTop: 80
69
+ blocks:
70
+ - id: affix_offset_top_80_btn
71
+ type: Button
72
+ layout:
73
+ flex: 0 0 auto
74
+ properties:
75
+ title: Offset 80px
76
+ color: primary
77
+ variant: dashed
78
+ size: small
79
+
80
+ - title: Offset Bottom
81
+ blocks:
82
+ - id: affix_offset_bottom_0
83
+ type: Affix
84
+ layout:
85
+ flex: 0 0 auto
86
+ properties:
87
+ offsetBottom: 0
88
+ blocks:
89
+ - id: affix_offset_bottom_0_btn
90
+ type: Button
91
+ layout:
92
+ flex: 0 0 auto
93
+ properties:
94
+ title: Bottom 0px
95
+ color: primary
96
+ variant: solid
97
+ size: small
98
+ - id: affix_offset_bottom_30
99
+ type: Affix
100
+ layout:
101
+ flex: 0 0 auto
102
+ properties:
103
+ offsetBottom: 30
104
+ blocks:
105
+ - id: affix_offset_bottom_30_btn
106
+ type: Button
107
+ layout:
108
+ flex: 0 0 auto
109
+ properties:
110
+ title: Bottom 30px
111
+ color: primary
112
+ variant: outlined
113
+ size: small
114
+ - id: affix_offset_bottom_60
115
+ type: Affix
116
+ layout:
117
+ flex: 0 0 auto
118
+ properties:
119
+ offsetBottom: 60
120
+ blocks:
121
+ - id: affix_offset_bottom_60_btn
122
+ type: Button
123
+ layout:
124
+ flex: 0 0 auto
125
+ properties:
126
+ title: Bottom 60px
127
+ color: primary
128
+ variant: dashed
129
+ size: small
130
+
131
+ - title: onChange Event
132
+ blocks:
133
+ - id: affix_on_change
134
+ type: Affix
135
+ properties:
136
+ offsetTop: 10
137
+ events:
138
+ onChange:
139
+ - id: affix_on_change_message
140
+ type: DisplayMessage
141
+ params:
142
+ content:
143
+ _if:
144
+ test:
145
+ _eq:
146
+ - _event: affixed
147
+ - true
148
+ then: Affix is now fixed to the viewport.
149
+ else: Affix returned to its original position.
150
+ duration: 3
151
+ blocks:
152
+ - id: affix_on_change_btn
153
+ type: Button
154
+ properties:
155
+ title: Scroll to trigger onChange
156
+ color: primary
157
+ variant: solid
158
+
159
+ - title: Theme Token Overrides
160
+ blocks:
161
+ - id: affix_theme_default_z
162
+ type: Affix
163
+ layout:
164
+ flex: 0 0 auto
165
+ properties:
166
+ offsetTop: 10
167
+ theme:
168
+ zIndexPopup: 10
169
+ blocks:
170
+ - id: affix_theme_default_z_btn
171
+ type: Button
172
+ layout:
173
+ flex: 0 0 auto
174
+ properties:
175
+ title: Default z-index (10)
176
+ color: default
177
+ variant: outlined
178
+ size: small
179
+ - id: affix_theme_high_z
180
+ type: Affix
181
+ layout:
182
+ flex: 0 0 auto
183
+ properties:
184
+ offsetTop: 10
185
+ theme:
186
+ zIndexPopup: 100
187
+ blocks:
188
+ - id: affix_theme_high_z_btn
189
+ type: Button
190
+ layout:
191
+ flex: 0 0 auto
192
+ properties:
193
+ title: High z-index (100)
194
+ color: primary
195
+ variant: solid
196
+ size: small
197
+ - id: affix_theme_low_z
198
+ type: Affix
199
+ layout:
200
+ flex: 0 0 auto
201
+ properties:
202
+ offsetTop: 10
203
+ theme:
204
+ zIndexPopup: 1
205
+ blocks:
206
+ - id: affix_theme_low_z_btn
207
+ type: Button
208
+ layout:
209
+ flex: 0 0 auto
210
+ properties:
211
+ title: Low z-index (1)
212
+ color: default
213
+ variant: dashed
214
+ size: small
215
+
216
+ - title: Styled with CSS Key (element)
217
+ blocks:
218
+ - id: affix_css_shadow
219
+ type: Affix
220
+ layout:
221
+ flex: 0 0 auto
222
+ class:
223
+ element: shadow-lg rounded-lg
224
+ properties:
225
+ offsetTop: 10
226
+ blocks:
227
+ - id: affix_css_shadow_btn
228
+ type: Button
229
+ layout:
230
+ flex: 0 0 auto
231
+ properties:
232
+ title: Shadow + Rounded
233
+ color: primary
234
+ variant: solid
235
+ size: small
236
+ - id: affix_css_ring
237
+ type: Affix
238
+ layout:
239
+ flex: 0 0 auto
240
+ class:
241
+ element: ring-2 ring-green-400 rounded-lg
242
+ properties:
243
+ offsetTop: 10
244
+ blocks:
245
+ - id: affix_css_ring_btn
246
+ type: Button
247
+ layout:
248
+ flex: 0 0 auto
249
+ properties:
250
+ title: Ring Border
251
+ color: default
252
+ variant: outlined
253
+ size: small
254
+
255
+ - title: Inline Style Overrides (element)
256
+ blocks:
257
+ - id: affix_style_zindex
258
+ type: Affix
259
+ properties:
260
+ offsetTop: 10
261
+ style:
262
+ .element:
263
+ zIndex: 200
264
+ boxShadow: 0 4px 12px rgba(0, 0, 0, 0.15)
265
+ blocks:
266
+ - id: affix_style_zindex_btn
267
+ type: Button
268
+ properties:
269
+ title: Custom z-index (200) + Shadow
270
+ color: primary
271
+ variant: solid
272
+
273
+ - title: Sticky Form Toolbar
274
+ blocks:
275
+ - id: affix_form_toolbar
276
+ type: Affix
277
+ properties:
278
+ offsetTop: 0
279
+ blocks:
280
+ - id: affix_form_toolbar_card
281
+ type: Card
282
+ properties:
283
+ size: small
284
+ bordered: true
285
+ blocks:
286
+ - id: affix_form_toolbar_row
287
+ type: Box
288
+ layout:
289
+ gap: 8
290
+ justify: space-between
291
+ align: center
292
+ blocks:
293
+ - id: affix_form_toolbar_title
294
+ type: Title
295
+ layout:
296
+ flex: 0 0 auto
297
+ properties:
298
+ content: Edit Employee Record
299
+ level: 5
300
+ - id: affix_form_toolbar_actions
301
+ type: Box
302
+ layout:
303
+ flex: 0 0 auto
304
+ gap: 8
305
+ blocks:
306
+ - id: affix_form_toolbar_discard
307
+ type: Button
308
+ layout:
309
+ flex: 0 0 auto
310
+ properties:
311
+ title: Discard
312
+ color: default
313
+ variant: outlined
314
+ size: small
315
+ events:
316
+ onClick:
317
+ - id: affix_form_toolbar_discard_msg
318
+ type: DisplayMessage
319
+ params:
320
+ content: Changes discarded.
321
+ status: warning
322
+ - id: affix_form_toolbar_save
323
+ type: Button
324
+ layout:
325
+ flex: 0 0 auto
326
+ properties:
327
+ title: Save Changes
328
+ icon: AiOutlineSave
329
+ color: primary
330
+ variant: solid
331
+ size: small
332
+ events:
333
+ onClick:
334
+ - id: affix_form_toolbar_save_msg
335
+ type: DisplayMessage
336
+ params:
337
+ content: Employee record saved successfully.
338
+ status: success
339
+
340
+ - title: Fixed Bottom Action Bar
341
+ blocks:
342
+ - id: affix_bottom_bar
343
+ type: Affix
344
+ properties:
345
+ offsetBottom: 0
346
+ blocks:
347
+ - id: affix_bottom_bar_card
348
+ type: Card
349
+ class: shadow-lg
350
+ properties:
351
+ size: small
352
+ blocks:
353
+ - id: affix_bottom_bar_row
354
+ type: Box
355
+ layout:
356
+ gap: 12
357
+ justify: flex-end
358
+ align: center
359
+ blocks:
360
+ - id: affix_bottom_bar_status
361
+ type: Paragraph
362
+ layout:
363
+ flex: 1 1 0
364
+ properties:
365
+ content: 3 items selected
366
+ - id: affix_bottom_bar_delete
367
+ type: Button
368
+ layout:
369
+ flex: 0 0 auto
370
+ properties:
371
+ title: Delete
372
+ icon: AiOutlineDelete
373
+ color: danger
374
+ variant: outlined
375
+ size: small
376
+ events:
377
+ onClick:
378
+ - id: affix_bottom_bar_delete_msg
379
+ type: DisplayMessage
380
+ params:
381
+ content: Items deleted.
382
+ status: error
383
+ - id: affix_bottom_bar_export
384
+ type: Button
385
+ layout:
386
+ flex: 0 0 auto
387
+ properties:
388
+ title: Export
389
+ icon: AiOutlineDownload
390
+ color: primary
391
+ variant: solid
392
+ size: small
393
+ events:
394
+ onClick:
395
+ - id: affix_bottom_bar_export_msg
396
+ type: DisplayMessage
397
+ params:
398
+ content: Export started.
399
+ status: success
@@ -0,0 +1,72 @@
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: affix
16
+ type: Box
17
+ properties:
18
+ style:
19
+ height: 2000px
20
+ paddingTop: 200px
21
+
22
+ blocks:
23
+ # ============================================
24
+ # BASIC RENDERING
25
+ # ============================================
26
+
27
+ - id: affix_basic
28
+ type: Affix
29
+ properties:
30
+ offsetTop: 10
31
+ slots:
32
+ content:
33
+ blocks:
34
+ - id: affix_basic_button
35
+ type: Button
36
+ properties:
37
+ title: Affix Button
38
+
39
+ # ============================================
40
+ # OFFSET TOP
41
+ # ============================================
42
+
43
+ - id: affix_offset_top
44
+ type: Affix
45
+ properties:
46
+ offsetTop: 50
47
+ slots:
48
+ content:
49
+ blocks:
50
+ - id: affix_offset_top_content
51
+ type: Span
52
+ properties:
53
+ content: Offset Top 50px
54
+
55
+ # ============================================
56
+ # CUSTOM STYLE
57
+ # ============================================
58
+
59
+ - id: affix_styled
60
+ type: Affix
61
+ properties:
62
+ offsetTop: 100
63
+ style:
64
+ zIndex: 100
65
+ slots:
66
+ content:
67
+ blocks:
68
+ - id: affix_styled_content
69
+ type: Alert
70
+ properties:
71
+ message: Styled Affix Alert
72
+ type: info
@@ -0,0 +1,29 @@
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: default
16
+ type: Affix
17
+ - id: 'properties.offsetTop'
18
+ type: Affix
19
+ properties:
20
+ offsetTop: 15
21
+ - id: 'properties.offsetBottom'
22
+ type: Affix
23
+ properties:
24
+ offsetBottom: 15
25
+ - id: 'properties.style'
26
+ type: Affix
27
+ properties:
28
+ style:
29
+ border: 5px solid blue