@cognitiv/components-web 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/README.md +266 -0
  2. package/dist/components/accordion/accordion.d.ts +30 -0
  3. package/dist/components/accordion/accordion.js +191 -0
  4. package/dist/components/accordion/index.d.ts +25 -0
  5. package/dist/components/accordion/index.js +18 -0
  6. package/dist/components/accordion/styles.d.ts +53 -0
  7. package/dist/components/accordion/styles.js +27 -0
  8. package/dist/components/alert/alert.d.ts +15 -0
  9. package/dist/components/alert/alert.js +152 -0
  10. package/dist/components/alert/index.d.ts +21 -0
  11. package/dist/components/alert/index.js +16 -0
  12. package/dist/components/alert/styles.d.ts +75 -0
  13. package/dist/components/alert/styles.js +36 -0
  14. package/dist/components/alert-dialog/alert-dialog.d.ts +65 -0
  15. package/dist/components/alert-dialog/alert-dialog.js +309 -0
  16. package/dist/components/alert-dialog/index.d.ts +33 -0
  17. package/dist/components/alert-dialog/index.js +22 -0
  18. package/dist/components/alert-dialog/styles.d.ts +174 -0
  19. package/dist/components/alert-dialog/styles.js +71 -0
  20. package/dist/components/autocomplete/autocomplete.d.ts +31 -0
  21. package/dist/components/autocomplete/autocomplete.js +241 -0
  22. package/dist/components/autocomplete/index.d.ts +25 -0
  23. package/dist/components/autocomplete/index.js +18 -0
  24. package/dist/components/autocomplete/styles.d.ts +75 -0
  25. package/dist/components/autocomplete/styles.js +37 -0
  26. package/dist/components/avatar/avatar.d.ts +15 -0
  27. package/dist/components/avatar/avatar.js +93 -0
  28. package/dist/components/avatar/index.d.ts +17 -0
  29. package/dist/components/avatar/index.js +14 -0
  30. package/dist/components/avatar/styles.d.ts +120 -0
  31. package/dist/components/avatar/styles.js +52 -0
  32. package/dist/components/badge/badge.d.ts +19 -0
  33. package/dist/components/badge/badge.js +87 -0
  34. package/dist/components/badge/index.d.ts +17 -0
  35. package/dist/components/badge/index.js +14 -0
  36. package/dist/components/badge/styles.d.ts +177 -0
  37. package/dist/components/badge/styles.js +73 -0
  38. package/dist/components/breadcrumbs/breadcrumbs.d.ts +14 -0
  39. package/dist/components/breadcrumbs/breadcrumbs.js +84 -0
  40. package/dist/components/breadcrumbs/index.d.ts +15 -0
  41. package/dist/components/breadcrumbs/index.js +13 -0
  42. package/dist/components/breadcrumbs/styles.d.ts +45 -0
  43. package/dist/components/breadcrumbs/styles.js +13 -0
  44. package/dist/components/button/button.d.ts +10 -0
  45. package/dist/components/button/button.js +49 -0
  46. package/dist/components/button/index.d.ts +15 -0
  47. package/dist/components/button/index.js +13 -0
  48. package/dist/components/button/styles.d.ts +69 -0
  49. package/dist/components/button/styles.js +37 -0
  50. package/dist/components/button-group/button-group.d.ts +26 -0
  51. package/dist/components/button-group/button-group.js +82 -0
  52. package/dist/components/button-group/index.d.ts +16 -0
  53. package/dist/components/button-group/index.js +14 -0
  54. package/dist/components/button-group/styles.d.ts +57 -0
  55. package/dist/components/button-group/styles.js +31 -0
  56. package/dist/components/calendar/calendar.d.ts +71 -0
  57. package/dist/components/calendar/calendar.js +274 -0
  58. package/dist/components/calendar/index.d.ts +91 -0
  59. package/dist/components/calendar/index.js +29 -0
  60. package/dist/components/calendar/styles.d.ts +78 -0
  61. package/dist/components/calendar/styles.js +35 -0
  62. package/dist/components/calendar-year-picker/calendar-year-picker.d.ts +61 -0
  63. package/dist/components/calendar-year-picker/calendar-year-picker.js +407 -0
  64. package/dist/components/calendar-year-picker/index.d.ts +43 -0
  65. package/dist/components/calendar-year-picker/index.js +18 -0
  66. package/dist/components/calendar-year-picker/styles.d.ts +51 -0
  67. package/dist/components/calendar-year-picker/styles.js +14 -0
  68. package/dist/components/calendar-year-picker/year-picker-context.d.ts +28 -0
  69. package/dist/components/calendar-year-picker/year-picker-context.js +39 -0
  70. package/dist/components/card/card.d.ts +22 -0
  71. package/dist/components/card/card.js +141 -0
  72. package/dist/components/card/index.d.ts +23 -0
  73. package/dist/components/card/index.js +17 -0
  74. package/dist/components/card/styles.d.ts +70 -0
  75. package/dist/components/card/styles.js +34 -0
  76. package/dist/components/checkbox/checkbox.d.ts +22 -0
  77. package/dist/components/checkbox/checkbox.js +124 -0
  78. package/dist/components/checkbox/index.d.ts +19 -0
  79. package/dist/components/checkbox/index.js +15 -0
  80. package/dist/components/checkbox/styles.d.ts +45 -0
  81. package/dist/components/checkbox/styles.js +26 -0
  82. package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
  83. package/dist/components/checkbox-group/checkbox-group.js +33 -0
  84. package/dist/components/checkbox-group/index.d.ts +3 -0
  85. package/dist/components/checkbox-group/index.js +3 -0
  86. package/dist/components/checkbox-group/styles.d.ts +18 -0
  87. package/dist/components/checkbox-group/styles.js +17 -0
  88. package/dist/components/chip/chip.d.ts +14 -0
  89. package/dist/components/chip/chip.js +67 -0
  90. package/dist/components/chip/index.d.ts +15 -0
  91. package/dist/components/chip/index.js +13 -0
  92. package/dist/components/chip/styles.d.ts +141 -0
  93. package/dist/components/chip/styles.js +59 -0
  94. package/dist/components/close-button/close-button.d.ts +8 -0
  95. package/dist/components/close-button/close-button.js +33 -0
  96. package/dist/components/close-button/index.d.ts +13 -0
  97. package/dist/components/close-button/index.js +12 -0
  98. package/dist/components/close-button/styles.d.ts +15 -0
  99. package/dist/components/close-button/styles.js +16 -0
  100. package/dist/components/color-area/color-area.d.ts +11 -0
  101. package/dist/components/color-area/color-area.js +70 -0
  102. package/dist/components/color-area/index.d.ts +15 -0
  103. package/dist/components/color-area/index.js +13 -0
  104. package/dist/components/color-area/styles.d.ts +33 -0
  105. package/dist/components/color-area/styles.js +22 -0
  106. package/dist/components/color-field/color-field.d.ts +9 -0
  107. package/dist/components/color-field/color-field.js +29 -0
  108. package/dist/components/color-field/index.d.ts +22 -0
  109. package/dist/components/color-field/index.js +18 -0
  110. package/dist/components/color-field/styles.d.ts +18 -0
  111. package/dist/components/color-field/styles.js +17 -0
  112. package/dist/components/color-input-group/color-input-group.d.ts +19 -0
  113. package/dist/components/color-input-group/color-input-group.js +98 -0
  114. package/dist/components/color-input-group/index.d.ts +19 -0
  115. package/dist/components/color-input-group/index.js +15 -0
  116. package/dist/components/color-input-group/styles.d.ts +63 -0
  117. package/dist/components/color-input-group/styles.js +33 -0
  118. package/dist/components/color-picker/color-picker.d.ts +21 -0
  119. package/dist/components/color-picker/color-picker.js +86 -0
  120. package/dist/components/color-picker/index.d.ts +17 -0
  121. package/dist/components/color-picker/index.js +14 -0
  122. package/dist/components/color-picker/styles.d.ts +39 -0
  123. package/dist/components/color-picker/styles.js +12 -0
  124. package/dist/components/color-slider/color-slider.d.ts +50 -0
  125. package/dist/components/color-slider/color-slider.js +205 -0
  126. package/dist/components/color-slider/index.d.ts +19 -0
  127. package/dist/components/color-slider/index.js +15 -0
  128. package/dist/components/color-slider/styles.d.ts +45 -0
  129. package/dist/components/color-slider/styles.js +13 -0
  130. package/dist/components/color-swatch/color-swatch.d.ts +8 -0
  131. package/dist/components/color-swatch/color-swatch.js +31 -0
  132. package/dist/components/color-swatch/index.d.ts +13 -0
  133. package/dist/components/color-swatch/index.js +12 -0
  134. package/dist/components/color-swatch/styles.d.ts +39 -0
  135. package/dist/components/color-swatch/styles.js +25 -0
  136. package/dist/components/color-swatch-picker/color-swatch-picker.d.ts +20 -0
  137. package/dist/components/color-swatch-picker/color-swatch-picker.js +149 -0
  138. package/dist/components/color-swatch-picker/index.d.ts +19 -0
  139. package/dist/components/color-swatch-picker/index.js +15 -0
  140. package/dist/components/color-swatch-picker/styles.d.ts +120 -0
  141. package/dist/components/color-swatch-picker/styles.js +53 -0
  142. package/dist/components/combo-box/combo-box.d.ts +34 -0
  143. package/dist/components/combo-box/combo-box.js +116 -0
  144. package/dist/components/combo-box/index.d.ts +20 -0
  145. package/dist/components/combo-box/index.js +16 -0
  146. package/dist/components/combo-box/styles.d.ts +42 -0
  147. package/dist/components/combo-box/styles.js +25 -0
  148. package/dist/components/date-field/date-field.d.ts +9 -0
  149. package/dist/components/date-field/date-field.js +29 -0
  150. package/dist/components/date-field/index.d.ts +26 -0
  151. package/dist/components/date-field/index.js +20 -0
  152. package/dist/components/date-field/styles.d.ts +18 -0
  153. package/dist/components/date-field/styles.js +17 -0
  154. package/dist/components/date-input-group/date-input-group.d.ts +25 -0
  155. package/dist/components/date-input-group/date-input-group.js +146 -0
  156. package/dist/components/date-input-group/index.d.ts +23 -0
  157. package/dist/components/date-input-group/index.js +17 -0
  158. package/dist/components/date-input-group/styles.d.ts +69 -0
  159. package/dist/components/date-input-group/styles.js +35 -0
  160. package/dist/components/date-picker/date-picker.d.ts +30 -0
  161. package/dist/components/date-picker/date-picker.js +151 -0
  162. package/dist/components/date-picker/index.d.ts +31 -0
  163. package/dist/components/date-picker/index.js +15 -0
  164. package/dist/components/date-picker/styles.d.ts +45 -0
  165. package/dist/components/date-picker/styles.js +13 -0
  166. package/dist/components/date-range-picker/date-range-picker.d.ts +36 -0
  167. package/dist/components/date-range-picker/date-range-picker.js +173 -0
  168. package/dist/components/date-range-picker/index.d.ts +36 -0
  169. package/dist/components/date-range-picker/index.js +16 -0
  170. package/dist/components/date-range-picker/styles.d.ts +51 -0
  171. package/dist/components/date-range-picker/styles.js +14 -0
  172. package/dist/components/description/description.d.ts +9 -0
  173. package/dist/components/description/description.js +22 -0
  174. package/dist/components/description/index.d.ts +13 -0
  175. package/dist/components/description/index.js +12 -0
  176. package/dist/components/description/styles.d.ts +3 -0
  177. package/dist/components/description/styles.js +8 -0
  178. package/dist/components/disclosure/disclosure.d.ts +27 -0
  179. package/dist/components/disclosure/disclosure.js +157 -0
  180. package/dist/components/disclosure/index.d.ts +23 -0
  181. package/dist/components/disclosure/index.js +17 -0
  182. package/dist/components/disclosure/styles.d.ts +29 -0
  183. package/dist/components/disclosure/styles.js +20 -0
  184. package/dist/components/disclosure-group/disclosure-group.d.ts +8 -0
  185. package/dist/components/disclosure-group/disclosure-group.js +35 -0
  186. package/dist/components/disclosure-group/index.d.ts +15 -0
  187. package/dist/components/disclosure-group/index.js +13 -0
  188. package/dist/components/disclosure-group/styles.d.ts +9 -0
  189. package/dist/components/disclosure-group/styles.js +12 -0
  190. package/dist/components/disclosure-group/use-disclosure-group-navigation.d.ts +14 -0
  191. package/dist/components/disclosure-group/use-disclosure-group-navigation.js +51 -0
  192. package/dist/components/drawer/drawer.d.ts +84 -0
  193. package/dist/components/drawer/drawer.js +439 -0
  194. package/dist/components/drawer/index.d.ts +69 -0
  195. package/dist/components/drawer/index.js +22 -0
  196. package/dist/components/drawer/styles.d.ts +126 -0
  197. package/dist/components/drawer/styles.js +54 -0
  198. package/dist/components/dropdown/dropdown.d.ts +38 -0
  199. package/dist/components/dropdown/dropdown.js +156 -0
  200. package/dist/components/dropdown/index.d.ts +29 -0
  201. package/dist/components/dropdown/index.js +20 -0
  202. package/dist/components/dropdown/styles.d.ts +45 -0
  203. package/dist/components/dropdown/styles.js +13 -0
  204. package/dist/components/empty-state/empty-state.d.ts +7 -0
  205. package/dist/components/empty-state/empty-state.js +20 -0
  206. package/dist/components/empty-state/index.d.ts +13 -0
  207. package/dist/components/empty-state/index.js +12 -0
  208. package/dist/components/empty-state/styles.d.ts +3 -0
  209. package/dist/components/empty-state/styles.js +8 -0
  210. package/dist/components/error-message/error-message.d.ts +9 -0
  211. package/dist/components/error-message/error-message.js +22 -0
  212. package/dist/components/error-message/index.d.ts +13 -0
  213. package/dist/components/error-message/index.js +12 -0
  214. package/dist/components/error-message/styles.d.ts +3 -0
  215. package/dist/components/error-message/styles.js +8 -0
  216. package/dist/components/field-error/field-error.d.ts +8 -0
  217. package/dist/components/field-error/field-error.js +21 -0
  218. package/dist/components/field-error/index.d.ts +13 -0
  219. package/dist/components/field-error/index.js +12 -0
  220. package/dist/components/field-error/styles.d.ts +3 -0
  221. package/dist/components/field-error/styles.js +8 -0
  222. package/dist/components/fieldset/fieldset.d.ts +16 -0
  223. package/dist/components/fieldset/fieldset.js +88 -0
  224. package/dist/components/fieldset/index.d.ts +19 -0
  225. package/dist/components/fieldset/index.js +15 -0
  226. package/dist/components/fieldset/styles.d.ts +51 -0
  227. package/dist/components/fieldset/styles.js +14 -0
  228. package/dist/components/form/form.d.ts +7 -0
  229. package/dist/components/form/form.js +13 -0
  230. package/dist/components/form/index.d.ts +11 -0
  231. package/dist/components/form/index.js +11 -0
  232. package/dist/components/header/header.d.ts +7 -0
  233. package/dist/components/header/header.js +21 -0
  234. package/dist/components/header/index.d.ts +9 -0
  235. package/dist/components/header/index.js +10 -0
  236. package/dist/components/header/styles.d.ts +1 -0
  237. package/dist/components/header/styles.js +8 -0
  238. package/dist/components/icons.d.ts +18 -0
  239. package/dist/components/icons.js +243 -0
  240. package/dist/components/index.d.ts +84 -0
  241. package/dist/components/input/index.d.ts +13 -0
  242. package/dist/components/input/index.js +12 -0
  243. package/dist/components/input/input.d.ts +8 -0
  244. package/dist/components/input/input.js +31 -0
  245. package/dist/components/input/styles.d.ts +30 -0
  246. package/dist/components/input/styles.js +22 -0
  247. package/dist/components/input-group/index.d.ts +21 -0
  248. package/dist/components/input-group/index.js +16 -0
  249. package/dist/components/input-group/input-group.d.ts +20 -0
  250. package/dist/components/input-group/input-group.js +129 -0
  251. package/dist/components/input-group/styles.d.ts +63 -0
  252. package/dist/components/input-group/styles.js +33 -0
  253. package/dist/components/input-otp/index.d.ts +22 -0
  254. package/dist/components/input-otp/index.js +21 -0
  255. package/dist/components/input-otp/input-otp.d.ts +26 -0
  256. package/dist/components/input-otp/input-otp.js +139 -0
  257. package/dist/components/input-otp/styles.d.ts +54 -0
  258. package/dist/components/input-otp/styles.js +29 -0
  259. package/dist/components/kbd/index.d.ts +19 -0
  260. package/dist/components/kbd/index.js +15 -0
  261. package/dist/components/kbd/kbd.constants.d.ts +3 -0
  262. package/dist/components/kbd/kbd.constants.js +51 -0
  263. package/dist/components/kbd/kbd.d.ts +24 -0
  264. package/dist/components/kbd/kbd.js +76 -0
  265. package/dist/components/kbd/styles.d.ts +30 -0
  266. package/dist/components/kbd/styles.js +19 -0
  267. package/dist/components/label/index.d.ts +13 -0
  268. package/dist/components/label/index.js +12 -0
  269. package/dist/components/label/label.d.ts +8 -0
  270. package/dist/components/label/label.js +27 -0
  271. package/dist/components/label/styles.d.ts +33 -0
  272. package/dist/components/label/styles.js +24 -0
  273. package/dist/components/link/index.d.ts +15 -0
  274. package/dist/components/link/index.js +13 -0
  275. package/dist/components/link/link.d.ts +10 -0
  276. package/dist/components/link/link.js +59 -0
  277. package/dist/components/link/styles.d.ts +35 -0
  278. package/dist/components/link/styles.js +13 -0
  279. package/dist/components/list-box/index.d.ts +23 -0
  280. package/dist/components/list-box/index.js +18 -0
  281. package/dist/components/list-box/list-box.d.ts +9 -0
  282. package/dist/components/list-box/list-box.js +23 -0
  283. package/dist/components/list-box/styles.d.ts +18 -0
  284. package/dist/components/list-box/styles.js +17 -0
  285. package/dist/components/list-box-item/index.d.ts +15 -0
  286. package/dist/components/list-box-item/index.js +13 -0
  287. package/dist/components/list-box-item/list-box-item.d.ts +15 -0
  288. package/dist/components/list-box-item/list-box-item.js +77 -0
  289. package/dist/components/list-box-item/styles.d.ts +39 -0
  290. package/dist/components/list-box-item/styles.js +24 -0
  291. package/dist/components/list-box-section/index.d.ts +10 -0
  292. package/dist/components/list-box-section/index.js +10 -0
  293. package/dist/components/list-box-section/list-box-section.d.ts +8 -0
  294. package/dist/components/list-box-section/list-box-section.js +22 -0
  295. package/dist/components/list-box-section/styles.d.ts +3 -0
  296. package/dist/components/list-box-section/styles.js +8 -0
  297. package/dist/components/menu/index.d.ts +24 -0
  298. package/dist/components/menu/index.js +18 -0
  299. package/dist/components/menu/menu.d.ts +9 -0
  300. package/dist/components/menu/menu.js +20 -0
  301. package/dist/components/menu/styles.d.ts +3 -0
  302. package/dist/components/menu/styles.js +8 -0
  303. package/dist/components/menu-item/index.d.ts +17 -0
  304. package/dist/components/menu-item/index.js +14 -0
  305. package/dist/components/menu-item/menu-item.d.ts +20 -0
  306. package/dist/components/menu-item/menu-item.js +123 -0
  307. package/dist/components/menu-item/styles.d.ts +42 -0
  308. package/dist/components/menu-item/styles.js +25 -0
  309. package/dist/components/menu-section/index.d.ts +10 -0
  310. package/dist/components/menu-section/index.js +10 -0
  311. package/dist/components/menu-section/menu-section.d.ts +8 -0
  312. package/dist/components/menu-section/menu-section.js +22 -0
  313. package/dist/components/menu-section/styles.d.ts +3 -0
  314. package/dist/components/menu-section/styles.js +8 -0
  315. package/dist/components/meter/index.d.ts +34 -0
  316. package/dist/components/meter/index.js +15 -0
  317. package/dist/components/meter/meter.d.ts +29 -0
  318. package/dist/components/meter/meter.js +108 -0
  319. package/dist/components/meter/styles.d.ts +105 -0
  320. package/dist/components/meter/styles.js +47 -0
  321. package/dist/components/modal/index.d.ts +33 -0
  322. package/dist/components/modal/index.js +22 -0
  323. package/dist/components/modal/modal.d.ts +53 -0
  324. package/dist/components/modal/modal.js +288 -0
  325. package/dist/components/modal/styles.d.ts +168 -0
  326. package/dist/components/modal/styles.js +69 -0
  327. package/dist/components/number-field/index.d.ts +21 -0
  328. package/dist/components/number-field/index.js +16 -0
  329. package/dist/components/number-field/number-field.d.ts +20 -0
  330. package/dist/components/number-field/number-field.js +127 -0
  331. package/dist/components/number-field/styles.d.ts +69 -0
  332. package/dist/components/number-field/styles.js +35 -0
  333. package/dist/components/pagination/index.d.ts +64 -0
  334. package/dist/components/pagination/index.js +21 -0
  335. package/dist/components/pagination/pagination.d.ts +84 -0
  336. package/dist/components/pagination/pagination.js +230 -0
  337. package/dist/components/pagination/styles.d.ts +60 -0
  338. package/dist/components/pagination/styles.js +31 -0
  339. package/dist/components/popover/index.d.ts +23 -0
  340. package/dist/components/popover/index.js +17 -0
  341. package/dist/components/popover/popover.d.ts +24 -0
  342. package/dist/components/popover/popover.js +153 -0
  343. package/dist/components/popover/styles.d.ts +45 -0
  344. package/dist/components/popover/styles.js +13 -0
  345. package/dist/components/progress-bar/index.d.ts +34 -0
  346. package/dist/components/progress-bar/index.js +15 -0
  347. package/dist/components/progress-bar/progress-bar.d.ts +29 -0
  348. package/dist/components/progress-bar/progress-bar.js +108 -0
  349. package/dist/components/progress-bar/styles.d.ts +105 -0
  350. package/dist/components/progress-bar/styles.js +47 -0
  351. package/dist/components/progress-circle/index.d.ts +34 -0
  352. package/dist/components/progress-circle/index.js +15 -0
  353. package/dist/components/progress-circle/progress-circle.d.ts +29 -0
  354. package/dist/components/progress-circle/progress-circle.js +126 -0
  355. package/dist/components/progress-circle/styles.d.ts +105 -0
  356. package/dist/components/progress-circle/styles.js +47 -0
  357. package/dist/components/rac/components.d.ts +1 -0
  358. package/dist/components/rac/index.d.ts +4 -0
  359. package/dist/components/rac/index.js +2 -0
  360. package/dist/components/rac/types.d.ts +3 -0
  361. package/dist/components/rac/utils.d.ts +1 -0
  362. package/dist/components/radio/index.d.ts +19 -0
  363. package/dist/components/radio/index.js +15 -0
  364. package/dist/components/radio/radio.d.ts +21 -0
  365. package/dist/components/radio/radio.js +97 -0
  366. package/dist/components/radio/styles.d.ts +45 -0
  367. package/dist/components/radio/styles.js +13 -0
  368. package/dist/components/radio-group/index.d.ts +13 -0
  369. package/dist/components/radio-group/index.js +12 -0
  370. package/dist/components/radio-group/radio-group.d.ts +8 -0
  371. package/dist/components/radio-group/radio-group.js +27 -0
  372. package/dist/components/radio-group/styles.d.ts +18 -0
  373. package/dist/components/radio-group/styles.js +17 -0
  374. package/dist/components/range-calendar/index.d.ts +91 -0
  375. package/dist/components/range-calendar/index.js +29 -0
  376. package/dist/components/range-calendar/range-calendar.d.ts +71 -0
  377. package/dist/components/range-calendar/range-calendar.js +289 -0
  378. package/dist/components/range-calendar/styles.d.ts +78 -0
  379. package/dist/components/range-calendar/styles.js +35 -0
  380. package/dist/components/scroll-shadow/index.d.ts +21 -0
  381. package/dist/components/scroll-shadow/index.js +13 -0
  382. package/dist/components/scroll-shadow/scroll-shadow.d.ts +32 -0
  383. package/dist/components/scroll-shadow/scroll-shadow.js +76 -0
  384. package/dist/components/scroll-shadow/styles.d.ts +69 -0
  385. package/dist/components/scroll-shadow/styles.js +36 -0
  386. package/dist/components/scroll-shadow/use-scroll-shadow.d.ts +11 -0
  387. package/dist/components/scroll-shadow/use-scroll-shadow.js +121 -0
  388. package/dist/components/search-field/index.d.ts +21 -0
  389. package/dist/components/search-field/index.js +16 -0
  390. package/dist/components/search-field/search-field.d.ts +23 -0
  391. package/dist/components/search-field/search-field.js +127 -0
  392. package/dist/components/search-field/styles.d.ts +69 -0
  393. package/dist/components/search-field/styles.js +35 -0
  394. package/dist/components/select/index.d.ts +21 -0
  395. package/dist/components/select/index.js +16 -0
  396. package/dist/components/select/select.d.ts +24 -0
  397. package/dist/components/select/select.js +140 -0
  398. package/dist/components/select/styles.d.ts +69 -0
  399. package/dist/components/select/styles.js +35 -0
  400. package/dist/components/separator/index.d.ts +13 -0
  401. package/dist/components/separator/index.js +12 -0
  402. package/dist/components/separator/separator.d.ts +8 -0
  403. package/dist/components/separator/separator.js +27 -0
  404. package/dist/components/separator/styles.d.ts +34 -0
  405. package/dist/components/separator/styles.js +23 -0
  406. package/dist/components/skeleton/index.d.ts +13 -0
  407. package/dist/components/skeleton/index.js +12 -0
  408. package/dist/components/skeleton/skeleton.d.ts +7 -0
  409. package/dist/components/skeleton/skeleton.js +25 -0
  410. package/dist/components/skeleton/styles.d.ts +27 -0
  411. package/dist/components/skeleton/styles.js +20 -0
  412. package/dist/components/slider/index.d.ts +23 -0
  413. package/dist/components/slider/index.js +17 -0
  414. package/dist/components/slider/slider.d.ts +23 -0
  415. package/dist/components/slider/slider.js +177 -0
  416. package/dist/components/slider/styles.d.ts +57 -0
  417. package/dist/components/slider/styles.js +15 -0
  418. package/dist/components/spinner/index.d.ts +13 -0
  419. package/dist/components/spinner/index.js +12 -0
  420. package/dist/components/spinner/spinner.d.ts +7 -0
  421. package/dist/components/spinner/spinner.js +88 -0
  422. package/dist/components/spinner/styles.d.ts +45 -0
  423. package/dist/components/spinner/styles.js +27 -0
  424. package/dist/components/surface/index.d.ts +14 -0
  425. package/dist/components/surface/index.js +13 -0
  426. package/dist/components/surface/styles.d.ts +24 -0
  427. package/dist/components/surface/styles.js +19 -0
  428. package/dist/components/surface/surface.d.ts +12 -0
  429. package/dist/components/surface/surface.js +34 -0
  430. package/dist/components/switch/index.d.ts +21 -0
  431. package/dist/components/switch/index.js +16 -0
  432. package/dist/components/switch/styles.d.ts +57 -0
  433. package/dist/components/switch/styles.js +30 -0
  434. package/dist/components/switch/switch.d.ts +20 -0
  435. package/dist/components/switch/switch.js +118 -0
  436. package/dist/components/switch-group/index.d.ts +13 -0
  437. package/dist/components/switch-group/index.js +12 -0
  438. package/dist/components/switch-group/styles.d.ts +39 -0
  439. package/dist/components/switch-group/styles.js +24 -0
  440. package/dist/components/switch-group/switch-group.d.ts +7 -0
  441. package/dist/components/switch-group/switch-group.js +25 -0
  442. package/dist/components/table/index.d.ts +38 -0
  443. package/dist/components/table/index.js +25 -0
  444. package/dist/components/table/styles.d.ts +74 -0
  445. package/dist/components/table/styles.js +37 -0
  446. package/dist/components/table/table.d.ts +50 -0
  447. package/dist/components/table/table.js +283 -0
  448. package/dist/components/tabs/index.d.ts +25 -0
  449. package/dist/components/tabs/index.js +18 -0
  450. package/dist/components/tabs/styles.d.ts +50 -0
  451. package/dist/components/tabs/styles.js +29 -0
  452. package/dist/components/tabs/tabs.d.ts +37 -0
  453. package/dist/components/tabs/tabs.js +156 -0
  454. package/dist/components/tag/index.d.ts +15 -0
  455. package/dist/components/tag/index.js +13 -0
  456. package/dist/components/tag/styles.d.ts +72 -0
  457. package/dist/components/tag/styles.js +36 -0
  458. package/dist/components/tag/tag.d.ts +14 -0
  459. package/dist/components/tag/tag.js +85 -0
  460. package/dist/components/tag-group/index.d.ts +15 -0
  461. package/dist/components/tag-group/index.js +14 -0
  462. package/dist/components/tag-group/styles.d.ts +33 -0
  463. package/dist/components/tag-group/styles.js +11 -0
  464. package/dist/components/tag-group/tag-group.d.ts +20 -0
  465. package/dist/components/tag-group/tag-group.js +59 -0
  466. package/dist/components/text/index.d.ts +13 -0
  467. package/dist/components/text/index.js +12 -0
  468. package/dist/components/text/styles.d.ts +48 -0
  469. package/dist/components/text/styles.js +28 -0
  470. package/dist/components/text/text.d.ts +8 -0
  471. package/dist/components/text/text.js +25 -0
  472. package/dist/components/textarea/index.d.ts +13 -0
  473. package/dist/components/textarea/index.js +12 -0
  474. package/dist/components/textarea/styles.d.ts +30 -0
  475. package/dist/components/textarea/styles.js +22 -0
  476. package/dist/components/textarea/textarea.d.ts +8 -0
  477. package/dist/components/textarea/textarea.js +27 -0
  478. package/dist/components/textfield/index.d.ts +14 -0
  479. package/dist/components/textfield/index.js +13 -0
  480. package/dist/components/textfield/styles.d.ts +18 -0
  481. package/dist/components/textfield/styles.js +17 -0
  482. package/dist/components/textfield/textfield.d.ts +18 -0
  483. package/dist/components/textfield/textfield.js +39 -0
  484. package/dist/components/time-field/index.d.ts +26 -0
  485. package/dist/components/time-field/index.js +20 -0
  486. package/dist/components/time-field/styles.d.ts +18 -0
  487. package/dist/components/time-field/styles.js +17 -0
  488. package/dist/components/time-field/time-field.d.ts +9 -0
  489. package/dist/components/time-field/time-field.js +29 -0
  490. package/dist/components/toast/constants.d.ts +6 -0
  491. package/dist/components/toast/constants.js +15 -0
  492. package/dist/components/toast/index.d.ts +75 -0
  493. package/dist/components/toast/index.js +23 -0
  494. package/dist/components/toast/styles.d.ts +162 -0
  495. package/dist/components/toast/styles.js +66 -0
  496. package/dist/components/toast/toast-queue.d.ts +70 -0
  497. package/dist/components/toast/toast-queue.js +147 -0
  498. package/dist/components/toast/toast.d.ts +69 -0
  499. package/dist/components/toast/toast.js +365 -0
  500. package/dist/components/toggle-button/index.d.ts +13 -0
  501. package/dist/components/toggle-button/index.js +12 -0
  502. package/dist/components/toggle-button/styles.d.ts +42 -0
  503. package/dist/components/toggle-button/styles.js +27 -0
  504. package/dist/components/toggle-button/toggle-button.d.ts +8 -0
  505. package/dist/components/toggle-button/toggle-button.js +36 -0
  506. package/dist/components/toggle-button-group/index.d.ts +16 -0
  507. package/dist/components/toggle-button-group/index.js +14 -0
  508. package/dist/components/toggle-button-group/styles.d.ts +75 -0
  509. package/dist/components/toggle-button-group/styles.js +38 -0
  510. package/dist/components/toggle-button-group/toggle-button-group.d.ts +26 -0
  511. package/dist/components/toggle-button-group/toggle-button-group.js +70 -0
  512. package/dist/components/toolbar/index.d.ts +19 -0
  513. package/dist/components/toolbar/index.js +12 -0
  514. package/dist/components/toolbar/styles.d.ts +28 -0
  515. package/dist/components/toolbar/styles.js +21 -0
  516. package/dist/components/toolbar/toolbar.d.ts +11 -0
  517. package/dist/components/toolbar/toolbar.js +39 -0
  518. package/dist/components/tooltip/index.d.ts +19 -0
  519. package/dist/components/tooltip/index.js +15 -0
  520. package/dist/components/tooltip/styles.d.ts +33 -0
  521. package/dist/components/tooltip/styles.js +11 -0
  522. package/dist/components/tooltip/tooltip.d.ts +20 -0
  523. package/dist/components/tooltip/tooltip.js +106 -0
  524. package/dist/css/base.css +17 -0
  525. package/dist/css/components.css +117 -0
  526. package/dist/css/index.css +22 -0
  527. package/dist/css/themes/default/index.css +5 -0
  528. package/dist/css/themes/default/variables.css +162 -0
  529. package/dist/css/themes/shared/theme.css +191 -0
  530. package/dist/css/utilities.css +56 -0
  531. package/dist/css/variants.css +106 -0
  532. package/dist/hooks/index.d.ts +9 -0
  533. package/dist/hooks/use-css-variable.d.ts +36 -0
  534. package/dist/hooks/use-css-variable.js +72 -0
  535. package/dist/hooks/use-is-hydrated.d.ts +19 -0
  536. package/dist/hooks/use-is-hydrated.js +28 -0
  537. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -0
  538. package/dist/hooks/use-isomorphic-layout-effect.js +6 -0
  539. package/dist/hooks/use-list-data.d.ts +111 -0
  540. package/dist/hooks/use-list-data.js +296 -0
  541. package/dist/hooks/use-measured-height.d.ts +4 -0
  542. package/dist/hooks/use-measured-height.js +47 -0
  543. package/dist/hooks/use-media-query.d.ts +6 -0
  544. package/dist/hooks/use-media-query.js +50 -0
  545. package/dist/hooks/use-mounted.d.ts +1 -0
  546. package/dist/hooks/use-mounted.js +15 -0
  547. package/dist/hooks/use-overlay-state.d.ts +52 -0
  548. package/dist/hooks/use-overlay-state.js +70 -0
  549. package/dist/hooks/use-safe-layout-effect.d.ts +2 -0
  550. package/dist/hooks/use-safe-layout-effect.js +6 -0
  551. package/dist/index.d.ts +3 -3741
  552. package/dist/index.js +262 -990
  553. package/dist/styles/components/index.d.ts +83 -0
  554. package/dist/styles/index.d.ts +3 -0
  555. package/dist/styles/utils/index.d.ts +7 -0
  556. package/dist/styles.css +2 -0
  557. package/dist/utils/assertion.d.ts +9 -0
  558. package/dist/utils/assertion.js +3 -0
  559. package/dist/utils/calendar.d.ts +5 -0
  560. package/dist/utils/calendar.js +19 -0
  561. package/dist/utils/children.d.ts +9 -0
  562. package/dist/utils/children.js +17 -0
  563. package/dist/utils/compose.d.ts +7 -0
  564. package/dist/utils/compose.js +18 -0
  565. package/dist/utils/index.d.ts +6 -0
  566. package/dist/utils/logger.d.ts +23 -0
  567. package/dist/utils/tv.d.ts +3 -0
  568. package/dist/utils/variants.d.ts +73 -0
  569. package/package.json +119 -70
  570. package/dist/component-manifest.json +0 -749
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import React__default, { createContext } from 'react';
3
+ import { DisclosureGroup } from 'react-aria-components';
4
+ import { composeTwRenderProps } from '../../utils/compose.js';
5
+ import { disclosureGroupVariants } from './styles.js';
6
+ import { jsx, Fragment } from 'react/jsx-runtime';
7
+
8
+ const DisclosureGroupContext = /*#__PURE__*/createContext({});
9
+
10
+ /* -------------------------------------------------------------------------------------------------
11
+ * Disclosure Group Root
12
+ * -----------------------------------------------------------------------------------------------*/
13
+
14
+ const DisclosureGroupRoot = ({
15
+ children,
16
+ className,
17
+ ...props
18
+ }) => {
19
+ const slots = React__default.useMemo(() => disclosureGroupVariants({}), []);
20
+ return /*#__PURE__*/jsx(DisclosureGroupContext, {
21
+ value: {
22
+ slots
23
+ },
24
+ children: /*#__PURE__*/jsx(DisclosureGroup, {
25
+ "data-slot": "disclosure-group",
26
+ ...props,
27
+ className: composeTwRenderProps(className, slots.base()),
28
+ children: values => /*#__PURE__*/jsx(Fragment, {
29
+ children: typeof children === "function" ? children(values) : children
30
+ })
31
+ })
32
+ });
33
+ };
34
+
35
+ export { DisclosureGroupRoot };
@@ -0,0 +1,15 @@
1
+ import type { ComponentProps } from "react";
2
+ import { DisclosureGroupRoot } from "./disclosure-group";
3
+ export declare const DisclosureGroup: (({ children, className, ...props }: import("./disclosure-group").DisclosureGroupRootProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Root: ({ children, className, ...props }: import("./disclosure-group").DisclosureGroupRootProps) => import("react/jsx-runtime").JSX.Element;
5
+ };
6
+ export type DisclosureGroup = {
7
+ Props: ComponentProps<typeof DisclosureGroupRoot>;
8
+ RootProps: ComponentProps<typeof DisclosureGroupRoot>;
9
+ };
10
+ export { DisclosureGroupRoot };
11
+ export type { DisclosureGroupRootProps, DisclosureGroupRootProps as DisclosureGroupProps, } from "./disclosure-group";
12
+ export { disclosureGroupVariants } from "./styles";
13
+ export type { DisclosureGroupVariants } from "./styles";
14
+ export { useDisclosureGroupNavigation } from "./use-disclosure-group-navigation";
15
+ export type { UseDisclosureGroupNavigationProps, UseDisclosureGroupNavigationReturn, } from "./use-disclosure-group-navigation";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ import { DisclosureGroupRoot } from './disclosure-group.js';
3
+ export { disclosureGroupVariants } from './styles.js';
4
+ export { useDisclosureGroupNavigation } from './use-disclosure-group-navigation.js';
5
+
6
+ /* -------------------------------------------------------------------------------------------------
7
+ * Compound Component
8
+ * -----------------------------------------------------------------------------------------------*/
9
+ const DisclosureGroup = Object.assign(DisclosureGroupRoot, {
10
+ Root: DisclosureGroupRoot
11
+ });
12
+
13
+ export { DisclosureGroup, DisclosureGroupRoot };
@@ -0,0 +1,9 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ export declare const disclosureGroupVariants: import("tailwind-variants").TVReturnType<{}, {
3
+ base: string;
4
+ }, undefined, {}, {
5
+ base: string;
6
+ }, import("tailwind-variants").TVReturnType<{}, {
7
+ base: string;
8
+ }, undefined, unknown, unknown, undefined>>;
9
+ export type DisclosureGroupVariants = VariantProps<typeof disclosureGroupVariants>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ import { tv } from 'tailwind-variants';
3
+
4
+ const disclosureGroupVariants = tv({
5
+ defaultVariants: {},
6
+ slots: {
7
+ base: "disclosure-group"
8
+ },
9
+ variants: {}
10
+ });
11
+
12
+ export { disclosureGroupVariants };
@@ -0,0 +1,14 @@
1
+ export interface UseDisclosureGroupNavigationProps {
2
+ expandedKeys: Set<string | number>;
3
+ itemIds: string[];
4
+ onExpandedChange: (keys: Set<string | number>) => void;
5
+ allowsMultipleExpanded?: boolean;
6
+ }
7
+ export interface UseDisclosureGroupNavigationReturn {
8
+ currentIndex: number;
9
+ isPrevDisabled: boolean;
10
+ isNextDisabled: boolean;
11
+ onPrevious: () => void;
12
+ onNext: () => void;
13
+ }
14
+ export declare function useDisclosureGroupNavigation({ allowsMultipleExpanded, expandedKeys, itemIds, onExpandedChange, }: UseDisclosureGroupNavigationProps): UseDisclosureGroupNavigationReturn;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ import { useMemo, useCallback } from 'react';
3
+
4
+ function useDisclosureGroupNavigation({
5
+ allowsMultipleExpanded = false,
6
+ expandedKeys,
7
+ itemIds = [],
8
+ onExpandedChange
9
+ }) {
10
+ const currentIndex = useMemo(() => {
11
+ const expandedItems = itemIds.filter(id => expandedKeys.has(id));
12
+ const currentItem = expandedItems.length > 0 ? expandedItems[0] : itemIds[0];
13
+ if (!currentItem) return -1;
14
+ return itemIds.indexOf(currentItem);
15
+ }, [expandedKeys, itemIds]);
16
+ const handlePrevious = useCallback(() => {
17
+ if (currentIndex <= 0) return;
18
+ const prevItem = itemIds[currentIndex - 1];
19
+ if (!prevItem) return;
20
+ if (allowsMultipleExpanded) {
21
+ const newKeys = new Set(expandedKeys);
22
+ newKeys.add(prevItem);
23
+ onExpandedChange(newKeys);
24
+ } else {
25
+ onExpandedChange(new Set([prevItem]));
26
+ }
27
+ }, [currentIndex, itemIds, expandedKeys, onExpandedChange, allowsMultipleExpanded]);
28
+ const handleNext = useCallback(() => {
29
+ if (currentIndex >= itemIds.length - 1) return;
30
+ const nextItem = itemIds[currentIndex + 1];
31
+ if (!nextItem) return;
32
+ if (allowsMultipleExpanded) {
33
+ const newKeys = new Set(expandedKeys);
34
+ newKeys.add(nextItem);
35
+ onExpandedChange(newKeys);
36
+ } else {
37
+ onExpandedChange(new Set([nextItem]));
38
+ }
39
+ }, [currentIndex, itemIds.length, itemIds, expandedKeys, onExpandedChange, allowsMultipleExpanded]);
40
+ const isPrevDisabled = currentIndex <= 0;
41
+ const isNextDisabled = currentIndex >= itemIds.length - 1;
42
+ return {
43
+ currentIndex,
44
+ isNextDisabled,
45
+ isPrevDisabled,
46
+ onNext: handleNext,
47
+ onPrevious: handlePrevious
48
+ };
49
+ }
50
+
51
+ export { useDisclosureGroupNavigation };
@@ -0,0 +1,84 @@
1
+ import type { UseOverlayStateReturn } from "../../hooks/use-overlay-state";
2
+ import type { DrawerVariants } from "./styles";
3
+ import type { ComponentPropsWithRef, ReactNode } from "react";
4
+ import type { ButtonProps as ButtonPrimitiveProps, DialogProps as DialogPrimitiveProps } from "react-aria-components";
5
+ import { Button as ButtonPrimitive, DialogTrigger as DrawerTriggerPrimitive, Heading as HeadingPrimitive, ModalOverlay as ModalOverlayPrimitive, Modal as ModalPrimitive } from "react-aria-components";
6
+ type DrawerPlacement = "top" | "bottom" | "left" | "right";
7
+ interface DrawerRootProps extends ComponentPropsWithRef<typeof DrawerTriggerPrimitive> {
8
+ state?: UseOverlayStateReturn;
9
+ }
10
+ declare const DrawerRoot: {
11
+ ({ children, state, ...props }: DrawerRootProps): import("react/jsx-runtime").JSX.Element;
12
+ displayName: string;
13
+ };
14
+ interface DrawerTriggerProps extends ComponentPropsWithRef<typeof ButtonPrimitive> {
15
+ }
16
+ declare const DrawerTrigger: {
17
+ ({ children, className, ...props }: DrawerTriggerProps): import("react/jsx-runtime").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ interface DrawerBackdropProps extends ComponentPropsWithRef<typeof ModalOverlayPrimitive> {
21
+ variant?: DrawerVariants["variant"];
22
+ /**
23
+ * Whether to close the drawer when the user interacts outside it.
24
+ * @default true
25
+ */
26
+ isDismissable?: boolean;
27
+ }
28
+ declare const DrawerBackdrop: {
29
+ ({ children, className, isDismissable, variant, ...props }: DrawerBackdropProps): import("react/jsx-runtime").JSX.Element;
30
+ displayName: string;
31
+ };
32
+ interface DrawerContentProps extends Omit<ComponentPropsWithRef<typeof ModalPrimitive>, Exclude<keyof DrawerBackdropProps, "children" | "className">> {
33
+ placement?: DrawerPlacement;
34
+ }
35
+ declare const DrawerContent: {
36
+ ({ children, className, placement, ...props }: DrawerContentProps): import("react/jsx-runtime").JSX.Element;
37
+ displayName: string;
38
+ };
39
+ interface DrawerDialogProps extends DialogPrimitiveProps {
40
+ }
41
+ declare const DrawerDialog: {
42
+ ({ children, className, ...props }: DrawerDialogProps): import("react/jsx-runtime").JSX.Element;
43
+ displayName: string;
44
+ };
45
+ interface DrawerHeaderProps extends ComponentPropsWithRef<"div"> {
46
+ }
47
+ declare const DrawerHeader: {
48
+ ({ children, className, ...props }: DrawerHeaderProps): import("react/jsx-runtime").JSX.Element;
49
+ displayName: string;
50
+ };
51
+ interface DrawerBodyProps extends ComponentPropsWithRef<"div"> {
52
+ }
53
+ declare const DrawerBody: {
54
+ ({ children, className, ...props }: DrawerBodyProps): import("react/jsx-runtime").JSX.Element;
55
+ displayName: string;
56
+ };
57
+ interface DrawerFooterProps extends ComponentPropsWithRef<"div"> {
58
+ }
59
+ declare const DrawerFooter: {
60
+ ({ children, className, ...props }: DrawerFooterProps): import("react/jsx-runtime").JSX.Element;
61
+ displayName: string;
62
+ };
63
+ interface DrawerHeadingProps extends ComponentPropsWithRef<typeof HeadingPrimitive> {
64
+ }
65
+ declare const DrawerHeading: {
66
+ ({ children, className, ...props }: DrawerHeadingProps): import("react/jsx-runtime").JSX.Element;
67
+ displayName: string;
68
+ };
69
+ interface DrawerHandleProps extends ComponentPropsWithRef<"div"> {
70
+ }
71
+ declare const DrawerHandle: {
72
+ ({ className, ...props }: DrawerHandleProps): import("react/jsx-runtime").JSX.Element;
73
+ displayName: string;
74
+ };
75
+ interface DrawerCloseTriggerProps extends ButtonPrimitiveProps {
76
+ className?: string;
77
+ children?: ReactNode;
78
+ }
79
+ declare const DrawerCloseTrigger: {
80
+ ({ className, ...rest }: DrawerCloseTriggerProps): import("react/jsx-runtime").JSX.Element;
81
+ displayName: string;
82
+ };
83
+ export { DrawerRoot, DrawerTrigger, DrawerBackdrop, DrawerContent, DrawerDialog, DrawerHeader, DrawerHeading, DrawerBody, DrawerFooter, DrawerHandle, DrawerCloseTrigger, };
84
+ export type { DrawerRootProps, DrawerTriggerProps, DrawerBackdropProps, DrawerContentProps, DrawerDialogProps, DrawerHeaderProps, DrawerHeadingProps, DrawerBodyProps, DrawerFooterProps, DrawerHandleProps, DrawerCloseTriggerProps, };
@@ -0,0 +1,439 @@
1
+ "use client";
2
+ import { mergeProps } from '@react-aria/utils';
3
+ import { useMemo, useContext, createContext, useRef, useCallback } from 'react';
4
+ import { DialogTrigger, Button, Heading, Dialog, Modal, ModalOverlay, OverlayTriggerStateContext } from 'react-aria-components';
5
+ import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
6
+ import { CloseButton } from '../close-button/index.js';
7
+ import { drawerVariants } from './styles.js';
8
+ import { jsx } from 'react/jsx-runtime';
9
+ import { SurfaceContext } from '../surface/surface.js';
10
+
11
+ /* -------------------------------------------------------------------------------------------------
12
+ * Drawer Drag Hook
13
+ * Tracks pointer events to enable drag-to-dismiss with CSS transforms.
14
+ * Drag only initiates from handle/header/footer areas — body is excluded to avoid scroll conflicts.
15
+ * -----------------------------------------------------------------------------------------------*/
16
+
17
+ const DRAG_THRESHOLD = 8; // px before drag activates
18
+ const DISMISS_FRACTION = 0.3; // dismiss if dragged > 30% of dimension
19
+ const VELOCITY_THRESHOLD = 0.5; // px/ms — dismiss on fast flick
20
+
21
+ function useDrawerDrag(placement, isDismissable) {
22
+ const overlayState = useContext(OverlayTriggerStateContext);
23
+ const dialogRef = useRef(null);
24
+ const isDragging = useRef(false);
25
+ const isActive = useRef(false);
26
+ const startPos = useRef(0);
27
+ const currentOffset = useRef(0);
28
+ const velocity = useRef(0);
29
+ const lastTime = useRef(0);
30
+ const lastPos = useRef(0);
31
+ const isVertical = placement === "top" || placement === "bottom";
32
+ const getPos = useCallback(e => isVertical ? e.clientY : e.clientX, [isVertical]);
33
+ const clamp = useCallback(delta => {
34
+ // Only allow drag in the dismiss direction
35
+ switch (placement) {
36
+ case "bottom":
37
+ return Math.max(0, delta);
38
+ case "top":
39
+ return Math.min(0, delta);
40
+ case "right":
41
+ return Math.max(0, delta);
42
+ case "left":
43
+ return Math.min(0, delta);
44
+ default:
45
+ return delta;
46
+ }
47
+ }, [placement]);
48
+ const onPointerDown = useCallback(e => {
49
+ if (!isDismissable) return;
50
+ if (e.button !== 0) return;
51
+ const target = e.target;
52
+
53
+ // Don't drag from interactive elements or scrollable body
54
+ if (target.closest("input, textarea, button, [role='button'], select, a, [data-slot='drawer-body']")) {
55
+ return;
56
+ }
57
+ isDragging.current = true;
58
+ isActive.current = false;
59
+ startPos.current = getPos(e);
60
+ lastPos.current = startPos.current;
61
+ lastTime.current = Date.now();
62
+ currentOffset.current = 0;
63
+ velocity.current = 0;
64
+ }, [getPos, isDismissable]);
65
+ const onPointerMove = useCallback(e => {
66
+ if (!isDragging.current || !dialogRef.current) return;
67
+ const pos = getPos(e);
68
+ const rawDelta = pos - startPos.current;
69
+ const delta = clamp(rawDelta);
70
+
71
+ // Activate only after passing threshold to avoid false starts
72
+ if (!isActive.current) {
73
+ if (Math.abs(rawDelta) < DRAG_THRESHOLD) return;
74
+ isActive.current = true;
75
+ dialogRef.current.style.transition = "none";
76
+ dialogRef.current.setPointerCapture(e.pointerId);
77
+ }
78
+ currentOffset.current = delta;
79
+
80
+ // Track velocity for flick detection
81
+ const now = Date.now();
82
+ const dt = now - lastTime.current;
83
+ if (dt > 0) {
84
+ velocity.current = (pos - lastPos.current) / dt;
85
+ lastTime.current = now;
86
+ lastPos.current = pos;
87
+ }
88
+ const axis = isVertical ? "Y" : "X";
89
+ dialogRef.current.style.transform = `translate${axis}(${delta}px)`;
90
+ }, [getPos, clamp, isVertical]);
91
+ const onPointerUp = useCallback(e => {
92
+ if (!isDragging.current) return;
93
+ isDragging.current = false;
94
+ const el = dialogRef.current;
95
+ if (!el || !isActive.current) {
96
+ isActive.current = false;
97
+ return;
98
+ }
99
+ isActive.current = false;
100
+
101
+ // Release pointer capture
102
+ try {
103
+ el.releasePointerCapture(e.pointerId);
104
+ } catch {
105
+ // Pointer capture may already be released
106
+ }
107
+ const dimension = isVertical ? el.offsetHeight : el.offsetWidth;
108
+ const absOffset = Math.abs(currentOffset.current);
109
+ const absVelocity = Math.abs(velocity.current);
110
+ const shouldDismiss = absOffset > dimension * DISMISS_FRACTION || absVelocity > VELOCITY_THRESHOLD;
111
+ if (shouldDismiss && overlayState) {
112
+ // Keep the inline transform — it compounds with the content exit animation
113
+ // so the drawer continues sliding from the dragged position
114
+ overlayState.close();
115
+ } else {
116
+ // Snap back with a spring-like ease
117
+ el.style.transition = "transform 300ms cubic-bezier(0.32, 0.72, 0, 1)";
118
+ el.style.transform = "";
119
+ const cleanup = () => {
120
+ el.style.transition = "";
121
+ };
122
+ el.addEventListener("transitionend", cleanup, {
123
+ once: true
124
+ });
125
+ }
126
+ currentOffset.current = 0;
127
+ velocity.current = 0;
128
+ }, [isVertical, overlayState]);
129
+ return {
130
+ dialogRef,
131
+ dragHandlers: isDismissable ? {
132
+ onPointerDown,
133
+ onPointerMove,
134
+ onPointerUp
135
+ } : {}
136
+ };
137
+ }
138
+
139
+ /* -------------------------------------------------------------------------------------------------
140
+ * Drawer Context
141
+ * -----------------------------------------------------------------------------------------------*/
142
+
143
+ const DrawerContext = /*#__PURE__*/createContext({});
144
+
145
+ /* -------------------------------------------------------------------------------------------------
146
+ * Drawer Root
147
+ * -----------------------------------------------------------------------------------------------*/
148
+
149
+ const DrawerRoot = ({
150
+ children,
151
+ state,
152
+ ...props
153
+ }) => {
154
+ const drawerContext = useMemo(() => ({
155
+ isDismissable: true,
156
+ placement: undefined,
157
+ slots: drawerVariants()
158
+ }), []);
159
+ const controlledProps = useMemo(() => state ? {
160
+ isOpen: state.isOpen,
161
+ onOpenChange: state.setOpen
162
+ } : {}, [state]);
163
+ return /*#__PURE__*/jsx(DrawerContext, {
164
+ value: drawerContext,
165
+ children: /*#__PURE__*/jsx(DialogTrigger, {
166
+ "data-slot": "drawer-root",
167
+ ...mergeProps(props, controlledProps),
168
+ children: children
169
+ })
170
+ });
171
+ };
172
+ DrawerRoot.displayName = "Cognitiv.Drawer";
173
+
174
+ /* -------------------------------------------------------------------------------------------------
175
+ * Drawer Trigger
176
+ * -----------------------------------------------------------------------------------------------*/
177
+
178
+ const DrawerTrigger = ({
179
+ children,
180
+ className,
181
+ ...props
182
+ }) => {
183
+ const {
184
+ slots
185
+ } = useContext(DrawerContext);
186
+ return /*#__PURE__*/jsx(Button, {
187
+ className: composeTwRenderProps(className, slots?.trigger()),
188
+ "data-slot": "drawer-trigger",
189
+ ...props,
190
+ children: children
191
+ });
192
+ };
193
+ DrawerTrigger.displayName = "Cognitiv.Drawer.Trigger";
194
+
195
+ /* -------------------------------------------------------------------------------------------------
196
+ * Drawer Backdrop
197
+ * -----------------------------------------------------------------------------------------------*/
198
+
199
+ const DrawerBackdrop = ({
200
+ children,
201
+ className,
202
+ isDismissable = true,
203
+ variant,
204
+ ...props
205
+ }) => {
206
+ const {
207
+ slots: contextSlots
208
+ } = useContext(DrawerContext);
209
+ const updatedSlots = useMemo(() => drawerVariants({
210
+ variant
211
+ }), [variant]);
212
+ const updatedDrawerContext = useMemo(() => ({
213
+ isDismissable,
214
+ slots: {
215
+ ...contextSlots,
216
+ ...updatedSlots
217
+ }
218
+ }), [contextSlots, updatedSlots, isDismissable]);
219
+ return /*#__PURE__*/jsx(ModalOverlay, {
220
+ className: composeTwRenderProps(className, updatedSlots?.backdrop()),
221
+ "data-slot": "drawer-backdrop",
222
+ isDismissable: isDismissable,
223
+ ...props,
224
+ children: renderProps => /*#__PURE__*/jsx(DrawerContext, {
225
+ value: updatedDrawerContext,
226
+ children: typeof children === "function" ? children(renderProps) : children
227
+ })
228
+ });
229
+ };
230
+ DrawerBackdrop.displayName = "Cognitiv.Drawer.Backdrop";
231
+
232
+ /* -------------------------------------------------------------------------------------------------
233
+ * Drawer Content
234
+ * -----------------------------------------------------------------------------------------------*/
235
+
236
+ const DrawerContent = ({
237
+ children,
238
+ className,
239
+ placement = "bottom",
240
+ ...props
241
+ }) => {
242
+ const {
243
+ isDismissable,
244
+ slots: contextSlots
245
+ } = useContext(DrawerContext);
246
+ const updatedSlots = useMemo(() => drawerVariants({
247
+ placement
248
+ }), [placement]);
249
+ const updatedDrawerContext = useMemo(() => ({
250
+ isDismissable,
251
+ placement,
252
+ slots: {
253
+ ...contextSlots,
254
+ ...updatedSlots
255
+ }
256
+ }), [contextSlots, placement, isDismissable, updatedSlots]);
257
+ return /*#__PURE__*/jsx(Modal, {
258
+ className: composeTwRenderProps(className, updatedSlots?.content()),
259
+ "data-placement": placement,
260
+ "data-slot": "drawer-content",
261
+ ...props,
262
+ children: renderProps => /*#__PURE__*/jsx(DrawerContext, {
263
+ value: updatedDrawerContext,
264
+ children: typeof children === "function" ? children(renderProps) : children
265
+ })
266
+ });
267
+ };
268
+ DrawerContent.displayName = "Cognitiv.Drawer.Content";
269
+
270
+ /* -------------------------------------------------------------------------------------------------
271
+ * Drawer Dialog
272
+ * -----------------------------------------------------------------------------------------------*/
273
+
274
+ const DrawerDialog = ({
275
+ children,
276
+ className,
277
+ ...props
278
+ }) => {
279
+ const {
280
+ isDismissable = true,
281
+ placement,
282
+ slots
283
+ } = useContext(DrawerContext);
284
+ const {
285
+ dialogRef,
286
+ dragHandlers
287
+ } = useDrawerDrag(placement, isDismissable);
288
+ return /*#__PURE__*/jsx(SurfaceContext, {
289
+ value: {
290
+ variant: "default"
291
+ },
292
+ children: /*#__PURE__*/jsx(Dialog, {
293
+ ref: dialogRef,
294
+ className: composeSlotClassName(slots?.dialog, className),
295
+ "data-placement": placement,
296
+ "data-slot": "drawer-dialog",
297
+ style: isDismissable ? {
298
+ touchAction: "none"
299
+ } : undefined,
300
+ ...dragHandlers,
301
+ ...props,
302
+ children: children
303
+ })
304
+ });
305
+ };
306
+ DrawerDialog.displayName = "Cognitiv.Drawer.Dialog";
307
+
308
+ /* -------------------------------------------------------------------------------------------------
309
+ * Drawer Header
310
+ * -----------------------------------------------------------------------------------------------*/
311
+
312
+ const DrawerHeader = ({
313
+ children,
314
+ className,
315
+ ...props
316
+ }) => {
317
+ const {
318
+ slots
319
+ } = useContext(DrawerContext);
320
+ return /*#__PURE__*/jsx("div", {
321
+ className: composeSlotClassName(slots?.header, className),
322
+ "data-slot": "drawer-header",
323
+ ...props,
324
+ children: children
325
+ });
326
+ };
327
+ DrawerHeader.displayName = "Cognitiv.Drawer.Header";
328
+
329
+ /* -------------------------------------------------------------------------------------------------
330
+ * Drawer Body
331
+ * -----------------------------------------------------------------------------------------------*/
332
+
333
+ const DrawerBody = ({
334
+ children,
335
+ className,
336
+ ...props
337
+ }) => {
338
+ const {
339
+ slots
340
+ } = useContext(DrawerContext);
341
+ return /*#__PURE__*/jsx("div", {
342
+ className: composeSlotClassName(slots?.body, className),
343
+ "data-slot": "drawer-body",
344
+ style: {
345
+ touchAction: "pan-y"
346
+ },
347
+ ...props,
348
+ children: children
349
+ });
350
+ };
351
+ DrawerBody.displayName = "Cognitiv.Drawer.Body";
352
+
353
+ /* -------------------------------------------------------------------------------------------------
354
+ * Drawer Footer
355
+ * -----------------------------------------------------------------------------------------------*/
356
+
357
+ const DrawerFooter = ({
358
+ children,
359
+ className,
360
+ ...props
361
+ }) => {
362
+ const {
363
+ slots
364
+ } = useContext(DrawerContext);
365
+ return /*#__PURE__*/jsx("div", {
366
+ className: composeSlotClassName(slots?.footer, className),
367
+ "data-slot": "drawer-footer",
368
+ ...props,
369
+ children: children
370
+ });
371
+ };
372
+ DrawerFooter.displayName = "Cognitiv.Drawer.Footer";
373
+
374
+ /* -------------------------------------------------------------------------------------------------
375
+ * Drawer Heading
376
+ * -----------------------------------------------------------------------------------------------*/
377
+
378
+ const DrawerHeading = ({
379
+ children,
380
+ className,
381
+ ...props
382
+ }) => {
383
+ const {
384
+ slots
385
+ } = useContext(DrawerContext);
386
+ return /*#__PURE__*/jsx(Heading, {
387
+ className: composeSlotClassName(slots?.heading, className),
388
+ "data-slot": "drawer-heading",
389
+ slot: "title",
390
+ ...props,
391
+ children: children
392
+ });
393
+ };
394
+ DrawerHeading.displayName = "Cognitiv.Drawer.Heading";
395
+
396
+ /* -------------------------------------------------------------------------------------------------
397
+ * Drawer Handle
398
+ * -----------------------------------------------------------------------------------------------*/
399
+
400
+ const DrawerHandle = ({
401
+ className,
402
+ ...props
403
+ }) => {
404
+ const {
405
+ slots
406
+ } = useContext(DrawerContext);
407
+ return /*#__PURE__*/jsx("div", {
408
+ "aria-hidden": "true",
409
+ className: composeSlotClassName(slots?.handle, className),
410
+ "data-slot": "drawer-handle",
411
+ ...props,
412
+ children: /*#__PURE__*/jsx("div", {
413
+ "data-slot": "drawer-handle-bar"
414
+ })
415
+ });
416
+ };
417
+ DrawerHandle.displayName = "Cognitiv.Drawer.Handle";
418
+
419
+ /* -------------------------------------------------------------------------------------------------
420
+ * Drawer Close Trigger
421
+ * -----------------------------------------------------------------------------------------------*/
422
+
423
+ const DrawerCloseTrigger = ({
424
+ className,
425
+ ...rest
426
+ }) => {
427
+ const {
428
+ slots
429
+ } = useContext(DrawerContext);
430
+ return /*#__PURE__*/jsx(CloseButton, {
431
+ className: composeTwRenderProps(className, slots?.closeTrigger()),
432
+ "data-slot": "drawer-close-trigger",
433
+ slot: "close",
434
+ ...rest
435
+ });
436
+ };
437
+ DrawerCloseTrigger.displayName = "Cognitiv.Drawer.CloseTrigger";
438
+
439
+ export { DrawerBackdrop, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDialog, DrawerFooter, DrawerHandle, DrawerHeader, DrawerHeading, DrawerRoot, DrawerTrigger };