@rakun-kit/manager-react 1.2.0 → 1.3.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 (722) hide show
  1. package/dist/cjs/app/app-provider.js +77 -1
  2. package/dist/cjs/app/app-provider.js.map +1 -1
  3. package/dist/cjs/app/media-picker.js +17 -0
  4. package/dist/cjs/app/media-picker.js.map +1 -0
  5. package/dist/cjs/app/root-providers.js +1 -1
  6. package/dist/cjs/app/root-providers.js.map +1 -1
  7. package/dist/cjs/app/runtime-app.js +4 -2
  8. package/dist/cjs/app/runtime-app.js.map +1 -1
  9. package/dist/cjs/client/http.js +44 -2
  10. package/dist/cjs/client/http.js.map +1 -1
  11. package/dist/cjs/client/request.js +2 -1
  12. package/dist/cjs/client/request.js.map +1 -1
  13. package/dist/cjs/components/LanguageSelector.js +4 -2
  14. package/dist/cjs/components/LanguageSelector.js.map +1 -1
  15. package/dist/cjs/components/PaginationController.js +10 -3
  16. package/dist/cjs/components/PaginationController.js.map +1 -1
  17. package/dist/cjs/components/app-sidebar.js +14 -8
  18. package/dist/cjs/components/app-sidebar.js.map +1 -1
  19. package/dist/cjs/components/boolean-indicator.js +14 -0
  20. package/dist/cjs/components/boolean-indicator.js.map +1 -0
  21. package/dist/cjs/components/manager-loading-fallback.js +1 -1
  22. package/dist/cjs/components/manager-loading-fallback.js.map +1 -1
  23. package/dist/cjs/components/media/MediaLibrary.js +10 -5
  24. package/dist/cjs/components/media/MediaLibrary.js.map +1 -1
  25. package/dist/cjs/components/media/contexts/MediaLibraryContext.js.map +1 -1
  26. package/dist/cjs/components/media/folders/FoldersTree.js +6 -8
  27. package/dist/cjs/components/media/folders/FoldersTree.js.map +1 -1
  28. package/dist/cjs/components/media/previews/MediaContextMenuContent.js +3 -2
  29. package/dist/cjs/components/media/previews/MediaContextMenuContent.js.map +1 -1
  30. package/dist/cjs/components/media/previews/Previews.js +377 -77
  31. package/dist/cjs/components/media/previews/Previews.js.map +1 -1
  32. package/dist/cjs/components/media/previews/context/MediaPreviewContext.js.map +1 -1
  33. package/dist/cjs/components/media/previews/dialogs/ExpandedPreviewDialog.js +37 -13
  34. package/dist/cjs/components/media/previews/dialogs/ExpandedPreviewDialog.js.map +1 -1
  35. package/dist/cjs/components/media/previews/dialogs/MediaDeleteDialog.js +10 -1
  36. package/dist/cjs/components/media/previews/dialogs/MediaDeleteDialog.js.map +1 -1
  37. package/dist/cjs/components/media/previews/dialogs/MediaImageEditorDialog.js +418 -0
  38. package/dist/cjs/components/media/previews/dialogs/MediaImageEditorDialog.js.map +1 -0
  39. package/dist/cjs/components/media/previews/dialogs/MediaMoveDialog.js +5 -1
  40. package/dist/cjs/components/media/previews/dialogs/MediaMoveDialog.js.map +1 -1
  41. package/dist/cjs/components/media/previews/toolbar/PreviewsToolbar.js +12 -5
  42. package/dist/cjs/components/media/previews/toolbar/PreviewsToolbar.js.map +1 -1
  43. package/dist/cjs/components/media/previews/views/PreviewsGridLargeView.js +2 -2
  44. package/dist/cjs/components/media/previews/views/PreviewsGridLargeView.js.map +1 -1
  45. package/dist/cjs/components/media/previews/views/PreviewsGridSmallView.js +2 -2
  46. package/dist/cjs/components/media/previews/views/PreviewsGridSmallView.js.map +1 -1
  47. package/dist/cjs/components/media/previews/views/PreviewsListView.js +15 -2
  48. package/dist/cjs/components/media/previews/views/PreviewsListView.js.map +1 -1
  49. package/dist/cjs/components/nav-secondary.js +4 -1
  50. package/dist/cjs/components/nav-secondary.js.map +1 -1
  51. package/dist/cjs/components/nav-user.js +9 -6
  52. package/dist/cjs/components/nav-user.js.map +1 -1
  53. package/dist/cjs/components/ui/button.js +59 -13
  54. package/dist/cjs/components/ui/button.js.map +1 -1
  55. package/dist/cjs/components/ui/data-table.js +24 -21
  56. package/dist/cjs/components/ui/data-table.js.map +1 -1
  57. package/dist/cjs/components/ui/sidebar.js +31 -32
  58. package/dist/cjs/components/ui/sidebar.js.map +1 -1
  59. package/dist/cjs/components/ui/skeleton.js +1 -1
  60. package/dist/cjs/components/ui/skeleton.js.map +1 -1
  61. package/dist/cjs/components/ui/tags-input.js +1 -1
  62. package/dist/cjs/components/ui/tags-input.js.map +1 -1
  63. package/dist/cjs/components/ui/tour.js +981 -0
  64. package/dist/cjs/components/ui/tour.js.map +1 -0
  65. package/dist/cjs/components/user-avatar.js +39 -0
  66. package/dist/cjs/components/user-avatar.js.map +1 -0
  67. package/dist/cjs/help/manager-help.js +131 -0
  68. package/dist/cjs/help/manager-help.js.map +1 -0
  69. package/dist/cjs/help/registry.js +39 -0
  70. package/dist/cjs/help/registry.js.map +1 -0
  71. package/dist/cjs/help/types.js +3 -0
  72. package/dist/cjs/help/types.js.map +1 -0
  73. package/dist/cjs/layouts.js +3 -2
  74. package/dist/cjs/layouts.js.map +1 -1
  75. package/dist/cjs/lib/media.js +9 -0
  76. package/dist/cjs/lib/media.js.map +1 -1
  77. package/dist/cjs/media.js +9 -0
  78. package/dist/cjs/media.js.map +1 -1
  79. package/dist/cjs/router/dashboard/[contentType]/(list)/columns.js +57 -5
  80. package/dist/cjs/router/dashboard/[contentType]/(list)/columns.js.map +1 -1
  81. package/dist/cjs/router/dashboard/[contentType]/(list)/delete.js +5 -3
  82. package/dist/cjs/router/dashboard/[contentType]/(list)/delete.js.map +1 -1
  83. package/dist/cjs/router/dashboard/[contentType]/(list)/list.js +269 -19
  84. package/dist/cjs/router/dashboard/[contentType]/(list)/list.js.map +1 -1
  85. package/dist/cjs/router/dashboard/[contentType]/(list)/screen.js +1 -1
  86. package/dist/cjs/router/dashboard/[contentType]/(list)/screen.js.map +1 -1
  87. package/dist/cjs/router/dashboard/[contentType]/(list)/tour.js +24 -0
  88. package/dist/cjs/router/dashboard/[contentType]/(list)/tour.js.map +1 -0
  89. package/dist/cjs/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js +70 -25
  90. package/dist/cjs/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js.map +1 -1
  91. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/DocumentTranslationDialog.js +45 -0
  92. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/DocumentTranslationDialog.js.map +1 -0
  93. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +19 -0
  94. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -0
  95. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js +33 -0
  96. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js.map +1 -0
  97. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js +20 -0
  98. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js.map +1 -0
  99. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/RouteLayoutModuleTabContent.js +83 -0
  100. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/RouteLayoutModuleTabContent.js.map +1 -0
  101. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/TrashDialogs.js +14 -0
  102. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/TrashDialogs.js.map +1 -0
  103. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/Versions.js +371 -0
  104. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/Versions.js.map +1 -0
  105. package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +206 -0
  106. package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -0
  107. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Date/DateTimeUI.js +2 -2
  108. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Date/DateTimeUI.js.map +1 -1
  109. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Date/DateUI.js +2 -2
  110. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Date/DateUI.js.map +1 -1
  111. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Date/TimeUI.js +2 -2
  112. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Date/TimeUI.js.map +1 -1
  113. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +114 -44
  114. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
  115. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js +3 -3
  116. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js.map +1 -1
  117. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js +18 -1
  118. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js.map +1 -1
  119. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/NumberField/NumberUI.js +2 -2
  120. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/NumberField/NumberUI.js.map +1 -1
  121. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/RelationField/SelfRelationUI.js +117 -0
  122. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/RelationField/SelfRelationUI.js.map +1 -0
  123. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/RelationField/index.js +2 -0
  124. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/RelationField/index.js.map +1 -1
  125. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/EmailUI.js +2 -2
  126. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/EmailUI.js.map +1 -1
  127. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/PasswordUI.js +2 -2
  128. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/PasswordUI.js.map +1 -1
  129. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/SlugUI.js +2 -2
  130. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/SlugUI.js.map +1 -1
  131. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/TextUI.js +2 -2
  132. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/TextUI.js.map +1 -1
  133. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/TextareaUI.js +2 -2
  134. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/TextareaUI.js.map +1 -1
  135. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/UrlUi.js +2 -2
  136. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/StringField/UrlUi.js.map +1 -1
  137. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/FieldWrapper.js +5 -0
  138. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/FieldWrapper.js.map +1 -1
  139. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/condition-state.js +9 -0
  140. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/condition-state.js.map +1 -0
  141. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/condition.js +50 -0
  142. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/condition.js.map +1 -0
  143. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +165 -0
  144. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -0
  145. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js +230 -0
  146. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js.map +1 -0
  147. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentTypeSections.js +38 -0
  148. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentTypeSections.js.map +1 -0
  149. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useEditFormController.js +59 -0
  150. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useEditFormController.js.map +1 -0
  151. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useEditTabErrors.js +33 -0
  152. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useEditTabErrors.js.map +1 -0
  153. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useRouteLayoutData.js +92 -0
  154. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useRouteLayoutData.js.map +1 -0
  155. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useTranslationDialogState.js +34 -0
  156. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useTranslationDialogState.js.map +1 -0
  157. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.js +23 -285
  158. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.js.map +1 -1
  159. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.styles.js +12 -0
  160. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.styles.js.map +1 -0
  161. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.types.js +3 -0
  162. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.types.js.map +1 -0
  163. package/dist/cjs/router/dashboard/[contentType]/[edit]/screen.js +2 -2
  164. package/dist/cjs/router/dashboard/[contentType]/[edit]/screen.js.map +1 -1
  165. package/dist/cjs/router/dashboard/[contentType]/[edit]/tour.js +36 -0
  166. package/dist/cjs/router/dashboard/[contentType]/[edit]/tour.js.map +1 -0
  167. package/dist/cjs/router/dashboard/[contentType]/create/screen.js +2 -2
  168. package/dist/cjs/router/dashboard/[contentType]/create/screen.js.map +1 -1
  169. package/dist/cjs/router/dashboard/[contentType]/create/tour.js +30 -0
  170. package/dist/cjs/router/dashboard/[contentType]/create/tour.js.map +1 -0
  171. package/dist/cjs/router/dashboard/account/mfa/Mfa.js +1 -1
  172. package/dist/cjs/router/dashboard/account/mfa/Mfa.js.map +1 -1
  173. package/dist/cjs/router/dashboard/account/screen.js +84 -3
  174. package/dist/cjs/router/dashboard/account/screen.js.map +1 -1
  175. package/dist/cjs/router/dashboard/account/sessions/Sessions.js +1 -1
  176. package/dist/cjs/router/dashboard/account/sessions/Sessions.js.map +1 -1
  177. package/dist/cjs/router/dashboard/account/sessions/columns.js +2 -1
  178. package/dist/cjs/router/dashboard/account/sessions/columns.js.map +1 -1
  179. package/dist/cjs/router/dashboard/account/tour.js +30 -0
  180. package/dist/cjs/router/dashboard/account/tour.js.map +1 -0
  181. package/dist/cjs/router/dashboard/api-routes/ApiTest.js +33 -31
  182. package/dist/cjs/router/dashboard/api-routes/ApiTest.js.map +1 -1
  183. package/dist/cjs/router/dashboard/api-routes/SchemaViewer.js +92 -0
  184. package/dist/cjs/router/dashboard/api-routes/SchemaViewer.js.map +1 -0
  185. package/dist/cjs/router/dashboard/api-routes/screen.js +6 -0
  186. package/dist/cjs/router/dashboard/api-routes/screen.js.map +1 -1
  187. package/dist/cjs/router/dashboard/api-routes/shared.js +4 -5
  188. package/dist/cjs/router/dashboard/api-routes/shared.js.map +1 -1
  189. package/dist/cjs/router/dashboard/api-routes/test.js +8 -3
  190. package/dist/cjs/router/dashboard/api-routes/test.js.map +1 -1
  191. package/dist/cjs/router/dashboard/api-routes/tour.js +30 -0
  192. package/dist/cjs/router/dashboard/api-routes/tour.js.map +1 -0
  193. package/dist/cjs/router/dashboard/media/tour.js +30 -0
  194. package/dist/cjs/router/dashboard/media/tour.js.map +1 -0
  195. package/dist/cjs/router/dashboard/settings/languages/columns.js +11 -13
  196. package/dist/cjs/router/dashboard/settings/languages/columns.js.map +1 -1
  197. package/dist/cjs/router/dashboard/settings/languages/screen.js +3 -2
  198. package/dist/cjs/router/dashboard/settings/languages/screen.js.map +1 -1
  199. package/dist/cjs/router/dashboard/settings/literals/screen.js +47 -36
  200. package/dist/cjs/router/dashboard/settings/literals/screen.js.map +1 -1
  201. package/dist/cjs/router/dashboard/settings/literals/tour.js +24 -0
  202. package/dist/cjs/router/dashboard/settings/literals/tour.js.map +1 -0
  203. package/dist/cjs/router/dashboard/settings/redirects/columns.js +2 -1
  204. package/dist/cjs/router/dashboard/settings/redirects/columns.js.map +1 -1
  205. package/dist/cjs/router/dashboard/settings/redirects/screen.js +78 -100
  206. package/dist/cjs/router/dashboard/settings/redirects/screen.js.map +1 -1
  207. package/dist/cjs/router/dashboard/settings/redirects/tour.js +24 -0
  208. package/dist/cjs/router/dashboard/settings/redirects/tour.js.map +1 -0
  209. package/dist/cjs/router/dashboard/settings/robots/columns.js +54 -0
  210. package/dist/cjs/router/dashboard/settings/robots/columns.js.map +1 -0
  211. package/dist/cjs/router/dashboard/settings/robots/index.js +6 -0
  212. package/dist/cjs/router/dashboard/settings/robots/index.js.map +1 -0
  213. package/dist/cjs/router/dashboard/settings/robots/screen.js +180 -0
  214. package/dist/cjs/router/dashboard/settings/robots/screen.js.map +1 -0
  215. package/dist/cjs/router/dashboard/settings/routes/columns.js +3 -2
  216. package/dist/cjs/router/dashboard/settings/routes/columns.js.map +1 -1
  217. package/dist/cjs/router/dashboard/settings/routes/paths/columns.js +17 -7
  218. package/dist/cjs/router/dashboard/settings/routes/paths/columns.js.map +1 -1
  219. package/dist/cjs/router/dashboard/settings/routes/paths/screen.js +34 -2
  220. package/dist/cjs/router/dashboard/settings/routes/paths/screen.js.map +1 -1
  221. package/dist/cjs/router/dashboard/settings/routes/paths/tour.js +24 -0
  222. package/dist/cjs/router/dashboard/settings/routes/paths/tour.js.map +1 -0
  223. package/dist/cjs/router/dashboard/settings/routes/screen.js +10 -9
  224. package/dist/cjs/router/dashboard/settings/routes/screen.js.map +1 -1
  225. package/dist/cjs/router/dashboard/settings/routes/tour.js +24 -0
  226. package/dist/cjs/router/dashboard/settings/routes/tour.js.map +1 -0
  227. package/dist/cjs/router/dashboard/settings/screen.js +29 -6
  228. package/dist/cjs/router/dashboard/settings/screen.js.map +1 -1
  229. package/dist/cjs/router/dashboard/settings/seo/index.js +6 -0
  230. package/dist/cjs/router/dashboard/settings/seo/index.js.map +1 -0
  231. package/dist/cjs/router/dashboard/settings/seo/screen.js +109 -0
  232. package/dist/cjs/router/dashboard/settings/seo/screen.js.map +1 -0
  233. package/dist/cjs/router/dashboard/settings/system/index.js +6 -0
  234. package/dist/cjs/router/dashboard/settings/system/index.js.map +1 -0
  235. package/dist/cjs/router/dashboard/settings/system/screen.js +90 -0
  236. package/dist/cjs/router/dashboard/settings/system/screen.js.map +1 -0
  237. package/dist/cjs/router/dashboard/settings/system/tour.js +24 -0
  238. package/dist/cjs/router/dashboard/settings/system/tour.js.map +1 -0
  239. package/dist/cjs/router/dashboard/settings/tour.js +54 -0
  240. package/dist/cjs/router/dashboard/settings/tour.js.map +1 -0
  241. package/dist/cjs/router/dashboard/settings/user-roles/screen.js +3 -2
  242. package/dist/cjs/router/dashboard/settings/user-roles/screen.js.map +1 -1
  243. package/dist/cjs/router/dashboard/tour.js +30 -0
  244. package/dist/cjs/router/dashboard/tour.js.map +1 -0
  245. package/dist/cjs/router/dashboard/users/columns.js +2 -1
  246. package/dist/cjs/router/dashboard/users/columns.js.map +1 -1
  247. package/dist/cjs/router/dashboard/users/screen.js +8 -7
  248. package/dist/cjs/router/dashboard/users/screen.js.map +1 -1
  249. package/dist/cjs/router/dashboard/users/tour.js +24 -0
  250. package/dist/cjs/router/dashboard/users/tour.js.map +1 -0
  251. package/dist/cjs/router/shared/route-definitions.js +3 -1
  252. package/dist/cjs/router/shared/route-definitions.js.map +1 -1
  253. package/dist/cjs/router/shared/route-list.js +33 -3
  254. package/dist/cjs/router/shared/route-list.js.map +1 -1
  255. package/dist/cjs/router/shared/route-schema.js.map +1 -1
  256. package/dist/cjs/state/theme.js +33 -16
  257. package/dist/cjs/state/theme.js.map +1 -1
  258. package/dist/esm/app/app-provider.d.ts.map +1 -1
  259. package/dist/esm/app/app-provider.js +78 -2
  260. package/dist/esm/app/app-provider.js.map +1 -1
  261. package/dist/esm/app/media-picker.d.ts +3 -0
  262. package/dist/esm/app/media-picker.d.ts.map +1 -0
  263. package/dist/esm/app/media-picker.js +10 -0
  264. package/dist/esm/app/media-picker.js.map +1 -0
  265. package/dist/esm/app/root-providers.d.ts.map +1 -1
  266. package/dist/esm/app/root-providers.js +2 -2
  267. package/dist/esm/app/root-providers.js.map +1 -1
  268. package/dist/esm/app/runtime-app.d.ts +5 -1
  269. package/dist/esm/app/runtime-app.d.ts.map +1 -1
  270. package/dist/esm/app/runtime-app.js +4 -2
  271. package/dist/esm/app/runtime-app.js.map +1 -1
  272. package/dist/esm/client/http.d.ts +2 -1
  273. package/dist/esm/client/http.d.ts.map +1 -1
  274. package/dist/esm/client/http.js +42 -1
  275. package/dist/esm/client/http.js.map +1 -1
  276. package/dist/esm/client/request.d.ts +7 -1
  277. package/dist/esm/client/request.d.ts.map +1 -1
  278. package/dist/esm/client/request.js +2 -1
  279. package/dist/esm/client/request.js.map +1 -1
  280. package/dist/esm/components/LanguageSelector.js +4 -2
  281. package/dist/esm/components/LanguageSelector.js.map +1 -1
  282. package/dist/esm/components/PaginationController.d.ts +1 -0
  283. package/dist/esm/components/PaginationController.d.ts.map +1 -1
  284. package/dist/esm/components/PaginationController.js +10 -3
  285. package/dist/esm/components/PaginationController.js.map +1 -1
  286. package/dist/esm/components/app-sidebar.d.ts +2 -0
  287. package/dist/esm/components/app-sidebar.d.ts.map +1 -1
  288. package/dist/esm/components/app-sidebar.js +14 -8
  289. package/dist/esm/components/app-sidebar.js.map +1 -1
  290. package/dist/esm/components/boolean-indicator.d.ts +7 -0
  291. package/dist/esm/components/boolean-indicator.d.ts.map +1 -0
  292. package/dist/esm/components/boolean-indicator.js +11 -0
  293. package/dist/esm/components/boolean-indicator.js.map +1 -0
  294. package/dist/esm/components/manager-loading-fallback.d.ts.map +1 -1
  295. package/dist/esm/components/manager-loading-fallback.js +1 -1
  296. package/dist/esm/components/manager-loading-fallback.js.map +1 -1
  297. package/dist/esm/components/media/MediaLibrary.d.ts +1 -1
  298. package/dist/esm/components/media/MediaLibrary.d.ts.map +1 -1
  299. package/dist/esm/components/media/MediaLibrary.js +11 -6
  300. package/dist/esm/components/media/MediaLibrary.js.map +1 -1
  301. package/dist/esm/components/media/contexts/MediaLibraryContext.d.ts +2 -0
  302. package/dist/esm/components/media/contexts/MediaLibraryContext.d.ts.map +1 -1
  303. package/dist/esm/components/media/contexts/MediaLibraryContext.js.map +1 -1
  304. package/dist/esm/components/media/folders/FoldersTree.d.ts.map +1 -1
  305. package/dist/esm/components/media/folders/FoldersTree.js +6 -8
  306. package/dist/esm/components/media/folders/FoldersTree.js.map +1 -1
  307. package/dist/esm/components/media/previews/MediaContextMenuContent.d.ts.map +1 -1
  308. package/dist/esm/components/media/previews/MediaContextMenuContent.js +4 -3
  309. package/dist/esm/components/media/previews/MediaContextMenuContent.js.map +1 -1
  310. package/dist/esm/components/media/previews/Previews.d.ts.map +1 -1
  311. package/dist/esm/components/media/previews/Previews.js +344 -77
  312. package/dist/esm/components/media/previews/Previews.js.map +1 -1
  313. package/dist/esm/components/media/previews/context/MediaPreviewContext.d.ts +11 -0
  314. package/dist/esm/components/media/previews/context/MediaPreviewContext.d.ts.map +1 -1
  315. package/dist/esm/components/media/previews/context/MediaPreviewContext.js.map +1 -1
  316. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.d.ts +8 -2
  317. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.d.ts.map +1 -1
  318. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.js +43 -19
  319. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.js.map +1 -1
  320. package/dist/esm/components/media/previews/dialogs/MediaDeleteDialog.d.ts +1 -0
  321. package/dist/esm/components/media/previews/dialogs/MediaDeleteDialog.d.ts.map +1 -1
  322. package/dist/esm/components/media/previews/dialogs/MediaDeleteDialog.js +10 -1
  323. package/dist/esm/components/media/previews/dialogs/MediaDeleteDialog.js.map +1 -1
  324. package/dist/esm/components/media/previews/dialogs/MediaImageEditorDialog.d.ts +11 -0
  325. package/dist/esm/components/media/previews/dialogs/MediaImageEditorDialog.d.ts.map +1 -0
  326. package/dist/esm/components/media/previews/dialogs/MediaImageEditorDialog.js +415 -0
  327. package/dist/esm/components/media/previews/dialogs/MediaImageEditorDialog.js.map +1 -0
  328. package/dist/esm/components/media/previews/dialogs/MediaMoveDialog.d.ts +2 -1
  329. package/dist/esm/components/media/previews/dialogs/MediaMoveDialog.d.ts.map +1 -1
  330. package/dist/esm/components/media/previews/dialogs/MediaMoveDialog.js +6 -2
  331. package/dist/esm/components/media/previews/dialogs/MediaMoveDialog.js.map +1 -1
  332. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.d.ts +1 -0
  333. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.d.ts.map +1 -1
  334. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.js +14 -8
  335. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.js.map +1 -1
  336. package/dist/esm/components/media/previews/views/PreviewsGridLargeView.d.ts +1 -1
  337. package/dist/esm/components/media/previews/views/PreviewsGridLargeView.d.ts.map +1 -1
  338. package/dist/esm/components/media/previews/views/PreviewsGridLargeView.js +2 -2
  339. package/dist/esm/components/media/previews/views/PreviewsGridLargeView.js.map +1 -1
  340. package/dist/esm/components/media/previews/views/PreviewsGridSmallView.d.ts +1 -1
  341. package/dist/esm/components/media/previews/views/PreviewsGridSmallView.d.ts.map +1 -1
  342. package/dist/esm/components/media/previews/views/PreviewsGridSmallView.js +2 -2
  343. package/dist/esm/components/media/previews/views/PreviewsGridSmallView.js.map +1 -1
  344. package/dist/esm/components/media/previews/views/PreviewsListView.d.ts.map +1 -1
  345. package/dist/esm/components/media/previews/views/PreviewsListView.js +15 -2
  346. package/dist/esm/components/media/previews/views/PreviewsListView.js.map +1 -1
  347. package/dist/esm/components/nav-secondary.d.ts +2 -0
  348. package/dist/esm/components/nav-secondary.d.ts.map +1 -1
  349. package/dist/esm/components/nav-secondary.js +5 -2
  350. package/dist/esm/components/nav-secondary.js.map +1 -1
  351. package/dist/esm/components/nav-user.d.ts.map +1 -1
  352. package/dist/esm/components/nav-user.js +21 -18
  353. package/dist/esm/components/nav-user.js.map +1 -1
  354. package/dist/esm/components/ui/button.d.ts +1 -1
  355. package/dist/esm/components/ui/button.d.ts.map +1 -1
  356. package/dist/esm/components/ui/button.js +27 -14
  357. package/dist/esm/components/ui/button.js.map +1 -1
  358. package/dist/esm/components/ui/data-table.d.ts +5 -2
  359. package/dist/esm/components/ui/data-table.d.ts.map +1 -1
  360. package/dist/esm/components/ui/data-table.js +26 -23
  361. package/dist/esm/components/ui/data-table.js.map +1 -1
  362. package/dist/esm/components/ui/sidebar.d.ts.map +1 -1
  363. package/dist/esm/components/ui/sidebar.js +33 -34
  364. package/dist/esm/components/ui/sidebar.js.map +1 -1
  365. package/dist/esm/components/ui/skeleton.js +1 -1
  366. package/dist/esm/components/ui/skeleton.js.map +1 -1
  367. package/dist/esm/components/ui/tabs.d.ts +1 -1
  368. package/dist/esm/components/ui/tags-input.js +1 -1
  369. package/dist/esm/components/ui/tags-input.js.map +1 -1
  370. package/dist/esm/components/ui/tour.d.ts +105 -0
  371. package/dist/esm/components/ui/tour.d.ts.map +1 -0
  372. package/dist/esm/components/ui/tour.js +932 -0
  373. package/dist/esm/components/ui/tour.js.map +1 -0
  374. package/dist/esm/components/user-avatar.d.ts +13 -0
  375. package/dist/esm/components/user-avatar.d.ts.map +1 -0
  376. package/dist/esm/components/user-avatar.js +36 -0
  377. package/dist/esm/components/user-avatar.js.map +1 -0
  378. package/dist/esm/help/manager-help.d.ts +16 -0
  379. package/dist/esm/help/manager-help.d.ts.map +1 -0
  380. package/dist/esm/help/manager-help.js +127 -0
  381. package/dist/esm/help/manager-help.js.map +1 -0
  382. package/dist/esm/help/registry.d.ts +5 -0
  383. package/dist/esm/help/registry.d.ts.map +1 -0
  384. package/dist/esm/help/registry.js +35 -0
  385. package/dist/esm/help/registry.js.map +1 -0
  386. package/dist/esm/help/types.d.ts +16 -0
  387. package/dist/esm/help/types.d.ts.map +1 -0
  388. package/dist/esm/help/types.js +2 -0
  389. package/dist/esm/help/types.js.map +1 -0
  390. package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts +1 -1
  391. package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  392. package/dist/esm/layouts.d.ts +7 -4
  393. package/dist/esm/layouts.d.ts.map +1 -1
  394. package/dist/esm/layouts.js +8 -7
  395. package/dist/esm/layouts.js.map +1 -1
  396. package/dist/esm/lib/media.d.ts +14 -0
  397. package/dist/esm/lib/media.d.ts.map +1 -1
  398. package/dist/esm/lib/media.js +9 -0
  399. package/dist/esm/lib/media.js.map +1 -1
  400. package/dist/esm/media.d.ts +14 -0
  401. package/dist/esm/media.d.ts.map +1 -1
  402. package/dist/esm/media.js +9 -0
  403. package/dist/esm/media.js.map +1 -1
  404. package/dist/esm/router/dashboard/[contentType]/(list)/columns.d.ts +10 -1
  405. package/dist/esm/router/dashboard/[contentType]/(list)/columns.d.ts.map +1 -1
  406. package/dist/esm/router/dashboard/[contentType]/(list)/columns.js +58 -6
  407. package/dist/esm/router/dashboard/[contentType]/(list)/columns.js.map +1 -1
  408. package/dist/esm/router/dashboard/[contentType]/(list)/delete.d.ts +1 -0
  409. package/dist/esm/router/dashboard/[contentType]/(list)/delete.d.ts.map +1 -1
  410. package/dist/esm/router/dashboard/[contentType]/(list)/delete.js +5 -3
  411. package/dist/esm/router/dashboard/[contentType]/(list)/delete.js.map +1 -1
  412. package/dist/esm/router/dashboard/[contentType]/(list)/list.d.ts +1 -0
  413. package/dist/esm/router/dashboard/[contentType]/(list)/list.d.ts.map +1 -1
  414. package/dist/esm/router/dashboard/[contentType]/(list)/list.js +270 -20
  415. package/dist/esm/router/dashboard/[contentType]/(list)/list.js.map +1 -1
  416. package/dist/esm/router/dashboard/[contentType]/(list)/screen.d.ts +2 -1
  417. package/dist/esm/router/dashboard/[contentType]/(list)/screen.d.ts.map +1 -1
  418. package/dist/esm/router/dashboard/[contentType]/(list)/screen.js +1 -1
  419. package/dist/esm/router/dashboard/[contentType]/(list)/screen.js.map +1 -1
  420. package/dist/esm/router/dashboard/[contentType]/(list)/tour.d.ts +3 -0
  421. package/dist/esm/router/dashboard/[contentType]/(list)/tour.d.ts.map +1 -0
  422. package/dist/esm/router/dashboard/[contentType]/(list)/tour.js +21 -0
  423. package/dist/esm/router/dashboard/[contentType]/(list)/tour.js.map +1 -0
  424. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.d.ts +1 -0
  425. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.d.ts.map +1 -1
  426. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js +71 -26
  427. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js.map +1 -1
  428. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/DocumentTranslationDialog.d.ts +2 -0
  429. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/DocumentTranslationDialog.d.ts.map +1 -0
  430. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/DocumentTranslationDialog.js +41 -0
  431. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/DocumentTranslationDialog.js.map +1 -0
  432. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.d.ts +2 -0
  433. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.d.ts.map +1 -0
  434. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +12 -0
  435. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -0
  436. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.d.ts +2 -0
  437. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.d.ts.map +1 -0
  438. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js +29 -0
  439. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js.map +1 -0
  440. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.d.ts +2 -0
  441. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.d.ts.map +1 -0
  442. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js +16 -0
  443. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js.map +1 -0
  444. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/RouteLayoutModuleTabContent.d.ts +5 -0
  445. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/RouteLayoutModuleTabContent.d.ts.map +1 -0
  446. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/RouteLayoutModuleTabContent.js +79 -0
  447. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/RouteLayoutModuleTabContent.js.map +1 -0
  448. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/TrashDialogs.d.ts +2 -0
  449. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/TrashDialogs.d.ts.map +1 -0
  450. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/TrashDialogs.js +10 -0
  451. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/TrashDialogs.js.map +1 -0
  452. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/Versions.d.ts +8 -0
  453. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/Versions.d.ts.map +1 -0
  454. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/Versions.js +367 -0
  455. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/Versions.js.map +1 -0
  456. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.d.ts +45 -0
  457. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.d.ts.map +1 -0
  458. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +201 -0
  459. package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -0
  460. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Date/DateTimeUI.js +1 -1
  461. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Date/DateTimeUI.js.map +1 -1
  462. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Date/DateUI.js +1 -1
  463. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Date/DateUI.js.map +1 -1
  464. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Date/TimeUI.js +1 -1
  465. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Date/TimeUI.js.map +1 -1
  466. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.d.ts.map +1 -1
  467. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +115 -45
  468. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
  469. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js +1 -1
  470. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js.map +1 -1
  471. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.d.ts.map +1 -1
  472. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js +18 -1
  473. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js.map +1 -1
  474. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/NumberField/NumberUI.js +1 -1
  475. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/NumberField/NumberUI.js.map +1 -1
  476. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/SelfRelationUI.d.ts +4 -0
  477. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/SelfRelationUI.d.ts.map +1 -0
  478. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/SelfRelationUI.js +79 -0
  479. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/SelfRelationUI.js.map +1 -0
  480. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/index.d.ts +2 -0
  481. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/index.d.ts.map +1 -1
  482. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/index.js +2 -0
  483. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/RelationField/index.js.map +1 -1
  484. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/EmailUI.js +1 -1
  485. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/EmailUI.js.map +1 -1
  486. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/PasswordUI.js +1 -1
  487. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/PasswordUI.js.map +1 -1
  488. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/SlugUI.js +1 -1
  489. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/SlugUI.js.map +1 -1
  490. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/TextUI.js +1 -1
  491. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/TextUI.js.map +1 -1
  492. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/TextareaUI.js +1 -1
  493. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/TextareaUI.js.map +1 -1
  494. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/UrlUi.js +1 -1
  495. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/StringField/UrlUi.js.map +1 -1
  496. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/FieldWrapper.d.ts.map +1 -1
  497. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/FieldWrapper.js +6 -1
  498. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/FieldWrapper.js.map +1 -1
  499. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition-state.d.ts +7 -0
  500. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition-state.d.ts.map +1 -0
  501. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition-state.js +5 -0
  502. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition-state.js.map +1 -0
  503. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition.d.ts +3 -0
  504. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition.d.ts.map +1 -0
  505. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition.js +46 -0
  506. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/condition.js.map +1 -0
  507. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.d.ts +35 -0
  508. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.d.ts.map +1 -0
  509. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +161 -0
  510. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -0
  511. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.d.ts +38 -0
  512. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.d.ts.map +1 -0
  513. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js +226 -0
  514. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js.map +1 -0
  515. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentTypeSections.d.ts +11 -0
  516. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentTypeSections.d.ts.map +1 -0
  517. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentTypeSections.js +34 -0
  518. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentTypeSections.js.map +1 -0
  519. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditFormController.d.ts +26 -0
  520. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditFormController.d.ts.map +1 -0
  521. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditFormController.js +55 -0
  522. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditFormController.js.map +1 -0
  523. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditTabErrors.d.ts +15 -0
  524. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditTabErrors.d.ts.map +1 -0
  525. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditTabErrors.js +29 -0
  526. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useEditTabErrors.js.map +1 -0
  527. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useRouteLayoutData.d.ts +17 -0
  528. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useRouteLayoutData.d.ts.map +1 -0
  529. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useRouteLayoutData.js +88 -0
  530. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useRouteLayoutData.js.map +1 -0
  531. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useTranslationDialogState.d.ts +19 -0
  532. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useTranslationDialogState.d.ts.map +1 -0
  533. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useTranslationDialogState.js +30 -0
  534. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useTranslationDialogState.js.map +1 -0
  535. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.d.ts +2 -9
  536. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.d.ts.map +1 -1
  537. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.js +26 -284
  538. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.js.map +1 -1
  539. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.styles.d.ts +4 -0
  540. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.styles.d.ts.map +1 -0
  541. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.styles.js +9 -0
  542. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.styles.js.map +1 -0
  543. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.types.d.ts +44 -0
  544. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.types.d.ts.map +1 -0
  545. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.types.js +2 -0
  546. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.types.js.map +1 -0
  547. package/dist/esm/router/dashboard/[contentType]/[edit]/screen.d.ts +3 -1
  548. package/dist/esm/router/dashboard/[contentType]/[edit]/screen.d.ts.map +1 -1
  549. package/dist/esm/router/dashboard/[contentType]/[edit]/screen.js +2 -2
  550. package/dist/esm/router/dashboard/[contentType]/[edit]/screen.js.map +1 -1
  551. package/dist/esm/router/dashboard/[contentType]/[edit]/tour.d.ts +3 -0
  552. package/dist/esm/router/dashboard/[contentType]/[edit]/tour.d.ts.map +1 -0
  553. package/dist/esm/router/dashboard/[contentType]/[edit]/tour.js +33 -0
  554. package/dist/esm/router/dashboard/[contentType]/[edit]/tour.js.map +1 -0
  555. package/dist/esm/router/dashboard/[contentType]/create/screen.d.ts +3 -1
  556. package/dist/esm/router/dashboard/[contentType]/create/screen.d.ts.map +1 -1
  557. package/dist/esm/router/dashboard/[contentType]/create/screen.js +2 -2
  558. package/dist/esm/router/dashboard/[contentType]/create/screen.js.map +1 -1
  559. package/dist/esm/router/dashboard/[contentType]/create/tour.d.ts +3 -0
  560. package/dist/esm/router/dashboard/[contentType]/create/tour.d.ts.map +1 -0
  561. package/dist/esm/router/dashboard/[contentType]/create/tour.js +27 -0
  562. package/dist/esm/router/dashboard/[contentType]/create/tour.js.map +1 -0
  563. package/dist/esm/router/dashboard/account/mfa/Mfa.js +1 -1
  564. package/dist/esm/router/dashboard/account/mfa/Mfa.js.map +1 -1
  565. package/dist/esm/router/dashboard/account/screen.d.ts.map +1 -1
  566. package/dist/esm/router/dashboard/account/screen.js +83 -2
  567. package/dist/esm/router/dashboard/account/screen.js.map +1 -1
  568. package/dist/esm/router/dashboard/account/sessions/Sessions.js +1 -1
  569. package/dist/esm/router/dashboard/account/sessions/Sessions.js.map +1 -1
  570. package/dist/esm/router/dashboard/account/sessions/columns.d.ts.map +1 -1
  571. package/dist/esm/router/dashboard/account/sessions/columns.js +3 -2
  572. package/dist/esm/router/dashboard/account/sessions/columns.js.map +1 -1
  573. package/dist/esm/router/dashboard/account/tour.d.ts +3 -0
  574. package/dist/esm/router/dashboard/account/tour.d.ts.map +1 -0
  575. package/dist/esm/router/dashboard/account/tour.js +27 -0
  576. package/dist/esm/router/dashboard/account/tour.js.map +1 -0
  577. package/dist/esm/router/dashboard/api-routes/ApiTest.d.ts +1 -1
  578. package/dist/esm/router/dashboard/api-routes/ApiTest.d.ts.map +1 -1
  579. package/dist/esm/router/dashboard/api-routes/ApiTest.js +35 -33
  580. package/dist/esm/router/dashboard/api-routes/ApiTest.js.map +1 -1
  581. package/dist/esm/router/dashboard/api-routes/SchemaViewer.d.ts +4 -0
  582. package/dist/esm/router/dashboard/api-routes/SchemaViewer.d.ts.map +1 -0
  583. package/dist/esm/router/dashboard/api-routes/SchemaViewer.js +89 -0
  584. package/dist/esm/router/dashboard/api-routes/SchemaViewer.js.map +1 -0
  585. package/dist/esm/router/dashboard/api-routes/screen.d.ts.map +1 -1
  586. package/dist/esm/router/dashboard/api-routes/screen.js +6 -0
  587. package/dist/esm/router/dashboard/api-routes/screen.js.map +1 -1
  588. package/dist/esm/router/dashboard/api-routes/shared.d.ts +2 -4
  589. package/dist/esm/router/dashboard/api-routes/shared.d.ts.map +1 -1
  590. package/dist/esm/router/dashboard/api-routes/shared.js +4 -2
  591. package/dist/esm/router/dashboard/api-routes/shared.js.map +1 -1
  592. package/dist/esm/router/dashboard/api-routes/test.d.ts +6 -3
  593. package/dist/esm/router/dashboard/api-routes/test.d.ts.map +1 -1
  594. package/dist/esm/router/dashboard/api-routes/test.js +8 -3
  595. package/dist/esm/router/dashboard/api-routes/test.js.map +1 -1
  596. package/dist/esm/router/dashboard/api-routes/tour.d.ts +3 -0
  597. package/dist/esm/router/dashboard/api-routes/tour.d.ts.map +1 -0
  598. package/dist/esm/router/dashboard/api-routes/tour.js +27 -0
  599. package/dist/esm/router/dashboard/api-routes/tour.js.map +1 -0
  600. package/dist/esm/router/dashboard/media/tour.d.ts +3 -0
  601. package/dist/esm/router/dashboard/media/tour.d.ts.map +1 -0
  602. package/dist/esm/router/dashboard/media/tour.js +27 -0
  603. package/dist/esm/router/dashboard/media/tour.js.map +1 -0
  604. package/dist/esm/router/dashboard/settings/languages/columns.d.ts.map +1 -1
  605. package/dist/esm/router/dashboard/settings/languages/columns.js +12 -14
  606. package/dist/esm/router/dashboard/settings/languages/columns.js.map +1 -1
  607. package/dist/esm/router/dashboard/settings/languages/screen.d.ts.map +1 -1
  608. package/dist/esm/router/dashboard/settings/languages/screen.js +3 -2
  609. package/dist/esm/router/dashboard/settings/languages/screen.js.map +1 -1
  610. package/dist/esm/router/dashboard/settings/literals/screen.d.ts.map +1 -1
  611. package/dist/esm/router/dashboard/settings/literals/screen.js +63 -52
  612. package/dist/esm/router/dashboard/settings/literals/screen.js.map +1 -1
  613. package/dist/esm/router/dashboard/settings/literals/tour.d.ts +3 -0
  614. package/dist/esm/router/dashboard/settings/literals/tour.d.ts.map +1 -0
  615. package/dist/esm/router/dashboard/settings/literals/tour.js +21 -0
  616. package/dist/esm/router/dashboard/settings/literals/tour.js.map +1 -0
  617. package/dist/esm/router/dashboard/settings/redirects/columns.d.ts.map +1 -1
  618. package/dist/esm/router/dashboard/settings/redirects/columns.js +3 -2
  619. package/dist/esm/router/dashboard/settings/redirects/columns.js.map +1 -1
  620. package/dist/esm/router/dashboard/settings/redirects/screen.d.ts.map +1 -1
  621. package/dist/esm/router/dashboard/settings/redirects/screen.js +101 -123
  622. package/dist/esm/router/dashboard/settings/redirects/screen.js.map +1 -1
  623. package/dist/esm/router/dashboard/settings/redirects/tour.d.ts +3 -0
  624. package/dist/esm/router/dashboard/settings/redirects/tour.d.ts.map +1 -0
  625. package/dist/esm/router/dashboard/settings/redirects/tour.js +21 -0
  626. package/dist/esm/router/dashboard/settings/redirects/tour.js.map +1 -0
  627. package/dist/esm/router/dashboard/settings/robots/columns.d.ts +20 -0
  628. package/dist/esm/router/dashboard/settings/robots/columns.d.ts.map +1 -0
  629. package/dist/esm/router/dashboard/settings/robots/columns.js +50 -0
  630. package/dist/esm/router/dashboard/settings/robots/columns.js.map +1 -0
  631. package/dist/esm/router/dashboard/settings/robots/index.d.ts +2 -0
  632. package/dist/esm/router/dashboard/settings/robots/index.d.ts.map +1 -0
  633. package/dist/esm/router/dashboard/settings/robots/index.js +2 -0
  634. package/dist/esm/router/dashboard/settings/robots/index.js.map +1 -0
  635. package/dist/esm/router/dashboard/settings/robots/screen.d.ts +2 -0
  636. package/dist/esm/router/dashboard/settings/robots/screen.d.ts.map +1 -0
  637. package/dist/esm/router/dashboard/settings/robots/screen.js +173 -0
  638. package/dist/esm/router/dashboard/settings/robots/screen.js.map +1 -0
  639. package/dist/esm/router/dashboard/settings/routes/columns.d.ts.map +1 -1
  640. package/dist/esm/router/dashboard/settings/routes/columns.js +4 -3
  641. package/dist/esm/router/dashboard/settings/routes/columns.js.map +1 -1
  642. package/dist/esm/router/dashboard/settings/routes/paths/columns.d.ts.map +1 -1
  643. package/dist/esm/router/dashboard/settings/routes/paths/columns.js +18 -8
  644. package/dist/esm/router/dashboard/settings/routes/paths/columns.js.map +1 -1
  645. package/dist/esm/router/dashboard/settings/routes/paths/screen.d.ts.map +1 -1
  646. package/dist/esm/router/dashboard/settings/routes/paths/screen.js +35 -3
  647. package/dist/esm/router/dashboard/settings/routes/paths/screen.js.map +1 -1
  648. package/dist/esm/router/dashboard/settings/routes/paths/tour.d.ts +3 -0
  649. package/dist/esm/router/dashboard/settings/routes/paths/tour.d.ts.map +1 -0
  650. package/dist/esm/router/dashboard/settings/routes/paths/tour.js +21 -0
  651. package/dist/esm/router/dashboard/settings/routes/paths/tour.js.map +1 -0
  652. package/dist/esm/router/dashboard/settings/routes/screen.d.ts.map +1 -1
  653. package/dist/esm/router/dashboard/settings/routes/screen.js +10 -9
  654. package/dist/esm/router/dashboard/settings/routes/screen.js.map +1 -1
  655. package/dist/esm/router/dashboard/settings/routes/tour.d.ts +3 -0
  656. package/dist/esm/router/dashboard/settings/routes/tour.d.ts.map +1 -0
  657. package/dist/esm/router/dashboard/settings/routes/tour.js +21 -0
  658. package/dist/esm/router/dashboard/settings/routes/tour.js.map +1 -0
  659. package/dist/esm/router/dashboard/settings/screen.d.ts.map +1 -1
  660. package/dist/esm/router/dashboard/settings/screen.js +30 -7
  661. package/dist/esm/router/dashboard/settings/screen.js.map +1 -1
  662. package/dist/esm/router/dashboard/settings/seo/index.d.ts +2 -0
  663. package/dist/esm/router/dashboard/settings/seo/index.d.ts.map +1 -0
  664. package/dist/esm/router/dashboard/settings/seo/index.js +2 -0
  665. package/dist/esm/router/dashboard/settings/seo/index.js.map +1 -0
  666. package/dist/esm/router/dashboard/settings/seo/screen.d.ts +2 -0
  667. package/dist/esm/router/dashboard/settings/seo/screen.d.ts.map +1 -0
  668. package/dist/esm/router/dashboard/settings/seo/screen.js +102 -0
  669. package/dist/esm/router/dashboard/settings/seo/screen.js.map +1 -0
  670. package/dist/esm/router/dashboard/settings/system/index.d.ts +2 -0
  671. package/dist/esm/router/dashboard/settings/system/index.d.ts.map +1 -0
  672. package/dist/esm/router/dashboard/settings/system/index.js +2 -0
  673. package/dist/esm/router/dashboard/settings/system/index.js.map +1 -0
  674. package/dist/esm/router/dashboard/settings/system/screen.d.ts +2 -0
  675. package/dist/esm/router/dashboard/settings/system/screen.d.ts.map +1 -0
  676. package/dist/esm/router/dashboard/settings/system/screen.js +83 -0
  677. package/dist/esm/router/dashboard/settings/system/screen.js.map +1 -0
  678. package/dist/esm/router/dashboard/settings/system/tour.d.ts +3 -0
  679. package/dist/esm/router/dashboard/settings/system/tour.d.ts.map +1 -0
  680. package/dist/esm/router/dashboard/settings/system/tour.js +21 -0
  681. package/dist/esm/router/dashboard/settings/system/tour.js.map +1 -0
  682. package/dist/esm/router/dashboard/settings/tour.d.ts +20 -0
  683. package/dist/esm/router/dashboard/settings/tour.d.ts.map +1 -0
  684. package/dist/esm/router/dashboard/settings/tour.js +51 -0
  685. package/dist/esm/router/dashboard/settings/tour.js.map +1 -0
  686. package/dist/esm/router/dashboard/settings/user-roles/screen.d.ts.map +1 -1
  687. package/dist/esm/router/dashboard/settings/user-roles/screen.js +3 -2
  688. package/dist/esm/router/dashboard/settings/user-roles/screen.js.map +1 -1
  689. package/dist/esm/router/dashboard/tour.d.ts +3 -0
  690. package/dist/esm/router/dashboard/tour.d.ts.map +1 -0
  691. package/dist/esm/router/dashboard/tour.js +27 -0
  692. package/dist/esm/router/dashboard/tour.js.map +1 -0
  693. package/dist/esm/router/dashboard/users/columns.d.ts.map +1 -1
  694. package/dist/esm/router/dashboard/users/columns.js +3 -2
  695. package/dist/esm/router/dashboard/users/columns.js.map +1 -1
  696. package/dist/esm/router/dashboard/users/screen.d.ts.map +1 -1
  697. package/dist/esm/router/dashboard/users/screen.js +8 -7
  698. package/dist/esm/router/dashboard/users/screen.js.map +1 -1
  699. package/dist/esm/router/dashboard/users/tour.d.ts +3 -0
  700. package/dist/esm/router/dashboard/users/tour.d.ts.map +1 -0
  701. package/dist/esm/router/dashboard/users/tour.js +21 -0
  702. package/dist/esm/router/dashboard/users/tour.js.map +1 -0
  703. package/dist/esm/router/shared/route-definitions.d.ts +8 -2
  704. package/dist/esm/router/shared/route-definitions.d.ts.map +1 -1
  705. package/dist/esm/router/shared/route-definitions.js +3 -1
  706. package/dist/esm/router/shared/route-definitions.js.map +1 -1
  707. package/dist/esm/router/shared/route-list.d.ts +1 -1
  708. package/dist/esm/router/shared/route-list.d.ts.map +1 -1
  709. package/dist/esm/router/shared/route-list.js +30 -3
  710. package/dist/esm/router/shared/route-list.js.map +1 -1
  711. package/dist/esm/router/shared/route-schema.d.ts +3 -0
  712. package/dist/esm/router/shared/route-schema.d.ts.map +1 -1
  713. package/dist/esm/router/shared/route-schema.js.map +1 -1
  714. package/dist/esm/router/shared/types.d.ts +12 -1
  715. package/dist/esm/router/shared/types.d.ts.map +1 -1
  716. package/dist/esm/state/theme.d.ts +3 -0
  717. package/dist/esm/state/theme.d.ts.map +1 -1
  718. package/dist/esm/state/theme.js +31 -15
  719. package/dist/esm/state/theme.js.map +1 -1
  720. package/dist/styles.css +876 -135
  721. package/dist/tsconfig.build.tsbuildinfo +1 -1
  722. package/package.json +4 -3
@@ -0,0 +1,981 @@
1
+ "use strict";
2
+ "use client";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.Tour = Tour;
38
+ exports.TourArrow = TourArrow;
39
+ exports.TourClose = TourClose;
40
+ exports.TourDescription = TourDescription;
41
+ exports.TourFooter = TourFooter;
42
+ exports.TourHeader = TourHeader;
43
+ exports.TourNext = TourNext;
44
+ exports.TourPortal = TourPortal;
45
+ exports.TourPrev = TourPrev;
46
+ exports.TourSkip = TourSkip;
47
+ exports.TourSpotlight = TourSpotlight;
48
+ exports.TourSpotlightRing = TourSpotlightRing;
49
+ exports.TourStep = TourStep;
50
+ exports.TourStepCounter = TourStepCounter;
51
+ exports.TourTitle = TourTitle;
52
+ const jsx_runtime_1 = require("react/jsx-runtime");
53
+ const react_dom_1 = require("@floating-ui/react-dom");
54
+ const lucide_react_1 = require("lucide-react");
55
+ const radix_ui_1 = require("radix-ui");
56
+ const React = __importStar(require("react"));
57
+ const ReactDOM = __importStar(require("react-dom"));
58
+ const compose_refs_1 = require("../../lib/compose-refs.js");
59
+ const utils_1 = require("../../lib/utils.js");
60
+ const use_as_ref_1 = require("../../hooks/use-as-ref.js");
61
+ const use_isomorphic_layout_effect_1 = require("../../hooks/use-isomorphic-layout-effect.js");
62
+ const use_lazy_ref_1 = require("../../hooks/use-lazy-ref.js");
63
+ const button_1 = require("./button.js");
64
+ const ROOT_NAME = "Tour";
65
+ const PORTAL_NAME = "TourPortal";
66
+ const STEP_NAME = "TourStep";
67
+ const ARROW_NAME = "TourArrow";
68
+ const HEADER_NAME = "TourHeader";
69
+ const TITLE_NAME = "TourTitle";
70
+ const DESCRIPTION_NAME = "TourDescription";
71
+ const CLOSE_NAME = "TourClose";
72
+ const PREV_NAME = "TourPrev";
73
+ const NEXT_NAME = "TourNext";
74
+ const SKIP_NAME = "TourSkip";
75
+ const FOOTER_NAME = "TourFooter";
76
+ const POINTER_DOWN_OUTSIDE = "tour.pointerDownOutside";
77
+ const INTERACT_OUTSIDE = "tour.interactOutside";
78
+ const OPEN_AUTO_FOCUS = "tour.openAutoFocus";
79
+ const CLOSE_AUTO_FOCUS = "tour.closeAutoFocus";
80
+ const EVENT_OPTIONS = { bubbles: false, cancelable: true };
81
+ const SIDE_OPTIONS = ["top", "right", "bottom", "left"];
82
+ const ALIGN_OPTIONS = ["start", "center", "end"];
83
+ const DEFAULT_ALIGN_OFFSET = 0;
84
+ const DEFAULT_SIDE_OFFSET = 16;
85
+ const DEFAULT_SPOTLIGHT_PADDING = 4;
86
+ const OPPOSITE_SIDE = {
87
+ top: "bottom",
88
+ right: "left",
89
+ bottom: "top",
90
+ left: "right",
91
+ };
92
+ /**
93
+ * @see https://github.com/radix-ui/primitives/blob/main/packages/react/focus-guards/src/focus-guards.tsx
94
+ */
95
+ let focusGuardCount = 0;
96
+ function createFocusGuard() {
97
+ const element = document.createElement("span");
98
+ element.setAttribute("data-tour-focus-guard", "");
99
+ element.tabIndex = 0;
100
+ element.style.outline = "none";
101
+ element.style.opacity = "0";
102
+ element.style.position = "fixed";
103
+ element.style.pointerEvents = "none";
104
+ return element;
105
+ }
106
+ function useFocusGuards() {
107
+ React.useEffect(() => {
108
+ const edgeGuards = document.querySelectorAll("[data-tour-focus-guard]");
109
+ document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
110
+ document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
111
+ focusGuardCount++;
112
+ return () => {
113
+ if (focusGuardCount === 1) {
114
+ const guards = document.querySelectorAll("[data-tour-focus-guard]");
115
+ for (const node of guards) {
116
+ node.remove();
117
+ }
118
+ }
119
+ focusGuardCount--;
120
+ };
121
+ }, []);
122
+ }
123
+ function useFocusTrap(containerRef, enabled, tourOpen, onOpenAutoFocus, onCloseAutoFocus) {
124
+ const lastFocusedElementRef = React.useRef(null);
125
+ const onOpenAutoFocusRef = (0, use_as_ref_1.useAsRef)(onOpenAutoFocus);
126
+ const onCloseAutoFocusRef = (0, use_as_ref_1.useAsRef)(onCloseAutoFocus);
127
+ const tourOpenRef = (0, use_as_ref_1.useAsRef)(tourOpen);
128
+ React.useEffect(() => {
129
+ if (!enabled)
130
+ return;
131
+ const container = containerRef.current;
132
+ if (!container)
133
+ return;
134
+ const previouslyFocusedElement = document.activeElement;
135
+ function getTabbableCandidates() {
136
+ if (!container)
137
+ return [];
138
+ const nodes = [];
139
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
140
+ acceptNode: (node) => {
141
+ const element = node;
142
+ const isHiddenInput = element.tagName === "INPUT" &&
143
+ element.type === "hidden";
144
+ if (element.hidden || isHiddenInput)
145
+ return NodeFilter.FILTER_SKIP;
146
+ return element.tabIndex >= 0
147
+ ? NodeFilter.FILTER_ACCEPT
148
+ : NodeFilter.FILTER_SKIP;
149
+ },
150
+ });
151
+ while (walker.nextNode()) {
152
+ nodes.push(walker.currentNode);
153
+ }
154
+ return nodes;
155
+ }
156
+ function getTabbableEdges() {
157
+ const candidates = getTabbableCandidates();
158
+ const first = candidates[0];
159
+ const last = candidates[candidates.length - 1];
160
+ return [first, last];
161
+ }
162
+ function onFocusIn(event) {
163
+ if (!container)
164
+ return;
165
+ const target = event.target;
166
+ if (container.contains(target)) {
167
+ lastFocusedElementRef.current = target;
168
+ }
169
+ else {
170
+ const elementToFocus = lastFocusedElementRef.current ?? getTabbableCandidates()[0];
171
+ elementToFocus?.focus({ preventScroll: true });
172
+ }
173
+ }
174
+ function onKeyDown(event) {
175
+ if (event.key !== "Tab" || event.altKey || event.ctrlKey || event.metaKey)
176
+ return;
177
+ const [first, last] = getTabbableEdges();
178
+ const hasTabbableElements = first && last;
179
+ if (!hasTabbableElements) {
180
+ if (document.activeElement === container)
181
+ event.preventDefault();
182
+ return;
183
+ }
184
+ if (!event.shiftKey && document.activeElement === last) {
185
+ event.preventDefault();
186
+ first?.focus({ preventScroll: true });
187
+ }
188
+ else if (event.shiftKey && document.activeElement === first) {
189
+ event.preventDefault();
190
+ last?.focus({ preventScroll: true });
191
+ }
192
+ }
193
+ const openAutoFocusEvent = new CustomEvent(OPEN_AUTO_FOCUS, EVENT_OPTIONS);
194
+ if (onOpenAutoFocusRef.current) {
195
+ container.addEventListener(OPEN_AUTO_FOCUS, onOpenAutoFocusRef.current, { once: true });
196
+ }
197
+ container.dispatchEvent(openAutoFocusEvent);
198
+ if (!openAutoFocusEvent.defaultPrevented) {
199
+ const tabbableCandidates = getTabbableCandidates();
200
+ if (tabbableCandidates.length > 0) {
201
+ tabbableCandidates[0]?.focus({ preventScroll: true });
202
+ }
203
+ else {
204
+ container.focus({ preventScroll: true });
205
+ }
206
+ }
207
+ document.addEventListener("focusin", onFocusIn);
208
+ container.addEventListener("keydown", onKeyDown);
209
+ return () => {
210
+ document.removeEventListener("focusin", onFocusIn);
211
+ container.removeEventListener("keydown", onKeyDown);
212
+ if (!tourOpenRef.current) {
213
+ setTimeout(() => {
214
+ const closeAutoFocusEvent = new CustomEvent(CLOSE_AUTO_FOCUS, EVENT_OPTIONS);
215
+ if (onCloseAutoFocusRef.current) {
216
+ container.addEventListener(CLOSE_AUTO_FOCUS, onCloseAutoFocusRef.current, { once: true });
217
+ }
218
+ container.dispatchEvent(closeAutoFocusEvent);
219
+ if (!closeAutoFocusEvent.defaultPrevented) {
220
+ if (previouslyFocusedElement &&
221
+ document.body.contains(previouslyFocusedElement)) {
222
+ previouslyFocusedElement.focus({ preventScroll: true });
223
+ }
224
+ }
225
+ if (onCloseAutoFocusRef.current) {
226
+ container.removeEventListener(CLOSE_AUTO_FOCUS, onCloseAutoFocusRef.current);
227
+ }
228
+ }, 0);
229
+ }
230
+ };
231
+ }, [
232
+ containerRef,
233
+ enabled,
234
+ onOpenAutoFocusRef,
235
+ onCloseAutoFocusRef,
236
+ tourOpenRef,
237
+ ]);
238
+ }
239
+ function getDataState(open) {
240
+ return open ? "open" : "closed";
241
+ }
242
+ function useStore(selector, ogStore) {
243
+ const contextStore = React.useContext(StoreContext);
244
+ const store = ogStore ?? contextStore;
245
+ if (!store) {
246
+ throw new Error(`\`useStore\` must be used within \`${ROOT_NAME}\``);
247
+ }
248
+ const getSnapshot = React.useCallback(() => selector(store.getState()), [store, selector]);
249
+ return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
250
+ }
251
+ function getTargetElement(target) {
252
+ if (typeof target === "string") {
253
+ return document.querySelector(target);
254
+ }
255
+ if (target && "current" in target) {
256
+ return target.current;
257
+ }
258
+ if (target instanceof HTMLElement) {
259
+ return target;
260
+ }
261
+ return null;
262
+ }
263
+ function getDefaultScrollBehavior() {
264
+ if (typeof window === "undefined")
265
+ return "smooth";
266
+ return window.matchMedia("(prefers-reduced-motion: reduce)").matches
267
+ ? "auto"
268
+ : "smooth";
269
+ }
270
+ function onScrollToElement(element, scrollBehavior = getDefaultScrollBehavior(), scrollOffset) {
271
+ const offset = {
272
+ top: 100,
273
+ bottom: 100,
274
+ left: 0,
275
+ right: 0,
276
+ ...scrollOffset,
277
+ };
278
+ const rect = element.getBoundingClientRect();
279
+ const viewportHeight = window.innerHeight;
280
+ const viewportWidth = window.innerWidth;
281
+ const isInViewport = rect.top >= offset.top &&
282
+ rect.bottom <= viewportHeight - offset.bottom &&
283
+ rect.left >= offset.left &&
284
+ rect.right <= viewportWidth - offset.right;
285
+ if (!isInViewport) {
286
+ const elementTop = rect.top + window.scrollY;
287
+ const scrollTop = elementTop - offset.top;
288
+ window.scrollTo({
289
+ top: Math.max(0, scrollTop),
290
+ behavior: scrollBehavior,
291
+ });
292
+ }
293
+ }
294
+ function getSideAndAlignFromPlacement(placement) {
295
+ const [side, align = "center"] = placement.split("-");
296
+ return [side, align];
297
+ }
298
+ function getPlacement(side, align) {
299
+ if (align === "center") {
300
+ return side;
301
+ }
302
+ return `${side}-${align}`;
303
+ }
304
+ function updateMask(store, targetElement, padding = DEFAULT_SPOTLIGHT_PADDING) {
305
+ const clientRect = targetElement.getBoundingClientRect();
306
+ const viewportWidth = window.innerWidth;
307
+ const viewportHeight = window.innerHeight;
308
+ const x = Math.max(0, clientRect.left - padding);
309
+ const y = Math.max(0, clientRect.top - padding);
310
+ const width = Math.min(viewportWidth - x, clientRect.width + padding * 2);
311
+ const height = Math.min(viewportHeight - y, clientRect.height + padding * 2);
312
+ const path = `polygon(0% 0%, 0% 100%, ${x}px 100%, ${x}px ${y}px, ${x + width}px ${y}px, ${x + width}px ${y + height}px, ${x}px ${y + height}px, ${x}px 100%, 100% 100%, 100% 0%)`;
313
+ store.setState("maskPath", path);
314
+ store.setState("spotlightRect", { x, y, width, height });
315
+ }
316
+ const StoreContext = React.createContext(null);
317
+ function useStoreContext(consumerName) {
318
+ const context = React.useContext(StoreContext);
319
+ if (!context) {
320
+ throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
321
+ }
322
+ return context;
323
+ }
324
+ const TourContext = React.createContext(null);
325
+ function useTourContext(consumerName) {
326
+ const context = React.useContext(TourContext);
327
+ if (!context) {
328
+ throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
329
+ }
330
+ return context;
331
+ }
332
+ const StepContext = React.createContext(null);
333
+ function useStepContext(consumerName) {
334
+ const context = React.useContext(StepContext);
335
+ if (!context) {
336
+ throw new Error(`\`${consumerName}\` must be used within \`${STEP_NAME}\``);
337
+ }
338
+ return context;
339
+ }
340
+ const DefaultFooterContext = React.createContext(false);
341
+ const PortalContext = React.createContext(null);
342
+ function usePortalContext(consumerName) {
343
+ const context = React.useContext(PortalContext);
344
+ if (!context) {
345
+ throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
346
+ }
347
+ return context;
348
+ }
349
+ function useScrollLock(enabled) {
350
+ React.useEffect(() => {
351
+ if (!enabled)
352
+ return;
353
+ const originalStyle = window.getComputedStyle(document.body).overflow;
354
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
355
+ document.body.style.overflow = "hidden";
356
+ if (scrollbarWidth > 0) {
357
+ document.body.style.paddingRight = `${scrollbarWidth}px`;
358
+ }
359
+ return () => {
360
+ document.body.style.overflow = originalStyle;
361
+ document.body.style.paddingRight = "";
362
+ };
363
+ }, [enabled]);
364
+ }
365
+ function Tour(props) {
366
+ const { open: openProp, defaultOpen = false, onOpenChange, value: valueProp, defaultValue = 0, onValueChange, onComplete, onSkip, autoScroll = true, scrollBehavior = getDefaultScrollBehavior(), scrollOffset, onEscapeKeyDown, onPointerDownOutside, onInteractOutside, onOpenAutoFocus, onCloseAutoFocus, dir: dirProp, alignOffset = DEFAULT_ALIGN_OFFSET, sideOffset = DEFAULT_SIDE_OFFSET, spotlightPadding = DEFAULT_SPOTLIGHT_PADDING, dismissible = true, modal = true, stepFooter, asChild, ...rootProps } = props;
367
+ const dir = radix_ui_1.Direction.useDirection(dirProp);
368
+ const [portal, setPortal] = React.useState(null);
369
+ const prevOpenRef = React.useRef(undefined);
370
+ const previouslyFocusedElementRef = React.useRef(null);
371
+ const stateRef = (0, use_lazy_ref_1.useLazyRef)(() => ({
372
+ open: openProp ?? defaultOpen,
373
+ value: valueProp ?? defaultValue,
374
+ steps: [],
375
+ maskPath: "",
376
+ spotlightRect: null,
377
+ }));
378
+ const listenersRef = (0, use_lazy_ref_1.useLazyRef)(() => new Set());
379
+ const stepIdsMapRef = (0, use_lazy_ref_1.useLazyRef)(() => new Map());
380
+ const stepIdCounterRef = (0, use_lazy_ref_1.useLazyRef)(() => ({ current: 0 }));
381
+ const propsRef = (0, use_as_ref_1.useAsRef)({
382
+ valueProp,
383
+ onOpenChange,
384
+ onValueChange,
385
+ onComplete,
386
+ onSkip,
387
+ onEscapeKeyDown,
388
+ onCloseAutoFocus,
389
+ autoScroll,
390
+ scrollBehavior,
391
+ scrollOffset,
392
+ });
393
+ const store = React.useMemo(() => ({
394
+ subscribe: (cb) => {
395
+ listenersRef.current.add(cb);
396
+ return () => listenersRef.current.delete(cb);
397
+ },
398
+ getState: () => {
399
+ return stateRef.current;
400
+ },
401
+ setState: (key, value) => {
402
+ if (Object.is(stateRef.current[key], value))
403
+ return;
404
+ stateRef.current[key] = value;
405
+ if (key === "open" && typeof value === "boolean") {
406
+ propsRef.current.onOpenChange?.(value);
407
+ if (value) {
408
+ if (stateRef.current.steps.length > 0) {
409
+ if (stateRef.current.value >= stateRef.current.steps.length) {
410
+ store.setState("value", 0);
411
+ }
412
+ }
413
+ }
414
+ else {
415
+ if (stateRef.current.value <
416
+ (stateRef.current.steps.length || 0) - 1) {
417
+ propsRef.current.onSkip?.();
418
+ }
419
+ }
420
+ }
421
+ else if (key === "value" && typeof value === "number") {
422
+ const prevStep = stateRef.current.steps[stateRef.current.value];
423
+ const nextStep = stateRef.current.steps[value];
424
+ prevStep?.onStepLeave?.();
425
+ nextStep?.onStepEnter?.();
426
+ if (value >= stateRef.current.steps.length) {
427
+ propsRef.current.onComplete?.();
428
+ if (propsRef.current.valueProp !== undefined) {
429
+ propsRef.current.onValueChange?.(value);
430
+ }
431
+ store.setState("open", false);
432
+ return;
433
+ }
434
+ if (propsRef.current.valueProp !== undefined) {
435
+ propsRef.current.onValueChange?.(value);
436
+ return;
437
+ }
438
+ propsRef.current.onValueChange?.(value);
439
+ if (nextStep && propsRef.current.autoScroll) {
440
+ const targetElement = getTargetElement(nextStep.target);
441
+ if (targetElement) {
442
+ onScrollToElement(targetElement, propsRef.current.scrollBehavior, propsRef.current.scrollOffset);
443
+ }
444
+ }
445
+ }
446
+ store.notify();
447
+ },
448
+ notify: () => {
449
+ listenersRef.current.forEach((l) => {
450
+ l();
451
+ });
452
+ },
453
+ addStep: (stepData) => {
454
+ const id = `step-${stepIdCounterRef.current.current++}`;
455
+ const index = stateRef.current.steps.length;
456
+ stepIdsMapRef.current.set(id, index);
457
+ stateRef.current.steps = [...stateRef.current.steps, stepData];
458
+ store.notify();
459
+ return { id, index };
460
+ },
461
+ removeStep: (id) => {
462
+ const index = stepIdsMapRef.current.get(id);
463
+ if (index === undefined)
464
+ return;
465
+ stateRef.current.steps = stateRef.current.steps.filter((_, i) => i !== index);
466
+ stepIdsMapRef.current.delete(id);
467
+ for (const [stepId, stepIndex] of stepIdsMapRef.current.entries()) {
468
+ if (stepIndex > index) {
469
+ stepIdsMapRef.current.set(stepId, stepIndex - 1);
470
+ }
471
+ }
472
+ store.notify();
473
+ },
474
+ }), [stateRef, listenersRef, stepIdsMapRef, stepIdCounterRef, propsRef]);
475
+ const open = useStore((state) => state.open, store);
476
+ React.useEffect(() => {
477
+ function onKeyDown(event) {
478
+ if (open && event.key === "Escape") {
479
+ if (propsRef.current.onEscapeKeyDown) {
480
+ propsRef.current.onEscapeKeyDown(event);
481
+ if (event.defaultPrevented)
482
+ return;
483
+ }
484
+ store.setState("open", false);
485
+ }
486
+ }
487
+ document.addEventListener("keydown", onKeyDown);
488
+ return () => document.removeEventListener("keydown", onKeyDown);
489
+ }, [store, open, propsRef]);
490
+ (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(() => {
491
+ const wasOpen = prevOpenRef.current;
492
+ if (open && !wasOpen) {
493
+ previouslyFocusedElementRef.current =
494
+ document.activeElement;
495
+ }
496
+ else if (!open && wasOpen) {
497
+ setTimeout(() => {
498
+ const container = portal ?? document.body;
499
+ const closeAutoFocusEvent = new CustomEvent(CLOSE_AUTO_FOCUS, EVENT_OPTIONS);
500
+ if (propsRef.current.onCloseAutoFocus) {
501
+ container.addEventListener(CLOSE_AUTO_FOCUS, propsRef.current.onCloseAutoFocus, { once: true });
502
+ }
503
+ container.dispatchEvent(closeAutoFocusEvent);
504
+ if (!closeAutoFocusEvent.defaultPrevented) {
505
+ const elementToFocus = previouslyFocusedElementRef.current;
506
+ if (elementToFocus && document.body.contains(elementToFocus)) {
507
+ elementToFocus.focus({ preventScroll: true });
508
+ }
509
+ }
510
+ previouslyFocusedElementRef.current = null;
511
+ }, 0);
512
+ }
513
+ prevOpenRef.current = open;
514
+ }, [open, portal, propsRef]);
515
+ (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(() => {
516
+ if (openProp !== undefined) {
517
+ store.setState("open", openProp);
518
+ }
519
+ }, [openProp, store]);
520
+ (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(() => {
521
+ if (valueProp !== undefined) {
522
+ store.setState("value", valueProp);
523
+ }
524
+ }, [valueProp, store]);
525
+ const contextValue = React.useMemo(() => ({
526
+ dir,
527
+ alignOffset,
528
+ sideOffset,
529
+ spotlightPadding,
530
+ dismissible,
531
+ modal,
532
+ stepFooter,
533
+ onPointerDownOutside,
534
+ onInteractOutside,
535
+ onOpenAutoFocus,
536
+ onCloseAutoFocus,
537
+ }), [
538
+ dir,
539
+ alignOffset,
540
+ sideOffset,
541
+ spotlightPadding,
542
+ dismissible,
543
+ modal,
544
+ stepFooter,
545
+ onPointerDownOutside,
546
+ onInteractOutside,
547
+ onOpenAutoFocus,
548
+ onCloseAutoFocus,
549
+ ]);
550
+ const portalContextValue = React.useMemo(() => ({
551
+ portal,
552
+ onPortalChange: setPortal,
553
+ }), [portal]);
554
+ useScrollLock(open && modal);
555
+ const RootPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
556
+ return ((0, jsx_runtime_1.jsx)(StoreContext.Provider, { value: store, children: (0, jsx_runtime_1.jsx)(TourContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsx)(PortalContext.Provider, { value: portalContextValue, children: (0, jsx_runtime_1.jsx)(RootPrimitive, { "data-slot": "tour", dir: dir, ...rootProps }) }) }) }));
557
+ }
558
+ function TourStep(props) {
559
+ const { target, side = "bottom", sideOffset, align = "center", alignOffset, collisionBoundary = [], collisionPadding = 0, arrowPadding = 0, sticky = "partial", hideWhenDetached = false, avoidCollisions = true, required = false, forceMount = false, onStepEnter, onStepLeave, onPointerDownCapture: onPointerDownCaptureProp, onFocusCapture: onFocusCaptureProp, onBlurCapture: onBlurCaptureProp, children, className, style, asChild, ...stepProps } = props;
560
+ const store = useStoreContext(STEP_NAME);
561
+ const [arrow, setArrow] = React.useState(null);
562
+ const [footer, setFooter] = React.useState(null);
563
+ const stepRef = React.useRef(null);
564
+ const stepIdRef = React.useRef("");
565
+ const stepOrderRef = React.useRef(-1);
566
+ const isPointerInsideReactTreeRef = React.useRef(false);
567
+ const isFocusInsideReactTreeRef = React.useRef(false);
568
+ const open = useStore((state) => state.open);
569
+ const value = useStore((state) => state.value);
570
+ const steps = useStore((state) => state.steps);
571
+ const context = useTourContext(STEP_NAME);
572
+ const resolvedSideOffset = sideOffset ?? context.sideOffset;
573
+ const resolvedAlignOffset = alignOffset ?? context.alignOffset;
574
+ (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(() => {
575
+ const { id, index } = store.addStep({
576
+ target,
577
+ align,
578
+ alignOffset: resolvedAlignOffset,
579
+ side,
580
+ sideOffset: resolvedSideOffset,
581
+ collisionBoundary,
582
+ collisionPadding,
583
+ arrowPadding,
584
+ sticky,
585
+ hideWhenDetached,
586
+ avoidCollisions,
587
+ onStepEnter,
588
+ onStepLeave,
589
+ required,
590
+ });
591
+ stepIdRef.current = id;
592
+ stepOrderRef.current = index;
593
+ return () => {
594
+ store.removeStep(stepIdRef.current);
595
+ };
596
+ }, [
597
+ target,
598
+ side,
599
+ resolvedSideOffset,
600
+ align,
601
+ resolvedAlignOffset,
602
+ collisionPadding,
603
+ arrowPadding,
604
+ sticky,
605
+ hideWhenDetached,
606
+ avoidCollisions,
607
+ required,
608
+ onStepEnter,
609
+ onStepLeave,
610
+ store,
611
+ ]);
612
+ const stepData = steps[value];
613
+ const targetElement = stepData ? getTargetElement(stepData.target) : null;
614
+ const isCurrentStep = stepOrderRef.current === value;
615
+ const middleware = React.useMemo(() => {
616
+ if (!stepData)
617
+ return [];
618
+ const mainAxisOffset = stepData.sideOffset ?? resolvedSideOffset;
619
+ const crossAxisOffset = stepData.alignOffset ?? resolvedAlignOffset;
620
+ const padding = typeof stepData.collisionPadding === "number"
621
+ ? stepData.collisionPadding
622
+ : {
623
+ top: stepData.collisionPadding?.top ?? 0,
624
+ right: stepData.collisionPadding?.right ?? 0,
625
+ bottom: stepData.collisionPadding?.bottom ?? 0,
626
+ left: stepData.collisionPadding?.left ?? 0,
627
+ };
628
+ const boundary = Array.isArray(stepData.collisionBoundary)
629
+ ? stepData.collisionBoundary
630
+ : stepData.collisionBoundary
631
+ ? [stepData.collisionBoundary]
632
+ : [];
633
+ const hasExplicitBoundaries = boundary.length > 0;
634
+ const detectOverflowOptions = {
635
+ padding,
636
+ boundary: boundary.filter((b) => b !== null),
637
+ altBoundary: hasExplicitBoundaries,
638
+ };
639
+ return [
640
+ (0, react_dom_1.offset)({
641
+ mainAxis: mainAxisOffset,
642
+ alignmentAxis: crossAxisOffset,
643
+ }),
644
+ stepData.avoidCollisions &&
645
+ (0, react_dom_1.shift)({
646
+ mainAxis: true,
647
+ crossAxis: false,
648
+ limiter: stepData.sticky === "partial" ? (0, react_dom_1.limitShift)() : undefined,
649
+ ...detectOverflowOptions,
650
+ }),
651
+ stepData.avoidCollisions && (0, react_dom_1.flip)({ ...detectOverflowOptions }),
652
+ arrow && (0, react_dom_1.arrow)({ element: arrow, padding: stepData.arrowPadding }),
653
+ stepData.hideWhenDetached &&
654
+ (0, react_dom_1.hide)({
655
+ strategy: "referenceHidden",
656
+ ...detectOverflowOptions,
657
+ }),
658
+ ].filter(Boolean);
659
+ }, [stepData, resolvedSideOffset, resolvedAlignOffset, arrow]);
660
+ const placement = getPlacement(stepData?.side ?? side, stepData?.align ?? align);
661
+ const { refs, floatingStyles, placement: finalPlacement, middlewareData, } = (0, react_dom_1.useFloating)({
662
+ placement,
663
+ middleware,
664
+ strategy: "fixed",
665
+ whileElementsMounted: react_dom_1.autoUpdate,
666
+ elements: {
667
+ reference: targetElement,
668
+ },
669
+ });
670
+ const composedRef = (0, compose_refs_1.useComposedRefs)(refs.setFloating, stepRef);
671
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement(finalPlacement);
672
+ const arrowX = middlewareData.arrow?.x;
673
+ const arrowY = middlewareData.arrow?.y;
674
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
675
+ const isHidden = hideWhenDetached && middlewareData.hide?.referenceHidden;
676
+ const stepContextValue = React.useMemo(() => ({
677
+ arrowX,
678
+ arrowY,
679
+ placedAlign,
680
+ placedSide,
681
+ shouldHideArrow: cannotCenterArrow,
682
+ onArrowChange: setArrow,
683
+ onFooterChange: setFooter,
684
+ }), [arrowX, arrowY, placedSide, placedAlign, cannotCenterArrow]);
685
+ React.useEffect(() => {
686
+ if (open && targetElement && isCurrentStep) {
687
+ updateMask(store, targetElement, context.spotlightPadding);
688
+ let rafId = null;
689
+ function onResize() {
690
+ if (targetElement) {
691
+ updateMask(store, targetElement, context.spotlightPadding);
692
+ }
693
+ }
694
+ function onScroll() {
695
+ if (rafId !== null)
696
+ return;
697
+ rafId = requestAnimationFrame(() => {
698
+ if (targetElement) {
699
+ updateMask(store, targetElement, context.spotlightPadding);
700
+ }
701
+ rafId = null;
702
+ });
703
+ }
704
+ window.addEventListener("resize", onResize);
705
+ window.addEventListener("scroll", onScroll, { passive: true });
706
+ return () => {
707
+ window.removeEventListener("resize", onResize);
708
+ window.removeEventListener("scroll", onScroll);
709
+ if (rafId !== null) {
710
+ cancelAnimationFrame(rafId);
711
+ }
712
+ };
713
+ }
714
+ }, [open, targetElement, isCurrentStep, store, context.spotlightPadding]);
715
+ React.useEffect(() => {
716
+ if (!open || !isCurrentStep)
717
+ return;
718
+ const stepElement = stepRef.current;
719
+ if (!stepElement)
720
+ return;
721
+ const ownerDocument = stepElement.ownerDocument;
722
+ function onPointerDown(event) {
723
+ if (event.target && !isPointerInsideReactTreeRef.current) {
724
+ const pointerDownOutsideEvent = new CustomEvent(POINTER_DOWN_OUTSIDE, {
725
+ ...EVENT_OPTIONS,
726
+ detail: { originalEvent: event },
727
+ });
728
+ context.onPointerDownOutside?.(pointerDownOutsideEvent);
729
+ const interactOutsideEvent = new CustomEvent(INTERACT_OUTSIDE, {
730
+ ...EVENT_OPTIONS,
731
+ detail: { originalEvent: event },
732
+ });
733
+ context.onInteractOutside?.(interactOutsideEvent);
734
+ if (!pointerDownOutsideEvent.defaultPrevented &&
735
+ !interactOutsideEvent.defaultPrevented &&
736
+ context.dismissible) {
737
+ store.setState("open", false);
738
+ }
739
+ }
740
+ isPointerInsideReactTreeRef.current = false;
741
+ }
742
+ const timerId = window.setTimeout(() => {
743
+ ownerDocument.addEventListener("pointerdown", onPointerDown);
744
+ }, 0);
745
+ return () => {
746
+ window.clearTimeout(timerId);
747
+ ownerDocument.removeEventListener("pointerdown", onPointerDown);
748
+ };
749
+ }, [open, isCurrentStep, store, context]);
750
+ React.useEffect(() => {
751
+ if (!open || !isCurrentStep)
752
+ return;
753
+ const stepElement = stepRef.current;
754
+ if (!stepElement)
755
+ return;
756
+ const ownerDocument = stepElement.ownerDocument;
757
+ function onFocusIn(event) {
758
+ const target = event.target;
759
+ const isFocusInStep = stepElement?.contains(target);
760
+ const isFocusInTarget = targetElement?.contains(target);
761
+ if (event.target &&
762
+ !isFocusInsideReactTreeRef.current &&
763
+ !isFocusInStep &&
764
+ !isFocusInTarget) {
765
+ const interactOutsideEvent = new CustomEvent(INTERACT_OUTSIDE, {
766
+ ...EVENT_OPTIONS,
767
+ detail: { originalEvent: event },
768
+ });
769
+ context.onInteractOutside?.(interactOutsideEvent);
770
+ if (!interactOutsideEvent.defaultPrevented && context.dismissible) {
771
+ store.setState("open", false);
772
+ }
773
+ }
774
+ }
775
+ ownerDocument.addEventListener("focusin", onFocusIn);
776
+ return () => {
777
+ ownerDocument.removeEventListener("focusin", onFocusIn);
778
+ };
779
+ }, [open, isCurrentStep, store, context, targetElement]);
780
+ const onPointerDownCapture = React.useCallback((event) => {
781
+ onPointerDownCaptureProp?.(event);
782
+ isPointerInsideReactTreeRef.current = true;
783
+ }, [onPointerDownCaptureProp]);
784
+ const onFocusCapture = React.useCallback((event) => {
785
+ onFocusCaptureProp?.(event);
786
+ isFocusInsideReactTreeRef.current = true;
787
+ }, [onFocusCaptureProp]);
788
+ const onBlurCapture = React.useCallback((event) => {
789
+ onBlurCaptureProp?.(event);
790
+ isFocusInsideReactTreeRef.current = false;
791
+ }, [onBlurCaptureProp]);
792
+ React.useEffect(() => {
793
+ if (!open || !isCurrentStep || !targetElement)
794
+ return;
795
+ function onTargetPointerDownCapture() {
796
+ isPointerInsideReactTreeRef.current = true;
797
+ }
798
+ function onTargetFocusCapture() {
799
+ isFocusInsideReactTreeRef.current = true;
800
+ }
801
+ function onTargetBlurCapture() {
802
+ isFocusInsideReactTreeRef.current = false;
803
+ }
804
+ targetElement.addEventListener("pointerdown", onTargetPointerDownCapture, true);
805
+ targetElement.addEventListener("focus", onTargetFocusCapture, true);
806
+ targetElement.addEventListener("blur", onTargetBlurCapture, true);
807
+ return () => {
808
+ targetElement.removeEventListener("pointerdown", onTargetPointerDownCapture, true);
809
+ targetElement.removeEventListener("focus", onTargetFocusCapture, true);
810
+ targetElement.removeEventListener("blur", onTargetBlurCapture, true);
811
+ };
812
+ }, [open, isCurrentStep, targetElement]);
813
+ useFocusGuards();
814
+ useFocusTrap(stepRef, open && isCurrentStep, open, context.onOpenAutoFocus, context.onCloseAutoFocus);
815
+ if (!open || !stepData || (!targetElement && !forceMount) || !isCurrentStep) {
816
+ return null;
817
+ }
818
+ const StepPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
819
+ return ((0, jsx_runtime_1.jsx)(StepContext.Provider, { value: stepContextValue, children: (0, jsx_runtime_1.jsxs)(StepPrimitive, { ref: composedRef, "data-slot": "tour-step", "data-side": placedSide, "data-align": placedAlign, dir: context.dir, tabIndex: -1, ...stepProps, onPointerDownCapture: onPointerDownCapture, onFocusCapture: onFocusCapture, onBlurCapture: onBlurCapture, className: (0, utils_1.cn)("fixed z-50 flex w-[calc(100vw-2rem)] max-w-80 flex-col gap-4 rounded-lg border bg-popover p-4 text-popover-foreground shadow-md outline-none", className), style: {
820
+ ...style,
821
+ ...floatingStyles,
822
+ visibility: isHidden ? "hidden" : undefined,
823
+ pointerEvents: isHidden ? "none" : undefined,
824
+ }, children: [children, !footer && ((0, jsx_runtime_1.jsx)(DefaultFooterContext.Provider, { value: true, children: context.stepFooter }))] }) }));
825
+ }
826
+ function TourSpotlight(props) {
827
+ const { asChild, className, style, forceMount = false, ...backdropProps } = props;
828
+ const open = useStore((state) => state.open);
829
+ const maskPath = useStore((state) => state.maskPath);
830
+ if (!open && !forceMount)
831
+ return null;
832
+ const SpotlightPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
833
+ return ((0, jsx_runtime_1.jsx)(SpotlightPrimitive, { "data-slot": "tour-spotlight", "data-state": getDataState(open), ...backdropProps, className: (0, utils_1.cn)("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80 data-[state=closed]:animate-out data-[state=open]:animate-in", className), style: {
834
+ clipPath: maskPath,
835
+ ...style,
836
+ } }));
837
+ }
838
+ function TourSpotlightRing(props) {
839
+ const { asChild, className, style, forceMount = false, ...ringProps } = props;
840
+ const open = useStore((state) => state.open);
841
+ const spotlightRect = useStore((state) => state.spotlightRect);
842
+ if (!open && !forceMount)
843
+ return null;
844
+ if (!spotlightRect)
845
+ return null;
846
+ const RingPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
847
+ return ((0, jsx_runtime_1.jsx)(RingPrimitive, { "data-slot": "tour-spotlight-ring", "data-state": getDataState(open), ...ringProps, className: (0, utils_1.cn)("pointer-events-none fixed z-50 border-ring ring-[3px] ring-ring/50", className), style: {
848
+ left: spotlightRect.x,
849
+ top: spotlightRect.y,
850
+ width: spotlightRect.width,
851
+ height: spotlightRect.height,
852
+ ...style,
853
+ } }));
854
+ }
855
+ function TourPortal(props) {
856
+ const { children, container } = props;
857
+ const portalContext = usePortalContext(PORTAL_NAME);
858
+ const [mounted, setMounted] = React.useState(false);
859
+ (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(() => {
860
+ setMounted(true);
861
+ const node = container ?? document.body;
862
+ portalContext?.onPortalChange(node);
863
+ return () => {
864
+ portalContext?.onPortalChange(null);
865
+ };
866
+ }, [container, portalContext]);
867
+ if (!mounted)
868
+ return null;
869
+ const portalContainer = container ?? portalContext?.portal ?? document.body;
870
+ return ReactDOM.createPortal(children, portalContainer);
871
+ }
872
+ function TourArrow(props) {
873
+ const { width = 10, height = 5, className, children, asChild, ...arrowProps } = props;
874
+ const stepContext = useStepContext(ARROW_NAME);
875
+ const baseSide = OPPOSITE_SIDE[stepContext.placedSide];
876
+ return ((0, jsx_runtime_1.jsx)("span", { ref: stepContext.onArrowChange, "data-slot": "tour-arrow", style: {
877
+ position: "absolute",
878
+ left: stepContext.arrowX != null ? `${stepContext.arrowX}px` : undefined,
879
+ top: stepContext.arrowY != null ? `${stepContext.arrowY}px` : undefined,
880
+ [baseSide]: 0,
881
+ transformOrigin: {
882
+ top: "",
883
+ right: "0 0",
884
+ bottom: "center 0",
885
+ left: "100% 0",
886
+ }[stepContext.placedSide],
887
+ transform: {
888
+ top: "translateY(100%)",
889
+ right: "translateY(50%) rotate(90deg) translateX(-50%)",
890
+ bottom: "rotate(180deg)",
891
+ left: "translateY(50%) rotate(-90deg) translateX(50%)",
892
+ }[stepContext.placedSide],
893
+ visibility: stepContext.shouldHideArrow ? "hidden" : undefined,
894
+ }, children: (0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 30 10", preserveAspectRatio: "none", width: width, height: height, ...arrowProps, className: (0, utils_1.cn)("block fill-popover stroke-border", className), children: asChild ? children : (0, jsx_runtime_1.jsx)("polygon", { points: "0,0 30,0 15,10" }) }) }));
895
+ }
896
+ function TourHeader(props) {
897
+ const { asChild, className, ...headerProps } = props;
898
+ const context = useTourContext(HEADER_NAME);
899
+ const HeaderPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
900
+ return ((0, jsx_runtime_1.jsx)(HeaderPrimitive, { "data-slot": "tour-header", dir: context.dir, ...headerProps, className: (0, utils_1.cn)("flex flex-col gap-1.5 text-center sm:text-start", className) }));
901
+ }
902
+ function TourTitle(props) {
903
+ const { asChild, className, ...titleProps } = props;
904
+ const context = useTourContext(TITLE_NAME);
905
+ const TitlePrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
906
+ return ((0, jsx_runtime_1.jsx)(TitlePrimitive, { "data-slot": "tour-title", dir: context.dir, ...titleProps, className: (0, utils_1.cn)("font-semibold text-lg leading-none tracking-tight", className) }));
907
+ }
908
+ function TourDescription(props) {
909
+ const { asChild, className, ...descriptionProps } = props;
910
+ const context = useTourContext(DESCRIPTION_NAME);
911
+ const DescriptionPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
912
+ return ((0, jsx_runtime_1.jsx)(DescriptionPrimitive, { "data-slot": "tour-description", dir: context.dir, ...descriptionProps, className: (0, utils_1.cn)("text-muted-foreground text-sm", className) }));
913
+ }
914
+ function TourClose(props) {
915
+ const { asChild, className, onClick: onClickProp, ...closeButtonProps } = props;
916
+ const store = useStoreContext(CLOSE_NAME);
917
+ const onClick = React.useCallback((event) => {
918
+ onClickProp?.(event);
919
+ if (event.defaultPrevented)
920
+ return;
921
+ store.setState("open", false);
922
+ }, [store, onClickProp]);
923
+ const ClosePrimitive = asChild ? radix_ui_1.Slot.Slot : "button";
924
+ return ((0, jsx_runtime_1.jsx)(ClosePrimitive, { type: "button", "aria-label": "Close tour", className: (0, utils_1.cn)("absolute top-4 end-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", className), onClick: onClick, ...closeButtonProps, children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "size-4" }) }));
925
+ }
926
+ function TourPrev(props) {
927
+ const { children, onClick: onClickProp, ...prevButtonProps } = props;
928
+ const store = useStoreContext(PREV_NAME);
929
+ const value = useStore((state) => state.value);
930
+ const onClick = React.useCallback((event) => {
931
+ onClickProp?.(event);
932
+ if (event.defaultPrevented)
933
+ return;
934
+ if (value > 0) {
935
+ store.setState("value", value - 1);
936
+ }
937
+ }, [value, store, onClickProp]);
938
+ return ((0, jsx_runtime_1.jsx)(button_1.Button, { type: "button", "aria-label": "Previous step", "data-slot": "tour-prev", variant: "outline", ...prevButtonProps, onClick: onClick, disabled: value === 0, children: children ?? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ChevronLeft, {}), "Previous"] })) }));
939
+ }
940
+ function TourNext(props) {
941
+ const { children, onClick: onClickProp, ...nextButtonProps } = props;
942
+ const store = useStoreContext(NEXT_NAME);
943
+ const value = useStore((state) => state.value);
944
+ const steps = useStore((state) => state.steps);
945
+ const isLastStep = value === steps.length - 1;
946
+ const onClick = React.useCallback((event) => {
947
+ onClickProp?.(event);
948
+ if (event.defaultPrevented)
949
+ return;
950
+ store.setState("value", value + 1);
951
+ }, [value, store, onClickProp]);
952
+ return ((0, jsx_runtime_1.jsx)(button_1.Button, { type: "button", "aria-label": "Next step", "data-slot": "tour-next", ...nextButtonProps, onClick: onClick, children: children ?? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [isLastStep ? "Finish" : "Next", !isLastStep && (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRight, {})] })) }));
953
+ }
954
+ function TourSkip(props) {
955
+ const { children, onClick: onClickProp, ...skipButtonProps } = props;
956
+ const store = useStoreContext(SKIP_NAME);
957
+ const onClick = React.useCallback((event) => {
958
+ onClickProp?.(event);
959
+ if (event.defaultPrevented)
960
+ return;
961
+ store.setState("open", false);
962
+ }, [store, onClickProp]);
963
+ return ((0, jsx_runtime_1.jsx)(button_1.Button, { type: "button", "aria-label": "Skip tour", "data-slot": "tour-skip", variant: "outline", ...skipButtonProps, onClick: onClick, children: children ?? "Skip" }));
964
+ }
965
+ function TourStepCounter(props) {
966
+ const { format = (current, total) => `${current} / ${total}`, asChild, className, children, ...stepCounterProps } = props;
967
+ const value = useStore((state) => state.value);
968
+ const steps = useStore((state) => state.steps);
969
+ const StepCounterPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
970
+ return ((0, jsx_runtime_1.jsx)(StepCounterPrimitive, { "data-slot": "tour-step-counter", ...stepCounterProps, className: (0, utils_1.cn)("text-muted-foreground text-sm", className), children: children ?? format(value + 1, steps.length) }));
971
+ }
972
+ function TourFooter(props) {
973
+ const { asChild, className, ref, ...footerProps } = props;
974
+ const stepContext = useStepContext(FOOTER_NAME);
975
+ const hasDefaultFooter = React.useContext(DefaultFooterContext);
976
+ const context = useTourContext(FOOTER_NAME);
977
+ const composedRef = (0, compose_refs_1.useComposedRefs)(ref, hasDefaultFooter ? undefined : stepContext.onFooterChange);
978
+ const FooterPrimitive = asChild ? radix_ui_1.Slot.Slot : "div";
979
+ return ((0, jsx_runtime_1.jsx)(FooterPrimitive, { "data-slot": "tour-footer", dir: context.dir, ...footerProps, ref: composedRef, className: (0, utils_1.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }));
980
+ }
981
+ //# sourceMappingURL=tour.js.map