@neut/ui 0.0.12 → 0.0.14

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 (368) hide show
  1. package/dist/components/calendar/Calendar/Calendar.d.ts +10 -0
  2. package/dist/components/calendar/Calendar/Calendar.js +306 -0
  3. package/dist/components/calendar/Calendar/Calendar.js.map +1 -0
  4. package/dist/components/calendar/Calendar/Calendar.types.d.ts +62 -0
  5. package/dist/components/calendar/Calendar/Calendar.utils.d.ts +21 -0
  6. package/dist/components/calendar/Calendar/Calendar.utils.js +68 -0
  7. package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -0
  8. package/dist/components/calendar/Calendar/index.d.ts +2 -0
  9. package/dist/components/calendar/index.d.ts +2 -0
  10. package/dist/components/calendar/index.js +2 -0
  11. package/dist/components/combobox/Combobox/Combobox.context.d.ts +3 -0
  12. package/dist/components/combobox/Combobox/Combobox.context.js +12 -0
  13. package/dist/components/combobox/Combobox/Combobox.context.js.map +1 -0
  14. package/dist/components/combobox/Combobox/Combobox.d.ts +3 -0
  15. package/dist/components/combobox/Combobox/Combobox.js +60 -0
  16. package/dist/components/combobox/Combobox/Combobox.js.map +1 -0
  17. package/dist/components/combobox/Combobox/Combobox.types.d.ts +40 -0
  18. package/dist/components/combobox/Combobox/index.d.ts +2 -0
  19. package/dist/components/combobox/ComboboxChip/ComboboxChip.d.ts +7 -0
  20. package/dist/components/combobox/ComboboxChip/ComboboxChip.js +35 -0
  21. package/dist/components/combobox/ComboboxChip/ComboboxChip.js.map +1 -0
  22. package/dist/components/combobox/ComboboxChip/index.d.ts +1 -0
  23. package/dist/components/combobox/ComboboxChips/ComboboxChips.d.ts +5 -0
  24. package/dist/components/combobox/ComboboxChips/ComboboxChips.js +16 -0
  25. package/dist/components/combobox/ComboboxChips/ComboboxChips.js.map +1 -0
  26. package/dist/components/combobox/ComboboxChips/index.d.ts +1 -0
  27. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.d.ts +4 -0
  28. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js +27 -0
  29. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -0
  30. package/dist/components/combobox/ComboboxChipsInput/index.d.ts +1 -0
  31. package/dist/components/combobox/ComboboxClear/ComboboxClear.d.ts +4 -0
  32. package/dist/components/combobox/ComboboxClear/ComboboxClear.js +30 -0
  33. package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -0
  34. package/dist/components/combobox/ComboboxClear/index.d.ts +1 -0
  35. package/dist/components/combobox/ComboboxCollection/ComboboxCollection.d.ts +5 -0
  36. package/dist/components/combobox/ComboboxCollection/ComboboxCollection.js +20 -0
  37. package/dist/components/combobox/ComboboxCollection/ComboboxCollection.js.map +1 -0
  38. package/dist/components/combobox/ComboboxCollection/index.d.ts +1 -0
  39. package/dist/components/combobox/ComboboxContent/ComboboxContent.d.ts +2 -0
  40. package/dist/components/combobox/ComboboxContent/ComboboxContent.js +49 -0
  41. package/dist/components/combobox/ComboboxContent/ComboboxContent.js.map +1 -0
  42. package/dist/components/combobox/ComboboxContent/ComboboxContent.types.d.ts +12 -0
  43. package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.d.ts +2 -0
  44. package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.js +6 -0
  45. package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.js.map +1 -0
  46. package/dist/components/combobox/ComboboxContent/index.d.ts +1 -0
  47. package/dist/components/combobox/ComboboxContent/useComboboxContent.d.ts +13 -0
  48. package/dist/components/combobox/ComboboxContent/useComboboxContent.js +48 -0
  49. package/dist/components/combobox/ComboboxContent/useComboboxContent.js.map +1 -0
  50. package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.d.ts +5 -0
  51. package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.js +14 -0
  52. package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -0
  53. package/dist/components/combobox/ComboboxEmpty/index.d.ts +1 -0
  54. package/dist/components/combobox/ComboboxGroup/ComboboxGroup.d.ts +5 -0
  55. package/dist/components/combobox/ComboboxGroup/ComboboxGroup.js +13 -0
  56. package/dist/components/combobox/ComboboxGroup/ComboboxGroup.js.map +1 -0
  57. package/dist/components/combobox/ComboboxGroup/index.d.ts +1 -0
  58. package/dist/components/combobox/ComboboxInput/ComboboxInput.d.ts +9 -0
  59. package/dist/components/combobox/ComboboxInput/ComboboxInput.js +85 -0
  60. package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -0
  61. package/dist/components/combobox/ComboboxInput/index.d.ts +1 -0
  62. package/dist/components/combobox/ComboboxItem/ComboboxItem.d.ts +7 -0
  63. package/dist/components/combobox/ComboboxItem/ComboboxItem.js +40 -0
  64. package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -0
  65. package/dist/components/combobox/ComboboxItem/index.d.ts +1 -0
  66. package/dist/components/combobox/ComboboxLabel/ComboboxLabel.d.ts +5 -0
  67. package/dist/components/combobox/ComboboxLabel/ComboboxLabel.js +14 -0
  68. package/dist/components/combobox/ComboboxLabel/ComboboxLabel.js.map +1 -0
  69. package/dist/components/combobox/ComboboxLabel/index.d.ts +1 -0
  70. package/dist/components/combobox/ComboboxList/ComboboxList.d.ts +5 -0
  71. package/dist/components/combobox/ComboboxList/ComboboxList.js +22 -0
  72. package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -0
  73. package/dist/components/combobox/ComboboxList/index.d.ts +1 -0
  74. package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.d.ts +3 -0
  75. package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.js +14 -0
  76. package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.js.map +1 -0
  77. package/dist/components/combobox/ComboboxSeparator/index.d.ts +1 -0
  78. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.d.ts +6 -0
  79. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js +34 -0
  80. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -0
  81. package/dist/components/combobox/ComboboxTrigger/index.d.ts +1 -0
  82. package/dist/components/combobox/ComboboxValue/ComboboxValue.d.ts +5 -0
  83. package/dist/components/combobox/ComboboxValue/ComboboxValue.js +15 -0
  84. package/dist/components/combobox/ComboboxValue/ComboboxValue.js.map +1 -0
  85. package/dist/components/combobox/ComboboxValue/index.d.ts +1 -0
  86. package/dist/components/combobox/index.d.ts +18 -0
  87. package/dist/components/combobox/index.js +18 -0
  88. package/dist/components/combobox/useComboboxAnchor/index.d.ts +1 -0
  89. package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.d.ts +1 -0
  90. package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.js +9 -0
  91. package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.js.map +1 -0
  92. package/dist/components/date-picker/DatePicker/DatePicker.d.ts +11 -0
  93. package/dist/components/date-picker/DatePicker/DatePicker.js +136 -0
  94. package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -0
  95. package/dist/components/date-picker/DatePicker/DatePicker.types.d.ts +32 -0
  96. package/dist/components/date-picker/DatePicker/index.d.ts +2 -0
  97. package/dist/components/date-picker/index.d.ts +2 -0
  98. package/dist/components/date-picker/index.js +2 -0
  99. package/dist/components/dialog/Dialog/Dialog.context.d.ts +2 -1
  100. package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
  101. package/dist/components/dialog/Dialog/Dialog.js +21 -12
  102. package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
  103. package/dist/components/dialog/Dialog/Dialog.types.d.ts +13 -1
  104. package/dist/components/dialog/Dialog/index.d.ts +1 -0
  105. package/dist/components/dialog/DialogTrigger/DialogTrigger.d.ts +4 -2
  106. package/dist/components/dialog/DialogTrigger/DialogTrigger.js +27 -6
  107. package/dist/components/dialog/DialogTrigger/DialogTrigger.js.map +1 -1
  108. package/dist/components/dialog/DialogTrigger/DialogTrigger.types.d.ts +3 -0
  109. package/dist/components/dialog/DialogTrigger/index.d.ts +3 -0
  110. package/dist/components/dialog/DialogTrigger/useDialogTrigger.d.ts +13 -2
  111. package/dist/components/dialog/DialogTrigger/useDialogTrigger.js +15 -19
  112. package/dist/components/dialog/DialogTrigger/useDialogTrigger.js.map +1 -1
  113. package/dist/components/dialog/index.js +3 -2
  114. package/dist/components/empty/Empty/Empty.d.ts +2 -0
  115. package/dist/components/empty/Empty/Empty.js +18 -0
  116. package/dist/components/empty/Empty/Empty.js.map +1 -0
  117. package/dist/components/empty/Empty/index.d.ts +1 -0
  118. package/dist/components/empty/EmptyContent/EmptyContent.d.ts +2 -0
  119. package/dist/components/empty/EmptyContent/EmptyContent.js +18 -0
  120. package/dist/components/empty/EmptyContent/EmptyContent.js.map +1 -0
  121. package/dist/components/empty/EmptyContent/index.d.ts +1 -0
  122. package/dist/components/empty/EmptyDescription/EmptyDescription.d.ts +2 -0
  123. package/dist/components/empty/EmptyDescription/EmptyDescription.js +18 -0
  124. package/dist/components/empty/EmptyDescription/EmptyDescription.js.map +1 -0
  125. package/dist/components/empty/EmptyDescription/index.d.ts +1 -0
  126. package/dist/components/empty/EmptyHeader/EmptyHeader.d.ts +2 -0
  127. package/dist/components/empty/EmptyHeader/EmptyHeader.js +18 -0
  128. package/dist/components/empty/EmptyHeader/EmptyHeader.js.map +1 -0
  129. package/dist/components/empty/EmptyHeader/index.d.ts +1 -0
  130. package/dist/components/empty/EmptyMedia/EmptyMedia.d.ts +4 -0
  131. package/dist/components/empty/EmptyMedia/EmptyMedia.js +27 -0
  132. package/dist/components/empty/EmptyMedia/EmptyMedia.js.map +1 -0
  133. package/dist/components/empty/EmptyMedia/EmptyMedia.styles.d.ts +3 -0
  134. package/dist/components/empty/EmptyMedia/EmptyMedia.styles.js +13 -0
  135. package/dist/components/empty/EmptyMedia/EmptyMedia.styles.js.map +1 -0
  136. package/dist/components/empty/EmptyMedia/EmptyMedia.types.d.ts +3 -0
  137. package/dist/components/empty/EmptyMedia/index.d.ts +2 -0
  138. package/dist/components/empty/EmptyTitle/EmptyTitle.d.ts +2 -0
  139. package/dist/components/empty/EmptyTitle/EmptyTitle.js +18 -0
  140. package/dist/components/empty/EmptyTitle/EmptyTitle.js.map +1 -0
  141. package/dist/components/empty/EmptyTitle/index.d.ts +1 -0
  142. package/dist/components/empty/index.d.ts +7 -0
  143. package/dist/components/empty/index.js +7 -0
  144. package/dist/components/image/Image.utils.js.map +1 -1
  145. package/dist/components/popover/Popover/Popover.context.d.ts +3 -0
  146. package/dist/components/popover/Popover/Popover.context.js +12 -0
  147. package/dist/components/popover/Popover/Popover.context.js.map +1 -0
  148. package/dist/components/popover/Popover/Popover.d.ts +18 -0
  149. package/dist/components/popover/Popover/Popover.js +37 -0
  150. package/dist/components/popover/Popover/Popover.js.map +1 -0
  151. package/dist/components/popover/Popover/Popover.types.d.ts +24 -0
  152. package/dist/components/popover/Popover/index.d.ts +3 -0
  153. package/dist/components/popover/PopoverContent/PopoverContent.d.ts +6 -0
  154. package/dist/components/popover/PopoverContent/PopoverContent.js +72 -0
  155. package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -0
  156. package/dist/components/popover/PopoverContent/PopoverContent.types.d.ts +16 -0
  157. package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +20 -0
  158. package/dist/components/popover/PopoverContent/PopoverContent.utils.js +36 -0
  159. package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -0
  160. package/dist/components/popover/PopoverContent/index.d.ts +6 -0
  161. package/dist/components/popover/PopoverContent/usePopoverContent.d.ts +11 -0
  162. package/dist/components/popover/PopoverContent/usePopoverContent.js +42 -0
  163. package/dist/components/popover/PopoverContent/usePopoverContent.js.map +1 -0
  164. package/dist/components/popover/PopoverDescription/PopoverDescription.d.ts +2 -0
  165. package/dist/components/popover/PopoverDescription/PopoverDescription.js +18 -0
  166. package/dist/components/popover/PopoverDescription/PopoverDescription.js.map +1 -0
  167. package/dist/components/popover/PopoverDescription/index.d.ts +1 -0
  168. package/dist/components/popover/PopoverHeader/PopoverHeader.d.ts +2 -0
  169. package/dist/components/popover/PopoverHeader/PopoverHeader.js +18 -0
  170. package/dist/components/popover/PopoverHeader/PopoverHeader.js.map +1 -0
  171. package/dist/components/popover/PopoverHeader/index.d.ts +1 -0
  172. package/dist/components/popover/PopoverTitle/PopoverTitle.d.ts +2 -0
  173. package/dist/components/popover/PopoverTitle/PopoverTitle.js +18 -0
  174. package/dist/components/popover/PopoverTitle/PopoverTitle.js.map +1 -0
  175. package/dist/components/popover/PopoverTitle/index.d.ts +1 -0
  176. package/dist/components/popover/PopoverTrigger/PopoverTrigger.d.ts +4 -0
  177. package/dist/components/popover/PopoverTrigger/PopoverTrigger.js +35 -0
  178. package/dist/components/popover/PopoverTrigger/PopoverTrigger.js.map +1 -0
  179. package/dist/components/popover/PopoverTrigger/PopoverTrigger.types.d.ts +3 -0
  180. package/dist/components/popover/PopoverTrigger/index.d.ts +4 -0
  181. package/dist/components/popover/PopoverTrigger/usePopoverTrigger.d.ts +14 -0
  182. package/dist/components/popover/PopoverTrigger/usePopoverTrigger.js +35 -0
  183. package/dist/components/popover/PopoverTrigger/usePopoverTrigger.js.map +1 -0
  184. package/dist/components/popover/index.d.ts +9 -0
  185. package/dist/components/popover/index.js +7 -0
  186. package/dist/components/radio-group/RadioGroup/RadioGroup.context.d.ts +3 -0
  187. package/dist/components/radio-group/RadioGroup/RadioGroup.context.js +12 -0
  188. package/dist/components/radio-group/RadioGroup/RadioGroup.context.js.map +1 -0
  189. package/dist/components/radio-group/RadioGroup/RadioGroup.d.ts +15 -0
  190. package/dist/components/radio-group/RadioGroup/RadioGroup.js +56 -0
  191. package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -0
  192. package/dist/components/radio-group/RadioGroup/RadioGroup.types.d.ts +22 -0
  193. package/dist/components/radio-group/RadioGroup/index.d.ts +3 -0
  194. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.d.ts +6 -0
  195. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js +80 -0
  196. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -0
  197. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.types.d.ts +9 -0
  198. package/dist/components/radio-group/RadioGroupItem/index.d.ts +2 -0
  199. package/dist/components/radio-group/index.d.ts +4 -0
  200. package/dist/components/radio-group/index.js +3 -0
  201. package/dist/components/select/Select/Select.context.d.ts +3 -3
  202. package/dist/components/select/Select/Select.context.js.map +1 -1
  203. package/dist/components/select/Select/Select.d.ts +5 -2
  204. package/dist/components/select/Select/Select.js +1 -1
  205. package/dist/components/select/Select/Select.js.map +1 -1
  206. package/dist/components/select/Select/Select.types.d.ts +19 -15
  207. package/dist/components/select/Select/index.d.ts +1 -1
  208. package/dist/components/select/SelectContent/SelectContent.js +2 -2
  209. package/dist/components/select/SelectContent/SelectContent.js.map +1 -1
  210. package/dist/components/select/SelectContent/SelectContent.utils.d.ts +2 -1
  211. package/dist/components/select/SelectContent/SelectContent.utils.js +2 -2
  212. package/dist/components/select/SelectContent/SelectContent.utils.js.map +1 -1
  213. package/dist/components/select/SelectContent/useSelectContent.js +6 -2
  214. package/dist/components/select/SelectContent/useSelectContent.js.map +1 -1
  215. package/dist/components/select/SelectItem/SelectItem.js +1 -1
  216. package/dist/components/select/SelectItem/SelectItem.js.map +1 -1
  217. package/dist/components/select/SelectItem/SelectItem.types.d.ts +3 -2
  218. package/dist/components/select/SelectItem/useSelectItem.d.ts +2 -1
  219. package/dist/components/select/SelectItem/useSelectItem.js +1 -1
  220. package/dist/components/select/SelectItem/useSelectItem.js.map +1 -1
  221. package/dist/components/select/SelectValue/SelectValue.js +1 -1
  222. package/dist/components/select/SelectValue/SelectValue.js.map +1 -1
  223. package/dist/components/toast/Toast/Toast.d.ts +3 -0
  224. package/dist/components/toast/Toast/Toast.js +181 -0
  225. package/dist/components/toast/Toast/Toast.js.map +1 -0
  226. package/dist/components/toast/Toast/Toast.styles.d.ts +6 -0
  227. package/dist/components/toast/Toast/Toast.styles.js +27 -0
  228. package/dist/components/toast/Toast/Toast.styles.js.map +1 -0
  229. package/dist/components/toast/Toast/Toast.types.d.ts +90 -0
  230. package/dist/components/toast/Toast/Toast.types.js +6 -0
  231. package/dist/components/toast/Toast/Toast.types.js.map +1 -0
  232. package/dist/components/toast/Toast/index.d.ts +2 -0
  233. package/dist/components/toast/{components → Toaster}/Toaster.d.ts +1 -1
  234. package/dist/components/toast/Toaster/Toaster.js +102 -0
  235. package/dist/components/toast/Toaster/Toaster.js.map +1 -0
  236. package/dist/components/toast/Toaster/Toaster.styles.d.ts +1 -0
  237. package/dist/components/toast/Toaster/Toaster.styles.js +6 -0
  238. package/dist/components/toast/Toaster/Toaster.styles.js.map +1 -0
  239. package/dist/components/toast/Toaster/Toaster.types.d.ts +44 -0
  240. package/dist/components/toast/Toaster/Toaster.utils.d.ts +7 -0
  241. package/dist/components/toast/Toaster/Toaster.utils.js +33 -0
  242. package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -0
  243. package/dist/components/toast/Toaster/index.d.ts +3 -0
  244. package/dist/components/toast/index.d.ts +5 -10
  245. package/dist/components/toast/index.js +4 -5
  246. package/dist/components/toast/state/index.d.ts +1 -0
  247. package/dist/components/toast/state/toast.d.ts +24 -0
  248. package/dist/components/toast/state/toast.js +116 -0
  249. package/dist/components/toast/state/toast.js.map +1 -0
  250. package/dist/components/toggle/Toggle/Toggle.d.ts +3 -0
  251. package/dist/components/toggle/Toggle/Toggle.js +49 -0
  252. package/dist/components/toggle/Toggle/Toggle.js.map +1 -0
  253. package/dist/components/toggle/Toggle/Toggle.styles.d.ts +4 -0
  254. package/dist/components/toggle/Toggle/Toggle.styles.js +23 -0
  255. package/dist/components/toggle/Toggle/Toggle.styles.js.map +1 -0
  256. package/dist/components/toggle/Toggle/Toggle.types.d.ts +12 -0
  257. package/dist/components/toggle/Toggle/index.d.ts +3 -0
  258. package/dist/components/toggle/index.d.ts +2 -0
  259. package/dist/components/toggle/index.js +3 -0
  260. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.d.ts +36 -0
  261. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js +40 -0
  262. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js.map +1 -0
  263. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.d.ts +18 -0
  264. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +94 -0
  265. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -0
  266. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.d.ts +8 -0
  267. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.js +7 -0
  268. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.js.map +1 -0
  269. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.types.d.ts +104 -0
  270. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.d.ts +8 -0
  271. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js +25 -0
  272. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -0
  273. package/dist/components/toggle-group/ToggleGroup/index.d.ts +3 -0
  274. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.d.ts +17 -0
  275. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js +47 -0
  276. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -0
  277. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.d.ts +11 -0
  278. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +88 -0
  279. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -0
  280. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.d.ts +12 -0
  281. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.js +7 -0
  282. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.js.map +1 -0
  283. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.types.d.ts +20 -0
  284. package/dist/components/toggle-group/ToggleGroupItem/index.d.ts +2 -0
  285. package/dist/components/toggle-group/call-event-handler.d.ts +5 -0
  286. package/dist/components/toggle-group/call-event-handler.js +9 -0
  287. package/dist/components/toggle-group/call-event-handler.js.map +1 -0
  288. package/dist/components/toggle-group/index.d.ts +4 -0
  289. package/dist/components/toggle-group/index.js +3 -0
  290. package/dist/components/tooltip/Tooltip/Tooltip.js +51 -50
  291. package/dist/components/tooltip/Tooltip/Tooltip.js.map +1 -1
  292. package/dist/components/tooltip/TooltipArrow/TooltipArrow.d.ts +3 -28
  293. package/dist/components/tooltip/TooltipArrow/TooltipArrow.js +13 -45
  294. package/dist/components/tooltip/TooltipArrow/TooltipArrow.js.map +1 -1
  295. package/dist/components/tooltip/TooltipContent/TooltipContent.context.d.ts +2 -0
  296. package/dist/components/tooltip/TooltipContent/TooltipContent.context.js.map +1 -1
  297. package/dist/components/tooltip/TooltipContent/TooltipContent.js +2 -1
  298. package/dist/components/tooltip/TooltipContent/TooltipContent.js.map +1 -1
  299. package/dist/components/tooltip/TooltipContent/TooltipContent.types.d.ts +3 -2
  300. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +2 -1
  301. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +8 -4
  302. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
  303. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +20 -19
  304. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  305. package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.d.ts +3 -0
  306. package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.js +10 -0
  307. package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.js.map +1 -0
  308. package/dist/components/tooltip/TooltipProvider/TooltipProvider.d.ts +3 -0
  309. package/dist/components/tooltip/TooltipProvider/TooltipProvider.js +20 -0
  310. package/dist/components/tooltip/TooltipProvider/TooltipProvider.js.map +1 -0
  311. package/dist/components/tooltip/TooltipProvider/TooltipProvider.types.d.ts +11 -0
  312. package/dist/components/tooltip/TooltipProvider/index.d.ts +3 -0
  313. package/dist/components/tooltip/index.d.ts +2 -0
  314. package/dist/components/tooltip/index.js +7 -6
  315. package/dist/index.d.ts +8 -0
  316. package/dist/index.js +153 -115
  317. package/dist/ui.css +1 -1
  318. package/package.json +7 -6
  319. package/dist/components/toast/components/Assets.d.ts +0 -9
  320. package/dist/components/toast/components/Assets.js +0 -32
  321. package/dist/components/toast/components/Assets.js.map +0 -1
  322. package/dist/components/toast/components/Toast.d.ts +0 -3
  323. package/dist/components/toast/components/Toast.js +0 -152
  324. package/dist/components/toast/components/Toast.js.map +0 -1
  325. package/dist/components/toast/components/ToastActions.d.ts +0 -12
  326. package/dist/components/toast/components/ToastActions.js +0 -62
  327. package/dist/components/toast/components/ToastActions.js.map +0 -1
  328. package/dist/components/toast/components/ToastContent.d.ts +0 -9
  329. package/dist/components/toast/components/ToastContent.js +0 -36
  330. package/dist/components/toast/components/ToastContent.js.map +0 -1
  331. package/dist/components/toast/components/ToastIcon.d.ts +0 -9
  332. package/dist/components/toast/components/ToastIcon.js +0 -59
  333. package/dist/components/toast/components/ToastIcon.js.map +0 -1
  334. package/dist/components/toast/components/Toaster.js +0 -163
  335. package/dist/components/toast/components/Toaster.js.map +0 -1
  336. package/dist/components/toast/constants.d.ts +0 -16
  337. package/dist/components/toast/constants.js +0 -6
  338. package/dist/components/toast/constants.js.map +0 -1
  339. package/dist/components/toast/hooks/useSwipe.d.ts +0 -23
  340. package/dist/components/toast/hooks/useSwipe.js +0 -59
  341. package/dist/components/toast/hooks/useSwipe.js.map +0 -1
  342. package/dist/components/toast/hooks/useTheme.d.ts +0 -2
  343. package/dist/components/toast/hooks/useTheme.js +0 -22
  344. package/dist/components/toast/hooks/useTheme.js.map +0 -1
  345. package/dist/components/toast/hooks/useToastHeight.d.ts +0 -11
  346. package/dist/components/toast/hooks/useToastHeight.js +0 -35
  347. package/dist/components/toast/hooks/useToastHeight.js.map +0 -1
  348. package/dist/components/toast/hooks/useToastSubscription.d.ts +0 -5
  349. package/dist/components/toast/hooks/useToastSubscription.js +0 -38
  350. package/dist/components/toast/hooks/useToastSubscription.js.map +0 -1
  351. package/dist/components/toast/hooks/useToastTimer.d.ts +0 -11
  352. package/dist/components/toast/hooks/useToastTimer.js +0 -22
  353. package/dist/components/toast/hooks/useToastTimer.js.map +0 -1
  354. package/dist/components/toast/hooks/useToasterKeyboard.d.ts +0 -7
  355. package/dist/components/toast/hooks/useToasterKeyboard.js +0 -14
  356. package/dist/components/toast/hooks/useToasterKeyboard.js.map +0 -1
  357. package/dist/components/toast/hooks.d.ts +0 -13
  358. package/dist/components/toast/hooks.js +0 -37
  359. package/dist/components/toast/hooks.js.map +0 -1
  360. package/dist/components/toast/state.d.ts +0 -52
  361. package/dist/components/toast/state.js +0 -170
  362. package/dist/components/toast/state.js.map +0 -1
  363. package/dist/components/toast/types.d.ts +0 -168
  364. package/dist/components/toast/types.js +0 -6
  365. package/dist/components/toast/types.js.map +0 -1
  366. package/dist/components/toast/utils.d.ts +0 -10
  367. package/dist/components/toast/utils.js +0 -39
  368. package/dist/components/toast/utils.js.map +0 -1
@@ -1,163 +0,0 @@
1
- import { assignOffset as e, getDocumentDirection as t } from "../utils.js";
2
- import { Toast as n } from "./Toast.js";
3
- import { useTheme as r } from "../hooks/useTheme.js";
4
- import { useToasterKeyboard as i } from "../hooks/useToasterKeyboard.js";
5
- import { useToastSubscription as a } from "../hooks/useToastSubscription.js";
6
- import { Portal as o, className as s, createComponent as c, delegateEvents as l, effect as u, insert as d, setAttribute as f, style as p, template as m, use as h } from "solid-js/web";
7
- import { For as g, Show as _, createMemo as v, createSignal as y, mergeProps as b } from "solid-js";
8
- //#region src/components/toast/components/Toaster.tsx
9
- var x = /*#__PURE__*/ m("<section tabindex=-1 aria-live=polite aria-relevant=\"additions text\"aria-atomic=false>"), S = /*#__PURE__*/ m("<ol tabindex=-1 data-sonner-toaster>"), C = (l) => {
10
- console.warn("The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.");
11
- let m = b({
12
- position: "bottom-right",
13
- hotkey: ["altKey", "KeyT"],
14
- gap: 14,
15
- visibleToasts: 3,
16
- dir: t(),
17
- containerAriaLabel: "Notifications"
18
- }, l), C = () => m.hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, ""), [w, T] = y([]), [E, D] = y(!1), [O, k] = y(!1), A, j = null, M = !1, N = r(() => l.theme ?? "light"), { toasts: P, removeToast: F } = a();
19
- i({
20
- hotkey: m.hotkey,
21
- listRef: () => A,
22
- setExpanded: D
23
- });
24
- let I = v(() => {
25
- let e = l.id;
26
- return e ? P().filter((t) => t.toasterId === e) : P().filter((e) => !e.toasterId);
27
- }), L = v(() => Array.from(new Set([m.position].concat(I().filter((e) => e.position).map((e) => e.position)))));
28
- v(() => {
29
- P().length <= 1 && D(!1);
30
- });
31
- let R = (e) => {
32
- e.target.dataset.dismissible !== "false" && (M || (M = !0, j = e.relatedTarget));
33
- }, z = (e) => {
34
- let t = e.currentTarget;
35
- M && !t.contains(e.relatedTarget) && (M = !1, j &&= (j.focus({ preventScroll: !0 }), null));
36
- }, B = v(() => e(l.offset, l.mobileOffset));
37
- return c(o, { get children() {
38
- var e = x();
39
- return d(e, c(g, {
40
- get each() {
41
- return L();
42
- },
43
- children: (e) => {
44
- let [r, i] = e.split("-"), a = () => I().filter((t) => !t.position && e === m.position || t.position === e);
45
- return c(_, {
46
- get when() {
47
- return a().length > 0;
48
- },
49
- get children() {
50
- var o = S();
51
- return o.$$pointerup = () => k(!1), o.$$pointerdown = (e) => {
52
- e.target.dataset.dismissible !== "false" && k(!0);
53
- }, o.addEventListener("dragend", () => D(!1)), o.addEventListener("mouseleave", () => {
54
- O() || D(!1);
55
- }), o.$$mousemove = () => D(!0), o.addEventListener("mouseenter", () => D(!0)), o.addEventListener("focus", R), o.addEventListener("blur", z), h((e) => A = e, o), f(o, "data-y-position", r), f(o, "data-x-position", i), d(o, c(g, {
56
- get each() {
57
- return a();
58
- },
59
- children: (t, r) => {
60
- let i = v(() => w().filter((e) => e.position === t.position));
61
- return c(n, {
62
- get icons() {
63
- return l.icons;
64
- },
65
- get index() {
66
- return r();
67
- },
68
- toast: t,
69
- get defaultRichColors() {
70
- return l.richColors;
71
- },
72
- get duration() {
73
- return l.toastOptions?.duration ?? l.duration;
74
- },
75
- get class() {
76
- return l.toastOptions?.class;
77
- },
78
- get descriptionClass() {
79
- return l.toastOptions?.descriptionClass;
80
- },
81
- get invert() {
82
- return l.invert ?? !1;
83
- },
84
- get visibleToasts() {
85
- return m.visibleToasts;
86
- },
87
- get closeButton() {
88
- return l.toastOptions?.closeButton ?? l.closeButton ?? !1;
89
- },
90
- get interacting() {
91
- return O();
92
- },
93
- position: e,
94
- get style() {
95
- return l.toastOptions?.style;
96
- },
97
- get unstyled() {
98
- return l.toastOptions?.unstyled;
99
- },
100
- get classes() {
101
- return l.toastOptions?.classes;
102
- },
103
- get cancelButtonStyle() {
104
- return l.toastOptions?.cancelButtonStyle;
105
- },
106
- get actionButtonStyle() {
107
- return l.toastOptions?.actionButtonStyle;
108
- },
109
- get closeButtonAriaLabel() {
110
- return l.toastOptions?.closeButtonAriaLabel;
111
- },
112
- removeToast: F,
113
- get toasts() {
114
- return a();
115
- },
116
- get heights() {
117
- return i();
118
- },
119
- setHeights: T,
120
- get expandByDefault() {
121
- return l.expand ?? !1;
122
- },
123
- get gap() {
124
- return m.gap;
125
- },
126
- get expanded() {
127
- return E();
128
- },
129
- get swipeDirections() {
130
- return l.swipeDirections;
131
- }
132
- });
133
- }
134
- })), u((e) => {
135
- var n = m.dir === "auto" ? t() : m.dir, r = l.class, i = N(), a = {
136
- "--front-toast-height": `${w()[0]?.height ?? 0}px`,
137
- "--width": "356px",
138
- "--gap": `${m.gap}px`,
139
- ...l.style,
140
- ...B()
141
- };
142
- return n !== e.e && f(o, "dir", e.e = n), r !== e.t && s(o, e.t = r), i !== e.a && f(o, "data-sonner-theme", e.a = i), e.o = p(o, a, e.o), e;
143
- }, {
144
- e: void 0,
145
- t: void 0,
146
- a: void 0,
147
- o: void 0
148
- }), o;
149
- }
150
- });
151
- }
152
- })), u(() => f(e, "aria-label", l.customAriaLabel ?? `${m.containerAriaLabel} ${C()}`)), e;
153
- } });
154
- };
155
- l([
156
- "mousemove",
157
- "pointerdown",
158
- "pointerup"
159
- ]);
160
- //#endregion
161
- export { C as Toaster };
162
-
163
- //# sourceMappingURL=Toaster.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toaster.js","names":["createMemo","createSignal","For","mergeProps","Show","Component","Toast","useTheme","useToasterKeyboard","useToastSubscription","assignOffset","getDocumentDirection","GAP","TOAST_WIDTH","VISIBLE_TOASTS_AMOUNT","HeightT","Position","ToasterProps","Portal","Toaster","props","console","warn","merged","position","hotkey","gap","visibleToasts","dir","containerAriaLabel","const","hotkeyLabel","join","replace","heights","setHeights","expanded","setExpanded","interacting","setInteracting","listRef","HTMLOListElement","lastFocusedElement","HTMLElement","isFocusWithin","actualTheme","theme","toasts","removeToast","filteredToasts","id","filter","t","toasterId","possiblePositions","Array","from","Set","concat","map","length","onFocus","e","FocusEvent","target","dataset","dismissible","relatedTarget","onBlur","currentTarget","contains","Node","focus","preventScroll","offsetVars","offset","mobileOffset","_$createComponent","children","_el$","_tmpl$","_$insert","each","pos","posY","posX","split","toastsForPos","when","_el$2","_tmpl$2","$$pointerup","$$pointerdown","addEventListener","$$mousemove","_$use","el","_$setAttribute","toast","index","heightsForPos","h","icons","defaultRichColors","richColors","duration","toastOptions","class","descriptionClass","invert","closeButton","style","unstyled","classes","cancelButtonStyle","actionButtonStyle","closeButtonAriaLabel","expandByDefault","expand","swipeDirections","_$effect","_p$","_v$","_v$2","_v$3","_v$4","height","_$className","a","o","_$style","undefined","customAriaLabel","_$delegateEvents"],"sources":["../../../../src/components/toast/components/Toaster.tsx"],"sourcesContent":["/**\n * components/Toaster.tsx\n * Root component that renders the toast container(s) into a portal.\n * Single responsibility: layout, positioning, and orchestrating sub-components/hooks.\n * All state logic is delegated to dedicated hooks.\n */\nimport {\n createMemo,\n createSignal,\n For,\n mergeProps,\n Show,\n type Component,\n} from \"solid-js\";\nimport { Toast } from \"./Toast\";\nimport { useTheme } from \"../hooks/useTheme\";\nimport { useToasterKeyboard } from \"../hooks/useToasterKeyboard\";\nimport { useToastSubscription } from \"../hooks/useToastSubscription\";\nimport { assignOffset, getDocumentDirection } from \"../utils\";\nimport { GAP, TOAST_WIDTH, VISIBLE_TOASTS_AMOUNT } from \"../constants\";\nimport type { HeightT, Position, ToasterProps } from \"../types\";\nimport { Portal } from \"solid-js/web\";\n\nexport const Toaster: Component<ToasterProps> = (props) => {\n console.warn(\n \"The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.\",\n );\n\n const merged = mergeProps(\n {\n position: \"bottom-right\",\n hotkey: [\"altKey\", \"KeyT\"] as string[],\n gap: GAP,\n visibleToasts: VISIBLE_TOASTS_AMOUNT,\n dir: getDocumentDirection(),\n containerAriaLabel: \"Notifications\",\n } as const,\n props,\n );\n\n const hotkeyLabel = () =>\n merged.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n\n // ─── Local state ──────────────────────────────────────────────────────────────\n const [heights, setHeights] = createSignal<HeightT[]>([]);\n const [expanded, setExpanded] = createSignal(false);\n const [interacting, setInteracting] = createSignal(false);\n\n let listRef: HTMLOListElement | undefined;\n let lastFocusedElement: HTMLElement | null = null;\n let isFocusWithin = false;\n\n // ─── Composed hooks ───────────────────────────────────────────────────────────\n const actualTheme = useTheme(() => props.theme ?? \"light\");\n const { toasts, removeToast } = useToastSubscription();\n\n useToasterKeyboard({\n hotkey: merged.hotkey,\n listRef: () => listRef,\n setExpanded,\n });\n\n // ─── Derived data ─────────────────────────────────────────────────────────────\n /** Toasts that belong to this specific Toaster instance (by id) */\n const filteredToasts = createMemo(() => {\n const id = props.id;\n return id\n ? toasts().filter((t) => t.toasterId === id)\n : toasts().filter((t) => !t.toasterId);\n });\n\n /** All unique positions used by active toasts (plus the default position) */\n const possiblePositions = createMemo(() =>\n Array.from(\n new Set(\n [merged.position].concat(\n filteredToasts()\n .filter((t) => t.position)\n .map((t) => t.position as Position),\n ),\n ),\n ),\n );\n\n // Collapse when only one toast remains\n createMemo(() => {\n if (toasts().length <= 1) setExpanded(false);\n });\n\n // ─── Focus management ─────────────────────────────────────────────────────────\n const onFocus = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n if (!isFocusWithin) {\n isFocusWithin = true;\n lastFocusedElement = e.relatedTarget as HTMLElement;\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n if (isFocusWithin && !currentTarget.contains(e.relatedTarget as Node)) {\n isFocusWithin = false;\n if (lastFocusedElement) {\n lastFocusedElement.focus({ preventScroll: true });\n lastFocusedElement = null;\n }\n }\n };\n\n // ─── CSS offset vars ──────────────────────────────────────────────────────────\n const offsetVars = createMemo(() =>\n assignOffset(props.offset, props.mobileOffset),\n );\n\n return (\n <Portal>\n <section\n aria-label={\n props.customAriaLabel ??\n `${merged.containerAriaLabel} ${hotkeyLabel()}`\n }\n tabIndex={-1}\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-atomic=\"false\"\n >\n <For each={possiblePositions()}>\n {(pos) => {\n const [posY, posX] = pos.split(\"-\");\n const toastsForPos = () =>\n filteredToasts().filter(\n (t) =>\n (!t.position && pos === merged.position) ||\n t.position === pos,\n );\n\n return (\n <Show when={toastsForPos().length > 0}>\n <ol\n ref={(el) => (listRef = el)}\n dir={\n merged.dir === \"auto\" ? getDocumentDirection() : merged.dir\n }\n tabIndex={-1}\n class={props.class}\n data-sonner-toaster\n data-sonner-theme={actualTheme()}\n data-y-position={posY}\n data-x-position={posX}\n style={{\n \"--front-toast-height\": `${heights()[0]?.height ?? 0}px`,\n \"--width\": `${TOAST_WIDTH}px`,\n \"--gap\": `${merged.gap}px`,\n ...(props.style as any),\n ...offsetVars(),\n }}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseEnter={() => setExpanded(true)}\n onMouseMove={() => setExpanded(true)}\n onMouseLeave={() => {\n if (!interacting()) setExpanded(false);\n }}\n onDragEnd={() => setExpanded(false)}\n onPointerDown={(e) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n setInteracting(true);\n }}\n onPointerUp={() => setInteracting(false)}\n >\n <For each={toastsForPos()}>\n {(toast, index) => {\n const heightsForPos = createMemo(() =>\n heights().filter((h) => h.position === toast.position),\n );\n\n return (\n <Toast\n icons={props.icons}\n index={index()}\n toast={toast}\n defaultRichColors={props.richColors}\n duration={\n props.toastOptions?.duration ?? props.duration\n }\n class={props.toastOptions?.class}\n descriptionClass={\n props.toastOptions?.descriptionClass\n }\n invert={props.invert ?? false}\n visibleToasts={merged.visibleToasts}\n closeButton={\n props.toastOptions?.closeButton ??\n props.closeButton ??\n false\n }\n interacting={interacting()}\n position={pos}\n style={props.toastOptions?.style}\n unstyled={props.toastOptions?.unstyled}\n classes={props.toastOptions?.classes}\n cancelButtonStyle={\n props.toastOptions?.cancelButtonStyle\n }\n actionButtonStyle={\n props.toastOptions?.actionButtonStyle\n }\n closeButtonAriaLabel={\n props.toastOptions?.closeButtonAriaLabel\n }\n removeToast={removeToast}\n toasts={toastsForPos()}\n heights={heightsForPos()}\n setHeights={setHeights}\n expandByDefault={props.expand ?? false}\n gap={merged.gap}\n expanded={expanded()}\n swipeDirections={props.swipeDirections}\n />\n );\n }}\n </For>\n </ol>\n </Show>\n );\n }}\n </For>\n </section>\n </Portal>\n );\n};\n"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /** How many toasts are visible at once (stacked) */
2
- export declare const VISIBLE_TOASTS_AMOUNT = 3;
3
- /** Default desktop viewport offset */
4
- export declare const VIEWPORT_OFFSET = "24px";
5
- /** Default mobile viewport offset */
6
- export declare const MOBILE_VIEWPORT_OFFSET = "16px";
7
- /** Auto-dismiss duration in milliseconds */
8
- export declare const TOAST_LIFETIME = 4000;
9
- /** Default toast width in pixels */
10
- export declare const TOAST_WIDTH = 356;
11
- /** Vertical gap between stacked toasts in pixels */
12
- export declare const GAP = 14;
13
- /** Minimum swipe distance (px) or velocity to dismiss */
14
- export declare const SWIPE_THRESHOLD = 45;
15
- /** Delay (ms) before removing a dismissed toast from the DOM */
16
- export declare const TIME_BEFORE_UNMOUNT = 200;
@@ -1,6 +0,0 @@
1
- //#region src/components/toast/constants.ts
2
- var e = "24px", t = "16px", n = 4e3;
3
- //#endregion
4
- export { t as MOBILE_VIEWPORT_OFFSET, n as TOAST_LIFETIME, e as VIEWPORT_OFFSET };
5
-
6
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../../../src/components/toast/constants.ts"],"sourcesContent":["/** How many toasts are visible at once (stacked) */\nexport const VISIBLE_TOASTS_AMOUNT = 3;\n\n/** Default desktop viewport offset */\nexport const VIEWPORT_OFFSET = \"24px\";\n\n/** Default mobile viewport offset */\nexport const MOBILE_VIEWPORT_OFFSET = \"16px\";\n\n/** Auto-dismiss duration in milliseconds */\nexport const TOAST_LIFETIME = 4000;\n\n/** Default toast width in pixels */\nexport const TOAST_WIDTH = 356;\n\n/** Vertical gap between stacked toasts in pixels */\nexport const GAP = 14;\n\n/** Minimum swipe distance (px) or velocity to dismiss */\nexport const SWIPE_THRESHOLD = 45;\n\n/** Delay (ms) before removing a dismissed toast from the DOM */\nexport const TIME_BEFORE_UNMOUNT = 200;\n"],"mappings":";AAIA,IAAa,IAAkB,QAGlB,IAAyB,QAGzB,IAAiB"}
@@ -1,23 +0,0 @@
1
- import { SwipeDirection, ToastT } from '../types';
2
- interface UseSwipeOptions {
3
- toastRef: () => HTMLLIElement | undefined;
4
- toast: ToastT;
5
- dismissible: boolean;
6
- position: string;
7
- swipeDirections?: SwipeDirection[];
8
- offset: () => number;
9
- deleteToast: () => void;
10
- }
11
- export declare function useSwipe(opts: UseSwipeOptions): {
12
- swiping: import('solid-js').Accessor<boolean>;
13
- swipeOut: import('solid-js').Accessor<boolean>;
14
- swipeOutDirection: import('solid-js').Accessor<"left" | "right" | "up" | "down" | null>;
15
- isSwiped: import('solid-js').Accessor<boolean>;
16
- offsetBeforeRemove: import('solid-js').Accessor<number>;
17
- setOffsetBeforeRemove: import('solid-js').Setter<number>;
18
- onPointerDown: (e: PointerEvent) => void;
19
- onPointerUp: () => void;
20
- onPointerMove: (e: PointerEvent) => void;
21
- onDragEnd: () => void;
22
- };
23
- export {};
@@ -1,59 +0,0 @@
1
- import { getDefaultSwipeDirections as e } from "../utils.js";
2
- import { createSignal as t } from "solid-js";
3
- //#region src/components/toast/hooks/useSwipe.ts
4
- function n(n) {
5
- let [r, i] = t(!1), [a, o] = t(!1), [s, c] = t(null), [l, u] = t(!1), [d, f] = t(0), p = null, m = null, h = null, g = () => n.toast.type === "loading";
6
- return {
7
- swiping: r,
8
- swipeOut: a,
9
- swipeOutDirection: s,
10
- isSwiped: l,
11
- offsetBeforeRemove: d,
12
- setOffsetBeforeRemove: f,
13
- onPointerDown: (e) => {
14
- e.button !== 2 && (g() || !n.dismissible || (h = /* @__PURE__ */ new Date(), f(n.offset()), e.target.setPointerCapture(e.pointerId), e.target.tagName !== "BUTTON" && (i(!0), m = {
15
- x: e.clientX,
16
- y: e.clientY
17
- })));
18
- },
19
- onPointerUp: () => {
20
- if (a() || !n.dismissible) return;
21
- m = null;
22
- let e = n.toastRef(), t = Number(e?.style.getPropertyValue("--swipe-amount-x").replace("px", "") || 0), r = Number(e?.style.getPropertyValue("--swipe-amount-y").replace("px", "") || 0), s = Date.now() - (h?.getTime() ?? 0), l = p === "x" ? t : r, d = Math.abs(l) / s;
23
- if (Math.abs(l) >= 45 || d > .11) {
24
- f(n.offset()), n.toast.onDismiss?.(n.toast), c(p === "x" ? t > 0 ? "right" : "left" : r > 0 ? "down" : "up"), n.deleteToast(), o(!0);
25
- return;
26
- }
27
- e?.style.setProperty("--swipe-amount-x", "0px"), e?.style.setProperty("--swipe-amount-y", "0px"), u(!1), i(!1), p = null;
28
- },
29
- onPointerMove: (t) => {
30
- if (!m || !n.dismissible || (window.getSelection()?.toString().length ?? 0) > 0) return;
31
- let r = t.clientY - m.y, i = t.clientX - m.x, a = n.swipeDirections ?? e(n.position);
32
- !p && (Math.abs(i) > 1 || Math.abs(r) > 1) && (p = Math.abs(i) > Math.abs(r) ? "x" : "y");
33
- let o = (e) => 1 / (1.5 + Math.abs(e) / 20), s = {
34
- x: 0,
35
- y: 0
36
- };
37
- if (p === "y" && (a.includes("top") || a.includes("bottom"))) if (a.includes("top") && r < 0 || a.includes("bottom") && r > 0) s.y = r;
38
- else {
39
- let e = r * o(r);
40
- s.y = Math.abs(e) < Math.abs(r) ? e : r;
41
- }
42
- else if (p === "x" && (a.includes("left") || a.includes("right"))) if (a.includes("left") && i < 0 || a.includes("right") && i > 0) s.x = i;
43
- else {
44
- let e = i * o(i);
45
- s.x = Math.abs(e) < Math.abs(i) ? e : i;
46
- }
47
- (Math.abs(s.x) > 0 || Math.abs(s.y) > 0) && u(!0);
48
- let c = n.toastRef();
49
- c?.style.setProperty("--swipe-amount-x", `${s.x}px`), c?.style.setProperty("--swipe-amount-y", `${s.y}px`);
50
- },
51
- onDragEnd: () => {
52
- i(!1), p = null, m = null;
53
- }
54
- };
55
- }
56
- //#endregion
57
- export { n as useSwipe };
58
-
59
- //# sourceMappingURL=useSwipe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSwipe.js","names":[],"sources":["../../../../src/components/toast/hooks/useSwipe.ts"],"sourcesContent":["import { createSignal } from \"solid-js\";\nimport { SWIPE_THRESHOLD } from \"../constants\";\nimport { getDefaultSwipeDirections } from \"../utils\";\nimport type { SwipeDirection, ToastT } from \"../types\";\n\ninterface UseSwipeOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: ToastT;\n dismissible: boolean;\n position: string;\n swipeDirections?: SwipeDirection[];\n offset: () => number;\n deleteToast: () => void;\n}\n\nexport function useSwipe(opts: UseSwipeOptions) {\n const [swiping, setSwiping] = createSignal(false);\n const [swipeOut, setSwipeOut] = createSignal(false);\n const [swipeOutDirection, setSwipeOutDirection] = createSignal<\n \"left\" | \"right\" | \"up\" | \"down\" | null\n >(null);\n const [isSwiped, setIsSwiped] = createSignal(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = createSignal(0);\n\n let swipeDirection: \"x\" | \"y\" | null = null;\n let pointerStart: { x: number; y: number } | null = null;\n let dragStartTime: Date | null = null;\n\n const disabled = () => opts.toast.type === \"loading\";\n\n const onPointerDown = (e: PointerEvent) => {\n if (e.button === 2) return;\n if (disabled() || !opts.dismissible) return;\n dragStartTime = new Date();\n setOffsetBeforeRemove(opts.offset());\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n if ((e.target as HTMLElement).tagName === \"BUTTON\") return;\n setSwiping(true);\n pointerStart = { x: e.clientX, y: e.clientY };\n };\n\n const onPointerUp = () => {\n if (swipeOut() || !opts.dismissible) return;\n pointerStart = null;\n\n const el = opts.toastRef();\n const amtX = Number(\n el?.style.getPropertyValue(\"--swipe-amount-x\").replace(\"px\", \"\") || 0,\n );\n const amtY = Number(\n el?.style.getPropertyValue(\"--swipe-amount-y\").replace(\"px\", \"\") || 0,\n );\n const timeTaken = Date.now() - (dragStartTime?.getTime() ?? 0);\n const swipeAmt = swipeDirection === \"x\" ? amtX : amtY;\n const velocity = Math.abs(swipeAmt) / timeTaken;\n\n if (Math.abs(swipeAmt) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(opts.offset());\n opts.toast.onDismiss?.(opts.toast);\n if (swipeDirection === \"x\") {\n setSwipeOutDirection(amtX > 0 ? \"right\" : \"left\");\n } else {\n setSwipeOutDirection(amtY > 0 ? \"down\" : \"up\");\n }\n opts.deleteToast();\n setSwipeOut(true);\n return;\n }\n\n el?.style.setProperty(\"--swipe-amount-x\", \"0px\");\n el?.style.setProperty(\"--swipe-amount-y\", \"0px\");\n setIsSwiped(false);\n setSwiping(false);\n swipeDirection = null;\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (!pointerStart || !opts.dismissible) return;\n if ((window.getSelection()?.toString().length ?? 0) > 0) return;\n\n const yDelta = e.clientY - pointerStart.y;\n const xDelta = e.clientX - pointerStart.x;\n const dirs =\n opts.swipeDirections ?? getDefaultSwipeDirections(opts.position);\n\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n swipeDirection = Math.abs(xDelta) > Math.abs(yDelta) ? \"x\" : \"y\";\n }\n\n const getDampen = (delta: number) => 1 / (1.5 + Math.abs(delta) / 20);\n\n const swipeAmt = { x: 0, y: 0 };\n\n if (\n swipeDirection === \"y\" &&\n (dirs.includes(\"top\") || dirs.includes(\"bottom\"))\n ) {\n if (\n (dirs.includes(\"top\") && yDelta < 0) ||\n (dirs.includes(\"bottom\") && yDelta > 0)\n ) {\n swipeAmt.y = yDelta;\n } else {\n const d = yDelta * getDampen(yDelta);\n swipeAmt.y = Math.abs(d) < Math.abs(yDelta) ? d : yDelta;\n }\n } else if (\n swipeDirection === \"x\" &&\n (dirs.includes(\"left\") || dirs.includes(\"right\"))\n ) {\n if (\n (dirs.includes(\"left\") && xDelta < 0) ||\n (dirs.includes(\"right\") && xDelta > 0)\n ) {\n swipeAmt.x = xDelta;\n } else {\n const d = xDelta * getDampen(xDelta);\n swipeAmt.x = Math.abs(d) < Math.abs(xDelta) ? d : xDelta;\n }\n }\n\n if (Math.abs(swipeAmt.x) > 0 || Math.abs(swipeAmt.y) > 0) setIsSwiped(true);\n\n const el = opts.toastRef();\n el?.style.setProperty(\"--swipe-amount-x\", `${swipeAmt.x}px`);\n el?.style.setProperty(\"--swipe-amount-y\", `${swipeAmt.y}px`);\n };\n\n const onDragEnd = () => {\n setSwiping(false);\n swipeDirection = null;\n pointerStart = null;\n };\n\n return {\n swiping,\n swipeOut,\n swipeOutDirection,\n isSwiped,\n offsetBeforeRemove,\n setOffsetBeforeRemove,\n onPointerDown,\n onPointerUp,\n onPointerMove,\n onDragEnd,\n };\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Theme } from '../types';
2
- export declare function useTheme(theme: () => Theme | "system"): import('solid-js').Accessor<Theme>;
@@ -1,22 +0,0 @@
1
- import { createEffect as e, createSignal as t, onCleanup as n } from "solid-js";
2
- //#region src/components/toast/hooks/useTheme.ts
3
- function r(r) {
4
- let i = () => typeof window < "u" && window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light", [a, o] = t(r() === "system" ? i() : r());
5
- return e(() => {
6
- if (r() !== "system") {
7
- o(r());
8
- return;
9
- }
10
- if (o(i()), typeof window > "u") return;
11
- let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => o(e.matches ? "dark" : "light");
12
- try {
13
- e.addEventListener("change", t), n(() => e.removeEventListener("change", t));
14
- } catch {
15
- e.addListener(t), n(() => e.removeListener(t));
16
- }
17
- }), a;
18
- }
19
- //#endregion
20
- export { r as useTheme };
21
-
22
- //# sourceMappingURL=useTheme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTheme.js","names":[],"sources":["../../../../src/components/toast/hooks/useTheme.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { Theme } from \"../types\";\n\nexport function useTheme(theme: () => Theme | \"system\") {\n const getSystemTheme = (): Theme =>\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n\n const [actualTheme, setActualTheme] = createSignal<Theme>(\n theme() !== \"system\" ? (theme() as Theme) : getSystemTheme(),\n );\n\n createEffect(() => {\n if (theme() !== \"system\") {\n setActualTheme(theme() as Theme);\n return;\n }\n\n setActualTheme(getSystemTheme());\n\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) =>\n setActualTheme(e.matches ? \"dark\" : \"light\");\n\n try {\n mq.addEventListener(\"change\", handler);\n onCleanup(() => mq.removeEventListener(\"change\", handler));\n } catch {\n // Safari < 14 fallback\n mq.addListener(handler);\n onCleanup(() => mq.removeListener(handler as any));\n }\n });\n\n return actualTheme;\n}\n"],"mappings":";;AAGA,SAAgB,EAAS,GAA+B;CACtD,IAAM,UACJ,OAAO,SAAW,OAClB,OAAO,aAAa,8BAA8B,CAAC,CAAC,UAChD,SACA,SAEA,CAAC,GAAa,KAAkB,EACpC,EAAM,MAAM,WAAgC,EAAe,IAAnC,EAAM,CAChC;CAyBA,OAvBA,QAAmB;EACjB,IAAI,EAAM,MAAM,UAAU;GACxB,EAAe,EAAM,CAAU;GAC/B;EACF;EAIA,IAFA,EAAe,EAAe,CAAC,GAE3B,OAAO,SAAW,KAAa;EACnC,IAAM,IAAK,OAAO,WAAW,8BAA8B,GACrD,KAAW,MACf,EAAe,EAAE,UAAU,SAAS,OAAO;EAE7C,IAAI;GAEF,AADA,EAAG,iBAAiB,UAAU,CAAO,GACrC,QAAgB,EAAG,oBAAoB,UAAU,CAAO,CAAC;EAC3D,QAAQ;GAGN,AADA,EAAG,YAAY,CAAO,GACtB,QAAgB,EAAG,eAAe,CAAc,CAAC;EACnD;CACF,CAAC,GAEM;AACT"}
@@ -1,11 +0,0 @@
1
- import { HeightT, ToastT } from '../types';
2
- interface UseToastHeightOptions {
3
- toastRef: () => HTMLLIElement | undefined;
4
- toast: () => ToastT;
5
- mounted: () => boolean;
6
- setHeights: (updater: (prev: HeightT[]) => HeightT[]) => void;
7
- }
8
- export declare function useToastHeight(opts: UseToastHeightOptions): {
9
- initialHeight: import('solid-js').Accessor<number>;
10
- };
11
- export {};
@@ -1,35 +0,0 @@
1
- import { createEffect as e, createSignal as t, onCleanup as n } from "solid-js";
2
- //#region src/components/toast/hooks/useToastHeight.ts
3
- function r(r) {
4
- let [i, a] = t(0), o = r.toast();
5
- return e(() => {
6
- let e = r.toastRef();
7
- if (!e) return;
8
- let t = e.getBoundingClientRect().height;
9
- a(t), r.setHeights((e) => [{
10
- toastId: o.id,
11
- height: t,
12
- position: o.position
13
- }, ...e]), n(() => r.setHeights((e) => e.filter((e) => e.toastId !== o.id)));
14
- }), e(() => {
15
- if (!r.mounted()) return;
16
- let e = r.toastRef();
17
- if (!e) return;
18
- o.title, o.description, o.jsx, o.action, o.cancel;
19
- let t = e.style.height;
20
- e.style.height = "auto";
21
- let n = e.getBoundingClientRect().height;
22
- e.style.height = t, a(n), r.setHeights((e) => e.find((e) => e.toastId === o.id) ? e.map((e) => e.toastId === o.id ? {
23
- ...e,
24
- height: n
25
- } : e) : [{
26
- toastId: o.id,
27
- height: n,
28
- position: o.position
29
- }, ...e]);
30
- }), { initialHeight: i };
31
- }
32
- //#endregion
33
- export { r as useToastHeight };
34
-
35
- //# sourceMappingURL=useToastHeight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToastHeight.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastHeight.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { HeightT, Position, ToastT } from \"../types\";\n\ninterface UseToastHeightOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: () => ToastT;\n mounted: () => boolean;\n setHeights: (updater: (prev: HeightT[]) => HeightT[]) => void;\n}\n\nexport function useToastHeight(opts: UseToastHeightOptions) {\n const [initialHeight, setInitialHeight] = createSignal(0);\n\n const toast = opts.toast();\n\n // Register height on first mount\n createEffect(() => {\n const el = opts.toastRef();\n if (!el) return;\n const h = el.getBoundingClientRect().height;\n setInitialHeight(h);\n opts.setHeights((prev) => [\n {\n toastId: toast.id,\n height: h,\n position: toast.position as Position,\n },\n ...prev,\n ]);\n onCleanup(() =>\n opts.setHeights((prev) => prev.filter((x) => x.toastId !== toast.id)),\n );\n });\n\n // Keep height in sync when content changes\n createEffect(() => {\n if (!opts.mounted()) return;\n const el = opts.toastRef();\n if (!el) return;\n\n // Read deps so effect re-runs on content change\n void toast.title;\n void toast.description;\n void toast.jsx;\n void toast.action;\n void toast.cancel;\n\n const orig = el.style.height;\n el.style.height = \"auto\";\n const newH = el.getBoundingClientRect().height;\n el.style.height = orig;\n setInitialHeight(newH);\n\n opts.setHeights((prev) => {\n const exists = prev.find((x) => x.toastId === toast.id);\n if (!exists) {\n return [\n {\n toastId: toast.id,\n height: newH,\n position: toast.position as Position,\n },\n ...prev,\n ];\n }\n return prev.map((x) =>\n x.toastId === toast.id ? { ...x, height: newH } : x,\n );\n });\n });\n\n return { initialHeight };\n}\n"],"mappings":";;AAUA,SAAgB,EAAe,GAA6B;CAC1D,IAAM,CAAC,GAAe,KAAoB,EAAa,CAAC,GAElD,IAAQ,EAAK,MAAM;CA0DzB,OAvDA,QAAmB;EACjB,IAAM,IAAK,EAAK,SAAS;EACzB,IAAI,CAAC,GAAI;EACT,IAAM,IAAI,EAAG,sBAAsB,CAAC,CAAC;EAUrC,AATA,EAAiB,CAAC,GAClB,EAAK,YAAY,MAAS,CACxB;GACE,SAAS,EAAM;GACf,QAAQ;GACR,UAAU,EAAM;EAClB,GACA,GAAG,CACL,CAAC,GACD,QACE,EAAK,YAAY,MAAS,EAAK,QAAQ,MAAM,EAAE,YAAY,EAAM,EAAE,CAAC,CACtE;CACF,CAAC,GAGD,QAAmB;EACjB,IAAI,CAAC,EAAK,QAAQ,GAAG;EACrB,IAAM,IAAK,EAAK,SAAS;EACzB,IAAI,CAAC,GAAI;EAOT,AAJA,EAAW,OACX,EAAW,aACX,EAAW,KACX,EAAW,QACX,EAAW;EAEX,IAAM,IAAO,EAAG,MAAM;EACtB,EAAG,MAAM,SAAS;EAClB,IAAM,IAAO,EAAG,sBAAsB,CAAC,CAAC;EAIxC,AAHA,EAAG,MAAM,SAAS,GAClB,EAAiB,CAAI,GAErB,EAAK,YAAY,MACA,EAAK,MAAM,MAAM,EAAE,YAAY,EAAM,EAC/C,IAUE,EAAK,KAAK,MACf,EAAE,YAAY,EAAM,KAAK;GAAE,GAAG;GAAG,QAAQ;EAAK,IAAI,CACpD,IAXS,CACL;GACE,SAAS,EAAM;GACf,QAAQ;GACR,UAAU,EAAM;EAClB,GACA,GAAG,CACL,CAKH;CACH,CAAC,GAEM,EAAE,iBAAc;AACzB"}
@@ -1,5 +0,0 @@
1
- import { ToastT } from '../types';
2
- export declare function useToastSubscription(): {
3
- toasts: import('solid-js').Accessor<ToastT[]>;
4
- removeToast: (toast: ToastT) => void;
5
- };
@@ -1,38 +0,0 @@
1
- import { ToastState as e } from "../state.js";
2
- import { createSignal as t, onCleanup as n, onMount as r } from "solid-js";
3
- //#region src/components/toast/hooks/useToastSubscription.ts
4
- function i() {
5
- let [i, a] = t([]);
6
- return r(() => {
7
- let t = e.subscribe((e) => {
8
- if (e.dismiss) {
9
- a((t) => t.map((t) => t.id === e.id ? {
10
- ...t,
11
- delete: !0
12
- } : t));
13
- return;
14
- }
15
- a((t) => {
16
- let n = t.findIndex((t) => t.id === e.id);
17
- return n === -1 ? [e, ...t] : [
18
- ...t.slice(0, n),
19
- {
20
- ...t[n],
21
- ...e
22
- },
23
- ...t.slice(n + 1)
24
- ];
25
- });
26
- });
27
- n(t);
28
- }), {
29
- toasts: i,
30
- removeToast: (t) => {
31
- t.delete || e.dismiss(t.id), a((e) => e.filter((e) => e.id !== t.id));
32
- }
33
- };
34
- }
35
- //#endregion
36
- export { i as useToastSubscription };
37
-
38
- //# sourceMappingURL=useToastSubscription.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToastSubscription.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastSubscription.ts"],"sourcesContent":["/**\n * hooks/useToastSubscription.ts\n * Subscribes to the global ToastState observable and maintains a local reactive\n * list of toasts for the Toaster component.\n * Single responsibility: state synchronization between the observer and Solid signals.\n */\nimport { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"../state\";\nimport type { ToastT, ToastToDismiss } from \"../types\";\n\nexport function useToastSubscription() {\n const [toasts, setToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((incoming) => {\n if ((incoming as ToastToDismiss).dismiss) {\n // Mark as deleted — the Toast component will animate out\n setToasts((prev) =>\n prev.map((t) => (t.id === incoming.id ? { ...t, delete: true } : t)),\n );\n return;\n }\n\n setToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === incoming.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(incoming as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [incoming as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n const removeToast = (toast: ToastT) => {\n if (!toast.delete) ToastState.dismiss(toast.id);\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\n };\n\n return { toasts, removeToast };\n}\n"],"mappings":";;;AAUA,SAAgB,IAAuB;CACrC,IAAM,CAAC,GAAQ,KAAa,EAAuB,CAAC,CAAC;CAiCrD,OA/BA,QAAc;EACZ,IAAM,IAAc,EAAW,WAAW,MAAa;GACrD,IAAK,EAA4B,SAAS;IAExC,GAAW,MACT,EAAK,KAAK,MAAO,EAAE,OAAO,EAAS,KAAK;KAAE,GAAG;KAAG,QAAQ;IAAK,IAAI,CAAE,CACrE;IACA;GACF;GAEA,GAAW,MAAS;IAClB,IAAM,IAAM,EAAK,WAAW,MAAM,EAAE,OAAO,EAAS,EAAE;IAQtD,OAPI,MAAQ,KAOL,CAAC,GAAoB,GAAG,CAAI,IAN1B;KACL,GAAG,EAAK,MAAM,GAAG,CAAG;KACpB;MAAE,GAAG,EAAK;MAAM,GAAI;KAAoB;KACxC,GAAG,EAAK,MAAM,IAAM,CAAC;IACvB;GAGJ,CAAC;EACH,CAAC;EAED,EAAU,CAAW;CACvB,CAAC,GAOM;EAAE;EAAQ,cALI,MAAkB;GAErC,AADK,EAAM,UAAQ,EAAW,QAAQ,EAAM,EAAE,GAC9C,GAAW,MAAS,EAAK,QAAQ,MAAM,EAAE,OAAO,EAAM,EAAE,CAAC;EAC3D;CAE6B;AAC/B"}
@@ -1,11 +0,0 @@
1
- import { ToastT } from '../types';
2
- interface UseToastTimerOptions {
3
- toast: ToastT;
4
- duration: number;
5
- expanded: () => boolean;
6
- interacting: () => boolean;
7
- isDocumentHidden: () => boolean;
8
- deleteToast: () => void;
9
- }
10
- export declare function useToastTimer(opts: UseToastTimerOptions): void;
11
- export {};
@@ -1,22 +0,0 @@
1
- import { createEffect as e, onCleanup as t } from "solid-js";
2
- //#region src/components/toast/hooks/useToastTimer.ts
3
- function n(n) {
4
- let r = n.toast.duration ?? n.duration, i = 0, a = 0, o, s = () => n.toast.promise && n.toast.type === "loading" || n.toast.duration === Infinity || n.toast.type === "loading", c = () => {
5
- if (a < i) {
6
- let e = Date.now() - i;
7
- r = Math.max(0, r - e);
8
- }
9
- a = Date.now();
10
- }, l = () => {
11
- r !== Infinity && (clearTimeout(o), i = Date.now(), o = setTimeout(() => {
12
- n.toast.onAutoClose?.(n.toast), n.deleteToast();
13
- }, r));
14
- };
15
- e(() => {
16
- s() || (n.expanded() || n.interacting() || n.isDocumentHidden() ? c() : l(), t(() => clearTimeout(o)));
17
- });
18
- }
19
- //#endregion
20
- export { n as useToastTimer };
21
-
22
- //# sourceMappingURL=useToastTimer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToastTimer.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastTimer.ts"],"sourcesContent":["/**\n * hooks/useToastTimer.ts\n * Manages the auto-dismiss countdown for a single toast.\n * Single responsibility: start, pause, and resume a timer; call deleteToast when done.\n */\nimport { createEffect, onCleanup } from \"solid-js\";\nimport type { ToastT } from \"../types\";\n\ninterface UseToastTimerOptions {\n toast: ToastT;\n duration: number;\n expanded: () => boolean;\n interacting: () => boolean;\n isDocumentHidden: () => boolean;\n deleteToast: () => void;\n}\n\nexport function useToastTimer(opts: UseToastTimerOptions) {\n let remainingTime = opts.toast.duration ?? opts.duration;\n let closeTimerStart = 0;\n let lastPauseTime = 0;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n const shouldSkip = () =>\n (opts.toast.promise && opts.toast.type === \"loading\") ||\n opts.toast.duration === Infinity ||\n opts.toast.type === \"loading\";\n\n const pauseTimer = () => {\n if (lastPauseTime < closeTimerStart) {\n const elapsed = Date.now() - closeTimerStart;\n remainingTime = Math.max(0, remainingTime - elapsed);\n }\n lastPauseTime = Date.now();\n };\n\n const startTimer = () => {\n if (remainingTime === Infinity) return;\n clearTimeout(timeoutId);\n closeTimerStart = Date.now();\n timeoutId = setTimeout(() => {\n opts.toast.onAutoClose?.(opts.toast);\n opts.deleteToast();\n }, remainingTime);\n };\n\n createEffect(() => {\n if (shouldSkip()) return;\n if (opts.expanded() || opts.interacting() || opts.isDocumentHidden()) {\n pauseTimer();\n } else {\n startTimer();\n }\n onCleanup(() => clearTimeout(timeoutId));\n });\n}\n"],"mappings":";;AAiBA,SAAgB,EAAc,GAA4B;CACxD,IAAI,IAAgB,EAAK,MAAM,YAAY,EAAK,UAC5C,IAAkB,GAClB,IAAgB,GAChB,GAEE,UACH,EAAK,MAAM,WAAW,EAAK,MAAM,SAAS,aAC3C,EAAK,MAAM,aAAa,YACxB,EAAK,MAAM,SAAS,WAEhB,UAAmB;EACvB,IAAI,IAAgB,GAAiB;GACnC,IAAM,IAAU,KAAK,IAAI,IAAI;GAC7B,IAAgB,KAAK,IAAI,GAAG,IAAgB,CAAO;EACrD;EACA,IAAgB,KAAK,IAAI;CAC3B,GAEM,UAAmB;EACnB,MAAkB,aACtB,aAAa,CAAS,GACtB,IAAkB,KAAK,IAAI,GAC3B,IAAY,iBAAiB;GAE3B,AADA,EAAK,MAAM,cAAc,EAAK,KAAK,GACnC,EAAK,YAAY;EACnB,GAAG,CAAa;CAClB;CAEA,QAAmB;EACb,EAAW,MACX,EAAK,SAAS,KAAK,EAAK,YAAY,KAAK,EAAK,iBAAiB,IACjE,EAAW,IAEX,EAAW,GAEb,QAAgB,aAAa,CAAS,CAAC;CACzC,CAAC;AACH"}
@@ -1,7 +0,0 @@
1
- interface UseToasterKeyboardOptions {
2
- hotkey: string[];
3
- listRef: () => HTMLOListElement | undefined;
4
- setExpanded: (v: boolean) => void;
5
- }
6
- export declare function useToasterKeyboard(opts: UseToasterKeyboardOptions): void;
7
- export {};
@@ -1,14 +0,0 @@
1
- import { onCleanup as e, onMount as t } from "solid-js";
2
- //#region src/components/toast/hooks/useToasterKeyboard.ts
3
- function n(n) {
4
- t(() => {
5
- let t = (e) => {
6
- n.hotkey.length > 0 && n.hotkey.every((t) => e[t] || e.code === t) && (n.setExpanded(!0), n.listRef()?.focus()), e.code === "Escape" && (document.activeElement === n.listRef() || n.listRef()?.contains(document.activeElement)) && n.setExpanded(!1);
7
- };
8
- document.addEventListener("keydown", t), e(() => document.removeEventListener("keydown", t));
9
- });
10
- }
11
- //#endregion
12
- export { n as useToasterKeyboard };
13
-
14
- //# sourceMappingURL=useToasterKeyboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToasterKeyboard.js","names":[],"sources":["../../../../src/components/toast/hooks/useToasterKeyboard.ts"],"sourcesContent":["/**\n * hooks/useToasterKeyboard.ts\n * Handles keyboard interactions for the Toaster:\n * - Custom hotkey → expand the toast list and focus it\n * - Escape → collapse the toast list\n * Single responsibility: keyboard event binding only.\n */\nimport { onCleanup, onMount } from \"solid-js\";\n\ninterface UseToasterKeyboardOptions {\n hotkey: string[];\n listRef: () => HTMLOListElement | undefined;\n setExpanded: (v: boolean) => void;\n}\n\nexport function useToasterKeyboard(opts: UseToasterKeyboardOptions) {\n onMount(() => {\n const handler = (e: KeyboardEvent) => {\n const hotkeyPressed =\n opts.hotkey.length > 0 &&\n opts.hotkey.every((k) => (e as any)[k] || e.code === k);\n\n if (hotkeyPressed) {\n opts.setExpanded(true);\n opts.listRef()?.focus();\n }\n\n if (\n e.code === \"Escape\" &&\n (document.activeElement === opts.listRef() ||\n opts.listRef()?.contains(document.activeElement))\n ) {\n opts.setExpanded(false);\n }\n };\n\n document.addEventListener(\"keydown\", handler);\n onCleanup(() => document.removeEventListener(\"keydown\", handler));\n });\n}\n"],"mappings":";;AAeA,SAAgB,EAAmB,GAAiC;CAClE,QAAc;EACZ,IAAM,KAAW,MAAqB;GAUpC,AARE,EAAK,OAAO,SAAS,KACrB,EAAK,OAAO,OAAO,MAAO,EAAU,MAAM,EAAE,SAAS,CAAC,MAGtD,EAAK,YAAY,EAAI,GACrB,EAAK,QAAQ,CAAC,EAAE,MAAM,IAItB,EAAE,SAAS,aACV,SAAS,kBAAkB,EAAK,QAAQ,KACvC,EAAK,QAAQ,CAAC,EAAE,SAAS,SAAS,aAAa,MAEjD,EAAK,YAAY,EAAK;EAE1B;EAGA,AADA,SAAS,iBAAiB,WAAW,CAAO,GAC5C,QAAgB,SAAS,oBAAoB,WAAW,CAAO,CAAC;CAClE,CAAC;AACH"}
@@ -1,13 +0,0 @@
1
- import { ToastT } from './types';
2
- /**
3
- * Returns a reactive boolean that tracks whether the browser tab is hidden.
4
- * Used to pause auto-dismiss timers while the user has switched tabs.
5
- */
6
- export declare function useIsDocumentHidden(): import('solid-js').Accessor<boolean>;
7
- /**
8
- * Subscribes to the global ToastState and returns the list of currently visible
9
- * toasts as a SolidJS signal. Useful for building custom toast UIs.
10
- */
11
- export declare function useSonner(): {
12
- toasts: import('solid-js').Accessor<ToastT[]>;
13
- };
@@ -1,37 +0,0 @@
1
- import { ToastState as e } from "./state.js";
2
- import { createSignal as t, onCleanup as n, onMount as r } from "solid-js";
3
- //#region src/components/toast/hooks.ts
4
- function i() {
5
- let [e, i] = t(document.hidden);
6
- return r(() => {
7
- let e = () => i(document.hidden);
8
- document.addEventListener("visibilitychange", e), n(() => document.removeEventListener("visibilitychange", e));
9
- }), e;
10
- }
11
- function a() {
12
- let [i, a] = t([]);
13
- return r(() => {
14
- let t = e.subscribe((e) => {
15
- if (e.dismiss) {
16
- a((t) => t.filter((t) => t.id !== e.id));
17
- return;
18
- }
19
- a((t) => {
20
- let n = t.findIndex((t) => t.id === e.id);
21
- return n === -1 ? [e, ...t] : [
22
- ...t.slice(0, n),
23
- {
24
- ...t[n],
25
- ...e
26
- },
27
- ...t.slice(n + 1)
28
- ];
29
- });
30
- });
31
- n(t);
32
- }), { toasts: i };
33
- }
34
- //#endregion
35
- export { i as useIsDocumentHidden, a as useSonner };
36
-
37
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","names":[],"sources":["../../../src/components/toast/hooks.ts"],"sourcesContent":["import { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"./state\";\nimport type { ToastT, ToastToDismiss } from \"./types\";\n\n// ─── Document visibility ───────────────────────────────────────────────────────\n/**\n * Returns a reactive boolean that tracks whether the browser tab is hidden.\n * Used to pause auto-dismiss timers while the user has switched tabs.\n */\nexport function useIsDocumentHidden() {\n const [isHidden, setIsHidden] = createSignal(document.hidden);\n\n onMount(() => {\n const handler = () => setIsHidden(document.hidden);\n document.addEventListener(\"visibilitychange\", handler);\n onCleanup(() => document.removeEventListener(\"visibilitychange\", handler));\n });\n\n return isHidden;\n}\n\n// ─── Active toasts (for external consumers) ────────────────────────────────────\n/**\n * Subscribes to the global ToastState and returns the list of currently visible\n * toasts as a SolidJS signal. Useful for building custom toast UIs.\n */\nexport function useSonner() {\n const [activeToasts, setActiveToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((toast) => {\n if ((toast as ToastToDismiss).dismiss) {\n setActiveToasts((prev) => prev.filter((t) => t.id !== toast.id));\n return;\n }\n\n setActiveToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === toast.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(toast as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [toast as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n return { toasts: activeToasts };\n}\n"],"mappings":";;;AASA,SAAgB,IAAsB;CACpC,IAAM,CAAC,GAAU,KAAe,EAAa,SAAS,MAAM;CAQ5D,OANA,QAAc;EACZ,IAAM,UAAgB,EAAY,SAAS,MAAM;EAEjD,AADA,SAAS,iBAAiB,oBAAoB,CAAO,GACrD,QAAgB,SAAS,oBAAoB,oBAAoB,CAAO,CAAC;CAC3E,CAAC,GAEM;AACT;AAOA,SAAgB,IAAY;CAC1B,IAAM,CAAC,GAAc,KAAmB,EAAuB,CAAC,CAAC;CAyBjE,OAvBA,QAAc;EACZ,IAAM,IAAc,EAAW,WAAW,MAAU;GAClD,IAAK,EAAyB,SAAS;IACrC,GAAiB,MAAS,EAAK,QAAQ,MAAM,EAAE,OAAO,EAAM,EAAE,CAAC;IAC/D;GACF;GAEA,GAAiB,MAAS;IACxB,IAAM,IAAM,EAAK,WAAW,MAAM,EAAE,OAAO,EAAM,EAAE;IAQnD,OAPI,MAAQ,KAOL,CAAC,GAAiB,GAAG,CAAI,IANvB;KACL,GAAG,EAAK,MAAM,GAAG,CAAG;KACpB;MAAE,GAAG,EAAK;MAAM,GAAI;KAAiB;KACrC,GAAG,EAAK,MAAM,IAAM,CAAC;IACvB;GAGJ,CAAC;EACH,CAAC;EAED,EAAU,CAAW;CACvB,CAAC,GAEM,EAAE,QAAQ,EAAa;AAChC"}