@hyddenlabs/hydn-ui 0.3.0-alpha.99 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. package/README.md +46 -29
  2. package/dist/components/branding/google-logo.d.ts +14 -0
  3. package/dist/components/branding/google-logo.d.ts.map +1 -0
  4. package/dist/components/branding/google-logo.js +49 -0
  5. package/dist/components/branding/google-logo.js.map +1 -0
  6. package/dist/components/branding/hydden-logo.d.ts +14 -0
  7. package/dist/components/branding/hydden-logo.d.ts.map +1 -0
  8. package/dist/components/branding/hydden-logo.js +8 -0
  9. package/dist/components/branding/hydden-logo.js.map +1 -0
  10. package/dist/components/branding/microsoft-logo.d.ts +14 -0
  11. package/dist/components/branding/microsoft-logo.d.ts.map +1 -0
  12. package/dist/components/branding/microsoft-logo.js +25 -0
  13. package/dist/components/branding/microsoft-logo.js.map +1 -0
  14. package/dist/components/data-display/avatar/avatar.d.ts +24 -0
  15. package/dist/components/data-display/avatar/avatar.d.ts.map +1 -0
  16. package/dist/components/data-display/avatar/avatar.js +25 -0
  17. package/dist/components/data-display/avatar/avatar.js.map +1 -0
  18. package/dist/components/data-display/avatar/index.d.ts +3 -0
  19. package/dist/components/data-display/avatar/index.d.ts.map +1 -0
  20. package/dist/components/data-display/badge/badge.d.ts +24 -0
  21. package/dist/components/data-display/badge/badge.d.ts.map +1 -0
  22. package/dist/components/data-display/badge/badge.js +27 -0
  23. package/dist/components/data-display/badge/badge.js.map +1 -0
  24. package/dist/components/data-display/badge/index.d.ts +5 -0
  25. package/dist/components/data-display/badge/index.d.ts.map +1 -0
  26. package/dist/components/data-display/badge/status-label.d.ts +25 -0
  27. package/dist/components/data-display/badge/status-label.d.ts.map +1 -0
  28. package/dist/components/data-display/badge/status-label.js +63 -0
  29. package/dist/components/data-display/badge/status-label.js.map +1 -0
  30. package/dist/components/data-display/chip/chip.d.ts +42 -0
  31. package/dist/components/data-display/chip/chip.d.ts.map +1 -0
  32. package/dist/components/data-display/chip/chip.js +79 -0
  33. package/dist/components/data-display/chip/chip.js.map +1 -0
  34. package/dist/components/data-display/chip/index.d.ts +3 -0
  35. package/dist/components/data-display/chip/index.d.ts.map +1 -0
  36. package/dist/components/data-display/code-block/code-block.d.ts +17 -0
  37. package/dist/components/data-display/code-block/code-block.d.ts.map +1 -0
  38. package/dist/components/data-display/code-block/code-block.js +34 -0
  39. package/dist/components/data-display/code-block/code-block.js.map +1 -0
  40. package/dist/components/data-display/data-table/data-table.d.ts +226 -0
  41. package/dist/components/data-display/data-table/data-table.d.ts.map +1 -0
  42. package/dist/components/data-display/data-table/data-table.js +404 -0
  43. package/dist/components/data-display/data-table/data-table.js.map +1 -0
  44. package/dist/components/data-display/data-table/index.d.ts +5 -0
  45. package/dist/components/data-display/data-table/index.d.ts.map +1 -0
  46. package/dist/components/data-display/data-table/use-table.d.ts +42 -0
  47. package/dist/components/data-display/data-table/use-table.d.ts.map +1 -0
  48. package/dist/components/data-display/data-table/use-table.js +120 -0
  49. package/dist/components/data-display/data-table/use-table.js.map +1 -0
  50. package/dist/components/data-display/empty-state/empty-state.d.ts +8 -0
  51. package/dist/components/data-display/empty-state/empty-state.d.ts.map +1 -0
  52. package/dist/components/data-display/empty-state/empty-state.js +17 -0
  53. package/dist/components/data-display/empty-state/empty-state.js.map +1 -0
  54. package/dist/components/data-display/empty-state/index.d.ts +3 -0
  55. package/dist/components/data-display/empty-state/index.d.ts.map +1 -0
  56. package/dist/components/data-display/list/index.d.ts +3 -0
  57. package/dist/components/data-display/list/index.d.ts.map +1 -0
  58. package/dist/components/data-display/list/list.d.ts +31 -0
  59. package/dist/components/data-display/list/list.d.ts.map +1 -0
  60. package/dist/components/data-display/list/list.js +16 -0
  61. package/dist/components/data-display/list/list.js.map +1 -0
  62. package/dist/components/data-display/table/index.d.ts +3 -0
  63. package/dist/components/data-display/table/index.d.ts.map +1 -0
  64. package/dist/components/data-display/table/table.d.ts +101 -0
  65. package/dist/components/data-display/table/table.d.ts.map +1 -0
  66. package/dist/components/data-display/table/table.js +98 -0
  67. package/dist/components/data-display/table/table.js.map +1 -0
  68. package/dist/components/data-display/timeline/index.d.ts +3 -0
  69. package/dist/components/data-display/timeline/index.d.ts.map +1 -0
  70. package/dist/components/data-display/timeline/timeline.d.ts +57 -0
  71. package/dist/components/data-display/timeline/timeline.d.ts.map +1 -0
  72. package/dist/components/data-display/timeline/timeline.js +52 -0
  73. package/dist/components/data-display/timeline/timeline.js.map +1 -0
  74. package/dist/components/feedback/alert/alert.d.ts +27 -0
  75. package/dist/components/feedback/alert/alert.d.ts.map +1 -0
  76. package/dist/components/feedback/alert/alert.js +86 -0
  77. package/dist/components/feedback/alert/alert.js.map +1 -0
  78. package/dist/components/feedback/alert/index.d.ts +3 -0
  79. package/dist/components/feedback/alert/index.d.ts.map +1 -0
  80. package/dist/components/feedback/dialog/delete-dialog.d.ts +41 -0
  81. package/dist/components/feedback/dialog/delete-dialog.d.ts.map +1 -0
  82. package/dist/components/feedback/dialog/delete-dialog.js +52 -0
  83. package/dist/components/feedback/dialog/delete-dialog.js.map +1 -0
  84. package/dist/components/feedback/dialog/dialog.d.ts +24 -0
  85. package/dist/components/feedback/dialog/dialog.d.ts.map +1 -0
  86. package/dist/components/feedback/dialog/dialog.js +15 -0
  87. package/dist/components/feedback/dialog/dialog.js.map +1 -0
  88. package/dist/components/feedback/dialog/index.d.ts +5 -0
  89. package/dist/components/feedback/dialog/index.d.ts.map +1 -0
  90. package/dist/components/feedback/error-page/error-400.d.ts +22 -0
  91. package/dist/components/feedback/error-page/error-400.d.ts.map +1 -0
  92. package/dist/components/feedback/error-page/error-400.js +28 -0
  93. package/dist/components/feedback/error-page/error-400.js.map +1 -0
  94. package/dist/components/feedback/error-page/error-401.d.ts +26 -0
  95. package/dist/components/feedback/error-page/error-401.d.ts.map +1 -0
  96. package/dist/components/feedback/error-page/error-401.js +33 -0
  97. package/dist/components/feedback/error-page/error-401.js.map +1 -0
  98. package/dist/components/feedback/error-page/error-403.d.ts +26 -0
  99. package/dist/components/feedback/error-page/error-403.d.ts.map +1 -0
  100. package/dist/components/feedback/error-page/error-403.js +33 -0
  101. package/dist/components/feedback/error-page/error-403.js.map +1 -0
  102. package/dist/components/feedback/error-page/error-404.d.ts +26 -0
  103. package/dist/components/feedback/error-page/error-404.d.ts.map +1 -0
  104. package/dist/components/feedback/error-page/error-404.js +33 -0
  105. package/dist/components/feedback/error-page/error-404.js.map +1 -0
  106. package/dist/components/feedback/error-page/index.d.ts +9 -0
  107. package/dist/components/feedback/error-page/index.d.ts.map +1 -0
  108. package/dist/components/feedback/loading-container/index.d.ts +3 -0
  109. package/dist/components/feedback/loading-container/index.d.ts.map +1 -0
  110. package/dist/components/feedback/loading-container/loading-container.d.ts +16 -0
  111. package/dist/components/feedback/loading-container/loading-container.d.ts.map +1 -0
  112. package/dist/components/feedback/loading-container/loading-container.js +28 -0
  113. package/dist/components/feedback/loading-container/loading-container.js.map +1 -0
  114. package/dist/components/feedback/modal/index.d.ts +3 -0
  115. package/dist/components/feedback/modal/index.d.ts.map +1 -0
  116. package/dist/components/feedback/modal/modal.d.ts +33 -0
  117. package/dist/components/feedback/modal/modal.d.ts.map +1 -0
  118. package/dist/components/feedback/modal/modal.js +88 -0
  119. package/dist/components/feedback/modal/modal.js.map +1 -0
  120. package/dist/components/feedback/overlay/useOverlay.d.ts +24 -0
  121. package/dist/components/feedback/overlay/useOverlay.d.ts.map +1 -0
  122. package/dist/components/feedback/overlay/useOverlay.js +119 -0
  123. package/dist/components/feedback/overlay/useOverlay.js.map +1 -0
  124. package/dist/components/feedback/popover/index.d.ts +3 -0
  125. package/dist/components/feedback/popover/index.d.ts.map +1 -0
  126. package/dist/components/feedback/popover/popover.d.ts +25 -0
  127. package/dist/components/feedback/popover/popover.d.ts.map +1 -0
  128. package/dist/components/feedback/popover/popover.js +118 -0
  129. package/dist/components/feedback/popover/popover.js.map +1 -0
  130. package/dist/components/feedback/progress-bar/index.d.ts +3 -0
  131. package/dist/components/feedback/progress-bar/index.d.ts.map +1 -0
  132. package/dist/components/feedback/progress-bar/progress-bar.d.ts +22 -0
  133. package/dist/components/feedback/progress-bar/progress-bar.d.ts.map +1 -0
  134. package/dist/components/feedback/progress-bar/progress-bar.js +27 -0
  135. package/dist/components/feedback/progress-bar/progress-bar.js.map +1 -0
  136. package/dist/components/feedback/skeleton/index.d.ts +3 -0
  137. package/dist/components/feedback/skeleton/index.d.ts.map +1 -0
  138. package/dist/components/feedback/skeleton/skeleton.d.ts +19 -0
  139. package/dist/components/feedback/skeleton/skeleton.d.ts.map +1 -0
  140. package/dist/components/feedback/skeleton/skeleton.js +28 -0
  141. package/dist/components/feedback/skeleton/skeleton.js.map +1 -0
  142. package/dist/components/feedback/smooth-transition/index.d.ts +3 -0
  143. package/dist/components/feedback/smooth-transition/index.d.ts.map +1 -0
  144. package/dist/components/feedback/smooth-transition/smooth-transition.d.ts +68 -0
  145. package/dist/components/feedback/smooth-transition/smooth-transition.d.ts.map +1 -0
  146. package/dist/components/feedback/smooth-transition/smooth-transition.js +89 -0
  147. package/dist/components/feedback/smooth-transition/smooth-transition.js.map +1 -0
  148. package/dist/components/feedback/spinner/index.d.ts +3 -0
  149. package/dist/components/feedback/spinner/index.d.ts.map +1 -0
  150. package/dist/components/feedback/spinner/spinner.d.ts +21 -0
  151. package/dist/components/feedback/spinner/spinner.d.ts.map +1 -0
  152. package/dist/components/feedback/spinner/spinner.js +27 -0
  153. package/dist/components/feedback/spinner/spinner.js.map +1 -0
  154. package/dist/components/feedback/toast/index.d.ts +3 -0
  155. package/dist/components/feedback/toast/index.d.ts.map +1 -0
  156. package/dist/components/feedback/toast/toast.d.ts +23 -0
  157. package/dist/components/feedback/toast/toast.d.ts.map +1 -0
  158. package/dist/components/feedback/toast/toast.js +45 -0
  159. package/dist/components/feedback/toast/toast.js.map +1 -0
  160. package/dist/components/feedback/tooltip/index.d.ts +3 -0
  161. package/dist/components/feedback/tooltip/index.d.ts.map +1 -0
  162. package/dist/components/feedback/tooltip/tooltip.d.ts +39 -0
  163. package/dist/components/feedback/tooltip/tooltip.d.ts.map +1 -0
  164. package/dist/components/feedback/tooltip/tooltip.js +129 -0
  165. package/dist/components/feedback/tooltip/tooltip.js.map +1 -0
  166. package/dist/components/forms/button/button-with-icon.d.ts +18 -0
  167. package/dist/components/forms/button/button-with-icon.d.ts.map +1 -0
  168. package/dist/components/forms/button/button-with-icon.js +15 -0
  169. package/dist/components/forms/button/button-with-icon.js.map +1 -0
  170. package/dist/components/forms/button/button.d.ts +66 -0
  171. package/dist/components/forms/button/button.d.ts.map +1 -0
  172. package/dist/components/forms/button/button.examples.d.ts +73 -0
  173. package/dist/components/forms/button/button.examples.d.ts.map +1 -0
  174. package/dist/components/forms/button/button.js +118 -0
  175. package/dist/components/forms/button/button.js.map +1 -0
  176. package/dist/components/forms/button/icon-button.d.ts +23 -0
  177. package/dist/components/forms/button/icon-button.d.ts.map +1 -0
  178. package/dist/components/forms/button/icon-button.js +85 -0
  179. package/dist/components/forms/button/icon-button.js.map +1 -0
  180. package/dist/components/forms/button/index.d.ts +10 -0
  181. package/dist/components/forms/button/index.d.ts.map +1 -0
  182. package/dist/components/forms/button/inline-button.d.ts +45 -0
  183. package/dist/components/forms/button/inline-button.d.ts.map +1 -0
  184. package/dist/components/forms/button/inline-button.js +59 -0
  185. package/dist/components/forms/button/inline-button.js.map +1 -0
  186. package/dist/components/forms/button-group/button-group.d.ts +20 -0
  187. package/dist/components/forms/button-group/button-group.d.ts.map +1 -0
  188. package/dist/components/forms/button-group/button-group.js +24 -0
  189. package/dist/components/forms/button-group/button-group.js.map +1 -0
  190. package/dist/components/forms/button-group/index.d.ts +3 -0
  191. package/dist/components/forms/button-group/index.d.ts.map +1 -0
  192. package/dist/components/forms/calendar/calendar.d.ts +37 -0
  193. package/dist/components/forms/calendar/calendar.d.ts.map +1 -0
  194. package/dist/components/forms/calendar/calendar.js +131 -0
  195. package/dist/components/forms/calendar/calendar.js.map +1 -0
  196. package/dist/components/forms/calendar/index.d.ts +3 -0
  197. package/dist/components/forms/calendar/index.d.ts.map +1 -0
  198. package/dist/components/forms/checkbox/checkbox.d.ts +31 -0
  199. package/dist/components/forms/checkbox/checkbox.d.ts.map +1 -0
  200. package/dist/components/forms/checkbox/checkbox.js +39 -0
  201. package/dist/components/forms/checkbox/checkbox.js.map +1 -0
  202. package/dist/components/forms/checkbox/index.d.ts +3 -0
  203. package/dist/components/forms/checkbox/index.d.ts.map +1 -0
  204. package/dist/components/forms/code/code.d.ts +32 -0
  205. package/dist/components/forms/code/code.d.ts.map +1 -0
  206. package/dist/components/forms/code/code.js +31 -0
  207. package/dist/components/forms/code/code.js.map +1 -0
  208. package/dist/components/forms/code/index.d.ts +1 -0
  209. package/dist/components/forms/code/index.d.ts.map +1 -0
  210. package/dist/components/forms/date-picker/date-picker.d.ts +72 -0
  211. package/dist/components/forms/date-picker/date-picker.d.ts.map +1 -0
  212. package/dist/components/forms/date-picker/date-picker.js +173 -0
  213. package/dist/components/forms/date-picker/date-picker.js.map +1 -0
  214. package/dist/components/forms/date-picker/index.d.ts +3 -0
  215. package/dist/components/forms/date-picker/index.d.ts.map +1 -0
  216. package/dist/components/forms/editable-text/editable-text.d.ts +59 -0
  217. package/dist/components/forms/editable-text/editable-text.d.ts.map +1 -0
  218. package/dist/components/forms/editable-text/editable-text.js +188 -0
  219. package/dist/components/forms/editable-text/editable-text.js.map +1 -0
  220. package/dist/components/forms/editable-text/index.d.ts +3 -0
  221. package/dist/components/forms/editable-text/index.d.ts.map +1 -0
  222. package/dist/components/forms/fieldset/fieldset.d.ts +46 -0
  223. package/dist/components/forms/fieldset/fieldset.d.ts.map +1 -0
  224. package/dist/components/forms/fieldset/fieldset.js +40 -0
  225. package/dist/components/forms/fieldset/fieldset.js.map +1 -0
  226. package/dist/components/forms/fieldset/index.d.ts +3 -0
  227. package/dist/components/forms/fieldset/index.d.ts.map +1 -0
  228. package/dist/components/forms/form/form-example.d.ts +11 -0
  229. package/dist/components/forms/form/form-example.d.ts.map +1 -0
  230. package/dist/components/forms/form/form.d.ts +44 -0
  231. package/dist/components/forms/form/form.d.ts.map +1 -0
  232. package/dist/components/forms/form/form.js +39 -0
  233. package/dist/components/forms/form/form.js.map +1 -0
  234. package/dist/components/forms/form/index.d.ts +3 -0
  235. package/dist/components/forms/form/index.d.ts.map +1 -0
  236. package/dist/components/forms/form-checkbox/form-checkbox.d.ts +27 -0
  237. package/dist/components/forms/form-checkbox/form-checkbox.d.ts.map +1 -0
  238. package/dist/components/forms/form-checkbox/form-checkbox.js +58 -0
  239. package/dist/components/forms/form-checkbox/form-checkbox.js.map +1 -0
  240. package/dist/components/forms/form-checkbox/index.d.ts +3 -0
  241. package/dist/components/forms/form-checkbox/index.d.ts.map +1 -0
  242. package/dist/components/forms/form-checkbox-group/form-checkbox-group.d.ts +40 -0
  243. package/dist/components/forms/form-checkbox-group/form-checkbox-group.d.ts.map +1 -0
  244. package/dist/components/forms/form-checkbox-group/form-checkbox-group.js +74 -0
  245. package/dist/components/forms/form-checkbox-group/form-checkbox-group.js.map +1 -0
  246. package/dist/components/forms/form-field/form-field.d.ts +53 -0
  247. package/dist/components/forms/form-field/form-field.d.ts.map +1 -0
  248. package/dist/components/forms/form-field/form-field.js +56 -0
  249. package/dist/components/forms/form-field/form-field.js.map +1 -0
  250. package/dist/components/forms/form-field/index.d.ts +3 -0
  251. package/dist/components/forms/form-field/index.d.ts.map +1 -0
  252. package/dist/components/forms/form-input/form-input.d.ts +60 -0
  253. package/dist/components/forms/form-input/form-input.d.ts.map +1 -0
  254. package/dist/components/forms/form-input/form-input.js +53 -0
  255. package/dist/components/forms/form-input/form-input.js.map +1 -0
  256. package/dist/components/forms/form-select/form-select.d.ts +32 -0
  257. package/dist/components/forms/form-select/form-select.d.ts.map +1 -0
  258. package/dist/components/forms/form-select/form-select.js +34 -0
  259. package/dist/components/forms/form-select/form-select.js.map +1 -0
  260. package/dist/components/forms/form-textarea/form-textarea.d.ts +31 -0
  261. package/dist/components/forms/form-textarea/form-textarea.d.ts.map +1 -0
  262. package/dist/components/forms/form-textarea/form-textarea.js +34 -0
  263. package/dist/components/forms/form-textarea/form-textarea.js.map +1 -0
  264. package/dist/components/forms/input/index.d.ts +3 -0
  265. package/dist/components/forms/input/index.d.ts.map +1 -0
  266. package/dist/components/forms/input/input.d.ts +71 -0
  267. package/dist/components/forms/input/input.d.ts.map +1 -0
  268. package/dist/components/forms/input/input.js +64 -0
  269. package/dist/components/forms/input/input.js.map +1 -0
  270. package/dist/components/forms/input-group/index.d.ts +3 -0
  271. package/dist/components/forms/input-group/index.d.ts.map +1 -0
  272. package/dist/components/forms/input-group/input-group.d.ts +43 -0
  273. package/dist/components/forms/input-group/input-group.d.ts.map +1 -0
  274. package/dist/components/forms/input-group/input-group.js +55 -0
  275. package/dist/components/forms/input-group/input-group.js.map +1 -0
  276. package/dist/components/forms/multi-select/index.d.ts +3 -0
  277. package/dist/components/forms/multi-select/index.d.ts.map +1 -0
  278. package/dist/components/forms/multi-select/multi-select.d.ts +75 -0
  279. package/dist/components/forms/multi-select/multi-select.d.ts.map +1 -0
  280. package/dist/components/forms/multi-select/multi-select.js +259 -0
  281. package/dist/components/forms/multi-select/multi-select.js.map +1 -0
  282. package/dist/components/forms/radio/index.d.ts +3 -0
  283. package/dist/components/forms/radio/index.d.ts.map +1 -0
  284. package/dist/components/forms/radio/radio.d.ts +31 -0
  285. package/dist/components/forms/radio/radio.d.ts.map +1 -0
  286. package/dist/components/forms/radio/radio.js +74 -0
  287. package/dist/components/forms/radio/radio.js.map +1 -0
  288. package/dist/components/forms/radio-group/index.d.ts +3 -0
  289. package/dist/components/forms/radio-group/index.d.ts.map +1 -0
  290. package/dist/components/forms/radio-group/radio-group.d.ts +32 -0
  291. package/dist/components/forms/radio-group/radio-group.d.ts.map +1 -0
  292. package/dist/components/forms/radio-group/radio-group.js +28 -0
  293. package/dist/components/forms/radio-group/radio-group.js.map +1 -0
  294. package/dist/components/forms/select/index.d.ts +5 -0
  295. package/dist/components/forms/select/index.d.ts.map +1 -0
  296. package/dist/components/forms/select/select-item.d.ts +16 -0
  297. package/dist/components/forms/select/select-item.d.ts.map +1 -0
  298. package/dist/components/forms/select/select-item.js +9 -0
  299. package/dist/components/forms/select/select-item.js.map +1 -0
  300. package/dist/components/forms/select/select.d.ts +52 -0
  301. package/dist/components/forms/select/select.d.ts.map +1 -0
  302. package/dist/components/forms/select/select.js +51 -0
  303. package/dist/components/forms/select/select.js.map +1 -0
  304. package/dist/components/forms/slider/index.d.ts +3 -0
  305. package/dist/components/forms/slider/index.d.ts.map +1 -0
  306. package/dist/components/forms/slider/slider.d.ts +21 -0
  307. package/dist/components/forms/slider/slider.d.ts.map +1 -0
  308. package/dist/components/forms/slider/slider.js +65 -0
  309. package/dist/components/forms/slider/slider.js.map +1 -0
  310. package/dist/components/forms/switch/index.d.ts +3 -0
  311. package/dist/components/forms/switch/index.d.ts.map +1 -0
  312. package/dist/components/forms/switch/switch.d.ts +30 -0
  313. package/dist/components/forms/switch/switch.d.ts.map +1 -0
  314. package/dist/components/forms/switch/switch.js +104 -0
  315. package/dist/components/forms/switch/switch.js.map +1 -0
  316. package/dist/components/forms/textarea/index.d.ts +3 -0
  317. package/dist/components/forms/textarea/index.d.ts.map +1 -0
  318. package/dist/components/forms/textarea/textarea.d.ts +54 -0
  319. package/dist/components/forms/textarea/textarea.d.ts.map +1 -0
  320. package/dist/components/forms/textarea/textarea.js +55 -0
  321. package/dist/components/forms/textarea/textarea.js.map +1 -0
  322. package/dist/components/index.d.ts +124 -0
  323. package/dist/components/index.d.ts.map +1 -0
  324. package/dist/components/layout/accordion/accordion.d.ts +30 -0
  325. package/dist/components/layout/accordion/accordion.d.ts.map +1 -0
  326. package/dist/components/layout/accordion/accordion.js +38 -0
  327. package/dist/components/layout/accordion/accordion.js.map +1 -0
  328. package/dist/components/layout/accordion/index.d.ts +3 -0
  329. package/dist/components/layout/accordion/index.d.ts.map +1 -0
  330. package/dist/components/layout/action-card/action-card.d.ts +37 -0
  331. package/dist/components/layout/action-card/action-card.d.ts.map +1 -0
  332. package/dist/components/layout/action-card/action-card.js +104 -0
  333. package/dist/components/layout/action-card/action-card.js.map +1 -0
  334. package/dist/components/layout/action-card/index.d.ts +3 -0
  335. package/dist/components/layout/action-card/index.d.ts.map +1 -0
  336. package/dist/components/layout/card/card-actions.d.ts +47 -0
  337. package/dist/components/layout/card/card-actions.d.ts.map +1 -0
  338. package/dist/components/layout/card/card-actions.js +30 -0
  339. package/dist/components/layout/card/card-actions.js.map +1 -0
  340. package/dist/components/layout/card/card-body.d.ts +26 -0
  341. package/dist/components/layout/card/card-body.d.ts.map +1 -0
  342. package/dist/components/layout/card/card-body.js +22 -0
  343. package/dist/components/layout/card/card-body.js.map +1 -0
  344. package/dist/components/layout/card/card-figure.d.ts +50 -0
  345. package/dist/components/layout/card/card-figure.d.ts.map +1 -0
  346. package/dist/components/layout/card/card-figure.js +27 -0
  347. package/dist/components/layout/card/card-figure.js.map +1 -0
  348. package/dist/components/layout/card/card-footer.d.ts +46 -0
  349. package/dist/components/layout/card/card-footer.d.ts.map +1 -0
  350. package/dist/components/layout/card/card-footer.js +39 -0
  351. package/dist/components/layout/card/card-footer.js.map +1 -0
  352. package/dist/components/layout/card/card-header.d.ts +41 -0
  353. package/dist/components/layout/card/card-header.d.ts.map +1 -0
  354. package/dist/components/layout/card/card-header.js +27 -0
  355. package/dist/components/layout/card/card-header.js.map +1 -0
  356. package/dist/components/layout/card/card-title.d.ts +43 -0
  357. package/dist/components/layout/card/card-title.d.ts.map +1 -0
  358. package/dist/components/layout/card/card-title.js +21 -0
  359. package/dist/components/layout/card/card-title.js.map +1 -0
  360. package/dist/components/layout/card/card.d.ts +74 -0
  361. package/dist/components/layout/card/card.d.ts.map +1 -0
  362. package/dist/components/layout/card/card.js +64 -0
  363. package/dist/components/layout/card/card.js.map +1 -0
  364. package/dist/components/layout/card/index.d.ts +15 -0
  365. package/dist/components/layout/card/index.d.ts.map +1 -0
  366. package/dist/components/layout/container/container.d.ts +33 -0
  367. package/dist/components/layout/container/container.d.ts.map +1 -0
  368. package/dist/components/layout/container/container.js +36 -0
  369. package/dist/components/layout/container/container.js.map +1 -0
  370. package/dist/components/layout/container/index.d.ts +3 -0
  371. package/dist/components/layout/container/index.d.ts.map +1 -0
  372. package/dist/components/layout/divider/divider.d.ts +15 -0
  373. package/dist/components/layout/divider/divider.d.ts.map +1 -0
  374. package/dist/components/layout/divider/divider.js +10 -0
  375. package/dist/components/layout/divider/divider.js.map +1 -0
  376. package/dist/components/layout/divider/index.d.ts +3 -0
  377. package/dist/components/layout/divider/index.d.ts.map +1 -0
  378. package/dist/components/layout/drawer/drawer.d.ts +35 -0
  379. package/dist/components/layout/drawer/drawer.d.ts.map +1 -0
  380. package/dist/components/layout/drawer/drawer.js +108 -0
  381. package/dist/components/layout/drawer/drawer.js.map +1 -0
  382. package/dist/components/layout/drawer/index.d.ts +3 -0
  383. package/dist/components/layout/drawer/index.d.ts.map +1 -0
  384. package/dist/components/layout/feature-section/feature-section.d.ts +36 -0
  385. package/dist/components/layout/feature-section/feature-section.d.ts.map +1 -0
  386. package/dist/components/layout/feature-section/feature-section.js +37 -0
  387. package/dist/components/layout/feature-section/feature-section.js.map +1 -0
  388. package/dist/components/layout/feature-section/index.d.ts +3 -0
  389. package/dist/components/layout/feature-section/index.d.ts.map +1 -0
  390. package/dist/components/layout/footer/footer.d.ts +37 -0
  391. package/dist/components/layout/footer/footer.d.ts.map +1 -0
  392. package/dist/components/layout/footer/footer.js +36 -0
  393. package/dist/components/layout/footer/footer.js.map +1 -0
  394. package/dist/components/layout/footer/index.d.ts +3 -0
  395. package/dist/components/layout/footer/index.d.ts.map +1 -0
  396. package/dist/components/layout/grid/grid.d.ts +66 -0
  397. package/dist/components/layout/grid/grid.d.ts.map +1 -0
  398. package/dist/components/layout/grid/grid.js +62 -0
  399. package/dist/components/layout/grid/grid.js.map +1 -0
  400. package/dist/components/layout/grid/index.d.ts +3 -0
  401. package/dist/components/layout/grid/index.d.ts.map +1 -0
  402. package/dist/components/layout/hero/hero.d.ts +61 -0
  403. package/dist/components/layout/hero/hero.d.ts.map +1 -0
  404. package/dist/components/layout/hero/hero.js +79 -0
  405. package/dist/components/layout/hero/hero.js.map +1 -0
  406. package/dist/components/layout/hero/index.d.ts +3 -0
  407. package/dist/components/layout/hero/index.d.ts.map +1 -0
  408. package/dist/components/layout/left-nav-layout/index.d.ts +7 -0
  409. package/dist/components/layout/left-nav-layout/index.d.ts.map +1 -0
  410. package/dist/components/layout/left-nav-layout/left-nav-item.d.ts +56 -0
  411. package/dist/components/layout/left-nav-layout/left-nav-item.d.ts.map +1 -0
  412. package/dist/components/layout/left-nav-layout/left-nav-item.js +105 -0
  413. package/dist/components/layout/left-nav-layout/left-nav-item.js.map +1 -0
  414. package/dist/components/layout/left-nav-layout/left-nav-layout.d.ts +67 -0
  415. package/dist/components/layout/left-nav-layout/left-nav-layout.d.ts.map +1 -0
  416. package/dist/components/layout/left-nav-layout/left-nav-layout.js +182 -0
  417. package/dist/components/layout/left-nav-layout/left-nav-layout.js.map +1 -0
  418. package/dist/components/layout/left-nav-layout/left-nav-section.d.ts +40 -0
  419. package/dist/components/layout/left-nav-layout/left-nav-section.d.ts.map +1 -0
  420. package/dist/components/layout/left-nav-layout/left-nav-section.js +119 -0
  421. package/dist/components/layout/left-nav-layout/left-nav-section.js.map +1 -0
  422. package/dist/components/layout/page/index.d.ts +3 -0
  423. package/dist/components/layout/page/index.d.ts.map +1 -0
  424. package/dist/components/layout/page/page.d.ts +17 -0
  425. package/dist/components/layout/page/page.d.ts.map +1 -0
  426. package/dist/components/layout/page/page.js +9 -0
  427. package/dist/components/layout/page/page.js.map +1 -0
  428. package/dist/components/layout/page-header/index.d.ts +3 -0
  429. package/dist/components/layout/page-header/index.d.ts.map +1 -0
  430. package/dist/components/layout/page-header/page-header.d.ts +21 -0
  431. package/dist/components/layout/page-header/page-header.d.ts.map +1 -0
  432. package/dist/components/layout/page-header/page-header.js +18 -0
  433. package/dist/components/layout/page-header/page-header.js.map +1 -0
  434. package/dist/components/layout/page-transition/index.d.ts +3 -0
  435. package/dist/components/layout/page-transition/index.d.ts.map +1 -0
  436. package/dist/components/layout/page-transition/page-transition.d.ts +52 -0
  437. package/dist/components/layout/page-transition/page-transition.d.ts.map +1 -0
  438. package/dist/components/layout/page-transition/page-transition.js +43 -0
  439. package/dist/components/layout/page-transition/page-transition.js.map +1 -0
  440. package/dist/components/layout/section/index.d.ts +3 -0
  441. package/dist/components/layout/section/index.d.ts.map +1 -0
  442. package/dist/components/layout/section/section.d.ts +35 -0
  443. package/dist/components/layout/section/section.d.ts.map +1 -0
  444. package/dist/components/layout/section/section.js +18 -0
  445. package/dist/components/layout/section/section.js.map +1 -0
  446. package/dist/components/layout/section-header/index.d.ts +3 -0
  447. package/dist/components/layout/section-header/index.d.ts.map +1 -0
  448. package/dist/components/layout/section-header/section-header.d.ts +23 -0
  449. package/dist/components/layout/section-header/section-header.d.ts.map +1 -0
  450. package/dist/components/layout/section-header/section-header.js +18 -0
  451. package/dist/components/layout/section-header/section-header.js.map +1 -0
  452. package/dist/components/layout/settings-page/index.d.ts +4 -0
  453. package/dist/components/layout/settings-page/index.d.ts.map +1 -0
  454. package/dist/components/layout/settings-page/setting-item.d.ts +52 -0
  455. package/dist/components/layout/settings-page/setting-item.d.ts.map +1 -0
  456. package/dist/components/layout/settings-page/setting-item.js +31 -0
  457. package/dist/components/layout/settings-page/setting-item.js.map +1 -0
  458. package/dist/components/layout/settings-page/settings-page.d.ts +37 -0
  459. package/dist/components/layout/settings-page/settings-page.d.ts.map +1 -0
  460. package/dist/components/layout/settings-page/settings-page.js +18 -0
  461. package/dist/components/layout/settings-page/settings-page.js.map +1 -0
  462. package/dist/components/layout/settings-page/settings-section.d.ts +35 -0
  463. package/dist/components/layout/settings-page/settings-section.d.ts.map +1 -0
  464. package/dist/components/layout/settings-page/settings-section.js +17 -0
  465. package/dist/components/layout/settings-page/settings-section.js.map +1 -0
  466. package/dist/components/layout/stack/index.d.ts +3 -0
  467. package/dist/components/layout/stack/index.d.ts.map +1 -0
  468. package/dist/components/layout/stack/stack.d.ts +33 -0
  469. package/dist/components/layout/stack/stack.d.ts.map +1 -0
  470. package/dist/components/layout/stack/stack.js +44 -0
  471. package/dist/components/layout/stack/stack.js.map +1 -0
  472. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +61 -0
  473. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  474. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +30 -0
  475. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -0
  476. package/dist/components/navigation/breadcrumbs/index.d.ts +3 -0
  477. package/dist/components/navigation/breadcrumbs/index.d.ts.map +1 -0
  478. package/dist/components/navigation/dropdown/dropdown.d.ts +83 -0
  479. package/dist/components/navigation/dropdown/dropdown.d.ts.map +1 -0
  480. package/dist/components/navigation/dropdown/dropdown.js +295 -0
  481. package/dist/components/navigation/dropdown/dropdown.js.map +1 -0
  482. package/dist/components/navigation/dropdown/index.d.ts +5 -0
  483. package/dist/components/navigation/dropdown/index.d.ts.map +1 -0
  484. package/dist/components/navigation/nav/index.d.ts +3 -0
  485. package/dist/components/navigation/nav/index.d.ts.map +1 -0
  486. package/dist/components/navigation/nav/nav.d.ts +24 -0
  487. package/dist/components/navigation/nav/nav.d.ts.map +1 -0
  488. package/dist/components/navigation/nav/nav.js +32 -0
  489. package/dist/components/navigation/nav/nav.js.map +1 -0
  490. package/dist/components/navigation/nav-dropdown/index.d.ts +5 -0
  491. package/dist/components/navigation/nav-dropdown/index.d.ts.map +1 -0
  492. package/dist/components/navigation/nav-dropdown/nav-dropdown-item.d.ts +17 -0
  493. package/dist/components/navigation/nav-dropdown/nav-dropdown-item.d.ts.map +1 -0
  494. package/dist/components/navigation/nav-dropdown/nav-dropdown-item.js +17 -0
  495. package/dist/components/navigation/nav-dropdown/nav-dropdown-item.js.map +1 -0
  496. package/dist/components/navigation/nav-dropdown/nav-dropdown.d.ts +20 -0
  497. package/dist/components/navigation/nav-dropdown/nav-dropdown.d.ts.map +1 -0
  498. package/dist/components/navigation/nav-dropdown/nav-dropdown.js +24 -0
  499. package/dist/components/navigation/nav-dropdown/nav-dropdown.js.map +1 -0
  500. package/dist/components/navigation/navbar/index.d.ts +9 -0
  501. package/dist/components/navigation/navbar/index.d.ts.map +1 -0
  502. package/dist/components/navigation/navbar/navbar-brand.d.ts +23 -0
  503. package/dist/components/navigation/navbar/navbar-brand.d.ts.map +1 -0
  504. package/dist/components/navigation/navbar/navbar-brand.js +21 -0
  505. package/dist/components/navigation/navbar/navbar-brand.js.map +1 -0
  506. package/dist/components/navigation/navbar/navbar-link.d.ts +23 -0
  507. package/dist/components/navigation/navbar/navbar-link.d.ts.map +1 -0
  508. package/dist/components/navigation/navbar/navbar-link.js +34 -0
  509. package/dist/components/navigation/navbar/navbar-link.js.map +1 -0
  510. package/dist/components/navigation/navbar/navbar-toggle.d.ts +34 -0
  511. package/dist/components/navigation/navbar/navbar-toggle.d.ts.map +1 -0
  512. package/dist/components/navigation/navbar/navbar-toggle.js +37 -0
  513. package/dist/components/navigation/navbar/navbar-toggle.js.map +1 -0
  514. package/dist/components/navigation/navbar/navbar.d.ts +33 -0
  515. package/dist/components/navigation/navbar/navbar.d.ts.map +1 -0
  516. package/dist/components/navigation/navbar/navbar.js +40 -0
  517. package/dist/components/navigation/navbar/navbar.js.map +1 -0
  518. package/dist/components/navigation/notification-dropdown/index.d.ts +3 -0
  519. package/dist/components/navigation/notification-dropdown/index.d.ts.map +1 -0
  520. package/dist/components/navigation/notification-dropdown/notification-dropdown.d.ts +59 -0
  521. package/dist/components/navigation/notification-dropdown/notification-dropdown.d.ts.map +1 -0
  522. package/dist/components/navigation/notification-dropdown/notification-dropdown.js +456 -0
  523. package/dist/components/navigation/notification-dropdown/notification-dropdown.js.map +1 -0
  524. package/dist/components/navigation/pagination/index.d.ts +3 -0
  525. package/dist/components/navigation/pagination/index.d.ts.map +1 -0
  526. package/dist/components/navigation/pagination/pagination.d.ts +21 -0
  527. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -0
  528. package/dist/components/navigation/pagination/pagination.js +72 -0
  529. package/dist/components/navigation/pagination/pagination.js.map +1 -0
  530. package/dist/components/navigation/scroll-nav/index.d.ts +3 -0
  531. package/dist/components/navigation/scroll-nav/index.d.ts.map +1 -0
  532. package/dist/components/navigation/scroll-nav/scroll-nav.d.ts +53 -0
  533. package/dist/components/navigation/scroll-nav/scroll-nav.d.ts.map +1 -0
  534. package/dist/components/navigation/scroll-nav/scroll-nav.js +188 -0
  535. package/dist/components/navigation/scroll-nav/scroll-nav.js.map +1 -0
  536. package/dist/components/navigation/sidebar/index.d.ts +3 -0
  537. package/dist/components/navigation/sidebar/index.d.ts.map +1 -0
  538. package/dist/components/navigation/sidebar/sidebar.d.ts +18 -0
  539. package/dist/components/navigation/sidebar/sidebar.d.ts.map +1 -0
  540. package/dist/components/navigation/sidebar/sidebar.js +41 -0
  541. package/dist/components/navigation/sidebar/sidebar.js.map +1 -0
  542. package/dist/components/navigation/stepper/index.d.ts +3 -0
  543. package/dist/components/navigation/stepper/index.d.ts.map +1 -0
  544. package/dist/components/navigation/stepper/stepper.d.ts +50 -0
  545. package/dist/components/navigation/stepper/stepper.d.ts.map +1 -0
  546. package/dist/components/navigation/stepper/stepper.js +159 -0
  547. package/dist/components/navigation/stepper/stepper.js.map +1 -0
  548. package/dist/components/navigation/tabs/index.d.ts +3 -0
  549. package/dist/components/navigation/tabs/index.d.ts.map +1 -0
  550. package/dist/components/navigation/tabs/tabs.d.ts +32 -0
  551. package/dist/components/navigation/tabs/tabs.d.ts.map +1 -0
  552. package/dist/components/navigation/tabs/tabs.js +61 -0
  553. package/dist/components/navigation/tabs/tabs.js.map +1 -0
  554. package/dist/components/system/auth-provider/auth-provider.d.ts +103 -0
  555. package/dist/components/system/auth-provider/auth-provider.d.ts.map +1 -0
  556. package/dist/components/system/auth-provider/auth-provider.js +118 -0
  557. package/dist/components/system/auth-provider/auth-provider.js.map +1 -0
  558. package/dist/components/system/auth-provider/auth-utils.d.ts +32 -0
  559. package/dist/components/system/auth-provider/auth-utils.d.ts.map +1 -0
  560. package/dist/components/system/auth-provider/auth-utils.js +83 -0
  561. package/dist/components/system/auth-provider/auth-utils.js.map +1 -0
  562. package/dist/components/system/auth-provider/index.d.ts +4 -0
  563. package/dist/components/system/auth-provider/index.d.ts.map +1 -0
  564. package/dist/components/system/color-mode-toggle/color-mode-toggle.d.ts +18 -0
  565. package/dist/components/system/color-mode-toggle/color-mode-toggle.d.ts.map +1 -0
  566. package/dist/components/system/color-mode-toggle/color-mode-toggle.js +27 -0
  567. package/dist/components/system/color-mode-toggle/color-mode-toggle.js.map +1 -0
  568. package/dist/components/system/color-mode-toggle/index.d.ts +3 -0
  569. package/dist/components/system/color-mode-toggle/index.d.ts.map +1 -0
  570. package/dist/components/system/error-boundary/error-boundary.d.ts +21 -0
  571. package/dist/components/system/error-boundary/error-boundary.d.ts.map +1 -0
  572. package/dist/components/system/icon/icon.d.ts +35 -0
  573. package/dist/components/system/icon/icon.d.ts.map +1 -0
  574. package/dist/components/system/icon/icon.js +83 -0
  575. package/dist/components/system/icon/icon.js.map +1 -0
  576. package/dist/components/system/icon/index.d.ts +3 -0
  577. package/dist/components/system/icon/index.d.ts.map +1 -0
  578. package/dist/components/system/theme-provider/index.d.ts +3 -0
  579. package/dist/components/system/theme-provider/index.d.ts.map +1 -0
  580. package/dist/components/system/theme-provider/theme-provider.d.ts +40 -0
  581. package/dist/components/system/theme-provider/theme-provider.d.ts.map +1 -0
  582. package/dist/components/system/theme-provider/theme-provider.js +55 -0
  583. package/dist/components/system/theme-provider/theme-provider.js.map +1 -0
  584. package/dist/components/typography/code/code.d.ts +24 -0
  585. package/dist/components/typography/code/code.d.ts.map +1 -0
  586. package/dist/components/typography/code/code.js +18 -0
  587. package/dist/components/typography/code/code.js.map +1 -0
  588. package/dist/components/typography/code/index.d.ts +3 -0
  589. package/dist/components/typography/code/index.d.ts.map +1 -0
  590. package/dist/components/typography/heading/heading.d.ts +32 -0
  591. package/dist/components/typography/heading/heading.d.ts.map +1 -0
  592. package/dist/components/typography/heading/heading.js +39 -0
  593. package/dist/components/typography/heading/heading.js.map +1 -0
  594. package/dist/components/typography/heading/index.d.ts +3 -0
  595. package/dist/components/typography/heading/index.d.ts.map +1 -0
  596. package/dist/components/typography/link/index.d.ts +3 -0
  597. package/dist/components/typography/link/index.d.ts.map +1 -0
  598. package/dist/components/typography/link/link.d.ts +44 -0
  599. package/dist/components/typography/link/link.d.ts.map +1 -0
  600. package/dist/components/typography/link/link.js +72 -0
  601. package/dist/components/typography/link/link.js.map +1 -0
  602. package/dist/components/typography/text/index.d.ts +3 -0
  603. package/dist/components/typography/text/index.d.ts.map +1 -0
  604. package/dist/components/typography/text/text.d.ts +104 -0
  605. package/dist/components/typography/text/text.d.ts.map +1 -0
  606. package/dist/components/typography/text/text.js +148 -0
  607. package/dist/components/typography/text/text.js.map +1 -0
  608. package/dist/components.d.ts +2 -0
  609. package/dist/components.d.ts.map +1 -0
  610. package/dist/hooks/useDebounce.d.ts +29 -0
  611. package/dist/hooks/useDebounce.d.ts.map +1 -0
  612. package/dist/hooks/useDebounce.js +26 -0
  613. package/dist/hooks/useDebounce.js.map +1 -0
  614. package/dist/hooks/useScrollReset.d.ts +11 -0
  615. package/dist/hooks/useScrollReset.d.ts.map +1 -0
  616. package/dist/hooks/useScrollReset.js +55 -0
  617. package/dist/hooks/useScrollReset.js.map +1 -0
  618. package/dist/humans.txt +8 -0
  619. package/dist/icons/logo.svg +9 -0
  620. package/dist/index.d.ts +7 -1170
  621. package/dist/index.d.ts.map +1 -0
  622. package/dist/index.js +287 -4333
  623. package/dist/index.js.map +1 -1
  624. package/dist/manifest.json +16 -0
  625. package/dist/node_modules/clsx/dist/clsx.js +18 -0
  626. package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
  627. package/dist/robots.txt +5 -0
  628. package/dist/sitemap.xml +8 -0
  629. package/dist/staticwebapp.config.json +23 -0
  630. package/dist/style.css +2 -2
  631. package/dist/styles.d.ts +9 -0
  632. package/dist/theme/hydn-presets.d.ts +4 -0
  633. package/dist/theme/hydn-presets.d.ts.map +1 -0
  634. package/dist/theme/size-tokens.d.ts +686 -0
  635. package/dist/theme/size-tokens.d.ts.map +1 -0
  636. package/dist/theme/size-tokens.js +636 -0
  637. package/dist/theme/size-tokens.js.map +1 -0
  638. package/dist/theme/tokens.d.ts +116 -0
  639. package/dist/theme/tokens.d.ts.map +1 -0
  640. package/dist/theme/tokens.js +164 -0
  641. package/dist/theme/tokens.js.map +1 -0
  642. package/dist/utils/debounce.d.ts +7 -0
  643. package/dist/utils/debounce.d.ts.map +1 -0
  644. package/dist/utils/debounce.js +40 -0
  645. package/dist/utils/debounce.js.map +1 -0
  646. package/package.json +49 -43
  647. package/dist/index.cjs +0 -4425
  648. package/dist/index.cjs.map +0 -1
  649. package/dist/index.d.cts +0 -1170
@@ -0,0 +1,159 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Icon } from "../../system/icon/icon.js";
3
+ function Stepper({
4
+ steps,
5
+ currentStep,
6
+ className = "",
7
+ orientation = "horizontal",
8
+ onStepClick,
9
+ clickable = false
10
+ }) {
11
+ const getStepStatus = (index) => {
12
+ const step = steps[index];
13
+ if (step.status) return step.status;
14
+ if (index < currentStep) return "completed";
15
+ if (index === currentStep) return "current";
16
+ return "pending";
17
+ };
18
+ const renderStep = (step, index) => {
19
+ const status = getStepStatus(index) || "pending";
20
+ const isClickable = clickable;
21
+ const statusStyles = {
22
+ pending: {
23
+ circle: "bg-muted text-muted-foreground border-2 border-muted",
24
+ title: "text-muted-foreground",
25
+ description: "text-muted-foreground"
26
+ },
27
+ current: {
28
+ circle: "bg-primary text-primary-foreground border-2 border-primary",
29
+ title: "text-foreground font-semibold",
30
+ description: "text-muted-foreground"
31
+ },
32
+ completed: {
33
+ circle: "bg-success text-success-foreground border-2 border-success",
34
+ title: "text-foreground",
35
+ description: "text-muted-foreground"
36
+ },
37
+ error: {
38
+ circle: "bg-error text-error-foreground border-2 border-error",
39
+ title: "text-error",
40
+ description: "text-error"
41
+ }
42
+ };
43
+ const styles = statusStyles[status];
44
+ const handleClick = () => {
45
+ if (isClickable && onStepClick) {
46
+ onStepClick(index);
47
+ }
48
+ };
49
+ const handleKeyDown = (e) => {
50
+ if (isClickable && onStepClick && (e.key === "Enter" || e.key === " ")) {
51
+ e.preventDefault();
52
+ onStepClick(index);
53
+ }
54
+ };
55
+ if (orientation === "horizontal") {
56
+ return /* @__PURE__ */ jsxs(
57
+ "div",
58
+ {
59
+ className: `flex-1 flex flex-col items-center ${isClickable ? "cursor-pointer" : ""}`,
60
+ onClick: handleClick,
61
+ onKeyDown: handleKeyDown,
62
+ role: isClickable ? "button" : void 0,
63
+ tabIndex: isClickable ? 0 : void 0,
64
+ "aria-label": `Step ${index + 1}: ${step.title}`,
65
+ "aria-current": status === "current" ? "step" : void 0,
66
+ children: [
67
+ /* @__PURE__ */ jsxs("div", { className: "relative flex items-center w-full", children: [
68
+ index > 0 && /* @__PURE__ */ jsx(
69
+ "div",
70
+ {
71
+ className: `h-0.5 flex-1 ${status === "completed" || status === "current" ? "bg-success" : "bg-muted"}`
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsx(
75
+ "div",
76
+ {
77
+ className: `
78
+ relative z-10 flex items-center justify-center
79
+ w-10 h-10 rounded-full
80
+ transition-[background-color,border-color] duration-300 ease-in-out
81
+ ${styles.circle}
82
+ `,
83
+ children: status === "completed" ? /* @__PURE__ */ jsx(Icon, { name: "check", size: "sm" }) : step.icon ? step.icon : /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold", children: index + 1 })
84
+ }
85
+ ),
86
+ index < steps.length - 1 && /* @__PURE__ */ jsx(
87
+ "div",
88
+ {
89
+ className: `h-0.5 flex-1 transition-colors duration-300 ease-in-out ${status === "completed" ? "bg-success" : "bg-muted"}`
90
+ }
91
+ )
92
+ ] }),
93
+ /* @__PURE__ */ jsxs("div", { className: `mt-3 text-center text-sm transition-colors duration-300 ease-in-out ${styles.title}`, children: [
94
+ step.title,
95
+ step.optional && /* @__PURE__ */ jsx("span", { className: "ml-1 text-xs text-muted-foreground", children: "(Optional)" }),
96
+ step.description && /* @__PURE__ */ jsx("p", { className: `text-xs mt-1 transition-colors duration-300 ease-in-out ${styles.description}`, children: step.description })
97
+ ] })
98
+ ]
99
+ },
100
+ index
101
+ );
102
+ }
103
+ return /* @__PURE__ */ jsxs(
104
+ "div",
105
+ {
106
+ className: `flex gap-4 ${index < steps.length - 1 ? "pb-8" : ""} ${isClickable ? "cursor-pointer" : ""}`,
107
+ onClick: handleClick,
108
+ onKeyDown: handleKeyDown,
109
+ role: isClickable ? "button" : void 0,
110
+ tabIndex: isClickable ? 0 : void 0,
111
+ "aria-label": `Step ${index + 1}: ${step.title}`,
112
+ "aria-current": status === "current" ? "step" : void 0,
113
+ children: [
114
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
115
+ /* @__PURE__ */ jsx(
116
+ "div",
117
+ {
118
+ className: `
119
+ flex items-center justify-center
120
+ w-10 h-10 rounded-full shrink-0
121
+ transition-[background-color,border-color] duration-300 ease-in-out
122
+ ${styles.circle}
123
+ `,
124
+ children: status === "completed" ? /* @__PURE__ */ jsx(Icon, { name: "check", size: "sm" }) : step.icon ? step.icon : /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold", children: index + 1 })
125
+ }
126
+ ),
127
+ index < steps.length - 1 && /* @__PURE__ */ jsx(
128
+ "div",
129
+ {
130
+ className: `w-0.5 flex-1 mt-2 transition-colors duration-300 ease-in-out ${status === "completed" ? "bg-success" : "bg-muted"}`
131
+ }
132
+ )
133
+ ] }),
134
+ /* @__PURE__ */ jsxs("div", { className: `flex-1 pt-2 text-base transition-colors duration-300 ease-in-out ${styles.title}`, children: [
135
+ step.title,
136
+ step.optional && /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs text-muted-foreground", children: "(Optional)" }),
137
+ step.description && /* @__PURE__ */ jsx("p", { className: `text-sm mt-1 transition-colors duration-300 ease-in-out ${styles.description}`, children: step.description })
138
+ ] })
139
+ ]
140
+ },
141
+ index
142
+ );
143
+ };
144
+ return /* @__PURE__ */ jsx(
145
+ "div",
146
+ {
147
+ className: `
148
+ ${orientation === "horizontal" ? "flex items-start" : "flex flex-col"}
149
+ ${className}
150
+ `,
151
+ children: steps.map((step, index) => renderStep(step, index))
152
+ }
153
+ );
154
+ }
155
+ Stepper.displayName = "Stepper";
156
+ export {
157
+ Stepper as default
158
+ };
159
+ //# sourceMappingURL=stepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.js","sources":["../../../../src/components/navigation/stepper/stepper.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport Icon from '../../system/icon/icon';\n\nexport type StepProps = {\n /** Primary text label for the step */\n title: string;\n /** Optional secondary description text */\n description?: string;\n /** Custom icon to display instead of step number */\n icon?: ReactNode;\n /** Current status of the step (auto-determined from currentStep if not set) */\n status?: 'pending' | 'current' | 'completed' | 'error';\n /** Whether this step can be skipped */\n optional?: boolean;\n};\n\nexport type StepperProps = {\n /** Array of step configurations */\n steps: StepProps[];\n /** Zero-based index of the currently active step */\n currentStep: number;\n /** Additional CSS classes for the stepper container */\n className?: string;\n /** Layout direction for the stepper */\n orientation?: 'horizontal' | 'vertical';\n /** Callback fired when a step is clicked (only when clickable is true) */\n onStepClick?: (step: number) => void;\n /** Enable clicking on steps for navigation */\n clickable?: boolean;\n};\n\n/**\n * Stepper - Multi-step progress indicator\n *\n * Features:\n * - Horizontal and vertical orientations\n * - Current, completed, and pending states\n * - Optional steps\n * - Custom icons\n * - Clickable steps (for navigation)\n * - Error states\n *\n * Common uses:\n * - Multi-step forms\n * - Checkout processes\n * - Onboarding flows\n * - Wizards\n */\nfunction Stepper({\n steps,\n currentStep,\n className = '',\n orientation = 'horizontal',\n onStepClick,\n clickable = false\n}: Readonly<StepperProps>) {\n const getStepStatus = (index: number): StepProps['status'] => {\n const step = steps[index];\n if (step.status) return step.status;\n if (index < currentStep) return 'completed';\n if (index === currentStep) return 'current';\n return 'pending';\n };\n\n const renderStep = (step: StepProps, index: number) => {\n const status = getStepStatus(index) || 'pending';\n const isClickable = clickable; // allow clicking any step when clickable enabled\n\n // Status-based styles\n const statusStyles: Record<\n NonNullable<StepProps['status']>,\n {\n circle: string;\n title: string;\n description: string;\n }\n > = {\n pending: {\n circle: 'bg-muted text-muted-foreground border-2 border-muted',\n title: 'text-muted-foreground',\n description: 'text-muted-foreground'\n },\n current: {\n circle: 'bg-primary text-primary-foreground border-2 border-primary',\n title: 'text-foreground font-semibold',\n description: 'text-muted-foreground'\n },\n completed: {\n circle: 'bg-success text-success-foreground border-2 border-success',\n title: 'text-foreground',\n description: 'text-muted-foreground'\n },\n error: {\n circle: 'bg-error text-error-foreground border-2 border-error',\n title: 'text-error',\n description: 'text-error'\n }\n };\n\n const styles = statusStyles[status];\n\n const handleClick = () => {\n if (isClickable && onStepClick) {\n onStepClick(index);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isClickable && onStepClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onStepClick(index);\n }\n };\n\n if (orientation === 'horizontal') {\n return (\n <div\n key={index}\n className={`flex-1 flex flex-col items-center ${isClickable ? 'cursor-pointer' : ''}`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n aria-label={`Step ${index + 1}: ${step.title}`}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n {/* Step Number/Icon */}\n <div className=\"relative flex items-center w-full\">\n {/* Connector Line (Left) */}\n {index > 0 && (\n <div\n className={`h-0.5 flex-1 ${status === 'completed' || status === 'current' ? 'bg-success' : 'bg-muted'}`}\n />\n )}\n\n {/* Circle */}\n <div\n className={`\n relative z-10 flex items-center justify-center\n w-10 h-10 rounded-full\n transition-[background-color,border-color] duration-300 ease-in-out\n ${styles.circle}\n `}\n >\n {status === 'completed' ? (\n <Icon name=\"check\" size=\"sm\" />\n ) : step.icon ? (\n step.icon\n ) : (\n <span className=\"text-sm font-semibold\">{index + 1}</span>\n )}\n </div>\n\n {/* Connector Line (Right) */}\n {index < steps.length - 1 && (\n <div\n className={`h-0.5 flex-1 transition-colors duration-300 ease-in-out ${status === 'completed' ? 'bg-success' : 'bg-muted'}`}\n />\n )}\n </div>\n\n {/* Label */}\n <div className={`mt-3 text-center text-sm transition-colors duration-300 ease-in-out ${styles.title}`}>\n {step.title}\n {step.optional && <span className=\"ml-1 text-xs text-muted-foreground\">(Optional)</span>}\n {step.description && (\n <p className={`text-xs mt-1 transition-colors duration-300 ease-in-out ${styles.description}`}>\n {step.description}\n </p>\n )}\n </div>\n </div>\n );\n }\n\n // Vertical orientation\n return (\n <div\n key={index}\n className={`flex gap-4 ${index < steps.length - 1 ? 'pb-8' : ''} ${isClickable ? 'cursor-pointer' : ''}`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n aria-label={`Step ${index + 1}: ${step.title}`}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n {/* Icon Column */}\n <div className=\"flex flex-col items-center\">\n {/* Circle */}\n <div\n className={`\n flex items-center justify-center\n w-10 h-10 rounded-full shrink-0\n transition-[background-color,border-color] duration-300 ease-in-out\n ${styles.circle}\n `}\n >\n {status === 'completed' ? (\n <Icon name=\"check\" size=\"sm\" />\n ) : step.icon ? (\n step.icon\n ) : (\n <span className=\"text-sm font-semibold\">{index + 1}</span>\n )}\n </div>\n\n {/* Connector Line */}\n {index < steps.length - 1 && (\n <div\n className={`w-0.5 flex-1 mt-2 transition-colors duration-300 ease-in-out ${status === 'completed' ? 'bg-success' : 'bg-muted'}`}\n />\n )}\n </div>\n\n {/* Content Column */}\n <div className={`flex-1 pt-2 text-base transition-colors duration-300 ease-in-out ${styles.title}`}>\n {step.title}\n {step.optional && <span className=\"ml-2 text-xs text-muted-foreground\">(Optional)</span>}\n {step.description && (\n <p className={`text-sm mt-1 transition-colors duration-300 ease-in-out ${styles.description}`}>\n {step.description}\n </p>\n )}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={`\n ${orientation === 'horizontal' ? 'flex items-start' : 'flex flex-col'}\n ${className}\n `}\n >\n {steps.map((step, index) => renderStep(step, index))}\n </div>\n );\n}\n\nStepper.displayName = 'Stepper';\n\nexport default Stepper;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { default } from './tabs';
2
+ export type { TabsProps, Tab } from './tabs';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { default as React } from 'react';
2
+ export type Tab = {
3
+ /** Unique identifier for the tab */
4
+ id: string;
5
+ /** Display text shown in the tab button */
6
+ label: string;
7
+ /** Content to render when this tab is active */
8
+ content: React.ReactNode;
9
+ };
10
+ export type TabsProps = {
11
+ /** Array of tab configurations with id, label, and content */
12
+ tabs: Tab[];
13
+ /** ID of the tab to display initially (defaults to first tab) */
14
+ defaultTab?: string;
15
+ /** Additional CSS classes for the tabs container */
16
+ className?: string;
17
+ /** Accessibility label for the tab list */
18
+ ariaLabel?: string;
19
+ /** Remove the bottom border from the tab list */
20
+ noBorder?: boolean;
21
+ /** Optional localStorage key to persist the active tab */
22
+ storageKey?: string;
23
+ };
24
+ /**
25
+ * Accessible Tabs component with animated tab switching using PageTransition
26
+ */
27
+ declare function Tabs({ tabs, defaultTab, className, ariaLabel, noBorder, storageKey }: Readonly<TabsProps>): import("react/jsx-runtime").JSX.Element;
28
+ declare namespace Tabs {
29
+ var displayName: string;
30
+ }
31
+ export default Tabs;
32
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/tabs/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,MAAM,MAAM,GAAG,GAAG;IAChB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,8DAA8D;IAC9D,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,iBAAS,IAAI,CAAC,EACZ,IAAI,EACJ,UAAU,EACV,SAAc,EACd,SAAkB,EAClB,QAAgB,EAChB,UAAU,EACX,EAAE,QAAQ,CAAC,SAAS,CAAC,2CA6DrB;kBApEQ,IAAI;;;AAwEb,eAAe,IAAI,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { PageTransition } from "../../layout/page-transition/page-transition.js";
4
+ function Tabs({
5
+ tabs,
6
+ defaultTab,
7
+ className = "",
8
+ ariaLabel = "Tabs",
9
+ noBorder = false,
10
+ storageKey
11
+ }) {
12
+ const [activeTab, setActiveTab] = useState(() => {
13
+ if (storageKey) {
14
+ const stored = localStorage.getItem(storageKey);
15
+ if (stored && tabs.some((tab) => tab.id === stored)) {
16
+ return stored;
17
+ }
18
+ }
19
+ return defaultTab || tabs[0]?.id;
20
+ });
21
+ const handleSetActiveTab = (tabId) => {
22
+ setActiveTab(tabId);
23
+ if (storageKey) {
24
+ try {
25
+ localStorage.setItem(storageKey, tabId);
26
+ } catch {
27
+ }
28
+ }
29
+ };
30
+ return /* @__PURE__ */ jsxs("div", { className, children: [
31
+ /* @__PURE__ */ jsx("div", { role: "tablist", "aria-label": ariaLabel, className: `flex ${noBorder ? "" : "border-b-2 border-border/50"}`, children: tabs.map((tab) => /* @__PURE__ */ jsx(
32
+ "button",
33
+ {
34
+ role: "tab",
35
+ "aria-selected": activeTab === tab.id,
36
+ "aria-controls": `panel-${tab.id}`,
37
+ id: `tab-${tab.id}`,
38
+ onClick: () => handleSetActiveTab(tab.id),
39
+ className: `px-4 py-3 font-medium cursor-pointer transition-all duration-200 focus:outline-none relative hover:text-foreground hover:bg-muted/50 ${activeTab === tab.id ? "text-primary hover:text-primary after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-primary after:rounded-t after:transition-all after:duration-200" : "text-muted-foreground"}`,
40
+ children: tab.label
41
+ },
42
+ tab.id
43
+ )) }),
44
+ tabs.map((tab) => /* @__PURE__ */ jsx(
45
+ "div",
46
+ {
47
+ role: "tabpanel",
48
+ id: `panel-${tab.id}`,
49
+ "aria-labelledby": `tab-${tab.id}`,
50
+ hidden: activeTab !== tab.id,
51
+ children: activeTab === tab.id && /* @__PURE__ */ jsx(PageTransition, { type: "fade", duration: 150, children: /* @__PURE__ */ jsx("div", { className: "pt-6", children: tab.content }) })
52
+ },
53
+ tab.id
54
+ ))
55
+ ] });
56
+ }
57
+ Tabs.displayName = "Tabs";
58
+ export {
59
+ Tabs as default
60
+ };
61
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sources":["../../../../src/components/navigation/tabs/tabs.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PageTransition from '../../layout/page-transition/page-transition';\n\nexport type Tab = {\n /** Unique identifier for the tab */\n id: string;\n /** Display text shown in the tab button */\n label: string;\n /** Content to render when this tab is active */\n content: React.ReactNode;\n};\n\nexport type TabsProps = {\n /** Array of tab configurations with id, label, and content */\n tabs: Tab[];\n /** ID of the tab to display initially (defaults to first tab) */\n defaultTab?: string;\n /** Additional CSS classes for the tabs container */\n className?: string;\n /** Accessibility label for the tab list */\n ariaLabel?: string;\n /** Remove the bottom border from the tab list */\n noBorder?: boolean;\n /** Optional localStorage key to persist the active tab */\n storageKey?: string;\n};\n\n/**\n * Accessible Tabs component with animated tab switching using PageTransition\n */\nfunction Tabs({\n tabs,\n defaultTab,\n className = '',\n ariaLabel = 'Tabs',\n noBorder = false,\n storageKey\n}: Readonly<TabsProps>) {\n const [activeTab, setActiveTab] = useState(() => {\n if (storageKey) {\n const stored = localStorage.getItem(storageKey);\n if (stored && tabs.some((tab) => tab.id === stored)) {\n return stored;\n }\n }\n return defaultTab || tabs[0]?.id;\n });\n\n // Save to localStorage whenever activeTab changes\n const handleSetActiveTab = (tabId: string) => {\n setActiveTab(tabId);\n if (storageKey) {\n try {\n localStorage.setItem(storageKey, tabId);\n } catch {\n // Persistence is best-effort; ignore storage errors\n }\n }\n };\n\n return (\n <div className={className}>\n <div role=\"tablist\" aria-label={ariaLabel} className={`flex ${noBorder ? '' : 'border-b-2 border-border/50'}`}>\n {tabs.map((tab) => (\n <button\n key={tab.id}\n role=\"tab\"\n aria-selected={activeTab === tab.id}\n aria-controls={`panel-${tab.id}`}\n id={`tab-${tab.id}`}\n onClick={() => handleSetActiveTab(tab.id)}\n className={`px-4 py-3 font-medium cursor-pointer transition-all duration-200 focus:outline-none relative hover:text-foreground hover:bg-muted/50 ${\n activeTab === tab.id\n ? 'text-primary hover:text-primary after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-primary after:rounded-t after:transition-all after:duration-200'\n : 'text-muted-foreground'\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n {tabs.map((tab) => (\n <div\n key={tab.id}\n role=\"tabpanel\"\n id={`panel-${tab.id}`}\n aria-labelledby={`tab-${tab.id}`}\n hidden={activeTab !== tab.id}\n >\n {activeTab === tab.id && (\n <PageTransition type=\"fade\" duration={150}>\n <div className=\"pt-6\">{tab.content}</div>\n </PageTransition>\n )}\n </div>\n ))}\n </div>\n );\n}\n\nTabs.displayName = 'Tabs';\n\nexport default Tabs;\n"],"names":[],"mappings":";;;AA8BA,SAAS,KAAK;AAAA,EACZ;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AACF,GAAwB;AACtB,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,MAAM;AAC/C,QAAI,YAAY;AACd,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,UAAI,UAAU,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAO,MAAM,GAAG;AACnD,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO,cAAc,KAAK,CAAC,GAAG;AAAA,EAChC,CAAC;AAGD,QAAM,qBAAqB,CAAC,UAAkB;AAC5C,iBAAa,KAAK;AAClB,QAAI,YAAY;AACd,UAAI;AACF,qBAAa,QAAQ,YAAY,KAAK;AAAA,MACxC,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF;AAEA,SACE,qBAAC,SAAI,WACH,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,MAAK,WAAU,cAAY,WAAW,WAAW,QAAQ,WAAW,KAAK,6BAA6B,IACxG,UAAA,KAAK,IAAI,CAAC,QACT;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,iBAAe,cAAc,IAAI;AAAA,QACjC,iBAAe,SAAS,IAAI,EAAE;AAAA,QAC9B,IAAI,OAAO,IAAI,EAAE;AAAA,QACjB,SAAS,MAAM,mBAAmB,IAAI,EAAE;AAAA,QACxC,WAAW,wIACT,cAAc,IAAI,KACd,kLACA,uBACN;AAAA,QAEC,UAAA,IAAI;AAAA,MAAA;AAAA,MAZA,IAAI;AAAA,IAAA,CAcZ,GACH;AAAA,IACC,KAAK,IAAI,CAAC,QACT;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,IAAI,SAAS,IAAI,EAAE;AAAA,QACnB,mBAAiB,OAAO,IAAI,EAAE;AAAA,QAC9B,QAAQ,cAAc,IAAI;AAAA,QAEzB,UAAA,cAAc,IAAI,MACjB,oBAAC,kBAAe,MAAK,QAAO,UAAU,KACpC,8BAAC,OAAA,EAAI,WAAU,QAAQ,UAAA,IAAI,SAAQ,EAAA,CACrC;AAAA,MAAA;AAAA,MATG,IAAI;AAAA,IAAA,CAYZ;AAAA,EAAA,GACH;AAEJ;AAEA,KAAK,cAAc;"}
@@ -0,0 +1,103 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Base user type - extend this in your app
4
+ */
5
+ export interface AuthUser {
6
+ id: string;
7
+ [key: string]: unknown;
8
+ }
9
+ /**
10
+ * Authentication state
11
+ */
12
+ export interface AuthState {
13
+ user: AuthUser | null;
14
+ isLoading: boolean;
15
+ isAuthenticated: boolean;
16
+ error: Error | null;
17
+ }
18
+ /**
19
+ * Authentication actions
20
+ */
21
+ export interface AuthActions {
22
+ login: (credentials: unknown) => Promise<void>;
23
+ logout: () => Promise<void>;
24
+ refresh: () => Promise<void>;
25
+ clearError: () => void;
26
+ updateUser: (updates: Partial<AuthUser>) => void;
27
+ }
28
+ /**
29
+ * Complete auth context type
30
+ */
31
+ export type AuthContextType = AuthState & AuthActions;
32
+ /**
33
+ * Auth provider configuration
34
+ */
35
+ export interface AuthProviderConfig {
36
+ /** Custom login handler - implement your auth logic */
37
+ onLogin: (credentials: unknown) => Promise<AuthUser>;
38
+ /** Custom logout handler */
39
+ onLogout?: () => Promise<void>;
40
+ /** Custom refresh handler - restore user from storage/API */
41
+ onRefresh?: () => Promise<AuthUser | null>;
42
+ /** Storage key for persisting user */
43
+ storageKey?: string;
44
+ /** Use sessionStorage instead of localStorage */
45
+ useSessionStorage?: boolean;
46
+ /** Auto-refresh on mount */
47
+ autoRefresh?: boolean;
48
+ /** External auth URL (e.g., auth server on different port) */
49
+ authUrl?: string;
50
+ /** Enable credentials for cross-origin requests */
51
+ withCredentials?: boolean;
52
+ }
53
+ /**
54
+ * Auth provider props
55
+ */
56
+ export interface AuthProviderProps {
57
+ /** Authentication configuration object containing handlers and options */
58
+ config: AuthProviderConfig;
59
+ /** React children to be wrapped with authentication context */
60
+ children: ReactNode;
61
+ }
62
+ /**
63
+ * AuthProvider - Flexible authentication context provider
64
+ *
65
+ * @example
66
+ * ```tsx
67
+ * <AuthProvider
68
+ * config={{
69
+ * onLogin: async (credentials) => {
70
+ * const res = await fetch('/api/login', {
71
+ * method: 'POST',
72
+ * body: JSON.stringify(credentials)
73
+ * });
74
+ * return await res.json();
75
+ * },
76
+ * onLogout: async () => {
77
+ * await fetch('/api/logout', { method: 'POST' });
78
+ * }
79
+ * }}
80
+ * >
81
+ * <App />
82
+ * </AuthProvider>
83
+ * ```
84
+ */
85
+ export default function AuthProvider({ config, children }: Readonly<AuthProviderProps>): import("react/jsx-runtime").JSX.Element;
86
+ /**
87
+ * useAuth hook - Access authentication context
88
+ *
89
+ * @example
90
+ * ```tsx
91
+ * function ProtectedPage() {
92
+ * const { user, isAuthenticated, logout } = useAuth();
93
+ *
94
+ * if (!isAuthenticated) {
95
+ * return <Navigate to="/login" />;
96
+ * }
97
+ *
98
+ * return <div>Welcome, {user.name}</div>;
99
+ * }
100
+ * ```
101
+ */
102
+ export declare function useAuth(): AuthContextType;
103
+ //# sourceMappingURL=auth-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.d.ts","sourceRoot":"","sources":["../../../../src/components/system/auth-provider/auth-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC3C,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,MAAM,EAAE,kBAAkB,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAqHrF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,IAAI,eAAe,CAMzC"}
@@ -0,0 +1,118 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect, createContext, useContext } from "react";
3
+ const AuthContext = createContext(void 0);
4
+ function AuthProvider({ config, children }) {
5
+ const {
6
+ onLogin,
7
+ onLogout,
8
+ onRefresh,
9
+ storageKey = "auth_user",
10
+ useSessionStorage = false,
11
+ autoRefresh = true
12
+ } = config;
13
+ const [user, setUser] = useState(null);
14
+ const [isLoading, setIsLoading] = useState(true);
15
+ const [error, setError] = useState(null);
16
+ const storage = useSessionStorage ? sessionStorage : localStorage;
17
+ useEffect(() => {
18
+ const loadUser = async () => {
19
+ try {
20
+ if (onRefresh && autoRefresh) {
21
+ const refreshedUser = await onRefresh();
22
+ setUser(refreshedUser);
23
+ } else {
24
+ const storedUser = storage.getItem(storageKey);
25
+ if (storedUser) {
26
+ setUser(JSON.parse(storedUser));
27
+ }
28
+ }
29
+ } catch (err) {
30
+ setError(err instanceof Error ? err : new Error("Failed to load user"));
31
+ } finally {
32
+ setIsLoading(false);
33
+ }
34
+ };
35
+ loadUser();
36
+ }, [storageKey, storage, onRefresh, autoRefresh]);
37
+ useEffect(() => {
38
+ if (user) {
39
+ storage.setItem(storageKey, JSON.stringify(user));
40
+ } else {
41
+ storage.removeItem(storageKey);
42
+ }
43
+ }, [user, storageKey, storage]);
44
+ const login = async (credentials) => {
45
+ setIsLoading(true);
46
+ setError(null);
47
+ try {
48
+ const loggedInUser = await onLogin(credentials);
49
+ setUser(loggedInUser);
50
+ } catch (err) {
51
+ const error2 = err instanceof Error ? err : new Error("Login failed");
52
+ setError(error2);
53
+ throw error2;
54
+ } finally {
55
+ setIsLoading(false);
56
+ }
57
+ };
58
+ const logout = async () => {
59
+ setIsLoading(true);
60
+ setError(null);
61
+ try {
62
+ if (onLogout) {
63
+ await onLogout();
64
+ }
65
+ setUser(null);
66
+ } catch (err) {
67
+ const error2 = err instanceof Error ? err : new Error("Logout failed");
68
+ setError(error2);
69
+ throw error2;
70
+ } finally {
71
+ setIsLoading(false);
72
+ }
73
+ };
74
+ const refresh = async () => {
75
+ if (!onRefresh) return;
76
+ setIsLoading(true);
77
+ setError(null);
78
+ try {
79
+ const refreshedUser = await onRefresh();
80
+ setUser(refreshedUser);
81
+ } catch (err) {
82
+ const error2 = err instanceof Error ? err : new Error("Refresh failed");
83
+ setError(error2);
84
+ throw error2;
85
+ } finally {
86
+ setIsLoading(false);
87
+ }
88
+ };
89
+ const clearError = () => setError(null);
90
+ const updateUser = (updates) => {
91
+ if (!user) return;
92
+ setUser({ ...user, ...updates });
93
+ };
94
+ const value = {
95
+ user,
96
+ isLoading,
97
+ isAuthenticated: !!user,
98
+ error,
99
+ login,
100
+ logout,
101
+ refresh,
102
+ clearError,
103
+ updateUser
104
+ };
105
+ return /* @__PURE__ */ jsx(AuthContext.Provider, { value, children });
106
+ }
107
+ function useAuth() {
108
+ const context = useContext(AuthContext);
109
+ if (!context) {
110
+ throw new Error("useAuth must be used within an AuthProvider");
111
+ }
112
+ return context;
113
+ }
114
+ export {
115
+ AuthProvider as default,
116
+ useAuth
117
+ };
118
+ //# sourceMappingURL=auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.js","sources":["../../../../src/components/system/auth-provider/auth-provider.tsx"],"sourcesContent":["import { createContext, useContext, useState, useEffect, ReactNode } from 'react';\n\n/**\n * Base user type - extend this in your app\n */\nexport interface AuthUser {\n id: string;\n [key: string]: unknown;\n}\n\n/**\n * Authentication state\n */\nexport interface AuthState {\n user: AuthUser | null;\n isLoading: boolean;\n isAuthenticated: boolean;\n error: Error | null;\n}\n\n/**\n * Authentication actions\n */\nexport interface AuthActions {\n login: (credentials: unknown) => Promise<void>;\n logout: () => Promise<void>;\n refresh: () => Promise<void>;\n clearError: () => void;\n updateUser: (updates: Partial<AuthUser>) => void;\n}\n\n/**\n * Complete auth context type\n */\nexport type AuthContextType = AuthState & AuthActions;\n\n/**\n * Auth provider configuration\n */\nexport interface AuthProviderConfig {\n /** Custom login handler - implement your auth logic */\n onLogin: (credentials: unknown) => Promise<AuthUser>;\n /** Custom logout handler */\n onLogout?: () => Promise<void>;\n /** Custom refresh handler - restore user from storage/API */\n onRefresh?: () => Promise<AuthUser | null>;\n /** Storage key for persisting user */\n storageKey?: string;\n /** Use sessionStorage instead of localStorage */\n useSessionStorage?: boolean;\n /** Auto-refresh on mount */\n autoRefresh?: boolean;\n /** External auth URL (e.g., auth server on different port) */\n authUrl?: string;\n /** Enable credentials for cross-origin requests */\n withCredentials?: boolean;\n}\n\n/**\n * Auth provider props\n */\nexport interface AuthProviderProps {\n /** Authentication configuration object containing handlers and options */\n config: AuthProviderConfig;\n /** React children to be wrapped with authentication context */\n children: ReactNode;\n}\n\nconst AuthContext = createContext<AuthContextType | undefined>(undefined);\n\n/**\n * AuthProvider - Flexible authentication context provider\n *\n * @example\n * ```tsx\n * <AuthProvider\n * config={{\n * onLogin: async (credentials) => {\n * const res = await fetch('/api/login', {\n * method: 'POST',\n * body: JSON.stringify(credentials)\n * });\n * return await res.json();\n * },\n * onLogout: async () => {\n * await fetch('/api/logout', { method: 'POST' });\n * }\n * }}\n * >\n * <App />\n * </AuthProvider>\n * ```\n */\nexport default function AuthProvider({ config, children }: Readonly<AuthProviderProps>) {\n const {\n onLogin,\n onLogout,\n onRefresh,\n storageKey = 'auth_user',\n useSessionStorage = false,\n autoRefresh = true\n } = config;\n\n const [user, setUser] = useState<AuthUser | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n\n const storage = useSessionStorage ? sessionStorage : localStorage;\n\n // Load user from storage on mount\n useEffect(() => {\n const loadUser = async () => {\n try {\n if (onRefresh && autoRefresh) {\n const refreshedUser = await onRefresh();\n setUser(refreshedUser);\n } else {\n const storedUser = storage.getItem(storageKey);\n if (storedUser) {\n setUser(JSON.parse(storedUser));\n }\n }\n } catch (err) {\n setError(err instanceof Error ? err : new Error('Failed to load user'));\n } finally {\n setIsLoading(false);\n }\n };\n\n loadUser();\n }, [storageKey, storage, onRefresh, autoRefresh]);\n\n // Persist user to storage when it changes\n useEffect(() => {\n if (user) {\n storage.setItem(storageKey, JSON.stringify(user));\n } else {\n storage.removeItem(storageKey);\n }\n }, [user, storageKey, storage]);\n\n const login = async (credentials: unknown) => {\n setIsLoading(true);\n setError(null);\n try {\n const loggedInUser = await onLogin(credentials);\n setUser(loggedInUser);\n } catch (err) {\n const error = err instanceof Error ? err : new Error('Login failed');\n setError(error);\n throw error;\n } finally {\n setIsLoading(false);\n }\n };\n\n const logout = async () => {\n setIsLoading(true);\n setError(null);\n try {\n if (onLogout) {\n await onLogout();\n }\n setUser(null);\n } catch (err) {\n const error = err instanceof Error ? err : new Error('Logout failed');\n setError(error);\n throw error;\n } finally {\n setIsLoading(false);\n }\n };\n\n const refresh = async () => {\n if (!onRefresh) return;\n\n setIsLoading(true);\n setError(null);\n try {\n const refreshedUser = await onRefresh();\n setUser(refreshedUser);\n } catch (err) {\n const error = err instanceof Error ? err : new Error('Refresh failed');\n setError(error);\n throw error;\n } finally {\n setIsLoading(false);\n }\n };\n\n const clearError = () => setError(null);\n\n const updateUser = (updates: Partial<AuthUser>) => {\n if (!user) return;\n setUser({ ...user, ...updates });\n };\n\n const value: AuthContextType = {\n user,\n isLoading,\n isAuthenticated: !!user,\n error,\n login,\n logout,\n refresh,\n clearError,\n updateUser\n };\n\n return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;\n}\n\n/**\n * useAuth hook - Access authentication context\n *\n * @example\n * ```tsx\n * function ProtectedPage() {\n * const { user, isAuthenticated, logout } = useAuth();\n *\n * if (!isAuthenticated) {\n * return <Navigate to=\"/login\" />;\n * }\n *\n * return <div>Welcome, {user.name}</div>;\n * }\n * ```\n */\nexport function useAuth(): AuthContextType {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n}\n"],"names":["error"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Auth utilities for cross-origin authentication
3
+ */
4
+ /**
5
+ * Fetch with credentials for cross-origin requests
6
+ */
7
+ export declare function authFetch(url: string, options?: RequestInit, withCredentials?: boolean): Promise<Response>;
8
+ /**
9
+ * Check if user is authenticated via external auth server
10
+ */
11
+ export declare function checkAuthStatus(authUrl: string): Promise<boolean>;
12
+ /**
13
+ * Get current user from external auth server
14
+ */
15
+ export declare function getCurrentUser(authUrl: string): Promise<unknown | null>;
16
+ /**
17
+ * Login via external auth server
18
+ */
19
+ export declare function loginExternal(authUrl: string, credentials: unknown): Promise<unknown>;
20
+ /**
21
+ * Logout via external auth server
22
+ */
23
+ export declare function logoutExternal(authUrl: string): Promise<void>;
24
+ /**
25
+ * Redirect to external login page
26
+ */
27
+ export declare function redirectToLogin(authUrl: string, returnUrl?: string): void;
28
+ /**
29
+ * Open external login in popup window
30
+ */
31
+ export declare function openLoginPopup(authUrl: string, onSuccess?: () => void): Window | null;
32
+ //# sourceMappingURL=auth-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/system/auth-provider/auth-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,EAAE,eAAe,UAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWjH;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASvE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAa7E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAMzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,CAoBrF"}