@wix/patterns-fields 1.81.0 → 1.83.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 (239) hide show
  1. package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
  2. package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
  3. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
  4. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  5. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  6. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  7. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
  8. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  9. package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
  10. package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
  11. package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
  12. package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
  13. package/dist/cjs/components/datetime-input/date-time-input.js +11 -6
  14. package/dist/cjs/components/datetime-input/date-time-input.js.map +1 -1
  15. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
  16. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  17. package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
  18. package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
  19. package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
  20. package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
  21. package/dist/cjs/components/field-validation-settings/field-validation-settings-input.js +450 -0
  22. package/dist/cjs/components/field-validation-settings/field-validation-settings-input.js.map +1 -0
  23. package/dist/cjs/components/field-validation-settings/field-validation-settings.uni.driver.js +24 -0
  24. package/dist/cjs/components/field-validation-settings/field-validation-settings.uni.driver.js.map +1 -0
  25. package/dist/cjs/components/field-validation-settings/index.js +16 -0
  26. package/dist/cjs/components/field-validation-settings/index.js.map +1 -0
  27. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
  28. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  29. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
  30. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  31. package/dist/cjs/components/index.js +6 -0
  32. package/dist/cjs/components/index.js.map +1 -1
  33. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  34. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  35. package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
  36. package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
  37. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
  38. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  39. package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
  40. package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
  41. package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
  42. package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
  43. package/dist/cjs/components/media-loader/media-loader.st.css.js +3 -3
  44. package/dist/cjs/components/media-loader/media-loader.st.css.js.map +1 -1
  45. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  46. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  47. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
  48. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  49. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  50. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  51. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
  52. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
  53. package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
  54. package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
  55. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
  56. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  57. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
  58. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  59. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  60. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  61. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  62. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  63. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  64. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  65. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  66. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  67. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
  68. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  69. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
  70. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  71. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  72. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  73. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  74. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  75. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  76. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  77. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  78. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  79. package/dist/cjs/components/text/text-view.st.css.js +3 -3
  80. package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
  81. package/dist/cjs/exports/unidriver.js +3 -1
  82. package/dist/cjs/exports/unidriver.js.map +1 -1
  83. package/dist/cjs/exports/validations.js +7 -0
  84. package/dist/cjs/exports/validations.js.map +1 -1
  85. package/dist/cjs/styles.global.css +1 -1
  86. package/dist/cjs/types/validation.js.map +1 -1
  87. package/dist/cjs/validations/field-validation-settings.js +110 -0
  88. package/dist/cjs/validations/field-validation-settings.js.map +1 -0
  89. package/dist/cjs/validations/field-validation-settings.spec.js +209 -0
  90. package/dist/cjs/validations/field-validation-settings.spec.js.map +1 -0
  91. package/dist/esm/components/address/input/address-input.st.css.js +2 -2
  92. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
  93. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
  94. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  95. package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
  96. package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
  97. package/dist/esm/components/color-view/color-view.st.css.js +2 -2
  98. package/dist/esm/components/color-view/color-view.st.css.js.map +1 -1
  99. package/dist/esm/components/datetime-input/date-time-input.js +6 -1
  100. package/dist/esm/components/datetime-input/date-time-input.js.map +1 -1
  101. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
  102. package/dist/esm/components/document/form-document-field.st.css.js +2 -2
  103. package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
  104. package/dist/esm/components/exclamation/exclamation.st.css.js.map +1 -1
  105. package/dist/esm/components/field-validation-settings/field-validation-settings-input.js +121 -0
  106. package/dist/esm/components/field-validation-settings/field-validation-settings-input.js.map +1 -0
  107. package/dist/esm/components/field-validation-settings/field-validation-settings.uni.driver.js +20 -0
  108. package/dist/esm/components/field-validation-settings/field-validation-settings.uni.driver.js.map +1 -0
  109. package/dist/esm/components/field-validation-settings/index.js +3 -0
  110. package/dist/esm/components/field-validation-settings/index.js.map +1 -0
  111. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
  112. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  113. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
  114. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  115. package/dist/esm/components/index.js +1 -0
  116. package/dist/esm/components/index.js.map +1 -1
  117. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  118. package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
  119. package/dist/esm/components/media-control/paste-url-button.st.css.js.map +1 -1
  120. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
  121. package/dist/esm/components/media-image/media-image.st.css.js +3 -3
  122. package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
  123. package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
  124. package/dist/esm/components/media-loader/media-loader.st.css.js +2 -2
  125. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  126. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
  127. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  128. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
  129. package/dist/esm/components/reference/cell-multi-reference-input.st.css.js +2 -2
  130. package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
  131. package/dist/esm/components/reference/cell-reference-input.st.css.js.map +1 -1
  132. package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
  133. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
  134. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  135. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  136. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
  137. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
  138. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  139. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
  140. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
  141. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
  142. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
  143. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  144. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
  145. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  146. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
  147. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  148. package/dist/esm/components/text/text-view.st.css.js +2 -2
  149. package/dist/esm/exports/unidriver.js +1 -0
  150. package/dist/esm/exports/unidriver.js.map +1 -1
  151. package/dist/esm/exports/validations.js +1 -0
  152. package/dist/esm/exports/validations.js.map +1 -1
  153. package/dist/esm/styles.global.css +1 -1
  154. package/dist/esm/validations/field-validation-settings.js +98 -0
  155. package/dist/esm/validations/field-validation-settings.js.map +1 -0
  156. package/dist/esm/validations/field-validation-settings.spec.js +132 -0
  157. package/dist/esm/validations/field-validation-settings.spec.js.map +1 -0
  158. package/dist/types/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -1
  159. package/dist/types/components/color-view/color-view.st.css.d.ts.map +1 -1
  160. package/dist/types/components/datetime-input/date-time-input.d.ts.map +1 -1
  161. package/dist/types/components/exclamation/exclamation.st.css.d.ts.map +1 -1
  162. package/dist/types/components/field-validation-settings/field-validation-settings-input.d.ts +8 -0
  163. package/dist/types/components/field-validation-settings/field-validation-settings-input.d.ts.map +1 -0
  164. package/dist/types/components/field-validation-settings/field-validation-settings.uni.driver.d.ts +307 -0
  165. package/dist/types/components/field-validation-settings/field-validation-settings.uni.driver.d.ts.map +1 -0
  166. package/dist/types/components/field-validation-settings/index.d.ts +3 -0
  167. package/dist/types/components/field-validation-settings/index.d.ts.map +1 -0
  168. package/dist/types/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -1
  169. package/dist/types/components/image/thumbnail-replace-overlay.st.css.d.ts.map +1 -1
  170. package/dist/types/components/index.d.ts +1 -0
  171. package/dist/types/components/index.d.ts.map +1 -1
  172. package/dist/types/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
  173. package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
  174. package/dist/types/components/multi-document/cell-multi-document-edit.st.css.d.ts.map +1 -1
  175. package/dist/types/components/reference/cell-reference-input.st.css.d.ts.map +1 -1
  176. package/dist/types/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
  177. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.d.ts.map +1 -1
  178. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.d.ts.map +1 -1
  179. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
  180. package/dist/types/exports/unidriver.d.ts +1 -0
  181. package/dist/types/exports/unidriver.d.ts.map +1 -1
  182. package/dist/types/exports/validations.d.ts +1 -0
  183. package/dist/types/exports/validations.d.ts.map +1 -1
  184. package/dist/types/types/validation.d.ts +67 -1
  185. package/dist/types/types/validation.d.ts.map +1 -1
  186. package/dist/types/validations/field-validation-settings.d.ts +10 -0
  187. package/dist/types/validations/field-validation-settings.d.ts.map +1 -0
  188. package/dist/types/validations/field-validation-settings.spec.d.ts +2 -0
  189. package/dist/types/validations/field-validation-settings.spec.d.ts.map +1 -0
  190. package/package.json +6 -6
  191. package/src/__tests__/components/datetime-input/date-time-input.spec.tsx +99 -0
  192. package/src/__tests__/components/field-validation-settings/field-validation-settings-input.spec.tsx +366 -0
  193. package/src/__tests__/exports/field-validation-settings.spec.ts +27 -0
  194. package/src/components/address/input/address-input.st.css.ts +2 -2
  195. package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
  196. package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
  197. package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
  198. package/src/components/color-view/cell-color-view.st.css.ts +2 -2
  199. package/src/components/color-view/color-view.st.css.ts +2 -2
  200. package/src/components/datetime-input/date-time-input.tsx +8 -1
  201. package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
  202. package/src/components/document/form-document-field.st.css.ts +2 -2
  203. package/src/components/exclamation/exclamation.st.css.ts +2 -2
  204. package/src/components/field-validation-settings/field-validation-settings-input.tsx +384 -0
  205. package/src/components/field-validation-settings/field-validation-settings.uni.driver.ts +60 -0
  206. package/src/components/field-validation-settings/index.ts +2 -0
  207. package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
  208. package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
  209. package/src/components/index.ts +1 -0
  210. package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
  211. package/src/components/media-control/paste-url-button.st.css.ts +2 -2
  212. package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
  213. package/src/components/media-image/media-image.st.css.ts +3 -3
  214. package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
  215. package/src/components/media-loader/media-loader.st.css.ts +2 -2
  216. package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
  217. package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
  218. package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
  219. package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
  220. package/src/components/reference/cell-reference-input.st.css.ts +2 -2
  221. package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
  222. package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
  223. package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
  224. package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
  225. package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
  226. package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
  227. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
  228. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
  229. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
  230. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
  231. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
  232. package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
  233. package/src/components/text/text-view.st.css.ts +2 -2
  234. package/src/exports/unidriver.ts +1 -0
  235. package/src/exports/validations.ts +2 -0
  236. package/src/styles.global.css +1 -1
  237. package/src/types/validation.ts +77 -1
  238. package/src/validations/field-validation-settings.spec.ts +180 -0
  239. package/src/validations/field-validation-settings.ts +144 -0
@@ -1 +1 @@
1
- .addressinput1467036950__tableAddressInput{height:36px!important;margin-left:-1px;display:flex!important;align-items:center;width:100%}.addressinput1467036950__tableAddressInput>div{padding:0!important;width:100%}.addressinput1467036950__tableAddressInput:focus-within{margin-left:2px}.actionsmenu1437673280__action{margin-left:calc(var(--wds-space-100, 6px)*-1)}.formaudiofield633769055__addItem{height:120px!important;box-sizing:border-box}.formaudiofield633769055__addItem:focus-within{box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wds-color-blue-300, var(--wsr-color-B30)));border-radius:var(--wds-border-radius-400, 8px)}.formaudiofield633769055__addItem.formaudiofield633769055--disabled{pointer-events:auto!important}.formaudiofield633769055__addItem.formaudiofield633769055--error{border:1px solid var(--wds-color-red-100, var(--wsr-color-R10))!important}.formaudiofield633769055__mediaTitle{line-height:18px!important}.audioplayer1086324460__root{width:fit-content;z-index:1000;position:fixed!important;bottom:42px;right:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.cellcolorview1815702415__hashPrefix{color:var(--wsr-color-D40, #868aa5);font-size:14px;font-weight:300;line-height:1}.colorview308249970__view{width:100%}.colorview308249970__fillPreview{flex-shrink:0}.colorview308249970__view .colorview308249970__fillPreview{width:18px;height:18px;min-width:18px!important;min-height:18px!important}.deletedialog928694296__layout{max-width:510px!important}.formdocumentfield998924595__viewWrapper{border-radius:var(--wds-border-radius-300, calc(2px * 3));border:1px solid var(--wds-color-blue-300, var(--wsr-color-B30))}.formdocumentfield998924595__viewWrapper:hover{background:var(--wds-color-blue-500, var(--wsr-color-B50));cursor:pointer}.formdocumentfield998924595__textWidth{max-width:calc(100% - 196px)}.formdocumentfield998924595__documentLoader{padding-top:21px;padding-bottom:21px}.formdocumentfield998924595__addDocument{padding-top:17px!important;padding-bottom:17px!important}.formdocumentfield998924595__addDocument.formdocumentfield998924595--error{border:1px solid var(--wds-color-red-100, var(--wsr-color-R10))!important}.formdocumentfield998924595__addItemWrapper:focus-within{box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wds-color-blue-300, var(--wsr-color-B30)));border-radius:var(--wds-border-radius-400, calc(2px * 4))}.exclamation3904891972__exclamation{display:flex;justify-content:center;align-items:center;box-sizing:border-box;border-radius:3px;cursor:pointer}.exclamation3904891972__exclamation.exclamation3904891972---type-7-warning:not(.exclamation3904891972--customSize),.exclamation3904891972__exclamation.exclamation3904891972---type-5-error:not(.exclamation3904891972--customSize){width:24px;height:24px}.exclamation3904891972__exclamation.exclamation3904891972---type-7-warning{color:var(--wds-color-fill-warning-primary)}.exclamation3904891972__exclamation.exclamation3904891972---type-5-error{color:var(--wds-color-fill-destructive-primary)}.exclamation3904891972__actions{display:flex;flex-direction:column}.exclamation3904891972__action{white-space:normal!important;height:auto!important;text-align:left;gap:6px}.exclamation3904891972__action+.exclamation3904891972__action{margin-top:6px}.exclamation3904891972__action.exclamation3904891972--accented{color:var(--wds-color-blue-100)}.exclamation3904891972__action.exclamation3904891972--accented:hover{color:var(--wds-color-blue-200)}.highlightedtext974507702__root.highlightedtext974507702--highlightedBackground{animation:highlightedtext974507702__highlighted 150ms ease-out 1 forwards}.highlightedtext974507702__substring.highlightedtext974507702--isHighlighted{animation:highlightedtext974507702__highlighted-match 150ms ease-out 50ms 1 forwards}@keyframes highlightedtext974507702__highlighted{0%{background-color:transparent}to{background-color:var(--wds-color-yellow-400, var(--wsr-color-Y40))}}@keyframes highlightedtext974507702__highlighted-match{0%{background-color:transparent}to{background-color:var(--wds-color-yellow-200, var(--wsr-color-Y20))}}.thumbnailreplaceoverlay1007832735__root{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);border-radius:3px}.thumbnailreplaceoverlay1007832735__icon{color:#fff;width:18px;height:18px}.cellmediaeditshell1610593214__root{width:100%;height:100%}.pasteurlbutton2545295395__root{margin-top:6px}.pasteurlbutton2545295395__iconButtonTooltip{height:max-content}.pasteurlbutton2545295395__iconButton{width:24px;height:24px}.formmediagalleryfield943892357__container{display:flex;min-height:128px;max-height:259px}.formmediagalleryfield943892357__viewBox{display:flex;height:100%;width:100%;flex-wrap:wrap}.formmediagalleryfield943892357__addItemWrapper{height:128px;width:100%;box-sizing:border-box}.formmediagalleryfield943892357__addItem{box-sizing:border-box}.formmediagalleryfield943892357__overlay{width:initial!important;min-width:382px!important}.formmediagalleryfield943892357__image.formmediagalleryfield943892357--withMarginRight{margin-right:3px}.formmediagalleryfield943892357__image.formmediagalleryfield943892357--withMarginTop{margin-top:3px}.formmediagalleryfield943892357__previewImage{max-height:calc(100% - 12px)!important}.formmediagalleryfield943892357__previewVideo{border-radius:8px;max-width:100%;max-height:calc(100% - 12px)!important}.mediaimage3596369688__root{display:flex;align-items:center;flex-shrink:0;position:relative;box-sizing:border-box}.mediaimage3596369688__root.mediaimage3596369688--error{--mediaimage3596369688-from:calc(50% - 0.5px);--mediaimage3596369688-to:calc(50% + 0.5px);background-image:linear-gradient(to bottom right,transparent var(--mediaimage3596369688-from),var(--wds-color-red-200, var(--wsr-color-R20)) var(--mediaimage3596369688-from),var(--wds-color-red-200, var(--wsr-color-R20)) var(--mediaimage3596369688-to),transparent var(--mediaimage3596369688-to))}.mediaimage3596369688__root.mediaimage3596369688--error>*{opacity:0}.overlay3500095829__iconOverlay{position:absolute;color:var(--wds-color-white, var(--wsr-color-D80, #FFFFFF));background-color:transparent;filter:drop-shadow(0 1px 1px rgba(22,45,61,.6));-webkit-filter:drop-shadow(0 1px 1px rgba(22,45,61,.6))}.overlay3500095829__iconOverlay.overlay3500095829---size-5-small{width:20px;height:20px}.overlay3500095829__iconOverlay.overlay3500095829---size-6-medium{width:24px;height:24px}.overlay3500095829__iconOverlay.overlay3500095829---size-5-large{width:28px;height:28px}.overlay3500095829__iconOverlay.overlay3500095829---placement-7-topLeft{top:2px;left:2px}.overlay3500095829__iconOverlay.overlay3500095829---placement-10-bottomLeft{bottom:2px;left:2px}.medialoader3456751004__loader{border-radius:6px}.medialoader3456751004__loader.medialoader3456751004--isDashed{border:dashed 1px var(--wds-color-blue-300, var(--wsr-color-B30))}.medialoader3456751004__loader.medialoader3456751004--isSolid{border:solid 1px var(--wds-color-blue-300, var(--wsr-color-B30))}.mediatag3628261028__root{box-sizing:border-box;padding:3px 6px 3px 3px;border-radius:3px;max-height:24px;min-width:54px;max-width:100%;background-color:var(--wds-color-blue-400, var(--wsr-color-B40))}.cellmultidocumentedit3606037231__chipTrigger{display:flex;align-items:center;min-width:0;max-width:100%;margin:0;padding:0;border:0;background:0 0;font:inherit;color:inherit;text-align:inherit;cursor:pointer}.formmultidocument3989810136__viewRoot{border-radius:var(--wds-border-radius-300, calc(2px * 3));border:1px solid var(--wds-color-blue-300, var(--wsr-color-B30))}.formmultidocument3989810136__singleViewWrapper{border-radius:0;border-bottom:1px solid var(--wds-color-neutral-600, var(--wsr-color-D60));background-color:transparent!important}.formmultidocument3989810136__viewRoot>div:first-child .formmultidocument3989810136__singleViewWrapper{border-top-left-radius:var(--wds-border-radius-300, calc(2px * 3));border-top-right-radius:var(--wds-border-radius-300, calc(2px * 3))}.formmultidocument3989810136__singleViewWrapper:hover{background-color:var(--wds-color-blue-500, var(--wsr-color-B50))!important}.formmultidocument3989810136__singleViewWrapper:focus-visible{border-bottom:1px solid transparent;position:relative;z-index:1}.formmultidocument3989810136__addDocumentButton{border-bottom-left-radius:var(--wds-border-radius-300, calc(2px * 3));border-bottom-right-radius:var(--wds-border-radius-300, calc(2px * 3))}.formmultidocument3989810136__addDocumentButton:focus-within{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--wds-border-radius-300, calc(2px * 3));border-bottom-right-radius:var(--wds-border-radius-300, calc(2px * 3))}.cellmultireferenceinput2310972552__root{width:100%;box-sizing:border-box;--wds-input-border-color:transparent;--wds-input-border-color-hover:transparent;--wds-input-border-color-focus:transparent;--wds-input-background-fill-default:transparent;--wds-input-background-fill-hover:transparent;--wds-input-shadow-focus-standard:0 0 0 0 transparent}.cellreferenceinput1662214302__root{width:100%;height:100%;display:flex;align-items:center}.cellreferenceinput1662214302__autocomplete{width:100%}.richcontentdefaultvalueinput3473905829__richContentEditorContainer .richcontentdefaultvalueinput3473905829__editor{max-height:calc(40vh - var(--topToolbarHeight) - var(--bottomToolbarHeight))}.richcontentforminput2668892286__root{outline:0;box-sizing:border-box;border:1px solid var(--wds-input-border-color, var(--wsr-color-B40, #D6E6FE));border-radius:var(--wds-input-border-radius-default-medium, var(--wsr-border-radius-06, 6px))}.richcontentforminput2668892286__root:focus-within{border:1px solid var(--wds-input-border-color-focus, var(--wsr-color-B10, #116DFF));box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wsr-color-F00, #A6D0FF))}.richcontentforminput2668892286__root .richcontentforminput2668892286__editor{overflow-y:auto;max-height:calc(80vh - var(--topToolbarHeight) - var(--bottomToolbarHeight))}.richcontentformreadonlyinput3792393405__root{outline:0;box-sizing:border-box;border:1px solid var(--wds-color-black-600);border-radius:var(--wds-border-radius-300)}.richcontentformreadonlyinput3792393405__root:focus-within{border:1px solid var(--wds-color-blue-100);box-shadow:var(--wds-input-shadow-focus-standard)}.fullscreenmodal1674296647__modalContent{display:flex;flex-direction:column;position:relative;height:100%;width:782px;background-color:var(--wds-color-white, var(--wsr-color-D80, #ffffff));border-radius:var(--wds-border-radius-300, var(--wsr-border-radius-06, 6px));margin-top:24px}.publishloader3110481810__publishLoader{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--wds-color-white);z-index:5000;border-radius:inherit}.togglefullscreenbutton4161969240__root{z-index:5;box-sizing:border-box;position:absolute;right:0;top:calc(50% - 16px)!important;padding-right:3px}.togglefullscreenbutton4161969240__root button{border-radius:6px!important}.richcontenteditor4216908418__root{position:relative;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)}.richcontenteditor4216908418__root,.richcontenteditor4216908418__toolbarContainer,.richcontenteditor4216908418__footerToolbarContainer{width:100%;box-sizing:border-box}.richcontenteditor4216908418__toolbarContainer div{box-sizing:border-box}.richcontenteditor4216908418__toolbarAndFullScreenButtonWrapper{display:flex;position:relative}.richcontenteditor4216908418__editor{box-sizing:border-box;padding:36px 24px 36px 55px}.richcontenteditor4216908418__modalEditor{display:flex;flex-direction:column;flex:1;height:100%}.richcontenteditor4216908418__modalEditor .richcontenteditor4216908418__editor{overflow-y:auto;flex:1;min-width:592px;box-sizing:border-box}.richcontenteditor4216908418__modalEditor .richcontenteditor4216908418__footerToolbarContainer{margin-top:9px}.richcontenteditor4216908418__toolbarContainer button[data-hook~=text-button-headings]>span{display:inline-flex;padding-inline-end:3px!important}.richcontenteditor4216908418__toolbarContainer button[data-hook~=text-button-ai]>span{padding-inline-end:9px!important}.richcontenttoolbar4246547327__toolbar{border-top:1px solid rgba(51,51,51,.1);z-index:2;margin-right:auto;padding-left:6px;margin-left:auto;position:relative;height:40px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box}.richcontenttoolbar4246547327__toolbarButton{line-height:40px;background:0 0;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:0 5px 0 0}.richcontenttoolbar4246547327__toolbarButton:disabled{color:graytext}.richcontenttoolbar4246547327__separator{width:1px;height:20px;margin:0 8px 0 3px;background:rgba(51,51,51,.1)}.richcontenttoolbar4246547327__toolbar label{padding:0 8px}.richcontentviewer3380050676__root{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:36px}.richcontentviewer3380050676__root.richcontentviewer3380050676--isFullScreen{padding:12px 24px}.richcontentviewer3380050676__root:not(.richcontentviewer3380050676--isFullScreen){padding:6px 24px 6px 12px}.richcontentviewer3380050676__root ToggleButton{margin:0;padding:0;border:0;position:absolute;top:2px!important;right:2px;width:30px;height:30px}.richcontentviewer3380050676__viewer{height:calc(100% - 36px);width:100%}.richcontentviewer3380050676__modalViewer{min-width:592px;overflow:auto}.richtexteditor2939435573__root{width:100%;box-sizing:border-box;outline:0;overflow:hidden;border-radius:var(--wds-input-border-radius-default-medium, var(--wsr-border-radius-06, 6px))}.richtexteditor2939435573__root.richtexteditor2939435573---border-4-none{border:0}.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard{border:1px solid var(--wds-input-border-color, var(--wsr-color-B40, #D6E6FE))}.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard:focus,.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard:focus-within{border:1px solid var(--wds-input-border-color-focus, var(--wsr-color-B10, #116DFF));box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wsr-color-F00, #A6D0FF))}.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard.richtexteditor2939435573---status-5-error{border:1px solid var(--wds-color-border-destructive-secondary-active, var(--wsr-color-R10, #E62214))}.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard.richtexteditor2939435573---status-5-error:focus,.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard.richtexteditor2939435573---status-5-error:focus-within{border:1px solid var(--wds-color-border-destructive-secondary-active, var(--wsr-color-R10, #E62214));box-shadow:var(--wds-input-shadow-focus-destructive, 0 0 0 3px var(--wsr-color-R40, #FBD0CD))}.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard.richtexteditor2939435573---status-7-warning{border:1px solid var(--wds-color-border-warning-secondary-active, var(--wsr-color-Y10, #FFB700))}.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard.richtexteditor2939435573---status-7-warning:focus,.richtexteditor2939435573__root.richtexteditor2939435573---border-8-standard.richtexteditor2939435573---status-7-warning:focus-within{border:1px solid var(--wds-color-border-warning-secondary-active, var(--wsr-color-Y10, #FFB700));box-shadow:var(--wds-input-shadow-focus-warning, 0 0 0 3px var(--wsr-color-Y40, #FFE2A5))}.richtexteditor2939435573__nativeInput{position:absolute;opacity:0;padding:0;margin:0;border:0;width:0;height:0}.richtexteditor2939435573__editor{height:auto;line-height:auto;display:flex;width:100%;height:100%;min-height:234px;overflow:hidden;box-sizing:border-box;flex-direction:row;border-radius:var(--wds-input-border-radius-default-medium, var(--wsr-border-radius-06, 6px))}.richtexteditor2939435573__editor.richtexteditor2939435573--isFullScreen{max-width:782px;min-width:582px;background:var(--wds-color-black-700)}.richtexteditor2939435573__editor:not(.richtexteditor2939435573--isFullScreen){max-height:80vh}.richtexteditor2939435573__editor>div{flex:1;max-width:100%}.toolbar923205087__root{padding:12px 18px;display:flex;border-bottom:1px solid var(--wds-color-blue-400, var(--wsr-color-B40, #d6dcff));background:var(--wds-color-white, var(--wsr-color-D80, #ffffff));align-items:center}.toolbar923205087__item{display:flex;margin-right:12px}.toolbar923205087__item svg,.toolbar923205087__item svg path,.toolbar923205087__item svg text{color:inherit;fill:currentColor}.toolbar923205087__separator{display:inline-flex;margin-right:12px;border-left:1px solid #ddd;align-self:stretch}.toolbar923205087__clearFormatting{margin-left:auto}.toolbar923205087__fullScreen{margin-right:0}.toolbar923205087__dropdownItemContent{height:36px;width:100%;display:flex;gap:12px;justify-content:space-between;align-items:center}.toolbar923205087__dropdownItemContent.toolbar923205087--selected .toolbar923205087__dropdownItemTitle,.toolbar923205087__dropdownItemContent.toolbar923205087--selected .toolbar923205087__dropdownItemSubtitle{color:var(--wds-color-white)!important}.toolbar923205087__dropdownItemSubtitle{color:var(--wds-color-black-400)!important;padding-right:12px;flex-shrink:0}.toolbar923205087__dropdownHeaderOne{font-weight:var(--wds-font-weight-bold)!important;font-size:36px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, var(--wsr-font-family, Madefor))!important}.toolbar923205087__dropdownHeaderTwo{font-weight:var(--wds-font-weight-bold)!important;font-size:32px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownHeaderThree{font-weight:var(--wds-font-weight-medium)!important;font-size:28px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownHeaderFour{font-weight:var(--wds-font-weight-bold)!important;font-size:24px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownHeaderFive{font-weight:var(--wds-font-weight-bold)!important;font-size:22px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownHeaderSix{font-weight:var(--wds-font-weight-medium)!important;font-size:20px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownParagraphOne{font-weight:var(--wds-font-weight-medium)!important;font-size:18px!important;line-height:1.33!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownNormalText{font-weight:var(--wds-font-weight-medium)!important;font-size:var(--wds-font-size-500)!important;line-height:var(--wds-font-line-height-300)!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar923205087__dropdownParagraphThree{font-weight:var(--wds-font-weight-medium)!important;font-size:14px!important;line-height:1.29!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.textview510973241__textView::after{content:"";display:block}.richeditor3674085435__root{display:flex;flex-direction:column;font-weight:var(--wds-font-weight-medium, 500);font-size:var(--wds-font-size-500);line-height:var(--wds-font-line-height-300);font-family:var(--wds-font-family-default, var(--wsr-font-family, Madefor))}.richeditor3674085435__editor{box-sizing:border-box;overflow:auto;display:flex;flex-direction:column;flex:1;cursor:text;color:var(--wds-color-black-100, var(--wsr-color-D10, #131720));background:var(--wds-color-black-700, var(--wsr-color-D70, #edeef2))}.richeditor3674085435__editor .DraftEditor-root{width:100%;height:100%}.richeditor3674085435__editor .DraftEditor-root [data-contents]{overflow:auto}.richeditor3674085435__editor .DraftEditor-editorContainer{display:flex;min-height:100%;background:#fff}.richeditor3674085435__editor .public-DraftEditor-content{padding:12px 24px 24px;min-height:100%;width:100%;box-sizing:border-box}.richeditor3674085435__editor .public-DraftEditor-content ol,.richeditor3674085435__editor .public-DraftEditor-content ul{display:flex;flex-direction:column;padding:0}.richeditor3674085435__editor .public-DraftEditor-content a,.richeditor3674085435__editor .public-DraftEditor-content a:visited{color:inherit;text-decoration:none}.richeditor3674085435__header-one:not(li),.richeditor3674085435__header-two:not(li),.richeditor3674085435__header-three:not(li),.richeditor3674085435__header-four:not(li),.richeditor3674085435__header-five:not(li),.richeditor3674085435__header-six:not(li){margin-block:0;margin:0}.richeditor3674085435__header-one,.richeditor3674085435__editor li.richeditor3674085435__header-one .public-DraftStyleDefault-block{font:var(--rt-h1-fontStyle, normal) var(--rt-h1-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h1-fontSize, 72px)/var(--rt-h1-lineHeight, 1.33) var(--rt-h1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__header-two,.richeditor3674085435__editor li.richeditor3674085435__header-two .public-DraftStyleDefault-block{font:var(--rt-h2-fontStyle, normal) var(--rt-h2-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h2-fontSize, 42px)/var(--rt-h2-lineHeight, 1.2) var(--rt-h2-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__header-three,.richeditor3674085435__editor li.richeditor3674085435__header-three .public-DraftStyleDefault-block{font:var(--rt-h3-fontStyle, normal) var(--rt-h3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h3-fontSize, 38px)/var(--rt-h3-lineHeight, 1.2) var(--rt-h3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__header-four,.richeditor3674085435__editor li.richeditor3674085435__header-four .public-DraftStyleDefault-block{font:var(--rt-h4-fontStyle, normal) var(--rt-h4-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h4-fontSize, 34px)/var(--rt-h4-lineHeight, 1.2) var(--rt-h4-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__header-five,.richeditor3674085435__editor li.richeditor3674085435__header-five .public-DraftStyleDefault-block{font:var(--rt-h5-fontStyle, normal) var(--rt-h5-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h5-fontSize, 28px)/var(--rt-h5-lineHeight, 1.2) var(--rt-h5-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__header-six,.richeditor3674085435__editor li.richeditor3674085435__header-six .public-DraftStyleDefault-block{font:var(--rt-h6-fontStyle, normal) var(--rt-h6-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h6-fontSize, 22px)/var(--rt-h6-lineHeight, 1.2) var(--rt-h6-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__paragraph-one,.richeditor3674085435__editor li.richeditor3674085435__paragraph-one .public-DraftStyleDefault-block{font:var(--rt-p1-fontStyle, normal) var(--rt-p1-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p1-fontSize, 18px)/var(--rt-p1-lineHeight, 24px) var(--rt-p1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__unstyled,.richeditor3674085435__editor li.richeditor3674085435__unstyled .public-DraftStyleDefault-block{font:var(--rt-unstyled-fontStyle, normal) var(--rt-unstyled-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-unstyled-fontSize, 16px)/var(--rt-unstyled-lineHeight, 24px) var(--rt-unstyled-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__paragraph-three,.richeditor3674085435__editor li.richeditor3674085435__paragraph-three .public-DraftStyleDefault-block{font:var(--rt-p3-fontStyle, normal) var(--rt-p3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p3-fontSize, 14px)/var(--rt-p3-lineHeight, 18px) var(--rt-p3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-one:first-child~li{font:var(--rt-h1-fontStyle, normal) var(--rt-h1-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h1-fontSize, 72px)/var(--rt-h1-lineHeight, 1.33) var(--rt-h1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-one:first-child~li::marker{line-height:var(--rt-h1-fontSize, 72px)}.richeditor3674085435__editor li.richeditor3674085435__header-two:first-child~li{font:var(--rt-h2-fontStyle, normal) var(--rt-h2-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h2-fontSize, 42px)/var(--rt-h2-lineHeight, 1.2) var(--rt-h2-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-two:first-child~li::marker{line-height:var(--rt-h2-fontSize, 42px)}.richeditor3674085435__editor li.richeditor3674085435__header-three:first-child~li{font:var(--rt-h3-fontStyle, normal) var(--rt-h3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h3-fontSize, 38px)/var(--rt-h3-lineHeight, 1.2) var(--rt-h3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-three:first-child~li::marker{line-height:var(--rt-h3-fontSize, 38px)}.richeditor3674085435__editor li.richeditor3674085435__header-four:first-child~li{font:var(--rt-h4-fontStyle, normal) var(--rt-h4-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h4-fontSize, 34px)/var(--rt-h4-lineHeight, 1.2) var(--rt-h4-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-four:first-child~li::marker{line-height:var(--rt-h4-fontSize, 34px)}.richeditor3674085435__editor li.richeditor3674085435__header-five:first-child~li{font:var(--rt-h5-fontStyle, normal) var(--rt-h5-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h5-fontSize, 28px)/var(--rt-h5-lineHeight, 1.2) var(--rt-h5-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-five:first-child~li::marker{line-height:var(--rt-h5-fontSize, 28px)}.richeditor3674085435__editor li.richeditor3674085435__header-six:first-child~li{font:var(--rt-h6-fontStyle, normal) var(--rt-h6-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h6-fontSize, 22px)/var(--rt-h6-lineHeight, 1.2) var(--rt-h6-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__header-six:first-child~li::marker{line-height:var(--rt-h6-fontSize, 22px)}.richeditor3674085435__editor li.richeditor3674085435__paragraph-one:first-child~li{font:var(--rt-p1-fontStyle, normal) var(--rt-p1-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p1-fontSize, 18px)/var(--rt-p1-lineHeight, 24px) var(--rt-p1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__unstyled:first-child~li{font:var(--rt-unstyled-fontStyle, normal) var(--rt-unstyled-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-unstyled-fontSize, 16px)/var(--rt-unstyled-lineHeight, 24px) var(--rt-unstyled-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor3674085435__editor li.richeditor3674085435__paragraph-three:first-child~li{font:var(--rt-p3-fontStyle, normal) var(--rt-p3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p3-fontSize, 14px)/var(--rt-p3-lineHeight, 18px) var(--rt-p3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth0{margin-inline-start:2ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth1{margin-inline-start:4ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth2{margin-inline-start:6ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth3{margin-inline-start:8ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth4{margin-inline-start:10ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth0:first-child{margin-inline-start:2ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0{margin-inline-start:2ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0:nth-child(n+10){margin-inline-start:3ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0:nth-child(n+100){margin-inline-start:4ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0:nth-child(n+1000){margin-inline-start:5ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth1:first-child{margin-inline-start:4ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1{margin-inline-start:4ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1:nth-child(n+10){margin-inline-start:5ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1:nth-child(n+100){margin-inline-start:6ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1:nth-child(n+1000){margin-inline-start:7ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth2:first-child{margin-inline-start:6ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2{margin-inline-start:6ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2:nth-child(n+10){margin-inline-start:7ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2:nth-child(n+100){margin-inline-start:8ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2:nth-child(n+1000){margin-inline-start:9ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth3:first-child{margin-inline-start:8ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3{margin-inline-start:8ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3:nth-child(n+10){margin-inline-start:9ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3:nth-child(n+100){margin-inline-start:10ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3:nth-child(n+1000){margin-inline-start:11ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth4:first-child{margin-inline-start:10ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4{margin-inline-start:10ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4:nth-child(n+10){margin-inline-start:11ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4:nth-child(n+100){margin-inline-start:12ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4:nth-child(n+1000){margin-inline-start:13ch}.richeditor3674085435__align-left{text-align:left;align-self:flex-start}.richeditor3674085435__align-right{text-align:right;align-self:flex-end}.richeditor3674085435__align-center{text-align:center;align-self:center}.richeditor3674085435__align-justify{text-align:justify;align-self:stretch}.richeditor3674085435__withMargin{display:inline-block}.richeditor3674085435__dir-rtl,.richeditor3674085435__editor .public-DraftStyleDefault-rtl{direction:rtl}.richeditor3674085435__editor .public-DraftStyleDefault-listRTL{direction:rtl;text-align:right;max-width:100%}
1
+ .addressinput1375149515__tableAddressInput{height:36px!important;margin-left:-1px;display:flex!important;align-items:center;width:100%}.addressinput1375149515__tableAddressInput>div{padding:0!important;width:100%}.addressinput1375149515__tableAddressInput:focus-within{margin-left:2px}.actionsmenu3707053799__action{margin-left:calc(var(--wds-space-100, 6px)*-1)}.formaudiofield1598691903__addItem{height:120px!important;box-sizing:border-box}.formaudiofield1598691903__addItem:focus-within{box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wds-color-blue-300, var(--wsr-color-B30)));border-radius:var(--wds-border-radius-400, 8px)}.formaudiofield1598691903__addItem.formaudiofield1598691903--disabled{pointer-events:auto!important}.formaudiofield1598691903__addItem.formaudiofield1598691903--error{border:1px solid var(--wds-color-red-100, var(--wsr-color-R10))!important}.formaudiofield1598691903__mediaTitle{line-height:18px!important}.audioplayer1627877349__root{width:fit-content;z-index:1000;position:fixed!important;bottom:42px;right:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.cellcolorview3348088318__hashPrefix{color:var(--wsr-color-D40, #868aa5);font-size:14px;font-weight:300;line-height:1}.colorview2640372915__view{width:100%}.colorview2640372915__fillPreview{flex-shrink:0}.colorview2640372915__view .colorview2640372915__fillPreview{width:18px;height:18px;min-width:18px!important;min-height:18px!important}.deletedialog591839243__layout{max-width:510px!important}.formdocumentfield125589374__viewWrapper{border-radius:var(--wds-border-radius-300, calc(2px * 3));border:1px solid var(--wds-color-blue-300, var(--wsr-color-B30))}.formdocumentfield125589374__viewWrapper:hover{background:var(--wds-color-blue-500, var(--wsr-color-B50));cursor:pointer}.formdocumentfield125589374__textWidth{max-width:calc(100% - 196px)}.formdocumentfield125589374__documentLoader{padding-top:21px;padding-bottom:21px}.formdocumentfield125589374__addDocument{padding-top:17px!important;padding-bottom:17px!important}.formdocumentfield125589374__addDocument.formdocumentfield125589374--error{border:1px solid var(--wds-color-red-100, var(--wsr-color-R10))!important}.formdocumentfield125589374__addItemWrapper:focus-within{box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wds-color-blue-300, var(--wsr-color-B30)));border-radius:var(--wds-border-radius-400, calc(2px * 4))}.exclamation107353727__exclamation{display:flex;justify-content:center;align-items:center;box-sizing:border-box;border-radius:3px;cursor:pointer}.exclamation107353727__exclamation.exclamation107353727---type-7-warning:not(.exclamation107353727--customSize),.exclamation107353727__exclamation.exclamation107353727---type-5-error:not(.exclamation107353727--customSize){width:24px;height:24px}.exclamation107353727__exclamation.exclamation107353727---type-7-warning{color:var(--wds-color-fill-warning-primary)}.exclamation107353727__exclamation.exclamation107353727---type-5-error{color:var(--wds-color-fill-destructive-primary)}.exclamation107353727__actions{display:flex;flex-direction:column}.exclamation107353727__action{white-space:normal!important;height:auto!important;text-align:left;gap:6px}.exclamation107353727__action+.exclamation107353727__action{margin-top:6px}.exclamation107353727__action.exclamation107353727--accented{color:var(--wds-color-blue-100)}.exclamation107353727__action.exclamation107353727--accented:hover{color:var(--wds-color-blue-200)}.highlightedtext1316333891__root.highlightedtext1316333891--highlightedBackground{animation:highlightedtext1316333891__highlighted 150ms ease-out 1 forwards}.highlightedtext1316333891__substring.highlightedtext1316333891--isHighlighted{animation:highlightedtext1316333891__highlighted-match 150ms ease-out 50ms 1 forwards}@keyframes highlightedtext1316333891__highlighted{0%{background-color:transparent}to{background-color:var(--wds-color-yellow-400, var(--wsr-color-Y40))}}@keyframes highlightedtext1316333891__highlighted-match{0%{background-color:transparent}to{background-color:var(--wds-color-yellow-200, var(--wsr-color-Y20))}}.thumbnailreplaceoverlay476914298__root{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);border-radius:3px}.thumbnailreplaceoverlay476914298__icon{color:#fff;width:18px;height:18px}.cellmediaeditshell2329680740__root{width:100%;height:100%}.pasteurlbutton8757955__root{margin-top:6px}.pasteurlbutton8757955__iconButtonTooltip{height:max-content}.pasteurlbutton8757955__iconButton{width:24px;height:24px}.formmediagalleryfield466140145__container{display:flex;min-height:128px;max-height:259px}.formmediagalleryfield466140145__viewBox{display:flex;height:100%;width:100%;flex-wrap:wrap}.formmediagalleryfield466140145__addItemWrapper{height:128px;width:100%;box-sizing:border-box}.formmediagalleryfield466140145__addItem{box-sizing:border-box}.formmediagalleryfield466140145__overlay{width:initial!important;min-width:382px!important}.formmediagalleryfield466140145__image.formmediagalleryfield466140145--withMarginRight{margin-right:3px}.formmediagalleryfield466140145__image.formmediagalleryfield466140145--withMarginTop{margin-top:3px}.formmediagalleryfield466140145__previewImage{max-height:calc(100% - 12px)!important}.formmediagalleryfield466140145__previewVideo{border-radius:8px;max-width:100%;max-height:calc(100% - 12px)!important}.mediaimage3136155830__root{display:flex;align-items:center;flex-shrink:0;position:relative;box-sizing:border-box}.mediaimage3136155830__root.mediaimage3136155830--error{--mediaimage3136155830-from:calc(50% - 0.5px);--mediaimage3136155830-to:calc(50% + 0.5px);background-image:linear-gradient(to bottom right,transparent var(--mediaimage3136155830-from),var(--wds-color-red-200, var(--wsr-color-R20)) var(--mediaimage3136155830-from),var(--wds-color-red-200, var(--wsr-color-R20)) var(--mediaimage3136155830-to),transparent var(--mediaimage3136155830-to))}.mediaimage3136155830__root.mediaimage3136155830--error>*{opacity:0}.overlay929412153__iconOverlay{position:absolute;color:var(--wds-color-white, var(--wsr-color-D80, #FFFFFF));background-color:transparent;filter:drop-shadow(0 1px 1px rgba(22,45,61,.6));-webkit-filter:drop-shadow(0 1px 1px rgba(22,45,61,.6))}.overlay929412153__iconOverlay.overlay929412153---size-5-small{width:20px;height:20px}.overlay929412153__iconOverlay.overlay929412153---size-6-medium{width:24px;height:24px}.overlay929412153__iconOverlay.overlay929412153---size-5-large{width:28px;height:28px}.overlay929412153__iconOverlay.overlay929412153---placement-7-topLeft{top:2px;left:2px}.overlay929412153__iconOverlay.overlay929412153---placement-10-bottomLeft{bottom:2px;left:2px}.medialoader3943402091__loader{border-radius:6px}.medialoader3943402091__loader.medialoader3943402091--isDashed{border:dashed 1px var(--wds-color-blue-300, var(--wsr-color-B30))}.medialoader3943402091__loader.medialoader3943402091--isSolid{border:solid 1px var(--wds-color-blue-300, var(--wsr-color-B30))}.mediatag1858236787__root{box-sizing:border-box;padding:3px 6px 3px 3px;border-radius:3px;max-height:24px;min-width:54px;max-width:100%;background-color:var(--wds-color-blue-400, var(--wsr-color-B40))}.cellmultidocumentedit837926089__chipTrigger{display:flex;align-items:center;min-width:0;max-width:100%;margin:0;padding:0;border:0;background:0 0;font:inherit;color:inherit;text-align:inherit;cursor:pointer}.formmultidocument2239173731__viewRoot{border-radius:var(--wds-border-radius-300, calc(2px * 3));border:1px solid var(--wds-color-blue-300, var(--wsr-color-B30))}.formmultidocument2239173731__singleViewWrapper{border-radius:0;border-bottom:1px solid var(--wds-color-neutral-600, var(--wsr-color-D60));background-color:transparent!important}.formmultidocument2239173731__viewRoot>div:first-child .formmultidocument2239173731__singleViewWrapper{border-top-left-radius:var(--wds-border-radius-300, calc(2px * 3));border-top-right-radius:var(--wds-border-radius-300, calc(2px * 3))}.formmultidocument2239173731__singleViewWrapper:hover{background-color:var(--wds-color-blue-500, var(--wsr-color-B50))!important}.formmultidocument2239173731__singleViewWrapper:focus-visible{border-bottom:1px solid transparent;position:relative;z-index:1}.formmultidocument2239173731__addDocumentButton{border-bottom-left-radius:var(--wds-border-radius-300, calc(2px * 3));border-bottom-right-radius:var(--wds-border-radius-300, calc(2px * 3))}.formmultidocument2239173731__addDocumentButton:focus-within{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--wds-border-radius-300, calc(2px * 3));border-bottom-right-radius:var(--wds-border-radius-300, calc(2px * 3))}.cellmultireferenceinput1250892502__root{width:100%;box-sizing:border-box;--wds-input-border-color:transparent;--wds-input-border-color-hover:transparent;--wds-input-border-color-focus:transparent;--wds-input-background-fill-default:transparent;--wds-input-background-fill-hover:transparent;--wds-input-shadow-focus-standard:0 0 0 0 transparent}.cellreferenceinput720776509__root{width:100%;height:100%;display:flex;align-items:center}.cellreferenceinput720776509__autocomplete{width:100%}.richcontentdefaultvalueinput1140021856__richContentEditorContainer .richcontentdefaultvalueinput1140021856__editor{max-height:calc(40vh - var(--topToolbarHeight) - var(--bottomToolbarHeight))}.richcontentforminput220691737__root{outline:0;box-sizing:border-box;border:1px solid var(--wds-input-border-color, var(--wsr-color-B40, #D6E6FE));border-radius:var(--wds-input-border-radius-default-medium, var(--wsr-border-radius-06, 6px))}.richcontentforminput220691737__root:focus-within{border:1px solid var(--wds-input-border-color-focus, var(--wsr-color-B10, #116DFF));box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wsr-color-F00, #A6D0FF))}.richcontentforminput220691737__root .richcontentforminput220691737__editor{overflow-y:auto;max-height:calc(80vh - var(--topToolbarHeight) - var(--bottomToolbarHeight))}.richcontentformreadonlyinput3634540621__root{outline:0;box-sizing:border-box;border:1px solid var(--wds-color-black-600);border-radius:var(--wds-border-radius-300)}.richcontentformreadonlyinput3634540621__root:focus-within{border:1px solid var(--wds-color-blue-100);box-shadow:var(--wds-input-shadow-focus-standard)}.fullscreenmodal1271704472__modalContent{display:flex;flex-direction:column;position:relative;height:100%;width:782px;background-color:var(--wds-color-white, var(--wsr-color-D80, #ffffff));border-radius:var(--wds-border-radius-300, var(--wsr-border-radius-06, 6px));margin-top:24px}.publishloader4081695798__publishLoader{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--wds-color-white);z-index:5000;border-radius:inherit}.togglefullscreenbutton3614480925__root{z-index:5;box-sizing:border-box;position:absolute;right:0;top:calc(50% - 16px)!important;padding-right:3px}.togglefullscreenbutton3614480925__root button{border-radius:6px!important}.richcontenteditor3438875334__root{position:relative;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)}.richcontenteditor3438875334__root,.richcontenteditor3438875334__toolbarContainer,.richcontenteditor3438875334__footerToolbarContainer{width:100%;box-sizing:border-box}.richcontenteditor3438875334__toolbarContainer div{box-sizing:border-box}.richcontenteditor3438875334__toolbarAndFullScreenButtonWrapper{display:flex;position:relative}.richcontenteditor3438875334__editor{box-sizing:border-box;padding:36px 24px 36px 55px}.richcontenteditor3438875334__modalEditor{display:flex;flex-direction:column;flex:1;height:100%}.richcontenteditor3438875334__modalEditor .richcontenteditor3438875334__editor{overflow-y:auto;flex:1;min-width:592px;box-sizing:border-box}.richcontenteditor3438875334__modalEditor .richcontenteditor3438875334__footerToolbarContainer{margin-top:9px}.richcontenteditor3438875334__toolbarContainer button[data-hook~=text-button-headings]>span{display:inline-flex;padding-inline-end:3px!important}.richcontenteditor3438875334__toolbarContainer button[data-hook~=text-button-ai]>span{padding-inline-end:9px!important}.richcontenttoolbar1684532750__toolbar{border-top:1px solid rgba(51,51,51,.1);z-index:2;margin-right:auto;padding-left:6px;margin-left:auto;position:relative;height:40px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box}.richcontenttoolbar1684532750__toolbarButton{line-height:40px;background:0 0;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:0 5px 0 0}.richcontenttoolbar1684532750__toolbarButton:disabled{color:graytext}.richcontenttoolbar1684532750__separator{width:1px;height:20px;margin:0 8px 0 3px;background:rgba(51,51,51,.1)}.richcontenttoolbar1684532750__toolbar label{padding:0 8px}.richcontentviewer2057557000__root{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:36px}.richcontentviewer2057557000__root.richcontentviewer2057557000--isFullScreen{padding:12px 24px}.richcontentviewer2057557000__root:not(.richcontentviewer2057557000--isFullScreen){padding:6px 24px 6px 12px}.richcontentviewer2057557000__root ToggleButton{margin:0;padding:0;border:0;position:absolute;top:2px!important;right:2px;width:30px;height:30px}.richcontentviewer2057557000__viewer{height:calc(100% - 36px);width:100%}.richcontentviewer2057557000__modalViewer{min-width:592px;overflow:auto}.richtexteditor633349545__root{width:100%;box-sizing:border-box;outline:0;overflow:hidden;border-radius:var(--wds-input-border-radius-default-medium, var(--wsr-border-radius-06, 6px))}.richtexteditor633349545__root.richtexteditor633349545---border-4-none{border:0}.richtexteditor633349545__root.richtexteditor633349545---border-8-standard{border:1px solid var(--wds-input-border-color, var(--wsr-color-B40, #D6E6FE))}.richtexteditor633349545__root.richtexteditor633349545---border-8-standard:focus,.richtexteditor633349545__root.richtexteditor633349545---border-8-standard:focus-within{border:1px solid var(--wds-input-border-color-focus, var(--wsr-color-B10, #116DFF));box-shadow:var(--wds-input-shadow-focus-standard, 0 0 0 3px var(--wsr-color-F00, #A6D0FF))}.richtexteditor633349545__root.richtexteditor633349545---border-8-standard.richtexteditor633349545---status-5-error{border:1px solid var(--wds-color-border-destructive-secondary-active, var(--wsr-color-R10, #E62214))}.richtexteditor633349545__root.richtexteditor633349545---border-8-standard.richtexteditor633349545---status-5-error:focus,.richtexteditor633349545__root.richtexteditor633349545---border-8-standard.richtexteditor633349545---status-5-error:focus-within{border:1px solid var(--wds-color-border-destructive-secondary-active, var(--wsr-color-R10, #E62214));box-shadow:var(--wds-input-shadow-focus-destructive, 0 0 0 3px var(--wsr-color-R40, #FBD0CD))}.richtexteditor633349545__root.richtexteditor633349545---border-8-standard.richtexteditor633349545---status-7-warning{border:1px solid var(--wds-color-border-warning-secondary-active, var(--wsr-color-Y10, #FFB700))}.richtexteditor633349545__root.richtexteditor633349545---border-8-standard.richtexteditor633349545---status-7-warning:focus,.richtexteditor633349545__root.richtexteditor633349545---border-8-standard.richtexteditor633349545---status-7-warning:focus-within{border:1px solid var(--wds-color-border-warning-secondary-active, var(--wsr-color-Y10, #FFB700));box-shadow:var(--wds-input-shadow-focus-warning, 0 0 0 3px var(--wsr-color-Y40, #FFE2A5))}.richtexteditor633349545__nativeInput{position:absolute;opacity:0;padding:0;margin:0;border:0;width:0;height:0}.richtexteditor633349545__editor{height:auto;line-height:auto;display:flex;width:100%;height:100%;min-height:234px;overflow:hidden;box-sizing:border-box;flex-direction:row;border-radius:var(--wds-input-border-radius-default-medium, var(--wsr-border-radius-06, 6px))}.richtexteditor633349545__editor.richtexteditor633349545--isFullScreen{max-width:782px;min-width:582px;background:var(--wds-color-black-700)}.richtexteditor633349545__editor:not(.richtexteditor633349545--isFullScreen){max-height:80vh}.richtexteditor633349545__editor>div{flex:1;max-width:100%}.toolbar23812805__root{padding:12px 18px;display:flex;border-bottom:1px solid var(--wds-color-blue-400, var(--wsr-color-B40, #d6dcff));background:var(--wds-color-white, var(--wsr-color-D80, #ffffff));align-items:center}.toolbar23812805__item{display:flex;margin-right:12px}.toolbar23812805__item svg,.toolbar23812805__item svg path,.toolbar23812805__item svg text{color:inherit;fill:currentColor}.toolbar23812805__separator{display:inline-flex;margin-right:12px;border-left:1px solid #ddd;align-self:stretch}.toolbar23812805__clearFormatting{margin-left:auto}.toolbar23812805__fullScreen{margin-right:0}.toolbar23812805__dropdownItemContent{height:36px;width:100%;display:flex;gap:12px;justify-content:space-between;align-items:center}.toolbar23812805__dropdownItemContent.toolbar23812805--selected .toolbar23812805__dropdownItemTitle,.toolbar23812805__dropdownItemContent.toolbar23812805--selected .toolbar23812805__dropdownItemSubtitle{color:var(--wds-color-white)!important}.toolbar23812805__dropdownItemSubtitle{color:var(--wds-color-black-400)!important;padding-right:12px;flex-shrink:0}.toolbar23812805__dropdownHeaderOne{font-weight:var(--wds-font-weight-bold)!important;font-size:36px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, var(--wsr-font-family, Madefor))!important}.toolbar23812805__dropdownHeaderTwo{font-weight:var(--wds-font-weight-bold)!important;font-size:32px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownHeaderThree{font-weight:var(--wds-font-weight-medium)!important;font-size:28px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownHeaderFour{font-weight:var(--wds-font-weight-bold)!important;font-size:24px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownHeaderFive{font-weight:var(--wds-font-weight-bold)!important;font-size:22px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownHeaderSix{font-weight:var(--wds-font-weight-medium)!important;font-size:20px!important;line-height:1.2!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownParagraphOne{font-weight:var(--wds-font-weight-medium)!important;font-size:18px!important;line-height:1.33!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownNormalText{font-weight:var(--wds-font-weight-medium)!important;font-size:var(--wds-font-size-500)!important;line-height:var(--wds-font-line-height-300)!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.toolbar23812805__dropdownParagraphThree{font-weight:var(--wds-font-weight-medium)!important;font-size:14px!important;line-height:1.29!important;font-family:var(--wds-font-family-default, Madefor, Helvetica Neue, Helvetica, Arial, sans-serif)!important}.textview970162522__textView::after{content:"";display:block}.richeditor83967351__root{display:flex;flex-direction:column;font-weight:var(--wds-font-weight-medium, 500);font-size:var(--wds-font-size-500);line-height:var(--wds-font-line-height-300);font-family:var(--wds-font-family-default, var(--wsr-font-family, Madefor))}.richeditor83967351__editor{box-sizing:border-box;overflow:auto;display:flex;flex-direction:column;flex:1;cursor:text;color:var(--wds-color-black-100, var(--wsr-color-D10, #131720));background:var(--wds-color-black-700, var(--wsr-color-D70, #edeef2))}.richeditor83967351__editor .DraftEditor-root{width:100%;height:100%}.richeditor83967351__editor .DraftEditor-root [data-contents]{overflow:auto}.richeditor83967351__editor .DraftEditor-editorContainer{display:flex;min-height:100%;background:#fff}.richeditor83967351__editor .public-DraftEditor-content{padding:12px 24px 24px;min-height:100%;width:100%;box-sizing:border-box}.richeditor83967351__editor .public-DraftEditor-content ol,.richeditor83967351__editor .public-DraftEditor-content ul{display:flex;flex-direction:column;padding:0}.richeditor83967351__editor .public-DraftEditor-content a,.richeditor83967351__editor .public-DraftEditor-content a:visited{color:inherit;text-decoration:none}.richeditor83967351__header-one:not(li),.richeditor83967351__header-two:not(li),.richeditor83967351__header-three:not(li),.richeditor83967351__header-four:not(li),.richeditor83967351__header-five:not(li),.richeditor83967351__header-six:not(li){margin-block:0;margin:0}.richeditor83967351__header-one,.richeditor83967351__editor li.richeditor83967351__header-one .public-DraftStyleDefault-block{font:var(--rt-h1-fontStyle, normal) var(--rt-h1-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h1-fontSize, 72px)/var(--rt-h1-lineHeight, 1.33) var(--rt-h1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__header-two,.richeditor83967351__editor li.richeditor83967351__header-two .public-DraftStyleDefault-block{font:var(--rt-h2-fontStyle, normal) var(--rt-h2-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h2-fontSize, 42px)/var(--rt-h2-lineHeight, 1.2) var(--rt-h2-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__header-three,.richeditor83967351__editor li.richeditor83967351__header-three .public-DraftStyleDefault-block{font:var(--rt-h3-fontStyle, normal) var(--rt-h3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h3-fontSize, 38px)/var(--rt-h3-lineHeight, 1.2) var(--rt-h3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__header-four,.richeditor83967351__editor li.richeditor83967351__header-four .public-DraftStyleDefault-block{font:var(--rt-h4-fontStyle, normal) var(--rt-h4-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h4-fontSize, 34px)/var(--rt-h4-lineHeight, 1.2) var(--rt-h4-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__header-five,.richeditor83967351__editor li.richeditor83967351__header-five .public-DraftStyleDefault-block{font:var(--rt-h5-fontStyle, normal) var(--rt-h5-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h5-fontSize, 28px)/var(--rt-h5-lineHeight, 1.2) var(--rt-h5-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__header-six,.richeditor83967351__editor li.richeditor83967351__header-six .public-DraftStyleDefault-block{font:var(--rt-h6-fontStyle, normal) var(--rt-h6-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h6-fontSize, 22px)/var(--rt-h6-lineHeight, 1.2) var(--rt-h6-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__paragraph-one,.richeditor83967351__editor li.richeditor83967351__paragraph-one .public-DraftStyleDefault-block{font:var(--rt-p1-fontStyle, normal) var(--rt-p1-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p1-fontSize, 18px)/var(--rt-p1-lineHeight, 24px) var(--rt-p1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__unstyled,.richeditor83967351__editor li.richeditor83967351__unstyled .public-DraftStyleDefault-block{font:var(--rt-unstyled-fontStyle, normal) var(--rt-unstyled-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-unstyled-fontSize, 16px)/var(--rt-unstyled-lineHeight, 24px) var(--rt-unstyled-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__paragraph-three,.richeditor83967351__editor li.richeditor83967351__paragraph-three .public-DraftStyleDefault-block{font:var(--rt-p3-fontStyle, normal) var(--rt-p3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p3-fontSize, 14px)/var(--rt-p3-lineHeight, 18px) var(--rt-p3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-one:first-child~li{font:var(--rt-h1-fontStyle, normal) var(--rt-h1-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h1-fontSize, 72px)/var(--rt-h1-lineHeight, 1.33) var(--rt-h1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-one:first-child~li::marker{line-height:var(--rt-h1-fontSize, 72px)}.richeditor83967351__editor li.richeditor83967351__header-two:first-child~li{font:var(--rt-h2-fontStyle, normal) var(--rt-h2-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h2-fontSize, 42px)/var(--rt-h2-lineHeight, 1.2) var(--rt-h2-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-two:first-child~li::marker{line-height:var(--rt-h2-fontSize, 42px)}.richeditor83967351__editor li.richeditor83967351__header-three:first-child~li{font:var(--rt-h3-fontStyle, normal) var(--rt-h3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h3-fontSize, 38px)/var(--rt-h3-lineHeight, 1.2) var(--rt-h3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-three:first-child~li::marker{line-height:var(--rt-h3-fontSize, 38px)}.richeditor83967351__editor li.richeditor83967351__header-four:first-child~li{font:var(--rt-h4-fontStyle, normal) var(--rt-h4-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h4-fontSize, 34px)/var(--rt-h4-lineHeight, 1.2) var(--rt-h4-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-four:first-child~li::marker{line-height:var(--rt-h4-fontSize, 34px)}.richeditor83967351__editor li.richeditor83967351__header-five:first-child~li{font:var(--rt-h5-fontStyle, normal) var(--rt-h5-fontWeight, var(--wds-font-weight-bold, 700)) var(--rt-h5-fontSize, 28px)/var(--rt-h5-lineHeight, 1.2) var(--rt-h5-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-five:first-child~li::marker{line-height:var(--rt-h5-fontSize, 28px)}.richeditor83967351__editor li.richeditor83967351__header-six:first-child~li{font:var(--rt-h6-fontStyle, normal) var(--rt-h6-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-h6-fontSize, 22px)/var(--rt-h6-lineHeight, 1.2) var(--rt-h6-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__header-six:first-child~li::marker{line-height:var(--rt-h6-fontSize, 22px)}.richeditor83967351__editor li.richeditor83967351__paragraph-one:first-child~li{font:var(--rt-p1-fontStyle, normal) var(--rt-p1-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p1-fontSize, 18px)/var(--rt-p1-lineHeight, 24px) var(--rt-p1-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__unstyled:first-child~li{font:var(--rt-unstyled-fontStyle, normal) var(--rt-unstyled-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-unstyled-fontSize, 16px)/var(--rt-unstyled-lineHeight, 24px) var(--rt-unstyled-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.richeditor83967351__editor li.richeditor83967351__paragraph-three:first-child~li{font:var(--rt-p3-fontStyle, normal) var(--rt-p3-fontWeight, var(--wds-font-weight-medium, 500)) var(--rt-p3-fontSize, 14px)/var(--rt-p3-lineHeight, 18px) var(--rt-p3-fontFamily, var(--wds-font-family-default, var(--wsr-font-family, Madefor)))}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth0{margin-inline-start:2ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth1{margin-inline-start:4ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth2{margin-inline-start:6ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth3{margin-inline-start:8ch}.public-DraftStyleDefault-ul .public-DraftStyleDefault-depth4{margin-inline-start:10ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth0:first-child{margin-inline-start:2ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0{margin-inline-start:2ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0:nth-child(n+10){margin-inline-start:3ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0:nth-child(n+100){margin-inline-start:4ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth0:nth-child(n+1000){margin-inline-start:5ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth1:first-child{margin-inline-start:4ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1{margin-inline-start:4ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1:nth-child(n+10){margin-inline-start:5ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1:nth-child(n+100){margin-inline-start:6ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth1:nth-child(n+1000){margin-inline-start:7ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth2:first-child{margin-inline-start:6ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2{margin-inline-start:6ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2:nth-child(n+10){margin-inline-start:7ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2:nth-child(n+100){margin-inline-start:8ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth2:nth-child(n+1000){margin-inline-start:9ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth3:first-child{margin-inline-start:8ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3{margin-inline-start:8ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3:nth-child(n+10){margin-inline-start:9ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3:nth-child(n+100){margin-inline-start:10ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth3:nth-child(n+1000){margin-inline-start:11ch}.public-DraftStyleDefault-ol li.public-DraftStyleDefault-depth4:first-child{margin-inline-start:10ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4{margin-inline-start:10ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4:nth-child(n+10){margin-inline-start:11ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4:nth-child(n+100){margin-inline-start:12ch}.public-DraftStyleDefault-ol li:first-child~li.public-DraftStyleDefault-depth4:nth-child(n+1000){margin-inline-start:13ch}.richeditor83967351__align-left{text-align:left;align-self:flex-start}.richeditor83967351__align-right{text-align:right;align-self:flex-end}.richeditor83967351__align-center{text-align:center;align-self:center}.richeditor83967351__align-justify{text-align:justify;align-self:stretch}.richeditor83967351__withMargin{display:inline-block}.richeditor83967351__dir-rtl,.richeditor83967351__editor .public-DraftStyleDefault-rtl{direction:rtl}.richeditor83967351__editor .public-DraftStyleDefault-listRTL{direction:rtl;text-align:right;max-width:100%}
@@ -12,8 +12,84 @@ export type SpecificValuesValidationRule = {
12
12
  specificValues: SpecificValue[];
13
13
  };
14
14
 
15
+ export type PatternValidationRule = {
16
+ pattern: string;
17
+ };
18
+
19
+ export interface RequiredFieldValidationRuleConfig {
20
+ type: 'required';
21
+ label: string;
22
+ tooltip: string;
23
+ }
24
+
25
+ export interface CharactersLimitFieldValidationRuleConfig {
26
+ type: 'charactersLimit';
27
+ label: string;
28
+ tooltip: string;
29
+ minLabel: string;
30
+ maxLabel: string;
31
+ separator: string;
32
+ outOfBoundsError(min: number, max: number): string;
33
+ maxBelowMinError: string;
34
+ }
35
+
36
+ export interface SpecificValuesFieldValidationRuleConfig {
37
+ type: 'specificValues';
38
+ label: string;
39
+ tooltip: string;
40
+ blankError: string;
41
+ duplicateError: string;
42
+ addButton: string;
43
+ removeButton: string;
44
+ exclusiveRulesExplanation: string;
45
+ }
46
+
47
+ export interface PatternFieldValidationRuleConfig {
48
+ type: 'pattern';
49
+ label: string;
50
+ tooltip: string;
51
+ inputLabel: string;
52
+ invalidError: string;
53
+ }
54
+
55
+ export type FieldValidationRuleConfig =
56
+ | RequiredFieldValidationRuleConfig
57
+ | CharactersLimitFieldValidationRuleConfig
58
+ | SpecificValuesFieldValidationRuleConfig
59
+ | PatternFieldValidationRuleConfig;
60
+
61
+ export type FieldValidationRule = FieldValidationRuleConfig['type'];
62
+
63
+ export interface FieldValidationSettingsValue {
64
+ required?: boolean;
65
+ charactersLimit?: { min?: number; max?: number };
66
+ specificValues?: SpecificValue[];
67
+ pattern?: string;
68
+ }
69
+
70
+ export type FieldValidationViolation =
71
+ | {
72
+ rule: 'charactersLimit';
73
+ type: 'outOfBounds';
74
+ bound: 'min' | 'max';
75
+ min: number;
76
+ max: number;
77
+ }
78
+ | { rule: 'charactersLimit'; type: 'maxBelowMin' }
79
+ | {
80
+ rule: 'specificValues';
81
+ type: 'blank' | 'duplicate';
82
+ optionId: string;
83
+ }
84
+ | {
85
+ rule: 'specificValues' | 'charactersLimit' | 'pattern';
86
+ type: 'exclusiveRules';
87
+ }
88
+ | { rule: 'pattern'; type: 'invalidPattern' };
89
+
15
90
  export type DataValidationRules = Partial<
16
91
  RequiredValidationRule &
17
92
  CharactersLimitValidationRule &
18
- SpecificValuesValidationRule
93
+ SpecificValuesValidationRule &
94
+ PatternValidationRule
19
95
  >;
@@ -0,0 +1,180 @@
1
+ import {
2
+ getFieldValidationSettingsViolations,
3
+ hasFieldValidationSettingsError,
4
+ } from './field-validation-settings';
5
+
6
+ describe('field validation settings', () => {
7
+ it('allows absent character bounds', () => {
8
+ expect(
9
+ getFieldValidationSettingsViolations({ charactersLimit: {} }),
10
+ ).toEqual([]);
11
+ });
12
+
13
+ it.each([
14
+ {
15
+ name: 'a negative optional minimum',
16
+ value: { charactersLimit: { min: -1 } },
17
+ bound: 'min',
18
+ min: 0,
19
+ },
20
+ {
21
+ name: 'a required minimum below one',
22
+ value: { required: true, charactersLimit: { min: 0 } },
23
+ bound: 'min',
24
+ min: 1,
25
+ },
26
+ {
27
+ name: 'a maximum below one',
28
+ value: { charactersLimit: { max: 0 } },
29
+ bound: 'max',
30
+ min: 1,
31
+ },
32
+ {
33
+ name: 'a minimum above the ceiling',
34
+ value: { charactersLimit: { min: 256_001 } },
35
+ bound: 'min',
36
+ min: 0,
37
+ },
38
+ {
39
+ name: 'a maximum above the ceiling',
40
+ value: { charactersLimit: { max: 256_001 } },
41
+ bound: 'max',
42
+ min: 1,
43
+ },
44
+ ])('reports $name without changing it', ({ value, bound, min }) => {
45
+ const snapshot = JSON.parse(JSON.stringify(value));
46
+
47
+ expect(getFieldValidationSettingsViolations(value)).toContainEqual({
48
+ rule: 'charactersLimit',
49
+ type: 'outOfBounds',
50
+ bound,
51
+ min,
52
+ max: 256_000,
53
+ });
54
+ expect(value).toEqual(snapshot);
55
+ });
56
+
57
+ it('reports a maximum below the minimum without changing the draft', () => {
58
+ const value = { charactersLimit: { min: 10, max: 5 } };
59
+
60
+ expect(getFieldValidationSettingsViolations(value)).toContainEqual({
61
+ rule: 'charactersLimit',
62
+ type: 'maxBelowMin',
63
+ });
64
+ expect(value.charactersLimit).toEqual({ min: 10, max: 5 });
65
+ });
66
+
67
+ it.each([Number.NaN, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY])(
68
+ 'reports a non-finite character bound: %s',
69
+ (min) => {
70
+ expect(
71
+ getFieldValidationSettingsViolations({ charactersLimit: { min } }),
72
+ ).toContainEqual({
73
+ rule: 'charactersLimit',
74
+ type: 'outOfBounds',
75
+ bound: 'min',
76
+ min: 0,
77
+ max: 256_000,
78
+ });
79
+ },
80
+ );
81
+
82
+ it('makes a minimum of zero invalid only while required is enabled', () => {
83
+ const charactersLimit = { min: 0 };
84
+
85
+ expect(
86
+ hasFieldValidationSettingsError({ required: false, charactersLimit }),
87
+ ).toBe(false);
88
+ expect(
89
+ hasFieldValidationSettingsError({ required: true, charactersLimit }),
90
+ ).toBe(true);
91
+ expect(
92
+ hasFieldValidationSettingsError({ required: false, charactersLimit }),
93
+ ).toBe(false);
94
+ expect(charactersLimit).toEqual({ min: 0 });
95
+ });
96
+
97
+ it('reports blank and duplicate specific values after trimming', () => {
98
+ expect(
99
+ getFieldValidationSettingsViolations({
100
+ specificValues: [
101
+ { id: 'blank', value: ' ' },
102
+ { id: 'first', value: 'One' },
103
+ { id: 'duplicate', value: ' One ' },
104
+ { id: 'different-case', value: 'one' },
105
+ ],
106
+ }),
107
+ ).toEqual([
108
+ { rule: 'specificValues', type: 'blank', optionId: 'blank' },
109
+ {
110
+ rule: 'specificValues',
111
+ type: 'duplicate',
112
+ optionId: 'duplicate',
113
+ },
114
+ ]);
115
+ });
116
+
117
+ it('reports every side of an exclusive-rules conflict', () => {
118
+ expect(
119
+ getFieldValidationSettingsViolations({
120
+ charactersLimit: {},
121
+ specificValues: [],
122
+ pattern: '^value$',
123
+ }),
124
+ ).toEqual(
125
+ expect.arrayContaining([
126
+ { rule: 'specificValues', type: 'exclusiveRules' },
127
+ { rule: 'charactersLimit', type: 'exclusiveRules' },
128
+ { rule: 'pattern', type: 'exclusiveRules' },
129
+ ]),
130
+ );
131
+ });
132
+
133
+ it('reports invalid regular expressions without throwing', () => {
134
+ expect(
135
+ getFieldValidationSettingsViolations({ pattern: '[' }),
136
+ ).toContainEqual({ rule: 'pattern', type: 'invalidPattern' });
137
+ expect(hasFieldValidationSettingsError({ pattern: '' })).toBe(false);
138
+ expect(hasFieldValidationSettingsError({ pattern: '^valid$' })).toBe(false);
139
+ });
140
+
141
+ it('allows specificValues alongside charactersLimit when the caller opts out of exclusivity', () => {
142
+ const value = { charactersLimit: {}, specificValues: [] };
143
+
144
+ expect(
145
+ getFieldValidationSettingsViolations(value, undefined, {
146
+ exclusiveSpecificValues: false,
147
+ }),
148
+ ).toEqual([]);
149
+ expect(
150
+ hasFieldValidationSettingsError(value, undefined, {
151
+ exclusiveSpecificValues: false,
152
+ }),
153
+ ).toBe(false);
154
+ });
155
+
156
+ it('reports an overlong pattern as invalid without constructing a RegExp', () => {
157
+ const pattern = '^'.repeat(501);
158
+
159
+ expect(getFieldValidationSettingsViolations({ pattern })).toContainEqual({
160
+ rule: 'pattern',
161
+ type: 'invalidPattern',
162
+ });
163
+ });
164
+
165
+ it('ignores values outside the caller supported rule set', () => {
166
+ const value = {
167
+ required: true,
168
+ charactersLimit: { min: 0 },
169
+ specificValues: [],
170
+ pattern: '[',
171
+ };
172
+
173
+ expect(
174
+ getFieldValidationSettingsViolations(value, ['charactersLimit']),
175
+ ).toEqual([]);
176
+ expect(hasFieldValidationSettingsError(value, ['charactersLimit'])).toBe(
177
+ false,
178
+ );
179
+ });
180
+ });
@@ -0,0 +1,144 @@
1
+ import type {
2
+ FieldValidationRule,
3
+ FieldValidationSettingsValue,
4
+ FieldValidationViolation,
5
+ } from '../types/validation';
6
+
7
+ const CHARACTERS_CEILING = 256_000;
8
+ const MIN_CHARACTERS_FLOOR = 0;
9
+ const MIN_CHARACTERS_FLOOR_WHEN_REQUIRED = 1;
10
+ const MAX_CHARACTERS_FLOOR = 1;
11
+ const MAX_PATTERN_LENGTH = 500;
12
+
13
+ const isOutOfBounds = (value: number, min: number, max: number) =>
14
+ !Number.isFinite(value) || value < min || value > max;
15
+
16
+ const hasInvalidPattern = (pattern: string | undefined) => {
17
+ if (pattern === undefined) {
18
+ return false;
19
+ }
20
+
21
+ if (pattern.length > MAX_PATTERN_LENGTH) {
22
+ return true;
23
+ }
24
+
25
+ try {
26
+ new RegExp(pattern);
27
+ return false;
28
+ } catch {
29
+ return true;
30
+ }
31
+ };
32
+
33
+ export interface FieldValidationSettingsOptions {
34
+ /** Whether `specificValues` rejects `charactersLimit`/`pattern` on the same
35
+ * field. Callers that let a field carry both (e.g. a stored
36
+ * `stringLengthRange` alongside `specificValues`) should pass `false`. */
37
+ exclusiveSpecificValues?: boolean;
38
+ }
39
+
40
+ export const getFieldValidationSettingsViolations = (
41
+ value: FieldValidationSettingsValue,
42
+ supportedRules?: readonly FieldValidationRule[],
43
+ { exclusiveSpecificValues = true }: FieldValidationSettingsOptions = {},
44
+ ): FieldValidationViolation[] => {
45
+ const violations: FieldValidationViolation[] = [];
46
+ const supports = (rule: FieldValidationRule) =>
47
+ supportedRules === undefined || supportedRules.includes(rule);
48
+ const charactersLimit = supports('charactersLimit')
49
+ ? value.charactersLimit
50
+ : undefined;
51
+ const specificValues = supports('specificValues')
52
+ ? value.specificValues
53
+ : undefined;
54
+ const pattern = supports('pattern') ? value.pattern : undefined;
55
+
56
+ const minCharactersFloor =
57
+ supports('required') && value.required
58
+ ? MIN_CHARACTERS_FLOOR_WHEN_REQUIRED
59
+ : MIN_CHARACTERS_FLOOR;
60
+
61
+ if (
62
+ charactersLimit?.min != null &&
63
+ isOutOfBounds(charactersLimit.min, minCharactersFloor, CHARACTERS_CEILING)
64
+ ) {
65
+ violations.push({
66
+ rule: 'charactersLimit',
67
+ type: 'outOfBounds',
68
+ bound: 'min',
69
+ min: minCharactersFloor,
70
+ max: CHARACTERS_CEILING,
71
+ });
72
+ }
73
+
74
+ if (
75
+ charactersLimit?.max != null &&
76
+ isOutOfBounds(charactersLimit.max, MAX_CHARACTERS_FLOOR, CHARACTERS_CEILING)
77
+ ) {
78
+ violations.push({
79
+ rule: 'charactersLimit',
80
+ type: 'outOfBounds',
81
+ bound: 'max',
82
+ min: MAX_CHARACTERS_FLOOR,
83
+ max: CHARACTERS_CEILING,
84
+ });
85
+ }
86
+
87
+ if (
88
+ charactersLimit?.min != null &&
89
+ charactersLimit.max != null &&
90
+ charactersLimit.max < charactersLimit.min
91
+ ) {
92
+ violations.push({ rule: 'charactersLimit', type: 'maxBelowMin' });
93
+ }
94
+
95
+ if (specificValues !== undefined) {
96
+ const normalizedValues = specificValues.map(({ value: optionValue }) =>
97
+ optionValue.trim(),
98
+ );
99
+
100
+ specificValues.forEach((option, index) => {
101
+ if (!normalizedValues[index]) {
102
+ violations.push({
103
+ rule: 'specificValues',
104
+ type: 'blank',
105
+ optionId: option.id,
106
+ });
107
+ } else if (normalizedValues.indexOf(normalizedValues[index]) !== index) {
108
+ violations.push({
109
+ rule: 'specificValues',
110
+ type: 'duplicate',
111
+ optionId: option.id,
112
+ });
113
+ }
114
+ });
115
+ }
116
+
117
+ const hasSpecificValues = specificValues !== undefined;
118
+ const hasCharactersLimit = charactersLimit !== undefined;
119
+ const hasPattern = pattern !== undefined;
120
+
121
+ if (exclusiveSpecificValues && hasSpecificValues && (hasCharactersLimit || hasPattern)) {
122
+ violations.push({ rule: 'specificValues', type: 'exclusiveRules' });
123
+ if (hasCharactersLimit) {
124
+ violations.push({ rule: 'charactersLimit', type: 'exclusiveRules' });
125
+ }
126
+ if (hasPattern) {
127
+ violations.push({ rule: 'pattern', type: 'exclusiveRules' });
128
+ }
129
+ }
130
+
131
+ if (hasInvalidPattern(pattern)) {
132
+ violations.push({ rule: 'pattern', type: 'invalidPattern' });
133
+ }
134
+
135
+ return violations;
136
+ };
137
+
138
+ export const hasFieldValidationSettingsError = (
139
+ value: FieldValidationSettingsValue,
140
+ supportedRules?: readonly FieldValidationRule[],
141
+ options?: FieldValidationSettingsOptions,
142
+ ) =>
143
+ getFieldValidationSettingsViolations(value, supportedRules, options).length >
144
+ 0;