@sth87/shadcn-design-system 0.0.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 (760) hide show
  1. package/README.md +487 -0
  2. package/dist/cjs/_virtual/_commonjsHelpers.cjs +2 -0
  3. package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +1 -0
  4. package/dist/cjs/_virtual/index.cjs +2 -0
  5. package/dist/cjs/_virtual/index.cjs.map +1 -0
  6. package/dist/cjs/_virtual/index2.cjs +2 -0
  7. package/dist/cjs/_virtual/index2.cjs.map +1 -0
  8. package/dist/cjs/components/Accordion/Accordion.cjs +2 -0
  9. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -0
  10. package/dist/cjs/components/Avatar/Avatar.cjs +2 -0
  11. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -0
  12. package/dist/cjs/components/Badge/Badge.cjs +2 -0
  13. package/dist/cjs/components/Badge/Badge.cjs.map +1 -0
  14. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +2 -0
  15. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -0
  16. package/dist/cjs/components/Button/Button.cjs +2 -0
  17. package/dist/cjs/components/Button/Button.cjs.map +1 -0
  18. package/dist/cjs/components/Button/ButtonGroup.cjs +2 -0
  19. package/dist/cjs/components/Button/ButtonGroup.cjs.map +1 -0
  20. package/dist/cjs/components/Calendar/Calendar.cjs +2 -0
  21. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -0
  22. package/dist/cjs/components/Carousel/Carousel.cjs +2 -0
  23. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -0
  24. package/dist/cjs/components/Checkbox/Checkbox.cjs +2 -0
  25. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -0
  26. package/dist/cjs/components/Collapsible/Collapsible.cjs +2 -0
  27. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -0
  28. package/dist/cjs/components/Command/Command.cjs +2 -0
  29. package/dist/cjs/components/Command/Command.cjs.map +1 -0
  30. package/dist/cjs/components/Command/index.cjs +2 -0
  31. package/dist/cjs/components/Command/index.cjs.map +1 -0
  32. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +2 -0
  33. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -0
  34. package/dist/cjs/components/ContextMenu/index.cjs +2 -0
  35. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -0
  36. package/dist/cjs/components/Cropper/Cropper.cjs +2 -0
  37. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -0
  38. package/dist/cjs/components/Cropper/CropperTool.cjs +2 -0
  39. package/dist/cjs/components/Cropper/CropperTool.cjs.map +1 -0
  40. package/dist/cjs/components/Cropper/utils.cjs +2 -0
  41. package/dist/cjs/components/Cropper/utils.cjs.map +1 -0
  42. package/dist/cjs/components/DatePicker/DatePicker.cjs +2 -0
  43. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -0
  44. package/dist/cjs/components/DatePicker/RangePicker.cjs +2 -0
  45. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -0
  46. package/dist/cjs/components/DatePicker/TimePicker.cjs +2 -0
  47. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -0
  48. package/dist/cjs/components/Dialog/Dialog.cjs +2 -0
  49. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -0
  50. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +2 -0
  51. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
  52. package/dist/cjs/components/DropdownMenu/index.cjs +2 -0
  53. package/dist/cjs/components/DropdownMenu/index.cjs.map +1 -0
  54. package/dist/cjs/components/FloatLabel.cjs +2 -0
  55. package/dist/cjs/components/FloatLabel.cjs.map +1 -0
  56. package/dist/cjs/components/Glass/Glass.cjs +2 -0
  57. package/dist/cjs/components/Glass/Glass.cjs.map +1 -0
  58. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +2 -0
  59. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -0
  60. package/dist/cjs/components/ImageViewer/ImageViewer.css +1 -0
  61. package/dist/cjs/components/Input/Input.cjs +2 -0
  62. package/dist/cjs/components/Input/Input.cjs.map +1 -0
  63. package/dist/cjs/components/InputOTP/InputOTP.cjs +2 -0
  64. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -0
  65. package/dist/cjs/components/Interactive/CursorFollow.cjs +2 -0
  66. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -0
  67. package/dist/cjs/components/Marquee/Marquee.cjs +2 -0
  68. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -0
  69. package/dist/cjs/components/Marquee/MarqueeWrapper.cjs +2 -0
  70. package/dist/cjs/components/Marquee/MarqueeWrapper.cjs.map +1 -0
  71. package/dist/cjs/components/Marquee/index.cjs +2 -0
  72. package/dist/cjs/components/Marquee/index.cjs.map +1 -0
  73. package/dist/cjs/components/Masonry/Masonry.cjs +2 -0
  74. package/dist/cjs/components/Masonry/Masonry.cjs.map +1 -0
  75. package/dist/cjs/components/Masonry/MasonryWrapper.cjs +2 -0
  76. package/dist/cjs/components/Masonry/MasonryWrapper.cjs.map +1 -0
  77. package/dist/cjs/components/Pagination/Pagination.cjs +2 -0
  78. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -0
  79. package/dist/cjs/components/Pagination/index.cjs +2 -0
  80. package/dist/cjs/components/Pagination/index.cjs.map +1 -0
  81. package/dist/cjs/components/Popover/Popover.cjs +2 -0
  82. package/dist/cjs/components/Popover/Popover.cjs.map +1 -0
  83. package/dist/cjs/components/Popover/index.cjs +2 -0
  84. package/dist/cjs/components/Popover/index.cjs.map +1 -0
  85. package/dist/cjs/components/QrCode/QrCode.cjs +2 -0
  86. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -0
  87. package/dist/cjs/components/QrCode/index.cjs +2 -0
  88. package/dist/cjs/components/QrCode/index.cjs.map +1 -0
  89. package/dist/cjs/components/Radio/Radio.cjs +2 -0
  90. package/dist/cjs/components/Radio/Radio.cjs.map +1 -0
  91. package/dist/cjs/components/Rate/Rate.cjs +2 -0
  92. package/dist/cjs/components/Rate/Rate.cjs.map +1 -0
  93. package/dist/cjs/components/Resizable/Resizable.cjs +2 -0
  94. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -0
  95. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +2 -0
  96. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -0
  97. package/dist/cjs/components/Select/Select.cjs +2 -0
  98. package/dist/cjs/components/Select/Select.cjs.map +1 -0
  99. package/dist/cjs/components/Separator/Separator.cjs +2 -0
  100. package/dist/cjs/components/Separator/Separator.cjs.map +1 -0
  101. package/dist/cjs/components/Sheet/Sheet.cjs +6 -0
  102. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -0
  103. package/dist/cjs/components/Sidebar/Sidebar.cjs +2 -0
  104. package/dist/cjs/components/Sidebar/Sidebar.cjs.map +1 -0
  105. package/dist/cjs/components/Skeleton/Skeleton.cjs +2 -0
  106. package/dist/cjs/components/Skeleton/Skeleton.cjs.map +1 -0
  107. package/dist/cjs/components/Slider/Slider.cjs +2 -0
  108. package/dist/cjs/components/Slider/Slider.cjs.map +1 -0
  109. package/dist/cjs/components/Stepper/Stepper.cjs +2 -0
  110. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -0
  111. package/dist/cjs/components/Stepper/StepperWrapper.cjs +2 -0
  112. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -0
  113. package/dist/cjs/components/Stepper/index.cjs +2 -0
  114. package/dist/cjs/components/Stepper/index.cjs.map +1 -0
  115. package/dist/cjs/components/Switch/Switch.cjs +2 -0
  116. package/dist/cjs/components/Switch/Switch.cjs.map +1 -0
  117. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +2 -0
  118. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -0
  119. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +2 -0
  120. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -0
  121. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +2 -0
  122. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -0
  123. package/dist/cjs/components/Table/data-table-column-header.cjs +2 -0
  124. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -0
  125. package/dist/cjs/components/Table/data-table-pagination.cjs +2 -0
  126. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -0
  127. package/dist/cjs/components/Table/data-table.cjs +2 -0
  128. package/dist/cjs/components/Table/data-table.cjs.map +1 -0
  129. package/dist/cjs/components/Tabs/Tabs.cjs +2 -0
  130. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -0
  131. package/dist/cjs/components/Tabs/classes.cjs +2 -0
  132. package/dist/cjs/components/Tabs/classes.cjs.map +1 -0
  133. package/dist/cjs/components/Textarea/Textarea.cjs +2 -0
  134. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -0
  135. package/dist/cjs/components/TimeGridView.cjs +2 -0
  136. package/dist/cjs/components/TimeGridView.cjs.map +1 -0
  137. package/dist/cjs/components/Toast/Toast.cjs +2 -0
  138. package/dist/cjs/components/Toast/Toast.cjs.map +1 -0
  139. package/dist/cjs/components/Toggle/Toggle.cjs +2 -0
  140. package/dist/cjs/components/Toggle/Toggle.cjs.map +1 -0
  141. package/dist/cjs/components/Tooltip/Tooltip.cjs +2 -0
  142. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -0
  143. package/dist/cjs/components/Tour/Tour.cjs +2 -0
  144. package/dist/cjs/components/Tour/Tour.cjs.map +1 -0
  145. package/dist/cjs/components/Tour/TourWrapper.cjs +2 -0
  146. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -0
  147. package/dist/cjs/components/Tour/index.cjs +2 -0
  148. package/dist/cjs/components/Tour/index.cjs.map +1 -0
  149. package/dist/cjs/components/Upload/Upload.cjs +4 -0
  150. package/dist/cjs/components/Upload/Upload.cjs.map +1 -0
  151. package/dist/cjs/components/WheelColumn.cjs +2 -0
  152. package/dist/cjs/components/WheelColumn.cjs.map +1 -0
  153. package/dist/cjs/constants/common.cjs +2 -0
  154. package/dist/cjs/constants/common.cjs.map +1 -0
  155. package/dist/cjs/favicon.ico +0 -0
  156. package/dist/cjs/hooks/use-callback-ref.cjs +2 -0
  157. package/dist/cjs/hooks/use-callback-ref.cjs.map +1 -0
  158. package/dist/cjs/hooks/use-debounced-callback.cjs +2 -0
  159. package/dist/cjs/hooks/use-debounced-callback.cjs.map +1 -0
  160. package/dist/cjs/hooks/use-debounced-value.cjs +2 -0
  161. package/dist/cjs/hooks/use-debounced-value.cjs.map +1 -0
  162. package/dist/cjs/hooks/use-event-listener.cjs +2 -0
  163. package/dist/cjs/hooks/use-event-listener.cjs.map +1 -0
  164. package/dist/cjs/hooks/use-intersection-observer.cjs +2 -0
  165. package/dist/cjs/hooks/use-intersection-observer.cjs.map +1 -0
  166. package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs +2 -0
  167. package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs.map +1 -0
  168. package/dist/cjs/hooks/use-media-query.cjs +2 -0
  169. package/dist/cjs/hooks/use-media-query.cjs.map +1 -0
  170. package/dist/cjs/hooks/use-on-click-outside.cjs +2 -0
  171. package/dist/cjs/hooks/use-on-click-outside.cjs.map +1 -0
  172. package/dist/cjs/hooks/use-script.cjs +2 -0
  173. package/dist/cjs/hooks/use-script.cjs.map +1 -0
  174. package/dist/cjs/hooks/use-scroll-lock.cjs +2 -0
  175. package/dist/cjs/hooks/use-scroll-lock.cjs.map +1 -0
  176. package/dist/cjs/image.png +0 -0
  177. package/dist/cjs/index.cjs +2 -0
  178. package/dist/cjs/index.cjs.map +1 -0
  179. package/dist/cjs/lib/TextAnimation/BlurText.cjs +2 -0
  180. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -0
  181. package/dist/cjs/lib/TextAnimation/CircularText.cjs +2 -0
  182. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -0
  183. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +2 -0
  184. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -0
  185. package/dist/cjs/lib/TextAnimation/GradientText.cjs +2 -0
  186. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -0
  187. package/dist/cjs/lib/TextAnimation/RollingText.cjs +2 -0
  188. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -0
  189. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +2 -0
  190. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -0
  191. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +2 -0
  192. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -0
  193. package/dist/cjs/lib/TextAnimation/SplittingText.cjs +2 -0
  194. package/dist/cjs/lib/TextAnimation/SplittingText.cjs.map +1 -0
  195. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +2 -0
  196. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -0
  197. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +2 -0
  198. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -0
  199. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +22 -0
  200. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -0
  201. package/dist/cjs/lib/TextAnimation/TypingText.cjs +2 -0
  202. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -0
  203. package/dist/cjs/lib/TextAnimation/WritingText.cjs +2 -0
  204. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -0
  205. package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs +253 -0
  206. package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs.map +1 -0
  207. package/dist/cjs/node_modules/.pnpm/viewerjs@1.11.7/node_modules/viewerjs/dist/viewer.css +1 -0
  208. package/dist/cjs/styles/animation.css +1 -0
  209. package/dist/cjs/styles/index.css +1 -0
  210. package/dist/cjs/styles/theme.css +1 -0
  211. package/dist/cjs/utils/animations.cjs +2 -0
  212. package/dist/cjs/utils/animations.cjs.map +1 -0
  213. package/dist/cjs/utils/css.cjs +2 -0
  214. package/dist/cjs/utils/css.cjs.map +1 -0
  215. package/dist/cjs/utils/data-table.cjs +2 -0
  216. package/dist/cjs/utils/data-table.cjs.map +1 -0
  217. package/dist/cjs/utils/datetime.cjs +2 -0
  218. package/dist/cjs/utils/datetime.cjs.map +1 -0
  219. package/dist/cjs/vite.svg +1 -0
  220. package/dist/cjs/wave.png +0 -0
  221. package/dist/esm/_virtual/_commonjsHelpers.js +7 -0
  222. package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
  223. package/dist/esm/_virtual/index.js +8 -0
  224. package/dist/esm/_virtual/index.js.map +1 -0
  225. package/dist/esm/_virtual/index2.js +5 -0
  226. package/dist/esm/_virtual/index2.js.map +1 -0
  227. package/dist/esm/components/Accordion/Accordion.js +190 -0
  228. package/dist/esm/components/Accordion/Accordion.js.map +1 -0
  229. package/dist/esm/components/Avatar/Avatar.js +93 -0
  230. package/dist/esm/components/Avatar/Avatar.js.map +1 -0
  231. package/dist/esm/components/Badge/Badge.js +35 -0
  232. package/dist/esm/components/Badge/Badge.js.map +1 -0
  233. package/dist/esm/components/Breadcrumb/Breadcrumb.js +102 -0
  234. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -0
  235. package/dist/esm/components/Button/Button.js +53 -0
  236. package/dist/esm/components/Button/Button.js.map +1 -0
  237. package/dist/esm/components/Button/ButtonGroup.js +53 -0
  238. package/dist/esm/components/Button/ButtonGroup.js.map +1 -0
  239. package/dist/esm/components/Calendar/Calendar.js +40 -0
  240. package/dist/esm/components/Calendar/Calendar.js.map +1 -0
  241. package/dist/esm/components/Carousel/Carousel.js +510 -0
  242. package/dist/esm/components/Carousel/Carousel.js.map +1 -0
  243. package/dist/esm/components/Checkbox/Checkbox.js +79 -0
  244. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -0
  245. package/dist/esm/components/Collapsible/Collapsible.js +107 -0
  246. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -0
  247. package/dist/esm/components/Command/Command.js +113 -0
  248. package/dist/esm/components/Command/Command.js.map +1 -0
  249. package/dist/esm/components/Command/index.js +16 -0
  250. package/dist/esm/components/Command/index.js.map +1 -0
  251. package/dist/esm/components/ContextMenu/ContextMenu.js +131 -0
  252. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -0
  253. package/dist/esm/components/ContextMenu/index.js +24 -0
  254. package/dist/esm/components/ContextMenu/index.js.map +1 -0
  255. package/dist/esm/components/Cropper/Cropper.js +1014 -0
  256. package/dist/esm/components/Cropper/Cropper.js.map +1 -0
  257. package/dist/esm/components/Cropper/CropperTool.js +157 -0
  258. package/dist/esm/components/Cropper/CropperTool.js.map +1 -0
  259. package/dist/esm/components/Cropper/utils.js +108 -0
  260. package/dist/esm/components/Cropper/utils.js.map +1 -0
  261. package/dist/esm/components/DatePicker/DatePicker.js +263 -0
  262. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
  263. package/dist/esm/components/DatePicker/RangePicker.js +456 -0
  264. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -0
  265. package/dist/esm/components/DatePicker/TimePicker.js +444 -0
  266. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -0
  267. package/dist/esm/components/Dialog/Dialog.js +223 -0
  268. package/dist/esm/components/Dialog/Dialog.js.map +1 -0
  269. package/dist/esm/components/DropdownMenu/DropdownMenu.js +196 -0
  270. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -0
  271. package/dist/esm/components/DropdownMenu/index.js +24 -0
  272. package/dist/esm/components/DropdownMenu/index.js.map +1 -0
  273. package/dist/esm/components/FloatLabel.js +59 -0
  274. package/dist/esm/components/FloatLabel.js.map +1 -0
  275. package/dist/esm/components/Glass/Glass.js +93 -0
  276. package/dist/esm/components/Glass/Glass.js.map +1 -0
  277. package/dist/esm/components/ImageViewer/ImageViewer.css +1 -0
  278. package/dist/esm/components/ImageViewer/ImageViewer.js +273 -0
  279. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -0
  280. package/dist/esm/components/Input/Input.js +267 -0
  281. package/dist/esm/components/Input/Input.js.map +1 -0
  282. package/dist/esm/components/InputOTP/InputOTP.js +70 -0
  283. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -0
  284. package/dist/esm/components/Interactive/CursorFollow.js +257 -0
  285. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -0
  286. package/dist/esm/components/Marquee/Marquee.js +419 -0
  287. package/dist/esm/components/Marquee/Marquee.js.map +1 -0
  288. package/dist/esm/components/Marquee/MarqueeWrapper.js +25 -0
  289. package/dist/esm/components/Marquee/MarqueeWrapper.js.map +1 -0
  290. package/dist/esm/components/Marquee/index.js +15 -0
  291. package/dist/esm/components/Marquee/index.js.map +1 -0
  292. package/dist/esm/components/Masonry/Masonry.js +840 -0
  293. package/dist/esm/components/Masonry/Masonry.js.map +1 -0
  294. package/dist/esm/components/Masonry/MasonryWrapper.js +19 -0
  295. package/dist/esm/components/Masonry/MasonryWrapper.js.map +1 -0
  296. package/dist/esm/components/Pagination/Pagination.js +209 -0
  297. package/dist/esm/components/Pagination/Pagination.js.map +1 -0
  298. package/dist/esm/components/Pagination/index.js +14 -0
  299. package/dist/esm/components/Pagination/index.js.map +1 -0
  300. package/dist/esm/components/Popover/Popover.js +51 -0
  301. package/dist/esm/components/Popover/Popover.js.map +1 -0
  302. package/dist/esm/components/Popover/index.js +9 -0
  303. package/dist/esm/components/Popover/index.js.map +1 -0
  304. package/dist/esm/components/QrCode/QrCode.js +300 -0
  305. package/dist/esm/components/QrCode/QrCode.js.map +1 -0
  306. package/dist/esm/components/QrCode/index.js +16 -0
  307. package/dist/esm/components/QrCode/index.js.map +1 -0
  308. package/dist/esm/components/Radio/Radio.js +74 -0
  309. package/dist/esm/components/Radio/Radio.js.map +1 -0
  310. package/dist/esm/components/Rate/Rate.js +191 -0
  311. package/dist/esm/components/Rate/Rate.js.map +1 -0
  312. package/dist/esm/components/Resizable/Resizable.js +89 -0
  313. package/dist/esm/components/Resizable/Resizable.js.map +1 -0
  314. package/dist/esm/components/ScrollArea/ScrollArea.js +45 -0
  315. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -0
  316. package/dist/esm/components/Select/Select.js +199 -0
  317. package/dist/esm/components/Select/Select.js.map +1 -0
  318. package/dist/esm/components/Separator/Separator.js +7 -0
  319. package/dist/esm/components/Separator/Separator.js.map +1 -0
  320. package/dist/esm/components/Sheet/Sheet.js +141 -0
  321. package/dist/esm/components/Sheet/Sheet.js.map +1 -0
  322. package/dist/esm/components/Sidebar/Sidebar.js +30 -0
  323. package/dist/esm/components/Sidebar/Sidebar.js.map +1 -0
  324. package/dist/esm/components/Skeleton/Skeleton.js +12 -0
  325. package/dist/esm/components/Skeleton/Skeleton.js.map +1 -0
  326. package/dist/esm/components/Slider/Slider.js +420 -0
  327. package/dist/esm/components/Slider/Slider.js.map +1 -0
  328. package/dist/esm/components/Stepper/Stepper.js +886 -0
  329. package/dist/esm/components/Stepper/Stepper.js.map +1 -0
  330. package/dist/esm/components/Stepper/StepperWrapper.js +80 -0
  331. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -0
  332. package/dist/esm/components/Stepper/index.js +21 -0
  333. package/dist/esm/components/Stepper/index.js.map +1 -0
  334. package/dist/esm/components/Switch/Switch.js +126 -0
  335. package/dist/esm/components/Switch/Switch.js.map +1 -0
  336. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +126 -0
  337. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -0
  338. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +138 -0
  339. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -0
  340. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +164 -0
  341. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -0
  342. package/dist/esm/components/Table/data-table-column-header.js +82 -0
  343. package/dist/esm/components/Table/data-table-column-header.js.map +1 -0
  344. package/dist/esm/components/Table/data-table-pagination.js +73 -0
  345. package/dist/esm/components/Table/data-table-pagination.js.map +1 -0
  346. package/dist/esm/components/Table/data-table.js +94 -0
  347. package/dist/esm/components/Table/data-table.js.map +1 -0
  348. package/dist/esm/components/Tabs/Tabs.js +540 -0
  349. package/dist/esm/components/Tabs/Tabs.js.map +1 -0
  350. package/dist/esm/components/Tabs/classes.js +345 -0
  351. package/dist/esm/components/Tabs/classes.js.map +1 -0
  352. package/dist/esm/components/Textarea/Textarea.js +132 -0
  353. package/dist/esm/components/Textarea/Textarea.js.map +1 -0
  354. package/dist/esm/components/TimeGridView.js +101 -0
  355. package/dist/esm/components/TimeGridView.js.map +1 -0
  356. package/dist/esm/components/Toast/Toast.js +80 -0
  357. package/dist/esm/components/Toast/Toast.js.map +1 -0
  358. package/dist/esm/components/Toggle/Toggle.js +23 -0
  359. package/dist/esm/components/Toggle/Toggle.js.map +1 -0
  360. package/dist/esm/components/Tooltip/Tooltip.js +120 -0
  361. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -0
  362. package/dist/esm/components/Tour/Tour.js +948 -0
  363. package/dist/esm/components/Tour/Tour.js.map +1 -0
  364. package/dist/esm/components/Tour/TourWrapper.js +67 -0
  365. package/dist/esm/components/Tour/TourWrapper.js.map +1 -0
  366. package/dist/esm/components/Tour/index.js +38 -0
  367. package/dist/esm/components/Tour/index.js.map +1 -0
  368. package/dist/esm/components/Upload/Upload.js +948 -0
  369. package/dist/esm/components/Upload/Upload.js.map +1 -0
  370. package/dist/esm/components/WheelColumn.js +127 -0
  371. package/dist/esm/components/WheelColumn.js.map +1 -0
  372. package/dist/esm/constants/common.js +5 -0
  373. package/dist/esm/constants/common.js.map +1 -0
  374. package/dist/esm/favicon.ico +0 -0
  375. package/dist/esm/hooks/use-callback-ref.js +14 -0
  376. package/dist/esm/hooks/use-callback-ref.js.map +1 -0
  377. package/dist/esm/hooks/use-debounced-callback.js +21 -0
  378. package/dist/esm/hooks/use-debounced-callback.js.map +1 -0
  379. package/dist/esm/hooks/use-debounced-value.js +12 -0
  380. package/dist/esm/hooks/use-debounced-value.js.map +1 -0
  381. package/dist/esm/hooks/use-event-listener.js +21 -0
  382. package/dist/esm/hooks/use-event-listener.js.map +1 -0
  383. package/dist/esm/hooks/use-intersection-observer.js +56 -0
  384. package/dist/esm/hooks/use-intersection-observer.js.map +1 -0
  385. package/dist/esm/hooks/use-isomorphic-layout-effect.js +6 -0
  386. package/dist/esm/hooks/use-isomorphic-layout-effect.js.map +1 -0
  387. package/dist/esm/hooks/use-media-query.js +22 -0
  388. package/dist/esm/hooks/use-media-query.js.map +1 -0
  389. package/dist/esm/hooks/use-on-click-outside.js +18 -0
  390. package/dist/esm/hooks/use-on-click-outside.js.map +1 -0
  391. package/dist/esm/hooks/use-script.js +46 -0
  392. package/dist/esm/hooks/use-script.js.map +1 -0
  393. package/dist/esm/hooks/use-scroll-lock.js +27 -0
  394. package/dist/esm/hooks/use-scroll-lock.js.map +1 -0
  395. package/dist/esm/image.png +0 -0
  396. package/dist/esm/index.js +223 -0
  397. package/dist/esm/index.js.map +1 -0
  398. package/dist/esm/lib/TextAnimation/BlurText.js +84 -0
  399. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -0
  400. package/dist/esm/lib/TextAnimation/CircularText.js +96 -0
  401. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -0
  402. package/dist/esm/lib/TextAnimation/FlipWords.js +103 -0
  403. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -0
  404. package/dist/esm/lib/TextAnimation/GradientText.js +54 -0
  405. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -0
  406. package/dist/esm/lib/TextAnimation/RollingText.js +70 -0
  407. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -0
  408. package/dist/esm/lib/TextAnimation/RotatingText.js +38 -0
  409. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -0
  410. package/dist/esm/lib/TextAnimation/ShimmeringText.js +64 -0
  411. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -0
  412. package/dist/esm/lib/TextAnimation/SplittingText.js +86 -0
  413. package/dist/esm/lib/TextAnimation/SplittingText.js.map +1 -0
  414. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +59 -0
  415. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -0
  416. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +128 -0
  417. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -0
  418. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +135 -0
  419. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -0
  420. package/dist/esm/lib/TextAnimation/TypingText.js +118 -0
  421. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -0
  422. package/dist/esm/lib/TextAnimation/WritingText.js +45 -0
  423. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -0
  424. package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js +865 -0
  425. package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js.map +1 -0
  426. package/dist/esm/node_modules/.pnpm/viewerjs@1.11.7/node_modules/viewerjs/dist/viewer.css +1 -0
  427. package/dist/esm/styles/animation.css +1 -0
  428. package/dist/esm/styles/index.css +1 -0
  429. package/dist/esm/styles/theme.css +1 -0
  430. package/dist/esm/utils/animations.js +189 -0
  431. package/dist/esm/utils/animations.js.map +1 -0
  432. package/dist/esm/utils/css.js +25 -0
  433. package/dist/esm/utils/css.js.map +1 -0
  434. package/dist/esm/utils/data-table.js +20 -0
  435. package/dist/esm/utils/data-table.js.map +1 -0
  436. package/dist/esm/utils/datetime.js +17 -0
  437. package/dist/esm/utils/datetime.js.map +1 -0
  438. package/dist/esm/vite.svg +1 -0
  439. package/dist/esm/wave.png +0 -0
  440. package/dist/types/components/Accordion/Accordion.d.ts +49 -0
  441. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -0
  442. package/dist/types/components/Accordion/index.d.ts +3 -0
  443. package/dist/types/components/Accordion/index.d.ts.map +1 -0
  444. package/dist/types/components/Avatar/Avatar.d.ts +18 -0
  445. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
  446. package/dist/types/components/Avatar/index.d.ts +3 -0
  447. package/dist/types/components/Avatar/index.d.ts.map +1 -0
  448. package/dist/types/components/Badge/Badge.d.ts +10 -0
  449. package/dist/types/components/Badge/Badge.d.ts.map +1 -0
  450. package/dist/types/components/Badge/index.d.ts +2 -0
  451. package/dist/types/components/Badge/index.d.ts.map +1 -0
  452. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +23 -0
  453. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  454. package/dist/types/components/Breadcrumb/index.d.ts +2 -0
  455. package/dist/types/components/Breadcrumb/index.d.ts.map +1 -0
  456. package/dist/types/components/Button/Button.d.ts +10 -0
  457. package/dist/types/components/Button/Button.d.ts.map +1 -0
  458. package/dist/types/components/Button/ButtonGroup.d.ts +16 -0
  459. package/dist/types/components/Button/ButtonGroup.d.ts.map +1 -0
  460. package/dist/types/components/Button/index.d.ts +5 -0
  461. package/dist/types/components/Button/index.d.ts.map +1 -0
  462. package/dist/types/components/Calendar/Calendar.d.ts +15 -0
  463. package/dist/types/components/Calendar/Calendar.d.ts.map +1 -0
  464. package/dist/types/components/Calendar/index.d.ts +3 -0
  465. package/dist/types/components/Calendar/index.d.ts.map +1 -0
  466. package/dist/types/components/Carousel/Carousel.d.ts +79 -0
  467. package/dist/types/components/Carousel/Carousel.d.ts.map +1 -0
  468. package/dist/types/components/Carousel/index.d.ts +4 -0
  469. package/dist/types/components/Carousel/index.d.ts.map +1 -0
  470. package/dist/types/components/Checkbox/Checkbox.d.ts +15 -0
  471. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -0
  472. package/dist/types/components/Checkbox/index.d.ts +2 -0
  473. package/dist/types/components/Checkbox/index.d.ts.map +1 -0
  474. package/dist/types/components/Collapsible/Collapsible.d.ts +17 -0
  475. package/dist/types/components/Collapsible/Collapsible.d.ts.map +1 -0
  476. package/dist/types/components/Collapsible/index.d.ts +2 -0
  477. package/dist/types/components/Collapsible/index.d.ts.map +1 -0
  478. package/dist/types/components/Command/Command.d.ts +39 -0
  479. package/dist/types/components/Command/Command.d.ts.map +1 -0
  480. package/dist/types/components/Command/index.d.ts +15 -0
  481. package/dist/types/components/Command/index.d.ts.map +1 -0
  482. package/dist/types/components/ContextMenu/ContextMenu.d.ts +64 -0
  483. package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +1 -0
  484. package/dist/types/components/ContextMenu/index.d.ts +23 -0
  485. package/dist/types/components/ContextMenu/index.d.ts.map +1 -0
  486. package/dist/types/components/Cropper/Cropper.d.ts +86 -0
  487. package/dist/types/components/Cropper/Cropper.d.ts.map +1 -0
  488. package/dist/types/components/Cropper/CropperTool.d.ts +149 -0
  489. package/dist/types/components/Cropper/CropperTool.d.ts.map +1 -0
  490. package/dist/types/components/Cropper/index.d.ts +4 -0
  491. package/dist/types/components/Cropper/index.d.ts.map +1 -0
  492. package/dist/types/components/Cropper/utils.d.ts +130 -0
  493. package/dist/types/components/Cropper/utils.d.ts.map +1 -0
  494. package/dist/types/components/DatePicker/DatePicker.d.ts +56 -0
  495. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -0
  496. package/dist/types/components/DatePicker/RangePicker.d.ts +42 -0
  497. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -0
  498. package/dist/types/components/DatePicker/TimePicker.d.ts +43 -0
  499. package/dist/types/components/DatePicker/TimePicker.d.ts.map +1 -0
  500. package/dist/types/components/DatePicker/index.d.ts +7 -0
  501. package/dist/types/components/DatePicker/index.d.ts.map +1 -0
  502. package/dist/types/components/Dialog/Dialog.d.ts +45 -0
  503. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -0
  504. package/dist/types/components/Dialog/index.d.ts +2 -0
  505. package/dist/types/components/Dialog/index.d.ts.map +1 -0
  506. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +65 -0
  507. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  508. package/dist/types/components/DropdownMenu/index.d.ts +22 -0
  509. package/dist/types/components/DropdownMenu/index.d.ts.map +1 -0
  510. package/dist/types/components/FloatLabel.d.ts +8 -0
  511. package/dist/types/components/FloatLabel.d.ts.map +1 -0
  512. package/dist/types/components/Glass/Glass.d.ts +10 -0
  513. package/dist/types/components/Glass/Glass.d.ts.map +1 -0
  514. package/dist/types/components/Glass/index.d.ts +2 -0
  515. package/dist/types/components/Glass/index.d.ts.map +1 -0
  516. package/dist/types/components/ImageViewer/ImageViewer.d.ts +58 -0
  517. package/dist/types/components/ImageViewer/ImageViewer.d.ts.map +1 -0
  518. package/dist/types/components/ImageViewer/index.d.ts +4 -0
  519. package/dist/types/components/ImageViewer/index.d.ts.map +1 -0
  520. package/dist/types/components/Input/Input.d.ts +27 -0
  521. package/dist/types/components/Input/Input.d.ts.map +1 -0
  522. package/dist/types/components/Input/index.d.ts +2 -0
  523. package/dist/types/components/Input/index.d.ts.map +1 -0
  524. package/dist/types/components/InputOTP/InputOTP.d.ts +20 -0
  525. package/dist/types/components/InputOTP/InputOTP.d.ts.map +1 -0
  526. package/dist/types/components/InputOTP/index.d.ts +2 -0
  527. package/dist/types/components/InputOTP/index.d.ts.map +1 -0
  528. package/dist/types/components/Interactive/3DCard.d.ts +28 -0
  529. package/dist/types/components/Interactive/3DCard.d.ts.map +1 -0
  530. package/dist/types/components/Interactive/3DMarquee.d.ts +20 -0
  531. package/dist/types/components/Interactive/3DMarquee.d.ts.map +1 -0
  532. package/dist/types/components/Interactive/CursorFollow.d.ts +75 -0
  533. package/dist/types/components/Interactive/CursorFollow.d.ts.map +1 -0
  534. package/dist/types/components/Interactive/index.cursor.d.ts +7 -0
  535. package/dist/types/components/Interactive/index.cursor.d.ts.map +1 -0
  536. package/dist/types/components/Interactive/index.d.ts +2 -0
  537. package/dist/types/components/Interactive/index.d.ts.map +1 -0
  538. package/dist/types/components/Label/Label.d.ts +3 -0
  539. package/dist/types/components/Label/Label.d.ts.map +1 -0
  540. package/dist/types/components/Label/index.d.ts +2 -0
  541. package/dist/types/components/Label/index.d.ts.map +1 -0
  542. package/dist/types/components/Marquee/Marquee.d.ts +31 -0
  543. package/dist/types/components/Marquee/Marquee.d.ts.map +1 -0
  544. package/dist/types/components/Marquee/MarqueeWrapper.d.ts +10 -0
  545. package/dist/types/components/Marquee/MarqueeWrapper.d.ts.map +1 -0
  546. package/dist/types/components/Marquee/index.d.ts +13 -0
  547. package/dist/types/components/Marquee/index.d.ts.map +1 -0
  548. package/dist/types/components/Masonry/Masonry.d.ts +41 -0
  549. package/dist/types/components/Masonry/Masonry.d.ts.map +1 -0
  550. package/dist/types/components/Masonry/MasonryWrapper.d.ts +29 -0
  551. package/dist/types/components/Masonry/MasonryWrapper.d.ts.map +1 -0
  552. package/dist/types/components/Masonry/index.d.ts +5 -0
  553. package/dist/types/components/Masonry/index.d.ts.map +1 -0
  554. package/dist/types/components/Pagination/Pagination.d.ts +24 -0
  555. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -0
  556. package/dist/types/components/Pagination/index.d.ts +11 -0
  557. package/dist/types/components/Pagination/index.d.ts.map +1 -0
  558. package/dist/types/components/Popover/Popover.d.ts +22 -0
  559. package/dist/types/components/Popover/Popover.d.ts.map +1 -0
  560. package/dist/types/components/Popover/index.d.ts +5 -0
  561. package/dist/types/components/Popover/index.d.ts.map +1 -0
  562. package/dist/types/components/QrCode/QrCode.d.ts +51 -0
  563. package/dist/types/components/QrCode/QrCode.d.ts.map +1 -0
  564. package/dist/types/components/QrCode/index.d.ts +13 -0
  565. package/dist/types/components/QrCode/index.d.ts.map +1 -0
  566. package/dist/types/components/Radio/Radio.d.ts +35 -0
  567. package/dist/types/components/Radio/Radio.d.ts.map +1 -0
  568. package/dist/types/components/Radio/index.d.ts +2 -0
  569. package/dist/types/components/Radio/index.d.ts.map +1 -0
  570. package/dist/types/components/Rate/Rate.d.ts +26 -0
  571. package/dist/types/components/Rate/Rate.d.ts.map +1 -0
  572. package/dist/types/components/Rate/index.d.ts +3 -0
  573. package/dist/types/components/Rate/index.d.ts.map +1 -0
  574. package/dist/types/components/Resizable/Resizable.d.ts +71 -0
  575. package/dist/types/components/Resizable/Resizable.d.ts.map +1 -0
  576. package/dist/types/components/Resizable/index.d.ts +4 -0
  577. package/dist/types/components/Resizable/index.d.ts.map +1 -0
  578. package/dist/types/components/ScrollArea/ScrollArea.d.ts +19 -0
  579. package/dist/types/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  580. package/dist/types/components/ScrollArea/index.d.ts +2 -0
  581. package/dist/types/components/ScrollArea/index.d.ts.map +1 -0
  582. package/dist/types/components/Select/Select.d.ts +33 -0
  583. package/dist/types/components/Select/Select.d.ts.map +1 -0
  584. package/dist/types/components/Select/index.d.ts +2 -0
  585. package/dist/types/components/Select/index.d.ts.map +1 -0
  586. package/dist/types/components/Separator/Separator.d.ts +5 -0
  587. package/dist/types/components/Separator/Separator.d.ts.map +1 -0
  588. package/dist/types/components/Separator/index.d.ts +2 -0
  589. package/dist/types/components/Separator/index.d.ts.map +1 -0
  590. package/dist/types/components/Sheet/Sheet.d.ts +36 -0
  591. package/dist/types/components/Sheet/Sheet.d.ts.map +1 -0
  592. package/dist/types/components/Sheet/index.d.ts +2 -0
  593. package/dist/types/components/Sheet/index.d.ts.map +1 -0
  594. package/dist/types/components/Sidebar/Sidebar.d.ts +50 -0
  595. package/dist/types/components/Sidebar/Sidebar.d.ts.map +1 -0
  596. package/dist/types/components/Sidebar/index.d.ts +4 -0
  597. package/dist/types/components/Sidebar/index.d.ts.map +1 -0
  598. package/dist/types/components/Skeleton/Skeleton.d.ts +6 -0
  599. package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -0
  600. package/dist/types/components/Skeleton/index.d.ts +2 -0
  601. package/dist/types/components/Skeleton/index.d.ts.map +1 -0
  602. package/dist/types/components/Slider/Slider.d.ts +25 -0
  603. package/dist/types/components/Slider/Slider.d.ts.map +1 -0
  604. package/dist/types/components/Slider/index.d.ts +2 -0
  605. package/dist/types/components/Slider/index.d.ts.map +1 -0
  606. package/dist/types/components/Stepper/Stepper.d.ts +86 -0
  607. package/dist/types/components/Stepper/Stepper.d.ts.map +1 -0
  608. package/dist/types/components/Stepper/StepperWrapper.d.ts +25 -0
  609. package/dist/types/components/Stepper/StepperWrapper.d.ts.map +1 -0
  610. package/dist/types/components/Stepper/index.d.ts +18 -0
  611. package/dist/types/components/Stepper/index.d.ts.map +1 -0
  612. package/dist/types/components/Switch/Switch.d.ts +14 -0
  613. package/dist/types/components/Switch/Switch.d.ts.map +1 -0
  614. package/dist/types/components/Switch/index.d.ts +2 -0
  615. package/dist/types/components/Switch/index.d.ts.map +1 -0
  616. package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts +9 -0
  617. package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts.map +1 -0
  618. package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts +11 -0
  619. package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts.map +1 -0
  620. package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts +8 -0
  621. package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts.map +1 -0
  622. package/dist/types/components/Table/TableWrapper.d.ts +2 -0
  623. package/dist/types/components/Table/TableWrapper.d.ts.map +1 -0
  624. package/dist/types/components/Table/data-table-column-header.d.ts +9 -0
  625. package/dist/types/components/Table/data-table-column-header.d.ts.map +1 -0
  626. package/dist/types/components/Table/data-table-pagination.d.ts +12 -0
  627. package/dist/types/components/Table/data-table-pagination.d.ts.map +1 -0
  628. package/dist/types/components/Table/data-table-toolbar.d.ts +10 -0
  629. package/dist/types/components/Table/data-table-toolbar.d.ts.map +1 -0
  630. package/dist/types/components/Table/data-table-view-options.d.ts +9 -0
  631. package/dist/types/components/Table/data-table-view-options.d.ts.map +1 -0
  632. package/dist/types/components/Table/data-table.d.ts +18 -0
  633. package/dist/types/components/Table/data-table.d.ts.map +1 -0
  634. package/dist/types/components/Table/index.d.ts +2 -0
  635. package/dist/types/components/Table/index.d.ts.map +1 -0
  636. package/dist/types/components/Table/select-column.d.ts +5 -0
  637. package/dist/types/components/Table/select-column.d.ts.map +1 -0
  638. package/dist/types/components/Tabs/Tabs.d.ts +22 -0
  639. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -0
  640. package/dist/types/components/Tabs/classes.d.ts +29 -0
  641. package/dist/types/components/Tabs/classes.d.ts.map +1 -0
  642. package/dist/types/components/Tabs/index.d.ts +4 -0
  643. package/dist/types/components/Tabs/index.d.ts.map +1 -0
  644. package/dist/types/components/Tabs/types.d.ts +15 -0
  645. package/dist/types/components/Tabs/types.d.ts.map +1 -0
  646. package/dist/types/components/Textarea/Textarea.d.ts +17 -0
  647. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -0
  648. package/dist/types/components/Textarea/index.d.ts +2 -0
  649. package/dist/types/components/Textarea/index.d.ts.map +1 -0
  650. package/dist/types/components/Theme/ThemeShowcase.d.ts +3 -0
  651. package/dist/types/components/Theme/ThemeShowcase.d.ts.map +1 -0
  652. package/dist/types/components/TimeGridView.d.ts +15 -0
  653. package/dist/types/components/TimeGridView.d.ts.map +1 -0
  654. package/dist/types/components/Toast/Toast.d.ts +12 -0
  655. package/dist/types/components/Toast/Toast.d.ts.map +1 -0
  656. package/dist/types/components/Toast/index.d.ts +3 -0
  657. package/dist/types/components/Toast/index.d.ts.map +1 -0
  658. package/dist/types/components/Toggle/Toggle.d.ts +10 -0
  659. package/dist/types/components/Toggle/Toggle.d.ts.map +1 -0
  660. package/dist/types/components/Toggle/index.d.ts +2 -0
  661. package/dist/types/components/Toggle/index.d.ts.map +1 -0
  662. package/dist/types/components/Tooltip/Tooltip.d.ts +19 -0
  663. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -0
  664. package/dist/types/components/Tooltip/index.d.ts +3 -0
  665. package/dist/types/components/Tooltip/index.d.ts.map +1 -0
  666. package/dist/types/components/Tour/Tour.d.ts +105 -0
  667. package/dist/types/components/Tour/Tour.d.ts.map +1 -0
  668. package/dist/types/components/Tour/TourWrapper.d.ts +46 -0
  669. package/dist/types/components/Tour/TourWrapper.d.ts.map +1 -0
  670. package/dist/types/components/Tour/index.d.ts +36 -0
  671. package/dist/types/components/Tour/index.d.ts.map +1 -0
  672. package/dist/types/components/TreeSelect/TreeSelect.d.ts +2 -0
  673. package/dist/types/components/TreeSelect/TreeSelect.d.ts.map +1 -0
  674. package/dist/types/components/TreeSelect/index.d.ts +2 -0
  675. package/dist/types/components/TreeSelect/index.d.ts.map +1 -0
  676. package/dist/types/components/Upload/Upload.d.ts +69 -0
  677. package/dist/types/components/Upload/Upload.d.ts.map +1 -0
  678. package/dist/types/components/Upload/index.d.ts +2 -0
  679. package/dist/types/components/Upload/index.d.ts.map +1 -0
  680. package/dist/types/components/WheelColumn.d.ts +15 -0
  681. package/dist/types/components/WheelColumn.d.ts.map +1 -0
  682. package/dist/types/config/data-table.d.ts +125 -0
  683. package/dist/types/config/data-table.d.ts.map +1 -0
  684. package/dist/types/constants/common.d.ts +4 -0
  685. package/dist/types/constants/common.d.ts.map +1 -0
  686. package/dist/types/constants/theme.d.ts +13 -0
  687. package/dist/types/constants/theme.d.ts.map +1 -0
  688. package/dist/types/hooks/index.d.ts +10 -0
  689. package/dist/types/hooks/index.d.ts.map +1 -0
  690. package/dist/types/hooks/use-callback-ref.d.ts +10 -0
  691. package/dist/types/hooks/use-callback-ref.d.ts.map +1 -0
  692. package/dist/types/hooks/use-data-table.d.ts +26 -0
  693. package/dist/types/hooks/use-data-table.d.ts.map +1 -0
  694. package/dist/types/hooks/use-debounced-callback.d.ts +2 -0
  695. package/dist/types/hooks/use-debounced-callback.d.ts.map +1 -0
  696. package/dist/types/hooks/use-debounced-value.d.ts +9 -0
  697. package/dist/types/hooks/use-debounced-value.d.ts.map +1 -0
  698. package/dist/types/hooks/use-event-listener.d.ts +7 -0
  699. package/dist/types/hooks/use-event-listener.d.ts.map +1 -0
  700. package/dist/types/hooks/use-intersection-observer.d.ts +20 -0
  701. package/dist/types/hooks/use-intersection-observer.d.ts.map +1 -0
  702. package/dist/types/hooks/use-isomorphic-layout-effect.d.ts +3 -0
  703. package/dist/types/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  704. package/dist/types/hooks/use-media-query.d.ts +7 -0
  705. package/dist/types/hooks/use-media-query.d.ts.map +1 -0
  706. package/dist/types/hooks/use-mouse-position.d.ts +14 -0
  707. package/dist/types/hooks/use-mouse-position.d.ts.map +1 -0
  708. package/dist/types/hooks/use-on-click-outside.d.ts +5 -0
  709. package/dist/types/hooks/use-on-click-outside.d.ts.map +1 -0
  710. package/dist/types/hooks/use-script.d.ts +9 -0
  711. package/dist/types/hooks/use-script.d.ts.map +1 -0
  712. package/dist/types/hooks/use-scroll-lock.d.ts +13 -0
  713. package/dist/types/hooks/use-scroll-lock.d.ts.map +1 -0
  714. package/dist/types/index.d.ts +72 -0
  715. package/dist/types/index.d.ts.map +1 -0
  716. package/dist/types/lib/TextAnimation/BlurText.d.ts +18 -0
  717. package/dist/types/lib/TextAnimation/BlurText.d.ts.map +1 -0
  718. package/dist/types/lib/TextAnimation/CircularText.d.ts +10 -0
  719. package/dist/types/lib/TextAnimation/CircularText.d.ts.map +1 -0
  720. package/dist/types/lib/TextAnimation/FlipWords.d.ts +10 -0
  721. package/dist/types/lib/TextAnimation/FlipWords.d.ts.map +1 -0
  722. package/dist/types/lib/TextAnimation/GradientText.d.ts +11 -0
  723. package/dist/types/lib/TextAnimation/GradientText.d.ts.map +1 -0
  724. package/dist/types/lib/TextAnimation/RollingText.d.ts +12 -0
  725. package/dist/types/lib/TextAnimation/RollingText.d.ts.map +1 -0
  726. package/dist/types/lib/TextAnimation/RotatingText.d.ts +11 -0
  727. package/dist/types/lib/TextAnimation/RotatingText.d.ts.map +1 -0
  728. package/dist/types/lib/TextAnimation/ShimmeringText.d.ts +12 -0
  729. package/dist/types/lib/TextAnimation/ShimmeringText.d.ts.map +1 -0
  730. package/dist/types/lib/TextAnimation/SplittingText.d.ts +26 -0
  731. package/dist/types/lib/TextAnimation/SplittingText.d.ts.map +1 -0
  732. package/dist/types/lib/TextAnimation/TextGenerateEffect.d.ts +10 -0
  733. package/dist/types/lib/TextAnimation/TextGenerateEffect.d.ts.map +1 -0
  734. package/dist/types/lib/TextAnimation/TextHoverEffect.d.ts +6 -0
  735. package/dist/types/lib/TextAnimation/TextHoverEffect.d.ts.map +1 -0
  736. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts +20 -0
  737. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -0
  738. package/dist/types/lib/TextAnimation/TypingText.d.ts +27 -0
  739. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -0
  740. package/dist/types/lib/TextAnimation/WritingText.d.ts +13 -0
  741. package/dist/types/lib/TextAnimation/WritingText.d.ts.map +1 -0
  742. package/dist/types/lib/TextAnimation/index.d.ts +16 -0
  743. package/dist/types/lib/TextAnimation/index.d.ts.map +1 -0
  744. package/dist/types/types/data-table.d.ts +44 -0
  745. package/dist/types/types/data-table.d.ts.map +1 -0
  746. package/dist/types/types/theme.d.ts +11 -0
  747. package/dist/types/types/theme.d.ts.map +1 -0
  748. package/dist/types/types/variables.d.ts +6 -0
  749. package/dist/types/types/variables.d.ts.map +1 -0
  750. package/dist/types/utils/animations.d.ts +47 -0
  751. package/dist/types/utils/animations.d.ts.map +1 -0
  752. package/dist/types/utils/css.d.ts +4 -0
  753. package/dist/types/utils/css.d.ts.map +1 -0
  754. package/dist/types/utils/data-table.d.ts +13 -0
  755. package/dist/types/utils/data-table.d.ts.map +1 -0
  756. package/dist/types/utils/datetime.d.ts +2 -0
  757. package/dist/types/utils/datetime.d.ts.map +1 -0
  758. package/dist/types/utils/parsers.d.ts +38 -0
  759. package/dist/types/utils/parsers.d.ts.map +1 -0
  760. package/package.json +968 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tour.js","sources":["../../../../src/components/Tour/Tour.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn, Slot, useComposedRefs } from \"@dsui/ui/index\";\nimport {\n autoUpdate,\n flip,\n hide,\n limitShift,\n type Middleware,\n offset,\n arrow as onArrow,\n type Placement,\n shift,\n useFloating,\n} from \"@floating-ui/react-dom\";\nimport { ChevronLeft, ChevronRight, X } from \"lucide-react\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport Button from \"../Button\";\n\nconst ROOT_NAME = \"Tour\";\nconst PORTAL_NAME = \"TourPortal\";\nconst STEP_NAME = \"TourStep\";\nconst ARROW_NAME = \"TourArrow\";\nconst HEADER_NAME = \"TourHeader\";\nconst TITLE_NAME = \"TourTitle\";\nconst DESCRIPTION_NAME = \"TourDescription\";\nconst CLOSE_NAME = \"TourClose\";\nconst PREV_NAME = \"TourPrev\";\nconst NEXT_NAME = \"TourNext\";\nconst SKIP_NAME = \"TourSkip\";\nconst FOOTER_NAME = \"TourFooter\";\n\nconst POINTER_DOWN_OUTSIDE = \"tour.pointerDownOutside\";\nconst INTERACT_OUTSIDE = \"tour.interactOutside\";\nconst OPEN_AUTO_FOCUS = \"tour.openAutoFocus\";\nconst CLOSE_AUTO_FOCUS = \"tour.closeAutoFocus\";\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\nconst SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"] as const;\nconst ALIGN_OPTIONS = [\"start\", \"center\", \"end\"] as const;\n\nconst DEFAULT_ALIGN_OFFSET = 0;\nconst DEFAULT_SIDE_OFFSET = 16;\nconst DEFAULT_SPOTLIGHT_PADDING = 4;\n\ntype Side = (typeof SIDE_OPTIONS)[number];\ntype Align = (typeof ALIGN_OPTIONS)[number];\ntype Direction = \"ltr\" | \"rtl\";\n\ninterface ScrollOffset {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\ntype Boundary = Element | null;\n\ninterface DivProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\ntype StepElement = React.ComponentRef<typeof TourStep>;\ntype CloseElement = React.ComponentRef<typeof TourClose>;\ntype PrevElement = React.ComponentRef<typeof TourPrev>;\ntype NextElement = React.ComponentRef<typeof TourNext>;\ntype SkipElement = React.ComponentRef<typeof TourSkip>;\ntype FooterElement = React.ComponentRef<typeof TourFooter>;\n\nconst OPPOSITE_SIDE: Record<Side, Side> = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n};\n\nconst useIsomorphicLayoutEffect =\n typeof window === \"undefined\" ? React.useEffect : React.useLayoutEffect;\n\nfunction useAsRef<T>(props: T) {\n const ref = React.useRef<T>(props);\n\n useIsomorphicLayoutEffect(() => {\n ref.current = props;\n });\n\n return ref;\n}\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | null>(null);\n\n if (ref.current === null) {\n ref.current = fn();\n }\n\n return ref as React.RefObject<T>;\n}\n\n/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/focus-guards/src/focus-guards.tsx\n */\nlet focusGuardCount = 0;\n\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-tour-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\n\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-tour-focus-guard]\");\n document.body.insertAdjacentElement(\n \"afterbegin\",\n edgeGuards[0] ?? createFocusGuard(),\n );\n document.body.insertAdjacentElement(\n \"beforeend\",\n edgeGuards[1] ?? createFocusGuard(),\n );\n focusGuardCount++;\n\n return () => {\n if (focusGuardCount === 1) {\n const guards = document.querySelectorAll(\"[data-tour-focus-guard]\");\n for (const node of guards) {\n node.remove();\n }\n }\n focusGuardCount--;\n };\n }, []);\n}\n\nfunction useFocusTrap(\n containerRef: React.RefObject<HTMLElement | null>,\n enabled: boolean,\n tourOpen: boolean,\n onOpenAutoFocus?: (event: OpenAutoFocusEvent) => void,\n onCloseAutoFocus?: (event: CloseAutoFocusEvent) => void,\n) {\n const lastFocusedElementRef = React.useRef<HTMLElement | null>(null);\n const onOpenAutoFocusRef = useAsRef(onOpenAutoFocus);\n const onCloseAutoFocusRef = useAsRef(onCloseAutoFocus);\n const tourOpenRef = useAsRef(tourOpen);\n\n React.useEffect(() => {\n if (!enabled) return;\n\n const container = containerRef.current;\n if (!container) return;\n\n const previouslyFocusedElement =\n document.activeElement as HTMLElement | null;\n\n function getTabbableCandidates() {\n if (!container) return [];\n\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(\n container,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode: (node: Element) => {\n const element = node as HTMLElement;\n const isHiddenInput =\n element.tagName === \"INPUT\" &&\n (element as HTMLInputElement).type === \"hidden\";\n if (element.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return element.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n },\n },\n );\n while (walker.nextNode()) {\n nodes.push(walker.currentNode as HTMLElement);\n }\n return nodes;\n }\n\n function getTabbableEdges() {\n const candidates = getTabbableCandidates();\n const first = candidates[0];\n const last = candidates[candidates.length - 1];\n return [first, last] as const;\n }\n\n function onFocusIn(event: FocusEvent) {\n if (!container) return;\n\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n const elementToFocus =\n lastFocusedElementRef.current ?? getTabbableCandidates()[0];\n elementToFocus?.focus({ preventScroll: true });\n }\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key !== \"Tab\" || event.altKey || event.ctrlKey || event.metaKey)\n return;\n\n const [first, last] = getTabbableEdges();\n const hasTabbableElements = first && last;\n\n if (!hasTabbableElements) {\n if (document.activeElement === container) event.preventDefault();\n return;\n }\n\n if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first?.focus({ preventScroll: true });\n } else if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last?.focus({ preventScroll: true });\n }\n }\n\n const openAutoFocusEvent = new CustomEvent(OPEN_AUTO_FOCUS, EVENT_OPTIONS);\n if (onOpenAutoFocusRef.current) {\n container.addEventListener(\n OPEN_AUTO_FOCUS,\n onOpenAutoFocusRef.current as EventListener,\n { once: true },\n );\n }\n container.dispatchEvent(openAutoFocusEvent);\n\n if (!openAutoFocusEvent.defaultPrevented) {\n const tabbableCandidates = getTabbableCandidates();\n if (tabbableCandidates.length > 0) {\n tabbableCandidates[0]?.focus({ preventScroll: true });\n } else {\n container.focus({ preventScroll: true });\n }\n }\n\n document.addEventListener(\"focusin\", onFocusIn);\n container.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n document.removeEventListener(\"focusin\", onFocusIn);\n container.removeEventListener(\"keydown\", onKeyDown);\n\n if (!tourOpenRef.current) {\n setTimeout(() => {\n const closeAutoFocusEvent = new CustomEvent(\n CLOSE_AUTO_FOCUS,\n EVENT_OPTIONS,\n );\n if (onCloseAutoFocusRef.current) {\n container.addEventListener(\n CLOSE_AUTO_FOCUS,\n onCloseAutoFocusRef.current as EventListener,\n { once: true },\n );\n }\n container.dispatchEvent(closeAutoFocusEvent);\n\n if (!closeAutoFocusEvent.defaultPrevented) {\n if (\n previouslyFocusedElement &&\n document.body.contains(previouslyFocusedElement)\n ) {\n previouslyFocusedElement.focus({ preventScroll: true });\n }\n }\n\n if (onCloseAutoFocusRef.current) {\n container.removeEventListener(\n CLOSE_AUTO_FOCUS,\n onCloseAutoFocusRef.current as EventListener,\n );\n }\n }, 0);\n }\n };\n }, [\n containerRef,\n enabled,\n onOpenAutoFocusRef,\n onCloseAutoFocusRef,\n tourOpenRef,\n ]);\n}\n\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\nfunction useDirection(dirProp?: Direction): Direction {\n const contextDir = React.useContext(DirectionContext);\n return dirProp ?? contextDir ?? \"ltr\";\n}\n\nfunction getDataState(open: boolean): string {\n return open ? \"open\" : \"closed\";\n}\n\ninterface StepData {\n target: string | React.RefObject<HTMLElement> | HTMLElement;\n align?: Align;\n alignOffset?: number;\n side?: Side;\n sideOffset?: number;\n collisionBoundary?: Boundary | Boundary[];\n collisionPadding?: number | Partial<Record<Side, number>>;\n arrowPadding?: number;\n sticky?: \"partial\" | \"always\";\n hideWhenDetached?: boolean;\n avoidCollisions?: boolean;\n onStepEnter?: () => void;\n onStepLeave?: () => void;\n required?: boolean;\n}\n\ninterface StoreState {\n open: boolean;\n value: number;\n steps: StepData[];\n maskPath: string;\n spotlightRect: { x: number; y: number; width: number; height: number } | null;\n}\n\ninterface Store {\n subscribe: (callback: () => void) => () => void;\n getState: () => StoreState;\n setState: <K extends keyof StoreState>(\n key: K,\n value: StoreState[K],\n opts?: unknown,\n ) => void;\n notify: () => void;\n addStep: (stepData: StepData) => { id: string; index: number };\n removeStep: (id: string) => void;\n}\n\nfunction useStore<T>(selector: (state: StoreState) => T): T {\n const store = useStoreContext(\"useStore\");\n\n const getSnapshot = React.useCallback(\n () => selector(store.getState()),\n [store, selector],\n );\n\n return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);\n}\n\nfunction getTargetElement(\n target: string | React.RefObject<HTMLElement> | HTMLElement,\n): HTMLElement | null {\n if (typeof target === \"string\") {\n return document.querySelector(target);\n }\n if (target && \"current\" in target) {\n return target.current;\n }\n if (target instanceof HTMLElement) {\n return target;\n }\n return null;\n}\n\nfunction getDefaultScrollBehavior(): ScrollBehavior {\n if (typeof window === \"undefined\") return \"smooth\";\n return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n ? \"auto\"\n : \"smooth\";\n}\n\nfunction onScrollToElement(\n element: HTMLElement,\n scrollBehavior: ScrollBehavior = getDefaultScrollBehavior(),\n scrollOffset?: ScrollOffset,\n) {\n const offset: Required<ScrollOffset> = {\n top: 100,\n bottom: 100,\n left: 0,\n right: 0,\n ...scrollOffset,\n };\n const rect = element.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n\n const isInViewport =\n rect.top >= offset.top &&\n rect.bottom <= viewportHeight - offset.bottom &&\n rect.left >= offset.left &&\n rect.right <= viewportWidth - offset.right;\n\n if (!isInViewport) {\n const elementTop = rect.top + window.scrollY;\n const scrollTop = elementTop - offset.top;\n\n window.scrollTo({\n top: Math.max(0, scrollTop),\n behavior: scrollBehavior,\n });\n }\n}\n\nfunction getSideAndAlignFromPlacement(placement: Placement): [Side, Align] {\n const [side, align = \"center\"] = placement.split(\"-\") as [Side, Align?];\n return [side, align];\n}\n\nfunction getPlacement(side: Side, align: Align): Placement {\n if (align === \"center\") {\n return side as Placement;\n }\n return `${side}-${align}` as Placement;\n}\n\nfunction updateMask(\n store: Store,\n targetElement: HTMLElement,\n padding: number = DEFAULT_SPOTLIGHT_PADDING,\n) {\n const clientRect = targetElement.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const x = Math.max(0, clientRect.left - padding);\n const y = Math.max(0, clientRect.top - padding);\n const width = Math.min(viewportWidth - x, clientRect.width + padding * 2);\n const height = Math.min(viewportHeight - y, clientRect.height + padding * 2);\n\n 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%)`;\n store.setState(\"maskPath\", path);\n store.setState(\"spotlightRect\", { x, y, width, height });\n}\n\nconst StoreContext = React.createContext<Store | null>(null);\n\nfunction useStoreContext(consumerName: string) {\n const context = React.useContext(StoreContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface TourContextValue {\n dir: Direction;\n alignOffset: number;\n sideOffset: number;\n spotlightPadding: number;\n dismissible: boolean;\n modal: boolean;\n stepFooter?: React.ReactElement;\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n onInteractOutside?: (event: InteractOutsideEvent) => void;\n onOpenAutoFocus?: (event: OpenAutoFocusEvent) => void;\n onCloseAutoFocus?: (event: CloseAutoFocusEvent) => void;\n}\n\nconst TourContext = React.createContext<TourContextValue | null>(null);\n\nfunction useTourContext(consumerName: string) {\n const context = React.useContext(TourContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface StepContextValue {\n arrowX?: number;\n arrowY?: number;\n placedAlign: Align;\n placedSide: Side;\n shouldHideArrow: boolean;\n onArrowChange: (arrow: HTMLSpanElement | null) => void;\n onFooterChange: (footer: FooterElement | null) => void;\n}\n\nconst StepContext = React.createContext<StepContextValue | null>(null);\n\nfunction useStepContext(consumerName: string) {\n const context = React.useContext(StepContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${STEP_NAME}\\``);\n }\n return context;\n}\n\nconst DefaultFooterContext = React.createContext(false);\n\ninterface PortalContextValue {\n portal: HTMLElement | null;\n onPortalChange: (node: HTMLElement | null) => void;\n}\n\nconst PortalContext = React.createContext<PortalContextValue | null>(null);\n\nfunction usePortalContext(consumerName: string) {\n const context = React.useContext(PortalContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\nfunction useScrollLock(enabled: boolean) {\n React.useEffect(() => {\n if (!enabled) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n const scrollbarWidth =\n window.innerWidth - document.documentElement.clientWidth;\n\n document.body.style.overflow = \"hidden\";\n if (scrollbarWidth > 0) {\n document.body.style.paddingRight = `${scrollbarWidth}px`;\n }\n\n return () => {\n document.body.style.overflow = originalStyle;\n document.body.style.paddingRight = \"\";\n };\n }, [enabled]);\n}\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype InteractOutsideEvent = CustomEvent<{\n originalEvent: PointerEvent | FocusEvent;\n}>;\ntype OpenAutoFocusEvent = CustomEvent<Record<string, never>>;\ntype CloseAutoFocusEvent = CustomEvent<Record<string, never>>;\n\ninterface TourRootProps extends DivProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n value?: number;\n defaultValue?: number;\n onValueChange?: (step: number) => void;\n onComplete?: () => void;\n onSkip?: () => void;\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n onInteractOutside?: (event: InteractOutsideEvent) => void;\n onOpenAutoFocus?: (event: OpenAutoFocusEvent) => void;\n onCloseAutoFocus?: (event: CloseAutoFocusEvent) => void;\n dir?: Direction;\n alignOffset?: number;\n sideOffset?: number;\n spotlightPadding?: number;\n autoScroll?: boolean;\n scrollBehavior?: ScrollBehavior;\n scrollOffset?: ScrollOffset;\n dismissible?: boolean;\n modal?: boolean;\n stepFooter?: React.ReactElement;\n}\n\nfunction TourRoot(props: TourRootProps) {\n const {\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n value: valueProp,\n defaultValue = 0,\n onValueChange,\n onComplete,\n onSkip,\n autoScroll = true,\n scrollBehavior = getDefaultScrollBehavior(),\n scrollOffset,\n ...rootProps\n } = props;\n\n const stateRef = useLazyRef<StoreState>(() => ({\n open: openProp ?? defaultOpen,\n value: valueProp ?? defaultValue,\n steps: [],\n maskPath: \"\",\n spotlightRect: null,\n }));\n const listenersRef = useLazyRef<Set<() => void>>(() => new Set());\n const stepIdsMapRef = useLazyRef<Map<string, number>>(() => new Map());\n const stepIdCounterRef = useLazyRef(() => ({ current: 0 }));\n const propsRef = useAsRef({\n valueProp,\n onOpenChange,\n onValueChange,\n onComplete,\n onSkip,\n autoScroll,\n scrollBehavior,\n scrollOffset,\n });\n\n const store: Store = React.useMemo(\n () => ({\n subscribe: (cb) => {\n listenersRef.current.add(cb);\n return () => listenersRef.current.delete(cb);\n },\n getState: () => {\n return stateRef.current;\n },\n setState: (key, value) => {\n if (Object.is(stateRef.current[key], value)) return;\n stateRef.current[key] = value;\n\n if (key === \"open\" && typeof value === \"boolean\") {\n propsRef.current.onOpenChange?.(value);\n\n if (value) {\n if (stateRef.current.steps.length > 0) {\n if (stateRef.current.value >= stateRef.current.steps.length) {\n store.setState(\"value\", 0);\n }\n }\n } else {\n if (\n stateRef.current.value <\n (stateRef.current.steps.length || 0) - 1\n ) {\n propsRef.current.onSkip?.();\n }\n }\n } else if (key === \"value\" && typeof value === \"number\") {\n const prevStep = stateRef.current.steps[stateRef.current.value];\n const nextStep = stateRef.current.steps[value];\n\n prevStep?.onStepLeave?.();\n nextStep?.onStepEnter?.();\n\n if (value >= stateRef.current.steps.length) {\n propsRef.current.onComplete?.();\n\n if (propsRef.current.valueProp !== undefined) {\n propsRef.current.onValueChange?.(value);\n }\n\n store.setState(\"open\", false);\n return;\n }\n\n if (propsRef.current.valueProp !== undefined) {\n propsRef.current.onValueChange?.(value);\n return;\n }\n\n propsRef.current.onValueChange?.(value);\n\n if (nextStep && propsRef.current.autoScroll) {\n const targetElement = getTargetElement(nextStep.target);\n if (targetElement) {\n onScrollToElement(\n targetElement,\n propsRef.current.scrollBehavior,\n propsRef.current.scrollOffset,\n );\n }\n }\n }\n\n store.notify();\n },\n notify: () => {\n listenersRef.current.forEach((l) => {\n l();\n });\n },\n addStep: (stepData) => {\n const id = `step-${stepIdCounterRef.current.current++}`;\n const index = stateRef.current.steps.length;\n stepIdsMapRef.current.set(id, index);\n stateRef.current.steps = [...stateRef.current.steps, stepData];\n store.notify();\n return { id, index };\n },\n removeStep: (id) => {\n const index = stepIdsMapRef.current.get(id);\n if (index === undefined) return;\n\n stateRef.current.steps = stateRef.current.steps.filter(\n (_, i) => i !== index,\n );\n\n stepIdsMapRef.current.delete(id);\n\n for (const [stepId, stepIndex] of stepIdsMapRef.current.entries()) {\n if (stepIndex > index) {\n stepIdsMapRef.current.set(stepId, stepIndex - 1);\n }\n }\n\n store.notify();\n },\n }),\n [stateRef, listenersRef, stepIdsMapRef, stepIdCounterRef, propsRef],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (openProp !== undefined) {\n store.setState(\"open\", openProp);\n }\n }, [openProp, store]);\n\n useIsomorphicLayoutEffect(() => {\n if (valueProp !== undefined) {\n store.setState(\"value\", valueProp);\n }\n }, [valueProp, store]);\n\n return (\n <StoreContext.Provider value={store}>\n <TourRootImpl {...rootProps} />\n </StoreContext.Provider>\n );\n}\n\ninterface TourRootImplProps extends Omit<\n TourRootProps,\n | \"open\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n | \"value\"\n | \"defaultValue\"\n | \"onValueChange\"\n | \"onComplete\"\n | \"onSkip\"\n | \"autoScroll\"\n | \"scrollBehavior\"\n | \"scrollOffset\"\n> {}\n\nfunction TourRootImpl(props: TourRootImplProps) {\n const {\n onEscapeKeyDown,\n onPointerDownOutside,\n onInteractOutside,\n onOpenAutoFocus,\n onCloseAutoFocus,\n dir: dirProp,\n alignOffset = DEFAULT_ALIGN_OFFSET,\n sideOffset = DEFAULT_SIDE_OFFSET,\n spotlightPadding = DEFAULT_SPOTLIGHT_PADDING,\n dismissible = true,\n modal = true,\n stepFooter,\n asChild,\n ...rootImplProps\n } = props;\n\n const store = useStoreContext(\"TourRootImpl\");\n const dir = useDirection(dirProp);\n\n const [portal, setPortal] = React.useState<HTMLElement | null>(null);\n const previouslyFocusedElementRef = React.useRef<HTMLElement | null>(null);\n\n const onEscapeKeyDownRef = useAsRef(onEscapeKeyDown);\n const onCloseAutoFocusRef = useAsRef(onCloseAutoFocus);\n\n React.useEffect(() => {\n function onKeyDown(event: KeyboardEvent) {\n if (store.getState().open && event.key === \"Escape\") {\n if (onEscapeKeyDownRef.current) {\n onEscapeKeyDownRef.current(event);\n if (event.defaultPrevented) return;\n }\n store.setState(\"open\", false);\n }\n }\n\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [store, onEscapeKeyDownRef]);\n\n const open = useStore((state) => state.open);\n const prevOpenRef = React.useRef<boolean | undefined>(undefined);\n\n useIsomorphicLayoutEffect(() => {\n const wasOpen = prevOpenRef.current;\n\n if (open && !wasOpen) {\n previouslyFocusedElementRef.current =\n document.activeElement as HTMLElement | null;\n } else if (!open && wasOpen) {\n setTimeout(() => {\n const container = portal ?? document.body;\n const closeAutoFocusEvent = new CustomEvent(\n CLOSE_AUTO_FOCUS,\n EVENT_OPTIONS,\n );\n\n if (onCloseAutoFocusRef.current) {\n container.addEventListener(\n CLOSE_AUTO_FOCUS,\n onCloseAutoFocusRef.current as EventListener,\n { once: true },\n );\n }\n container.dispatchEvent(closeAutoFocusEvent);\n\n if (!closeAutoFocusEvent.defaultPrevented) {\n const elementToFocus = previouslyFocusedElementRef.current;\n if (elementToFocus && document.body.contains(elementToFocus)) {\n elementToFocus.focus({ preventScroll: true });\n }\n }\n\n previouslyFocusedElementRef.current = null;\n }, 0);\n }\n\n prevOpenRef.current = open;\n }, [open, portal, onCloseAutoFocusRef]);\n\n const contextValue = React.useMemo<TourContextValue>(\n () => ({\n dir,\n alignOffset,\n sideOffset,\n spotlightPadding,\n dismissible,\n modal,\n stepFooter,\n onPointerDownOutside,\n onInteractOutside,\n onOpenAutoFocus,\n onCloseAutoFocus,\n }),\n [\n dir,\n alignOffset,\n sideOffset,\n spotlightPadding,\n dismissible,\n modal,\n stepFooter,\n onPointerDownOutside,\n onInteractOutside,\n onOpenAutoFocus,\n onCloseAutoFocus,\n ],\n );\n\n const portalContextValue = React.useMemo<PortalContextValue>(\n () => ({\n portal,\n onPortalChange: setPortal,\n }),\n [portal],\n );\n\n useScrollLock(open && modal);\n\n const RootPrimitive = asChild ? Slot : \"div\";\n\n return (\n <TourContext.Provider value={contextValue}>\n <PortalContext.Provider value={portalContextValue}>\n <RootPrimitive data-slot=\"tour\" dir={dir} {...rootImplProps} />\n </PortalContext.Provider>\n </TourContext.Provider>\n );\n}\n\ninterface TourStepProps extends DivProps {\n target: string | React.RefObject<HTMLElement> | HTMLElement;\n side?: Side;\n sideOffset?: number;\n align?: Align;\n alignOffset?: number;\n collisionBoundary?: Boundary | Boundary[];\n collisionPadding?: number | Partial<Record<Side, number>>;\n arrowPadding?: number;\n sticky?: \"partial\" | \"always\";\n hideWhenDetached?: boolean;\n avoidCollisions?: boolean;\n required?: boolean;\n forceMount?: boolean;\n onStepEnter?: () => void;\n onStepLeave?: () => void;\n}\n\nfunction TourStep(props: TourStepProps) {\n const {\n target,\n side = \"bottom\",\n sideOffset,\n align = \"center\",\n alignOffset,\n collisionBoundary = [],\n collisionPadding = 0,\n arrowPadding = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n avoidCollisions = true,\n required = false,\n forceMount = false,\n onStepEnter,\n onStepLeave,\n onPointerDownCapture: onPointerDownCaptureProp,\n onFocusCapture: onFocusCaptureProp,\n onBlurCapture: onBlurCaptureProp,\n children,\n className,\n style,\n asChild,\n ...stepProps\n } = props;\n\n const store = useStoreContext(STEP_NAME);\n\n const [arrow, setArrow] = React.useState<HTMLSpanElement | null>(null);\n const [footer, setFooter] = React.useState<FooterElement | null>(null);\n\n const stepRef = React.useRef<StepElement | null>(null);\n const stepIdRef = React.useRef<string>(\"\");\n const stepOrderRef = React.useRef<number>(-1);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n const open = useStore((state) => state.open);\n const value = useStore((state) => state.value);\n const steps = useStore((state) => state.steps);\n const context = useTourContext(STEP_NAME);\n\n const resolvedSideOffset = sideOffset ?? context.sideOffset;\n const resolvedAlignOffset = alignOffset ?? context.alignOffset;\n\n useIsomorphicLayoutEffect(() => {\n const { id, index } = store.addStep({\n target,\n align,\n alignOffset: resolvedAlignOffset,\n side,\n sideOffset: resolvedSideOffset,\n collisionBoundary,\n collisionPadding,\n arrowPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n onStepEnter,\n onStepLeave,\n required,\n });\n stepIdRef.current = id;\n stepOrderRef.current = index;\n\n return () => {\n store.removeStep(stepIdRef.current);\n };\n }, [\n target,\n side,\n resolvedSideOffset,\n align,\n resolvedAlignOffset,\n collisionPadding,\n arrowPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n required,\n onStepEnter,\n onStepLeave,\n store,\n ]);\n\n const stepData = steps[value];\n const targetElement = stepData ? getTargetElement(stepData.target) : null;\n\n const isCurrentStep = stepOrderRef.current === value;\n\n const middleware = React.useMemo(() => {\n if (!stepData) return [];\n\n const mainAxisOffset = stepData.sideOffset ?? resolvedSideOffset;\n const crossAxisOffset = stepData.alignOffset ?? resolvedAlignOffset;\n\n const padding =\n typeof stepData.collisionPadding === \"number\"\n ? stepData.collisionPadding\n : {\n top: stepData.collisionPadding?.top ?? 0,\n right: stepData.collisionPadding?.right ?? 0,\n bottom: stepData.collisionPadding?.bottom ?? 0,\n left: stepData.collisionPadding?.left ?? 0,\n };\n\n const boundary = Array.isArray(stepData.collisionBoundary)\n ? stepData.collisionBoundary\n : stepData.collisionBoundary\n ? [stepData.collisionBoundary]\n : [];\n const hasExplicitBoundaries = boundary.length > 0;\n\n const detectOverflowOptions = {\n padding,\n boundary: boundary.filter((b): b is Element => b !== null),\n altBoundary: hasExplicitBoundaries,\n };\n\n return [\n offset({\n mainAxis: mainAxisOffset,\n alignmentAxis: crossAxisOffset,\n }),\n stepData.avoidCollisions &&\n shift({\n mainAxis: true,\n crossAxis: false,\n limiter: stepData.sticky === \"partial\" ? limitShift() : undefined,\n ...detectOverflowOptions,\n }),\n stepData.avoidCollisions && flip({ ...detectOverflowOptions }),\n arrow && onArrow({ element: arrow, padding: stepData.arrowPadding }),\n stepData.hideWhenDetached &&\n hide({\n strategy: \"referenceHidden\",\n ...detectOverflowOptions,\n }),\n ].filter(Boolean) as Middleware[];\n }, [stepData, resolvedSideOffset, resolvedAlignOffset, arrow]);\n\n const placement = getPlacement(\n stepData?.side ?? side,\n stepData?.align ?? align,\n );\n\n const {\n refs,\n floatingStyles,\n placement: finalPlacement,\n middlewareData,\n } = useFloating({\n placement,\n middleware,\n strategy: \"fixed\",\n whileElementsMounted: autoUpdate,\n elements: {\n reference: targetElement,\n },\n });\n\n const composedRef = useComposedRefs(refs.setFloating, stepRef);\n\n const [placedSide, placedAlign] =\n getSideAndAlignFromPlacement(finalPlacement);\n\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isHidden = hideWhenDetached && middlewareData.hide?.referenceHidden;\n\n const stepContextValue = React.useMemo<StepContextValue>(\n () => ({\n arrowX,\n arrowY,\n placedAlign,\n placedSide,\n shouldHideArrow: cannotCenterArrow,\n onArrowChange: setArrow,\n onFooterChange: setFooter,\n }),\n [arrowX, arrowY, placedSide, placedAlign, cannotCenterArrow],\n );\n\n React.useEffect(() => {\n if (open && targetElement && isCurrentStep) {\n updateMask(store, targetElement, context.spotlightPadding);\n\n let rafId: number | null = null;\n\n function onResize() {\n if (targetElement) {\n updateMask(store, targetElement, context.spotlightPadding);\n }\n }\n\n function onScroll() {\n if (rafId !== null) return;\n rafId = requestAnimationFrame(() => {\n if (targetElement) {\n updateMask(store, targetElement, context.spotlightPadding);\n }\n rafId = null;\n });\n }\n\n window.addEventListener(\"resize\", onResize);\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => {\n window.removeEventListener(\"resize\", onResize);\n window.removeEventListener(\"scroll\", onScroll);\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n };\n }\n }, [open, targetElement, isCurrentStep, store, context.spotlightPadding]);\n\n React.useEffect(() => {\n if (!open || !isCurrentStep) return;\n\n const stepElement = stepRef.current;\n if (!stepElement) return;\n\n const ownerDocument = stepElement.ownerDocument;\n\n function onPointerDown(event: PointerEvent) {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const pointerDownOutsideEvent = new CustomEvent(POINTER_DOWN_OUTSIDE, {\n ...EVENT_OPTIONS,\n detail: { originalEvent: event },\n });\n\n context.onPointerDownOutside?.(pointerDownOutsideEvent);\n\n const interactOutsideEvent = new CustomEvent(INTERACT_OUTSIDE, {\n ...EVENT_OPTIONS,\n detail: { originalEvent: event },\n });\n context.onInteractOutside?.(interactOutsideEvent);\n\n if (\n !pointerDownOutsideEvent.defaultPrevented &&\n !interactOutsideEvent.defaultPrevented &&\n context.dismissible\n ) {\n store.setState(\"open\", false);\n }\n }\n\n isPointerInsideReactTreeRef.current = false;\n }\n\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", onPointerDown);\n }, 0);\n\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", onPointerDown);\n };\n }, [open, isCurrentStep, store, context]);\n\n React.useEffect(() => {\n if (!open || !isCurrentStep) return;\n\n const stepElement = stepRef.current;\n if (!stepElement) return;\n\n const ownerDocument = stepElement.ownerDocument;\n\n function onFocusIn(event: FocusEvent) {\n const target = event.target as HTMLElement;\n\n const isFocusInStep = stepElement?.contains(target);\n const isFocusInTarget = targetElement?.contains(target);\n\n if (\n event.target &&\n !isFocusInsideReactTreeRef.current &&\n !isFocusInStep &&\n !isFocusInTarget\n ) {\n const interactOutsideEvent = new CustomEvent(INTERACT_OUTSIDE, {\n ...EVENT_OPTIONS,\n detail: { originalEvent: event },\n });\n\n context.onInteractOutside?.(interactOutsideEvent);\n\n if (!interactOutsideEvent.defaultPrevented && context.dismissible) {\n store.setState(\"open\", false);\n }\n }\n }\n\n ownerDocument.addEventListener(\"focusin\", onFocusIn);\n\n return () => {\n ownerDocument.removeEventListener(\"focusin\", onFocusIn);\n };\n }, [open, isCurrentStep, store, context, targetElement]);\n\n const onPointerDownCapture = React.useCallback(\n (event: React.PointerEvent<StepElement>) => {\n onPointerDownCaptureProp?.(event);\n isPointerInsideReactTreeRef.current = true;\n },\n [onPointerDownCaptureProp],\n );\n\n const onFocusCapture = React.useCallback(\n (event: React.FocusEvent<StepElement>) => {\n onFocusCaptureProp?.(event);\n isFocusInsideReactTreeRef.current = true;\n },\n [onFocusCaptureProp],\n );\n\n const onBlurCapture = React.useCallback(\n (event: React.FocusEvent<StepElement>) => {\n onBlurCaptureProp?.(event);\n isFocusInsideReactTreeRef.current = false;\n },\n [onBlurCaptureProp],\n );\n\n React.useEffect(() => {\n if (!open || !isCurrentStep || !targetElement) return;\n\n function onTargetPointerDownCapture() {\n isPointerInsideReactTreeRef.current = true;\n }\n\n function onTargetFocusCapture() {\n isFocusInsideReactTreeRef.current = true;\n }\n\n function onTargetBlurCapture() {\n isFocusInsideReactTreeRef.current = false;\n }\n\n targetElement.addEventListener(\n \"pointerdown\",\n onTargetPointerDownCapture,\n true,\n );\n targetElement.addEventListener(\"focus\", onTargetFocusCapture, true);\n targetElement.addEventListener(\"blur\", onTargetBlurCapture, true);\n\n return () => {\n targetElement.removeEventListener(\n \"pointerdown\",\n onTargetPointerDownCapture,\n true,\n );\n targetElement.removeEventListener(\"focus\", onTargetFocusCapture, true);\n targetElement.removeEventListener(\"blur\", onTargetBlurCapture, true);\n };\n }, [open, isCurrentStep, targetElement]);\n\n useFocusGuards();\n useFocusTrap(\n stepRef,\n open && isCurrentStep,\n open,\n context.onOpenAutoFocus,\n context.onCloseAutoFocus,\n );\n\n if (!open || !stepData || (!targetElement && !forceMount) || !isCurrentStep) {\n return null;\n }\n\n const StepPrimitive = asChild ? Slot : \"div\";\n\n return (\n <StepContext.Provider value={stepContextValue}>\n <StepPrimitive\n ref={composedRef}\n data-slot=\"tour-step\"\n data-side={placedSide}\n data-align={placedAlign}\n dir={context.dir}\n tabIndex={-1}\n {...stepProps}\n onPointerDownCapture={onPointerDownCapture}\n onFocusCapture={onFocusCapture}\n onBlurCapture={onBlurCapture}\n className={cn(\n \"fixed z-50 flex w-80 flex-col gap-4 rounded-lg border bg-popover p-4 text-popover-foreground shadow-md outline-none\",\n className,\n )}\n style={{\n ...style,\n ...floatingStyles,\n visibility: isHidden ? \"hidden\" : undefined,\n pointerEvents: isHidden ? \"none\" : undefined,\n }}\n >\n {children}\n {!footer && (\n <DefaultFooterContext.Provider value={true}>\n {context.stepFooter}\n </DefaultFooterContext.Provider>\n )}\n </StepPrimitive>\n </StepContext.Provider>\n );\n}\n\ninterface TourSpotlightProps extends DivProps {\n forceMount?: boolean;\n}\n\nfunction TourSpotlight(props: TourSpotlightProps) {\n const {\n asChild,\n className,\n style,\n forceMount = false,\n ...backdropProps\n } = props;\n\n const open = useStore((state) => state.open);\n const maskPath = useStore((state) => state.maskPath);\n\n if (!open && !forceMount) return null;\n\n const SpotlightPrimitive = asChild ? Slot : \"div\";\n\n return (\n <SpotlightPrimitive\n data-slot=\"tour-spotlight\"\n data-state={getDataState(open)}\n {...backdropProps}\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-40 bg-black/80 data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className,\n )}\n style={{\n clipPath: maskPath,\n ...style,\n }}\n />\n );\n}\n\ninterface TourSpotlightRingProps extends DivProps {\n forceMount?: boolean;\n}\n\nfunction TourSpotlightRing(props: TourSpotlightRingProps) {\n const { asChild, className, style, forceMount = false, ...ringProps } = props;\n\n const open = useStore((state) => state.open);\n const spotlightRect = useStore((state) => state.spotlightRect);\n\n if (!open && !forceMount) return null;\n if (!spotlightRect) return null;\n\n const RingPrimitive = asChild ? Slot : \"div\";\n\n return (\n <RingPrimitive\n data-slot=\"tour-spotlight-ring\"\n data-state={getDataState(open)}\n {...ringProps}\n className={cn(\n \"pointer-events-none fixed z-40 border-ring ring-[3px] ring-ring/50\",\n className,\n )}\n style={{\n left: spotlightRect.x,\n top: spotlightRect.y,\n width: spotlightRect.width,\n height: spotlightRect.height,\n ...style,\n }}\n />\n );\n}\n\ninterface TourPortalProps {\n children?: React.ReactNode;\n container?: HTMLElement | null;\n}\n\nfunction TourPortal(props: TourPortalProps) {\n const { children, container } = props;\n\n const portalContext = usePortalContext(PORTAL_NAME);\n\n const [mounted, setMounted] = React.useState(false);\n\n useIsomorphicLayoutEffect(() => {\n setMounted(true);\n\n const node = container ?? document.body;\n\n portalContext?.onPortalChange(node);\n return () => {\n portalContext?.onPortalChange(null);\n };\n }, [container, portalContext]);\n\n if (!mounted) return null;\n\n const portalContainer = container ?? portalContext?.portal ?? document.body;\n\n return ReactDOM.createPortal(children, portalContainer);\n}\n\ninterface TourArrowProps extends React.ComponentProps<\"svg\"> {\n width?: number;\n height?: number;\n asChild?: boolean;\n}\n\nfunction TourArrow(props: TourArrowProps) {\n const {\n width = 10,\n height = 5,\n className,\n children,\n asChild,\n ...arrowProps\n } = props;\n\n const stepContext = useStepContext(ARROW_NAME);\n const baseSide = OPPOSITE_SIDE[stepContext.placedSide];\n\n return (\n <span\n ref={stepContext.onArrowChange}\n data-slot=\"tour-arrow\"\n style={{\n position: \"absolute\",\n left:\n stepContext.arrowX != null ? `${stepContext.arrowX}px` : undefined,\n top: stepContext.arrowY != null ? `${stepContext.arrowY}px` : undefined,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\",\n }[stepContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: \"rotate(180deg)\",\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\",\n }[stepContext.placedSide],\n visibility: stepContext.shouldHideArrow ? \"hidden\" : undefined,\n }}\n >\n <svg\n viewBox=\"0 0 30 10\"\n preserveAspectRatio=\"none\"\n width={width}\n height={height}\n {...arrowProps}\n className={cn(\"block fill-popover stroke-border\", className)}\n >\n {asChild ? children : <polygon points=\"0,0 30,0 15,10\" />}\n </svg>\n </span>\n );\n}\n\nfunction TourHeader(props: DivProps) {\n const { asChild, className, ...headerProps } = props;\n\n const context = useTourContext(HEADER_NAME);\n\n const HeaderPrimitive = asChild ? Slot : \"div\";\n\n return (\n <HeaderPrimitive\n data-slot=\"tour-header\"\n dir={context.dir}\n {...headerProps}\n className={cn(\n \"flex flex-col gap-1.5 text-center sm:text-left\",\n className,\n )}\n />\n );\n}\n\nfunction TourTitle(props: DivProps) {\n const { asChild, className, ...titleProps } = props;\n\n const context = useTourContext(TITLE_NAME);\n\n const TitlePrimitive = asChild ? Slot : \"div\";\n\n return (\n <TitlePrimitive\n data-slot=\"tour-title\"\n dir={context.dir}\n {...titleProps}\n className={cn(\n \"font-semibold text-lg leading-none tracking-tight\",\n className,\n )}\n />\n );\n}\n\nfunction TourDescription(props: DivProps) {\n const { asChild, className, ...descriptionProps } = props;\n\n const context = useTourContext(DESCRIPTION_NAME);\n\n const DescriptionPrimitive = asChild ? Slot : \"div\";\n\n return (\n <DescriptionPrimitive\n data-slot=\"tour-description\"\n dir={context.dir}\n {...descriptionProps}\n className={cn(\"text-muted-foreground text-sm\", className)}\n />\n );\n}\n\ninterface TourCloseProps extends React.ComponentProps<\"button\"> {\n asChild?: boolean;\n}\n\nfunction TourClose(props: TourCloseProps) {\n const {\n asChild,\n className,\n onClick: onClickProp,\n ...closeButtonProps\n } = props;\n\n const store = useStoreContext(CLOSE_NAME);\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<CloseElement>) => {\n onClickProp?.(event);\n if (event.defaultPrevented) return;\n\n store.setState(\"open\", false);\n },\n [store, onClickProp],\n );\n\n const ClosePrimitive = asChild ? Slot : \"button\";\n\n return (\n <ClosePrimitive\n type=\"button\"\n aria-label=\"Close tour\"\n className={cn(\n \"absolute top-4 right-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\",\n className,\n )}\n onClick={onClick}\n {...closeButtonProps}\n >\n <X className=\"size-4\" />\n </ClosePrimitive>\n );\n}\n\nfunction TourPrev(props: React.ComponentProps<typeof Button>) {\n const { children, onClick: onClickProp, ...prevButtonProps } = props;\n\n const store = useStoreContext(PREV_NAME);\n const value = useStore((state) => state.value);\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<PrevElement>) => {\n onClickProp?.(event);\n if (event.defaultPrevented) return;\n\n if (value > 0) {\n store.setState(\"value\", value - 1);\n }\n },\n [value, store, onClickProp],\n );\n\n return (\n <Button\n type=\"button\"\n aria-label=\"Previous step\"\n data-slot=\"tour-prev\"\n variant=\"outline\"\n {...prevButtonProps}\n onClick={onClick}\n disabled={value === 0}\n >\n {children ?? (\n <>\n <ChevronLeft />\n Previous\n </>\n )}\n </Button>\n );\n}\n\nfunction TourNext(props: React.ComponentProps<typeof Button>) {\n const { children, onClick: onClickProp, ...nextButtonProps } = props;\n const store = useStoreContext(NEXT_NAME);\n const value = useStore((state) => state.value);\n const steps = useStore((state) => state.steps);\n\n const isLastStep = value === steps.length - 1;\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<NextElement>) => {\n onClickProp?.(event);\n if (event.defaultPrevented) return;\n\n store.setState(\"value\", value + 1);\n },\n [value, store, onClickProp],\n );\n\n return (\n <Button\n type=\"button\"\n aria-label=\"Next step\"\n data-slot=\"tour-next\"\n {...nextButtonProps}\n onClick={onClick}\n >\n {children ?? (\n <>\n {isLastStep ? \"Finish\" : \"Next\"}\n {!isLastStep && <ChevronRight />}\n </>\n )}\n </Button>\n );\n}\n\nfunction TourSkip(props: React.ComponentProps<typeof Button>) {\n const { children, onClick: onClickProp, ...skipButtonProps } = props;\n\n const store = useStoreContext(SKIP_NAME);\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<SkipElement>) => {\n onClickProp?.(event);\n if (event.defaultPrevented) return;\n\n store.setState(\"open\", false);\n },\n [store, onClickProp],\n );\n\n return (\n <Button\n type=\"button\"\n aria-label=\"Skip tour\"\n data-slot=\"tour-skip\"\n variant=\"outline\"\n {...skipButtonProps}\n onClick={onClick}\n >\n {children ?? \"Skip\"}\n </Button>\n );\n}\n\ninterface TourStepCounterProps extends DivProps {\n format?: (current: number, total: number) => string;\n}\n\nfunction TourStepCounter(props: TourStepCounterProps) {\n const {\n format = (current, total) => `${current} / ${total}`,\n asChild,\n className,\n children,\n ...stepCounterProps\n } = props;\n\n const value = useStore((state) => state.value);\n const steps = useStore((state) => state.steps);\n\n const StepCounterPrimitive = asChild ? Slot : \"div\";\n\n return (\n <StepCounterPrimitive\n data-slot=\"tour-step-counter\"\n {...stepCounterProps}\n className={cn(\"text-muted-foreground text-sm\", className)}\n >\n {children ?? format(value + 1, steps.length)}\n </StepCounterPrimitive>\n );\n}\n\nfunction TourFooter(props: DivProps) {\n const { asChild, className, ref, ...footerProps } = props;\n\n const stepContext = useStepContext(FOOTER_NAME);\n const hasDefaultFooter = React.useContext(DefaultFooterContext);\n const context = useTourContext(FOOTER_NAME);\n\n const composedRef = useComposedRefs(\n ref,\n hasDefaultFooter ? undefined : stepContext.onFooterChange,\n );\n\n const FooterPrimitive = asChild ? Slot : \"div\";\n\n return (\n <FooterPrimitive\n data-slot=\"tour-footer\"\n dir={context.dir}\n {...footerProps}\n ref={composedRef}\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n />\n );\n}\n\nexport {\n TourRoot as Root,\n TourPortal as Portal,\n TourSpotlight as Spotlight,\n TourSpotlightRing as SpotlightRing,\n TourStep as Step,\n TourArrow as Arrow,\n TourHeader as Header,\n TourTitle as Title,\n TourDescription as Description,\n TourClose as Close,\n TourPrev as Prev,\n TourNext as Next,\n TourSkip as Skip,\n TourStepCounter as StepCounter,\n TourFooter as Footer,\n //\n TourRoot as Tour,\n TourPortal,\n TourSpotlight,\n TourSpotlightRing,\n TourStep,\n TourArrow,\n TourHeader,\n TourTitle,\n TourDescription,\n TourClose,\n TourPrev,\n TourNext,\n TourSkip,\n TourStepCounter,\n TourFooter,\n //\n type TourRootProps as TourProps,\n};\n"],"names":["ROOT_NAME","PORTAL_NAME","STEP_NAME","ARROW_NAME","HEADER_NAME","TITLE_NAME","DESCRIPTION_NAME","CLOSE_NAME","PREV_NAME","NEXT_NAME","SKIP_NAME","FOOTER_NAME","POINTER_DOWN_OUTSIDE","INTERACT_OUTSIDE","OPEN_AUTO_FOCUS","CLOSE_AUTO_FOCUS","EVENT_OPTIONS","DEFAULT_ALIGN_OFFSET","DEFAULT_SIDE_OFFSET","DEFAULT_SPOTLIGHT_PADDING","OPPOSITE_SIDE","useIsomorphicLayoutEffect","React","useAsRef","props","ref","useLazyRef","fn","focusGuardCount","createFocusGuard","element","useFocusGuards","edgeGuards","guards","node","useFocusTrap","containerRef","enabled","tourOpen","onOpenAutoFocus","onCloseAutoFocus","lastFocusedElementRef","onOpenAutoFocusRef","onCloseAutoFocusRef","tourOpenRef","container","previouslyFocusedElement","getTabbableCandidates","nodes","walker","isHiddenInput","getTabbableEdges","candidates","first","last","onFocusIn","event","target","onKeyDown","openAutoFocusEvent","tabbableCandidates","closeAutoFocusEvent","DirectionContext","useDirection","dirProp","contextDir","getDataState","open","useStore","selector","store","useStoreContext","getSnapshot","getTargetElement","getDefaultScrollBehavior","onScrollToElement","scrollBehavior","scrollOffset","offset","rect","viewportHeight","viewportWidth","scrollTop","getSideAndAlignFromPlacement","placement","side","align","getPlacement","updateMask","targetElement","padding","clientRect","x","y","width","height","path","StoreContext","consumerName","context","TourContext","useTourContext","StepContext","useStepContext","DefaultFooterContext","PortalContext","usePortalContext","useScrollLock","originalStyle","scrollbarWidth","TourRoot","openProp","defaultOpen","onOpenChange","valueProp","defaultValue","onValueChange","onComplete","onSkip","autoScroll","rootProps","stateRef","listenersRef","stepIdsMapRef","stepIdCounterRef","propsRef","cb","key","value","prevStep","nextStep","l","stepData","id","index","_","i","stepId","stepIndex","jsx","TourRootImpl","onEscapeKeyDown","onPointerDownOutside","onInteractOutside","alignOffset","sideOffset","spotlightPadding","dismissible","modal","stepFooter","asChild","rootImplProps","dir","portal","setPortal","previouslyFocusedElementRef","onEscapeKeyDownRef","state","prevOpenRef","wasOpen","elementToFocus","contextValue","portalContextValue","RootPrimitive","Slot","TourStep","collisionBoundary","collisionPadding","arrowPadding","sticky","hideWhenDetached","avoidCollisions","required","forceMount","onStepEnter","onStepLeave","onPointerDownCaptureProp","onFocusCaptureProp","onBlurCaptureProp","children","className","style","stepProps","arrow","setArrow","footer","setFooter","stepRef","stepIdRef","stepOrderRef","isPointerInsideReactTreeRef","isFocusInsideReactTreeRef","steps","resolvedSideOffset","resolvedAlignOffset","isCurrentStep","middleware","mainAxisOffset","crossAxisOffset","boundary","hasExplicitBoundaries","detectOverflowOptions","b","shift","limitShift","flip","onArrow","hide","refs","floatingStyles","finalPlacement","middlewareData","useFloating","autoUpdate","composedRef","useComposedRefs","placedSide","placedAlign","arrowX","arrowY","cannotCenterArrow","isHidden","stepContextValue","onResize","onScroll","rafId","stepElement","ownerDocument","onPointerDown","pointerDownOutsideEvent","interactOutsideEvent","timerId","isFocusInStep","isFocusInTarget","onPointerDownCapture","onFocusCapture","onBlurCapture","onTargetPointerDownCapture","onTargetFocusCapture","onTargetBlurCapture","StepPrimitive","jsxs","cn","TourSpotlight","backdropProps","maskPath","TourSpotlightRing","ringProps","spotlightRect","TourPortal","portalContext","mounted","setMounted","portalContainer","ReactDOM","TourArrow","arrowProps","stepContext","baseSide","TourHeader","headerProps","TourTitle","titleProps","TourDescription","descriptionProps","TourClose","onClickProp","closeButtonProps","onClick","X","TourPrev","prevButtonProps","Button","Fragment","ChevronLeft","TourNext","nextButtonProps","isLastStep","ChevronRight","TourSkip","skipButtonProps","TourStepCounter","format","current","total","stepCounterProps","TourFooter","footerProps","hasDefaultFooter"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { jsxs as o, Fragment as g, jsx as e } from "react/jsx-runtime";
2
+ import "react";
3
+ import { Root as m, Portal as v, Spotlight as f, SpotlightRing as P, Step as k, Arrow as p, Header as N, Title as x, Close as w, Description as y, Footer as D, StepCounter as F, Skip as d, Prev as c, Next as n } from "./Tour.js";
4
+ function W({
5
+ steps: a,
6
+ children: h,
7
+ showSpotlight: t = !0,
8
+ showSpotlightRing: s = !0,
9
+ spotlightClassName: u,
10
+ spotlightRingClassName: T,
11
+ buttonConfig: i,
12
+ ...S
13
+ }) {
14
+ return /* @__PURE__ */ o(m, { ...S, children: [
15
+ /* @__PURE__ */ o(v, { children: [
16
+ t && /* @__PURE__ */ o(g, { children: [
17
+ /* @__PURE__ */ e(f, { className: u }),
18
+ s && /* @__PURE__ */ e(P, { className: T })
19
+ ] }),
20
+ a && a.length > 0 && a.map((r, l) => /* @__PURE__ */ o(
21
+ k,
22
+ {
23
+ target: r.target,
24
+ side: r.side,
25
+ align: r.align,
26
+ alignOffset: r.alignOffset,
27
+ sideOffset: r.sideOffset,
28
+ collisionBoundary: r.collisionBoundary,
29
+ collisionPadding: r.collisionPadding,
30
+ arrowPadding: r.arrowPadding,
31
+ sticky: r.sticky,
32
+ hideWhenDetached: r.hideWhenDetached,
33
+ avoidCollisions: r.avoidCollisions,
34
+ required: r.required,
35
+ forceMount: r.forceMount,
36
+ onStepEnter: r.onStepEnter,
37
+ onStepLeave: r.onStepLeave,
38
+ children: [
39
+ !r.hideArrow && /* @__PURE__ */ e(p, {}),
40
+ /* @__PURE__ */ o(N, { children: [
41
+ /* @__PURE__ */ e(x, { children: r.title }),
42
+ !r.hideClose && /* @__PURE__ */ e(w, {})
43
+ ] }),
44
+ r.description && /* @__PURE__ */ e(y, { children: r.description }),
45
+ r.content && /* @__PURE__ */ e("div", { className: "py-2", children: r.content }),
46
+ !r.hideFooter && /* @__PURE__ */ o(D, { children: [
47
+ /* @__PURE__ */ o("div", { className: "flex items-center gap-2", children: [
48
+ !r.hideStepCounter && /* @__PURE__ */ e(F, {}),
49
+ !r.hideSkip && l === 0 && (i?.skip ? /* @__PURE__ */ e(d, { children: i.skip }) : /* @__PURE__ */ e(d, {}))
50
+ ] }),
51
+ /* @__PURE__ */ o("div", { className: "flex items-center gap-2", children: [
52
+ l > 0 && (i?.prev ? /* @__PURE__ */ e(c, { children: i.prev }) : /* @__PURE__ */ e(c, {})),
53
+ i?.next ? l === a.length - 1 && i?.finish ? /* @__PURE__ */ e(n, { children: i.finish }) : /* @__PURE__ */ e(n, { children: i.next }) : /* @__PURE__ */ e(n, {})
54
+ ] })
55
+ ] })
56
+ ]
57
+ },
58
+ l
59
+ ))
60
+ ] }),
61
+ h
62
+ ] });
63
+ }
64
+ export {
65
+ W as TourWrapper
66
+ };
67
+ //# sourceMappingURL=TourWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TourWrapper.js","sources":["../../../../src/components/Tour/TourWrapper.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n Root,\n Portal,\n Step,\n Arrow,\n Header,\n Title,\n Description,\n Close,\n Footer,\n Prev,\n Next,\n Skip,\n StepCounter,\n Spotlight,\n SpotlightRing,\n} from \"./Tour\";\nimport type { TourProps } from \"./Tour\";\n\ninterface TourStep {\n target: string | React.RefObject<HTMLElement> | HTMLElement;\n title: string;\n description?: string;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n alignOffset?: number;\n sideOffset?: number;\n collisionBoundary?: Element | null | Array<Element | null>;\n collisionPadding?:\n | number\n | Partial<Record<\"top\" | \"right\" | \"bottom\" | \"left\", number>>;\n arrowPadding?: number;\n sticky?: \"partial\" | \"always\";\n hideWhenDetached?: boolean;\n avoidCollisions?: boolean;\n required?: boolean;\n forceMount?: boolean;\n hideArrow?: boolean;\n hideClose?: boolean;\n hideFooter?: boolean;\n hideSkip?: boolean;\n hideStepCounter?: boolean;\n content?: React.ReactNode;\n onStepEnter?: () => void;\n onStepLeave?: () => void;\n}\n\ninterface ButtonConfig {\n skip?: string;\n prev?: string;\n next?: string;\n finish?: string;\n}\n\ninterface TourWrapperProps extends Omit<TourProps, \"children\"> {\n steps?: TourStep[];\n children?: React.ReactNode;\n showSpotlight?: boolean;\n showSpotlightRing?: boolean;\n spotlightClassName?: string;\n spotlightRingClassName?: string;\n buttonConfig?: ButtonConfig;\n}\n\nfunction TourWrapper({\n steps,\n children,\n showSpotlight = true,\n showSpotlightRing = true,\n spotlightClassName,\n spotlightRingClassName,\n buttonConfig,\n ...props\n}: TourWrapperProps) {\n return (\n <Root {...props}>\n <Portal>\n {showSpotlight && (\n <>\n <Spotlight className={spotlightClassName} />\n {showSpotlightRing && (\n <SpotlightRing className={spotlightRingClassName} />\n )}\n </>\n )}\n\n {steps &&\n steps.length > 0 &&\n steps.map((step, index) => (\n <Step\n key={index}\n target={step.target}\n side={step.side}\n align={step.align}\n alignOffset={step.alignOffset}\n sideOffset={step.sideOffset}\n collisionBoundary={step.collisionBoundary}\n collisionPadding={step.collisionPadding}\n arrowPadding={step.arrowPadding}\n sticky={step.sticky}\n hideWhenDetached={step.hideWhenDetached}\n avoidCollisions={step.avoidCollisions}\n required={step.required}\n forceMount={step.forceMount}\n onStepEnter={step.onStepEnter}\n onStepLeave={step.onStepLeave}\n >\n {!step.hideArrow && <Arrow />}\n <Header>\n <Title>{step.title}</Title>\n {!step.hideClose && <Close />}\n </Header>\n {step.description && (\n <Description>{step.description}</Description>\n )}\n {step.content && <div className=\"py-2\">{step.content}</div>}\n {!step.hideFooter && (\n <Footer>\n <div className=\"flex items-center gap-2\">\n {!step.hideStepCounter && <StepCounter />}\n {!step.hideSkip &&\n index === 0 &&\n (buttonConfig?.skip ? (\n <Skip>{buttonConfig.skip}</Skip>\n ) : (\n <Skip />\n ))}\n </div>\n <div className=\"flex items-center gap-2\">\n {index > 0 &&\n (buttonConfig?.prev ? (\n <Prev>{buttonConfig.prev}</Prev>\n ) : (\n <Prev />\n ))}\n {buttonConfig?.next ? (\n index === steps.length - 1 && buttonConfig?.finish ? (\n <Next>{buttonConfig.finish}</Next>\n ) : (\n <Next>{buttonConfig.next}</Next>\n )\n ) : (\n <Next />\n )}\n </div>\n </Footer>\n )}\n </Step>\n ))}\n </Portal>\n\n {children}\n </Root>\n );\n}\n\nexport { TourWrapper };\nexport type { TourWrapperProps, TourStep, ButtonConfig };\n"],"names":["TourWrapper","steps","children","showSpotlight","showSpotlightRing","spotlightClassName","spotlightRingClassName","buttonConfig","props","jsxs","Root","Portal","Fragment","jsx","Spotlight","SpotlightRing","step","index","Step","Arrow","Header","Title","Close","Description","Footer","StepCounter","Skip","Prev","Next"],"mappings":";;;AAmEA,SAASA,EAAY;AAAA,EACnB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,mBAAAC,IAAoB;AAAA,EACpB,oBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,GAAqB;AACnB,SACE,gBAAAC,EAACC,GAAA,EAAM,GAAGF,GACR,UAAA;AAAA,IAAA,gBAAAC,EAACE,GAAA,EACE,UAAA;AAAA,MAAAR,KACC,gBAAAM,EAAAG,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAA,EAAU,WAAWT,EAAA,CAAoB;AAAA,QACzCD,KACC,gBAAAS,EAACE,GAAA,EAAc,WAAWT,EAAA,CAAwB;AAAA,MAAA,GAEtD;AAAA,MAGDL,KACCA,EAAM,SAAS,KACfA,EAAM,IAAI,CAACe,GAAMC,MACf,gBAAAR;AAAA,QAACS;AAAAA,QAAA;AAAA,UAEC,QAAQF,EAAK;AAAA,UACb,MAAMA,EAAK;AAAA,UACX,OAAOA,EAAK;AAAA,UACZ,aAAaA,EAAK;AAAA,UAClB,YAAYA,EAAK;AAAA,UACjB,mBAAmBA,EAAK;AAAA,UACxB,kBAAkBA,EAAK;AAAA,UACvB,cAAcA,EAAK;AAAA,UACnB,QAAQA,EAAK;AAAA,UACb,kBAAkBA,EAAK;AAAA,UACvB,iBAAiBA,EAAK;AAAA,UACtB,UAAUA,EAAK;AAAA,UACf,YAAYA,EAAK;AAAA,UACjB,aAAaA,EAAK;AAAA,UAClB,aAAaA,EAAK;AAAA,UAEjB,UAAA;AAAA,YAAA,CAACA,EAAK,aAAa,gBAAAH,EAACM,GAAA,CAAA,CAAM;AAAA,8BAC1BC,GAAA,EACC,UAAA;AAAA,cAAA,gBAAAP,EAACQ,GAAA,EAAO,YAAK,MAAA,CAAM;AAAA,cAClB,CAACL,EAAK,aAAa,gBAAAH,EAACS,GAAA,CAAA,CAAM;AAAA,YAAA,GAC7B;AAAA,YACCN,EAAK,eACJ,gBAAAH,EAACU,GAAA,EAAa,YAAK,aAAY;AAAA,YAEhCP,EAAK,WAAW,gBAAAH,EAAC,SAAI,WAAU,QAAQ,YAAK,SAAQ;AAAA,YACpD,CAACG,EAAK,cACL,gBAAAP,EAACe,GAAA,EACC,UAAA;AAAA,cAAA,gBAAAf,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,gBAAA,CAACO,EAAK,mBAAmB,gBAAAH,EAACY,GAAA,CAAA,CAAY;AAAA,gBACtC,CAACT,EAAK,YACLC,MAAU,MACTV,GAAc,OACb,gBAAAM,EAACa,GAAA,EAAM,UAAAnB,EAAa,KAAA,CAAK,sBAExBmB,GAAA,EAAK;AAAA,cAAA,GAEZ;AAAA,cACA,gBAAAjB,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,gBAAAQ,IAAQ,MACNV,GAAc,OACb,gBAAAM,EAACc,KAAM,UAAApB,EAAa,KAAA,CAAK,IAEzB,gBAAAM,EAACc,GAAA,CAAA,CAAK;AAAA,gBAETpB,GAAc,OACbU,MAAUhB,EAAM,SAAS,KAAKM,GAAc,SAC1C,gBAAAM,EAACe,KAAM,UAAArB,EAAa,QAAO,IAE3B,gBAAAM,EAACe,GAAA,EAAM,YAAa,KAAA,CAAK,sBAG1BA,GAAA,CAAA,CAAK;AAAA,cAAA,EAAA,CAEV;AAAA,YAAA,EAAA,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,QAvDGX;AAAA,MAAA,CA0DR;AAAA,IAAA,GACL;AAAA,IAECf;AAAA,EAAA,GACH;AAEJ;"}
@@ -0,0 +1,38 @@
1
+ import { Footer as o, StepCounter as r, Skip as t, Next as e, Prev as i, Close as s, Description as a, Title as p, Header as u, Arrow as T, Step as l, SpotlightRing as S, Spotlight as n, Portal as g, Root as h } from "./Tour.js";
2
+ import { TourWrapper as C } from "./TourWrapper.js";
3
+ const c = Object.assign(C, {
4
+ Root: h,
5
+ Portal: g,
6
+ Spotlight: n,
7
+ SpotlightRing: S,
8
+ Step: l,
9
+ Arrow: T,
10
+ Header: u,
11
+ Title: p,
12
+ Description: a,
13
+ Close: s,
14
+ Prev: i,
15
+ Next: e,
16
+ Skip: t,
17
+ StepCounter: r,
18
+ Footer: o,
19
+ //
20
+ TourPortal: g,
21
+ TourSpotlight: n,
22
+ TourSpotlightRing: S,
23
+ TourStep: l,
24
+ TourArrow: T,
25
+ TourHeader: u,
26
+ TourTitle: p,
27
+ TourDescription: a,
28
+ TourClose: s,
29
+ TourPrev: i,
30
+ TourNext: e,
31
+ TourSkip: t,
32
+ TourStepCounter: r,
33
+ TourFooter: o
34
+ });
35
+ export {
36
+ c as Tour
37
+ };
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Tour/index.ts"],"sourcesContent":["import {\n Root,\n Portal,\n Spotlight,\n SpotlightRing,\n Step,\n Arrow,\n Header,\n Title,\n Description,\n Close,\n Prev,\n Next,\n Skip,\n StepCounter,\n Footer,\n //\n TourPortal,\n TourSpotlight,\n TourSpotlightRing,\n TourStep,\n TourArrow,\n TourHeader,\n TourTitle,\n TourDescription,\n TourClose,\n TourPrev,\n TourNext,\n TourSkip,\n TourStepCounter,\n TourFooter,\n //\n type TourProps,\n} from \"./Tour\";\nimport {\n TourWrapper,\n type TourWrapperProps,\n type TourStep as TourStepType,\n type ButtonConfig,\n} from \"./TourWrapper\";\n\nconst Tour = Object.assign(TourWrapper, {\n Root,\n Portal,\n Spotlight,\n SpotlightRing,\n Step,\n Arrow,\n Header,\n Title,\n Description,\n Close,\n Prev,\n Next,\n Skip,\n StepCounter,\n Footer,\n //\n TourPortal,\n TourSpotlight,\n TourSpotlightRing,\n TourStep,\n TourArrow,\n TourHeader,\n TourTitle,\n TourDescription,\n TourClose,\n TourPrev,\n TourNext,\n TourSkip,\n TourStepCounter,\n TourFooter,\n});\n\nexport { Tour };\nexport type {\n TourProps,\n TourWrapperProps,\n TourStepType as TourStep,\n ButtonConfig,\n};\n"],"names":["Tour","TourWrapper","Root","Portal","Spotlight","SpotlightRing","Step","Arrow","Header","Title","Description","Close","Prev","Next","Skip","StepCounter","Footer","TourPortal","TourSpotlight","TourSpotlightRing","TourStep","TourArrow","TourHeader","TourTitle","TourDescription","TourClose","TourPrev","TourNext","TourSkip","TourStepCounter","TourFooter"],"mappings":";;AAyCA,MAAMA,IAAO,OAAO,OAAOC,GAAa;AAAA,EAAA,MACtCC;AAAAA,EAAA,QACAC;AAAAA,EAAA,WACAC;AAAAA,EAAA,eACAC;AAAAA,EAAA,MACAC;AAAAA,EAAA,OACAC;AAAAA,EAAA,QACAC;AAAAA,EAAA,OACAC;AAAAA,EAAA,aACAC;AAAAA,EAAA,OACAC;AAAAA,EAAA,MACAC;AAAAA,EAAA,MACAC;AAAAA,EAAA,MACAC;AAAAA,EAAA,aACAC;AAAAA,EAAA,QACAC;AAAAA;AAAAA,EAEA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AACF,CAAC;"}