@rakun-kit/manager-react 1.2.0 → 1.3.1

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