@wix/patterns 1.414.0 → 1.415.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 (543) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  12. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  14. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  24. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  30. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  31. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  32. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  34. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  36. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  38. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  40. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  42. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  44. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.js +2 -5
  46. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  48. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  50. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.js +42 -0
  52. package/dist/cjs/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.js.map +1 -0
  53. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.js +428 -0
  54. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.js.map +1 -0
  55. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css +44 -0
  56. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +31 -0
  57. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -0
  58. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.uni.driver.js +20 -0
  59. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.uni.driver.js.map +1 -0
  60. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.js +64 -0
  61. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.js.map +1 -0
  62. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css +36 -0
  63. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +30 -0
  64. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -0
  65. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.uni.driver.js +15 -0
  66. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.uni.driver.js.map +1 -0
  67. package/dist/cjs/components/EditableTable/cellTypes/datetime/formatters.js +47 -0
  68. package/dist/cjs/components/EditableTable/cellTypes/datetime/formatters.js.map +1 -0
  69. package/dist/cjs/components/EditableTable/cellTypes/datetime/helpers.js +34 -0
  70. package/dist/cjs/components/EditableTable/cellTypes/datetime/helpers.js.map +1 -0
  71. package/dist/cjs/components/EditableTable/cellTypes/datetime/index.js +53 -0
  72. package/dist/cjs/components/EditableTable/cellTypes/datetime/index.js.map +1 -0
  73. package/dist/cjs/components/EditableTable/cellTypes/datetime/mergeDateTime.js +30 -0
  74. package/dist/cjs/components/EditableTable/cellTypes/datetime/mergeDateTime.js.map +1 -0
  75. package/dist/cjs/components/EditableTable/cellTypes/datetime/subCellContext.js +14 -0
  76. package/dist/cjs/components/EditableTable/cellTypes/datetime/subCellContext.js.map +1 -0
  77. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  78. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  80. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/index.js +3 -1
  82. package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  84. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  86. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  87. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  88. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  90. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  91. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  92. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  93. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  94. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  95. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  96. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  97. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.js +3 -3
  98. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.js.map +1 -1
  99. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  100. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  101. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  102. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  103. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  104. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  105. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  106. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  107. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  108. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  109. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  110. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  111. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  112. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  113. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  114. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  115. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  116. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  117. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  118. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  119. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  120. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  121. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  122. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  123. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  124. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  125. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  126. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  127. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  128. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  129. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  130. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  131. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  132. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  133. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  134. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  135. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  136. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  137. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  138. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  139. package/dist/cjs/components/SetupWidget/AllCompleteState.js +80 -0
  140. package/dist/cjs/components/SetupWidget/AllCompleteState.js.map +1 -0
  141. package/dist/cjs/components/SetupWidget/SetupStepCard.js +220 -0
  142. package/dist/cjs/components/SetupWidget/SetupStepCard.js.map +1 -0
  143. package/dist/cjs/components/SetupWidget/SetupStepGroup.js +219 -0
  144. package/dist/cjs/components/SetupWidget/SetupStepGroup.js.map +1 -0
  145. package/dist/cjs/components/SetupWidget/SetupStepIcon.js +60 -0
  146. package/dist/cjs/components/SetupWidget/SetupStepIcon.js.map +1 -0
  147. package/dist/cjs/components/SetupWidget/SetupStepRow.js +243 -0
  148. package/dist/cjs/components/SetupWidget/SetupStepRow.js.map +1 -0
  149. package/dist/cjs/components/SetupWidget/SetupWidget.js +257 -0
  150. package/dist/cjs/components/SetupWidget/SetupWidget.js.map +1 -0
  151. package/dist/cjs/components/SetupWidget/SetupWidget.st.css +95 -0
  152. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +39 -0
  153. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -0
  154. package/dist/cjs/components/SetupWidget/SetupWidget.uni.driver.js +45 -0
  155. package/dist/cjs/components/SetupWidget/SetupWidget.uni.driver.js.map +1 -0
  156. package/dist/cjs/components/SetupWidget/SetupWidgetHeader.js +137 -0
  157. package/dist/cjs/components/SetupWidget/SetupWidgetHeader.js.map +1 -0
  158. package/dist/cjs/components/SetupWidget/SetupWidgetSkeleton.js +224 -0
  159. package/dist/cjs/components/SetupWidget/SetupWidgetSkeleton.js.map +1 -0
  160. package/dist/cjs/components/SetupWidget/dashboard-setup-integration-gaps.md +231 -0
  161. package/dist/cjs/components/SetupWidget/dashboard-setup-migration-plan.md +163 -0
  162. package/dist/cjs/components/SetupWidget/index.js +7 -0
  163. package/dist/cjs/components/SetupWidget/index.js.map +1 -0
  164. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  165. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  166. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  167. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  168. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  169. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  170. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  171. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  172. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  173. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  174. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  175. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  176. package/dist/cjs/components/common.st.css.js +4 -4
  177. package/dist/cjs/components/common.st.css.js.map +1 -1
  178. package/dist/cjs/exports/testkit/unidriver.js +3 -1
  179. package/dist/cjs/exports/testkit/unidriver.js.map +1 -1
  180. package/dist/cjs/hooks/useSetupWidget/index.js +7 -0
  181. package/dist/cjs/hooks/useSetupWidget/index.js.map +1 -0
  182. package/dist/cjs/hooks/useSetupWidget/useSetupWidget.js +33 -0
  183. package/dist/cjs/hooks/useSetupWidget/useSetupWidget.js.map +1 -0
  184. package/dist/cjs/index.js +14 -0
  185. package/dist/cjs/index.js.map +1 -1
  186. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  187. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  188. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  189. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  190. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  191. package/dist/cjs/styles.global.css +2 -2
  192. package/dist/cjs/testkit/jsdom.js +3 -1
  193. package/dist/cjs/testkit/jsdom.js.map +1 -1
  194. package/dist/cjs/version.js +1 -1
  195. package/dist/cjs/version.js.map +1 -1
  196. package/dist/docs/index.json +24 -24
  197. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  198. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  199. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  200. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  201. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  202. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  203. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  204. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  205. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  206. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  207. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  208. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  209. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  210. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  211. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  212. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  213. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  214. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  215. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  216. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  217. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  218. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  219. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  220. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  221. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  222. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  223. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  224. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  225. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  226. package/dist/esm/components/EditableTable/cellTypes/date/Edit.js +2 -2
  227. package/dist/esm/components/EditableTable/cellTypes/date/Edit.js.map +1 -1
  228. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  229. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  230. package/dist/esm/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.js +26 -0
  231. package/dist/esm/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.js.map +1 -0
  232. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.js +289 -0
  233. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.js.map +1 -0
  234. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css +44 -0
  235. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +15 -0
  236. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -0
  237. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.uni.driver.js +16 -0
  238. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.uni.driver.js.map +1 -0
  239. package/dist/esm/components/EditableTable/cellTypes/datetime/View.js +19 -0
  240. package/dist/esm/components/EditableTable/cellTypes/datetime/View.js.map +1 -0
  241. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css +36 -0
  242. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +15 -0
  243. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -0
  244. package/dist/esm/components/EditableTable/cellTypes/datetime/View.uni.driver.js +14 -0
  245. package/dist/esm/components/EditableTable/cellTypes/datetime/View.uni.driver.js.map +1 -0
  246. package/dist/esm/components/EditableTable/cellTypes/datetime/formatters.js +46 -0
  247. package/dist/esm/components/EditableTable/cellTypes/datetime/formatters.js.map +1 -0
  248. package/dist/esm/components/EditableTable/cellTypes/datetime/helpers.js +23 -0
  249. package/dist/esm/components/EditableTable/cellTypes/datetime/helpers.js.map +1 -0
  250. package/dist/esm/components/EditableTable/cellTypes/datetime/index.js +48 -0
  251. package/dist/esm/components/EditableTable/cellTypes/datetime/index.js.map +1 -0
  252. package/dist/esm/components/EditableTable/cellTypes/datetime/mergeDateTime.js +25 -0
  253. package/dist/esm/components/EditableTable/cellTypes/datetime/mergeDateTime.js.map +1 -0
  254. package/dist/esm/components/EditableTable/cellTypes/datetime/subCellContext.js +8 -0
  255. package/dist/esm/components/EditableTable/cellTypes/datetime/subCellContext.js.map +1 -0
  256. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  257. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  258. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  259. package/dist/esm/components/EditableTable/cellTypes/index.js +3 -1
  260. package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
  261. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  262. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  263. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  265. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  266. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  267. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  268. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  269. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  270. package/dist/esm/components/EditableTable/cellTypes/time/Edit.js.map +1 -1
  271. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  272. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  273. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  274. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  275. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  276. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  277. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  278. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  279. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  280. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  281. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  282. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  283. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  284. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  285. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  286. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  287. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  288. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  289. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  290. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  291. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  292. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  293. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  294. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  295. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  296. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  297. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  298. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  299. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  300. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  301. package/dist/esm/components/SetupWidget/AllCompleteState.js +19 -0
  302. package/dist/esm/components/SetupWidget/AllCompleteState.js.map +1 -0
  303. package/dist/esm/components/SetupWidget/SetupStepCard.js +61 -0
  304. package/dist/esm/components/SetupWidget/SetupStepCard.js.map +1 -0
  305. package/dist/esm/components/SetupWidget/SetupStepGroup.js +51 -0
  306. package/dist/esm/components/SetupWidget/SetupStepGroup.js.map +1 -0
  307. package/dist/esm/components/SetupWidget/SetupStepIcon.js +17 -0
  308. package/dist/esm/components/SetupWidget/SetupStepIcon.js.map +1 -0
  309. package/dist/esm/components/SetupWidget/SetupStepRow.js +68 -0
  310. package/dist/esm/components/SetupWidget/SetupStepRow.js.map +1 -0
  311. package/dist/esm/components/SetupWidget/SetupWidget.js +98 -0
  312. package/dist/esm/components/SetupWidget/SetupWidget.js.map +1 -0
  313. package/dist/esm/components/SetupWidget/SetupWidget.st.css +95 -0
  314. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +15 -0
  315. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -0
  316. package/dist/esm/components/SetupWidget/SetupWidget.uni.driver.js +40 -0
  317. package/dist/esm/components/SetupWidget/SetupWidget.uni.driver.js.map +1 -0
  318. package/dist/esm/components/SetupWidget/SetupWidgetHeader.js +30 -0
  319. package/dist/esm/components/SetupWidget/SetupWidgetHeader.js.map +1 -0
  320. package/dist/esm/components/SetupWidget/SetupWidgetSkeleton.js +44 -0
  321. package/dist/esm/components/SetupWidget/SetupWidgetSkeleton.js.map +1 -0
  322. package/dist/esm/components/SetupWidget/dashboard-setup-integration-gaps.md +231 -0
  323. package/dist/esm/components/SetupWidget/dashboard-setup-migration-plan.md +163 -0
  324. package/dist/esm/components/SetupWidget/index.js +2 -0
  325. package/dist/esm/components/SetupWidget/index.js.map +1 -0
  326. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  327. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  328. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  329. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  330. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  331. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  332. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  333. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  334. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  335. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  336. package/dist/esm/components/common.st.css.js +2 -2
  337. package/dist/esm/exports/testkit/unidriver.js +1 -0
  338. package/dist/esm/exports/testkit/unidriver.js.map +1 -1
  339. package/dist/esm/hooks/useSetupWidget/index.js +2 -0
  340. package/dist/esm/hooks/useSetupWidget/index.js.map +1 -0
  341. package/dist/esm/hooks/useSetupWidget/useSetupWidget.js +23 -0
  342. package/dist/esm/hooks/useSetupWidget/useSetupWidget.js.map +1 -0
  343. package/dist/esm/index.js +2 -0
  344. package/dist/esm/index.js.map +1 -1
  345. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  346. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  347. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  348. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  349. package/dist/esm/styles.global.css +2 -2
  350. package/dist/esm/testkit/jsdom.js +2 -0
  351. package/dist/esm/testkit/jsdom.js.map +1 -1
  352. package/dist/esm/version.js +1 -1
  353. package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
  354. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  355. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  356. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  357. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  358. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  359. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  360. package/dist/types/components/EditableTable/cellTypes/date/Edit.d.ts.map +1 -1
  361. package/dist/types/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.d.ts +13 -0
  362. package/dist/types/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.d.ts.map +1 -0
  363. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.d.ts +4 -0
  364. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.d.ts.map +1 -0
  365. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts +22 -0
  366. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -0
  367. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.uni.driver.d.ts +21 -0
  368. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.uni.driver.d.ts.map +1 -0
  369. package/dist/types/components/EditableTable/cellTypes/datetime/View.d.ts +4 -0
  370. package/dist/types/components/EditableTable/cellTypes/datetime/View.d.ts.map +1 -0
  371. package/dist/types/components/EditableTable/cellTypes/datetime/View.st.css.d.ts +21 -0
  372. package/dist/types/components/EditableTable/cellTypes/datetime/View.st.css.d.ts.map +1 -0
  373. package/dist/types/components/EditableTable/cellTypes/datetime/View.uni.driver.d.ts +18 -0
  374. package/dist/types/components/EditableTable/cellTypes/datetime/View.uni.driver.d.ts.map +1 -0
  375. package/dist/types/components/EditableTable/cellTypes/datetime/formatters.d.ts +22 -0
  376. package/dist/types/components/EditableTable/cellTypes/datetime/formatters.d.ts.map +1 -0
  377. package/dist/types/components/EditableTable/cellTypes/datetime/helpers.d.ts +10 -0
  378. package/dist/types/components/EditableTable/cellTypes/datetime/helpers.d.ts.map +1 -0
  379. package/dist/types/components/EditableTable/cellTypes/datetime/index.d.ts +15 -0
  380. package/dist/types/components/EditableTable/cellTypes/datetime/index.d.ts.map +1 -0
  381. package/dist/types/components/EditableTable/cellTypes/datetime/mergeDateTime.d.ts +11 -0
  382. package/dist/types/components/EditableTable/cellTypes/datetime/mergeDateTime.d.ts.map +1 -0
  383. package/dist/types/components/EditableTable/cellTypes/datetime/subCellContext.d.ts +12 -0
  384. package/dist/types/components/EditableTable/cellTypes/datetime/subCellContext.d.ts.map +1 -0
  385. package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts.map +1 -1
  386. package/dist/types/components/EditableTable/cellTypes/index.d.ts +2 -1
  387. package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
  388. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  389. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  390. package/dist/types/components/EditableTable/cellTypes/time/Edit.d.ts.map +1 -1
  391. package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
  392. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  393. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  394. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  395. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  396. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  397. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  398. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  399. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  400. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  401. package/dist/types/components/SetupWidget/AllCompleteState.d.ts +15 -0
  402. package/dist/types/components/SetupWidget/AllCompleteState.d.ts.map +1 -0
  403. package/dist/types/components/SetupWidget/SetupStepCard.d.ts +20 -0
  404. package/dist/types/components/SetupWidget/SetupStepCard.d.ts.map +1 -0
  405. package/dist/types/components/SetupWidget/SetupStepGroup.d.ts +22 -0
  406. package/dist/types/components/SetupWidget/SetupStepGroup.d.ts.map +1 -0
  407. package/dist/types/components/SetupWidget/SetupStepIcon.d.ts +10 -0
  408. package/dist/types/components/SetupWidget/SetupStepIcon.d.ts.map +1 -0
  409. package/dist/types/components/SetupWidget/SetupStepRow.d.ts +22 -0
  410. package/dist/types/components/SetupWidget/SetupStepRow.d.ts.map +1 -0
  411. package/dist/types/components/SetupWidget/SetupWidget.d.ts +47 -0
  412. package/dist/types/components/SetupWidget/SetupWidget.d.ts.map +1 -0
  413. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts +30 -0
  414. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -0
  415. package/dist/types/components/SetupWidget/SetupWidget.uni.driver.d.ts +45 -0
  416. package/dist/types/components/SetupWidget/SetupWidget.uni.driver.d.ts.map +1 -0
  417. package/dist/types/components/SetupWidget/SetupWidgetHeader.d.ts +16 -0
  418. package/dist/types/components/SetupWidget/SetupWidgetHeader.d.ts.map +1 -0
  419. package/dist/types/components/SetupWidget/SetupWidgetSkeleton.d.ts +12 -0
  420. package/dist/types/components/SetupWidget/SetupWidgetSkeleton.d.ts.map +1 -0
  421. package/dist/types/components/SetupWidget/index.d.ts +4 -0
  422. package/dist/types/components/SetupWidget/index.d.ts.map +1 -0
  423. package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
  424. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  425. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  426. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  427. package/dist/types/exports/testkit/unidriver.d.ts +1 -0
  428. package/dist/types/exports/testkit/unidriver.d.ts.map +1 -1
  429. package/dist/types/hooks/useSetupWidget/index.d.ts +2 -0
  430. package/dist/types/hooks/useSetupWidget/index.d.ts.map +1 -0
  431. package/dist/types/hooks/useSetupWidget/useSetupWidget.d.ts +16 -0
  432. package/dist/types/hooks/useSetupWidget/useSetupWidget.d.ts.map +1 -0
  433. package/dist/types/index.d.ts +2 -0
  434. package/dist/types/index.d.ts.map +1 -1
  435. package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
  436. package/dist/types/state/EditableTable/types.d.ts +1 -0
  437. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  438. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  439. package/dist/types/testkit/jsdom.d.ts +27 -0
  440. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  441. package/dist/types/version.d.ts +1 -1
  442. package/package.json +6 -6
  443. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  444. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  445. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  446. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  447. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  448. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  449. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  450. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  451. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  452. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  453. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  454. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  455. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  456. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  457. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  458. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  459. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  460. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  461. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  462. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  463. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  464. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  465. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  466. package/src/components/EditableTable/cellTypes/date/Edit.tsx +2 -2
  467. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  468. package/src/components/EditableTable/cellTypes/datetime/DateTimeEditWrapper.tsx +36 -0
  469. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css +44 -0
  470. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +25 -0
  471. package/src/components/EditableTable/cellTypes/datetime/Edit.tsx +425 -0
  472. package/src/components/EditableTable/cellTypes/datetime/Edit.uni.driver.ts +19 -0
  473. package/src/components/EditableTable/cellTypes/datetime/View.st.css +36 -0
  474. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +25 -0
  475. package/src/components/EditableTable/cellTypes/datetime/View.tsx +47 -0
  476. package/src/components/EditableTable/cellTypes/datetime/View.uni.driver.ts +16 -0
  477. package/src/components/EditableTable/cellTypes/datetime/formatters.ts +60 -0
  478. package/src/components/EditableTable/cellTypes/datetime/helpers.ts +33 -0
  479. package/src/components/EditableTable/cellTypes/datetime/index.ts +49 -0
  480. package/src/components/EditableTable/cellTypes/datetime/mergeDateTime.ts +35 -0
  481. package/src/components/EditableTable/cellTypes/datetime/subCellContext.ts +21 -0
  482. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  483. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  484. package/src/components/EditableTable/cellTypes/index.ts +3 -0
  485. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  486. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  487. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  488. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  489. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  490. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  491. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  492. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  493. package/src/components/EditableTable/cellTypes/time/Edit.tsx +5 -1
  494. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  495. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  496. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  497. package/src/components/Fade/Fade.st.css.ts +2 -2
  498. package/src/components/Heading/Heading.st.css.ts +2 -2
  499. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  500. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  501. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  502. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  503. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  504. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  505. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  506. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  507. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  508. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  509. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  510. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  511. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  512. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  513. package/src/components/SetupWidget/AllCompleteState.tsx +46 -0
  514. package/src/components/SetupWidget/SetupStepCard.tsx +166 -0
  515. package/src/components/SetupWidget/SetupStepGroup.tsx +139 -0
  516. package/src/components/SetupWidget/SetupStepIcon.tsx +31 -0
  517. package/src/components/SetupWidget/SetupStepRow.tsx +196 -0
  518. package/src/components/SetupWidget/SetupWidget.st.css +95 -0
  519. package/src/components/SetupWidget/SetupWidget.st.css.ts +25 -0
  520. package/src/components/SetupWidget/SetupWidget.tsx +253 -0
  521. package/src/components/SetupWidget/SetupWidget.uni.driver.ts +59 -0
  522. package/src/components/SetupWidget/SetupWidgetHeader.tsx +64 -0
  523. package/src/components/SetupWidget/SetupWidgetSkeleton.tsx +98 -0
  524. package/src/components/SetupWidget/dashboard-setup-integration-gaps.md +231 -0
  525. package/src/components/SetupWidget/dashboard-setup-migration-plan.md +163 -0
  526. package/src/components/SetupWidget/index.ts +9 -0
  527. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  528. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  529. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  530. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  531. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  532. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  533. package/src/components/common.st.css.ts +2 -2
  534. package/src/exports/testkit/unidriver.ts +1 -0
  535. package/src/hooks/useSetupWidget/index.ts +1 -0
  536. package/src/hooks/useSetupWidget/useSetupWidget.ts +29 -0
  537. package/src/index.ts +2 -0
  538. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  539. package/src/state/EditableTable/types.ts +1 -0
  540. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  541. package/src/styles.global.css +2 -2
  542. package/src/testkit/jsdom.ts +4 -0
  543. package/src/version.ts +1 -1
@@ -0,0 +1,425 @@
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
+ import {
3
+ CellDateInput,
4
+ CellTimeInput,
5
+ type CellDateInputImperativeHandle,
6
+ dateToTime,
7
+ timeToDate,
8
+ useTranslations,
9
+ type Time,
10
+ } from '@wix/patterns-fields';
11
+ import type { TimeInputImperativeActions } from '@wix/design-system';
12
+ import type { CellEditProps } from '../../types';
13
+ import { useCloseOnAncestorScroll } from '../../../../hooks/useCloseOnAncestorScroll';
14
+ import { mergeDate, mergeTime } from './mergeDateTime';
15
+ import {
16
+ datePlaceholder,
17
+ formatDatePart,
18
+ formatTimePart,
19
+ timePlaceholder,
20
+ } from './formatters';
21
+ import { isValidDate, setNativeInputValue } from './helpers';
22
+ import { useSubCellClickTracker } from './subCellContext';
23
+ import { classes } from './Edit.st.css.js';
24
+
25
+ /**
26
+ * DateTimeEdit — 2-in-1 sub-cell editor.
27
+ *
28
+ * Single `Date | null` value rendered as two halves (date | time) with a
29
+ * vertical divider. Each half has its own focus + edit lifecycle, but only
30
+ * one sub-cell is in edit mode at a time. Commits merge the half-value back
31
+ * into the full `Date` before calling onChange (so the other half is
32
+ * preserved).
33
+ *
34
+ * The EditableTable framework has no sub-cell concept — `focusedCell` /
35
+ * `editingCell` are `{rowKey, columnId}` only. So sub-cell focus, intra-cell
36
+ * Tab interception, and date-popover focused-day capture all live here.
37
+ */
38
+
39
+ type SubEdit = 'date' | 'time';
40
+
41
+ export const DateTimeEdit: React.FC<CellEditProps<Date | null>> = ({
42
+ value,
43
+ onChange,
44
+ onCommit,
45
+ onCancel,
46
+ inputRef,
47
+ editTrigger,
48
+ }) => {
49
+ const { t } = useTranslations();
50
+
51
+ // Initial sub-cell. The View records the clicked half via
52
+ // `onMouseDownCapture` (capture phase, before the framework's onClick
53
+ // stopPropagation) into the wrapper-provided tracker; consume it once.
54
+ const tracker = useSubCellClickTracker();
55
+ const [subEdit, setSubEdit] = useState<SubEdit>(() => {
56
+ if (editTrigger === 'click' || editTrigger === 'doubleClick') {
57
+ return tracker.consume() ?? 'date';
58
+ }
59
+ return 'date';
60
+ });
61
+
62
+ const dateWrapperRef = useRef<HTMLDivElement | null>(null);
63
+ const timeWrapperRef = useRef<HTMLDivElement | null>(null);
64
+ const datePickerRef = useRef<CellDateInputImperativeHandle | null>(null);
65
+ const timeInputRef = useRef<TimeInputImperativeActions | null>(null);
66
+ // Direct refs to the underlying <input> in each half. Populated by
67
+ // CellDateInput / CellTimeInput via their object-ref `inputRef` prop.
68
+ // Used for focus, programmatic typed-key forwarding, and the "is the
69
+ // date input focused?" check — instead of querySelector'ing into WDS
70
+ // internals.
71
+ const dateInputElRef = useRef<HTMLInputElement | null | undefined>(null);
72
+ const timeInputElRef = useRef<HTMLInputElement | null | undefined>(null);
73
+
74
+ const isInsideCell = useCallback((target: EventTarget | null): boolean => {
75
+ if (!(target instanceof Node)) {
76
+ return false;
77
+ }
78
+ return Boolean(
79
+ dateWrapperRef.current?.contains(target) ||
80
+ timeWrapperRef.current?.contains(target),
81
+ );
82
+ }, []);
83
+
84
+ // Latest date from the date input (typed or picked), NOT yet committed to
85
+ // editingValue. WDS DateInput's `componentDidUpdate` reformats the input
86
+ // text on every props.value change, so calling onChange while the user is
87
+ // still in the date half would overwrite mid-typing input. We stash here
88
+ // and flush on focusout / intra-cell Tab / Escape.
89
+ const typedDateRef = useRef<Date | null>(null);
90
+
91
+ const onChangeRef = useRef(onChange);
92
+ const onCommitRef = useRef(onCommit);
93
+ const valueRef = useRef(value);
94
+ const subEditRef = useRef(subEdit);
95
+ onChangeRef.current = onChange;
96
+ onCommitRef.current = onCommit;
97
+ valueRef.current = value;
98
+ subEditRef.current = subEdit;
99
+
100
+ // Type-to-edit trigger is consumed exactly once on mount. Without this
101
+ // guard, both type-forwarding effects below would re-inject the typed
102
+ // character every time `subEdit` changes (Tab between halves), because
103
+ // `editTrigger` stays stable for the lifetime of the edit session.
104
+ const typeTriggerConsumedRef = useRef(false);
105
+
106
+ const commitTypedDate = useCallback(() => {
107
+ if (typedDateRef.current) {
108
+ onChangeRef.current(typedDateRef.current);
109
+ typedDateRef.current = null;
110
+ }
111
+ }, []);
112
+
113
+ const closeCalendar = useCallback(
114
+ () => datePickerRef.current?.closeCalendar(),
115
+ [],
116
+ );
117
+ useCloseOnAncestorScroll(dateWrapperRef, closeCalendar, subEdit === 'date');
118
+
119
+ const closeTimeDropdown = useCallback(() => timeInputRef.current?.blur(), []);
120
+ useCloseOnAncestorScroll(
121
+ timeWrapperRef,
122
+ closeTimeDropdown,
123
+ subEdit === 'time',
124
+ );
125
+
126
+ // Flush typed-but-not-committed date when focus leaves the date half. The
127
+ // gesture paths (calendar day pick, Tab/Enter on focused day, intra-cell
128
+ // Tab, Enter on input) flush via their own handlers; this covers external
129
+ // exits — clicking another cell, the toolbar, or anything else outside
130
+ // the date wrapper. Without it the framework's commitEdit (triggered by
131
+ // the focus shift to another cell) would read the stale editingValue and
132
+ // silently discard the user's typing.
133
+ useEffect(() => {
134
+ if (subEdit !== 'date') {
135
+ return;
136
+ }
137
+ const wrapper = dateWrapperRef.current;
138
+ if (!wrapper) {
139
+ return;
140
+ }
141
+ const onFocusOut = (e: FocusEvent) => {
142
+ const next = e.relatedTarget as Node | null;
143
+ if (next && wrapper.contains(next)) {
144
+ return;
145
+ }
146
+ commitTypedDate();
147
+ };
148
+ wrapper.addEventListener('focusout', onFocusOut);
149
+ return () => {
150
+ wrapper.removeEventListener('focusout', onFocusOut);
151
+ };
152
+ }, [subEdit, commitTypedDate]);
153
+
154
+ // Focus active sub-input on mount / sub-cell switch. Deferred via rAF so
155
+ // any in-flight click chain finishes before WDS dropdown options mount —
156
+ // otherwise a stray mousedown can land on a freshly-rendered option and
157
+ // silently commit a value the user never picked.
158
+ useEffect(() => {
159
+ if (subEdit === 'time') {
160
+ const raf = requestAnimationFrame(() => {
161
+ const input = timeInputElRef.current;
162
+ if (input) {
163
+ input.focus();
164
+ input.click(); // auto-open WDS TimeInput dropdown
165
+ }
166
+ });
167
+ return () => cancelAnimationFrame(raf);
168
+ }
169
+ const raf = requestAnimationFrame(() => {
170
+ datePickerRef.current?.focus();
171
+ });
172
+ return () => cancelAnimationFrame(raf);
173
+ }, [subEdit]);
174
+
175
+ // Type-to-edit: forward the typed character into the initial sub-cell's
176
+ // input. Runs once via typeTriggerConsumedRef — re-running on sub-cell
177
+ // switches would re-inject the digit every time the user Tabs between the
178
+ // date and time halves (editTrigger stays stable for the whole session).
179
+ useEffect(() => {
180
+ if (typeTriggerConsumedRef.current) {
181
+ return;
182
+ }
183
+ if (
184
+ !editTrigger ||
185
+ typeof editTrigger !== 'object' ||
186
+ editTrigger.kind !== 'type'
187
+ ) {
188
+ return;
189
+ }
190
+ typeTriggerConsumedRef.current = true;
191
+ const key = editTrigger.key;
192
+ if (key.length !== 1) {
193
+ return;
194
+ }
195
+ const raf = requestAnimationFrame(() => {
196
+ if (subEditRef.current === 'date') {
197
+ datePickerRef.current?.openCalendar();
198
+ const dpInput = dateInputElRef.current;
199
+ if (dpInput) {
200
+ setNativeInputValue(dpInput, key);
201
+ }
202
+ return;
203
+ }
204
+ const input = timeInputElRef.current;
205
+ if (input) {
206
+ setNativeInputValue(input, key);
207
+ }
208
+ });
209
+ return () => cancelAnimationFrame(raf);
210
+ }, [editTrigger]);
211
+
212
+ // Wire inputRef to whichever sub-input is currently active.
213
+ useEffect(() => {
214
+ if (!inputRef) {
215
+ return;
216
+ }
217
+ inputRef.current =
218
+ (subEdit === 'time' ? timeInputElRef.current : dateInputElRef.current) ??
219
+ undefined;
220
+ }, [subEdit, inputRef]);
221
+
222
+ // Intra-cell Tab (date → time, Shift+Tab time → date). Document-capture
223
+ // so we run BEFORE the table's useKeyboardNavigation Tab handler — the
224
+ // framework only sees the Tab that should actually exit the cell.
225
+ useEffect(() => {
226
+ const onKeyDownCapture = (e: KeyboardEvent) => {
227
+ if (e.key !== 'Tab') {
228
+ return;
229
+ }
230
+ if (!isInsideCell(e.target)) {
231
+ return;
232
+ }
233
+
234
+ if (!e.shiftKey && subEditRef.current === 'date') {
235
+ e.preventDefault();
236
+ e.stopImmediatePropagation();
237
+ commitTypedDate();
238
+ setSubEdit('time');
239
+ return;
240
+ }
241
+ if (e.shiftKey && subEditRef.current === 'time') {
242
+ e.preventDefault();
243
+ e.stopImmediatePropagation();
244
+ setSubEdit('date');
245
+ return;
246
+ }
247
+ };
248
+ document.addEventListener('keydown', onKeyDownCapture, true);
249
+ return () => {
250
+ document.removeEventListener('keydown', onKeyDownCapture, true);
251
+ };
252
+ }, [commitTypedDate, isInsideCell]);
253
+
254
+ // Click on the inactive sub-cell switches sub-edit. pointerdown capture
255
+ // only: calling preventDefault on a primary pointer's pointerdown
256
+ // suppresses the synthesized mousedown / click that would otherwise let
257
+ // WDS DropdownBase.onSelect commit whichever option happens to sit under
258
+ // the click coords. Pair with the rAF defer on dropdown open above.
259
+ useEffect(() => {
260
+ const onPointerDown = (e: PointerEvent) => {
261
+ if (!isInsideCell(e.target)) {
262
+ return;
263
+ }
264
+ const target = e.target as HTMLElement | null;
265
+ const sub = (
266
+ target?.closest('[data-sub-cell]') as HTMLElement | null
267
+ )?.getAttribute('data-sub-cell');
268
+ if (sub !== 'date' && sub !== 'time') {
269
+ return;
270
+ }
271
+ if (sub === subEditRef.current) {
272
+ return;
273
+ }
274
+ e.preventDefault();
275
+ e.stopImmediatePropagation();
276
+ setSubEdit(sub as SubEdit);
277
+ };
278
+ document.addEventListener('pointerdown', onPointerDown, true);
279
+ return () => {
280
+ document.removeEventListener('pointerdown', onPointerDown, true);
281
+ };
282
+ }, [isInsideCell]);
283
+
284
+ const handleDateChange = useCallback((newDate: Date) => {
285
+ // Stash, don't commit — WDS DateInput reformats input text on every
286
+ // props.value change, clobbering mid-typing input. The focusout effect
287
+ // (and intra-cell Tab) flushes this to editingValue at the right moment.
288
+ typedDateRef.current = mergeDate(valueRef.current, newDate);
289
+ }, []);
290
+
291
+ const handleTimeChange = useCallback(
292
+ (time: Time | null) => {
293
+ if (!time) {
294
+ // Per spec: no clear on the time half. CellTimeInput's clear button
295
+ // is suppressed (no onClear prop). If WDS somehow emits null, no-op.
296
+ return;
297
+ }
298
+ const asDate = timeToDate(time);
299
+ const merged = mergeTime(valueRef.current, asDate);
300
+ onChange(merged);
301
+ onCommit();
302
+ },
303
+ [onChange, onCommit],
304
+ );
305
+
306
+ // Clears the entire DateTime value. Wired to the date half's clear (X)
307
+ // button — the single "remove this DateTime" affordance. Time half has no
308
+ // clear button: there is no "date set, time null" state.
309
+ const handleDateClear = useCallback(() => {
310
+ // Drop any stashed typed date so the focusout flush doesn't restore it
311
+ // after we commit null.
312
+ typedDateRef.current = null;
313
+ onChange(null);
314
+ onCommit();
315
+ }, [onChange, onCommit]);
316
+
317
+ const handleEscape = useCallback(
318
+ (e: React.KeyboardEvent) => {
319
+ if (e.key === 'Escape') {
320
+ e.preventDefault();
321
+ e.stopPropagation();
322
+ // Cancellation drops any typed-but-stashed date. Without this, a
323
+ // delayed focusout (browsers fire blur asynchronously when the
324
+ // focused element is removed) could re-introduce the typed value
325
+ // after the user already pressed Escape.
326
+ typedDateRef.current = null;
327
+ onCancel();
328
+ }
329
+ },
330
+ [onCancel],
331
+ );
332
+
333
+ const validDate = isValidDate(value) ? value : null;
334
+
335
+ const timeAsString: Time | null = validDate ? dateToTime(validDate) : null;
336
+
337
+ const placeholderTokens = {
338
+ day: t('CMS.cellDateTime.placeholder.day'),
339
+ month: t('CMS.cellDateTime.placeholder.month'),
340
+ year: t('CMS.cellDateTime.placeholder.year'),
341
+ hour: t('CMS.cellDateTime.placeholder.hour'),
342
+ minute: t('CMS.cellDateTime.placeholder.minute'),
343
+ };
344
+ const datePh = datePlaceholder(placeholderTokens);
345
+ const timePh = timePlaceholder(placeholderTokens);
346
+
347
+ // Event-suppression layers in this component, by owner:
348
+ // 1. halfHandlers.onClick / onMouseDown (React, below)
349
+ // → swallow the framework's "click inside cell during edit" handling
350
+ // so clicks on either half don't re-trigger an edit start.
351
+ // 2. halfHandlers.onKeyDown = handleEscape (React, below)
352
+ // → cancels the edit before the framework's Escape behavior runs.
353
+ // 3. document keydown capture for intra-cell Tab (useEffect above)
354
+ // → date↔time half switch runs BEFORE the framework's Tab handler
355
+ // would move focus to the next column.
356
+ // 4. document pointerdown capture for sub-cell switch (useEffect above)
357
+ // → click on the inactive half switches subEdit without committing,
358
+ // and preventDefault suppresses the synthesized mousedown/click
359
+ // that would otherwise let WDS DropdownBase.onSelect commit a
360
+ // random option under the cursor.
361
+ const halfHandlers = {
362
+ onKeyDown: handleEscape,
363
+ onClick: (e: React.MouseEvent) => e.stopPropagation(),
364
+ onMouseDown: (e: React.MouseEvent) => e.stopPropagation(),
365
+ };
366
+
367
+ return (
368
+ <>
369
+ <div
370
+ ref={dateWrapperRef}
371
+ data-sub-cell="date"
372
+ className={classes.dateHalf}
373
+ {...halfHandlers}
374
+ >
375
+ {subEdit === 'date' ? (
376
+ <CellDateInput
377
+ ref={datePickerRef}
378
+ inputRef={dateInputElRef}
379
+ value={validDate}
380
+ onChange={handleDateChange}
381
+ onClear={handleDateClear}
382
+ placeholder={datePh}
383
+ ariaLabel={t('CMS.cellDateTime.ariaLabel.date')}
384
+ hidePrefix
385
+ dataHook="datetime-date-edit"
386
+ />
387
+ ) : validDate ? (
388
+ <span className={classes.passiveText}>
389
+ {formatDatePart(validDate)}
390
+ </span>
391
+ ) : (
392
+ <span className={classes.placeholderText}>{datePh}</span>
393
+ )}
394
+ </div>
395
+
396
+ <span aria-hidden className={classes.divider} />
397
+
398
+ <div
399
+ ref={timeWrapperRef}
400
+ data-sub-cell="time"
401
+ className={classes.timeHalf}
402
+ aria-label={t('CMS.cellDateTime.ariaLabel.time')}
403
+ {...halfHandlers}
404
+ >
405
+ {subEdit === 'time' ? (
406
+ <CellTimeInput
407
+ ref={timeInputRef}
408
+ inputRef={timeInputElRef}
409
+ value={timeAsString}
410
+ onChange={handleTimeChange}
411
+ placeholder={timePh}
412
+ clearable={false}
413
+ dataHook="datetime-time-edit"
414
+ />
415
+ ) : validDate ? (
416
+ <span className={classes.passiveText}>
417
+ {formatTimePart(validDate)}
418
+ </span>
419
+ ) : (
420
+ <span className={classes.placeholderText}>{timePh}</span>
421
+ )}
422
+ </div>
423
+ </>
424
+ );
425
+ };
@@ -0,0 +1,19 @@
1
+ import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
2
+ import { baseUniDriverFactory } from '../../../../unidriver';
3
+
4
+ export function DateTimeEditUniDriver(base: UniDriver, _body: UniDriver) {
5
+ const dateHalf = () => base.$('[data-sub-cell="date"]');
6
+ const timeHalf = () => base.$('[data-sub-cell="time"]');
7
+
8
+ return {
9
+ ...baseUniDriverFactory(base),
10
+ getDateInputValue: () => dateHalf().$('input').attr('value'),
11
+ getTimeInputValue: () => timeHalf().$('input').attr('value'),
12
+ clickDateHalf: () => dateHalf().click(),
13
+ clickTimeHalf: () => timeHalf().click(),
14
+ dateHalfHasInput: () => dateHalf().$('input').exists(),
15
+ timeHalfHasInput: () => timeHalf().$('input').exists(),
16
+ hasTimeClearButton: () =>
17
+ timeHalf().$('[data-hook="cell-time-input-clear"]').exists(),
18
+ };
19
+ }
@@ -0,0 +1,36 @@
1
+ @property st-global(--wds-color-text-placeholder);
2
+ @property st-global(--wds-color-border-standard);
3
+
4
+ .leaf {
5
+ min-width: 0;
6
+ padding: 9px 12px;
7
+ overflow: hidden;
8
+ text-overflow: ellipsis;
9
+ white-space: nowrap;
10
+ font-size: 14px;
11
+ line-height: 18px;
12
+ font-family: inherit;
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ .datePart {
17
+ -st-extends: leaf;
18
+ flex: 60 1 0;
19
+ }
20
+
21
+ .timePart {
22
+ -st-extends: leaf;
23
+ flex: 40 1 0;
24
+ }
25
+
26
+ .placeholder {
27
+ -st-extends: leaf;
28
+ color: var(--wds-color-text-placeholder, #868aa5);
29
+ }
30
+
31
+ .divider {
32
+ width: 1px;
33
+ height: 16px;
34
+ background: var(--wds-color-border-standard, #dfe5eb);
35
+ flex-shrink: 0;
36
+ }
@@ -0,0 +1,25 @@
1
+ // @ts-nocheck
2
+
3
+
4
+ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.js";
5
+
6
+
7
+
8
+ var _namespace_ = "View3728138641";
9
+ var _style_ = classesRuntime.bind(null, _namespace_);
10
+
11
+ export var cssStates = statesRuntime.bind(null, _namespace_);
12
+ export var style = _style_;
13
+ export var st: import("@stylable/runtime").STFunction = _style_;
14
+
15
+ export var namespace = _namespace_;
16
+ export var classes = {"root":"View3728138641__root","leaf":"View3728138641__leaf","datePart":"View3728138641__datePart View3728138641__leaf","timePart":"View3728138641__timePart View3728138641__leaf","placeholder":"View3728138641__placeholder View3728138641__leaf","divider":"View3728138641__divider"};
17
+ export var keyframes = {};
18
+ export var layers = {};
19
+ export var containers = {};
20
+ export var stVars = {};
21
+ export var vars = {"wds-color-text-placeholder":"--wds-color-text-placeholder","wds-color-border-standard":"--wds-color-border-standard"};
22
+
23
+
24
+
25
+
@@ -0,0 +1,47 @@
1
+ import React, { useCallback } from 'react';
2
+ import { useTranslations } from '@wix/patterns-fields';
3
+ import type { CellViewProps } from '../../types';
4
+ import { formatDatePart, formatTimePart } from './formatters';
5
+ import { isValidDate } from './helpers';
6
+ import { useSubCellClickTracker, type SubCell } from './subCellContext';
7
+ import { classes } from './View.st.css.js';
8
+
9
+ export const DateTimeView: React.FC<CellViewProps<Date | null>> = ({
10
+ value,
11
+ }) => {
12
+ const { t } = useTranslations();
13
+ const tracker = useSubCellClickTracker();
14
+
15
+ const recordClick = useCallback(
16
+ (sub: SubCell) => () => tracker.record(sub),
17
+ [tracker],
18
+ );
19
+
20
+ if (!isValidDate(value)) {
21
+ return (
22
+ <span className={classes.placeholder}>
23
+ {t('CMS.cellDateTime.placeholder')}
24
+ </span>
25
+ );
26
+ }
27
+
28
+ return (
29
+ <>
30
+ <span
31
+ data-sub-cell="date"
32
+ className={classes.datePart}
33
+ onMouseDownCapture={recordClick('date')}
34
+ >
35
+ {formatDatePart(value)}
36
+ </span>
37
+ <span aria-hidden className={classes.divider} />
38
+ <span
39
+ data-sub-cell="time"
40
+ className={classes.timePart}
41
+ onMouseDownCapture={recordClick('time')}
42
+ >
43
+ {formatTimePart(value)}
44
+ </span>
45
+ </>
46
+ );
47
+ };
@@ -0,0 +1,16 @@
1
+ import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
2
+ import { baseUniDriverFactory } from '../../../../unidriver';
3
+
4
+ export function DateTimeViewUniDriver(base: UniDriver, _body: UniDriver) {
5
+ return {
6
+ ...baseUniDriverFactory(base),
7
+ getFormattedDate: () => base.$('[data-sub-cell="date"]').text(),
8
+ getFormattedTime: () => base.$('[data-sub-cell="time"]').text(),
9
+ getPlaceholder: () => base.text(),
10
+ hasDivider: () =>
11
+ base
12
+ .$$('[aria-hidden]')
13
+ .count()
14
+ .then((n) => n > 0),
15
+ };
16
+ }
@@ -0,0 +1,60 @@
1
+ import { isValidDate } from './helpers';
2
+
3
+ const dateFormatter = new Intl.DateTimeFormat(undefined, {
4
+ day: '2-digit',
5
+ month: '2-digit',
6
+ year: 'numeric',
7
+ });
8
+
9
+ const timeFormatter = new Intl.DateTimeFormat(undefined, {
10
+ hour: 'numeric',
11
+ minute: '2-digit',
12
+ });
13
+
14
+ export const formatDatePart = (value: Date | null): string =>
15
+ isValidDate(value) ? dateFormatter.format(value) : '';
16
+
17
+ export const formatTimePart = (value: Date | null): string =>
18
+ isValidDate(value) ? timeFormatter.format(value) : '';
19
+
20
+ const DATE_PLACEHOLDER_SAMPLE = new Date(2026, 0, 31);
21
+ const TIME_PLACEHOLDER_SAMPLE = new Date(2026, 0, 1, 13, 30);
22
+
23
+ /** Looked up via the consumer's `t()` so each token is translatable. */
24
+ export interface PlaceholderTokens {
25
+ day: string;
26
+ month: string;
27
+ year: string;
28
+ hour: string;
29
+ minute: string;
30
+ }
31
+
32
+ /**
33
+ * Derives an input placeholder from the current locale's date format by
34
+ * replacing each part with its translated stand-in (DD, MM, YYYY). E.g.
35
+ * `MM/DD/YYYY` in en-US, `DD.MM.YYYY` in de-DE, `YYYY/MM/DD` in ja-JP.
36
+ */
37
+ export const datePlaceholder = (tokens: PlaceholderTokens): string =>
38
+ dateFormatter
39
+ .formatToParts(DATE_PLACEHOLDER_SAMPLE)
40
+ .map((part) => {
41
+ if (part.type === 'day') return tokens.day;
42
+ if (part.type === 'month') return tokens.month;
43
+ if (part.type === 'year') return tokens.year;
44
+ return part.value;
45
+ })
46
+ .join('');
47
+
48
+ /**
49
+ * Derives a time input placeholder from the current locale's time format.
50
+ * E.g. `HH:MM AM` in en-US (12-hour) or `HH:MM` in de-DE (24-hour).
51
+ */
52
+ export const timePlaceholder = (tokens: PlaceholderTokens): string =>
53
+ timeFormatter
54
+ .formatToParts(TIME_PLACEHOLDER_SAMPLE)
55
+ .map((part) => {
56
+ if (part.type === 'hour') return tokens.hour;
57
+ if (part.type === 'minute') return tokens.minute;
58
+ return part.value;
59
+ })
60
+ .join('');
@@ -0,0 +1,33 @@
1
+ export const isValidDate = (d: unknown): d is Date =>
2
+ d instanceof Date && !isNaN(d.getTime());
3
+
4
+ export const toValidDate = (
5
+ value: Date | string | null | undefined,
6
+ ): Date | null => {
7
+ if (value == null) {
8
+ return null;
9
+ }
10
+ const date = value instanceof Date ? value : new Date(value);
11
+ return isValidDate(date) ? date : null;
12
+ };
13
+
14
+ /**
15
+ * Bypass React's synthetic event system to set a controlled <input>'s value
16
+ * AND fire an `input` event that React's listener picks up. Used for the
17
+ * type-to-edit gesture: forward the keystroke that triggered edit into the
18
+ * underlying WDS input without re-implementing its parsing.
19
+ */
20
+ export const setNativeInputValue = (
21
+ el: HTMLInputElement,
22
+ value: string,
23
+ ): void => {
24
+ const setter = Object.getOwnPropertyDescriptor(
25
+ HTMLInputElement.prototype,
26
+ 'value',
27
+ )?.set;
28
+ if (!setter) {
29
+ return;
30
+ }
31
+ setter.call(el, value);
32
+ el.dispatchEvent(new Event('input', { bubbles: true }));
33
+ };