@makroz/web 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/MkAuthContext.d.ts +43 -0
- package/dist/auth/MkAuthContext.d.ts.map +1 -0
- package/dist/auth/MkAuthContext.js +3 -0
- package/dist/auth/MkAuthContext.js.map +1 -0
- package/dist/auth/MkAuthForm.d.ts +42 -0
- package/dist/auth/MkAuthForm.d.ts.map +1 -0
- package/dist/auth/MkAuthForm.js +53 -0
- package/dist/auth/MkAuthForm.js.map +1 -0
- package/dist/auth/MkAuthProvider.d.ts +30 -0
- package/dist/auth/MkAuthProvider.d.ts.map +1 -0
- package/dist/auth/MkAuthProvider.js +317 -0
- package/dist/auth/MkAuthProvider.js.map +1 -0
- package/dist/auth/types.d.ts +63 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +20 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/useMkAuth.d.ts +19 -0
- package/dist/auth/useMkAuth.d.ts.map +1 -0
- package/dist/auth/useMkAuth.js +26 -0
- package/dist/auth/useMkAuth.js.map +1 -0
- package/dist/components/FormField.d.ts +27 -0
- package/dist/components/FormField.d.ts.map +1 -0
- package/dist/components/FormField.js +18 -0
- package/dist/components/FormField.js.map +1 -0
- package/dist/components/FormField.stories.d.ts +11 -0
- package/dist/components/FormField.stories.d.ts.map +1 -0
- package/dist/components/FormField.stories.js +61 -0
- package/dist/components/FormField.stories.js.map +1 -0
- package/dist/components/MkAccordion.d.ts +36 -0
- package/dist/components/MkAccordion.d.ts.map +1 -0
- package/dist/components/MkAccordion.js +23 -0
- package/dist/components/MkAccordion.js.map +1 -0
- package/dist/components/MkAccordion.stories.d.ts +13 -0
- package/dist/components/MkAccordion.stories.d.ts.map +1 -0
- package/dist/components/MkAccordion.stories.js +76 -0
- package/dist/components/MkAccordion.stories.js.map +1 -0
- package/dist/components/MkAccordion.stories.test.d.ts +2 -0
- package/dist/components/MkAccordion.stories.test.d.ts.map +1 -0
- package/dist/components/MkAccordion.stories.test.js +18 -0
- package/dist/components/MkAccordion.stories.test.js.map +1 -0
- package/dist/components/MkAlert.d.ts +25 -0
- package/dist/components/MkAlert.d.ts.map +1 -0
- package/dist/components/MkAlert.js +21 -0
- package/dist/components/MkAlert.js.map +1 -0
- package/dist/components/MkAlert.stories.d.ts +13 -0
- package/dist/components/MkAlert.stories.d.ts.map +1 -0
- package/dist/components/MkAlert.stories.js +75 -0
- package/dist/components/MkAlert.stories.js.map +1 -0
- package/dist/components/MkAlert.stories.test.d.ts +2 -0
- package/dist/components/MkAlert.stories.test.d.ts.map +1 -0
- package/dist/components/MkAlert.stories.test.js +16 -0
- package/dist/components/MkAlert.stories.test.js.map +1 -0
- package/dist/components/MkAvatar.d.ts +16 -0
- package/dist/components/MkAvatar.d.ts.map +1 -0
- package/dist/components/MkAvatar.js +23 -0
- package/dist/components/MkAvatar.js.map +1 -0
- package/dist/components/MkAvatar.stories.d.ts +14 -0
- package/dist/components/MkAvatar.stories.d.ts.map +1 -0
- package/dist/components/MkAvatar.stories.js +67 -0
- package/dist/components/MkAvatar.stories.js.map +1 -0
- package/dist/components/MkAvatar.stories.test.d.ts +2 -0
- package/dist/components/MkAvatar.stories.test.d.ts.map +1 -0
- package/dist/components/MkAvatar.stories.test.js +16 -0
- package/dist/components/MkAvatar.stories.test.js.map +1 -0
- package/dist/components/MkBadge.d.ts +15 -0
- package/dist/components/MkBadge.d.ts.map +1 -0
- package/dist/components/MkBadge.js +7 -0
- package/dist/components/MkBadge.js.map +1 -0
- package/dist/components/MkBadge.stories.d.ts +15 -0
- package/dist/components/MkBadge.stories.d.ts.map +1 -0
- package/dist/components/MkBadge.stories.js +78 -0
- package/dist/components/MkBadge.stories.js.map +1 -0
- package/dist/components/MkBadge.stories.test.d.ts +2 -0
- package/dist/components/MkBadge.stories.test.d.ts.map +1 -0
- package/dist/components/MkBadge.stories.test.js +16 -0
- package/dist/components/MkBadge.stories.test.js.map +1 -0
- package/dist/components/MkButton.d.ts +11 -0
- package/dist/components/MkButton.stories.d.ts +12 -0
- package/dist/components/MkButton.stories.d.ts.map +1 -0
- package/dist/components/MkButton.stories.js +57 -0
- package/dist/components/MkButton.stories.js.map +1 -0
- package/dist/components/MkButton.test.d.ts +2 -0
- package/dist/components/MkButton.test.d.ts.map +1 -0
- package/dist/components/MkButton.test.js +56 -0
- package/dist/components/MkButton.test.js.map +1 -0
- package/dist/components/MkCard.d.ts +18 -0
- package/dist/components/MkCard.d.ts.map +1 -0
- package/dist/components/MkCard.js +6 -0
- package/dist/components/MkCard.js.map +1 -0
- package/dist/components/MkCard.stories.d.ts +11 -0
- package/dist/components/MkCard.stories.d.ts.map +1 -0
- package/dist/components/MkCard.stories.js +57 -0
- package/dist/components/MkCard.stories.js.map +1 -0
- package/dist/components/MkCheck.d.ts +32 -0
- package/dist/components/MkCheck.d.ts.map +1 -0
- package/dist/components/MkCheck.js +12 -0
- package/dist/components/MkCheck.js.map +1 -0
- package/dist/components/MkCheck.stories.d.ts +13 -0
- package/dist/components/MkCheck.stories.d.ts.map +1 -0
- package/dist/components/MkCheck.stories.js +63 -0
- package/dist/components/MkCheck.stories.js.map +1 -0
- package/dist/components/MkCheck.stories.test.d.ts +2 -0
- package/dist/components/MkCheck.stories.test.d.ts.map +1 -0
- package/dist/components/MkCheck.stories.test.js +16 -0
- package/dist/components/MkCheck.stories.test.js.map +1 -0
- package/dist/components/MkDatePicker.d.ts +29 -0
- package/dist/components/MkDatePicker.d.ts.map +1 -0
- package/dist/components/MkDatePicker.js +10 -0
- package/dist/components/MkDatePicker.js.map +1 -0
- package/dist/components/MkDatePicker.stories.d.ts +11 -0
- package/dist/components/MkDatePicker.stories.d.ts.map +1 -0
- package/dist/components/MkDatePicker.stories.js +47 -0
- package/dist/components/MkDatePicker.stories.js.map +1 -0
- package/dist/components/MkDatePicker.stories.test.d.ts +2 -0
- package/dist/components/MkDatePicker.stories.test.d.ts.map +1 -0
- package/dist/components/MkDatePicker.stories.test.js +16 -0
- package/dist/components/MkDatePicker.stories.test.js.map +1 -0
- package/dist/components/MkDivider.d.ts +14 -0
- package/dist/components/MkDivider.d.ts.map +1 -0
- package/dist/components/MkDivider.js +12 -0
- package/dist/components/MkDivider.js.map +1 -0
- package/dist/components/MkDivider.stories.d.ts +12 -0
- package/dist/components/MkDivider.stories.d.ts.map +1 -0
- package/dist/components/MkDivider.stories.js +33 -0
- package/dist/components/MkDivider.stories.js.map +1 -0
- package/dist/components/MkDivider.stories.test.d.ts +2 -0
- package/dist/components/MkDivider.stories.test.d.ts.map +1 -0
- package/dist/components/MkDivider.stories.test.js +15 -0
- package/dist/components/MkDivider.stories.test.js.map +1 -0
- package/dist/components/MkDropDown.d.ts +22 -0
- package/dist/components/MkDropDown.d.ts.map +1 -0
- package/dist/components/MkDropDown.js +24 -0
- package/dist/components/MkDropDown.js.map +1 -0
- package/dist/components/MkDropDown.stories.d.ts +12 -0
- package/dist/components/MkDropDown.stories.d.ts.map +1 -0
- package/dist/components/MkDropDown.stories.js +76 -0
- package/dist/components/MkDropDown.stories.js.map +1 -0
- package/dist/components/MkDropDown.stories.test.d.ts +2 -0
- package/dist/components/MkDropDown.stories.test.d.ts.map +1 -0
- package/dist/components/MkDropDown.stories.test.js +18 -0
- package/dist/components/MkDropDown.stories.test.js.map +1 -0
- package/dist/components/MkEmptyState.d.ts +14 -0
- package/dist/components/MkEmptyState.d.ts.map +1 -0
- package/dist/components/MkEmptyState.js +6 -0
- package/dist/components/MkEmptyState.js.map +1 -0
- package/dist/components/MkEmptyState.stories.d.ts +12 -0
- package/dist/components/MkEmptyState.stories.d.ts.map +1 -0
- package/dist/components/MkEmptyState.stories.js +44 -0
- package/dist/components/MkEmptyState.stories.js.map +1 -0
- package/dist/components/MkEmptyState.stories.test.d.ts +2 -0
- package/dist/components/MkEmptyState.stories.test.d.ts.map +1 -0
- package/dist/components/MkEmptyState.stories.test.js +15 -0
- package/dist/components/MkEmptyState.stories.test.js.map +1 -0
- package/dist/components/MkFileUpload.d.ts +36 -0
- package/dist/components/MkFileUpload.d.ts.map +1 -0
- package/dist/components/MkFileUpload.js +50 -0
- package/dist/components/MkFileUpload.js.map +1 -0
- package/dist/components/MkFileUpload.stories.d.ts +12 -0
- package/dist/components/MkFileUpload.stories.d.ts.map +1 -0
- package/dist/components/MkFileUpload.stories.js +53 -0
- package/dist/components/MkFileUpload.stories.js.map +1 -0
- package/dist/components/MkFileUpload.stories.test.d.ts +2 -0
- package/dist/components/MkFileUpload.stories.test.d.ts.map +1 -0
- package/dist/components/MkFileUpload.stories.test.js +15 -0
- package/dist/components/MkFileUpload.stories.test.js.map +1 -0
- package/dist/components/MkIcons.d.ts +14 -0
- package/dist/components/MkIcons.d.ts.map +1 -0
- package/dist/components/MkIcons.js +36 -0
- package/dist/components/MkIcons.js.map +1 -0
- package/dist/components/MkInfiniteList.d.ts +15 -0
- package/dist/components/MkInfiniteList.d.ts.map +1 -0
- package/dist/components/MkInfiniteList.js +29 -0
- package/dist/components/MkInfiniteList.js.map +1 -0
- package/dist/components/MkInfiniteList.stories.d.ts +17 -0
- package/dist/components/MkInfiniteList.stories.d.ts.map +1 -0
- package/dist/components/MkInfiniteList.stories.js +90 -0
- package/dist/components/MkInfiniteList.stories.js.map +1 -0
- package/dist/components/MkInfiniteList.stories.test.d.ts +2 -0
- package/dist/components/MkInfiniteList.stories.test.d.ts.map +1 -0
- package/dist/components/MkInfiniteList.stories.test.js +24 -0
- package/dist/components/MkInfiniteList.stories.test.js.map +1 -0
- package/dist/components/MkInput.d.ts +13 -0
- package/dist/components/MkInput.d.ts.map +1 -0
- package/dist/components/MkInput.js +21 -0
- package/dist/components/MkInput.js.map +1 -0
- package/dist/components/MkInput.stories.d.ts +13 -0
- package/dist/components/MkInput.stories.d.ts.map +1 -0
- package/dist/components/MkInput.stories.js +75 -0
- package/dist/components/MkInput.stories.js.map +1 -0
- package/dist/components/MkInput.stories.test.d.ts +2 -0
- package/dist/components/MkInput.stories.test.d.ts.map +1 -0
- package/dist/components/MkInput.stories.test.js +16 -0
- package/dist/components/MkInput.stories.test.js.map +1 -0
- package/dist/components/MkLoading.d.ts +20 -0
- package/dist/components/MkLoading.d.ts.map +1 -0
- package/dist/components/MkLoading.js +14 -0
- package/dist/components/MkLoading.js.map +1 -0
- package/dist/components/MkLoading.stories.d.ts +13 -0
- package/dist/components/MkLoading.stories.d.ts.map +1 -0
- package/dist/components/MkLoading.stories.js +35 -0
- package/dist/components/MkLoading.stories.js.map +1 -0
- package/dist/components/MkLoading.stories.test.d.ts +2 -0
- package/dist/components/MkLoading.stories.test.d.ts.map +1 -0
- package/dist/components/MkLoading.stories.test.js +15 -0
- package/dist/components/MkLoading.stories.test.js.map +1 -0
- package/dist/components/MkModal.d.ts +20 -0
- package/dist/components/MkModal.d.ts.map +1 -0
- package/dist/components/MkModal.js +31 -0
- package/dist/components/MkModal.js.map +1 -0
- package/dist/components/MkModal.stories.d.ts +13 -0
- package/dist/components/MkModal.stories.d.ts.map +1 -0
- package/dist/components/MkModal.stories.js +73 -0
- package/dist/components/MkModal.stories.js.map +1 -0
- package/dist/components/MkProgressBar.d.ts +17 -0
- package/dist/components/MkProgressBar.d.ts.map +1 -0
- package/dist/components/MkProgressBar.js +7 -0
- package/dist/components/MkProgressBar.js.map +1 -0
- package/dist/components/MkProgressBar.stories.d.ts +13 -0
- package/dist/components/MkProgressBar.stories.d.ts.map +1 -0
- package/dist/components/MkProgressBar.stories.js +39 -0
- package/dist/components/MkProgressBar.stories.js.map +1 -0
- package/dist/components/MkProgressBar.stories.test.d.ts +2 -0
- package/dist/components/MkProgressBar.stories.test.d.ts.map +1 -0
- package/dist/components/MkProgressBar.stories.test.js +15 -0
- package/dist/components/MkProgressBar.stories.test.js.map +1 -0
- package/dist/components/MkRadio.d.ts +34 -0
- package/dist/components/MkRadio.d.ts.map +1 -0
- package/dist/components/MkRadio.js +19 -0
- package/dist/components/MkRadio.js.map +1 -0
- package/dist/components/MkRadio.stories.d.ts +13 -0
- package/dist/components/MkRadio.stories.d.ts.map +1 -0
- package/dist/components/MkRadio.stories.js +55 -0
- package/dist/components/MkRadio.stories.js.map +1 -0
- package/dist/components/MkRadio.stories.test.d.ts +2 -0
- package/dist/components/MkRadio.stories.test.d.ts.map +1 -0
- package/dist/components/MkRadio.stories.test.js +18 -0
- package/dist/components/MkRadio.stories.test.js.map +1 -0
- package/dist/components/MkSearchInput.d.ts +30 -0
- package/dist/components/MkSearchInput.d.ts.map +1 -0
- package/dist/components/MkSearchInput.js +27 -0
- package/dist/components/MkSearchInput.js.map +1 -0
- package/dist/components/MkSearchInput.stories.d.ts +13 -0
- package/dist/components/MkSearchInput.stories.d.ts.map +1 -0
- package/dist/components/MkSearchInput.stories.js +47 -0
- package/dist/components/MkSearchInput.stories.js.map +1 -0
- package/dist/components/MkSearchInput.stories.test.d.ts +2 -0
- package/dist/components/MkSearchInput.stories.test.d.ts.map +1 -0
- package/dist/components/MkSearchInput.stories.test.js +15 -0
- package/dist/components/MkSearchInput.stories.test.js.map +1 -0
- package/dist/components/MkSelect.d.ts +23 -0
- package/dist/components/MkSelect.d.ts.map +1 -0
- package/dist/components/MkSelect.js +59 -0
- package/dist/components/MkSelect.js.map +1 -0
- package/dist/components/MkSelect.stories.d.ts +12 -0
- package/dist/components/MkSelect.stories.d.ts.map +1 -0
- package/dist/components/MkSelect.stories.js +84 -0
- package/dist/components/MkSelect.stories.js.map +1 -0
- package/dist/components/MkSelect.stories.test.d.ts +2 -0
- package/dist/components/MkSelect.stories.test.d.ts.map +1 -0
- package/dist/components/MkSelect.stories.test.js +21 -0
- package/dist/components/MkSelect.stories.test.js.map +1 -0
- package/dist/components/MkSkeleton.d.ts +22 -0
- package/dist/components/MkSkeleton.d.ts.map +1 -0
- package/dist/components/MkSkeleton.js +21 -0
- package/dist/components/MkSkeleton.js.map +1 -0
- package/dist/components/MkSkeleton.stories.d.ts +12 -0
- package/dist/components/MkSkeleton.stories.d.ts.map +1 -0
- package/dist/components/MkSkeleton.stories.js +32 -0
- package/dist/components/MkSkeleton.stories.js.map +1 -0
- package/dist/components/MkSkeleton.stories.test.d.ts +2 -0
- package/dist/components/MkSkeleton.stories.test.d.ts.map +1 -0
- package/dist/components/MkSkeleton.stories.test.js +15 -0
- package/dist/components/MkSkeleton.stories.test.js.map +1 -0
- package/dist/components/MkSwitch.d.ts +22 -0
- package/dist/components/MkSwitch.d.ts.map +1 -0
- package/dist/components/MkSwitch.js +14 -0
- package/dist/components/MkSwitch.js.map +1 -0
- package/dist/components/MkSwitch.stories.d.ts +13 -0
- package/dist/components/MkSwitch.stories.d.ts.map +1 -0
- package/dist/components/MkSwitch.stories.js +37 -0
- package/dist/components/MkSwitch.stories.js.map +1 -0
- package/dist/components/MkSwitch.stories.test.d.ts +2 -0
- package/dist/components/MkSwitch.stories.test.d.ts.map +1 -0
- package/dist/components/MkSwitch.stories.test.js +15 -0
- package/dist/components/MkSwitch.stories.test.js.map +1 -0
- package/dist/components/MkTable.d.ts +27 -0
- package/dist/components/MkTable.d.ts.map +1 -0
- package/dist/components/MkTable.js +11 -0
- package/dist/components/MkTable.js.map +1 -0
- package/dist/components/MkTable.stories.d.ts +16 -0
- package/dist/components/MkTable.stories.d.ts.map +1 -0
- package/dist/components/MkTable.stories.js +65 -0
- package/dist/components/MkTable.stories.js.map +1 -0
- package/dist/components/MkTable.stories.test.d.ts +2 -0
- package/dist/components/MkTable.stories.test.d.ts.map +1 -0
- package/dist/components/MkTable.stories.test.js +25 -0
- package/dist/components/MkTable.stories.test.js.map +1 -0
- package/dist/components/MkTabs.d.ts +22 -0
- package/dist/components/MkTabs.d.ts.map +1 -0
- package/dist/components/MkTabs.js +17 -0
- package/dist/components/MkTabs.js.map +1 -0
- package/dist/components/MkTabs.stories.d.ts +11 -0
- package/dist/components/MkTabs.stories.d.ts.map +1 -0
- package/dist/components/MkTabs.stories.js +73 -0
- package/dist/components/MkTabs.stories.js.map +1 -0
- package/dist/components/MkTextArea.d.ts +21 -0
- package/dist/components/MkTextArea.d.ts.map +1 -0
- package/dist/components/MkTextArea.js +8 -0
- package/dist/components/MkTextArea.js.map +1 -0
- package/dist/components/MkTextArea.stories.d.ts +13 -0
- package/dist/components/MkTextArea.stories.d.ts.map +1 -0
- package/dist/components/MkTextArea.stories.js +56 -0
- package/dist/components/MkTextArea.stories.js.map +1 -0
- package/dist/components/MkTextArea.stories.test.d.ts +2 -0
- package/dist/components/MkTextArea.stories.test.d.ts.map +1 -0
- package/dist/components/MkTextArea.stories.test.js +15 -0
- package/dist/components/MkTextArea.stories.test.js.map +1 -0
- package/dist/components/MkThemeEditor.d.ts +8 -0
- package/dist/components/MkToastContainer.d.ts +3 -0
- package/dist/components/MkToastContainer.stories.d.ts +9 -0
- package/dist/components/MkToastContainer.stories.js +43 -0
- package/dist/components/MkToastContainer.stories.js.map +1 -0
- package/dist/components/MkToastContainer.stories.test.d.ts +2 -0
- package/dist/components/MkToastContainer.stories.test.js +29 -0
- package/dist/components/MkToastContainer.stories.test.js.map +1 -0
- package/dist/components/MkTooltip.d.ts +14 -0
- package/dist/components/MkTooltip.d.ts.map +1 -0
- package/dist/components/MkTooltip.js +17 -0
- package/dist/components/MkTooltip.js.map +1 -0
- package/dist/components/MkTooltip.stories.d.ts +13 -0
- package/dist/components/MkTooltip.stories.d.ts.map +1 -0
- package/dist/components/MkTooltip.stories.js +59 -0
- package/dist/components/MkTooltip.stories.js.map +1 -0
- package/dist/components/MkTooltip.stories.test.d.ts +2 -0
- package/dist/components/MkTooltip.stories.test.d.ts.map +1 -0
- package/dist/components/MkTooltip.stories.test.js +15 -0
- package/dist/components/MkTooltip.stories.test.js.map +1 -0
- package/dist/components/MkWindowList.d.ts +20 -0
- package/dist/components/MkWindowList.d.ts.map +1 -0
- package/dist/components/MkWindowList.js +59 -0
- package/dist/components/MkWindowList.js.map +1 -0
- package/dist/components/MkWindowList.stories.d.ts +16 -0
- package/dist/components/MkWindowList.stories.d.ts.map +1 -0
- package/dist/components/MkWindowList.stories.js +76 -0
- package/dist/components/MkWindowList.stories.js.map +1 -0
- package/dist/components/MkWindowList.stories.test.d.ts +2 -0
- package/dist/components/MkWindowList.stories.test.d.ts.map +1 -0
- package/dist/components/MkWindowList.stories.test.js +19 -0
- package/dist/components/MkWindowList.stories.test.js.map +1 -0
- package/dist/components/index.d.ts +31 -0
- package/dist/components/index.js +34 -0
- package/dist/components/index.js.map +1 -0
- package/dist/context/MkApiContext.d.ts +15 -0
- package/dist/context/MkApiContext.d.ts.map +1 -0
- package/dist/context/MkApiContext.js +28 -0
- package/dist/context/MkApiContext.js.map +1 -0
- package/dist/context/MkAuthContext.d.ts +2 -1
- package/dist/context/MkAuthContext.d.ts.map +1 -1
- package/dist/context/MkConfirmContext.d.ts +2 -1
- package/dist/context/MkConfirmContext.d.ts.map +1 -1
- package/dist/context/MkToastContext.d.ts +2 -1
- package/dist/context/MkToastContext.d.ts.map +1 -1
- package/dist/hooks/useApi.d.ts +6 -5
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useApi.test.d.ts +2 -0
- package/dist/hooks/useApi.test.js +184 -0
- package/dist/hooks/useApi.test.js.map +1 -0
- package/dist/hooks/useMkClickOutside.d.ts +8 -0
- package/dist/hooks/useMkClickOutside.d.ts.map +1 -0
- package/dist/hooks/useMkClickOutside.js +24 -0
- package/dist/hooks/useMkClickOutside.js.map +1 -0
- package/dist/hooks/useMkCrud.d.ts +39 -0
- package/dist/hooks/useMkCrud.test.d.ts +2 -0
- package/dist/hooks/useMkDebounce.d.ts +24 -0
- package/dist/hooks/useMkDebounce.d.ts.map +1 -0
- package/dist/hooks/useMkDebounce.js +36 -0
- package/dist/hooks/useMkDebounce.js.map +1 -0
- package/dist/hooks/useMkEffectDebug.d.ts +7 -0
- package/dist/hooks/useMkEffectDebug.d.ts.map +1 -0
- package/dist/hooks/useMkEffectDebug.js +26 -0
- package/dist/hooks/useMkEffectDebug.js.map +1 -0
- package/dist/hooks/useMkEvent.d.ts +31 -0
- package/dist/hooks/useMkEvent.d.ts.map +1 -0
- package/dist/hooks/useMkEvent.js +56 -0
- package/dist/hooks/useMkEvent.js.map +1 -0
- package/dist/hooks/useMkForm.d.ts +43 -0
- package/dist/hooks/useMkForm.test.d.ts +2 -0
- package/dist/hooks/useMkInViewPort.d.ts +14 -0
- package/dist/hooks/useMkInViewPort.d.ts.map +1 -0
- package/dist/hooks/useMkInViewPort.js +31 -0
- package/dist/hooks/useMkInViewPort.js.map +1 -0
- package/dist/hooks/useMkInfiniteList.d.ts +15 -0
- package/dist/hooks/useMkInfiniteList.js +47 -0
- package/dist/hooks/useMkInfiniteList.js.map +1 -0
- package/dist/hooks/useMkList.d.ts +7 -7
- package/dist/hooks/useMkList.js +53 -0
- package/dist/hooks/useMkList.js.map +1 -0
- package/dist/hooks/useMkLocalStorage.d.ts +6 -0
- package/dist/hooks/useMkLocalStorage.d.ts.map +1 -0
- package/dist/hooks/useMkLocalStorage.js +33 -0
- package/dist/hooks/useMkLocalStorage.js.map +1 -0
- package/dist/hooks/useMkLongPress.d.ts +37 -0
- package/dist/hooks/useMkLongPress.d.ts.map +1 -0
- package/dist/hooks/useMkLongPress.js +59 -0
- package/dist/hooks/useMkLongPress.js.map +1 -0
- package/dist/hooks/useMkMediaQuery.d.ts +14 -0
- package/dist/hooks/useMkMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMkMediaQuery.js +31 -0
- package/dist/hooks/useMkMediaQuery.js.map +1 -0
- package/dist/hooks/useMkPrevious.d.ts +7 -0
- package/dist/hooks/useMkPrevious.d.ts.map +1 -0
- package/dist/hooks/useMkPrevious.js +14 -0
- package/dist/hooks/useMkPrevious.js.map +1 -0
- package/dist/hooks/useMkScreenSize.d.ts +25 -0
- package/dist/hooks/useMkScreenSize.d.ts.map +1 -0
- package/dist/hooks/useMkScreenSize.js +42 -0
- package/dist/hooks/useMkScreenSize.js.map +1 -0
- package/dist/hooks/useMkStore.d.ts +22 -0
- package/dist/hooks/useMkStore.d.ts.map +1 -0
- package/dist/hooks/useMkStore.js +58 -0
- package/dist/hooks/useMkStore.js.map +1 -0
- package/dist/hooks/useMkToggle.d.ts +6 -0
- package/dist/hooks/useMkToggle.d.ts.map +1 -0
- package/dist/hooks/useMkToggle.js +13 -0
- package/dist/hooks/useMkToggle.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +31 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/theme/MkThemeProvider.d.ts +20 -0
- package/dist/utils/images.d.ts +9 -0
- package/dist/utils/images.d.ts.map +1 -0
- package/dist/utils/images.js +50 -0
- package/dist/utils/images.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMkAuth.d.ts","sourceRoot":"","sources":["../../src/auth/useMkAuth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { MkAuthContext } from './MkAuthContext';
|
|
3
|
+
/**
|
|
4
|
+
* Hook to consume the value exposed by `<MkAuthProvider>`.
|
|
5
|
+
*
|
|
6
|
+
* Throws if used outside of a provider — this is intentional. We don't
|
|
7
|
+
* want auth code to silently no-op when the provider is missing, which
|
|
8
|
+
* is a real source of bugs (e.g. a deeply nested page that forgets to
|
|
9
|
+
* mount the auth context).
|
|
10
|
+
*
|
|
11
|
+
* The error message is deliberately short and includes the provider name
|
|
12
|
+
* so the dev can grep for it.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const { user, isAuthenticated, hasAbility, login, logout } = useMkAuth();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function useMkAuth() {
|
|
20
|
+
const ctx = useContext(MkAuthContext);
|
|
21
|
+
if (!ctx) {
|
|
22
|
+
throw new Error('MkAuthProvider missing');
|
|
23
|
+
}
|
|
24
|
+
return ctx;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useMkAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMkAuth.js","sourceRoot":"","sources":["../../src/auth/useMkAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,SAAS;IACrB,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @module FormField
|
|
4
|
+
* @description Form-level wrapper around MkInput that adds label, error state,
|
|
5
|
+
* helper text, and standard validation messages. Maps to a single input field
|
|
6
|
+
* used in forms (text, email, password, etc.).
|
|
7
|
+
*/
|
|
8
|
+
export type FormFieldType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
|
|
9
|
+
export interface FormFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange'> {
|
|
10
|
+
/** Form field semantic type — maps to the underlying <input type="..."> */
|
|
11
|
+
type?: FormFieldType;
|
|
12
|
+
/** Field label displayed above the input */
|
|
13
|
+
label?: string;
|
|
14
|
+
/** Error message (renders error state and replaces helper text) */
|
|
15
|
+
error?: string;
|
|
16
|
+
/** Helper text shown below the input when no error is present */
|
|
17
|
+
helperText?: string;
|
|
18
|
+
/** Mark the field as required (adds visual indicator to label) */
|
|
19
|
+
required?: boolean;
|
|
20
|
+
/** Placeholder text */
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
/** Disable interaction */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
onChange?: (value: string) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare const FormField: React.FC<FormFieldProps>;
|
|
27
|
+
//# sourceMappingURL=FormField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../src/components/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;GAKG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAErF,MAAM,WAAW,cACb,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9E,2EAA2E;IAC3E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyB9C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { MkInput } from './MkInput';
|
|
14
|
+
export const FormField = (_a) => {
|
|
15
|
+
var { type = 'text', label, error, helperText, required, placeholder, disabled, onChange } = _a, props = __rest(_a, ["type", "label", "error", "helperText", "required", "placeholder", "disabled", "onChange"]);
|
|
16
|
+
return (_jsx("div", { style: { display: 'flex', flexDirection: 'column', minWidth: 280 }, children: _jsx(MkInput, Object.assign({ type: type, label: label ? `${label}${required ? ' *' : ''}` : undefined, error: error, helperText: helperText, placeholder: placeholder, disabled: disabled, onChange: onChange }, props)) }));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=FormField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.js","sourceRoot":"","sources":["../../src/components/FormField.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAUnD,EAAE,EAAE;QAV+C,EAChD,IAAI,GAAG,MAAM,EACb,KAAK,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,OAEX,EADM,KAAK,cATwC,2FAUnD,CADW;IAER,OAAO,CACH,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,YACnE,KAAC,OAAO,kBACJ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAC5D,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IACd,KAAK,EACX,GACA,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { FormField } from './FormField';
|
|
3
|
+
declare const meta: Meta<typeof FormField>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof FormField>;
|
|
6
|
+
export declare const Text: Story;
|
|
7
|
+
export declare const Email: Story;
|
|
8
|
+
export declare const Password: Story;
|
|
9
|
+
export declare const WithError: Story;
|
|
10
|
+
export declare const Disabled: Story;
|
|
11
|
+
//# sourceMappingURL=FormField.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.stories.d.ts","sourceRoot":"","sources":["../../src/components/FormField.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAehC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,KAOlB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { FormField } from './FormField';
|
|
2
|
+
const meta = {
|
|
3
|
+
title: 'Forms/FormField',
|
|
4
|
+
component: FormField,
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: 'centered',
|
|
7
|
+
},
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
type: {
|
|
11
|
+
control: { type: 'select' },
|
|
12
|
+
options: ['text', 'email', 'password', 'number', 'tel', 'url'],
|
|
13
|
+
},
|
|
14
|
+
disabled: { control: 'boolean' },
|
|
15
|
+
required: { control: 'boolean' },
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export default meta;
|
|
19
|
+
export const Text = {
|
|
20
|
+
args: {
|
|
21
|
+
type: 'text',
|
|
22
|
+
label: 'Full Name',
|
|
23
|
+
placeholder: 'Enter your full name',
|
|
24
|
+
helperText: 'As it appears on your ID',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
export const Email = {
|
|
28
|
+
args: {
|
|
29
|
+
type: 'email',
|
|
30
|
+
label: 'Email Address',
|
|
31
|
+
placeholder: 'you@example.com',
|
|
32
|
+
helperText: 'We will never share your email',
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
export const Password = {
|
|
37
|
+
args: {
|
|
38
|
+
type: 'password',
|
|
39
|
+
label: 'Password',
|
|
40
|
+
placeholder: '••••••••',
|
|
41
|
+
helperText: 'Minimum 8 characters',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
export const WithError = {
|
|
45
|
+
args: {
|
|
46
|
+
type: 'email',
|
|
47
|
+
label: 'Email Address',
|
|
48
|
+
value: 'not-an-email',
|
|
49
|
+
error: 'Please enter a valid email address',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export const Disabled = {
|
|
53
|
+
args: {
|
|
54
|
+
type: 'text',
|
|
55
|
+
label: 'Username',
|
|
56
|
+
value: 'locked-user',
|
|
57
|
+
disabled: true,
|
|
58
|
+
helperText: 'Contact admin to change',
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=FormField.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.stories.js","sourceRoot":"","sources":["../../src/components/FormField.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,IAAI,GAA2B;IACjC,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE;QACR,MAAM,EAAE,UAAU;KACrB;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACN,IAAI,EAAE;YACF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;SACjE;QACD,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;QAChC,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KACnC;CACJ,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,IAAI,GAAU;IACvB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,sBAAsB;QACnC,UAAU,EAAE,0BAA0B;KACzC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU;IACxB,IAAI,EAAE;QACF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,gCAAgC;QAC5C,QAAQ,EAAE,IAAI;KACjB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE;QACF,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,sBAAsB;KACrC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAU;IAC5B,IAAI,EAAE;QACF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,oCAAoC;KAC9C;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,yBAAyB;KACxC;CACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @module MkAccordion
|
|
4
|
+
* @description Collapsible accordion sections. Supports single or multiple open items.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <MkAccordion
|
|
9
|
+
* items={[
|
|
10
|
+
* { key: 'faq1', title: '¿Cómo funciona?', content: <p>Explicación aquí...</p> },
|
|
11
|
+
* { key: 'faq2', title: 'Precios', content: <p>Gratis para siempre</p> },
|
|
12
|
+
* ]}
|
|
13
|
+
* multiple
|
|
14
|
+
* />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export interface MkAccordionItem {
|
|
18
|
+
key: string;
|
|
19
|
+
title: string | React.ReactNode;
|
|
20
|
+
content: React.ReactNode;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface MkAccordionProps {
|
|
24
|
+
items: MkAccordionItem[];
|
|
25
|
+
/** Allow multiple items open at once. Default false. */
|
|
26
|
+
multiple?: boolean;
|
|
27
|
+
/** Initially expanded keys. */
|
|
28
|
+
defaultExpanded?: string[];
|
|
29
|
+
/** Controlled expanded keys. */
|
|
30
|
+
expanded?: string[];
|
|
31
|
+
onChange?: (expandedKeys: string[]) => void;
|
|
32
|
+
variant?: 'default' | 'bordered' | 'separated';
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const MkAccordion: React.FC<MkAccordionProps>;
|
|
36
|
+
//# sourceMappingURL=MkAccordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.d.ts","sourceRoot":"","sources":["../../src/components/MkAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqDlD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback } from 'react';
|
|
3
|
+
import styles from './MkAccordion.module.css';
|
|
4
|
+
export const MkAccordion = ({ items = [], multiple = false, defaultExpanded = [], expanded: controlledExpanded, onChange, variant = 'default', className, }) => {
|
|
5
|
+
const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
|
|
6
|
+
const expandedKeys = controlledExpanded !== null && controlledExpanded !== void 0 ? controlledExpanded : internalExpanded;
|
|
7
|
+
const toggleItem = useCallback((key) => {
|
|
8
|
+
let next;
|
|
9
|
+
if (expandedKeys.includes(key)) {
|
|
10
|
+
next = expandedKeys.filter((k) => k !== key);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
next = multiple ? [...expandedKeys, key] : [key];
|
|
14
|
+
}
|
|
15
|
+
setInternalExpanded(next);
|
|
16
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(next);
|
|
17
|
+
}, [expandedKeys, multiple, onChange]);
|
|
18
|
+
return (_jsx("div", { className: `${styles.accordion} ${styles[variant]} ${className || ''}`, children: items.map((item) => {
|
|
19
|
+
const isOpen = expandedKeys.includes(item.key);
|
|
20
|
+
return (_jsxs("div", { className: `${styles.item} ${isOpen ? styles.open : ''}`, children: [_jsxs("button", { className: styles.header, onClick: () => !item.disabled && toggleItem(item.key), disabled: item.disabled, "aria-expanded": isOpen, children: [_jsx("span", { className: styles.title, children: item.title }), _jsx("span", { className: `${styles.chevron} ${isOpen ? styles.chevronOpen : ''}`, children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: _jsx("polyline", { points: "4 6 8 10 12 6" }) }) })] }), _jsx("div", { className: `${styles.body} ${isOpen ? styles.bodyOpen : ''}`, children: _jsx("div", { className: styles.content, children: item.content }) })] }, item.key));
|
|
21
|
+
}) }));
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=MkAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.js","sourceRoot":"","sources":["../../src/components/MkAccordion.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAsC9C,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACpD,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,KAAK,EAChB,eAAe,GAAG,EAAE,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,SAAS,GACZ,EAAE,EAAE;IACD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAW,eAAe,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,gBAAgB,CAAC;IAE5D,MAAM,UAAU,GAAG,WAAW,CAC1B,CAAC,GAAW,EAAE,EAAE;QACZ,IAAI,IAAc,CAAC;QACnB,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACrC,CAAC;IAEF,OAAO,CACH,cAAK,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,YACtE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,CACH,eAAoB,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,aACxE,kBACI,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ,mBACR,MAAM,aAErB,eAAM,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,IAAI,CAAC,KAAK,GAAQ,EAClD,eAAM,SAAS,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,YACpE,cAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,YACnH,mBAAU,MAAM,EAAC,eAAe,GAAG,GACjC,GACH,IACF,EACT,cAAK,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,YAC7D,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,YAAG,IAAI,CAAC,OAAO,GAAO,GAClD,KAhBA,IAAI,CAAC,GAAG,CAiBZ,CACT,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { MkAccordion } from './MkAccordion';
|
|
3
|
+
declare const meta: Meta<typeof MkAccordion>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof MkAccordion>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Multiple: Story;
|
|
8
|
+
export declare const WithDefaultExpanded: Story;
|
|
9
|
+
export declare const Bordered: Story;
|
|
10
|
+
export declare const Separated: Story;
|
|
11
|
+
export declare const WithDisabledItem: Story;
|
|
12
|
+
export declare const RichContent: Story;
|
|
13
|
+
//# sourceMappingURL=MkAccordion.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.stories.d.ts","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CASlC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAyB1C,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAEjC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAyBzB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { MkAccordion } from './MkAccordion';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/MkAccordion',
|
|
5
|
+
component: MkAccordion,
|
|
6
|
+
parameters: { layout: 'padded' },
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
multiple: { control: 'boolean' },
|
|
10
|
+
variant: { control: { type: 'select' }, options: ['default', 'bordered', 'separated'] },
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
export default meta;
|
|
14
|
+
const FAQ_ITEMS = [
|
|
15
|
+
{
|
|
16
|
+
key: 'what',
|
|
17
|
+
title: '¿Qué es mk-director?',
|
|
18
|
+
content: _jsx("p", { children: "Es un framework full-stack para construir aplicaciones modulares con React y Laravel." }),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
key: 'how',
|
|
22
|
+
title: '¿Cómo funciona?',
|
|
23
|
+
content: _jsx("p", { children: "Cada m\u00F3dulo expone una API p\u00FAblica (Api/*). La comunicaci\u00F3n inter-m\u00F3dulo pasa solo por ah\u00ED." }),
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
key: 'price',
|
|
27
|
+
title: '¿Cuánto cuesta?',
|
|
28
|
+
content: _jsx("p", { children: "Es open source bajo licencia MIT. Gratis para siempre." }),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: 'support',
|
|
32
|
+
title: '¿Tienen soporte?',
|
|
33
|
+
content: _jsx("p", { children: "Soporte comunitario en GitHub Discussions. Para soporte empresarial, contactanos." }),
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
export const Default = {
|
|
37
|
+
args: { items: FAQ_ITEMS },
|
|
38
|
+
};
|
|
39
|
+
export const Multiple = {
|
|
40
|
+
args: { items: FAQ_ITEMS, multiple: true },
|
|
41
|
+
};
|
|
42
|
+
export const WithDefaultExpanded = {
|
|
43
|
+
args: { items: FAQ_ITEMS, defaultExpanded: ['how', 'price'] },
|
|
44
|
+
};
|
|
45
|
+
export const Bordered = {
|
|
46
|
+
args: { items: FAQ_ITEMS, variant: 'bordered' },
|
|
47
|
+
};
|
|
48
|
+
export const Separated = {
|
|
49
|
+
args: { items: FAQ_ITEMS, variant: 'separated', multiple: true },
|
|
50
|
+
};
|
|
51
|
+
export const WithDisabledItem = {
|
|
52
|
+
args: {
|
|
53
|
+
items: [
|
|
54
|
+
{ key: 'a', title: 'Active item', content: _jsx("p", { children: "This one is clickable." }) },
|
|
55
|
+
{ key: 'b', title: 'Disabled item', content: _jsx("p", { children: "This one is locked." }), disabled: true },
|
|
56
|
+
{ key: 'c', title: 'Another active item', content: _jsx("p", { children: "Clickable too." }) },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
export const RichContent = {
|
|
61
|
+
args: {
|
|
62
|
+
items: [
|
|
63
|
+
{
|
|
64
|
+
key: 'features',
|
|
65
|
+
title: 'Features',
|
|
66
|
+
content: (_jsxs("ul", { children: [_jsx("li", { children: "Multi-tenant opt-in" }), _jsx("li", { children: "Storybook stories" }), _jsx("li", { children: "Module boundaries" })] })),
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
key: 'code',
|
|
70
|
+
title: 'Example code',
|
|
71
|
+
content: (_jsx("pre", { style: { background: '#f3f4f6', padding: 12, borderRadius: 4 }, children: _jsx("code", { children: `const greeting = 'Hello, mk-director!';` }) })),
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=MkAccordion.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.stories.js","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,IAAI,GAA6B;IACnC,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACN,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;QAChC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE;KAC1F;CACJ,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,SAAS,GAAG;IACd;QACI,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,gHAA4F;KACxG;IACD;QACI,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,+IAAkG;KAC9G;IACD;QACI,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,iFAA6D;KACzE;IACD;QACI,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,4GAAwF;KACpG;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAU;IACtC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAU;IAC5B,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;CACnE,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAU;IACnC,IAAI,EAAE;QACF,KAAK,EAAE;YACH,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,iDAA6B,EAAE;YAC1E,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzF,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,yCAAqB,EAAE;SAC7E;KACJ;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,IAAI,EAAE;QACF,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,CACL,yBACI,+CAA4B,EAC5B,6CAA0B,EAC1B,6CAA0B,IACzB,CACR;aACJ;YACD;gBACI,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,CACL,cAAK,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAC/D,yBAAO,yCAAyC,GAAQ,GACtD,CACT;aACJ;SACJ;KACJ;CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkAccordion — required by R-MK-002.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
6
|
+
import { render, cleanup } from '@testing-library/react';
|
|
7
|
+
import { MkAccordion } from './MkAccordion';
|
|
8
|
+
describe('MkAccordion story smoke', () => {
|
|
9
|
+
afterEach(cleanup);
|
|
10
|
+
it('renders with items', () => {
|
|
11
|
+
const { container } = render(_jsx(MkAccordion, { items: [
|
|
12
|
+
{ key: 'a', title: 'First', content: _jsx("p", { children: "First content" }) },
|
|
13
|
+
{ key: 'b', title: 'Second', content: _jsx("p", { children: "Second content" }) },
|
|
14
|
+
] }));
|
|
15
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=MkAccordion.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,WAAW,IACR,KAAK,EAAE;gBACH,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,wCAAoB,EAAE;gBAC3D,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yCAAqB,EAAE;aAChE,GACH,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @module MkAlert
|
|
4
|
+
* @description Inline alert banner for validation messages, warnings, and info.
|
|
5
|
+
* Not a toast — renders inline in the document flow.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <MkAlert variant="warning" title="Atención">
|
|
10
|
+
* Esta acción no se puede deshacer.
|
|
11
|
+
* </MkAlert>
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export interface MkAlertProps {
|
|
15
|
+
variant?: 'info' | 'success' | 'warning' | 'error' | 'default';
|
|
16
|
+
title?: string;
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
icon?: React.ReactNode;
|
|
19
|
+
dismissible?: boolean;
|
|
20
|
+
onDismiss?: () => void;
|
|
21
|
+
action?: React.ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const MkAlert: React.FC<MkAlertProps>;
|
|
25
|
+
//# sourceMappingURL=MkAlert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.d.ts","sourceRoot":"","sources":["../../src/components/MkAlert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAUD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAgC1C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styles from './MkAlert.module.css';
|
|
4
|
+
const DEFAULT_ICONS = {
|
|
5
|
+
info: 'ℹ️',
|
|
6
|
+
success: '✅',
|
|
7
|
+
warning: '⚠️',
|
|
8
|
+
error: '❌',
|
|
9
|
+
default: '🔔',
|
|
10
|
+
};
|
|
11
|
+
export const MkAlert = ({ variant = 'default', title, children, icon, dismissible = false, onDismiss, action, className, }) => {
|
|
12
|
+
const [dismissed, setDismissed] = React.useState(false);
|
|
13
|
+
const handleDismiss = () => {
|
|
14
|
+
setDismissed(true);
|
|
15
|
+
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
16
|
+
};
|
|
17
|
+
if (dismissed)
|
|
18
|
+
return null;
|
|
19
|
+
return (_jsxs("div", { className: `${styles.alert} ${styles[variant]} ${className || ''}`, role: "alert", children: [_jsx("span", { className: styles.icon, children: icon || DEFAULT_ICONS[variant] }), _jsxs("div", { className: styles.body, children: [title && _jsx("strong", { className: styles.title, children: title }), children && _jsx("p", { className: styles.content, children: children }), action && _jsx("div", { className: styles.action, children: action })] }), dismissible && (_jsx("button", { className: styles.dismiss, onClick: handleDismiss, "aria-label": "Cerrar", children: "\u2715" }))] }));
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=MkAlert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.js","sourceRoot":"","sources":["../../src/components/MkAlert.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,sBAAsB,CAAC;AA0B1C,MAAM,aAAa,GAA2B;IAC1C,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAC5C,OAAO,GAAG,SAAS,EACnB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,MAAM,EACN,SAAS,GACZ,EAAE,EAAE;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,SAAS,aAAT,SAAS,uBAAT,SAAS,EAAI,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAE3B,OAAO,CACH,eAAK,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,OAAO,aACjF,eAAM,SAAS,EAAE,MAAM,CAAC,IAAI,YAAG,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,GAAQ,EACrE,eAAK,SAAS,EAAE,MAAM,CAAC,IAAI,aACtB,KAAK,IAAI,iBAAQ,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,GAAU,EAC1D,QAAQ,IAAI,YAAG,SAAS,EAAE,MAAM,CAAC,OAAO,YAAG,QAAQ,GAAK,EACxD,MAAM,IAAI,cAAK,SAAS,EAAE,MAAM,CAAC,MAAM,YAAG,MAAM,GAAO,IACtD,EACL,WAAW,IAAI,CACZ,iBAAQ,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,gBAAa,QAAQ,uBAAW,CAC5F,IACC,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { MkAlert } from './MkAlert';
|
|
3
|
+
declare const meta: Meta<typeof MkAlert>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof MkAlert>;
|
|
6
|
+
export declare const Info: Story;
|
|
7
|
+
export declare const Success: Story;
|
|
8
|
+
export declare const Warning: Story;
|
|
9
|
+
export declare const Error: Story;
|
|
10
|
+
export declare const DefaultVariant: Story;
|
|
11
|
+
export declare const Dismissible: Story;
|
|
12
|
+
export declare const WithAction: Story;
|
|
13
|
+
//# sourceMappingURL=MkAlert.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.stories.d.ts","sourceRoot":"","sources":["../../src/components/MkAlert.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAe9B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;AAEtC,eAAO,MAAM,IAAI,EAAE,KAMlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAI5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { MkAlert } from './MkAlert';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/MkAlert',
|
|
5
|
+
component: MkAlert,
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: 'padded',
|
|
8
|
+
},
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
variant: {
|
|
12
|
+
control: { type: 'select' },
|
|
13
|
+
options: ['default', 'info', 'success', 'warning', 'error'],
|
|
14
|
+
},
|
|
15
|
+
title: { control: 'text' },
|
|
16
|
+
dismissible: { control: 'boolean' },
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
export default meta;
|
|
20
|
+
export const Info = {
|
|
21
|
+
args: {
|
|
22
|
+
variant: 'info',
|
|
23
|
+
title: 'Heads up',
|
|
24
|
+
children: 'There is a new version of the app available.',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
export const Success = {
|
|
28
|
+
args: {
|
|
29
|
+
variant: 'success',
|
|
30
|
+
title: 'Saved',
|
|
31
|
+
children: 'Your changes have been saved successfully.',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
export const Warning = {
|
|
35
|
+
args: {
|
|
36
|
+
variant: 'warning',
|
|
37
|
+
title: 'Atención',
|
|
38
|
+
children: 'Esta acción no se puede deshacer.',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
export const Error = {
|
|
42
|
+
args: {
|
|
43
|
+
variant: 'error',
|
|
44
|
+
title: 'Error',
|
|
45
|
+
children: 'No se pudo conectar al servidor. Intenta de nuevo.',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
export const DefaultVariant = {
|
|
49
|
+
args: {
|
|
50
|
+
children: 'A simple inline message with no title or icon.',
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
export const Dismissible = {
|
|
54
|
+
args: {
|
|
55
|
+
variant: 'info',
|
|
56
|
+
title: 'Dismissible',
|
|
57
|
+
children: 'Click the X to close this alert.',
|
|
58
|
+
dismissible: true,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
export const WithAction = {
|
|
62
|
+
args: {
|
|
63
|
+
variant: 'warning',
|
|
64
|
+
title: 'Update required',
|
|
65
|
+
children: 'Your trial ends in 3 days.',
|
|
66
|
+
action: (_jsx("button", { style: {
|
|
67
|
+
background: 'transparent',
|
|
68
|
+
border: '1px solid currentColor',
|
|
69
|
+
padding: '4px 12px',
|
|
70
|
+
borderRadius: 4,
|
|
71
|
+
cursor: 'pointer',
|
|
72
|
+
}, children: "Upgrade now" })),
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=MkAlert.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.stories.js","sourceRoot":"","sources":["../../src/components/MkAlert.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,IAAI,GAAyB;IAC/B,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE;QACR,MAAM,EAAE,QAAQ;KACnB;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACN,OAAO,EAAE;YACL,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;SAC9D;QACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC1B,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KACtC;CACJ,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,IAAI,GAAU;IACvB,IAAI,EAAE;QACF,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,8CAA8C;KAC3D;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,4CAA4C;KACzD;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,mCAAmC;KAChD;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU;IACxB,IAAI,EAAE;QACF,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,oDAAoD;KACjE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACjC,IAAI,EAAE;QACF,QAAQ,EAAE,gDAAgD;KAC7D;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,IAAI,EAAE;QACF,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,kCAAkC;QAC5C,WAAW,EAAE,IAAI;KACpB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAU;IAC7B,IAAI,EAAE;QACF,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,CACJ,iBACI,KAAK,EAAE;gBACH,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE,wBAAwB;gBAChC,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,CAAC;gBACf,MAAM,EAAE,SAAS;aACpB,4BAGI,CACZ;KACJ;CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAlert.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkAlert — generates `__snapshots__/MkAlert.stories.snap`.
|
|
4
|
+
* Required by R-MK-002 stories coverage rule (mk:lint:stories).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
7
|
+
import { render, cleanup } from '@testing-library/react';
|
|
8
|
+
import { MkAlert } from './MkAlert';
|
|
9
|
+
describe('MkAlert story smoke', () => {
|
|
10
|
+
afterEach(cleanup);
|
|
11
|
+
it('renders warning variant', () => {
|
|
12
|
+
const { container } = render(_jsx(MkAlert, { variant: "warning", title: "Atenci\u00F3n", children: "Esta acci\u00F3n no se puede deshacer." }));
|
|
13
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=MkAlert.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAlert.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,OAAO,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,eAAU,uDAEjC,CACb,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @module MkAvatar
|
|
4
|
+
* @description Avatar with image, initials fallback, and status indicator.
|
|
5
|
+
* Same prop API as mk-mobile MkAvatar.
|
|
6
|
+
*/
|
|
7
|
+
export interface MkAvatarProps {
|
|
8
|
+
src?: string | null;
|
|
9
|
+
name?: string;
|
|
10
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
11
|
+
status?: 'online' | 'offline' | 'away' | 'busy' | null;
|
|
12
|
+
className?: string;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const MkAvatar: React.FC<MkAvatarProps>;
|
|
16
|
+
//# sourceMappingURL=MkAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAvatar.d.ts","sourceRoot":"","sources":["../../src/components/MkAvatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAOD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAiC5C,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import styles from './MkAvatar.module.css';
|
|
4
|
+
const SIZES = { xs: 24, sm: 32, md: 40, lg: 56, xl: 80 };
|
|
5
|
+
// Darker colors for better contrast with --mk-foreground text
|
|
6
|
+
const COLORS = ['#4f46e5', '#be185d', '#c2410c', '#0d9488', '#7c3aed', '#0891b2', '#dc2626', '#65a30d'];
|
|
7
|
+
export const MkAvatar = ({ src, name = '', size = 'md', status, className, onClick }) => {
|
|
8
|
+
const initials = useMemo(() => {
|
|
9
|
+
var _a, _b, _c, _d;
|
|
10
|
+
const parts = name.trim().split(/\s+/);
|
|
11
|
+
return (((_b = (_a = parts[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : '') + ((_d = (_c = parts[1]) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : '')).toUpperCase();
|
|
12
|
+
}, [name]);
|
|
13
|
+
const bgColor = useMemo(() => {
|
|
14
|
+
let hash = 0;
|
|
15
|
+
for (let i = 0; i < name.length; i++)
|
|
16
|
+
hash = name.charCodeAt(i) + ((hash << 5) - hash);
|
|
17
|
+
return COLORS[Math.abs(hash) % COLORS.length];
|
|
18
|
+
}, [name]);
|
|
19
|
+
const px = SIZES[size];
|
|
20
|
+
const fontSize = px * 0.4;
|
|
21
|
+
return (_jsxs("div", { className: `${styles.avatar} ${className || ''}`, style: { width: px, height: px, fontSize, cursor: onClick ? 'pointer' : undefined }, onClick: onClick, role: onClick ? 'button' : undefined, tabIndex: onClick ? 0 : undefined, children: [src ? (_jsx("img", { src: src, alt: name, className: styles.image, loading: "lazy" })) : (_jsx("div", { className: styles.initials, style: { backgroundColor: bgColor }, children: initials })), status && _jsx("span", { className: `${styles.status} ${styles[status]}` })] }));
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=MkAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAvatar.js","sourceRoot":"","sources":["../../src/components/MkAvatar.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAiB3C,MAAM,KAAK,GAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEjF,8DAA8D;AAC9D,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAExG,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7G,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC,GAAG,CAAC,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,CAAC;IAE1B,OAAO,CACH,eACI,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI,EAAE,EAAE,EAChD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,EACnF,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACpC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,aAEhC,GAAG,CAAC,CAAC,CAAC,CACH,cAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAC,MAAM,GAAG,CACvE,CAAC,CAAC,CAAC,CACA,cAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,YAC/D,QAAQ,GACP,CACT,EACA,MAAM,IAAI,eAAM,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,GAAI,IAClE,CACT,CAAC;AACN,CAAC,CAAC"}
|