@ahrowe/ui 0.34.0 → 0.35.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 (516) hide show
  1. package/README.md +101 -40
  2. package/dist/esm/common/accordion/accordion.mjs +1 -1
  3. package/dist/esm/common/accordion/accordion.mjs.map +1 -1
  4. package/dist/esm/common/accordion/accordion.module.mjs +1 -1
  5. package/dist/esm/common/accordion/accordion.module.mjs.map +1 -1
  6. package/dist/esm/common/accordion/accordion.plain.module.mjs +1 -1
  7. package/dist/esm/common/accordion/accordion.plain.module.mjs.map +1 -1
  8. package/dist/esm/common/accordion/accordion.primary.module.mjs +1 -1
  9. package/dist/esm/common/accordion/accordion.primary.module.mjs.map +1 -1
  10. package/dist/esm/common/accordion/accordion.types.mjs +1 -1
  11. package/dist/esm/common/accordion/accordion.types.mjs.map +1 -1
  12. package/dist/esm/common/actionButtons/actionButtons.mjs +1 -1
  13. package/dist/esm/common/actionButtons/actionButtons.mjs.map +1 -1
  14. package/dist/esm/common/actionButtons/actionButtons.module.mjs +1 -1
  15. package/dist/esm/common/actionIcon/actionIcon.mjs +1 -1
  16. package/dist/esm/common/actionIcon/actionIcon.mjs.map +1 -1
  17. package/dist/esm/common/actionIcon/actionIcon.module.mjs +1 -1
  18. package/dist/esm/common/alert/alert.mjs +1 -1
  19. package/dist/esm/common/alert/alert.mjs.map +1 -1
  20. package/dist/esm/common/alert/alert.module.mjs +1 -1
  21. package/dist/esm/common/alert/alert.types.mjs +1 -1
  22. package/dist/esm/common/alert/alert.types.mjs.map +1 -1
  23. package/dist/esm/common/animatedIcon/animatedIcon.mjs +1 -1
  24. package/dist/esm/common/animatedIcon/animatedIcon.mjs.map +1 -1
  25. package/dist/esm/common/animatedIcon/animatedIcon.module.mjs +1 -1
  26. package/dist/esm/common/animatedLogo/animatedLogo.mjs +1 -1
  27. package/dist/esm/common/animatedLogo/animatedLogo.mjs.map +1 -1
  28. package/dist/esm/common/animatedLogo/animatedLogo.module.mjs +1 -1
  29. package/dist/esm/common/animatedText/animatedText.mjs +1 -1
  30. package/dist/esm/common/animatedText/animatedText.mjs.map +1 -1
  31. package/dist/esm/common/animatedText/animatedText.module.mjs +1 -1
  32. package/dist/esm/common/animatedText/animatedText.types.mjs +1 -1
  33. package/dist/esm/common/animatedText/animatedText.types.mjs.map +1 -1
  34. package/dist/esm/common/avatar/avatar.mjs +1 -1
  35. package/dist/esm/common/avatar/avatar.mjs.map +1 -1
  36. package/dist/esm/common/avatar/avatar.module.mjs +1 -1
  37. package/dist/esm/common/avatar/avatarGroup.mjs +1 -1
  38. package/dist/esm/common/avatar/avatarGroup.mjs.map +1 -1
  39. package/dist/esm/common/badge/badge.mjs +1 -1
  40. package/dist/esm/common/badge/badge.mjs.map +1 -1
  41. package/dist/esm/common/badge/badge.module.mjs +1 -1
  42. package/dist/esm/common/badge/badge.types.mjs +1 -1
  43. package/dist/esm/common/badge/badge.types.mjs.map +1 -1
  44. package/dist/esm/common/bodyEnd/bodyEnd.mjs +1 -1
  45. package/dist/esm/common/bodyEnd/bodyEnd.mjs.map +1 -1
  46. package/dist/esm/common/breadcrumb/breadcrumb.mjs +1 -1
  47. package/dist/esm/common/breadcrumb/breadcrumb.mjs.map +1 -1
  48. package/dist/esm/common/breadcrumb/breadcrumb.module.mjs +1 -1
  49. package/dist/esm/common/button/button.mjs +1 -1
  50. package/dist/esm/common/button/button.mjs.map +1 -1
  51. package/dist/esm/common/button/button.module.mjs +1 -1
  52. package/dist/esm/common/button/button.types.mjs +1 -1
  53. package/dist/esm/common/button/button.types.mjs.map +1 -1
  54. package/dist/esm/common/buttonGroup/buttonGroup.mjs +1 -1
  55. package/dist/esm/common/buttonGroup/buttonGroup.mjs.map +1 -1
  56. package/dist/esm/common/buttonGroup/buttonGroup.module.mjs +1 -1
  57. package/dist/esm/common/buttonGroup/buttonGroup.types.mjs +1 -1
  58. package/dist/esm/common/buttonGroup/buttonGroup.types.mjs.map +1 -1
  59. package/dist/esm/common/card/Card.mjs +1 -1
  60. package/dist/esm/common/card/Card.mjs.map +1 -1
  61. package/dist/esm/common/card/CardActions.mjs +1 -1
  62. package/dist/esm/common/card/CardActions.mjs.map +1 -1
  63. package/dist/esm/common/card/CardContent.mjs +1 -1
  64. package/dist/esm/common/card/CardContent.mjs.map +1 -1
  65. package/dist/esm/common/card/CardHeader.mjs +1 -1
  66. package/dist/esm/common/card/CardHeader.mjs.map +1 -1
  67. package/dist/esm/common/card/CardMedia.mjs +1 -1
  68. package/dist/esm/common/card/CardMedia.mjs.map +1 -1
  69. package/dist/esm/common/card/card.module.mjs +1 -1
  70. package/dist/esm/common/card/card.module.mjs.map +1 -1
  71. package/dist/esm/common/card/card.types.mjs +1 -1
  72. package/dist/esm/common/card/card.types.mjs.map +1 -1
  73. package/dist/esm/common/carousel/carousel.mjs +1 -1
  74. package/dist/esm/common/carousel/carousel.mjs.map +1 -1
  75. package/dist/esm/common/carousel/carousel.module.mjs +1 -1
  76. package/dist/esm/common/checkbox/checkbox.mjs +1 -1
  77. package/dist/esm/common/checkbox/checkbox.mjs.map +1 -1
  78. package/dist/esm/common/checkbox/checkbox.module.mjs +1 -1
  79. package/dist/esm/common/checkbox/checkbox.module.mjs.map +1 -1
  80. package/dist/esm/common/chip/chip.mjs +1 -1
  81. package/dist/esm/common/chip/chip.mjs.map +1 -1
  82. package/dist/esm/common/chip/chip.module.mjs +1 -1
  83. package/dist/esm/common/chip/chip.types.mjs +1 -1
  84. package/dist/esm/common/chip/chip.types.mjs.map +1 -1
  85. package/dist/esm/common/chip/chipContainer.mjs +1 -1
  86. package/dist/esm/common/chip/chipContainer.mjs.map +1 -1
  87. package/dist/esm/common/colorPicker/colorPicker.mjs +1 -1
  88. package/dist/esm/common/colorPicker/colorPicker.mjs.map +1 -1
  89. package/dist/esm/common/colorPicker/colorPicker.module.mjs +1 -1
  90. package/dist/esm/common/colorPicker/colorPicker.module.mjs.map +1 -1
  91. package/dist/esm/common/colorPicker/toHex.mjs +1 -1
  92. package/dist/esm/common/colorPicker/toHex.mjs.map +1 -1
  93. package/dist/esm/common/configProvider/configProvider.mjs +1 -1
  94. package/dist/esm/common/configProvider/configProvider.mjs.map +1 -1
  95. package/dist/esm/common/configProvider/presentation.types.mjs +1 -1
  96. package/dist/esm/common/configProvider/presentation.types.mjs.map +1 -1
  97. package/dist/esm/common/configProvider/useComponentDefaults.mjs +1 -1
  98. package/dist/esm/common/configProvider/useComponentDefaults.mjs.map +1 -1
  99. package/dist/esm/common/configProvider/useLabels.mjs +1 -1
  100. package/dist/esm/common/configProvider/useLabels.mjs.map +1 -1
  101. package/dist/esm/common/configProvider/usePresentationDefault.mjs +1 -1
  102. package/dist/esm/common/configProvider/usePresentationDefault.mjs.map +1 -1
  103. package/dist/esm/common/confirmModal/confirmModal.mjs +1 -1
  104. package/dist/esm/common/confirmModal/confirmModal.mjs.map +1 -1
  105. package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.mjs +1 -1
  106. package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.mjs.map +1 -1
  107. package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.module.mjs +1 -1
  108. package/dist/esm/common/datePicker/dateFunctions.mjs +1 -1
  109. package/dist/esm/common/datePicker/dateFunctions.mjs.map +1 -1
  110. package/dist/esm/common/datePicker/datePicker.mjs +1 -1
  111. package/dist/esm/common/datePicker/datePicker.mjs.map +1 -1
  112. package/dist/esm/common/datePicker/datePicker.module.mjs +1 -1
  113. package/dist/esm/common/divider/divider.mjs +1 -1
  114. package/dist/esm/common/divider/divider.mjs.map +1 -1
  115. package/dist/esm/common/divider/divider.module.mjs +1 -1
  116. package/dist/esm/common/divider/divider.types.mjs +1 -1
  117. package/dist/esm/common/divider/divider.types.mjs.map +1 -1
  118. package/dist/esm/common/drawer/drawer.mjs +1 -1
  119. package/dist/esm/common/drawer/drawer.mjs.map +1 -1
  120. package/dist/esm/common/drawer/drawer.module.mjs +1 -1
  121. package/dist/esm/common/dropZone/dropZone.mjs +1 -1
  122. package/dist/esm/common/dropZone/dropZone.mjs.map +1 -1
  123. package/dist/esm/common/dropZone/dropZone.module.mjs +1 -1
  124. package/dist/esm/common/dropZone/dropZone.types.mjs +1 -1
  125. package/dist/esm/common/dropZone/dropZone.types.mjs.map +1 -1
  126. package/dist/esm/common/dropdown/dropdown.mjs +1 -1
  127. package/dist/esm/common/dropdown/dropdown.mjs.map +1 -1
  128. package/dist/esm/common/dropdown/dropdown.module.mjs +1 -1
  129. package/dist/esm/common/dropdown/dropdown.module.mjs.map +1 -1
  130. package/dist/esm/common/emptyState/emptyState.mjs +1 -1
  131. package/dist/esm/common/emptyState/emptyState.mjs.map +1 -1
  132. package/dist/esm/common/emptyState/emptyState.module.mjs +1 -1
  133. package/dist/esm/common/errorBoundary/errorBoundary.mjs +1 -1
  134. package/dist/esm/common/errorBoundary/errorBoundary.mjs.map +1 -1
  135. package/dist/esm/common/errorBoundary/errorBoundary.module.mjs +1 -1
  136. package/dist/esm/common/fab/components/fabBase/fabBase.mjs +1 -1
  137. package/dist/esm/common/fab/components/fabBase/fabBase.mjs.map +1 -1
  138. package/dist/esm/common/fab/components/fabBase/fabBase.module.mjs +1 -1
  139. package/dist/esm/common/fab/fab.mjs +1 -1
  140. package/dist/esm/common/fab/fab.mjs.map +1 -1
  141. package/dist/esm/common/fab/fab.module.mjs +1 -1
  142. package/dist/esm/common/fab/fab.module.mjs.map +1 -1
  143. package/dist/esm/common/flip/flip.mjs +1 -1
  144. package/dist/esm/common/flip/flip.mjs.map +1 -1
  145. package/dist/esm/common/flip/flip.module.mjs +1 -1
  146. package/dist/esm/common/floorPlan/floorPlan.faces.mjs +1 -1
  147. package/dist/esm/common/floorPlan/floorPlan.faces.mjs.map +1 -1
  148. package/dist/esm/common/floorPlan/floorPlan.geometry.mjs +1 -1
  149. package/dist/esm/common/floorPlan/floorPlan.geometry.mjs.map +1 -1
  150. package/dist/esm/common/floorPlan/floorPlan.graph.mjs +1 -1
  151. package/dist/esm/common/floorPlan/floorPlan.graph.mjs.map +1 -1
  152. package/dist/esm/common/floorPlan/floorPlan.hit.mjs +1 -1
  153. package/dist/esm/common/floorPlan/floorPlan.hit.mjs.map +1 -1
  154. package/dist/esm/common/floorPlan/floorPlan.json.mjs +1 -1
  155. package/dist/esm/common/floorPlan/floorPlan.json.mjs.map +1 -1
  156. package/dist/esm/common/floorPlan/floorPlan.mesh.mjs +1 -1
  157. package/dist/esm/common/floorPlan/floorPlan.mesh.mjs.map +1 -1
  158. package/dist/esm/common/floorPlan/floorPlan.path.mjs +1 -1
  159. package/dist/esm/common/floorPlan/floorPlan.path.mjs.map +1 -1
  160. package/dist/esm/common/floorPlan/floorPlan.plan.mjs +1 -1
  161. package/dist/esm/common/floorPlan/floorPlan.plan.mjs.map +1 -1
  162. package/dist/esm/common/floorPlan/floorPlan.rooms.mjs +1 -1
  163. package/dist/esm/common/floorPlan/floorPlan.rooms.mjs.map +1 -1
  164. package/dist/esm/common/floorPlan/floorPlan.snap.mjs +1 -1
  165. package/dist/esm/common/floorPlan/floorPlan.snap.mjs.map +1 -1
  166. package/dist/esm/common/floorPlan/floorPlan.triangulate.mjs +1 -1
  167. package/dist/esm/common/floorPlan/floorPlan.triangulate.mjs.map +1 -1
  168. package/dist/esm/common/floorPlan/floorPlan.types.mjs +1 -1
  169. package/dist/esm/common/floorPlan/floorPlan.types.mjs.map +1 -1
  170. package/dist/esm/common/floorPlan/legacySvg.mjs +1 -1
  171. package/dist/esm/common/floorPlan/legacySvg.mjs.map +1 -1
  172. package/dist/esm/common/hooks/useAnchorTracking.mjs +1 -1
  173. package/dist/esm/common/hooks/useAnchorTracking.mjs.map +1 -1
  174. package/dist/esm/common/hooks/useCoarsePointer.mjs +1 -1
  175. package/dist/esm/common/hooks/useCoarsePointer.mjs.map +1 -1
  176. package/dist/esm/common/hooks/useFocusBoundary.mjs +1 -1
  177. package/dist/esm/common/hooks/useFocusBoundary.mjs.map +1 -1
  178. package/dist/esm/common/hooks/useMediaQuery.mjs +1 -1
  179. package/dist/esm/common/hooks/useMediaQuery.mjs.map +1 -1
  180. package/dist/esm/common/hooks/useOverlay.mjs +1 -1
  181. package/dist/esm/common/hooks/useOverlay.mjs.map +1 -1
  182. package/dist/esm/common/hooks/useSheet.mjs +1 -1
  183. package/dist/esm/common/hooks/useSheet.mjs.map +1 -1
  184. package/dist/esm/common/hooks/useSwipeDismiss.mjs +1 -1
  185. package/dist/esm/common/hooks/useSwipeDismiss.mjs.map +1 -1
  186. package/dist/esm/common/hooks/useVisualViewportSize.mjs +1 -1
  187. package/dist/esm/common/hooks/useVisualViewportSize.mjs.map +1 -1
  188. package/dist/esm/common/iconPicker/iconPicker.mjs +1 -1
  189. package/dist/esm/common/iconPicker/iconPicker.mjs.map +1 -1
  190. package/dist/esm/common/iconPicker/iconPicker.module.mjs +1 -1
  191. package/dist/esm/common/idleManager/idleManager.mjs +1 -1
  192. package/dist/esm/common/idleManager/idleManager.mjs.map +1 -1
  193. package/dist/esm/common/infiniteBlock/infiniteBlock.mjs +1 -1
  194. package/dist/esm/common/infiniteBlock/infiniteBlock.mjs.map +1 -1
  195. package/dist/esm/common/infiniteBlock/infiniteBlock.module.mjs +1 -1
  196. package/dist/esm/common/input/input.mjs +1 -1
  197. package/dist/esm/common/input/input.mjs.map +1 -1
  198. package/dist/esm/common/input/input.module.mjs +1 -1
  199. package/dist/esm/common/input/input.module.mjs.map +1 -1
  200. package/dist/esm/common/input/input.types.mjs +1 -1
  201. package/dist/esm/common/input/input.types.mjs.map +1 -1
  202. package/dist/esm/common/inputDropdown/inputDropdown.mjs +1 -1
  203. package/dist/esm/common/inputDropdown/inputDropdown.mjs.map +1 -1
  204. package/dist/esm/common/inputDropdown/inputDropdown.module.mjs +1 -1
  205. package/dist/esm/common/interactableDiv/index.mjs +1 -1
  206. package/dist/esm/common/interactableDiv/index.mjs.map +1 -1
  207. package/dist/esm/common/interactableDiv/interactableDiv.mjs +1 -1
  208. package/dist/esm/common/interactableDiv/interactableDiv.mjs.map +1 -1
  209. package/dist/esm/common/interactableDiv/interactableDiv.module.mjs +1 -1
  210. package/dist/esm/common/kanbanBoard/KanbanBoard.mjs +1 -1
  211. package/dist/esm/common/kanbanBoard/KanbanBoard.mjs.map +1 -1
  212. package/dist/esm/common/kanbanBoard/KanbanColumn.mjs +1 -1
  213. package/dist/esm/common/kanbanBoard/KanbanColumn.mjs.map +1 -1
  214. package/dist/esm/common/kanbanBoard/KanbanItem.mjs +1 -1
  215. package/dist/esm/common/kanbanBoard/KanbanItem.mjs.map +1 -1
  216. package/dist/esm/common/kanbanBoard/kanbanBoard.module.mjs +1 -1
  217. package/dist/esm/common/kanbanBoard/kanbanBoard.utils.mjs +1 -1
  218. package/dist/esm/common/kanbanBoard/kanbanBoard.utils.mjs.map +1 -1
  219. package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.mjs +1 -1
  220. package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.mjs.map +1 -1
  221. package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.module.mjs +1 -1
  222. package/dist/esm/common/klipyPicker/components/gifView/gifView.mjs +1 -1
  223. package/dist/esm/common/klipyPicker/components/gifView/gifView.mjs.map +1 -1
  224. package/dist/esm/common/klipyPicker/components/gifView/gifView.module.mjs +1 -1
  225. package/dist/esm/common/klipyPicker/klipyPicker.mjs +1 -1
  226. package/dist/esm/common/klipyPicker/klipyPicker.mjs.map +1 -1
  227. package/dist/esm/common/klipyPicker/klipyPicker.module.mjs +1 -1
  228. package/dist/esm/common/loading/iconLoading/iconLoading.mjs +1 -1
  229. package/dist/esm/common/loading/iconLoading/iconLoading.mjs.map +1 -1
  230. package/dist/esm/common/loading/iconLoading/iconLoading.module.mjs +1 -1
  231. package/dist/esm/common/loading/iconLoading/index.mjs +1 -1
  232. package/dist/esm/common/loading/iconLoading/index.mjs.map +1 -1
  233. package/dist/esm/common/loading/spinnerLoading/index.mjs +1 -1
  234. package/dist/esm/common/loading/spinnerLoading/index.mjs.map +1 -1
  235. package/dist/esm/common/loading/spinnerLoading/spinnerLoading.mjs +1 -1
  236. package/dist/esm/common/loading/spinnerLoading/spinnerLoading.mjs.map +1 -1
  237. package/dist/esm/common/loading/spinnerLoading/spinnerLoading.module.mjs +1 -1
  238. package/dist/esm/common/menu/menu.mjs +1 -1
  239. package/dist/esm/common/menu/menu.mjs.map +1 -1
  240. package/dist/esm/common/menu/menu.module.mjs +1 -1
  241. package/dist/esm/common/menu/menu.types.mjs +1 -1
  242. package/dist/esm/common/menu/menu.types.mjs.map +1 -1
  243. package/dist/esm/common/modal/modal.mjs +1 -1
  244. package/dist/esm/common/modal/modal.mjs.map +1 -1
  245. package/dist/esm/common/modal/modal.module.mjs +1 -1
  246. package/dist/esm/common/modal/modal.module.mjs.map +1 -1
  247. package/dist/esm/common/multiSelect/multiSelect.mjs +1 -1
  248. package/dist/esm/common/multiSelect/multiSelect.mjs.map +1 -1
  249. package/dist/esm/common/multiSelect/multiSelect.module.mjs +1 -1
  250. package/dist/esm/common/multiSelect/multiSelect.module.mjs.map +1 -1
  251. package/dist/esm/common/numberInput/index.mjs +1 -1
  252. package/dist/esm/common/numberInput/index.mjs.map +1 -1
  253. package/dist/esm/common/numberInput/numberInput.mjs +1 -1
  254. package/dist/esm/common/numberInput/numberInput.mjs.map +1 -1
  255. package/dist/esm/common/numberInput/numberInput.module.mjs +1 -1
  256. package/dist/esm/common/numberInput/useStepRepeat.mjs +1 -1
  257. package/dist/esm/common/numberInput/useStepRepeat.mjs.map +1 -1
  258. package/dist/esm/common/optionPicker/optionPicker.mjs +1 -1
  259. package/dist/esm/common/optionPicker/optionPicker.mjs.map +1 -1
  260. package/dist/esm/common/optionPicker/optionPicker.module.mjs +1 -1
  261. package/dist/esm/common/otpInput/otpInput.mjs +1 -1
  262. package/dist/esm/common/otpInput/otpInput.mjs.map +1 -1
  263. package/dist/esm/common/otpInput/otpInput.module.mjs +1 -1
  264. package/dist/esm/common/otpInput/otpInput.types.mjs +1 -1
  265. package/dist/esm/common/otpInput/otpInput.types.mjs.map +1 -1
  266. package/dist/esm/common/overscroll/overscroll.mjs +1 -1
  267. package/dist/esm/common/overscroll/overscroll.mjs.map +1 -1
  268. package/dist/esm/common/overscroll/overscroll.module.mjs +1 -1
  269. package/dist/esm/common/pagination/pagination.mjs +1 -1
  270. package/dist/esm/common/pagination/pagination.mjs.map +1 -1
  271. package/dist/esm/common/pagination/pagination.module.mjs +1 -1
  272. package/dist/esm/common/planCanvas/planCanvas.mjs +1 -1
  273. package/dist/esm/common/planCanvas/planCanvas.mjs.map +1 -1
  274. package/dist/esm/common/planCanvas/planCanvas.module.mjs +1 -1
  275. package/dist/esm/common/popover/popover.mjs +1 -1
  276. package/dist/esm/common/popover/popover.mjs.map +1 -1
  277. package/dist/esm/common/popover/popover.module.mjs +1 -1
  278. package/dist/esm/common/popover/popover.types.mjs +1 -1
  279. package/dist/esm/common/popover/popover.types.mjs.map +1 -1
  280. package/dist/esm/common/popover/usePopoverPosition.mjs +1 -1
  281. package/dist/esm/common/popover/usePopoverPosition.mjs.map +1 -1
  282. package/dist/esm/common/progressBar/progressBar.mjs +1 -1
  283. package/dist/esm/common/progressBar/progressBar.mjs.map +1 -1
  284. package/dist/esm/common/progressBar/progressBar.module.mjs +1 -1
  285. package/dist/esm/common/progressBar/progressBar.module.mjs.map +1 -1
  286. package/dist/esm/common/radioGroup/radioGroup.mjs +1 -1
  287. package/dist/esm/common/radioGroup/radioGroup.mjs.map +1 -1
  288. package/dist/esm/common/radioGroup/radioGroup.module.mjs +1 -1
  289. package/dist/esm/common/radioGroup/radioGroup.module.mjs.map +1 -1
  290. package/dist/esm/common/radioGroup/radioGroup.types.mjs +1 -1
  291. package/dist/esm/common/radioGroup/radioGroup.types.mjs.map +1 -1
  292. package/dist/esm/common/rating/rating.mjs +1 -1
  293. package/dist/esm/common/rating/rating.mjs.map +1 -1
  294. package/dist/esm/common/rating/rating.module.mjs +1 -1
  295. package/dist/esm/common/revealLens/revealLens.mjs +1 -1
  296. package/dist/esm/common/revealLens/revealLens.mjs.map +1 -1
  297. package/dist/esm/common/revealLens/revealLens.module.mjs +1 -1
  298. package/dist/esm/common/ripple/ripple.mjs +1 -1
  299. package/dist/esm/common/ripple/ripple.mjs.map +1 -1
  300. package/dist/esm/common/ripple/ripple.module.mjs +1 -1
  301. package/dist/esm/common/ripple/ripple.module.mjs.map +1 -1
  302. package/dist/esm/common/roomDrawer/roomDrawer.mjs +1 -1
  303. package/dist/esm/common/roomDrawer/roomDrawer.mjs.map +1 -1
  304. package/dist/esm/common/roomDrawer/roomDrawer.module.mjs +1 -1
  305. package/dist/esm/common/roomDrawer/usePlanHistory.mjs +1 -1
  306. package/dist/esm/common/roomDrawer/usePlanHistory.mjs.map +1 -1
  307. package/dist/esm/common/roomViewer/roomViewer.mjs +1 -1
  308. package/dist/esm/common/roomViewer/roomViewer.mjs.map +1 -1
  309. package/dist/esm/common/roomViewer/roomViewer.module.mjs +1 -1
  310. package/dist/esm/common/scrollbarProvider/index.mjs +1 -1
  311. package/dist/esm/common/scrollbarProvider/index.mjs.map +1 -1
  312. package/dist/esm/common/scrollbarProvider/scrollbarProvider.mjs +1 -1
  313. package/dist/esm/common/scrollbarProvider/scrollbarProvider.mjs.map +1 -1
  314. package/dist/esm/common/scrollbarProvider/scrollbarProvider.module.mjs +1 -1
  315. package/dist/esm/common/searchInput/searchInput.mjs +1 -1
  316. package/dist/esm/common/searchInput/searchInput.mjs.map +1 -1
  317. package/dist/esm/common/searchInput/searchInput.module.mjs +1 -1
  318. package/dist/esm/common/sectionHeader/sectionHeader.mjs +1 -1
  319. package/dist/esm/common/sectionHeader/sectionHeader.mjs.map +1 -1
  320. package/dist/esm/common/sectionHeader/sectionHeader.module.mjs +1 -1
  321. package/dist/esm/common/sectionHeader/sectionHeader.types.mjs +1 -1
  322. package/dist/esm/common/sectionHeader/sectionHeader.types.mjs.map +1 -1
  323. package/dist/esm/common/sheetBackdrop/sheetBackdrop.mjs +1 -1
  324. package/dist/esm/common/sheetBackdrop/sheetBackdrop.mjs.map +1 -1
  325. package/dist/esm/common/skeleton/skeleton.mjs +1 -1
  326. package/dist/esm/common/skeleton/skeleton.mjs.map +1 -1
  327. package/dist/esm/common/skeleton/skeleton.module.mjs +1 -1
  328. package/dist/esm/common/skeleton/skeleton.types.mjs +1 -1
  329. package/dist/esm/common/skeleton/skeleton.types.mjs.map +1 -1
  330. package/dist/esm/common/slider/slider.mjs +1 -1
  331. package/dist/esm/common/slider/slider.mjs.map +1 -1
  332. package/dist/esm/common/slider/slider.module.mjs +1 -1
  333. package/dist/esm/common/splitButton/splitButton.mjs +1 -1
  334. package/dist/esm/common/splitButton/splitButton.mjs.map +1 -1
  335. package/dist/esm/common/splitButton/splitButton.module.mjs +1 -1
  336. package/dist/esm/common/stepper/stepper.mjs +1 -1
  337. package/dist/esm/common/stepper/stepper.mjs.map +1 -1
  338. package/dist/esm/common/stepper/stepper.module.mjs +1 -1
  339. package/dist/esm/common/stepper/stepper.types.mjs +1 -1
  340. package/dist/esm/common/stepper/stepper.types.mjs.map +1 -1
  341. package/dist/esm/common/sticky/sticky.mjs +1 -1
  342. package/dist/esm/common/sticky/sticky.mjs.map +1 -1
  343. package/dist/esm/common/sticky/sticky.module.mjs +1 -1
  344. package/dist/esm/common/sticky/stickyStack.mjs +1 -1
  345. package/dist/esm/common/sticky/stickyStack.mjs.map +1 -1
  346. package/dist/esm/common/styles/sheet.module.mjs +1 -1
  347. package/dist/esm/common/styles/sheet.module.mjs.map +1 -1
  348. package/dist/esm/common/switch/switch.mjs +1 -1
  349. package/dist/esm/common/switch/switch.mjs.map +1 -1
  350. package/dist/esm/common/switch/switch.module.mjs +1 -1
  351. package/dist/esm/common/switch/switch.module.mjs.map +1 -1
  352. package/dist/esm/common/tabHeader/tabHeader.mjs +1 -1
  353. package/dist/esm/common/tabHeader/tabHeader.mjs.map +1 -1
  354. package/dist/esm/common/tabHeader/tabHeader.module.mjs +1 -1
  355. package/dist/esm/common/textarea/textarea.mjs +1 -1
  356. package/dist/esm/common/textarea/textarea.mjs.map +1 -1
  357. package/dist/esm/common/themeProvider/defaultTheme.mjs +1 -1
  358. package/dist/esm/common/themeProvider/defaultTheme.mjs.map +1 -1
  359. package/dist/esm/common/themeProvider/lightTheme.mjs +2 -0
  360. package/dist/esm/common/themeProvider/lightTheme.mjs.map +1 -0
  361. package/dist/esm/common/themeProvider/theme.module.mjs +1 -1
  362. package/dist/esm/common/themeProvider/themeProvider.mjs +1 -1
  363. package/dist/esm/common/themeProvider/themeProvider.mjs.map +1 -1
  364. package/dist/esm/common/themeProvider/themeVariablesContext.mjs +1 -1
  365. package/dist/esm/common/themeProvider/themeVariablesContext.mjs.map +1 -1
  366. package/dist/esm/common/themeProvider/useTheme.mjs +1 -1
  367. package/dist/esm/common/themeProvider/useTheme.mjs.map +1 -1
  368. package/dist/esm/common/tilt/tilt.mjs +1 -1
  369. package/dist/esm/common/tilt/tilt.mjs.map +1 -1
  370. package/dist/esm/common/tilt/tilt.module.mjs +1 -1
  371. package/dist/esm/common/tilt/tiltMath.mjs +1 -1
  372. package/dist/esm/common/tilt/tiltMath.mjs.map +1 -1
  373. package/dist/esm/common/tiltGroup/tiltGroup.mjs +1 -1
  374. package/dist/esm/common/tiltGroup/tiltGroup.mjs.map +1 -1
  375. package/dist/esm/common/timeInput/components/clockDial/clockDial.mjs +1 -1
  376. package/dist/esm/common/timeInput/components/clockDial/clockDial.mjs.map +1 -1
  377. package/dist/esm/common/timeInput/components/clockDial/clockDial.module.mjs +1 -1
  378. package/dist/esm/common/timeInput/timeFunctions.mjs +1 -1
  379. package/dist/esm/common/timeInput/timeFunctions.mjs.map +1 -1
  380. package/dist/esm/common/timeInput/timeInput.mjs +1 -1
  381. package/dist/esm/common/timeInput/timeInput.mjs.map +1 -1
  382. package/dist/esm/common/timeInput/timeInput.module.mjs +1 -1
  383. package/dist/esm/common/timeline/timeline.mjs +1 -1
  384. package/dist/esm/common/timeline/timeline.mjs.map +1 -1
  385. package/dist/esm/common/timeline/timeline.module.mjs +1 -1
  386. package/dist/esm/common/timeline/timeline.types.mjs +1 -1
  387. package/dist/esm/common/timeline/timeline.types.mjs.map +1 -1
  388. package/dist/esm/common/timer/timer.chime.mjs +1 -1
  389. package/dist/esm/common/timer/timer.chime.mjs.map +1 -1
  390. package/dist/esm/common/timer/timer.mjs +1 -1
  391. package/dist/esm/common/timer/timer.mjs.map +1 -1
  392. package/dist/esm/common/timer/timer.module.mjs +1 -1
  393. package/dist/esm/common/toast/toast.mjs +1 -1
  394. package/dist/esm/common/toast/toast.mjs.map +1 -1
  395. package/dist/esm/common/toast/toast.module.mjs +1 -1
  396. package/dist/esm/common/toast/toast.module.mjs.map +1 -1
  397. package/dist/esm/common/toast/toastProvider.mjs +1 -1
  398. package/dist/esm/common/toast/toastProvider.mjs.map +1 -1
  399. package/dist/esm/common/toast/toastService.mjs +1 -1
  400. package/dist/esm/common/toast/toastService.mjs.map +1 -1
  401. package/dist/esm/common/tooltip/tooltip.mjs +1 -1
  402. package/dist/esm/common/tooltip/tooltip.mjs.map +1 -1
  403. package/dist/esm/common/tooltip/tooltip.module.mjs +1 -1
  404. package/dist/esm/common/tree/flattenTree.mjs +1 -1
  405. package/dist/esm/common/tree/flattenTree.mjs.map +1 -1
  406. package/dist/esm/common/tree/tree.mjs +1 -1
  407. package/dist/esm/common/tree/tree.mjs.map +1 -1
  408. package/dist/esm/common/tree/tree.module.mjs +1 -1
  409. package/dist/esm/common/tree/tree.module.mjs.map +1 -1
  410. package/dist/esm/common/utils/activationKey.mjs +1 -1
  411. package/dist/esm/common/utils/activationKey.mjs.map +1 -1
  412. package/dist/esm/common/utils/mergeRefs.mjs +2 -0
  413. package/dist/esm/common/utils/mergeRefs.mjs.map +1 -0
  414. package/dist/esm/common/utils/renderIcon.mjs +1 -1
  415. package/dist/esm/common/utils/renderIcon.mjs.map +1 -1
  416. package/dist/esm/common/utils/scrollAncestors.mjs +1 -1
  417. package/dist/esm/common/utils/scrollAncestors.mjs.map +1 -1
  418. package/dist/esm/common/utils/visualViewport.mjs +1 -1
  419. package/dist/esm/common/utils/visualViewport.mjs.map +1 -1
  420. package/dist/esm/common/virtualList/useColumnResize.mjs +1 -1
  421. package/dist/esm/common/virtualList/useColumnResize.mjs.map +1 -1
  422. package/dist/esm/common/virtualList/useColumns.mjs +1 -1
  423. package/dist/esm/common/virtualList/useColumns.mjs.map +1 -1
  424. package/dist/esm/common/virtualList/useHeaderNavigation.mjs +1 -1
  425. package/dist/esm/common/virtualList/useHeaderNavigation.mjs.map +1 -1
  426. package/dist/esm/common/virtualList/useRowDrag.mjs +1 -1
  427. package/dist/esm/common/virtualList/useRowDrag.mjs.map +1 -1
  428. package/dist/esm/common/virtualList/useRowNavigation.mjs +1 -1
  429. package/dist/esm/common/virtualList/useRowNavigation.mjs.map +1 -1
  430. package/dist/esm/common/virtualList/useSelection.mjs +1 -1
  431. package/dist/esm/common/virtualList/useSelection.mjs.map +1 -1
  432. package/dist/esm/common/virtualList/useSorting.mjs +1 -1
  433. package/dist/esm/common/virtualList/useSorting.mjs.map +1 -1
  434. package/dist/esm/common/virtualList/useVirtualWindow.mjs +1 -1
  435. package/dist/esm/common/virtualList/useVirtualWindow.mjs.map +1 -1
  436. package/dist/esm/common/virtualList/virtualList.mjs +1 -1
  437. package/dist/esm/common/virtualList/virtualList.mjs.map +1 -1
  438. package/dist/esm/common/virtualList/virtualList.module.mjs +1 -1
  439. package/dist/esm/common/virtualList/virtualList.utils.mjs +1 -1
  440. package/dist/esm/common/virtualList/virtualList.utils.mjs.map +1 -1
  441. package/dist/esm/common/virtualList/virtualListHeader.mjs +1 -1
  442. package/dist/esm/common/virtualList/virtualListHeader.mjs.map +1 -1
  443. package/dist/esm/common/virtualList/virtualRow.mjs +1 -1
  444. package/dist/esm/common/virtualList/virtualRow.mjs.map +1 -1
  445. package/dist/esm/common/wizard/wizard.mjs +1 -1
  446. package/dist/esm/common/wizard/wizard.mjs.map +1 -1
  447. package/dist/esm/common/wizard/wizard.module.mjs +1 -1
  448. package/dist/esm/hooks/useWindowSize.mjs +1 -1
  449. package/dist/esm/hooks/useWindowSize.mjs.map +1 -1
  450. package/dist/esm/index.mjs +1 -1
  451. package/dist/esm/services/formValidation/FormValidatorGroupWithForm.mjs +1 -1
  452. package/dist/esm/services/formValidation/FormValidatorGroupWithForm.mjs.map +1 -1
  453. package/dist/esm/services/formValidation/index.mjs +1 -1
  454. package/dist/esm/services/formValidation/useFormValidatorGroup.mjs +1 -1
  455. package/dist/esm/services/formValidation/useFormValidatorGroup.mjs.map +1 -1
  456. package/dist/esm/services/formValidation/validatableComponent.mjs +1 -1
  457. package/dist/esm/services/formValidation/validatableComponent.mjs.map +1 -1
  458. package/dist/esm/services/klipy.mjs +1 -1
  459. package/dist/esm/services/klipy.mjs.map +1 -1
  460. package/dist/esm/services/localization.mjs +1 -1
  461. package/dist/esm/services/localization.mjs.map +1 -1
  462. package/dist/index.cjs +3 -3
  463. package/dist/index.cjs.map +1 -1
  464. package/dist/mcp.js +21096 -5
  465. package/dist/style.css +1 -1
  466. package/dist/types/common/actionIcon/actionIcon.types.d.ts +3 -1
  467. package/dist/types/common/card/card.types.d.ts +3 -1
  468. package/dist/types/common/checkbox/checkbox.types.d.ts +3 -1
  469. package/dist/types/common/colorPicker/colorPicker.types.d.ts +4 -0
  470. package/dist/types/common/configProvider/configProvider.types.d.ts +4 -0
  471. package/dist/types/common/flip/flip.d.ts +2 -2
  472. package/dist/types/common/flip/flip.types.d.ts +3 -1
  473. package/dist/types/common/input/input.types.d.ts +5 -0
  474. package/dist/types/common/interactableDiv/interactableDiv.d.ts +3 -2
  475. package/dist/types/common/loading/spinnerLoading/spinnerLoading.d.ts +0 -5
  476. package/dist/types/common/numberInput/numberInput.types.d.ts +2 -0
  477. package/dist/types/common/otpInput/otpInput.types.d.ts +2 -0
  478. package/dist/types/common/planCanvas/planCanvas.d.ts +1 -1
  479. package/dist/types/common/planCanvas/planCanvas.types.d.ts +3 -1
  480. package/dist/types/common/ripple/ripple.d.ts +1 -1
  481. package/dist/types/common/ripple/ripple.types.d.ts +1 -0
  482. package/dist/types/common/roomDrawer/roomDrawer.d.ts +2 -2
  483. package/dist/types/common/roomDrawer/roomDrawer.types.d.ts +3 -1
  484. package/dist/types/common/roomViewer/roomViewer.d.ts +2 -2
  485. package/dist/types/common/roomViewer/roomViewer.types.d.ts +3 -1
  486. package/dist/types/common/searchInput/searchInput.d.ts +1 -1
  487. package/dist/types/common/searchInput/searchInput.types.d.ts +3 -0
  488. package/dist/types/common/switch/switch.types.d.ts +3 -1
  489. package/dist/types/common/themeProvider/index.d.ts +1 -0
  490. package/dist/types/common/themeProvider/lightTheme.d.ts +13 -0
  491. package/dist/types/common/tilt/tilt.d.ts +2 -2
  492. package/dist/types/common/tilt/tilt.types.d.ts +3 -1
  493. package/dist/types/common/timer/timer.d.ts +2 -2
  494. package/dist/types/common/timer/timer.types.d.ts +3 -1
  495. package/dist/types/common/tooltip/tooltip.d.ts +1 -1
  496. package/dist/types/common/tooltip/tooltip.types.d.ts +7 -0
  497. package/dist/types/common/types/baseProps.types.d.ts +6 -0
  498. package/dist/types/common/utils/mergeRefs.d.ts +12 -0
  499. package/dist/types/common/virtualList/virtualList.d.ts +2 -4
  500. package/dist/types/common/virtualList/virtualList.types.d.ts +3 -1
  501. package/docs/Accordion.md +9 -0
  502. package/docs/ActionIcon.md +1 -0
  503. package/docs/CLAUDE.md +37 -0
  504. package/docs/Card.md +1 -0
  505. package/docs/Checkbox.md +1 -0
  506. package/docs/ColorPicker.md +12 -2
  507. package/docs/Input.md +1 -0
  508. package/docs/KlipyPicker.md +1 -1
  509. package/docs/NumberInput.md +1 -0
  510. package/docs/OtpInput.md +1 -0
  511. package/docs/SearchInput.md +1 -0
  512. package/docs/Switch.md +1 -0
  513. package/docs/Textarea.md +1 -0
  514. package/docs/ThemeProvider.md +30 -1
  515. package/docs/Tooltip.md +23 -1
  516. package/package.json +8 -7
package/README.md CHANGED
@@ -12,16 +12,39 @@ npm install @ahrowe/ui
12
12
 
13
13
  ```tsx
14
14
  import '@ahrowe/ui/style.css';
15
+ import { ThemeProvider } from '@ahrowe/ui';
15
16
 
16
17
  function App() {
17
18
  return (
18
19
  <ThemeProvider>
19
20
  App content here
21
+ {/* Components that render through a portal (Modal, Tooltip, Popover, Toast, Menu) look for this. */}
22
+ <div id="bodyEnd" />
20
23
  </ThemeProvider>
21
24
  );
22
25
  }
23
26
  ```
24
27
 
28
+ `ThemeProvider` is not optional: it injects the CSS variables every component paints with, and
29
+ without it they render unstyled. The package ships two themes, `defaultTheme` (dark) and
30
+ `lightTheme` (its light sibling); pass your own to `themes` to replace them.
31
+
32
+ ## What to know before installing
33
+
34
+ **React 19 or newer.** Components take `ref` as a plain prop rather than through `forwardRef`,
35
+ which only works from React 19 on.
36
+
37
+ **One stylesheet, all or nothing.** `@ahrowe/ui/style.css` is a single 136 KB file (26 KB
38
+ gzipped) covering every component; there is no per-component CSS to import. It is wrapped in
39
+ `@layer ahrowe-ui`, so your own unlayered styles override it whatever order the two load in.
40
+
41
+ **Left to right only.** The stylesheets use physical CSS properties (`margin-left`, `left`), not
42
+ logical ones, so the library does not mirror for right-to-left languages.
43
+
44
+ **Server components.** Every module is marked `'use client'`. The components are all interactive,
45
+ so none of them can render on the server, but they can be imported into a React Server Components
46
+ app (Next.js App Router and the like) without a wrapper.
47
+
25
48
  ## Claude Code Integration
26
49
 
27
50
  Add one line to your project's `CLAUDE.md` and Claude will have full awareness of all components, props, and usage patterns:
@@ -56,48 +79,86 @@ This gives Claude three tools: `list_components`, `get_component_docs`, and `sea
56
79
 
57
80
  ## Components
58
81
 
82
+ <!-- components:start -->
83
+
59
84
  | Component | Description |
60
85
  |-----------|-------------|
61
- | `Accordion` | Collapsible sections |
62
- | `ActionButtons` | Submit / Cancel button pair |
63
- | `ActionIcon` | Icon-only button |
64
- | `Avatar` + `AvatarGroup` | User/entity image with initials/icon fallback and status dot, stackable |
65
- | `Badge` | Count or status indicator, standalone or overlaid on another element |
66
- | `BodyEnd` | Portal renderer to `#bodyEnd` |
67
- | `Button` | Primary action button with loading state |
68
- | `Card` + `CardHeader` + `CardMedia` + `CardContent` + `CardActions` | Surface container |
69
- | `Checkbox` | Boolean toggle input |
70
- | `Chip` + `ChipContainer` | Compact tag / filter token |
71
- | `ColorPicker` | Hex colour selector |
72
- | `ConfirmModal` | Destructive action confirmation dialog |
73
- | `Dropdown` | Single-value select |
74
- | `EmptyState` | Placeholder for empty lists / search results |
75
- | `Fab` | Floating action button with speed dial |
76
- | `FloatingMenu` | Contextual popover |
77
- | `Icon` | Built-in SVG icons |
78
- | `IconLoading` + `SpinnerLoading` | Loading indicators |
79
- | `IdleManager` | User inactivity detection |
80
- | `InfiniteBlock` | Infinite scroll container |
81
- | `Input` | Floating-label text input (text, email, password, phone, search…) |
82
- | `InteractableDiv` | Accessible clickable container |
83
- | `KanbanBoard` + `KanbanColumn` | Drag-and-drop kanban board |
84
- | `KlipyPicker` | GIF picker backed by the Klipy API |
85
- | `Modal` | Full overlay dialog |
86
- | `NumberInput` | Formatted numeric input |
87
- | `OptionPicker` | Segmented single-choice control |
88
- | `Overscroll` | Mobile-style collapsing header on scroll |
89
- | `ProgressBar` | Single or stacked progress bar |
90
- | `Ripple` | Material ink ripple effect |
91
- | `RoomDrawer` | Interactive floor-plan canvas |
92
- | `ScrollbarProvider` | Custom scrollbar styling wrapper |
93
- | `SearchInput` | Debounced search field with optional result count |
94
- | `Skeleton` | Content-shaped loading placeholder (text/circle/rectangular) |
95
- | `Stepper` | Step progress indicator |
96
- | `Switch` | Sliding boolean toggle |
97
- | `Textarea` | Multiline text input |
98
- | `ThemeProvider` + `useTheme` | Theme context and CSS variables |
99
- | `Tooltip` | Info / error / details tooltip |
100
- | `Wizard` | Animated multi-step container |
86
+ | `Accordion` | Collapsible sections for progressive disclosure — FAQs, settings panels, long-form content that users expand on demand |
87
+ | `ActionButtons` | Standardised Submit / Cancel button pair for forms, dialogs, and drawer footers |
88
+ | `ActionIcon` | Clickable icon button without a label — toolbar actions, table row actions, icon-only controls |
89
+ | `Alert` | A persistent inline status message, used for form-level errors, page/section banners, empty-config warnings, and "here's what changed" notices |
90
+ | `AnimatedLogo` | A self-drawing SVG mark for splash/loading screens, empty states, or anywhere a brand or icon mark should feel alive rather than static |
91
+ | `AnimatedText` | Decorative text entrance or emphasis effect, for hero headlines, empty-state messages, "premium"/"new" callouts, loading/decoding states |
92
+ | `Avatar` + `AvatarGroup` | User or entity image — profile pictures, comment authors, member lists |
93
+ | `Badge` | Small count or status indicator — unread counts, notification dots, "new" markers |
94
+ | `BodyEnd` | Renders children via a React portal into a `#bodyEnd` DOM node |
95
+ | `Breadcrumb` | A trail showing the current page's position within a hierarchy, with links back to each ancestor, such as a file browser path, a category/subcategory drill-down, or a multi-level settings page |
96
+ | `Button` | Primary interactive action trigger |
97
+ | `ButtonGroup` | Joins a row (or column) of buttons into a single seamless control, merging their borders and rounding only the outer corners |
98
+ | `Card` + `CardHeader` + `CardMedia` + `CardContent` + `CardActions` | Surface container for grouping related content — list items, profile cards, dashboard tiles, product listings |
99
+ | `Carousel` | A slide track for stepping through a set of items one at a time, with arrows, dots, and drag/swipe support, plus optional autoplay |
100
+ | `Checkbox` | Boolean toggle input — settings, multi-select lists, accept terms, feature flags |
101
+ | `Chip` + `ChipContainer` | Compact tag, label, or filter token — selected items, applied filters, category badges, user avatars with remove |
102
+ | `ColorPicker` | Hex colour selection — theme editors, annotation tools, customisation panels |
103
+ | `ConfigProvider` | Set global **default props** for library components once, near the root of your app, instead of repeating the same prop on every instance |
104
+ | `ConfirmModal` | Confirmation dialog before destructive or irreversible actions — delete, archive, send, overwrite |
105
+ | `DatePicker` | Date selection input — booking forms, birth date fields, date range pickers, deadline selectors |
106
+ | `Divider` | A rule that separates sections of content — horizontal by default, filling the width of its parent |
107
+ | `Drawer` | Inline horizontal panel that collapses and expands by animating its width — side panels, navigation rails, detail/filter panes that slide open beside the main content |
108
+ | `DropZone` | Drag-and-drop file upload area, optionally click-to-open the native picker |
109
+ | `Dropdown` | Single-value selection from a list — country pickers, status selectors, category filters, any select-style input |
110
+ | `EmptyState` | Placeholder shown when a list, table, or search result has no items — empty inboxes, no search matches, freshly-created sections |
111
+ | `ErrorBoundary` | Wrap any subtree whose render errors shouldn't take down the rest of the app — a widget, a route, a third-party embed, a list row |
112
+ | `Fab` | Floating action button — primary screen action (create, add, compose), optionally with a speed-dial sub-menu |
113
+ | `Flip` | Flip a front/back pair of content 180°, like a physical playing card |
114
+ | `IconLoading` + `SpinnerLoading` | Loading indicators for async operations — page loads, data fetching, button actions (when not using Button's built-in `isLoading`) |
115
+ | `IconPicker` | Pick one item from a visual icon/image grid — category selectors, emoji-style pickers, avatar selectors, anything where each option is best represented by an icon or image rather than text alone |
116
+ | `IdleManager` | Detects user inactivity — auto-logout, session timeout warnings, auto-save triggers, pausing background processes |
117
+ | `InfiniteBlock` | Infinite scroll container — load more items as the user scrolls to the bottom |
118
+ | `Input` | Text input with floating label, validation state, and type variants |
119
+ | `InputDropdown` | Combobox-style input — the user can type to filter and also pick from a dropdown list |
120
+ | `InteractableDiv` | Accessible `<div>` that behaves like a button — click and keyboard (Enter/Space) events, with proper ARIA semantics |
121
+ | `KanbanBoard` + `KanbanColumn` | Drag-and-drop board with columns — task management, workflow stages, status boards (e.g |
122
+ | `KlipyPicker` | GIF picker backed by the Klipy API — chat reactions, message composers, content authoring tools |
123
+ | `Menu` | A list of actions hanging off a trigger — a row's "more" button, a toolbar overflow, a context menu on a card |
124
+ | `Modal` | Full overlay dialog — forms, detail views, confirmations, wizards that need to block the rest of the UI |
125
+ | `MultiSelect` | Pick several options from a list |
126
+ | `NumberInput` | Numeric input with formatting — prices, quantities, percentages, phone numbers with separators |
127
+ | `OptionPicker` | Segmented control for picking exactly one option from a small set — view modes, sort directions, simple tab-like switches |
128
+ | `OtpInput` | A one-time-passcode / verification-code input, rendered as one box per character |
129
+ | `Overscroll` | Mobile-style collapsing header that shrinks as the user scrolls — profile pages, detail screens, anywhere a large hero area should yield space to content on scroll |
130
+ | `Pagination` | Move through server-paged results a page at a time — a results list, an admin table, a report |
131
+ | `Popover` | Any panel anchored to a trigger: |
132
+ | `ProgressBar` | Visual progress indicator — file uploads, multi-step completion, storage usage, stacked stats (e.g |
133
+ | `RadioGroup` | Single-choice selection from a small, always-visible set of options — plan pickers, shipping methods, yes/no/maybe, settings with 2–5 mutually exclusive choices |
134
+ | `Rating` | A star rating input or display, for review scores, feedback prompts, and quality indicators |
135
+ | `RevealLens` | A two-layer reveal/magnifier effect — an `overlay` covers a `background` by default, and moving the pointer over the component uncovers the `background` in an area around the cursor |
136
+ | `Ripple` | Material-style ink ripple effect on any interactive element — buttons, list items, cards, tiles |
137
+ | `RoomDrawer` | An interactive floor plan editor |
138
+ | `RoomViewer` | to show a floor plan someone can look at and click, without letting them change it — a building directory, a booking screen, a dashboard beside a room list |
139
+ | `ScrollbarProvider` | Applies custom scrollbar styling to a scrollable region — use to keep scrollbar appearance consistent with the theme |
140
+ | `SearchInput` | Search field with built-in debouncing and an optional result count line — list filters, search-as-you-type pages |
141
+ | `SectionHeader` | A reusable heading block for the top of a page, panel, card, or any section — a title with an optional subtitle, a leading icon or thumbnail, and a trailing actions area |
142
+ | `Skeleton` | Content-shaped loading placeholder, shown while real content is being fetched — more polished than a spinner for content-heavy pages (lists, cards, profile headers) |
143
+ | `Slider` | Let the user pick a number from a continuous or stepped range by dragging a thumb: |
144
+ | `SplitButton` | A primary action button with a small attached dropdown for closely related secondary actions, e.g |
145
+ | `Stepper` | Step progress indicator for multi-step forms, onboarding flows, and checkout wizards |
146
+ | `Sticky` | Pin a piece of content to the top of the viewport once the page scrolls past it — section headers, toolbars, filter bars, table headers |
147
+ | `Switch` | Sliding boolean toggle — settings panels, feature flags, preference lists |
148
+ | `TabHeader` | A horizontal row of tabs to switch between sibling views or sections — settings panels, dashboards, detail pages |
149
+ | `Textarea` | Multiline text input — comments, descriptions, notes, code snippets, long-form content |
150
+ | `ThemeProvider` | Required wrapper for the entire component library |
151
+ | `Tilt` + `TiltGroup` | Wrap content that should tilt toward the cursor in 3D |
152
+ | `TimeInput` | Time-of-day selection — appointment times, opening hours, shift starts, reminders |
153
+ | `Timeline` | A vertical list of dated events, connected by a line, for audit logs, activity feeds, order status history, and deploy logs |
154
+ | `Timer` | A countdown timer with a depleting ring, add/remove-time and pause/cancel controls, and an imperative ref API |
155
+ | `ToastProvider` | Non-blocking notifications — save confirmations, error alerts, info messages, warnings |
156
+ | `Tooltip` | Contextual help, info icons, field explanations, error pointers |
157
+ | `Tree` | A hierarchical list the user can expand, collapse and pick from: |
158
+ | `VirtualList` | Efficiently render large lists or tables — thousands of rows rendered with a virtualised scroll window so only visible rows are in the DOM |
159
+ | `Wizard` | Animated step container for multi-step forms and flows |
160
+
161
+ <!-- components:end -->
101
162
 
102
163
  ## Services
103
164
 
@@ -1,2 +1,2 @@
1
- import{AccordionStyleType as e}from"./accordion.types.mjs";import t from"./accordion.module.mjs";import n from"./accordion.primary.module.mjs";import r from"./accordion.plain.module.mjs";import{useComponentDefaults as i}from"../configProvider/useComponentDefaults.mjs";import{useEffect as a,useRef as o,useState as s}from"react";import c from"classnames";import{FontAwesomeIcon as l}from"@fortawesome/react-fontawesome";import{faChevronDown as u}from"@fortawesome/free-solid-svg-icons";import{jsx as d,jsxs as f}from"react/jsx-runtime";var p={[e.Default]:t,[e.Primary]:n,[e.Plain]:r};function m(t){let{id:n=``,title:r=``,children:m=null,expanded:h=null,onHeaderClicked:g=()=>{},styleType:_=e.Default,startOpen:v=!1,hideHeader:y=!1,className:b,style:x,classNames:S,styles:C,...w}=i(`Accordion`,t),T=p[_],E=o(null),D=o(null),[O,k]=s(h??v),[A,j]=s(null);a(()=>{h!==null&&k(h)},[h]),a(()=>{let e=E.current;e&&(e.inert=!O)},[O]),a(()=>{let e=D.current;if(!e)return;let t=new ResizeObserver(()=>j(e.offsetHeight));return t.observe(e),()=>t.unobserve(e)},[]);function M(){let e=!O;g(n,e),h===null&&k(e)}let N={height:O?A??`auto`:`0px`};return f(`div`,{...w,id:n||void 0,className:c(T.accordion,O&&T.accordionActive,b,S?.root),style:{...x,...C?.root},children:[!y&&f(`div`,{className:c(T.accordionHeader,O&&T.accordionHeaderActive,S?.header),style:C?.header,onClick:M,role:`button`,tabIndex:0,onKeyDown:({key:e})=>{e===`Enter`&&M()},children:[d(`div`,{className:c(T.accordionTitle,S?.title),style:C?.title,children:r}),d(l,{icon:u,className:c(T.accordionIcon,O&&T.accordionIconActive,S?.icon),style:C?.icon})]}),d(`div`,{ref:E,className:c(T.accordionBody,O&&T.accordionBodyActive,S?.body),style:{...N,...C?.body},children:d(`div`,{className:c(T.accordionBodyInner,S?.bodyInner),style:C?.bodyInner,ref:D,children:m})})]})}export{m as default};
1
+ "use client";import{AccordionStyleType as e}from"./accordion.types.mjs";import t from"./accordion.module.mjs";import n from"./accordion.primary.module.mjs";import r from"./accordion.plain.module.mjs";import{useComponentDefaults as i}from"../configProvider/useComponentDefaults.mjs";import{isSelfActivation as a}from"../utils/activationKey.mjs";import{useEffect as o,useId as s,useRef as c,useState as l}from"react";import u from"classnames";import{FontAwesomeIcon as d}from"@fortawesome/react-fontawesome";import{faChevronDown as f}from"@fortawesome/free-solid-svg-icons";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h={[e.Default]:t,[e.Primary]:n,[e.Plain]:r};function g(t){let{id:n=``,title:r=``,children:g=null,expanded:_=null,onHeaderClicked:v=()=>{},styleType:y=e.Default,startOpen:b=!1,hideHeader:x=!1,className:S,style:C,classNames:w,styles:T,...E}=i(`Accordion`,t),D=h[y],O=s(),k=`${O}-header`,A=`${O}-body`,j=c(null),M=c(null),[N,P]=l(_??b),[F,I]=l(null);o(()=>{_!==null&&P(_)},[_]),o(()=>{let e=j.current;e&&(e.inert=!N)},[N]),o(()=>{let e=M.current;if(!e)return;let t=new ResizeObserver(()=>I(e.offsetHeight));return t.observe(e),()=>t.unobserve(e)},[]);function L(){let e=!N;v(n,e),_===null&&P(e)}let R={height:N?F??`auto`:`0px`};return m(`div`,{...E,id:n||void 0,className:u(D.accordion,N&&D.accordionActive,S,w?.root),style:{...C,...T?.root},children:[!x&&m(`div`,{className:u(D.accordionHeader,N&&D.accordionHeaderActive,w?.header),style:T?.header,onClick:L,role:`button`,tabIndex:0,id:k,"aria-expanded":N,"aria-controls":A,onKeyDown:e=>{a(e)&&(e.preventDefault(),L())},children:[p(`div`,{className:u(D.accordionTitle,w?.title),style:T?.title,children:r}),p(d,{icon:f,className:u(D.accordionIcon,N&&D.accordionIconActive,w?.icon),style:T?.icon})]}),p(`div`,{ref:j,id:A,role:`region`,"aria-labelledby":x?void 0:k,className:u(D.accordionBody,N&&D.accordionBodyActive,w?.body),style:{...R,...T?.body},children:p(`div`,{className:u(D.accordionBodyInner,w?.bodyInner),style:T?.bodyInner,ref:M,children:g})})]})}export{g as default};
2
2
  //# sourceMappingURL=accordion.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, type ReactElement } from 'react';\nimport cx from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown as arrowIcon } from '@fortawesome/free-solid-svg-icons';\n\nimport { AccordionStyleType, type AccordionProps } from './accordion.types';\n\nimport defaultStyles from './accordion.module.pcss';\nimport primaryStyles from './accordion.primary.module.pcss';\nimport plainStyles from './accordion.plain.module.pcss';\nimport { useComponentDefaults } from '../configProvider';\n\nconst STYLES_BY_TYPE: Record<AccordionStyleType, typeof defaultStyles> = {\n [AccordionStyleType.Default]: defaultStyles,\n [AccordionStyleType.Primary]: primaryStyles,\n [AccordionStyleType.Plain]: plainStyles,\n};\n\nfunction Accordion(props: AccordionProps): ReactElement {\n const {\n id = '',\n title = '',\n children = null,\n expanded = null,\n onHeaderClicked = () => {},\n styleType = AccordionStyleType.Default,\n startOpen = false,\n hideHeader = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('Accordion', props);\n const s = STYLES_BY_TYPE[styleType];\n const bodyRef = useRef<HTMLDivElement>(null);\n const bodyInnerRef = useRef<HTMLDivElement>(null);\n\n const [isExpanded, setIsExpanded] = useState(expanded ?? startOpen);\n const [bodyHeight, setBodyHeight] = useState<number | null>(null);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (expanded !== null) setIsExpanded(expanded);\n }, [expanded]);\n\n useEffect(() => {\n const el = bodyRef.current;\n if (el) el.inert = !isExpanded;\n }, [isExpanded]);\n\n useEffect(() => {\n const el = bodyInnerRef.current;\n if (!el) return;\n const observer = new ResizeObserver(() => setBodyHeight(el.offsetHeight));\n observer.observe(el);\n return () => observer.unobserve(el);\n }, []);\n\n function toggleExpanded() {\n const next = !isExpanded;\n onHeaderClicked(id, next);\n if (expanded === null) setIsExpanded(next);\n }\n\n const bodyStyle = { height: isExpanded ? (bodyHeight ?? 'auto') : '0px' };\n\n return (\n <div\n {...rest}\n id={id || undefined}\n className={cx(s.accordion, isExpanded && s.accordionActive, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n >\n {!hideHeader && (\n <div\n className={cx(s.accordionHeader, isExpanded && s.accordionHeaderActive, classNames?.header)}\n style={slotStyles?.header}\n onClick={toggleExpanded}\n role='button'\n tabIndex={0}\n onKeyDown={({ key }) => {\n if (key === 'Enter') toggleExpanded();\n }}\n >\n <div className={cx(s.accordionTitle, classNames?.title)} style={slotStyles?.title}>\n {title}\n </div>\n <FontAwesomeIcon\n icon={arrowIcon}\n className={cx(s.accordionIcon, isExpanded && s.accordionIconActive, classNames?.icon)}\n style={slotStyles?.icon as React.CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n </div>\n )}\n <div\n ref={bodyRef}\n className={cx(s.accordionBody, isExpanded && s.accordionBodyActive, classNames?.body)}\n style={{ ...bodyStyle, ...slotStyles?.body }}\n >\n <div\n className={cx(s.accordionBodyInner, classNames?.bodyInner)}\n style={slotStyles?.bodyInner}\n ref={bodyInnerRef}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Accordion;\n"],"mappings":"whBAYA,IAAM,EAAmE,EACtE,EAAmB,SAAU,GAC7B,EAAmB,SAAU,GAC7B,EAAmB,OAAQ,CAC9B,EAEA,SAAS,EAAU,EAAqC,CACtD,GAAM,CACJ,KAAK,GACL,QAAQ,GACR,WAAW,KACX,WAAW,KACX,sBAAwB,CAAC,EACzB,YAAY,EAAmB,QAC/B,YAAY,GACZ,aAAa,GACb,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAAqB,YAAa,CAAK,EACrC,EAAI,EAAe,GACnB,EAAU,EAAuB,IAAI,EACrC,EAAe,EAAuB,IAAI,EAE1C,CAAC,EAAY,GAAiB,EAAS,GAAY,CAAS,EAC5D,CAAC,EAAY,GAAiB,EAAwB,IAAI,EAEhE,MAAgB,CAEV,IAAa,MAAM,EAAc,CAAQ,CAC/C,EAAG,CAAC,CAAQ,CAAC,EAEb,MAAgB,CACd,IAAM,EAAK,EAAQ,QACf,IAAI,EAAG,MAAQ,CAAC,EACtB,EAAG,CAAC,CAAU,CAAC,EAEf,MAAgB,CACd,IAAM,EAAK,EAAa,QACxB,GAAI,CAAC,EAAI,OACT,IAAM,EAAW,IAAI,mBAAqB,EAAc,EAAG,YAAY,CAAC,EAExE,OADA,EAAS,QAAQ,CAAE,MACN,EAAS,UAAU,CAAE,CACpC,EAAG,CAAC,CAAC,EAEL,SAAS,GAAiB,CACxB,IAAM,EAAO,CAAC,EACd,EAAgB,EAAI,CAAI,EACpB,IAAa,MAAM,EAAc,CAAI,CAC3C,CAEA,IAAM,EAAY,CAAE,OAAQ,EAAc,GAAc,OAAU,KAAM,EAExE,OACE,EAAC,MAAD,CACE,GAAI,EACJ,GAAI,GAAM,IAAA,GACV,UAAW,EAAG,EAAE,UAAW,GAAc,EAAE,gBAAiB,EAAW,GAAY,IAAI,EACvF,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EAJzC,SAAA,CAMG,CAAC,GACA,EAAC,MAAD,CACE,UAAW,EAAG,EAAE,gBAAiB,GAAc,EAAE,sBAAuB,GAAY,MAAM,EAC1F,MAAO,GAAY,OACnB,QAAS,EACT,KAAK,SACL,SAAU,EACV,WAAY,CAAE,SAAU,CAClB,IAAQ,SAAS,EAAe,CACtC,EARF,SAAA,CAUE,EAAC,MAAD,CAAK,UAAW,EAAG,EAAE,eAAgB,GAAY,KAAK,EAAG,MAAO,GAAY,MACzE,SAAA,CACE,CAAA,EACL,EAAC,EAAD,CACE,KAAM,EACN,UAAW,EAAG,EAAE,cAAe,GAAc,EAAE,oBAAqB,GAAY,IAAI,EACpF,MAAO,GAAY,IACpB,CAAA,CACE,CAEP,CAAA,EAAA,EAAC,MAAD,CACE,IAAK,EACL,UAAW,EAAG,EAAE,cAAe,GAAc,EAAE,oBAAqB,GAAY,IAAI,EACpF,MAAO,CAAE,GAAG,EAAW,GAAG,GAAY,IAAK,EAE3C,SAAA,EAAC,MAAD,CACE,UAAW,EAAG,EAAE,mBAAoB,GAAY,SAAS,EACzD,MAAO,GAAY,UACnB,IAAK,EAEJ,UACE,CAAA,CACF,CAAA,CACF,GAET"}
1
+ {"version":3,"file":"accordion.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.tsx"],"sourcesContent":["import React, { useState, useEffect, useId, useRef, type ReactElement } from 'react';\nimport cx from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown as arrowIcon } from '@fortawesome/free-solid-svg-icons';\n\nimport { AccordionStyleType, type AccordionProps } from './accordion.types';\n\nimport defaultStyles from './accordion.module.pcss';\nimport primaryStyles from './accordion.primary.module.pcss';\nimport plainStyles from './accordion.plain.module.pcss';\nimport { useComponentDefaults } from '../configProvider';\nimport { isSelfActivation } from '../utils/activationKey';\n\nconst STYLES_BY_TYPE: Record<AccordionStyleType, typeof defaultStyles> = {\n [AccordionStyleType.Default]: defaultStyles,\n [AccordionStyleType.Primary]: primaryStyles,\n [AccordionStyleType.Plain]: plainStyles,\n};\n\nfunction Accordion(props: AccordionProps): ReactElement {\n const {\n id = '',\n title = '',\n children = null,\n expanded = null,\n onHeaderClicked = () => {},\n styleType = AccordionStyleType.Default,\n startOpen = false,\n hideHeader = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('Accordion', props);\n const s = STYLES_BY_TYPE[styleType];\n // The header and the body name each other through aria-controls/aria-labelledby, so both need\n // an id that is stable across renders and unique even with several accordions on the page.\n const generatedId = useId();\n const headerId = `${generatedId}-header`;\n const bodyId = `${generatedId}-body`;\n const bodyRef = useRef<HTMLDivElement>(null);\n const bodyInnerRef = useRef<HTMLDivElement>(null);\n\n const [isExpanded, setIsExpanded] = useState(expanded ?? startOpen);\n const [bodyHeight, setBodyHeight] = useState<number | null>(null);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (expanded !== null) setIsExpanded(expanded);\n }, [expanded]);\n\n useEffect(() => {\n const el = bodyRef.current;\n if (el) el.inert = !isExpanded;\n }, [isExpanded]);\n\n useEffect(() => {\n const el = bodyInnerRef.current;\n if (!el) return;\n const observer = new ResizeObserver(() => setBodyHeight(el.offsetHeight));\n observer.observe(el);\n return () => observer.unobserve(el);\n }, []);\n\n function toggleExpanded() {\n const next = !isExpanded;\n onHeaderClicked(id, next);\n if (expanded === null) setIsExpanded(next);\n }\n\n const bodyStyle = { height: isExpanded ? (bodyHeight ?? 'auto') : '0px' };\n\n return (\n <div\n {...rest}\n id={id || undefined}\n className={cx(s.accordion, isExpanded && s.accordionActive, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n >\n {!hideHeader && (\n <div\n className={cx(s.accordionHeader, isExpanded && s.accordionHeaderActive, classNames?.header)}\n style={slotStyles?.header}\n onClick={toggleExpanded}\n role='button'\n tabIndex={0}\n id={headerId}\n aria-expanded={isExpanded}\n aria-controls={bodyId}\n onKeyDown={(event) => {\n if (!isSelfActivation(event)) return;\n // Space scrolls the page otherwise, which is what a real <button> suppresses too.\n event.preventDefault();\n toggleExpanded();\n }}\n >\n <div className={cx(s.accordionTitle, classNames?.title)} style={slotStyles?.title}>\n {title}\n </div>\n <FontAwesomeIcon\n icon={arrowIcon}\n className={cx(s.accordionIcon, isExpanded && s.accordionIconActive, classNames?.icon)}\n style={slotStyles?.icon as React.CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n </div>\n )}\n <div\n ref={bodyRef}\n id={bodyId}\n role='region'\n aria-labelledby={hideHeader ? undefined : headerId}\n className={cx(s.accordionBody, isExpanded && s.accordionBodyActive, classNames?.body)}\n style={{ ...bodyStyle, ...slotStyles?.body }}\n >\n <div\n className={cx(s.accordionBodyInner, classNames?.bodyInner)}\n style={slotStyles?.bodyInner}\n ref={bodyInnerRef}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Accordion;\n"],"mappings":"8mBAaA,IAAM,EAAmE,EACtE,EAAmB,SAAU,GAC7B,EAAmB,SAAU,GAC7B,EAAmB,OAAQ,CAC9B,EAEA,SAAS,EAAU,EAAqC,CACtD,GAAM,CACJ,KAAK,GACL,QAAQ,GACR,WAAW,KACX,WAAW,KACX,sBAAwB,CAAC,EACzB,YAAY,EAAmB,QAC/B,YAAY,GACZ,aAAa,GACb,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAAqB,YAAa,CAAK,EACrC,EAAI,EAAe,GAGnB,EAAc,EAAM,EACpB,EAAW,GAAG,EAAY,SAC1B,EAAS,GAAG,EAAY,OACxB,EAAU,EAAuB,IAAI,EACrC,EAAe,EAAuB,IAAI,EAE1C,CAAC,EAAY,GAAiB,EAAS,GAAY,CAAS,EAC5D,CAAC,EAAY,GAAiB,EAAwB,IAAI,EAEhE,MAAgB,CAEV,IAAa,MAAM,EAAc,CAAQ,CAC/C,EAAG,CAAC,CAAQ,CAAC,EAEb,MAAgB,CACd,IAAM,EAAK,EAAQ,QACf,IAAI,EAAG,MAAQ,CAAC,EACtB,EAAG,CAAC,CAAU,CAAC,EAEf,MAAgB,CACd,IAAM,EAAK,EAAa,QACxB,GAAI,CAAC,EAAI,OACT,IAAM,EAAW,IAAI,mBAAqB,EAAc,EAAG,YAAY,CAAC,EAExE,OADA,EAAS,QAAQ,CAAE,MACN,EAAS,UAAU,CAAE,CACpC,EAAG,CAAC,CAAC,EAEL,SAAS,GAAiB,CACxB,IAAM,EAAO,CAAC,EACd,EAAgB,EAAI,CAAI,EACpB,IAAa,MAAM,EAAc,CAAI,CAC3C,CAEA,IAAM,EAAY,CAAE,OAAQ,EAAc,GAAc,OAAU,KAAM,EAExE,OACE,EAAC,MAAD,CACE,GAAI,EACJ,GAAI,GAAM,IAAA,GACV,UAAW,EAAG,EAAE,UAAW,GAAc,EAAE,gBAAiB,EAAW,GAAY,IAAI,EACvF,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EAJzC,SAAA,CAMG,CAAC,GACA,EAAC,MAAD,CACE,UAAW,EAAG,EAAE,gBAAiB,GAAc,EAAE,sBAAuB,GAAY,MAAM,EAC1F,MAAO,GAAY,OACnB,QAAS,EACT,KAAK,SACL,SAAU,EACV,GAAI,EACJ,gBAAe,EACf,gBAAe,EACf,UAAY,GAAU,CACf,EAAiB,CAAK,IAE3B,EAAM,eAAe,EACrB,EAAe,EACjB,EAdF,SAAA,CAgBE,EAAC,MAAD,CAAK,UAAW,EAAG,EAAE,eAAgB,GAAY,KAAK,EAAG,MAAO,GAAY,MACzE,SAAA,CACE,CAAA,EACL,EAAC,EAAD,CACE,KAAM,EACN,UAAW,EAAG,EAAE,cAAe,GAAc,EAAE,oBAAqB,GAAY,IAAI,EACpF,MAAO,GAAY,IACpB,CAAA,CACE,CAEP,CAAA,EAAA,EAAC,MAAD,CACE,IAAK,EACL,GAAI,EACJ,KAAK,SACL,kBAAiB,EAAa,IAAA,GAAY,EAC1C,UAAW,EAAG,EAAE,cAAe,GAAc,EAAE,oBAAqB,GAAY,IAAI,EACpF,MAAO,CAAE,GAAG,EAAW,GAAG,GAAY,IAAK,EAE3C,SAAA,EAAC,MAAD,CACE,UAAW,EAAG,EAAE,mBAAoB,GAAY,SAAS,EACzD,MAAO,GAAY,UACnB,IAAK,EAEJ,UACE,CAAA,CACF,CAAA,CACF,GAET"}
@@ -1,2 +1,2 @@
1
- var e=`accordion_YZt8B`,t=`accordion-title_CGYKY`,n=`accordion-active_mocpj`,r=`accordion-header_OEjXM`,i=`accordion-header-active_6KvnM`,a=`accordion-body_2o-mY`,o=`accordion-body-inner_JI9nJ`,s=`accordion-body-active_sb2-U`,c=`accordion-icon_kLqp-`,l=`accordion-icon-active_lJwG8`,u={accordion:e,"accordion-title":`accordion-title_CGYKY`,accordionTitle:t,"accordion-active":`accordion-active_mocpj`,accordionActive:n,"accordion-header":`accordion-header_OEjXM`,accordionHeader:r,"accordion-header-active":`accordion-header-active_6KvnM`,accordionHeaderActive:i,"accordion-body":`accordion-body_2o-mY`,accordionBody:a,"accordion-body-inner":`accordion-body-inner_JI9nJ`,accordionBodyInner:o,"accordion-body-active":`accordion-body-active_sb2-U`,accordionBodyActive:s,"accordion-icon":`accordion-icon_kLqp-`,accordionIcon:c,"accordion-icon-active":`accordion-icon-active_lJwG8`,accordionIconActive:l};export{e as accordion,n as accordionActive,a as accordionBody,s as accordionBodyActive,o as accordionBodyInner,r as accordionHeader,i as accordionHeaderActive,c as accordionIcon,l as accordionIconActive,t as accordionTitle,u as default};
1
+ "use client";var e=`accordion_YZt8B`,t=`accordion-title_CGYKY`,n=`accordion-active_mocpj`,r=`accordion-header_OEjXM`,i=`accordion-header-active_6KvnM`,a=`accordion-body_2o-mY`,o=`accordion-body-inner_JI9nJ`,s=`accordion-body-active_sb2-U`,c=`accordion-icon_kLqp-`,l=`accordion-icon-active_lJwG8`,u={accordion:e,"accordion-title":`accordion-title_CGYKY`,accordionTitle:t,"accordion-active":`accordion-active_mocpj`,accordionActive:n,"accordion-header":`accordion-header_OEjXM`,accordionHeader:r,"accordion-header-active":`accordion-header-active_6KvnM`,accordionHeaderActive:i,"accordion-body":`accordion-body_2o-mY`,accordionBody:a,"accordion-body-inner":`accordion-body-inner_JI9nJ`,accordionBodyInner:o,"accordion-body-active":`accordion-body-active_sb2-U`,accordionBodyActive:s,"accordion-icon":`accordion-icon_kLqp-`,accordionIcon:c,"accordion-icon-active":`accordion-icon-active_lJwG8`,accordionIconActive:l};export{e as accordion,n as accordionActive,a as accordionBody,s as accordionBodyActive,o as accordionBodyInner,r as accordionHeader,i as accordionHeaderActive,c as accordionIcon,l as accordionIconActive,t as accordionTitle,u as default};
2
2
  //# sourceMappingURL=accordion.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.module.pcss"],"sourcesContent":[".accordion {\n transition: margin 0.2s;\n margin: -1px;\n color: var(--text-color);\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 0.625em 0;\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n /* There is no fixed height any more: the header is this padding plus the title's line. */\n padding: 0.75em 1em;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n background: var(--background);\n border-radius: var(--default-border-radius);\n border: 1px solid var(--border-color);\n\n /* The rest of the accordion measures from the header, so the base is set here. */\n font-size: var(--default-font-size);\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n border: 1px solid var(--primary-color);\n background: var(--background-accent);\n border-radius: var(--default-border-radius) var(--default-border-radius) 0 0;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0 0 var(--default-border-radius) var(--default-border-radius);\n border: 1px solid var(--border-color);\n border-top: none;\n border-bottom: none;\n\n &-inner {\n padding: 1em;\n }\n\n &-active {\n border: 1px solid var(--primary-color);\n border-top: none;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: var(--border-color);\n\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"accordion.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.module.pcss"],"sourcesContent":[".accordion {\n transition: margin 0.2s;\n margin: -1px;\n color: var(--text-color);\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 0.625em 0;\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n /* There is no fixed height any more: the header is this padding plus the title's line. */\n padding: 0.75em 1em;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n background: var(--background);\n border-radius: var(--default-border-radius);\n border: 1px solid var(--border-color);\n\n /* The rest of the accordion measures from the header, so the base is set here. */\n font-size: var(--default-font-size);\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n border: 1px solid var(--primary-color);\n background: var(--background-accent);\n border-radius: var(--default-border-radius) var(--default-border-radius) 0 0;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0 0 var(--default-border-radius) var(--default-border-radius);\n border: 1px solid var(--border-color);\n border-top: none;\n border-bottom: none;\n\n &-inner {\n padding: 1em;\n }\n\n &-active {\n border: 1px solid var(--primary-color);\n border-top: none;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: var(--border-color);\n\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .accordion,\n .accordion-header,\n .accordion-body,\n .accordion-icon {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e=`accordion_wkZJf`,t=`accordion-title_-qwNy`,n=`accordion-active_t9-a2`,r=`accordion-header_-oST6`,i=`accordion-header-active_UvKis`,a=`accordion-body_ZagrJ`,o=`accordion-body-inner_HE7PL`,s=`accordion-icon_kHxym`,c=`accordion-icon-active_-L8BH`,l={accordion:e,"accordion-title":`accordion-title_-qwNy`,accordionTitle:t,"accordion-active":`accordion-active_t9-a2`,accordionActive:n,"accordion-header":`accordion-header_-oST6`,accordionHeader:r,"accordion-header-active":`accordion-header-active_UvKis`,accordionHeaderActive:i,"accordion-body":`accordion-body_ZagrJ`,accordionBody:a,"accordion-body-inner":`accordion-body-inner_HE7PL`,accordionBodyInner:o,"accordion-icon":`accordion-icon_kHxym`,accordionIcon:s,"accordion-icon-active":`accordion-icon-active_-L8BH`,accordionIconActive:c};export{e as accordion,n as accordionActive,a as accordionBody,o as accordionBodyInner,r as accordionHeader,i as accordionHeaderActive,s as accordionIcon,c as accordionIconActive,t as accordionTitle,l as default};
1
+ "use client";var e=`accordion_wkZJf`,t=`accordion-title_-qwNy`,n=`accordion-active_t9-a2`,r=`accordion-header_-oST6`,i=`accordion-header-active_UvKis`,a=`accordion-body_ZagrJ`,o=`accordion-body-inner_HE7PL`,s=`accordion-icon_kHxym`,c=`accordion-icon-active_-L8BH`,l={accordion:e,"accordion-title":`accordion-title_-qwNy`,accordionTitle:t,"accordion-active":`accordion-active_t9-a2`,accordionActive:n,"accordion-header":`accordion-header_-oST6`,accordionHeader:r,"accordion-header-active":`accordion-header-active_UvKis`,accordionHeaderActive:i,"accordion-body":`accordion-body_ZagrJ`,accordionBody:a,"accordion-body-inner":`accordion-body-inner_HE7PL`,accordionBodyInner:o,"accordion-icon":`accordion-icon_kHxym`,accordionIcon:s,"accordion-icon-active":`accordion-icon-active_-L8BH`,accordionIconActive:c};export{e as accordion,n as accordionActive,a as accordionBody,o as accordionBodyInner,r as accordionHeader,i as accordionHeaderActive,s as accordionIcon,c as accordionIconActive,t as accordionTitle,l as default};
2
2
  //# sourceMappingURL=accordion.plain.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.plain.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.plain.module.pcss"],"sourcesContent":[".accordion {\n transition: margin 0.2s;\n margin: -1px;\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 0.625em 0;\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n border-radius: var(--default-border-radius);\n font-size: var(--default-font-size);\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n border-radius: var(--default-border-radius) var(--default-border-radius) 0 0;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0 0 var(--default-border-radius) var(--default-border-radius);\n\n &-inner {\n padding: 0;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: var(--primary-color);\n\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"accordion.plain.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.plain.module.pcss"],"sourcesContent":[".accordion {\n transition: margin 0.2s;\n margin: -1px;\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 0.625em 0;\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n border-radius: var(--default-border-radius);\n font-size: var(--default-font-size);\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n border-radius: var(--default-border-radius) var(--default-border-radius) 0 0;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0 0 var(--default-border-radius) var(--default-border-radius);\n\n &-inner {\n padding: 0;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: var(--primary-color);\n\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .accordion,\n .accordion-header,\n .accordion-body,\n .accordion-icon {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e=`accordion_X64Nz`,t=`accordion-title_2q-FF`,n=`accordion-active_72VwY`,r=`accordion-header_XuGF6`,i=`accordion-header-active_xf8Ch`,a=`accordion-body_0Jsco`,o=`accordion-body-inner_0UBPf`,s=`accordion-body-active_XFSy1`,c=`accordion-icon_W1mz5`,l=`accordion-icon-active_LI98q`,u={accordion:e,"accordion-title":`accordion-title_2q-FF`,accordionTitle:t,"accordion-active":`accordion-active_72VwY`,accordionActive:n,"accordion-header":`accordion-header_XuGF6`,accordionHeader:r,"accordion-header-active":`accordion-header-active_xf8Ch`,accordionHeaderActive:i,"accordion-body":`accordion-body_0Jsco`,accordionBody:a,"accordion-body-inner":`accordion-body-inner_0UBPf`,accordionBodyInner:o,"accordion-body-active":`accordion-body-active_XFSy1`,accordionBodyActive:s,"accordion-icon":`accordion-icon_W1mz5`,accordionIcon:c,"accordion-icon-active":`accordion-icon-active_LI98q`,accordionIconActive:l};export{e as accordion,n as accordionActive,a as accordionBody,s as accordionBodyActive,o as accordionBodyInner,r as accordionHeader,i as accordionHeaderActive,c as accordionIcon,l as accordionIconActive,t as accordionTitle,u as default};
1
+ "use client";var e=`accordion_X64Nz`,t=`accordion-title_2q-FF`,n=`accordion-active_72VwY`,r=`accordion-header_XuGF6`,i=`accordion-header-active_xf8Ch`,a=`accordion-body_0Jsco`,o=`accordion-body-inner_0UBPf`,s=`accordion-body-active_XFSy1`,c=`accordion-icon_W1mz5`,l=`accordion-icon-active_LI98q`,u={accordion:e,"accordion-title":`accordion-title_2q-FF`,accordionTitle:t,"accordion-active":`accordion-active_72VwY`,accordionActive:n,"accordion-header":`accordion-header_XuGF6`,accordionHeader:r,"accordion-header-active":`accordion-header-active_xf8Ch`,accordionHeaderActive:i,"accordion-body":`accordion-body_0Jsco`,accordionBody:a,"accordion-body-inner":`accordion-body-inner_0UBPf`,accordionBodyInner:o,"accordion-body-active":`accordion-body-active_XFSy1`,accordionBodyActive:s,"accordion-icon":`accordion-icon_W1mz5`,accordionIcon:c,"accordion-icon-active":`accordion-icon-active_LI98q`,accordionIconActive:l};export{e as accordion,n as accordionActive,a as accordionBody,s as accordionBodyActive,o as accordionBodyInner,r as accordionHeader,i as accordionHeaderActive,c as accordionIcon,l as accordionIconActive,t as accordionTitle,u as default};
2
2
  //# sourceMappingURL=accordion.primary.module.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.primary.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.primary.module.pcss"],"sourcesContent":[".accordion {\n transition: margin 0.2s;\n margin: -1px;\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 0.625em 0;\n border: 2px solid var(--primary-color);\n border-radius: var(--default-border-radius);\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n /* There is no fixed height any more: the header is this padding plus the title's line. */\n padding: 0.75em 1em;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n background: var(--background);\n border-radius: var(--default-border-radius);\n font-size: var(--default-font-size);\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n background: var(--background-accent);\n border-radius: var(--default-border-radius) var(--default-border-radius) 0 0;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0 0 var(--default-border-radius) var(--default-border-radius);\n border-top: none;\n border-bottom: none;\n\n &-inner {\n padding: 1em;\n }\n\n &-active {\n border-top: none;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: var(--primary-color);\n\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"accordion.primary.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.primary.module.pcss"],"sourcesContent":[".accordion {\n transition: margin 0.2s;\n margin: -1px;\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 0.625em 0;\n border: 2px solid var(--primary-color);\n border-radius: var(--default-border-radius);\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n /* There is no fixed height any more: the header is this padding plus the title's line. */\n padding: 0.75em 1em;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n background: var(--background);\n border-radius: var(--default-border-radius);\n font-size: var(--default-font-size);\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n background: var(--background-accent);\n border-radius: var(--default-border-radius) var(--default-border-radius) 0 0;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0 0 var(--default-border-radius) var(--default-border-radius);\n border-top: none;\n border-bottom: none;\n\n &-inner {\n padding: 1em;\n }\n\n &-active {\n border-top: none;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: var(--primary-color);\n\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .accordion,\n .accordion-header,\n .accordion-body,\n .accordion-icon {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e=function(e){return e.Default=`default`,e.Primary=`primary`,e.Plain=`plain`,e}({});export{e as AccordionStyleType};
1
+ "use client";var e=function(e){return e.Default=`default`,e.Primary=`primary`,e.Plain=`plain`,e}({});export{e as AccordionStyleType};
2
2
  //# sourceMappingURL=accordion.types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.types.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.types.ts"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\n\nexport enum AccordionStyleType {\n Default = 'default',\n Primary = 'primary',\n Plain = 'plain',\n}\n\nexport type AccordionSlots = 'root' | 'header' | 'title' | 'icon' | 'body' | 'bodyInner';\n\nexport interface AccordionProps extends HtmlProps {\n title?: string;\n children?: ReactNode;\n expanded?: boolean | null;\n onHeaderClicked?: (id: string, isExpanded: boolean) => void;\n styleType?: AccordionStyleType;\n startOpen?: boolean;\n hideHeader?: boolean;\n className?: string;\n style?: CSSProperties;\n classNames?: SlotClassNames<AccordionSlots>;\n styles?: SlotStyles<AccordionSlots>;\n}\n"],"mappings":"AAGA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"accordion.types.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.types.ts"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\n\nexport enum AccordionStyleType {\n Default = 'default',\n Primary = 'primary',\n Plain = 'plain',\n}\n\nexport type AccordionSlots = 'root' | 'header' | 'title' | 'icon' | 'body' | 'bodyInner';\n\nexport interface AccordionProps extends HtmlProps {\n title?: string;\n children?: ReactNode;\n expanded?: boolean | null;\n onHeaderClicked?: (id: string, isExpanded: boolean) => void;\n styleType?: AccordionStyleType;\n startOpen?: boolean;\n hideHeader?: boolean;\n className?: string;\n style?: CSSProperties;\n classNames?: SlotClassNames<AccordionSlots>;\n styles?: SlotStyles<AccordionSlots>;\n}\n"],"mappings":"aAGA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import{useLabels as t}from"../configProvider/useLabels.mjs";import n from"./actionButtons.module.mjs";import{ButtonStyleType as r,ButtonType as i}from"../button/button.types.mjs";import a from"../button/button.mjs";import o from"classnames";import{jsx as s,jsxs as c}from"react/jsx-runtime";var l={submit:`Save`,cancel:`Cancel`};function u(u){let{onSubmit:d=()=>null,onClose:f=()=>null,labels:p,submitButtonStyle:m=r.Primary,isSubmitButtonLoading:h=!1,isSubmitButtonDisabled:g=!1,submitButtonIcon:_=void 0,cancelButtonStyle:v=r.Default,isCancelButtonLoading:y=!1,isCancelButtonDisabled:b=!1,cancelButtonIcon:x=void 0,hidePrimaryButton:S=!1,hideSecondaryButton:C=!1,noMargin:w=!1,stackButtons:T=!1,className:E,style:D,classNames:O,styles:k,...A}=e(`ActionButtons`,u),j=t(`ActionButtons`,p,l);return c(`div`,{...A,className:o(n.actionButtons,!w&&n.actionButtonsMargin,T&&n.actionButtonsStacked,E,O?.root),style:{...D,...k?.root},children:[!S&&s(a,{isLoading:h,disabled:g,styleType:m,type:i.Submit,onClick:d,className:O?.submitButton,style:k?.submitButton,icon:_,children:j.submit}),!C&&s(a,{isLoading:y,disabled:b,onClick:f,styleType:v,className:O?.cancelButton,style:k?.cancelButton,icon:x,children:j.cancel})]})}export{u as default};
1
+ "use client";import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import{useLabels as t}from"../configProvider/useLabels.mjs";import n from"./actionButtons.module.mjs";import{ButtonStyleType as r,ButtonType as i}from"../button/button.types.mjs";import a from"../button/button.mjs";import o from"classnames";import{jsx as s,jsxs as c}from"react/jsx-runtime";var l={submit:`Save`,cancel:`Cancel`};function u(u){let{onSubmit:d=()=>null,onClose:f=()=>null,labels:p,submitButtonStyle:m=r.Primary,isSubmitButtonLoading:h=!1,isSubmitButtonDisabled:g=!1,submitButtonIcon:_=void 0,cancelButtonStyle:v=r.Default,isCancelButtonLoading:y=!1,isCancelButtonDisabled:b=!1,cancelButtonIcon:x=void 0,hidePrimaryButton:S=!1,hideSecondaryButton:C=!1,noMargin:w=!1,stackButtons:T=!1,className:E,style:D,classNames:O,styles:k,...A}=e(`ActionButtons`,u),j=t(`ActionButtons`,p,l);return c(`div`,{...A,className:o(n.actionButtons,!w&&n.actionButtonsMargin,T&&n.actionButtonsStacked,E,O?.root),style:{...D,...k?.root},children:[!S&&s(a,{isLoading:h,disabled:g,styleType:m,type:i.Submit,onClick:d,className:O?.submitButton,style:k?.submitButton,icon:_,children:j.submit}),!C&&s(a,{isLoading:y,disabled:b,onClick:f,styleType:v,className:O?.cancelButton,style:k?.cancelButton,icon:x,children:j.cancel})]})}export{u as default};
2
2
  //# sourceMappingURL=actionButtons.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionButtons.mjs","names":[],"sources":["../../../../package/common/actionButtons/actionButtons.tsx"],"sourcesContent":["import cx from 'classnames';\n\nimport styles from './actionButtons.module.pcss';\nimport Button, { ButtonStyleType, ButtonType } from '../button';\nimport { useComponentDefaults, useLabels } from '../configProvider';\nimport { ActionButtonsProps } from './actionButtons.types';\nimport type { ActionButtonsLabels } from './actionButtons.types';\n\nconst DEFAULT_LABELS: Required<ActionButtonsLabels> = {\n submit: 'Save',\n cancel: 'Cancel',\n};\n\nexport default function ActionButtons(props: ActionButtonsProps) {\n const {\n onSubmit = () => null,\n onClose = () => null,\n labels,\n submitButtonStyle = ButtonStyleType.Primary,\n isSubmitButtonLoading = false,\n isSubmitButtonDisabled = false,\n submitButtonIcon = undefined,\n cancelButtonStyle = ButtonStyleType.Default,\n isCancelButtonLoading = false,\n isCancelButtonDisabled = false,\n cancelButtonIcon = undefined,\n hidePrimaryButton = false,\n hideSecondaryButton = false,\n noMargin = false,\n stackButtons = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('ActionButtons', props);\n const text = useLabels('ActionButtons', labels, DEFAULT_LABELS);\n return (\n <div\n {...rest}\n className={cx(\n styles.actionButtons,\n !noMargin && styles.actionButtonsMargin,\n stackButtons && styles.actionButtonsStacked,\n className,\n classNames?.root,\n )}\n style={{ ...style, ...slotStyles?.root }}\n >\n {!hidePrimaryButton && (\n <Button\n isLoading={isSubmitButtonLoading}\n disabled={isSubmitButtonDisabled}\n styleType={submitButtonStyle}\n type={ButtonType.Submit}\n onClick={onSubmit}\n className={classNames?.submitButton}\n style={slotStyles?.submitButton}\n icon={submitButtonIcon}\n >\n {text.submit}\n </Button>\n )}\n {!hideSecondaryButton && (\n <Button\n isLoading={isCancelButtonLoading}\n disabled={isCancelButtonDisabled}\n onClick={onClose}\n styleType={cancelButtonStyle}\n className={classNames?.cancelButton}\n style={slotStyles?.cancelButton}\n icon={cancelButtonIcon}\n >\n {text.cancel}\n </Button>\n )}\n </div>\n );\n}\n"],"mappings":"qXAQA,IAAM,EAAgD,CACpD,OAAQ,OACR,OAAQ,QACV,EAEA,SAAwB,EAAc,EAA2B,CAC/D,GAAM,CACJ,eAAiB,KACjB,cAAgB,KAChB,SACA,oBAAoB,EAAgB,QACpC,wBAAwB,GACxB,yBAAyB,GACzB,mBAAmB,IAAA,GACnB,oBAAoB,EAAgB,QACpC,wBAAwB,GACxB,yBAAyB,GACzB,mBAAmB,IAAA,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,WAAW,GACX,eAAe,GACf,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAAqB,gBAAiB,CAAK,EACzC,EAAO,EAAU,gBAAiB,EAAQ,CAAc,EAC9D,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EACT,EAAO,cACP,CAAC,GAAY,EAAO,oBACpB,GAAgB,EAAO,qBACvB,EACA,GAAY,IACd,EACA,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EATzC,SAAA,CAWG,CAAC,GACA,EAAC,EAAD,CACE,UAAW,EACX,SAAU,EACV,UAAW,EACX,KAAM,EAAW,OACjB,QAAS,EACT,UAAW,GAAY,aACvB,MAAO,GAAY,aACnB,KAAM,EAEL,SAAA,EAAK,MACA,CAAA,EAET,CAAC,GACA,EAAC,EAAD,CACE,UAAW,EACX,SAAU,EACV,QAAS,EACT,UAAW,EACX,UAAW,GAAY,aACvB,MAAO,GAAY,aACnB,KAAM,EAEL,SAAA,EAAK,MACA,CAAA,CAEP,GAET"}
1
+ {"version":3,"file":"actionButtons.mjs","names":[],"sources":["../../../../package/common/actionButtons/actionButtons.tsx"],"sourcesContent":["import cx from 'classnames';\n\nimport styles from './actionButtons.module.pcss';\nimport Button, { ButtonStyleType, ButtonType } from '../button';\nimport { useComponentDefaults, useLabels } from '../configProvider';\nimport { ActionButtonsProps } from './actionButtons.types';\nimport type { ActionButtonsLabels } from './actionButtons.types';\n\nconst DEFAULT_LABELS: Required<ActionButtonsLabels> = {\n submit: 'Save',\n cancel: 'Cancel',\n};\n\nexport default function ActionButtons(props: ActionButtonsProps) {\n const {\n onSubmit = () => null,\n onClose = () => null,\n labels,\n submitButtonStyle = ButtonStyleType.Primary,\n isSubmitButtonLoading = false,\n isSubmitButtonDisabled = false,\n submitButtonIcon = undefined,\n cancelButtonStyle = ButtonStyleType.Default,\n isCancelButtonLoading = false,\n isCancelButtonDisabled = false,\n cancelButtonIcon = undefined,\n hidePrimaryButton = false,\n hideSecondaryButton = false,\n noMargin = false,\n stackButtons = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('ActionButtons', props);\n const text = useLabels('ActionButtons', labels, DEFAULT_LABELS);\n return (\n <div\n {...rest}\n className={cx(\n styles.actionButtons,\n !noMargin && styles.actionButtonsMargin,\n stackButtons && styles.actionButtonsStacked,\n className,\n classNames?.root,\n )}\n style={{ ...style, ...slotStyles?.root }}\n >\n {!hidePrimaryButton && (\n <Button\n isLoading={isSubmitButtonLoading}\n disabled={isSubmitButtonDisabled}\n styleType={submitButtonStyle}\n type={ButtonType.Submit}\n onClick={onSubmit}\n className={classNames?.submitButton}\n style={slotStyles?.submitButton}\n icon={submitButtonIcon}\n >\n {text.submit}\n </Button>\n )}\n {!hideSecondaryButton && (\n <Button\n isLoading={isCancelButtonLoading}\n disabled={isCancelButtonDisabled}\n onClick={onClose}\n styleType={cancelButtonStyle}\n className={classNames?.cancelButton}\n style={slotStyles?.cancelButton}\n icon={cancelButtonIcon}\n >\n {text.cancel}\n </Button>\n )}\n </div>\n );\n}\n"],"mappings":"kYAQA,IAAM,EAAgD,CACpD,OAAQ,OACR,OAAQ,QACV,EAEA,SAAwB,EAAc,EAA2B,CAC/D,GAAM,CACJ,eAAiB,KACjB,cAAgB,KAChB,SACA,oBAAoB,EAAgB,QACpC,wBAAwB,GACxB,yBAAyB,GACzB,mBAAmB,IAAA,GACnB,oBAAoB,EAAgB,QACpC,wBAAwB,GACxB,yBAAyB,GACzB,mBAAmB,IAAA,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,WAAW,GACX,eAAe,GACf,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAAqB,gBAAiB,CAAK,EACzC,EAAO,EAAU,gBAAiB,EAAQ,CAAc,EAC9D,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EACT,EAAO,cACP,CAAC,GAAY,EAAO,oBACpB,GAAgB,EAAO,qBACvB,EACA,GAAY,IACd,EACA,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EATzC,SAAA,CAWG,CAAC,GACA,EAAC,EAAD,CACE,UAAW,EACX,SAAU,EACV,UAAW,EACX,KAAM,EAAW,OACjB,QAAS,EACT,UAAW,GAAY,aACvB,MAAO,GAAY,aACnB,KAAM,EAEL,SAAA,EAAK,MACA,CAAA,EAET,CAAC,GACA,EAAC,EAAD,CACE,UAAW,EACX,SAAU,EACV,QAAS,EACT,UAAW,EACX,UAAW,GAAY,aACvB,MAAO,GAAY,aACnB,KAAM,EAEL,SAAA,EAAK,MACA,CAAA,CAEP,GAET"}
@@ -1,2 +1,2 @@
1
- var e=`actionButtons_7GybR`,t=`actionButtons-margin_-XoFP`,n=`actionButtons-stacked_ZGpUN`,r={actionButtons:e,"actionButtons-margin":`actionButtons-margin_-XoFP`,actionButtonsMargin:t,"actionButtons-stacked":`actionButtons-stacked_ZGpUN`,actionButtonsStacked:n};export{e as actionButtons,t as actionButtonsMargin,n as actionButtonsStacked,r as default};
1
+ "use client";var e=`actionButtons_7GybR`,t=`actionButtons-margin_-XoFP`,n=`actionButtons-stacked_ZGpUN`,r={actionButtons:e,"actionButtons-margin":`actionButtons-margin_-XoFP`,actionButtonsMargin:t,"actionButtons-stacked":`actionButtons-stacked_ZGpUN`,actionButtonsStacked:n};export{e as actionButtons,t as actionButtonsMargin,n as actionButtonsStacked,r as default};
2
2
  //# sourceMappingURL=actionButtons.module.mjs.map
@@ -1,2 +1,2 @@
1
- import{renderIcon as e}from"../utils/renderIcon.mjs";import t from"../interactableDiv/index.mjs";import n from"./actionIcon.module.mjs";import"react";import r from"classnames";import{jsx as i}from"react/jsx-runtime";function a({icon:a,className:o=``,style:s,title:c=``,onClick:l=()=>{},classNames:u,styles:d,...f}){return i(t,{...f,className:r(n.actionIcon,o,u?.root),style:{...s,...d?.root},title:c,onClick:l,children:e(a,{className:u?.icon,style:d?.icon})})}export{a as default};
1
+ "use client";import{renderIcon as e}from"../utils/renderIcon.mjs";import t from"../interactableDiv/index.mjs";import n from"./actionIcon.module.mjs";import"react";import r from"classnames";import{jsx as i}from"react/jsx-runtime";function a({icon:a,className:o=``,style:s,title:c=``,onClick:l=()=>{},classNames:u,styles:d,...f}){return i(t,{...f,className:r(n.actionIcon,o,u?.root),style:{...s,...d?.root},title:c,onClick:l,children:e(a,{className:u?.icon,style:d?.icon})})}export{a as default};
2
2
  //# sourceMappingURL=actionIcon.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionIcon.mjs","names":[],"sources":["../../../../package/common/actionIcon/actionIcon.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'classnames';\nimport type { ReactElement } from 'react';\n\nimport InteractableDiv from '../interactableDiv';\nimport type { ActionIconProps } from './actionIcon.types';\nimport styles from './actionIcon.module.pcss';\nimport { renderIcon } from '../utils/renderIcon';\n\nfunction ActionIcon({\n icon,\n className = '',\n style,\n title = '',\n onClick = () => {},\n classNames,\n styles: slotStyles,\n ...rest\n}: ActionIconProps): ReactElement {\n return (\n <InteractableDiv\n {...rest}\n className={cx(styles.actionIcon, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n title={title}\n onClick={onClick}\n >\n {renderIcon(icon, { className: classNames?.icon, style: slotStyles?.icon })}\n </InteractableDiv>\n );\n}\n\nexport default ActionIcon;\n"],"mappings":"wNASA,SAAS,EAAW,CAClB,OACA,YAAY,GACZ,QACA,QAAQ,GACR,cAAgB,CAAC,EACjB,aACA,OAAQ,EACR,GAAG,GAC6B,CAChC,OACE,EAAC,EAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,WAAY,EAAW,GAAY,IAAI,EAC5D,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EAChC,QACE,UAER,SAAA,EAAW,EAAM,CAAE,UAAW,GAAY,KAAM,MAAO,GAAY,IAAK,CAAC,CAC3D,CAAA,CAErB"}
1
+ {"version":3,"file":"actionIcon.mjs","names":[],"sources":["../../../../package/common/actionIcon/actionIcon.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'classnames';\nimport type { ReactElement } from 'react';\n\nimport InteractableDiv from '../interactableDiv';\nimport type { ActionIconProps } from './actionIcon.types';\nimport styles from './actionIcon.module.pcss';\nimport { renderIcon } from '../utils/renderIcon';\n\nfunction ActionIcon({\n icon,\n className = '',\n style,\n title = '',\n onClick = () => {},\n classNames,\n styles: slotStyles,\n ...rest\n}: ActionIconProps): ReactElement {\n return (\n <InteractableDiv\n {...rest}\n className={cx(styles.actionIcon, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n title={title}\n onClick={onClick}\n >\n {renderIcon(icon, { className: classNames?.icon, style: slotStyles?.icon })}\n </InteractableDiv>\n );\n}\n\nexport default ActionIcon;\n"],"mappings":"qOASA,SAAS,EAAW,CAClB,OACA,YAAY,GACZ,QACA,QAAQ,GACR,cAAgB,CAAC,EACjB,aACA,OAAQ,EACR,GAAG,GAC6B,CAChC,OACE,EAAC,EAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,WAAY,EAAW,GAAY,IAAI,EAC5D,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EAChC,QACE,UAER,SAAA,EAAW,EAAM,CAAE,UAAW,GAAY,KAAM,MAAO,GAAY,IAAK,CAAC,CAC3D,CAAA,CAErB"}
@@ -1,2 +1,2 @@
1
- var e=`actionIcon_ganSq`,t={actionIcon:e};export{e as actionIcon,t as default};
1
+ "use client";var e=`actionIcon_ganSq`,t={actionIcon:e};export{e as actionIcon,t as default};
2
2
  //# sourceMappingURL=actionIcon.module.mjs.map
@@ -1,2 +1,2 @@
1
- import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import{useLabels as t}from"../configProvider/useLabels.mjs";import{renderIcon as n}from"../utils/renderIcon.mjs";import r from"../actionIcon/actionIcon.mjs";import{AlertStyleType as i}from"./alert.types.mjs";import a from"./alert.module.mjs";import o from"classnames";import{faBell as s,faCircleCheck as c,faCircleInfo as l,faCircleXmark as u,faTriangleExclamation as d,faXmark as f}from"@fortawesome/free-solid-svg-icons";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h={[i.Default]:s,[i.Info]:l,[i.Success]:c,[i.Warn]:d,[i.Error]:u},g={[i.Default]:a.alertStyleDefault,[i.Info]:a.alertStyleInfo,[i.Success]:a.alertStyleSuccess,[i.Warn]:a.alertStyleWarn,[i.Error]:a.alertStyleError},_={dismiss:`Dismiss`};function v(s){let{title:c,children:l=null,styleType:u=i.Default,icon:d,hideIcon:v=!1,onClose:y,className:b,style:x,classNames:S,styles:C,labels:w,...T}=e(`Alert`,s),E=t(`Alert`,w,_);return m(`div`,{...T,role:`alert`,className:o(a.alert,g[u],S?.root,b),style:{...x,...C?.root},children:[!v&&n(d??h[u],{className:o(a.alertIcon,S?.icon),style:C?.icon}),m(`div`,{className:o(a.alertContent,S?.content),style:C?.content,children:[c&&p(`div`,{className:o(a.alertTitle,S?.title),style:C?.title,children:c}),l&&p(`div`,{className:o(a.alertDescription,S?.description),style:C?.description,children:l})]}),y&&p(r,{icon:f,onClick:y,className:o(a.alertCloseButton,S?.closeButton),style:C?.closeButton,"aria-label":E.dismiss})]})}export{v as default};
1
+ "use client";import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import{useLabels as t}from"../configProvider/useLabels.mjs";import{renderIcon as n}from"../utils/renderIcon.mjs";import r from"../actionIcon/actionIcon.mjs";import{AlertStyleType as i}from"./alert.types.mjs";import a from"./alert.module.mjs";import o from"classnames";import{faBell as s,faCircleCheck as c,faCircleInfo as l,faCircleXmark as u,faTriangleExclamation as d,faXmark as f}from"@fortawesome/free-solid-svg-icons";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h={[i.Default]:s,[i.Info]:l,[i.Success]:c,[i.Warn]:d,[i.Error]:u},g={[i.Default]:a.alertStyleDefault,[i.Info]:a.alertStyleInfo,[i.Success]:a.alertStyleSuccess,[i.Warn]:a.alertStyleWarn,[i.Error]:a.alertStyleError},_={dismiss:`Dismiss`};function v(s){let{title:c,children:l=null,styleType:u=i.Default,icon:d,hideIcon:v=!1,onClose:y,className:b,style:x,classNames:S,styles:C,labels:w,...T}=e(`Alert`,s),E=t(`Alert`,w,_);return m(`div`,{...T,role:`alert`,className:o(a.alert,g[u],S?.root,b),style:{...x,...C?.root},children:[!v&&n(d??h[u],{className:o(a.alertIcon,S?.icon),style:C?.icon}),m(`div`,{className:o(a.alertContent,S?.content),style:C?.content,children:[c&&p(`div`,{className:o(a.alertTitle,S?.title),style:C?.title,children:c}),l&&p(`div`,{className:o(a.alertDescription,S?.description),style:C?.description,children:l})]}),y&&p(r,{icon:f,onClick:y,className:o(a.alertCloseButton,S?.closeButton),style:C?.closeButton,"aria-label":E.dismiss})]})}export{v as default};
2
2
  //# sourceMappingURL=alert.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.mjs","names":[],"sources":["../../../../package/common/alert/alert.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport cx from 'classnames';\nimport {\n faCircleInfo,\n faCircleCheck,\n faCircleXmark,\n faTriangleExclamation,\n faBell,\n faXmark,\n} from '@fortawesome/free-solid-svg-icons';\n\nimport { AlertStyleType } from './alert.types';\nimport type { AlertLabels, AlertProps } from './alert.types';\nimport styles from './alert.module.pcss';\nimport ActionIcon from '../actionIcon';\nimport { useComponentDefaults, useLabels } from '../configProvider';\nimport { renderIcon } from '../utils/renderIcon';\n\nconst ICON_BY_STYLE: Record<AlertStyleType, typeof faBell> = {\n [AlertStyleType.Default]: faBell,\n [AlertStyleType.Info]: faCircleInfo,\n [AlertStyleType.Success]: faCircleCheck,\n [AlertStyleType.Warn]: faTriangleExclamation,\n [AlertStyleType.Error]: faCircleXmark,\n};\n\nconst CLASS_BY_STYLE: Record<AlertStyleType, string> = {\n [AlertStyleType.Default]: styles.alertStyleDefault,\n [AlertStyleType.Info]: styles.alertStyleInfo,\n [AlertStyleType.Success]: styles.alertStyleSuccess,\n [AlertStyleType.Warn]: styles.alertStyleWarn,\n [AlertStyleType.Error]: styles.alertStyleError,\n};\n\nconst DEFAULT_LABELS: Required<AlertLabels> = {\n dismiss: 'Dismiss',\n};\n\nfunction Alert(props: AlertProps): ReactElement {\n const {\n title,\n children = null,\n styleType = AlertStyleType.Default,\n icon,\n hideIcon = false,\n onClose,\n className,\n style,\n classNames,\n styles: slotStyles,\n labels,\n ...rest\n } = useComponentDefaults('Alert', props);\n const text = useLabels('Alert', labels, DEFAULT_LABELS);\n\n return (\n <div\n {...rest}\n role='alert'\n className={cx(styles.alert, CLASS_BY_STYLE[styleType], classNames?.root, className)}\n style={{ ...style, ...slotStyles?.root }}\n >\n {!hideIcon &&\n renderIcon(icon ?? ICON_BY_STYLE[styleType], {\n className: cx(styles.alertIcon, classNames?.icon),\n style: slotStyles?.icon,\n })}\n\n <div className={cx(styles.alertContent, classNames?.content)} style={slotStyles?.content}>\n {title && (\n <div className={cx(styles.alertTitle, classNames?.title)} style={slotStyles?.title}>\n {title}\n </div>\n )}\n {children && (\n <div className={cx(styles.alertDescription, classNames?.description)} style={slotStyles?.description}>\n {children}\n </div>\n )}\n </div>\n\n {onClose && (\n <ActionIcon\n icon={faXmark}\n onClick={onClose}\n className={cx(styles.alertCloseButton, classNames?.closeButton)}\n style={slotStyles?.closeButton}\n aria-label={text.dismiss}\n />\n )}\n </div>\n );\n}\n\nexport default Alert;\n"],"mappings":"2iBAkBA,IAAM,EAAuD,EAC1D,EAAe,SAAU,GACzB,EAAe,MAAO,GACtB,EAAe,SAAU,GACzB,EAAe,MAAO,GACtB,EAAe,OAAQ,CAC1B,EAEM,EAAiD,EACpD,EAAe,SAAU,EAAO,mBAChC,EAAe,MAAO,EAAO,gBAC7B,EAAe,SAAU,EAAO,mBAChC,EAAe,MAAO,EAAO,gBAC7B,EAAe,OAAQ,EAAO,eACjC,EAEM,EAAwC,CAC5C,QAAS,SACX,EAEA,SAAS,EAAM,EAAiC,CAC9C,GAAM,CACJ,QACA,WAAW,KACX,YAAY,EAAe,QAC3B,OACA,WAAW,GACX,UACA,YACA,QACA,aACA,OAAQ,EACR,SACA,GAAG,GACD,EAAqB,QAAS,CAAK,EACjC,EAAO,EAAU,QAAS,EAAQ,CAAc,EAEtD,OACE,EAAC,MAAD,CACE,GAAI,EACJ,KAAK,QACL,UAAW,EAAG,EAAO,MAAO,EAAe,GAAY,GAAY,KAAM,CAAS,EAClF,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EAJzC,SAAA,CAMG,CAAC,GACA,EAAW,GAAQ,EAAc,GAAY,CAC3C,UAAW,EAAG,EAAO,UAAW,GAAY,IAAI,EAChD,MAAO,GAAY,IACrB,CAAC,EAEH,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,aAAc,GAAY,OAAO,EAAG,MAAO,GAAY,QAAjF,SAAA,CACG,GACC,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,WAAY,GAAY,KAAK,EAAG,MAAO,GAAY,MAC1E,SAAA,CACE,CAAA,EAEN,GACC,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,iBAAkB,GAAY,WAAW,EAAG,MAAO,GAAY,YACtF,UACE,CAAA,CAEJ,IAEJ,GACC,EAAC,EAAD,CACE,KAAM,EACN,QAAS,EACT,UAAW,EAAG,EAAO,iBAAkB,GAAY,WAAW,EAC9D,MAAO,GAAY,YACnB,aAAY,EAAK,OAClB,CAAA,CAEA,GAET"}
1
+ {"version":3,"file":"alert.mjs","names":[],"sources":["../../../../package/common/alert/alert.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport cx from 'classnames';\nimport {\n faCircleInfo,\n faCircleCheck,\n faCircleXmark,\n faTriangleExclamation,\n faBell,\n faXmark,\n} from '@fortawesome/free-solid-svg-icons';\n\nimport { AlertStyleType } from './alert.types';\nimport type { AlertLabels, AlertProps } from './alert.types';\nimport styles from './alert.module.pcss';\nimport ActionIcon from '../actionIcon';\nimport { useComponentDefaults, useLabels } from '../configProvider';\nimport { renderIcon } from '../utils/renderIcon';\n\nconst ICON_BY_STYLE: Record<AlertStyleType, typeof faBell> = {\n [AlertStyleType.Default]: faBell,\n [AlertStyleType.Info]: faCircleInfo,\n [AlertStyleType.Success]: faCircleCheck,\n [AlertStyleType.Warn]: faTriangleExclamation,\n [AlertStyleType.Error]: faCircleXmark,\n};\n\nconst CLASS_BY_STYLE: Record<AlertStyleType, string> = {\n [AlertStyleType.Default]: styles.alertStyleDefault,\n [AlertStyleType.Info]: styles.alertStyleInfo,\n [AlertStyleType.Success]: styles.alertStyleSuccess,\n [AlertStyleType.Warn]: styles.alertStyleWarn,\n [AlertStyleType.Error]: styles.alertStyleError,\n};\n\nconst DEFAULT_LABELS: Required<AlertLabels> = {\n dismiss: 'Dismiss',\n};\n\nfunction Alert(props: AlertProps): ReactElement {\n const {\n title,\n children = null,\n styleType = AlertStyleType.Default,\n icon,\n hideIcon = false,\n onClose,\n className,\n style,\n classNames,\n styles: slotStyles,\n labels,\n ...rest\n } = useComponentDefaults('Alert', props);\n const text = useLabels('Alert', labels, DEFAULT_LABELS);\n\n return (\n <div\n {...rest}\n role='alert'\n className={cx(styles.alert, CLASS_BY_STYLE[styleType], classNames?.root, className)}\n style={{ ...style, ...slotStyles?.root }}\n >\n {!hideIcon &&\n renderIcon(icon ?? ICON_BY_STYLE[styleType], {\n className: cx(styles.alertIcon, classNames?.icon),\n style: slotStyles?.icon,\n })}\n\n <div className={cx(styles.alertContent, classNames?.content)} style={slotStyles?.content}>\n {title && (\n <div className={cx(styles.alertTitle, classNames?.title)} style={slotStyles?.title}>\n {title}\n </div>\n )}\n {children && (\n <div className={cx(styles.alertDescription, classNames?.description)} style={slotStyles?.description}>\n {children}\n </div>\n )}\n </div>\n\n {onClose && (\n <ActionIcon\n icon={faXmark}\n onClick={onClose}\n className={cx(styles.alertCloseButton, classNames?.closeButton)}\n style={slotStyles?.closeButton}\n aria-label={text.dismiss}\n />\n )}\n </div>\n );\n}\n\nexport default Alert;\n"],"mappings":"wjBAkBA,IAAM,EAAuD,EAC1D,EAAe,SAAU,GACzB,EAAe,MAAO,GACtB,EAAe,SAAU,GACzB,EAAe,MAAO,GACtB,EAAe,OAAQ,CAC1B,EAEM,EAAiD,EACpD,EAAe,SAAU,EAAO,mBAChC,EAAe,MAAO,EAAO,gBAC7B,EAAe,SAAU,EAAO,mBAChC,EAAe,MAAO,EAAO,gBAC7B,EAAe,OAAQ,EAAO,eACjC,EAEM,EAAwC,CAC5C,QAAS,SACX,EAEA,SAAS,EAAM,EAAiC,CAC9C,GAAM,CACJ,QACA,WAAW,KACX,YAAY,EAAe,QAC3B,OACA,WAAW,GACX,UACA,YACA,QACA,aACA,OAAQ,EACR,SACA,GAAG,GACD,EAAqB,QAAS,CAAK,EACjC,EAAO,EAAU,QAAS,EAAQ,CAAc,EAEtD,OACE,EAAC,MAAD,CACE,GAAI,EACJ,KAAK,QACL,UAAW,EAAG,EAAO,MAAO,EAAe,GAAY,GAAY,KAAM,CAAS,EAClF,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EAJzC,SAAA,CAMG,CAAC,GACA,EAAW,GAAQ,EAAc,GAAY,CAC3C,UAAW,EAAG,EAAO,UAAW,GAAY,IAAI,EAChD,MAAO,GAAY,IACrB,CAAC,EAEH,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,aAAc,GAAY,OAAO,EAAG,MAAO,GAAY,QAAjF,SAAA,CACG,GACC,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,WAAY,GAAY,KAAK,EAAG,MAAO,GAAY,MAC1E,SAAA,CACE,CAAA,EAEN,GACC,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,iBAAkB,GAAY,WAAW,EAAG,MAAO,GAAY,YACtF,UACE,CAAA,CAEJ,IAEJ,GACC,EAAC,EAAD,CACE,KAAM,EACN,QAAS,EACT,UAAW,EAAG,EAAO,iBAAkB,GAAY,WAAW,EAC9D,MAAO,GAAY,YACnB,aAAY,EAAK,OAClB,CAAA,CAEA,GAET"}
@@ -1,2 +1,2 @@
1
- var e=`alert_nX-Fv`,t=`alert-icon_mzjuj`,n=`alert-content_-94Ey`,r=`alert-title_TqdRL`,i=`alert-description_N5LkS`,a=`alert-closeButton_RQvYS`,o=`alert-style-default_KFyzb`,s=`alert-style-info_P-XG-`,c=`alert-style-success_zomWm`,l=`alert-style-warn_jRYe5`,u=`alert-style-error_Nk4As`,d={alert:e,"alert-icon":`alert-icon_mzjuj`,alertIcon:t,"alert-content":`alert-content_-94Ey`,alertContent:n,"alert-title":`alert-title_TqdRL`,alertTitle:r,"alert-description":`alert-description_N5LkS`,alertDescription:i,"alert-closeButton":`alert-closeButton_RQvYS`,alertCloseButton:a,"alert-style-default":`alert-style-default_KFyzb`,alertStyleDefault:o,"alert-style-info":`alert-style-info_P-XG-`,alertStyleInfo:s,"alert-style-success":`alert-style-success_zomWm`,alertStyleSuccess:c,"alert-style-warn":`alert-style-warn_jRYe5`,alertStyleWarn:l,"alert-style-error":`alert-style-error_Nk4As`,alertStyleError:u};export{e as alert,a as alertCloseButton,n as alertContent,i as alertDescription,t as alertIcon,o as alertStyleDefault,u as alertStyleError,s as alertStyleInfo,c as alertStyleSuccess,l as alertStyleWarn,r as alertTitle,d as default};
1
+ "use client";var e=`alert_nX-Fv`,t=`alert-icon_mzjuj`,n=`alert-content_-94Ey`,r=`alert-title_TqdRL`,i=`alert-description_N5LkS`,a=`alert-closeButton_RQvYS`,o=`alert-style-default_KFyzb`,s=`alert-style-info_P-XG-`,c=`alert-style-success_zomWm`,l=`alert-style-warn_jRYe5`,u=`alert-style-error_Nk4As`,d={alert:e,"alert-icon":`alert-icon_mzjuj`,alertIcon:t,"alert-content":`alert-content_-94Ey`,alertContent:n,"alert-title":`alert-title_TqdRL`,alertTitle:r,"alert-description":`alert-description_N5LkS`,alertDescription:i,"alert-closeButton":`alert-closeButton_RQvYS`,alertCloseButton:a,"alert-style-default":`alert-style-default_KFyzb`,alertStyleDefault:o,"alert-style-info":`alert-style-info_P-XG-`,alertStyleInfo:s,"alert-style-success":`alert-style-success_zomWm`,alertStyleSuccess:c,"alert-style-warn":`alert-style-warn_jRYe5`,alertStyleWarn:l,"alert-style-error":`alert-style-error_Nk4As`,alertStyleError:u};export{e as alert,a as alertCloseButton,n as alertContent,i as alertDescription,t as alertIcon,o as alertStyleDefault,u as alertStyleError,s as alertStyleInfo,c as alertStyleSuccess,l as alertStyleWarn,r as alertTitle,d as default};
2
2
  //# sourceMappingURL=alert.module.mjs.map
@@ -1,2 +1,2 @@
1
- var e=function(e){return e.Default=`default`,e.Info=`info`,e.Success=`success`,e.Warn=`warn`,e.Error=`error`,e}({});export{e as AlertStyleType};
1
+ "use client";var e=function(e){return e.Default=`default`,e.Info=`info`,e.Success=`success`,e.Warn=`warn`,e.Error=`error`,e}({});export{e as AlertStyleType};
2
2
  //# sourceMappingURL=alert.types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.types.mjs","names":[],"sources":["../../../../package/common/alert/alert.types.ts"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport type { IconContent } from '../types/icon.types';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\n\nexport enum AlertStyleType {\n Default = 'default',\n Info = 'info',\n Success = 'success',\n Warn = 'warn',\n Error = 'error',\n}\n\nexport type AlertSlots = 'root' | 'icon' | 'content' | 'title' | 'description' | 'closeButton';\n\n/** Text Alert renders of its own, for translating it. */\nexport interface AlertLabels {\n /** Close button, read out by screen readers. */\n dismiss?: string;\n}\n\nexport interface AlertProps extends Omit<HtmlProps, 'title'> {\n title?: ReactNode;\n children?: ReactNode;\n styleType?: AlertStyleType;\n icon?: IconContent;\n hideIcon?: boolean;\n onClose?: () => void;\n className?: string;\n style?: CSSProperties;\n classNames?: SlotClassNames<AlertSlots>;\n styles?: SlotStyles<AlertSlots>;\n /** Overrides the text Alert renders of its own. Merged per key. */\n labels?: AlertLabels;\n}\n"],"mappings":"AAIA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,KAAA,OACA,EAAA,QAAA,UACA,EAAA,KAAA,OACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"alert.types.mjs","names":[],"sources":["../../../../package/common/alert/alert.types.ts"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport type { IconContent } from '../types/icon.types';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\n\nexport enum AlertStyleType {\n Default = 'default',\n Info = 'info',\n Success = 'success',\n Warn = 'warn',\n Error = 'error',\n}\n\nexport type AlertSlots = 'root' | 'icon' | 'content' | 'title' | 'description' | 'closeButton';\n\n/** Text Alert renders of its own, for translating it. */\nexport interface AlertLabels {\n /** Close button, read out by screen readers. */\n dismiss?: string;\n}\n\nexport interface AlertProps extends Omit<HtmlProps, 'title'> {\n title?: ReactNode;\n children?: ReactNode;\n styleType?: AlertStyleType;\n icon?: IconContent;\n hideIcon?: boolean;\n onClose?: () => void;\n className?: string;\n style?: CSSProperties;\n classNames?: SlotClassNames<AlertSlots>;\n styles?: SlotStyles<AlertSlots>;\n /** Overrides the text Alert renders of its own. Merged per key. */\n labels?: AlertLabels;\n}\n"],"mappings":"aAIA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,KAAA,OACA,EAAA,QAAA,UACA,EAAA,KAAA,OACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import e from"./animatedIcon.module.mjs";import{useState as t}from"react";import n from"classnames";import{FontAwesomeIcon as r}from"@fortawesome/react-fontawesome";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return`${e.prefix}:${e.iconName}`}var s=360;function c({icon:c,duration:l=200,spin:u=!1,className:d,style:f,onClick:p,onMouseEnter:m,onMouseLeave:h,classNames:g,styles:_,...v}){let[y,b]=t([c,c]),[x,S]=t(0),[C,w]=t(0);if(o(c)!==o(y[x])){let e=+(x===0),t=[...y];t[e]=c,b(t),S(e),u&&w(e=>e+1)}return a(`span`,{...v,className:n(e.animatedIcon,{[e.animatedIconSpin]:u},g?.root,d),style:{...f,..._?.root,"--animated-icon-duration":`${l}ms`,"--animated-icon-spin-rotation":`${C*s}deg`},onClick:p,onMouseEnter:m,onMouseLeave:h,children:[i(r,{icon:y[0],className:n(e.animatedIconLayer,{[e.animatedIconLayerFront]:x===0},g?.icon),style:_?.icon}),i(r,{icon:y[1],className:n(e.animatedIconLayer,{[e.animatedIconLayerFront]:x===1},g?.icon),style:_?.icon})]})}export{c as default};
1
+ "use client";import e from"./animatedIcon.module.mjs";import{useState as t}from"react";import n from"classnames";import{FontAwesomeIcon as r}from"@fortawesome/react-fontawesome";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return`${e.prefix}:${e.iconName}`}var s=360;function c({icon:c,duration:l=200,spin:u=!1,className:d,style:f,onClick:p,onMouseEnter:m,onMouseLeave:h,classNames:g,styles:_,...v}){let[y,b]=t([c,c]),[x,S]=t(0),[C,w]=t(0);if(o(c)!==o(y[x])){let e=+(x===0),t=[...y];t[e]=c,b(t),S(e),u&&w(e=>e+1)}return a(`span`,{...v,className:n(e.animatedIcon,{[e.animatedIconSpin]:u},g?.root,d),style:{...f,..._?.root,"--animated-icon-duration":`${l}ms`,"--animated-icon-spin-rotation":`${C*s}deg`},onClick:p,onMouseEnter:m,onMouseLeave:h,children:[i(r,{icon:y[0],className:n(e.animatedIconLayer,{[e.animatedIconLayerFront]:x===0},g?.icon),style:_?.icon}),i(r,{icon:y[1],className:n(e.animatedIconLayer,{[e.animatedIconLayerFront]:x===1},g?.icon),style:_?.icon})]})}export{c as default};
2
2
  //# sourceMappingURL=animatedIcon.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animatedIcon.mjs","names":[],"sources":["../../../../package/common/animatedIcon/animatedIcon.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { CSSProperties } from 'react';\nimport cx from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport type { AnimatedIconProps } from './animatedIcon.types';\n\nimport styles from './animatedIcon.module.pcss';\n\nfunction iconKey(icon: IconDefinition) {\n return `${icon.prefix}:${icon.iconName}`;\n}\n\n// A full turn per step, not Fab's original 225° — 225° only looked right there because the\n// resting \"open\" icon (a \"+\") happens to look identical rotated 45° (it's 4-fold symmetric).\n// For arbitrary icon pairs a shared rotation has to land on a multiple of 360° every time, or\n// the new icon ends up sitting sideways.\nconst SPIN_DEGREES_PER_STEP = 360;\n\nfunction AnimatedIcon({\n icon,\n duration = 200,\n spin = false,\n className,\n style,\n onClick,\n onMouseEnter,\n onMouseLeave,\n classNames,\n styles: slotStyles,\n ...rest\n}: AnimatedIconProps) {\n // Two permanently-mounted layers, ping-ponging which one is the visible (\"front\") icon,\n // instead of conditionally mounting/unmounting an \"outgoing\" layer. That's what lets this use\n // a real CSS `transition` (which retargets smoothly from wherever it currently is) rather than\n // a keyframe `animation` (which, once started on a freshly-mounted element, plays to\n // completion regardless of what happens mid-flight): tap the toggle again before a transition\n // finishes and it reverses smoothly from its current position — the same thing that already\n // let Fab's own hand-rolled icon rotation cancel cleanly.\n const [slots, setSlots] = useState<[IconDefinition, IconDefinition]>([icon, icon]);\n const [activeIndex, setActiveIndex] = useState<0 | 1>(0);\n const [spinStep, setSpinStep] = useState(0);\n\n // Adjusting state during render (not in an effect) on a prop change: the documented React\n // pattern for reacting to a prop that changed since the last render, without an extra tick.\n if (iconKey(icon) !== iconKey(slots[activeIndex])) {\n const nextIndex = activeIndex === 0 ? 1 : 0;\n const nextSlots: [IconDefinition, IconDefinition] = [...slots];\n nextSlots[nextIndex] = icon;\n setSlots(nextSlots);\n setActiveIndex(nextIndex);\n if (spin) setSpinStep((step) => step + 1);\n }\n\n return (\n <span\n {...rest}\n className={cx(styles.animatedIcon, { [styles.animatedIconSpin]: spin }, classNames?.root, className)}\n style={\n {\n ...style,\n ...slotStyles?.root,\n '--animated-icon-duration': `${duration}ms`,\n '--animated-icon-spin-rotation': `${spinStep * SPIN_DEGREES_PER_STEP}deg`,\n } as CSSProperties & Record<'--animated-icon-duration' | '--animated-icon-spin-rotation', string>\n }\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <FontAwesomeIcon\n icon={slots[0]}\n className={cx(\n styles.animatedIconLayer,\n { [styles.animatedIconLayerFront]: activeIndex === 0 },\n classNames?.icon,\n )}\n style={slotStyles?.icon as CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n <FontAwesomeIcon\n icon={slots[1]}\n className={cx(\n styles.animatedIconLayer,\n { [styles.animatedIconLayerFront]: activeIndex === 1 },\n classNames?.icon,\n )}\n style={slotStyles?.icon as CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n </span>\n );\n}\n\nexport default AnimatedIcon;\n"],"mappings":"uNASA,SAAS,EAAQ,EAAsB,CACrC,MAAO,GAAG,EAAK,OAAO,GAAG,EAAK,UAChC,CAMA,IAAM,EAAwB,IAE9B,SAAS,EAAa,CACpB,OACA,WAAW,IACX,OAAO,GACP,YACA,QACA,UACA,eACA,eACA,aACA,OAAQ,EACR,GAAG,GACiB,CAQpB,GAAM,CAAC,EAAO,GAAY,EAA2C,CAAC,EAAM,CAAI,CAAC,EAC3E,CAAC,EAAa,GAAkB,EAAgB,CAAC,EACjD,CAAC,EAAU,GAAe,EAAS,CAAC,EAI1C,GAAI,EAAQ,CAAI,IAAM,EAAQ,EAAM,EAAY,EAAG,CACjD,IAAM,EAAY,MAAgB,GAC5B,EAA8C,CAAC,GAAG,CAAK,EAC7D,EAAU,GAAa,EACvB,EAAS,CAAS,EAClB,EAAe,CAAS,EACpB,GAAM,EAAa,GAAS,EAAO,CAAC,CAC1C,CAEA,OACE,EAAC,OAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,aAAc,EAAG,EAAO,kBAAmB,CAAK,EAAG,GAAY,KAAM,CAAS,EACnG,MACE,CACE,GAAG,EACH,GAAG,GAAY,KACf,2BAA4B,GAAG,EAAS,IACxC,gCAAiC,GAAG,EAAW,EAAsB,IACvE,EAEO,UACK,eACA,eAbhB,SAAA,CAeE,EAAC,EAAD,CACE,KAAM,EAAM,GACZ,UAAW,EACT,EAAO,kBACP,EAAG,EAAO,wBAAyB,IAAgB,CAAE,EACrD,GAAY,IACd,EACA,MAAO,GAAY,IACpB,CAAA,EACD,EAAC,EAAD,CACE,KAAM,EAAM,GACZ,UAAW,EACT,EAAO,kBACP,EAAG,EAAO,wBAAyB,IAAgB,CAAE,EACrD,GAAY,IACd,EACA,MAAO,GAAY,IACpB,CAAA,CACG,GAEV"}
1
+ {"version":3,"file":"animatedIcon.mjs","names":[],"sources":["../../../../package/common/animatedIcon/animatedIcon.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { CSSProperties } from 'react';\nimport cx from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport type { AnimatedIconProps } from './animatedIcon.types';\n\nimport styles from './animatedIcon.module.pcss';\n\nfunction iconKey(icon: IconDefinition) {\n return `${icon.prefix}:${icon.iconName}`;\n}\n\n// A full turn per step, not Fab's original 225° — 225° only looked right there because the\n// resting \"open\" icon (a \"+\") happens to look identical rotated 45° (it's 4-fold symmetric).\n// For arbitrary icon pairs a shared rotation has to land on a multiple of 360° every time, or\n// the new icon ends up sitting sideways.\nconst SPIN_DEGREES_PER_STEP = 360;\n\nfunction AnimatedIcon({\n icon,\n duration = 200,\n spin = false,\n className,\n style,\n onClick,\n onMouseEnter,\n onMouseLeave,\n classNames,\n styles: slotStyles,\n ...rest\n}: AnimatedIconProps) {\n // Two permanently-mounted layers, ping-ponging which one is the visible (\"front\") icon,\n // instead of conditionally mounting/unmounting an \"outgoing\" layer. That's what lets this use\n // a real CSS `transition` (which retargets smoothly from wherever it currently is) rather than\n // a keyframe `animation` (which, once started on a freshly-mounted element, plays to\n // completion regardless of what happens mid-flight): tap the toggle again before a transition\n // finishes and it reverses smoothly from its current position — the same thing that already\n // let Fab's own hand-rolled icon rotation cancel cleanly.\n const [slots, setSlots] = useState<[IconDefinition, IconDefinition]>([icon, icon]);\n const [activeIndex, setActiveIndex] = useState<0 | 1>(0);\n const [spinStep, setSpinStep] = useState(0);\n\n // Adjusting state during render (not in an effect) on a prop change: the documented React\n // pattern for reacting to a prop that changed since the last render, without an extra tick.\n if (iconKey(icon) !== iconKey(slots[activeIndex])) {\n const nextIndex = activeIndex === 0 ? 1 : 0;\n const nextSlots: [IconDefinition, IconDefinition] = [...slots];\n nextSlots[nextIndex] = icon;\n setSlots(nextSlots);\n setActiveIndex(nextIndex);\n if (spin) setSpinStep((step) => step + 1);\n }\n\n return (\n <span\n {...rest}\n className={cx(styles.animatedIcon, { [styles.animatedIconSpin]: spin }, classNames?.root, className)}\n style={\n {\n ...style,\n ...slotStyles?.root,\n '--animated-icon-duration': `${duration}ms`,\n '--animated-icon-spin-rotation': `${spinStep * SPIN_DEGREES_PER_STEP}deg`,\n } as CSSProperties & Record<'--animated-icon-duration' | '--animated-icon-spin-rotation', string>\n }\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <FontAwesomeIcon\n icon={slots[0]}\n className={cx(\n styles.animatedIconLayer,\n { [styles.animatedIconLayerFront]: activeIndex === 0 },\n classNames?.icon,\n )}\n style={slotStyles?.icon as CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n <FontAwesomeIcon\n icon={slots[1]}\n className={cx(\n styles.animatedIconLayer,\n { [styles.animatedIconLayerFront]: activeIndex === 1 },\n classNames?.icon,\n )}\n style={slotStyles?.icon as CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n </span>\n );\n}\n\nexport default AnimatedIcon;\n"],"mappings":"oOASA,SAAS,EAAQ,EAAsB,CACrC,MAAO,GAAG,EAAK,OAAO,GAAG,EAAK,UAChC,CAMA,IAAM,EAAwB,IAE9B,SAAS,EAAa,CACpB,OACA,WAAW,IACX,OAAO,GACP,YACA,QACA,UACA,eACA,eACA,aACA,OAAQ,EACR,GAAG,GACiB,CAQpB,GAAM,CAAC,EAAO,GAAY,EAA2C,CAAC,EAAM,CAAI,CAAC,EAC3E,CAAC,EAAa,GAAkB,EAAgB,CAAC,EACjD,CAAC,EAAU,GAAe,EAAS,CAAC,EAI1C,GAAI,EAAQ,CAAI,IAAM,EAAQ,EAAM,EAAY,EAAG,CACjD,IAAM,EAAY,MAAgB,GAC5B,EAA8C,CAAC,GAAG,CAAK,EAC7D,EAAU,GAAa,EACvB,EAAS,CAAS,EAClB,EAAe,CAAS,EACpB,GAAM,EAAa,GAAS,EAAO,CAAC,CAC1C,CAEA,OACE,EAAC,OAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,aAAc,EAAG,EAAO,kBAAmB,CAAK,EAAG,GAAY,KAAM,CAAS,EACnG,MACE,CACE,GAAG,EACH,GAAG,GAAY,KACf,2BAA4B,GAAG,EAAS,IACxC,gCAAiC,GAAG,EAAW,EAAsB,IACvE,EAEO,UACK,eACA,eAbhB,SAAA,CAeE,EAAC,EAAD,CACE,KAAM,EAAM,GACZ,UAAW,EACT,EAAO,kBACP,EAAG,EAAO,wBAAyB,IAAgB,CAAE,EACrD,GAAY,IACd,EACA,MAAO,GAAY,IACpB,CAAA,EACD,EAAC,EAAD,CACE,KAAM,EAAM,GACZ,UAAW,EACT,EAAO,kBACP,EAAG,EAAO,wBAAyB,IAAgB,CAAE,EACrD,GAAY,IACd,EACA,MAAO,GAAY,IACpB,CAAA,CACG,GAEV"}
@@ -1,2 +1,2 @@
1
- var e=`animatedIcon_vyzvJ`,t=`animatedIcon-spin_B9YzP`,n=`animatedIcon-layer_-9A1a`,r=`animatedIcon-layer-front_q9UVU`,i={animatedIcon:e,"animatedIcon-spin":`animatedIcon-spin_B9YzP`,animatedIconSpin:t,"animatedIcon-layer":`animatedIcon-layer_-9A1a`,animatedIconLayer:n,"animatedIcon-layer-front":`animatedIcon-layer-front_q9UVU`,animatedIconLayerFront:r};export{e as animatedIcon,n as animatedIconLayer,r as animatedIconLayerFront,t as animatedIconSpin,i as default};
1
+ "use client";var e=`animatedIcon_vyzvJ`,t=`animatedIcon-spin_B9YzP`,n=`animatedIcon-layer_-9A1a`,r=`animatedIcon-layer-front_q9UVU`,i={animatedIcon:e,"animatedIcon-spin":`animatedIcon-spin_B9YzP`,animatedIconSpin:t,"animatedIcon-layer":`animatedIcon-layer_-9A1a`,animatedIconLayer:n,"animatedIcon-layer-front":`animatedIcon-layer-front_q9UVU`,animatedIconLayerFront:r};export{e as animatedIcon,n as animatedIconLayer,r as animatedIconLayerFront,t as animatedIconSpin,i as default};
2
2
  //# sourceMappingURL=animatedIcon.module.mjs.map
@@ -1,2 +1,2 @@
1
- import e from"./animatedLogo.module.mjs";import{useEffect as t,useRef as n,useState as r}from"react";import i from"classnames";import{jsx as a}from"react/jsx-runtime";var o=`M 1.292 0.278 C -0.41 4.855 3.185 6.433 0.344 8.916 Q 3.923 10.712 5.361 14.001 Q 6.128 14.398 6.876 14.003 Q 8.439 10.632 11.86 8.912 C 8.893 6.387 12.578 5.159 10.86 0.255 Q 8.655 1.166 7.391 3.377 Q 6.092 2.93 4.843 3.38 Q 3.246 0.883 1.292 0.278 Z M 1.663 1.28 Q 2.413 1.635 3.195 2.718 Q 2.083 2.778 1.595 3.884 Q 1.309 2.7 1.663 1.28 M 3.802 7.908 Q 4.426 8.069 3.284 9.003 Q 3.824 9.32 4.557 10.141 Q 4.812 10.869 4.849 11.671 Q 4.371 10.09 2.642 9.144 Q 2.438 9.033 2.609 8.922 Q 3.229 8.537 3.802 7.908 M 8.469 7.927 Q 8.955 8.469 9.646 8.926 Q 9.791 9.032 9.647 9.136 Q 7.821 10.157 7.389 11.702 Q 7.464 10.869 7.709 10.119 Q 8.219 9.53 8.956 9.025 Q 7.81 7.927 8.469 7.927`,s=`0.244 0.155 11.72 14.25`;function c(c){let{path:l=o,viewBox:u=s,size:d=96,color:f,duration:p=4.2,loop:m=!0,fill:h=!0,spin:g=!1,scale:_=!1,className:v,style:y,classNames:b,styles:x,...S}=c,C=n(null),[w,T]=r(!1);t(()=>{let e=C.current;if(!e)return;T(!1);let t=e.getTotalLength();e.style.setProperty(`--animated-logo-length`,String(t)),e.style.strokeDasharray=String(t),e.style.strokeDashoffset=String(t);let n=requestAnimationFrame(()=>T(!0));return()=>cancelAnimationFrame(n)},[l]);let E={animationDuration:`${p}s`,...f?{stroke:f,fill:f}:void 0,...x?.path};return a(`svg`,{...S,className:i(e.animatedLogo,v),style:{width:d,height:d,...y},viewBox:u,xmlns:`http://www.w3.org/2000/svg`,children:a(`g`,{className:i(w&&_&&(m?e.animatedLogoScaleLoop:e.animatedLogoScaleOnce)),style:{animationDuration:`${p}s`},children:a(`g`,{className:i(w&&g&&(m?e.animatedLogoSpinLoop:e.animatedLogoSpinOnce)),style:{animationDuration:`${p}s`},children:a(`path`,{ref:C,className:i(e.animatedLogoPath,w&&(m?h?e.animatedLogoPathLoop:e.animatedLogoPathLoopNoFill:h?e.animatedLogoPathOnce:e.animatedLogoPathOnceNoFill),b?.path),style:E,strokeWidth:.1,strokeLinejoin:`round`,strokeLinecap:`round`,d:l})})})})}export{c as default};
1
+ "use client";import e from"./animatedLogo.module.mjs";import{useEffect as t,useRef as n,useState as r}from"react";import i from"classnames";import{jsx as a}from"react/jsx-runtime";var o=`M 1.292 0.278 C -0.41 4.855 3.185 6.433 0.344 8.916 Q 3.923 10.712 5.361 14.001 Q 6.128 14.398 6.876 14.003 Q 8.439 10.632 11.86 8.912 C 8.893 6.387 12.578 5.159 10.86 0.255 Q 8.655 1.166 7.391 3.377 Q 6.092 2.93 4.843 3.38 Q 3.246 0.883 1.292 0.278 Z M 1.663 1.28 Q 2.413 1.635 3.195 2.718 Q 2.083 2.778 1.595 3.884 Q 1.309 2.7 1.663 1.28 M 3.802 7.908 Q 4.426 8.069 3.284 9.003 Q 3.824 9.32 4.557 10.141 Q 4.812 10.869 4.849 11.671 Q 4.371 10.09 2.642 9.144 Q 2.438 9.033 2.609 8.922 Q 3.229 8.537 3.802 7.908 M 8.469 7.927 Q 8.955 8.469 9.646 8.926 Q 9.791 9.032 9.647 9.136 Q 7.821 10.157 7.389 11.702 Q 7.464 10.869 7.709 10.119 Q 8.219 9.53 8.956 9.025 Q 7.81 7.927 8.469 7.927`,s=`0.244 0.155 11.72 14.25`;function c(c){let{path:l=o,viewBox:u=s,size:d=96,color:f,duration:p=4.2,loop:m=!0,fill:h=!0,spin:g=!1,scale:_=!1,className:v,style:y,classNames:b,styles:x,...S}=c,C=n(null),[w,T]=r(!1);t(()=>{let e=C.current;if(!e)return;T(!1);let t=e.getTotalLength();e.style.setProperty(`--animated-logo-length`,String(t)),e.style.strokeDasharray=String(t),e.style.strokeDashoffset=String(t);let n=requestAnimationFrame(()=>T(!0));return()=>cancelAnimationFrame(n)},[l]);let E={animationDuration:`${p}s`,...f?{stroke:f,fill:f}:void 0,...x?.path};return a(`svg`,{...S,className:i(e.animatedLogo,v),style:{width:d,height:d,...y},viewBox:u,xmlns:`http://www.w3.org/2000/svg`,children:a(`g`,{className:i(w&&_&&(m?e.animatedLogoScaleLoop:e.animatedLogoScaleOnce)),style:{animationDuration:`${p}s`},children:a(`g`,{className:i(w&&g&&(m?e.animatedLogoSpinLoop:e.animatedLogoSpinOnce)),style:{animationDuration:`${p}s`},children:a(`path`,{ref:C,className:i(e.animatedLogoPath,w&&(m?h?e.animatedLogoPathLoop:e.animatedLogoPathLoopNoFill:h?e.animatedLogoPathOnce:e.animatedLogoPathOnceNoFill),b?.path),style:E,strokeWidth:.1,strokeLinejoin:`round`,strokeLinecap:`round`,d:l})})})})}export{c as default};
2
2
  //# sourceMappingURL=animatedLogo.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animatedLogo.mjs","names":[],"sources":["../../../../package/common/animatedLogo/animatedLogo.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { CSSProperties, ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport type { AnimatedLogoProps } from './animatedLogo.types';\nimport styles from './animatedLogo.module.pcss';\n\nconst DEFAULT_PATH =\n 'M 1.292 0.278 C -0.41 4.855 3.185 6.433 0.344 8.916 Q 3.923 10.712 5.361 14.001 Q 6.128 14.398 6.876 14.003 Q 8.439 10.632 11.86 8.912 C 8.893 6.387 12.578 5.159 10.86 0.255 Q 8.655 1.166 7.391 3.377 Q 6.092 2.93 4.843 3.38 Q 3.246 0.883 1.292 0.278 Z M 1.663 1.28 Q 2.413 1.635 3.195 2.718 Q 2.083 2.778 1.595 3.884 Q 1.309 2.7 1.663 1.28 M 3.802 7.908 Q 4.426 8.069 3.284 9.003 Q 3.824 9.32 4.557 10.141 Q 4.812 10.869 4.849 11.671 Q 4.371 10.09 2.642 9.144 Q 2.438 9.033 2.609 8.922 Q 3.229 8.537 3.802 7.908 M 8.469 7.927 Q 8.955 8.469 9.646 8.926 Q 9.791 9.032 9.647 9.136 Q 7.821 10.157 7.389 11.702 Q 7.464 10.869 7.709 10.119 Q 8.219 9.53 8.956 9.025 Q 7.81 7.927 8.469 7.927';\n\nconst DEFAULT_VIEW_BOX = '0.244 0.155 11.72 14.25';\n\nfunction AnimatedLogo(props: AnimatedLogoProps): ReactElement {\n const {\n path = DEFAULT_PATH,\n viewBox = DEFAULT_VIEW_BOX,\n size = 96,\n color,\n duration = 4.2,\n loop = true,\n fill = true,\n spin = false,\n scale = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = props;\n\n const pathRef = useRef<SVGPathElement>(null);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const pathEl = pathRef.current;\n if (!pathEl) return;\n\n setReady(false);\n const length = pathEl.getTotalLength();\n pathEl.style.setProperty('--animated-logo-length', String(length));\n pathEl.style.strokeDasharray = String(length);\n pathEl.style.strokeDashoffset = String(length);\n\n const frame = requestAnimationFrame(() => setReady(true));\n return () => cancelAnimationFrame(frame);\n }, [path]);\n\n const pathStyle: CSSProperties = {\n animationDuration: `${duration}s`,\n ...(color ? { stroke: color, fill: color } : undefined),\n ...slotStyles?.path,\n };\n\n return (\n <svg\n {...rest}\n className={cx(styles.animatedLogo, className)}\n style={{ width: size, height: size, ...style }}\n viewBox={viewBox}\n xmlns='http://www.w3.org/2000/svg'\n >\n <g\n className={cx(ready && scale && (loop ? styles.animatedLogoScaleLoop : styles.animatedLogoScaleOnce))}\n style={{ animationDuration: `${duration}s` }}\n >\n <g\n className={cx(ready && spin && (loop ? styles.animatedLogoSpinLoop : styles.animatedLogoSpinOnce))}\n style={{ animationDuration: `${duration}s` }}\n >\n <path\n ref={pathRef}\n className={cx(\n styles.animatedLogoPath,\n ready &&\n (loop\n ? fill\n ? styles.animatedLogoPathLoop\n : styles.animatedLogoPathLoopNoFill\n : fill\n ? styles.animatedLogoPathOnce\n : styles.animatedLogoPathOnceNoFill),\n classNames?.path,\n )}\n style={pathStyle}\n strokeWidth={0.1}\n strokeLinejoin='round'\n strokeLinecap='round'\n d={path}\n />\n </g>\n </g>\n </svg>\n );\n}\n\nexport default AnimatedLogo;\n"],"mappings":"uKAOA,IAAM,EACJ,8qBAEI,EAAmB,0BAEzB,SAAS,EAAa,EAAwC,CAC5D,GAAM,CACJ,OAAO,EACP,UAAU,EACV,OAAO,GACP,QACA,WAAW,IACX,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAEE,EAAU,EAAuB,IAAI,EACrC,CAAC,EAAO,GAAY,EAAS,EAAK,EAExC,MAAgB,CACd,IAAM,EAAS,EAAQ,QACvB,GAAI,CAAC,EAAQ,OAEb,EAAS,EAAK,EACd,IAAM,EAAS,EAAO,eAAe,EACrC,EAAO,MAAM,YAAY,yBAA0B,OAAO,CAAM,CAAC,EACjE,EAAO,MAAM,gBAAkB,OAAO,CAAM,EAC5C,EAAO,MAAM,iBAAmB,OAAO,CAAM,EAE7C,IAAM,EAAQ,0BAA4B,EAAS,EAAI,CAAC,EACxD,UAAa,qBAAqB,CAAK,CACzC,EAAG,CAAC,CAAI,CAAC,EAET,IAAM,EAA2B,CAC/B,kBAAmB,GAAG,EAAS,GAC/B,GAAI,EAAQ,CAAE,OAAQ,EAAO,KAAM,CAAM,EAAI,IAAA,GAC7C,GAAG,GAAY,IACjB,EAEA,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,aAAc,CAAS,EAC5C,MAAO,CAAE,MAAO,EAAM,OAAQ,EAAM,GAAG,CAAM,EACpC,UACT,MAAM,6BAEN,SAAA,EAAC,IAAD,CACE,UAAW,EAAG,GAAS,IAAU,EAAO,EAAO,sBAAwB,EAAO,sBAAsB,EACpG,MAAO,CAAE,kBAAmB,GAAG,EAAS,EAAG,EAE3C,SAAA,EAAC,IAAD,CACE,UAAW,EAAG,GAAS,IAAS,EAAO,EAAO,qBAAuB,EAAO,qBAAqB,EACjG,MAAO,CAAE,kBAAmB,GAAG,EAAS,EAAG,EAE3C,SAAA,EAAC,OAAD,CACE,IAAK,EACL,UAAW,EACT,EAAO,iBACP,IACG,EACG,EACE,EAAO,qBACP,EAAO,2BACT,EACE,EAAO,qBACP,EAAO,4BACf,GAAY,IACd,EACA,MAAO,EACP,YAAa,GACb,eAAe,QACf,cAAc,QACd,EAAG,CACJ,CAAA,CACA,CAAA,CACF,CAAA,CACA,CAAA,CAET"}
1
+ {"version":3,"file":"animatedLogo.mjs","names":[],"sources":["../../../../package/common/animatedLogo/animatedLogo.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { CSSProperties, ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport type { AnimatedLogoProps } from './animatedLogo.types';\nimport styles from './animatedLogo.module.pcss';\n\nconst DEFAULT_PATH =\n 'M 1.292 0.278 C -0.41 4.855 3.185 6.433 0.344 8.916 Q 3.923 10.712 5.361 14.001 Q 6.128 14.398 6.876 14.003 Q 8.439 10.632 11.86 8.912 C 8.893 6.387 12.578 5.159 10.86 0.255 Q 8.655 1.166 7.391 3.377 Q 6.092 2.93 4.843 3.38 Q 3.246 0.883 1.292 0.278 Z M 1.663 1.28 Q 2.413 1.635 3.195 2.718 Q 2.083 2.778 1.595 3.884 Q 1.309 2.7 1.663 1.28 M 3.802 7.908 Q 4.426 8.069 3.284 9.003 Q 3.824 9.32 4.557 10.141 Q 4.812 10.869 4.849 11.671 Q 4.371 10.09 2.642 9.144 Q 2.438 9.033 2.609 8.922 Q 3.229 8.537 3.802 7.908 M 8.469 7.927 Q 8.955 8.469 9.646 8.926 Q 9.791 9.032 9.647 9.136 Q 7.821 10.157 7.389 11.702 Q 7.464 10.869 7.709 10.119 Q 8.219 9.53 8.956 9.025 Q 7.81 7.927 8.469 7.927';\n\nconst DEFAULT_VIEW_BOX = '0.244 0.155 11.72 14.25';\n\nfunction AnimatedLogo(props: AnimatedLogoProps): ReactElement {\n const {\n path = DEFAULT_PATH,\n viewBox = DEFAULT_VIEW_BOX,\n size = 96,\n color,\n duration = 4.2,\n loop = true,\n fill = true,\n spin = false,\n scale = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = props;\n\n const pathRef = useRef<SVGPathElement>(null);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const pathEl = pathRef.current;\n if (!pathEl) return;\n\n setReady(false);\n const length = pathEl.getTotalLength();\n pathEl.style.setProperty('--animated-logo-length', String(length));\n pathEl.style.strokeDasharray = String(length);\n pathEl.style.strokeDashoffset = String(length);\n\n const frame = requestAnimationFrame(() => setReady(true));\n return () => cancelAnimationFrame(frame);\n }, [path]);\n\n const pathStyle: CSSProperties = {\n animationDuration: `${duration}s`,\n ...(color ? { stroke: color, fill: color } : undefined),\n ...slotStyles?.path,\n };\n\n return (\n <svg\n {...rest}\n className={cx(styles.animatedLogo, className)}\n style={{ width: size, height: size, ...style }}\n viewBox={viewBox}\n xmlns='http://www.w3.org/2000/svg'\n >\n <g\n className={cx(ready && scale && (loop ? styles.animatedLogoScaleLoop : styles.animatedLogoScaleOnce))}\n style={{ animationDuration: `${duration}s` }}\n >\n <g\n className={cx(ready && spin && (loop ? styles.animatedLogoSpinLoop : styles.animatedLogoSpinOnce))}\n style={{ animationDuration: `${duration}s` }}\n >\n <path\n ref={pathRef}\n className={cx(\n styles.animatedLogoPath,\n ready &&\n (loop\n ? fill\n ? styles.animatedLogoPathLoop\n : styles.animatedLogoPathLoopNoFill\n : fill\n ? styles.animatedLogoPathOnce\n : styles.animatedLogoPathOnceNoFill),\n classNames?.path,\n )}\n style={pathStyle}\n strokeWidth={0.1}\n strokeLinejoin='round'\n strokeLinecap='round'\n d={path}\n />\n </g>\n </g>\n </svg>\n );\n}\n\nexport default AnimatedLogo;\n"],"mappings":"oLAOA,IAAM,EACJ,8qBAEI,EAAmB,0BAEzB,SAAS,EAAa,EAAwC,CAC5D,GAAM,CACJ,OAAO,EACP,UAAU,EACV,OAAO,GACP,QACA,WAAW,IACX,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAEE,EAAU,EAAuB,IAAI,EACrC,CAAC,EAAO,GAAY,EAAS,EAAK,EAExC,MAAgB,CACd,IAAM,EAAS,EAAQ,QACvB,GAAI,CAAC,EAAQ,OAEb,EAAS,EAAK,EACd,IAAM,EAAS,EAAO,eAAe,EACrC,EAAO,MAAM,YAAY,yBAA0B,OAAO,CAAM,CAAC,EACjE,EAAO,MAAM,gBAAkB,OAAO,CAAM,EAC5C,EAAO,MAAM,iBAAmB,OAAO,CAAM,EAE7C,IAAM,EAAQ,0BAA4B,EAAS,EAAI,CAAC,EACxD,UAAa,qBAAqB,CAAK,CACzC,EAAG,CAAC,CAAI,CAAC,EAET,IAAM,EAA2B,CAC/B,kBAAmB,GAAG,EAAS,GAC/B,GAAI,EAAQ,CAAE,OAAQ,EAAO,KAAM,CAAM,EAAI,IAAA,GAC7C,GAAG,GAAY,IACjB,EAEA,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,aAAc,CAAS,EAC5C,MAAO,CAAE,MAAO,EAAM,OAAQ,EAAM,GAAG,CAAM,EACpC,UACT,MAAM,6BAEN,SAAA,EAAC,IAAD,CACE,UAAW,EAAG,GAAS,IAAU,EAAO,EAAO,sBAAwB,EAAO,sBAAsB,EACpG,MAAO,CAAE,kBAAmB,GAAG,EAAS,EAAG,EAE3C,SAAA,EAAC,IAAD,CACE,UAAW,EAAG,GAAS,IAAS,EAAO,EAAO,qBAAuB,EAAO,qBAAqB,EACjG,MAAO,CAAE,kBAAmB,GAAG,EAAS,EAAG,EAE3C,SAAA,EAAC,OAAD,CACE,IAAK,EACL,UAAW,EACT,EAAO,iBACP,IACG,EACG,EACE,EAAO,qBACP,EAAO,2BACT,EACE,EAAO,qBACP,EAAO,4BACf,GAAY,IACd,EACA,MAAO,EACP,YAAa,GACb,eAAe,QACf,cAAc,QACd,EAAG,CACJ,CAAA,CACA,CAAA,CACF,CAAA,CACA,CAAA,CAET"}
@@ -1,2 +1,2 @@
1
- var e=`animatedLogo_7zZx1`,t=`animatedLogo-path_pP1g2`,n=`animatedLogo-pathLoop_i83B-`,r=`animatedLogoRevealLoop_lH4zm`,i=`animatedLogo-pathOnce_gEYxA`,a=`animatedLogoRevealOnce_NEt2W`,o=`animatedLogo-pathLoopNoFill_M3ewW`,s=`animatedLogoRevealLoopNoFill_mfZJo`,c=`animatedLogo-pathOnceNoFill_hiqiK`,l=`animatedLogoRevealOnceNoFill_sdu0s`,u=`animatedLogo-spinLoop_Lfz9H`,d=`animatedLogo-spinOnce_pXZUX`,f=`animatedLogo-scaleLoop_yox9X`,p=`animatedLogo-scaleOnce_ZNKV7`,m=`animatedLogoRotateLoop_oPtfw`,h=`animatedLogoRotateOnce_Ia1H1`,g=`animatedLogoGrowLoop_lZjug`,_=`animatedLogoGrowOnce_xHfCV`,v={animatedLogo:e,"animatedLogo-path":`animatedLogo-path_pP1g2`,animatedLogoPath:t,"animatedLogo-pathLoop":`animatedLogo-pathLoop_i83B-`,animatedLogoPathLoop:n,animatedLogoRevealLoop:r,"animatedLogo-pathOnce":`animatedLogo-pathOnce_gEYxA`,animatedLogoPathOnce:i,animatedLogoRevealOnce:a,"animatedLogo-pathLoopNoFill":`animatedLogo-pathLoopNoFill_M3ewW`,animatedLogoPathLoopNoFill:o,animatedLogoRevealLoopNoFill:s,"animatedLogo-pathOnceNoFill":`animatedLogo-pathOnceNoFill_hiqiK`,animatedLogoPathOnceNoFill:c,animatedLogoRevealOnceNoFill:l,"animatedLogo-spinLoop":`animatedLogo-spinLoop_Lfz9H`,animatedLogoSpinLoop:u,"animatedLogo-spinOnce":`animatedLogo-spinOnce_pXZUX`,animatedLogoSpinOnce:d,"animatedLogo-scaleLoop":`animatedLogo-scaleLoop_yox9X`,animatedLogoScaleLoop:f,"animatedLogo-scaleOnce":`animatedLogo-scaleOnce_ZNKV7`,animatedLogoScaleOnce:p,animatedLogoRotateLoop:m,animatedLogoRotateOnce:h,animatedLogoGrowLoop:g,animatedLogoGrowOnce:_};export{e as animatedLogo,g as animatedLogoGrowLoop,_ as animatedLogoGrowOnce,t as animatedLogoPath,n as animatedLogoPathLoop,o as animatedLogoPathLoopNoFill,i as animatedLogoPathOnce,c as animatedLogoPathOnceNoFill,r as animatedLogoRevealLoop,s as animatedLogoRevealLoopNoFill,a as animatedLogoRevealOnce,l as animatedLogoRevealOnceNoFill,m as animatedLogoRotateLoop,h as animatedLogoRotateOnce,f as animatedLogoScaleLoop,p as animatedLogoScaleOnce,u as animatedLogoSpinLoop,d as animatedLogoSpinOnce,v as default};
1
+ "use client";var e=`animatedLogo_7zZx1`,t=`animatedLogo-path_pP1g2`,n=`animatedLogo-pathLoop_i83B-`,r=`animatedLogoRevealLoop_lH4zm`,i=`animatedLogo-pathOnce_gEYxA`,a=`animatedLogoRevealOnce_NEt2W`,o=`animatedLogo-pathLoopNoFill_M3ewW`,s=`animatedLogoRevealLoopNoFill_mfZJo`,c=`animatedLogo-pathOnceNoFill_hiqiK`,l=`animatedLogoRevealOnceNoFill_sdu0s`,u=`animatedLogo-spinLoop_Lfz9H`,d=`animatedLogo-spinOnce_pXZUX`,f=`animatedLogo-scaleLoop_yox9X`,p=`animatedLogo-scaleOnce_ZNKV7`,m=`animatedLogoRotateLoop_oPtfw`,h=`animatedLogoRotateOnce_Ia1H1`,g=`animatedLogoGrowLoop_lZjug`,_=`animatedLogoGrowOnce_xHfCV`,v={animatedLogo:e,"animatedLogo-path":`animatedLogo-path_pP1g2`,animatedLogoPath:t,"animatedLogo-pathLoop":`animatedLogo-pathLoop_i83B-`,animatedLogoPathLoop:n,animatedLogoRevealLoop:r,"animatedLogo-pathOnce":`animatedLogo-pathOnce_gEYxA`,animatedLogoPathOnce:i,animatedLogoRevealOnce:a,"animatedLogo-pathLoopNoFill":`animatedLogo-pathLoopNoFill_M3ewW`,animatedLogoPathLoopNoFill:o,animatedLogoRevealLoopNoFill:s,"animatedLogo-pathOnceNoFill":`animatedLogo-pathOnceNoFill_hiqiK`,animatedLogoPathOnceNoFill:c,animatedLogoRevealOnceNoFill:l,"animatedLogo-spinLoop":`animatedLogo-spinLoop_Lfz9H`,animatedLogoSpinLoop:u,"animatedLogo-spinOnce":`animatedLogo-spinOnce_pXZUX`,animatedLogoSpinOnce:d,"animatedLogo-scaleLoop":`animatedLogo-scaleLoop_yox9X`,animatedLogoScaleLoop:f,"animatedLogo-scaleOnce":`animatedLogo-scaleOnce_ZNKV7`,animatedLogoScaleOnce:p,animatedLogoRotateLoop:m,animatedLogoRotateOnce:h,animatedLogoGrowLoop:g,animatedLogoGrowOnce:_};export{e as animatedLogo,g as animatedLogoGrowLoop,_ as animatedLogoGrowOnce,t as animatedLogoPath,n as animatedLogoPathLoop,o as animatedLogoPathLoopNoFill,i as animatedLogoPathOnce,c as animatedLogoPathOnceNoFill,r as animatedLogoRevealLoop,s as animatedLogoRevealLoopNoFill,a as animatedLogoRevealOnce,l as animatedLogoRevealOnceNoFill,m as animatedLogoRotateLoop,h as animatedLogoRotateOnce,f as animatedLogoScaleLoop,p as animatedLogoScaleOnce,u as animatedLogoSpinLoop,d as animatedLogoSpinOnce,v as default};
2
2
  //# sourceMappingURL=animatedLogo.module.mjs.map
@@ -1,2 +1,2 @@
1
- import{AnimatedTextUnit as e,AnimatedTextVariant as t}from"./animatedText.types.mjs";import n from"./animatedText.module.mjs";import{Fragment as r,useEffect as i,useMemo as a,useRef as o,useState as s}from"react";import c from"classnames";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";function f(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}var p={[t.RiseUp]:n.animatedTextVariantRiseUp,[t.BlurIn]:n.animatedTextVariantBlurIn,[t.Bounce]:n.animatedTextVariantBounce,[t.Glitch]:n.animatedTextVariantGlitch};function m(t,n){return n===e.Word?t.split(` `).filter(Boolean):Array.from(t)}function h({units:t,unit:a,staggerDelay:o,classNames:p,slotStyles:m}){let[h,g]=s(()=>t.length===0?0:f()?t.length:1);i(()=>{if(t.length<=1||f())return;let e=1,n=setInterval(()=>{e+=1,g(e),e>=t.length&&clearInterval(n)},o);return()=>clearInterval(n)},[t,o]);let _=h>=t.length;return d(l,{children:[t.slice(0,h).map((t,i)=>d(r,{children:[u(`span`,{className:c(n.animatedTextTypewriterLetter,p?.letter),style:m?.letter,children:t}),a===e.Word&&i<h-1?` `:null]},i)),u(`span`,{className:c(n.animatedTextCursor,_&&n.animatedTextCursorBlinking,p?.cursor),style:m?.cursor})]})}var g=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%&*`,_=35;function v(e){return Array.from({length:e},()=>g[Math.floor(Math.random()*69)]).join(``)}function y({units:t,unit:a,staggerDelay:o,classNames:p,slotStyles:m}){let[h]=s(f),[g,y]=s(0);i(()=>{if(t.length===0||h)return;let e=0,n=Math.ceil(t.length*o/_)+1,r=setInterval(()=>{e+=1,y(e),e>=n&&clearInterval(r)},_);return()=>clearInterval(r)},[t,o,h]);let b=Math.min(t.length,Math.floor(g*_/o));return u(l,{children:t.map((i,o)=>{let s=h||o<b;return d(r,{children:[u(`span`,{className:c(n.animatedTextScrambleLetter,p?.letter),style:m?.letter,children:i===` `?` `:s?i:v(i.length)}),a===e.Word&&o<t.length-1?` `:null]},o)})})}function b({text:l,variant:f=t.RiseUp,unit:g=e.Letter,staggerDelay:_=40,duration:v,triggerOnView:b=!0,className:x,style:S,classNames:C,styles:w,...T}){let E=a(()=>m(l,g),[l,g]),D=o(null),[O,k]=s(()=>!b||typeof IntersectionObserver>`u`);i(()=>{if(O)return;let e=D.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(k(!0),t.disconnect())});return t.observe(e),()=>t.disconnect()},[O]);let A=`${f} ${l} ${g} ${_} ${v??``}`,j;if(!O)j=u(`span`,{"aria-hidden":`true`,style:{opacity:0},children:l});else if(f===t.Shine)j=u(`span`,{"aria-hidden":`true`,className:c(n.animatedTextShine,C?.letter),style:{animationDuration:`${v??2e3}ms`,...w?.letter},children:l},A);else if(f===t.Highlight)j=u(`span`,{"aria-hidden":`true`,className:c(n.animatedTextHighlight,C?.letter),style:{animationDuration:`${v??600}ms`,...w?.letter},children:l},A);else if(f===t.Typewriter)j=u(`span`,{"aria-hidden":`true`,children:u(h,{units:E,unit:g,staggerDelay:_,classNames:C,slotStyles:w})},A);else if(f===t.Scramble)j=u(`span`,{"aria-hidden":`true`,children:u(y,{units:E,unit:g,staggerDelay:_,classNames:C,slotStyles:w})},A);else if(f===t.Wave)j=u(`span`,{"aria-hidden":`true`,children:E.map((t,i)=>d(r,{children:[u(`span`,{className:c(n.animatedTextLetter,n.animatedTextVariantWave,C?.letter),style:{animationDelay:`-${i*_}ms`,animationDuration:`${v??1200}ms`,...w?.letter},children:t===` `?` `:t}),g===e.Word&&i<E.length-1?` `:null]},i))},A);else{let t=p[f]??n.animatedTextVariantRiseUp;j=u(`span`,{"aria-hidden":`true`,children:E.map((i,a)=>d(r,{children:[u(`span`,{className:c(n.animatedTextLetter,t,C?.letter),style:{animationDelay:`${a*_}ms`,animationDuration:`${v??500}ms`,...w?.letter},children:i===` `?` `:i}),g===e.Word&&a<E.length-1?` `:null]},a))},A)}return d(`span`,{...T,ref:D,className:c(n.animatedText,x),style:S,children:[u(`span`,{className:n.animatedTextVisuallyHidden,children:l}),j]})}export{b as default};
1
+ "use client";import{AnimatedTextUnit as e,AnimatedTextVariant as t}from"./animatedText.types.mjs";import n from"./animatedText.module.mjs";import{Fragment as r,useEffect as i,useMemo as a,useRef as o,useState as s}from"react";import c from"classnames";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";function f(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}var p={[t.RiseUp]:n.animatedTextVariantRiseUp,[t.BlurIn]:n.animatedTextVariantBlurIn,[t.Bounce]:n.animatedTextVariantBounce,[t.Glitch]:n.animatedTextVariantGlitch};function m(t,n){return n===e.Word?t.split(` `).filter(Boolean):Array.from(t)}function h({units:t,unit:a,staggerDelay:o,classNames:p,slotStyles:m}){let[h,g]=s(()=>t.length===0?0:f()?t.length:1);i(()=>{if(t.length<=1||f())return;let e=1,n=setInterval(()=>{e+=1,g(e),e>=t.length&&clearInterval(n)},o);return()=>clearInterval(n)},[t,o]);let _=h>=t.length;return d(l,{children:[t.slice(0,h).map((t,i)=>d(r,{children:[u(`span`,{className:c(n.animatedTextTypewriterLetter,p?.letter),style:m?.letter,children:t}),a===e.Word&&i<h-1?` `:null]},i)),u(`span`,{className:c(n.animatedTextCursor,_&&n.animatedTextCursorBlinking,p?.cursor),style:m?.cursor})]})}var g=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%&*`,_=35;function v(e){return Array.from({length:e},()=>g[Math.floor(Math.random()*69)]).join(``)}function y({units:t,unit:a,staggerDelay:o,classNames:p,slotStyles:m}){let[h]=s(f),[g,y]=s(0);i(()=>{if(t.length===0||h)return;let e=0,n=Math.ceil(t.length*o/_)+1,r=setInterval(()=>{e+=1,y(e),e>=n&&clearInterval(r)},_);return()=>clearInterval(r)},[t,o,h]);let b=Math.min(t.length,Math.floor(g*_/o));return u(l,{children:t.map((i,o)=>{let s=h||o<b;return d(r,{children:[u(`span`,{className:c(n.animatedTextScrambleLetter,p?.letter),style:m?.letter,children:i===` `?` `:s?i:v(i.length)}),a===e.Word&&o<t.length-1?` `:null]},o)})})}function b({text:l,variant:f=t.RiseUp,unit:g=e.Letter,staggerDelay:_=40,duration:v,triggerOnView:b=!0,className:x,style:S,classNames:C,styles:w,...T}){let E=a(()=>m(l,g),[l,g]),D=o(null),[O,k]=s(()=>!b||typeof IntersectionObserver>`u`);i(()=>{if(O)return;let e=D.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(k(!0),t.disconnect())});return t.observe(e),()=>t.disconnect()},[O]);let A=`${f} ${l} ${g} ${_} ${v??``}`,j;if(!O)j=u(`span`,{"aria-hidden":`true`,style:{opacity:0},children:l});else if(f===t.Shine)j=u(`span`,{"aria-hidden":`true`,className:c(n.animatedTextShine,C?.letter),style:{animationDuration:`${v??2e3}ms`,...w?.letter},children:l},A);else if(f===t.Highlight)j=u(`span`,{"aria-hidden":`true`,className:c(n.animatedTextHighlight,C?.letter),style:{animationDuration:`${v??600}ms`,...w?.letter},children:l},A);else if(f===t.Typewriter)j=u(`span`,{"aria-hidden":`true`,children:u(h,{units:E,unit:g,staggerDelay:_,classNames:C,slotStyles:w})},A);else if(f===t.Scramble)j=u(`span`,{"aria-hidden":`true`,children:u(y,{units:E,unit:g,staggerDelay:_,classNames:C,slotStyles:w})},A);else if(f===t.Wave)j=u(`span`,{"aria-hidden":`true`,children:E.map((t,i)=>d(r,{children:[u(`span`,{className:c(n.animatedTextLetter,n.animatedTextVariantWave,C?.letter),style:{animationDelay:`-${i*_}ms`,animationDuration:`${v??1200}ms`,...w?.letter},children:t===` `?` `:t}),g===e.Word&&i<E.length-1?` `:null]},i))},A);else{let t=p[f]??n.animatedTextVariantRiseUp;j=u(`span`,{"aria-hidden":`true`,children:E.map((i,a)=>d(r,{children:[u(`span`,{className:c(n.animatedTextLetter,t,C?.letter),style:{animationDelay:`${a*_}ms`,animationDuration:`${v??500}ms`,...w?.letter},children:i===` `?` `:i}),g===e.Word&&a<E.length-1?` `:null]},a))},A)}return d(`span`,{...T,ref:D,className:c(n.animatedText,x),style:S,children:[u(`span`,{className:n.animatedTextVisuallyHidden,children:l}),j]})}export{b as default};
2
2
  //# sourceMappingURL=animatedText.mjs.map