@ahrowe/ui 0.4.0 → 0.4.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/esm/common/accordion/accordion.mjs +2 -0
- package/dist/esm/common/accordion/accordion.mjs.map +1 -0
- package/dist/esm/common/accordion/accordion.module.mjs +2 -0
- package/dist/esm/common/accordion/accordion.module.mjs.map +1 -0
- package/dist/esm/common/accordion/accordion.plain.module.mjs +2 -0
- package/dist/esm/common/accordion/accordion.plain.module.mjs.map +1 -0
- package/dist/esm/common/accordion/accordion.primary.module.mjs +2 -0
- package/dist/esm/common/accordion/accordion.primary.module.mjs.map +1 -0
- package/dist/esm/common/accordion/accordion.types.mjs +2 -0
- package/dist/esm/common/accordion/accordion.types.mjs.map +1 -0
- package/dist/esm/common/actionButtons/actionButtons.mjs +2 -0
- package/dist/esm/common/actionButtons/actionButtons.mjs.map +1 -0
- package/dist/esm/common/actionButtons/actionButtons.module.mjs +2 -0
- package/dist/esm/common/actionButtons/actionButtons.module.mjs.map +1 -0
- package/dist/esm/common/actionIcon/actionIcon.mjs +2 -0
- package/dist/esm/common/actionIcon/actionIcon.mjs.map +1 -0
- package/dist/esm/common/actionIcon/actionIcon.module.mjs +2 -0
- package/dist/esm/common/actionIcon/actionIcon.module.mjs.map +1 -0
- package/dist/esm/common/avatar/avatar.mjs +2 -0
- package/dist/esm/common/avatar/avatar.mjs.map +1 -0
- package/dist/esm/common/avatar/avatar.module.mjs +2 -0
- package/dist/esm/common/avatar/avatar.module.mjs.map +1 -0
- package/dist/esm/common/avatar/avatarGroup.mjs +2 -0
- package/dist/esm/common/avatar/avatarGroup.mjs.map +1 -0
- package/dist/esm/common/badge/badge.mjs +2 -0
- package/dist/esm/common/badge/badge.mjs.map +1 -0
- package/dist/esm/common/badge/badge.module.mjs +2 -0
- package/dist/esm/common/badge/badge.module.mjs.map +1 -0
- package/dist/esm/common/badge/badge.types.mjs +2 -0
- package/dist/esm/common/badge/badge.types.mjs.map +1 -0
- package/dist/esm/common/bodyEnd/bodyEnd.mjs +2 -0
- package/dist/esm/common/bodyEnd/bodyEnd.mjs.map +1 -0
- package/dist/esm/common/button/button.mjs +2 -0
- package/dist/esm/common/button/button.mjs.map +1 -0
- package/dist/esm/common/button/button.module.mjs +2 -0
- package/dist/esm/common/button/button.module.mjs.map +1 -0
- package/dist/esm/common/button/button.types.mjs +2 -0
- package/dist/esm/common/button/button.types.mjs.map +1 -0
- package/dist/esm/common/card/Card.mjs +2 -0
- package/dist/esm/common/card/Card.mjs.map +1 -0
- package/dist/esm/common/card/CardActions.mjs +2 -0
- package/dist/esm/common/card/CardActions.mjs.map +1 -0
- package/dist/esm/common/card/CardContent.mjs +2 -0
- package/dist/esm/common/card/CardContent.mjs.map +1 -0
- package/dist/esm/common/card/CardHeader.mjs +2 -0
- package/dist/esm/common/card/CardHeader.mjs.map +1 -0
- package/dist/esm/common/card/CardMedia.mjs +2 -0
- package/dist/esm/common/card/CardMedia.mjs.map +1 -0
- package/dist/esm/common/card/card.module.mjs +2 -0
- package/dist/esm/common/card/card.module.mjs.map +1 -0
- package/dist/esm/common/card/card.types.mjs +2 -0
- package/dist/esm/common/card/card.types.mjs.map +1 -0
- package/dist/esm/common/checkbox/checkbox.mjs +2 -0
- package/dist/esm/common/checkbox/checkbox.mjs.map +1 -0
- package/dist/esm/common/checkbox/checkbox.module.mjs +2 -0
- package/dist/esm/common/checkbox/checkbox.module.mjs.map +1 -0
- package/dist/esm/common/chip/chip.mjs +2 -0
- package/dist/esm/common/chip/chip.mjs.map +1 -0
- package/dist/esm/common/chip/chip.module.mjs +2 -0
- package/dist/esm/common/chip/chip.module.mjs.map +1 -0
- package/dist/esm/common/chip/chip.types.mjs +2 -0
- package/dist/esm/common/chip/chip.types.mjs.map +1 -0
- package/dist/esm/common/chip/chipContainer.mjs +2 -0
- package/dist/esm/common/chip/chipContainer.mjs.map +1 -0
- package/dist/esm/common/colorPicker/colorPicker.mjs +2 -0
- package/dist/esm/common/colorPicker/colorPicker.mjs.map +1 -0
- package/dist/esm/common/colorPicker/colorPicker.module.mjs +2 -0
- package/dist/esm/common/colorPicker/colorPicker.module.mjs.map +1 -0
- package/dist/esm/common/confirmModal/confirmModal.mjs +2 -0
- package/dist/esm/common/confirmModal/confirmModal.mjs.map +1 -0
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.mjs +2 -0
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.mjs.map +1 -0
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.module.mjs +2 -0
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.module.mjs.map +1 -0
- package/dist/esm/common/datePicker/dateFunctions.mjs +2 -0
- package/dist/esm/common/datePicker/dateFunctions.mjs.map +1 -0
- package/dist/esm/common/datePicker/datePicker.mjs +2 -0
- package/dist/esm/common/datePicker/datePicker.mjs.map +1 -0
- package/dist/esm/common/datePicker/datePicker.module.mjs +2 -0
- package/dist/esm/common/datePicker/datePicker.module.mjs.map +1 -0
- package/dist/esm/common/drawer/drawer.mjs +2 -0
- package/dist/esm/common/drawer/drawer.mjs.map +1 -0
- package/dist/esm/common/drawer/drawer.module.mjs +2 -0
- package/dist/esm/common/drawer/drawer.module.mjs.map +1 -0
- package/dist/esm/common/dropZone/dropZone.mjs +2 -0
- package/dist/esm/common/dropZone/dropZone.mjs.map +1 -0
- package/dist/esm/common/dropZone/dropZone.module.mjs +2 -0
- package/dist/esm/common/dropZone/dropZone.module.mjs.map +1 -0
- package/dist/esm/common/dropZone/dropZone.types.mjs +2 -0
- package/dist/esm/common/dropZone/dropZone.types.mjs.map +1 -0
- package/dist/esm/common/dropdown/dropdown.mjs +2 -0
- package/dist/esm/common/dropdown/dropdown.mjs.map +1 -0
- package/dist/esm/common/dropdown/dropdown.module.mjs +2 -0
- package/dist/esm/common/dropdown/dropdown.module.mjs.map +1 -0
- package/dist/esm/common/emptyState/emptyState.mjs +2 -0
- package/dist/esm/common/emptyState/emptyState.mjs.map +1 -0
- package/dist/esm/common/emptyState/emptyState.module.mjs +2 -0
- package/dist/esm/common/emptyState/emptyState.module.mjs.map +1 -0
- package/dist/esm/common/fab/components/fabBase/fabBase.mjs +2 -0
- package/dist/esm/common/fab/components/fabBase/fabBase.mjs.map +1 -0
- package/dist/esm/common/fab/components/fabBase/fabBase.module.mjs +2 -0
- package/dist/esm/common/fab/components/fabBase/fabBase.module.mjs.map +1 -0
- package/dist/esm/common/fab/fab.mjs +2 -0
- package/dist/esm/common/fab/fab.mjs.map +1 -0
- package/dist/esm/common/fab/fab.module.mjs +2 -0
- package/dist/esm/common/fab/fab.module.mjs.map +1 -0
- package/dist/esm/common/floatingMenu/floatingMenu.mjs +2 -0
- package/dist/esm/common/floatingMenu/floatingMenu.mjs.map +1 -0
- package/dist/esm/common/floatingMenu/floatingMenu.module.mjs +2 -0
- package/dist/esm/common/floatingMenu/floatingMenu.module.mjs.map +1 -0
- package/dist/esm/common/floatingMenu/floatingMenu.types.mjs +2 -0
- package/dist/esm/common/floatingMenu/floatingMenu.types.mjs.map +1 -0
- package/dist/esm/common/floatingMenu/useFloatingPosition.mjs +2 -0
- package/dist/esm/common/floatingMenu/useFloatingPosition.mjs.map +1 -0
- package/dist/esm/common/iconPicker/iconPicker.mjs +2 -0
- package/dist/esm/common/iconPicker/iconPicker.mjs.map +1 -0
- package/dist/esm/common/iconPicker/iconPicker.module.mjs +2 -0
- package/dist/esm/common/iconPicker/iconPicker.module.mjs.map +1 -0
- package/dist/esm/common/idleManager/idleManager.mjs +2 -0
- package/dist/esm/common/idleManager/idleManager.mjs.map +1 -0
- package/dist/esm/common/infiniteBlock/infiniteBlock.mjs +2 -0
- package/dist/esm/common/infiniteBlock/infiniteBlock.mjs.map +1 -0
- package/dist/esm/common/infiniteBlock/infiniteBlock.module.mjs +2 -0
- package/dist/esm/common/infiniteBlock/infiniteBlock.module.mjs.map +1 -0
- package/dist/esm/common/input/input.mjs +2 -0
- package/dist/esm/common/input/input.mjs.map +1 -0
- package/dist/esm/common/input/input.module.mjs +2 -0
- package/dist/esm/common/input/input.module.mjs.map +1 -0
- package/dist/esm/common/input/input.types.mjs +2 -0
- package/dist/esm/common/input/input.types.mjs.map +1 -0
- package/dist/esm/common/inputDropdown/inputDropdown.mjs +2 -0
- package/dist/esm/common/inputDropdown/inputDropdown.mjs.map +1 -0
- package/dist/esm/common/inputDropdown/inputDropdown.module.mjs +2 -0
- package/dist/esm/common/inputDropdown/inputDropdown.module.mjs.map +1 -0
- package/dist/esm/common/interactableDiv/index.mjs +2 -0
- package/dist/esm/common/interactableDiv/index.mjs.map +1 -0
- package/dist/esm/common/interactableDiv/interactableDiv.mjs +2 -0
- package/dist/esm/common/interactableDiv/interactableDiv.mjs.map +1 -0
- package/dist/esm/common/interactableDiv/interactableDiv.module.mjs +2 -0
- package/dist/esm/common/interactableDiv/interactableDiv.module.mjs.map +1 -0
- package/dist/esm/common/kanbanBoard/KanbanBoard.mjs +2 -0
- package/dist/esm/common/kanbanBoard/KanbanBoard.mjs.map +1 -0
- package/dist/esm/common/kanbanBoard/KanbanColumn.mjs +2 -0
- package/dist/esm/common/kanbanBoard/KanbanColumn.mjs.map +1 -0
- package/dist/esm/common/kanbanBoard/KanbanItem.mjs +2 -0
- package/dist/esm/common/kanbanBoard/KanbanItem.mjs.map +1 -0
- package/dist/esm/common/kanbanBoard/kanbanBoard.module.mjs +2 -0
- package/dist/esm/common/kanbanBoard/kanbanBoard.module.mjs.map +1 -0
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.mjs +2 -0
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.mjs.map +1 -0
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.module.mjs +2 -0
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.module.mjs.map +1 -0
- package/dist/esm/common/klipyPicker/components/gifView/gifView.mjs +2 -0
- package/dist/esm/common/klipyPicker/components/gifView/gifView.mjs.map +1 -0
- package/dist/esm/common/klipyPicker/components/gifView/gifView.module.mjs +2 -0
- package/dist/esm/common/klipyPicker/components/gifView/gifView.module.mjs.map +1 -0
- package/dist/esm/common/klipyPicker/klipyPicker.mjs +2 -0
- package/dist/esm/common/klipyPicker/klipyPicker.mjs.map +1 -0
- package/dist/esm/common/klipyPicker/klipyPicker.module.mjs +2 -0
- package/dist/esm/common/klipyPicker/klipyPicker.module.mjs.map +1 -0
- package/dist/esm/common/loading/iconLoading/iconLoading.mjs +2 -0
- package/dist/esm/common/loading/iconLoading/iconLoading.mjs.map +1 -0
- package/dist/esm/common/loading/iconLoading/iconLoading.module.mjs +2 -0
- package/dist/esm/common/loading/iconLoading/iconLoading.module.mjs.map +1 -0
- package/dist/esm/common/loading/iconLoading/index.mjs +2 -0
- package/dist/esm/common/loading/iconLoading/index.mjs.map +1 -0
- package/dist/esm/common/loading/spinnerLoading/index.mjs +2 -0
- package/dist/esm/common/loading/spinnerLoading/index.mjs.map +1 -0
- package/dist/esm/common/loading/spinnerLoading/spinnerLoading.mjs +2 -0
- package/dist/esm/common/loading/spinnerLoading/spinnerLoading.mjs.map +1 -0
- package/dist/esm/common/loading/spinnerLoading/spinnerLoading.module.mjs +2 -0
- package/dist/esm/common/loading/spinnerLoading/spinnerLoading.module.mjs.map +1 -0
- package/dist/esm/common/modal/modal.mjs +2 -0
- package/dist/esm/common/modal/modal.mjs.map +1 -0
- package/dist/esm/common/modal/modal.module.mjs +2 -0
- package/dist/esm/common/modal/modal.module.mjs.map +1 -0
- package/dist/esm/common/numberInput/index.mjs +2 -0
- package/dist/esm/common/numberInput/index.mjs.map +1 -0
- package/dist/esm/common/numberInput/numberInput.mjs +2 -0
- package/dist/esm/common/numberInput/numberInput.mjs.map +1 -0
- package/dist/esm/common/numberInput/numberInput.module.mjs +2 -0
- package/dist/esm/common/numberInput/numberInput.module.mjs.map +1 -0
- package/dist/esm/common/optionPicker/optionPicker.mjs +2 -0
- package/dist/esm/common/optionPicker/optionPicker.mjs.map +1 -0
- package/dist/esm/common/optionPicker/optionPicker.module.mjs +2 -0
- package/dist/esm/common/optionPicker/optionPicker.module.mjs.map +1 -0
- package/dist/esm/common/overscroll/overscroll.mjs +2 -0
- package/dist/esm/common/overscroll/overscroll.mjs.map +1 -0
- package/dist/esm/common/overscroll/overscroll.module.mjs +2 -0
- package/dist/esm/common/overscroll/overscroll.module.mjs.map +1 -0
- package/dist/esm/common/progressBar/progressBar.mjs +2 -0
- package/dist/esm/common/progressBar/progressBar.mjs.map +1 -0
- package/dist/esm/common/progressBar/progressBar.module.mjs +2 -0
- package/dist/esm/common/progressBar/progressBar.module.mjs.map +1 -0
- package/dist/esm/common/ripple/ripple.mjs +2 -0
- package/dist/esm/common/ripple/ripple.mjs.map +1 -0
- package/dist/esm/common/ripple/ripple.module.mjs +2 -0
- package/dist/esm/common/ripple/ripple.module.mjs.map +1 -0
- package/dist/esm/common/roomDrawer/roomDrawer.mjs +2 -0
- package/dist/esm/common/roomDrawer/roomDrawer.mjs.map +1 -0
- package/dist/esm/common/roomDrawer/roomDrawer.module.mjs +2 -0
- package/dist/esm/common/roomDrawer/roomDrawer.module.mjs.map +1 -0
- package/dist/esm/common/roomDrawer/roomDrawer.utils.mjs +6 -0
- package/dist/esm/common/roomDrawer/roomDrawer.utils.mjs.map +1 -0
- package/dist/esm/common/roomViewer/roomViewer.mjs +2 -0
- package/dist/esm/common/roomViewer/roomViewer.mjs.map +1 -0
- package/dist/esm/common/roomViewer/roomViewer.module.mjs +2 -0
- package/dist/esm/common/roomViewer/roomViewer.module.mjs.map +1 -0
- package/dist/esm/common/scrollbarProvider/index.mjs +2 -0
- package/dist/esm/common/scrollbarProvider/index.mjs.map +1 -0
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.mjs +2 -0
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.mjs.map +1 -0
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.module.mjs +2 -0
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.module.mjs.map +1 -0
- package/dist/esm/common/searchInput/searchInput.mjs +2 -0
- package/dist/esm/common/searchInput/searchInput.mjs.map +1 -0
- package/dist/esm/common/searchInput/searchInput.module.mjs +2 -0
- package/dist/esm/common/searchInput/searchInput.module.mjs.map +1 -0
- package/dist/esm/common/skeleton/skeleton.mjs +2 -0
- package/dist/esm/common/skeleton/skeleton.mjs.map +1 -0
- package/dist/esm/common/skeleton/skeleton.module.mjs +2 -0
- package/dist/esm/common/skeleton/skeleton.module.mjs.map +1 -0
- package/dist/esm/common/skeleton/skeleton.types.mjs +2 -0
- package/dist/esm/common/skeleton/skeleton.types.mjs.map +1 -0
- package/dist/esm/common/stepper/stepper.mjs +2 -0
- package/dist/esm/common/stepper/stepper.mjs.map +1 -0
- package/dist/esm/common/stepper/stepper.module.mjs +2 -0
- package/dist/esm/common/stepper/stepper.module.mjs.map +1 -0
- package/dist/esm/common/sticky/sticky.mjs +2 -0
- package/dist/esm/common/sticky/sticky.mjs.map +1 -0
- package/dist/esm/common/sticky/sticky.module.mjs +2 -0
- package/dist/esm/common/sticky/sticky.module.mjs.map +1 -0
- package/dist/esm/common/switch/switch.mjs +2 -0
- package/dist/esm/common/switch/switch.mjs.map +1 -0
- package/dist/esm/common/switch/switch.module.mjs +2 -0
- package/dist/esm/common/switch/switch.module.mjs.map +1 -0
- package/dist/esm/common/tabHeader/tabHeader.mjs +2 -0
- package/dist/esm/common/tabHeader/tabHeader.mjs.map +1 -0
- package/dist/esm/common/tabHeader/tabHeader.module.mjs +2 -0
- package/dist/esm/common/tabHeader/tabHeader.module.mjs.map +1 -0
- package/dist/esm/common/textarea/textarea.mjs +2 -0
- package/dist/esm/common/textarea/textarea.mjs.map +1 -0
- package/dist/esm/common/themeProvider/defaultTheme.mjs +2 -0
- package/dist/esm/common/themeProvider/defaultTheme.mjs.map +1 -0
- package/dist/esm/common/themeProvider/theme.module.mjs +2 -0
- package/dist/esm/common/themeProvider/theme.module.mjs.map +1 -0
- package/dist/esm/common/themeProvider/themeProvider.mjs +2 -0
- package/dist/esm/common/themeProvider/themeProvider.mjs.map +1 -0
- package/dist/esm/common/themeProvider/useTheme.mjs +2 -0
- package/dist/esm/common/themeProvider/useTheme.mjs.map +1 -0
- package/dist/esm/common/timeInput/components/clockDial/clockDial.mjs +2 -0
- package/dist/esm/common/timeInput/components/clockDial/clockDial.mjs.map +1 -0
- package/dist/esm/common/timeInput/components/clockDial/clockDial.module.mjs +2 -0
- package/dist/esm/common/timeInput/components/clockDial/clockDial.module.mjs.map +1 -0
- package/dist/esm/common/timeInput/timeFunctions.mjs +2 -0
- package/dist/esm/common/timeInput/timeFunctions.mjs.map +1 -0
- package/dist/esm/common/timeInput/timeInput.mjs +2 -0
- package/dist/esm/common/timeInput/timeInput.mjs.map +1 -0
- package/dist/esm/common/timeInput/timeInput.module.mjs +2 -0
- package/dist/esm/common/timeInput/timeInput.module.mjs.map +1 -0
- package/dist/esm/common/toast/toast.mjs +2 -0
- package/dist/esm/common/toast/toast.mjs.map +1 -0
- package/dist/esm/common/toast/toast.module.mjs +2 -0
- package/dist/esm/common/toast/toast.module.mjs.map +1 -0
- package/dist/esm/common/toast/toastProvider.mjs +2 -0
- package/dist/esm/common/toast/toastProvider.mjs.map +1 -0
- package/dist/esm/common/toast/toastService.mjs +2 -0
- package/dist/esm/common/toast/toastService.mjs.map +1 -0
- package/dist/esm/common/tooltip/tooltip.mjs +2 -0
- package/dist/esm/common/tooltip/tooltip.mjs.map +1 -0
- package/dist/esm/common/tooltip/tooltip.module.mjs +2 -0
- package/dist/esm/common/tooltip/tooltip.module.mjs.map +1 -0
- package/dist/esm/common/virtualList/useColumns.mjs +2 -0
- package/dist/esm/common/virtualList/useColumns.mjs.map +1 -0
- package/dist/esm/common/virtualList/useRowDrag.mjs +2 -0
- package/dist/esm/common/virtualList/useRowDrag.mjs.map +1 -0
- package/dist/esm/common/virtualList/useSelection.mjs +2 -0
- package/dist/esm/common/virtualList/useSelection.mjs.map +1 -0
- package/dist/esm/common/virtualList/useVirtualWindow.mjs +2 -0
- package/dist/esm/common/virtualList/useVirtualWindow.mjs.map +1 -0
- package/dist/esm/common/virtualList/virtualList.mjs +2 -0
- package/dist/esm/common/virtualList/virtualList.mjs.map +1 -0
- package/dist/esm/common/virtualList/virtualList.module.mjs +2 -0
- package/dist/esm/common/virtualList/virtualList.module.mjs.map +1 -0
- package/dist/esm/common/virtualList/virtualList.utils.mjs +2 -0
- package/dist/esm/common/virtualList/virtualList.utils.mjs.map +1 -0
- package/dist/esm/common/virtualList/virtualRow.mjs +2 -0
- package/dist/esm/common/virtualList/virtualRow.mjs.map +1 -0
- package/dist/esm/common/wizard/wizard.mjs +2 -0
- package/dist/esm/common/wizard/wizard.mjs.map +1 -0
- package/dist/esm/common/wizard/wizard.module.mjs +2 -0
- package/dist/esm/common/wizard/wizard.module.mjs.map +1 -0
- package/dist/esm/hooks/useWindowSize.mjs +2 -0
- package/dist/esm/hooks/useWindowSize.mjs.map +1 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/services/formValidation/FormValidatorGroupForm.mjs +2 -0
- package/dist/esm/services/formValidation/FormValidatorGroupForm.mjs.map +1 -0
- package/dist/esm/services/formValidation/FormValidatorGroupWithForm.mjs +2 -0
- package/dist/esm/services/formValidation/FormValidatorGroupWithForm.mjs.map +1 -0
- package/dist/esm/services/formValidation/formValidator.mjs +2 -0
- package/dist/esm/services/formValidation/formValidator.mjs.map +1 -0
- package/dist/esm/services/formValidation/formValidatorGroup.mjs +2 -0
- package/dist/esm/services/formValidation/formValidatorGroup.mjs.map +1 -0
- package/dist/esm/services/formValidation/useFormValidator.mjs +2 -0
- package/dist/esm/services/formValidation/useFormValidator.mjs.map +1 -0
- package/dist/esm/services/formValidation/useFormValidatorGroup.mjs +2 -0
- package/dist/esm/services/formValidation/useFormValidatorGroup.mjs.map +1 -0
- package/dist/esm/services/formValidation/validatableComponent.mjs +2 -0
- package/dist/esm/services/formValidation/validatableComponent.mjs.map +1 -0
- package/dist/esm/services/formValidation/validators.mjs +2 -0
- package/dist/esm/services/formValidation/validators.mjs.map +1 -0
- package/dist/esm/services/klipy.mjs +2 -0
- package/dist/esm/services/klipy.mjs.map +1 -0
- package/dist/esm/services/localization.mjs +2 -0
- package/dist/esm/services/localization.mjs.map +1 -0
- package/dist/esm/services/regexp.mjs +2 -0
- package/dist/esm/services/regexp.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/package.json +4 -3
- package/dist/index.mjs +0 -6894
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +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{useEffect as i,useRef as a,useState as o}from"react";import s from"classnames";import{FontAwesomeIcon as c}from"@fortawesome/react-fontawesome";import{faChevronDown as l}from"@fortawesome/free-solid-svg-icons";import{jsx as u,jsxs as d}from"react/jsx-runtime";var f={[e.Default]:t,[e.Primary]:n,[e.Plain]:r};function p({id:t=``,title:n=``,children:r=null,expanded:p=null,onHeaderClicked:m=()=>{},styleType:h=e.Default,startOpen:g=!1,hideHeader:_=!1,className:v,style:y,classNames:b,styles:x,...S}){let C=f[h],w=a(null),[T,E]=o(p??g),[D,O]=o(null);i(()=>{p!==null&&E(p)},[p]),i(()=>{let e=w.current;if(!e)return;let t=new ResizeObserver(()=>O(e.offsetHeight));return t.observe(e),()=>t.unobserve(e)},[]);function k(){let e=!T;m(t,e),p===null&&E(e)}let A={height:`${T?32:24}px`},j={height:T?D??`auto`:`0px`};return d(`div`,{...S,id:t||void 0,className:s(C.accordion,T&&C.accordionActive,v,b?.root),style:{...y,...x?.root},children:[!_&&d(`div`,{className:s(C.accordionHeader,T&&C.accordionHeaderActive,b?.header),style:{...A,...x?.header},onClick:k,role:`button`,tabIndex:0,onKeyDown:({key:e})=>{e===`Enter`&&k()},children:[u(`div`,{className:s(C.accordionTitle,b?.title),style:x?.title,children:n}),u(c,{icon:l,className:s(C.accordionIcon,T&&C.accordionIconActive,b?.icon),style:x?.icon})]}),u(`div`,{className:s(C.accordionBody,T&&C.accordionBodyActive,b?.body),style:{...j,...x?.body},children:u(`div`,{className:s(C.accordionBodyInner,b?.bodyInner),style:x?.bodyInner,ref:w,children:r})})]})}export{p as default};
|
|
2
|
+
//# sourceMappingURL=accordion.mjs.map
|
|
@@ -0,0 +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';\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({\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}: AccordionProps): ReactElement {\n const s = STYLES_BY_TYPE[styleType];\n const bodyRef = useRef<HTMLDivElement>(null);\n\n const [isExpanded, setIsExpanded] = useState(expanded ?? startOpen);\n const [bodyHeight, setBodyHeight] = useState<number | null>(null);\n\n // Sync controlled expanded prop\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (expanded !== null) setIsExpanded(expanded);\n }, [expanded]);\n\n // Measure body height via ResizeObserver\n useEffect(() => {\n const el = bodyRef.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 headerHeight = 24;\n const headerStyle = { height: `${isExpanded ? headerHeight + headerHeight / 3 : headerHeight}px` };\n const bodyStyle = { height: isExpanded ? (bodyHeight ?? 'auto') : '0px' };\n\n return (\n <div {...rest} id={id || undefined} className={cx(s.accordion, isExpanded && s.accordionActive, className, classNames?.root)} style={{ ...style, ...slotStyles?.root }}>\n {!hideHeader && (\n <div\n className={cx(s.accordionHeader, isExpanded && s.accordionHeaderActive, classNames?.header)}\n style={{ ...headerStyle, ...slotStyles?.header }}\n onClick={toggleExpanded}\n role=\"button\"\n tabIndex={0}\n onKeyDown={({ key }) => { if (key === 'Enter') toggleExpanded(); }}\n >\n <div className={cx(s.accordionTitle, classNames?.title)} style={slotStyles?.title}>{title}</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 className={cx(s.accordionBody, isExpanded && s.accordionBodyActive, classNames?.body)}\n style={{ ...bodyStyle, ...slotStyles?.body }}\n >\n <div className={cx(s.accordionBodyInner, classNames?.bodyInner)} style={slotStyles?.bodyInner} ref={bodyRef}>\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Accordion;\n"],"mappings":"scAWA,IAAM,EAAmE,EACtE,EAAmB,SAAU,GAC7B,EAAmB,SAAU,GAC7B,EAAmB,OAAQ,CAC9B,EAEA,SAAS,EAAU,CACjB,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,GAC4B,CAC/B,IAAM,EAAI,EAAe,GACnB,EAAU,EAAuB,IAAI,EAErC,CAAC,EAAY,GAAiB,EAAS,GAAY,CAAS,EAC5D,CAAC,EAAY,GAAiB,EAAwB,IAAI,EAGhE,MAAgB,CAEV,IAAa,MAAM,EAAc,CAAQ,CAC/C,EAAG,CAAC,CAAQ,CAAC,EAGb,MAAgB,CACd,IAAM,EAAK,EAAQ,QACnB,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,CAGA,IAAM,EAAc,CAAE,OAAQ,GAAG,EAAa,GAAkC,GAAa,GAAI,EAC3F,EAAY,CAAE,OAAQ,EAAc,GAAc,OAAU,KAAM,EAExE,OACE,EAAC,MAAD,CAAK,GAAI,EAAM,GAAI,GAAM,IAAA,GAAW,UAAW,EAAG,EAAE,UAAW,GAAc,EAAE,gBAAiB,EAAW,GAAY,IAAI,EAAG,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,WAArK,CACG,CAAC,GACA,EAAC,MAAD,CACE,UAAW,EAAG,EAAE,gBAAiB,GAAc,EAAE,sBAAuB,GAAY,MAAM,EAC1F,MAAO,CAAE,GAAG,EAAa,GAAG,GAAY,MAAO,EAC/C,QAAS,EACT,KAAK,SACL,SAAU,EACV,WAAY,CAAE,SAAU,CAAM,IAAQ,SAAS,EAAe,CAAG,WANnE,CAQE,EAAC,MAAD,CAAK,UAAW,EAAG,EAAE,eAAgB,GAAY,KAAK,EAAG,MAAO,GAAY,eAAQ,CAAW,CAAA,EAC/F,EAAC,EAAD,CACE,KAAM,EACN,UAAW,EAAG,EAAE,cAAe,GAAc,EAAE,oBAAqB,GAAY,IAAI,EACpF,MAAO,GAAY,IACpB,CAAA,CACE,IAEP,EAAC,MAAD,CACE,UAAW,EAAG,EAAE,cAAe,GAAc,EAAE,oBAAqB,GAAY,IAAI,EACpF,MAAO,CAAE,GAAG,EAAW,GAAG,GAAY,IAAK,WAE3C,EAAC,MAAD,CAAK,UAAW,EAAG,EAAE,mBAAoB,GAAY,SAAS,EAAG,MAAO,GAAY,UAAW,IAAK,EACjG,UACE,CAAA,CACF,CAAA,CACF,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={accordion:`accordion_YZt8B`,"accordion-title":`accordion-title_CGYKY`,accordionTitle:`accordion-title_CGYKY`,"accordion-active":`accordion-active_mocpj`,accordionActive:`accordion-active_mocpj`,"accordion-header":`accordion-header_OEjXM`,accordionHeader:`accordion-header_OEjXM`,"accordion-header-active":`accordion-header-active_6KvnM`,accordionHeaderActive:`accordion-header-active_6KvnM`,"accordion-body":`accordion-body_2o-mY`,accordionBody:`accordion-body_2o-mY`,"accordion-body-inner":`accordion-body-inner_JI9nJ`,accordionBodyInner:`accordion-body-inner_JI9nJ`,"accordion-body-active":`accordion-body-active_sb2-U`,accordionBodyActive:`accordion-body-active_sb2-U`,"accordion-icon":`accordion-icon_kLqp-`,accordionIcon:`accordion-icon_kLqp-`,"accordion-icon-active":`accordion-icon-active_lJwG8`,accordionIconActive:`accordion-icon-active_lJwG8`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=accordion.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.module.pcss"],"sourcesContent":["\n.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: 10px 0;\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n cursor: pointer;\n background: var(--background);\n border-radius: var(--default-border-radius);\n border: 1px solid var(--border-color);\n font-size: 16px;\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) 0px 0px;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0px 0px 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: 16px;\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: 16px;\n height: 16px;\n color: var(--border-color);\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={accordion:`accordion_wkZJf`,"accordion-title":`accordion-title_-qwNy`,accordionTitle:`accordion-title_-qwNy`,"accordion-active":`accordion-active_t9-a2`,accordionActive:`accordion-active_t9-a2`,"accordion-header":`accordion-header_-oST6`,accordionHeader:`accordion-header_-oST6`,"accordion-header-active":`accordion-header-active_UvKis`,accordionHeaderActive:`accordion-header-active_UvKis`,"accordion-body":`accordion-body_ZagrJ`,accordionBody:`accordion-body_ZagrJ`,"accordion-body-inner":`accordion-body-inner_HE7PL`,accordionBodyInner:`accordion-body-inner_HE7PL`,"accordion-icon":`accordion-icon_kHxym`,accordionIcon:`accordion-icon_kHxym`,"accordion-icon-active":`accordion-icon-active_-L8BH`,accordionIconActive:`accordion-icon-active_-L8BH`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=accordion.plain.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.plain.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.plain.module.pcss"],"sourcesContent":["\n.accordion {\n transition: margin 0.2s;\n margin: -1px;\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 10px 0;\n }\n\n &-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n border-radius: var(--default-border-radius);\n font-size: 16px;\n font-weight: 400;\n transition: all 0.2s;\n\n &-active {\n border-radius: var(--default-border-radius) var(--default-border-radius) 0px 0px;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0px 0px var(--default-border-radius) var(--default-border-radius);\n\n &-inner {\n padding: 0px;\n }\n }\n\n &-icon {\n transition: transform 0.2s;\n transform: rotate(0deg);\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--primary-color);\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={accordion:`accordion_X64Nz`,"accordion-title":`accordion-title_2q-FF`,accordionTitle:`accordion-title_2q-FF`,"accordion-active":`accordion-active_72VwY`,accordionActive:`accordion-active_72VwY`,"accordion-header":`accordion-header_XuGF6`,accordionHeader:`accordion-header_XuGF6`,"accordion-header-active":`accordion-header-active_xf8Ch`,accordionHeaderActive:`accordion-header-active_xf8Ch`,"accordion-body":`accordion-body_0Jsco`,accordionBody:`accordion-body_0Jsco`,"accordion-body-inner":`accordion-body-inner_0UBPf`,accordionBodyInner:`accordion-body-inner_0UBPf`,"accordion-body-active":`accordion-body-active_XFSy1`,accordionBodyActive:`accordion-body-active_XFSy1`,"accordion-icon":`accordion-icon_W1mz5`,accordionIcon:`accordion-icon_W1mz5`,"accordion-icon-active":`accordion-icon-active_LI98q`,accordionIconActive:`accordion-icon-active_LI98q`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=accordion.primary.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.primary.module.mjs","names":[],"sources":["../../../../package/common/accordion/accordion.primary.module.pcss"],"sourcesContent":["\n.accordion {\n transition: margin 0.2s;\n margin: -1px;\n\n &-title {\n width: 100%;\n }\n\n &-active {\n margin: 10px 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 padding: 16px;\n cursor: pointer;\n background: var(--background);\n border-radius: var(--default-border-radius);\n font-size: 16px;\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) 0px 0px;\n }\n }\n\n &-body {\n overflow: hidden;\n transition: all 0.2s ease;\n position: relative;\n border-radius: 0px 0px var(--default-border-radius) var(--default-border-radius);\n border-top: none;\n border-bottom: none;\n\n &-inner {\n padding: 16px;\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: 16px;\n height: 16px;\n color: var(--primary-color);\n &-active {\n transform: rotate(180deg);\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./actionButtons.module.mjs";import{ButtonStyleType as t,ButtonType as n}from"../button/button.types.mjs";import r from"../button/button.mjs";import i from"classnames";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s({onSubmit:s=()=>null,onClose:c=()=>null,submitLabel:l=`Save`,cancelLabel:u=`Cancel`,submitButtonStyle:d=t.Primary,isSubmitButtonLoading:f=!1,isSubmitButtonDisabled:p=!1,submitButtonIcon:m=void 0,cancelButtonStyle:h=t.Default,isCancelButtonLoading:g=!1,isCancelButtonDisabled:_=!1,cancelButtonIcon:v=void 0,hidePrimaryButton:y=!1,hideSecondaryButton:b=!1,noMargin:x=!1,className:S,style:C,classNames:w,styles:T,...E}){return o(`div`,{...E,className:i(e.actionButtons,!x&&e.actionButtonsMargin,S,w?.root),style:{...C,...T?.root},children:[!y&&a(r,{isLoading:f,disabled:p,styleType:d,type:n.Submit,onClick:s,className:w?.submitButton,style:T?.submitButton,icon:m,children:l}),!b&&a(r,{isLoading:g,disabled:_,onClick:c,styleType:h,className:w?.cancelButton,style:T?.cancelButton,icon:v,children:u})]})}export{s as default};
|
|
2
|
+
//# sourceMappingURL=actionButtons.mjs.map
|
|
@@ -0,0 +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 { ActionButtonsProps } from './actionButtons.types';\n\nexport default function ActionButtons({\n onSubmit = () => null,\n onClose = () => null,\n submitLabel = 'Save',\n cancelLabel = 'Cancel',\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 className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n}: ActionButtonsProps) {\n return (\n <div\n {...rest}\n className={cx(styles.actionButtons, !noMargin && styles.actionButtonsMargin, className, classNames?.root)}\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 {submitLabel}\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 {cancelLabel}\n </Button>\n )}\n </div>\n );\n}"],"mappings":"uOAMA,SAAwB,EAAc,CACpC,eAAiB,KACjB,cAAgB,KAChB,cAAc,OACd,cAAc,SACd,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,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACkB,CACrB,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,cAAe,CAAC,GAAY,EAAO,oBAAqB,EAAW,GAAY,IAAI,EACxG,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,WAHzC,CAKG,CAAC,GACF,EAAC,EAAD,CACE,UAAW,EACX,SAAU,EACV,UAAW,EACX,KAAM,EAAW,OACjB,QAAS,EACT,UAAW,GAAY,aACvB,MAAO,GAAY,aACnB,KAAM,WAEL,CACK,CAAA,EAEP,CAAC,GACA,EAAC,EAAD,CACE,UAAW,EACX,SAAU,EACV,QAAS,EACT,UAAW,EACX,UAAW,GAAY,aACvB,MAAO,GAAY,aACnB,KAAM,WAEL,CACK,CAAA,CAEP,GAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionButtons.module.mjs","names":[],"sources":["../../../../package/common/actionButtons/actionButtons.module.pcss"],"sourcesContent":["\n.actionButtons {\n display: flex;\n gap: var(--spacing-m);\n\n @media (--mq-mobile) {\n flex-direction: column;\n }\n\n &-margin {\n margin-top: var(--spacing-l);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../interactableDiv/index.mjs";import t from"./actionIcon.module.mjs";import"react";import n from"classnames";import{FontAwesomeIcon as r}from"@fortawesome/react-fontawesome";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(e,{...f,className:n(t.actionIcon,o,u?.root),style:{...s,...d?.root},title:c,onClick:l,children:i(r,{icon:a,className:u?.icon,style:d?.icon})})}export{a as default};
|
|
2
|
+
//# sourceMappingURL=actionIcon.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionIcon.mjs","names":[],"sources":["../../../../package/common/actionIcon/actionIcon.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { ReactElement } from 'react';\n\nimport InteractableDiv from '../interactableDiv';\nimport type { ActionIconProps } from './actionIcon.types';\nimport styles from './actionIcon.module.pcss';\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 <FontAwesomeIcon\n icon={icon}\n className={classNames?.icon}\n style={slotStyles?.icon as React.CSSProperties & Record<`--fa-font-${string}`, string>}\n />\n </InteractableDiv>\n );\n}\n\nexport default ActionIcon;\n"],"mappings":"oOASA,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,mBAET,EAAC,EAAD,CACQ,OACN,UAAW,GAAY,KACvB,MAAO,GAAY,IACpB,CAAA,CACc,CAAA,CAErB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionIcon.module.mjs","names":[],"sources":["../../../../package/common/actionIcon/actionIcon.module.pcss"],"sourcesContent":[".actionIcon {\n cursor: pointer;\n padding: 4px;\n &:hover {\n filter: brightness(0.8);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{BadgePosition as e,BadgeStyleType as t}from"../badge/badge.types.mjs";import n from"../badge/badge.mjs";import r from"./avatar.module.mjs";import{useState as i}from"react";import a from"classnames";import{FontAwesomeIcon as o}from"@fortawesome/react-fontawesome";import{faUser as s}from"@fortawesome/free-solid-svg-icons";import{jsx as c}from"react/jsx-runtime";var l={online:t.Success,away:t.Warn,busy:t.Error,offline:t.Default};function u(e){if(!e)return``;let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?``:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function d({src:t,alt:d,name:f,icon:p=s,content:m,status:h,className:g,style:_,classNames:v,styles:y,...b}){let[x,S]=i(!1),[C,w]=i(t);t!==C&&(w(t),S(!1));let T=u(f),E=t&&!x?c(`img`,{className:a(r.avatarImage,v?.image),style:y?.image,src:t,alt:d??f??``,onError:()=>S(!0)}):c(`span`,{className:a(r.avatarFallback,v?.fallback),style:y?.fallback,children:m??(T||c(o,{icon:p}))});return h?c(n,{...b,dot:!0,position:e.BottomRight,styleType:l[h],className:g,style:_,classNames:{badge:a(r.avatarStatusBadge,v?.status)},styles:{badge:y?.status},children:c(`span`,{className:r.avatar,children:E})}):c(`span`,{...b,className:a(r.avatar,g),style:_,children:E})}export{d as default};
|
|
2
|
+
//# sourceMappingURL=avatar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.mjs","names":[],"sources":["../../../../package/common/avatar/avatar.tsx"],"sourcesContent":["import { useState, type ReactElement } from 'react';\nimport cx from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUser } from '@fortawesome/free-solid-svg-icons';\nimport Badge, { BadgeStyleType, BadgePosition } from '../badge';\n\nimport type { AvatarProps, AvatarStatus } from './avatar.types';\nimport styles from './avatar.module.pcss';\n\nconst STATUS_STYLE: Record<AvatarStatus, BadgeStyleType> = {\n online: BadgeStyleType.Success,\n away: BadgeStyleType.Warn,\n busy: BadgeStyleType.Error,\n offline: BadgeStyleType.Default,\n};\n\nfunction getInitials(name?: string): string {\n if (!name) return '';\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return '';\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction Avatar({\n src,\n alt,\n name,\n icon = faUser,\n content,\n status,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n}: AvatarProps): ReactElement {\n const [hasError, setHasError] = useState(false);\n const [prevSrc, setPrevSrc] = useState(src);\n\n if (src !== prevSrc) {\n setPrevSrc(src);\n setHasError(false);\n }\n\n const initials = getInitials(name);\n const showImage = !!src && !hasError;\n\n const rendered = showImage ? (\n <img\n className={cx(styles.avatarImage, classNames?.image)}\n style={slotStyles?.image}\n src={src}\n alt={alt ?? name ?? ''}\n onError={() => setHasError(true)}\n />\n ) : (\n <span className={cx(styles.avatarFallback, classNames?.fallback)} style={slotStyles?.fallback}>\n {content ?? (initials || <FontAwesomeIcon icon={icon} />)}\n </span>\n );\n\n if (!status) {\n return (\n <span {...rest} className={cx(styles.avatar, className)} style={style}>\n {rendered}\n </span>\n );\n }\n\n return (\n <Badge\n {...rest}\n dot\n position={BadgePosition.BottomRight}\n styleType={STATUS_STYLE[status]}\n className={className}\n style={style}\n classNames={{ badge: cx(styles.avatarStatusBadge, classNames?.status) }}\n styles={{ badge: slotStyles?.status }}\n >\n <span className={styles.avatar}>{rendered}</span>\n </Badge>\n );\n}\n\nexport default Avatar;\n"],"mappings":"iXASA,IAAM,EAAqD,CACzD,OAAQ,EAAe,QACvB,KAAM,EAAe,KACrB,KAAM,EAAe,MACrB,QAAS,EAAe,OAC1B,EAEA,SAAS,EAAY,EAAuB,CAC1C,GAAI,CAAC,EAAM,MAAO,GAClB,IAAM,EAAQ,EAAK,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,OAAO,EAGrD,OAFI,EAAM,SAAW,EAAU,GAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,CAAC,EAAE,YAAY,GACxD,EAAM,GAAG,GAAK,EAAM,EAAM,OAAS,GAAG,IAAI,YAAY,CAChE,CAEA,SAAS,EAAO,CACd,MACA,MACA,OACA,OAAO,EACP,UACA,SACA,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACyB,CAC5B,GAAM,CAAC,EAAU,GAAe,EAAS,EAAK,EACxC,CAAC,EAAS,GAAc,EAAS,CAAG,EAEtC,IAAQ,IACV,EAAW,CAAG,EACd,EAAY,EAAK,GAGnB,IAAM,EAAW,EAAY,CAAI,EAG3B,EAFc,GAAO,CAAC,EAG1B,EAAC,MAAD,CACE,UAAW,EAAG,EAAO,YAAa,GAAY,KAAK,EACnD,MAAO,GAAY,MACd,MACL,IAAK,GAAO,GAAQ,GACpB,YAAe,EAAY,EAAI,CAChC,CAAA,EAED,EAAC,OAAD,CAAM,UAAW,EAAG,EAAO,eAAgB,GAAY,QAAQ,EAAG,MAAO,GAAY,kBAClF,IAAY,GAAY,EAAC,EAAD,CAAuB,MAAO,CAAA,EACnD,CAAA,EAWR,OARK,EASH,EAAC,EAAD,CACE,GAAI,EACJ,IAAA,GACA,SAAU,EAAc,YACxB,UAAW,EAAa,GACb,YACJ,QACP,WAAY,CAAE,MAAO,EAAG,EAAO,kBAAmB,GAAY,MAAM,CAAE,EACtE,OAAQ,CAAE,MAAO,GAAY,MAAO,WAEpC,EAAC,OAAD,CAAM,UAAW,EAAO,gBAAS,CAAe,CAAA,CAC3C,CAAA,EAlBL,EAAC,OAAD,CAAM,GAAI,EAAM,UAAW,EAAG,EAAO,OAAQ,CAAS,EAAU,iBAC7D,CACG,CAAA,CAkBZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={avatar:`avatar_lCAOD`,"avatar-image":`avatar-image_RMyzx`,avatarImage:`avatar-image_RMyzx`,"avatar-fallback":`avatar-fallback_RaZB6`,avatarFallback:`avatar-fallback_RaZB6`,"avatar-status-badge":`avatar-status-badge_eKMvH`,avatarStatusBadge:`avatar-status-badge_eKMvH`,avatarGroup:`avatarGroup_xkRyd`,"avatarGroup-item":`avatarGroup-item_8DIPO`,avatarGroupItem:`avatarGroup-item_8DIPO`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=avatar.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.module.mjs","names":[],"sources":["../../../../package/common/avatar/avatar.module.pcss"],"sourcesContent":[".avatar {\n --avatar-size: 2.5em;\n --custom-avatar-radius: var(--avatar-radius, var(--default-border-radius));\n display: inline-flex;\n width: var(--avatar-size);\n height: var(--avatar-size);\n flex-shrink: 0;\n box-sizing: border-box;\n vertical-align: middle;\n\n &-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n border-radius: var(--custom-avatar-radius);\n }\n\n &-fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border-radius: var(--custom-avatar-radius);\n background: var(--background-accent);\n color: var(--text-dark);\n font-size: calc(var(--avatar-size) * 0.4);\n font-weight: 600;\n user-select: none;\n text-transform: uppercase;\n }\n\n &-status-badge {\n border: 2px solid var(--background);\n box-sizing: border-box;\n }\n}\n\n.avatarGroup {\n display: inline-flex;\n align-items: center;\n\n &-item {\n display: inline-flex;\n border-radius: calc(var(--avatar-radius, var(--default-border-radius)) + 3px);\n border: 2px solid var(--background);\n box-sizing: content-box;\n margin-left: -0.5em;\n\n &:first-child {\n margin-left: 0;\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./avatar.module.mjs";import t from"./avatar.mjs";import{Children as n}from"react";import r from"classnames";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o({children:o,max:s,className:c,style:l,classNames:u,styles:d,...f}){let p=n.toArray(o),m=s==null?p:p.slice(0,s),h=s==null?0:p.length-s;return a(`span`,{...f,className:r(e.avatarGroup,c),style:l,children:[m.map((t,n)=>i(`span`,{className:r(e.avatarGroupItem,u?.item),style:d?.item,children:t},n)),h>0&&i(`span`,{className:r(e.avatarGroupItem,u?.overflow),style:d?.overflow,children:i(t,{content:`+${h}`})})]})}export{o as default};
|
|
2
|
+
//# sourceMappingURL=avatarGroup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatarGroup.mjs","names":[],"sources":["../../../../package/common/avatar/avatarGroup.tsx"],"sourcesContent":["import { Children, type ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport Avatar from './avatar';\nimport type { AvatarGroupProps } from './avatar.types';\nimport styles from './avatar.module.pcss';\n\nfunction AvatarGroup({\n children,\n max,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n}: AvatarGroupProps): ReactElement {\n const items = Children.toArray(children);\n const visible = max != null ? items.slice(0, max) : items;\n const overflow = max != null ? items.length - max : 0;\n\n return (\n <span {...rest} className={cx(styles.avatarGroup, className)} style={style}>\n {visible.map((child, index) => (\n <span\n key={index}\n className={cx(styles.avatarGroupItem, classNames?.item)}\n style={slotStyles?.item}\n >\n {child}\n </span>\n ))}\n {overflow > 0 && (\n <span\n className={cx(styles.avatarGroupItem, classNames?.overflow)}\n style={slotStyles?.overflow}\n >\n <Avatar content={`+${overflow}`} />\n </span>\n )}\n </span>\n );\n}\n\nexport default AvatarGroup;\n"],"mappings":"4KAOA,SAAS,EAAY,CACnB,WACA,MACA,YACA,QACA,aACA,OAAQ,EACR,GAAG,GAC8B,CACjC,IAAM,EAAQ,EAAS,QAAQ,CAAQ,EACjC,EAAU,GAAO,KAA6B,EAAtB,EAAM,MAAM,EAAG,CAAG,EAC1C,EAAW,GAAO,KAA4B,EAArB,EAAM,OAAS,EAE9C,OACE,EAAC,OAAD,CAAM,GAAI,EAAM,UAAW,EAAG,EAAO,YAAa,CAAS,EAAU,iBAArE,CACG,EAAQ,KAAK,EAAO,IACnB,EAAC,OAAD,CAEE,UAAW,EAAG,EAAO,gBAAiB,GAAY,IAAI,EACtD,MAAO,GAAY,cAElB,CACG,EALC,CAKD,CACP,EACA,EAAW,GACV,EAAC,OAAD,CACE,UAAW,EAAG,EAAO,gBAAiB,GAAY,QAAQ,EAC1D,MAAO,GAAY,kBAEnB,EAAC,EAAD,CAAQ,QAAS,IAAI,GAAa,CAAA,CAC9B,CAAA,CAEJ,GAEV"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{BadgePosition as e,BadgeStyleType as t}from"./badge.types.mjs";import n from"./badge.module.mjs";import r from"classnames";import{jsx as i,jsxs as a}from"react/jsx-runtime";var o={[t.Default]:n.badgeStyleDefault,[t.Primary]:n.badgeStylePrimary,[t.Success]:n.badgeStyleSuccess,[t.Info]:n.badgeStyleInfo,[t.Warn]:n.badgeStyleWarn,[t.Error]:n.badgeStyleError},s={[e.TopRight]:n.badgePositionTopRight,[e.TopLeft]:n.badgePositionTopLeft,[e.BottomRight]:n.badgePositionBottomRight,[e.BottomLeft]:n.badgePositionBottomLeft};function c({count:c,max:l=99,content:u,dot:d=!1,showZero:f=!1,styleType:p=t.Primary,position:m=e.TopRight,children:h=null,className:g,style:_,classNames:v,styles:y,...b}){let x=typeof c==`number`,S=u!=null,C=(d||S||x)&&!(!d&&!S&&x&&c===0&&!f),w=S?u:x?c>l?`${l}+`:c:null,T=h!=null;return a(`span`,{...b,className:r(n.wrapper,g),style:_,children:[h,C&&i(`span`,{className:r(n.badge,o[p],d&&n.badgeDot,T&&n.badgeOverlay,T&&s[m],v?.badge),style:y?.badge,children:!d&&w})]})}export{c as default};
|
|
2
|
+
//# sourceMappingURL=badge.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.mjs","names":[],"sources":["../../../../package/common/badge/badge.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport { BadgeStyleType, BadgePosition } from './badge.types';\nimport type { BadgeProps } from './badge.types';\nimport styles from './badge.module.pcss';\n\nconst CLASS_BY_STYLE: Record<BadgeStyleType, string> = {\n [BadgeStyleType.Default]: styles.badgeStyleDefault,\n [BadgeStyleType.Primary]: styles.badgeStylePrimary,\n [BadgeStyleType.Success]: styles.badgeStyleSuccess,\n [BadgeStyleType.Info]: styles.badgeStyleInfo,\n [BadgeStyleType.Warn]: styles.badgeStyleWarn,\n [BadgeStyleType.Error]: styles.badgeStyleError,\n};\n\nconst CLASS_BY_POSITION: Record<BadgePosition, string> = {\n [BadgePosition.TopRight]: styles.badgePositionTopRight,\n [BadgePosition.TopLeft]: styles.badgePositionTopLeft,\n [BadgePosition.BottomRight]: styles.badgePositionBottomRight,\n [BadgePosition.BottomLeft]: styles.badgePositionBottomLeft,\n};\n\nfunction Badge({\n count,\n max = 99,\n content,\n dot = false,\n showZero = false,\n styleType = BadgeStyleType.Primary,\n position = BadgePosition.TopRight,\n children = null,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n}: BadgeProps): ReactElement {\n const hasCount = typeof count === 'number';\n const hasContent = content != null;\n const isHiddenByZero = !dot && !hasContent && hasCount && count === 0 && !showZero;\n const showBadge = (dot || hasContent || hasCount) && !isHiddenByZero;\n\n const displayValue = hasContent ? content : hasCount ? (count > max ? `${max}+` : count) : null;\n const isOverlay = children != null;\n\n return (\n <span\n {...rest}\n className={cx(styles.wrapper, className)}\n style={style}\n >\n {children}\n {showBadge && (\n <span\n className={cx(\n styles.badge,\n CLASS_BY_STYLE[styleType],\n dot && styles.badgeDot,\n isOverlay && styles.badgeOverlay,\n isOverlay && CLASS_BY_POSITION[position],\n classNames?.badge\n )}\n style={slotStyles?.badge}\n >\n {!dot && displayValue}\n </span>\n )}\n </span>\n );\n}\n\nexport default Badge;\n"],"mappings":"oLAOA,IAAM,EAAiD,EACpD,EAAe,SAAU,EAAO,mBAChC,EAAe,SAAU,EAAO,mBAChC,EAAe,SAAU,EAAO,mBAChC,EAAe,MAAO,EAAO,gBAC7B,EAAe,MAAO,EAAO,gBAC7B,EAAe,OAAQ,EAAO,eACjC,EAEM,EAAmD,EACtD,EAAc,UAAW,EAAO,uBAChC,EAAc,SAAU,EAAO,sBAC/B,EAAc,aAAc,EAAO,0BACnC,EAAc,YAAa,EAAO,uBACrC,EAEA,SAAS,EAAM,CACb,QACA,MAAM,GACN,UACA,MAAM,GACN,WAAW,GACX,YAAY,EAAe,QAC3B,WAAW,EAAc,SACzB,WAAW,KACX,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACwB,CAC3B,IAAM,EAAW,OAAO,GAAU,SAC5B,EAAa,GAAW,KAExB,GAAa,GAAO,GAAc,IAAa,EAD9B,CAAC,GAAO,CAAC,GAAc,GAAY,IAAU,GAAK,CAAC,GAGpE,EAAe,EAAa,EAAU,EAAY,EAAQ,EAAM,GAAG,EAAI,GAAK,EAAS,KACrF,EAAY,GAAY,KAE9B,OACE,EAAC,OAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,QAAS,CAAS,EAChC,iBAHT,CAKG,EACA,GACC,EAAC,OAAD,CACE,UAAW,EACT,EAAO,MACP,EAAe,GACf,GAAO,EAAO,SACd,GAAa,EAAO,aACpB,GAAa,EAAkB,GAC/B,GAAY,KACd,EACA,MAAO,GAAY,eAElB,CAAC,GAAO,CACL,CAAA,CAEJ,GAEV"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={wrapper:`wrapper_bcGTc`,badge:`badge_mj0fB`,"badge-dot":`badge-dot_TFLNc`,badgeDot:`badge-dot_TFLNc`,"badge-position-top-right":`badge-position-top-right_ZqWIX`,badgePositionTopRight:`badge-position-top-right_ZqWIX`,"badge-position-top-left":`badge-position-top-left_c-tJc`,badgePositionTopLeft:`badge-position-top-left_c-tJc`,"badge-position-bottom-right":`badge-position-bottom-right_7JuZ-`,badgePositionBottomRight:`badge-position-bottom-right_7JuZ-`,"badge-position-bottom-left":`badge-position-bottom-left_nsuJP`,badgePositionBottomLeft:`badge-position-bottom-left_nsuJP`,"badge-overlay":`badge-overlay_Xs19S`,badgeOverlay:`badge-overlay_Xs19S`,"badge-style-default":`badge-style-default_E32XE`,badgeStyleDefault:`badge-style-default_E32XE`,"badge-style-primary":`badge-style-primary_x1J3r`,badgeStylePrimary:`badge-style-primary_x1J3r`,"badge-style-success":`badge-style-success_LK3u0`,badgeStyleSuccess:`badge-style-success_LK3u0`,"badge-style-info":`badge-style-info_48nNP`,badgeStyleInfo:`badge-style-info_48nNP`,"badge-style-warn":`badge-style-warn_0PIRu`,badgeStyleWarn:`badge-style-warn_0PIRu`,"badge-style-error":`badge-style-error_5RoOd`,badgeStyleError:`badge-style-error_5RoOd`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=badge.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.module.mjs","names":[],"sources":["../../../../package/common/badge/badge.module.pcss"],"sourcesContent":[".wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.375em;\n border-radius: var(--default-border-radius);\n font-size: 0.75em;\n font-weight: 600;\n line-height: 1;\n white-space: nowrap;\n background: var(--badge-bg);\n color: var(--badge-fg);\n\n &-dot {\n min-width: 0.8em;\n width: 0.8em;\n height: 0.8em;\n padding: 0;\n border-radius: 100%;\n background: var(--badge-solid);\n\n &.badge-position-top-right {\n transform: translate(20%, -20%);\n }\n\n &.badge-position-top-left {\n transform: translate(-20%, -20%);\n }\n\n &.badge-position-bottom-right {\n transform: translate(20%, 20%);\n }\n\n &.badge-position-bottom-left {\n transform: translate(-20%, 20%);\n }\n }\n\n &-overlay {\n position: absolute;\n z-index: 1;\n }\n\n &-position {\n &-top-right {\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n }\n\n &-top-left {\n top: 0;\n left: 0;\n transform: translate(-50%, -50%);\n }\n\n &-bottom-right {\n bottom: 0;\n right: 0;\n transform: translate(50%, 50%);\n }\n\n &-bottom-left {\n bottom: 0;\n left: 0;\n transform: translate(-50%, 50%);\n }\n }\n\n &-style {\n &-default {\n --badge-bg: rgba(0, 0, 0, 0.08);\n --badge-fg: var(--text-color);\n --badge-solid: var(--text-dark);\n }\n\n &-primary {\n --badge-bg: var(--primary-color);\n --badge-fg: var(--text-on-primary);\n --badge-solid: var(--primary-color);\n }\n\n &-success {\n --badge-bg: var(--success-lighter);\n --badge-fg: var(--success-color);\n --badge-solid: var(--success-color);\n }\n\n &-info {\n --badge-bg: var(--info-lighter);\n --badge-fg: var(--info-color);\n --badge-solid: var(--info-color);\n }\n\n &-warn {\n --badge-bg: var(--warn-lighter);\n --badge-fg: var(--warn-color);\n --badge-solid: var(--warn-color);\n }\n\n &-error {\n --badge-bg: var(--error-lighter);\n --badge-fg: var(--error-color);\n --badge-solid: var(--error-color);\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=function(e){return e.Default=`default`,e.Primary=`primary`,e.Success=`success`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e}({}),t=function(e){return e.TopRight=`top-right`,e.TopLeft=`top-left`,e.BottomRight=`bottom-right`,e.BottomLeft=`bottom-left`,e}({});export{t as BadgePosition,e as BadgeStyleType};
|
|
2
|
+
//# sourceMappingURL=badge.types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.types.mjs","names":[],"sources":["../../../../package/common/badge/badge.types.ts"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\n\nexport enum BadgeStyleType {\n Default = 'default',\n Primary = 'primary',\n Success = 'success',\n Info = 'info',\n Warn = 'warn',\n Error = 'error',\n}\n\nexport enum BadgePosition {\n TopRight = 'top-right',\n TopLeft = 'top-left',\n BottomRight = 'bottom-right',\n BottomLeft = 'bottom-left',\n}\n\nexport type BadgeSlots = 'badge';\n\nexport interface BadgeProps extends HtmlProps {\n count?: number;\n max?: number;\n content?: ReactNode;\n dot?: boolean;\n showZero?: boolean;\n styleType?: BadgeStyleType;\n position?: BadgePosition;\n children?: ReactNode;\n className?: string;\n style?: CSSProperties;\n classNames?: SlotClassNames<BadgeSlots>;\n styles?: SlotStyles<BadgeSlots>;\n}\n"],"mappings":"AAGA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,KAAA,OACA,EAAA,KAAA,OACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA,EAEY,EAAL,SAAA,EAAA,OACL,GAAA,SAAA,YACA,EAAA,QAAA,WACA,EAAA,YAAA,eACA,EAAA,WAAA,eACF,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bodyEnd.mjs","names":[],"sources":["../../../../package/common/bodyEnd/bodyEnd.tsx"],"sourcesContent":["import { createPortal } from 'react-dom';\nimport type { ReactElement } from 'react';\n\nimport type { BodyEndProps } from './bodyEnd.types';\n\n// Module-scoped ambient typing for the bundler-replaced NODE_ENV guard below.\n// Browsers don't define `process`, so the value is read defensively at runtime;\n// bundlers (Vite/webpack) still statically replace the `process.env.NODE_ENV`\n// token. Declared at module scope (not globally), it isn't emitted into the\n// .d.ts and can't clash with a consumer's @types/node.\ndeclare const process: { env: { NODE_ENV?: string } };\n\nfunction BodyEnd({ children = null }: BodyEndProps): ReactElement | null {\n const target = document.getElementById('bodyEnd');\n if (!target) {\n if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n console.error('[BodyEnd] No element with id=\"bodyEnd\" found. Add <div id=\"bodyEnd\"></div> to your app root.');\n }\n return null;\n }\n return createPortal(children, target);\n}\n\nexport default BodyEnd;\n"],"mappings":"yCAYA,SAAS,EAAQ,CAAE,WAAW,MAA2C,CACvE,IAAM,EAAS,SAAS,eAAe,SAAS,EAOhD,OANK,EAME,EAAa,EAAU,CAAM,EAF3B,IAGX"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./button.module.mjs";import t from"../loading/spinnerLoading/index.mjs";import{ButtonSize as n,ButtonStyleType as r,ButtonType as i}from"./button.types.mjs";import a from"../ripple/ripple.mjs";import o from"classnames";import{FontAwesomeIcon as s}from"@fortawesome/react-fontawesome";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u={default:e.buttonStyleDefault,primary:e.buttonStylePrimary,delete:e.buttonStyleDelete},d={default:e.buttonSizeDefault,small:e.buttonSizeSmall,medium:e.buttonSizeMedium,large:e.buttonSizeLarge};function f({className:f,style:p,type:m=i.Button,styleType:h=r.Default,size:g=n.Default,onClick:_=()=>{},children:v,icon:y,isLoading:b=!1,disabled:x=!1,title:S=void 0,ref:C,classNames:w,styles:T,...E}){return c(`button`,{...E,className:o(e.button,u[h],d[g],{[e.buttonNotAllowed]:b||x},f),style:p,type:m,onClick:_,disabled:x||b,title:S,ref:C,children:c(a,{disabled:b||x,children:c(`div`,{className:o(e.buttonBackground,w?.background),style:T?.background,children:l(`div`,{className:o(e.buttonContent,w?.content),style:T?.content,children:[b?c(`div`,{className:o(e.buttonLoadingContainer,w?.loadingContainer),style:T?.loadingContainer,children:c(t,{className:e.buttonLoadingIcon})}):null,l(`div`,{className:o(w?.label,{[e.buttonLoading]:b,[e.buttonWithIcon]:!!y}),style:T?.label,children:[y?c(s,{icon:y}):null,v]})]})})})})}f.StyleType=r,f.Size=n,f.Type=i;export{f as default};
|
|
2
|
+
//# sourceMappingURL=button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.mjs","names":[],"sources":["../../../../package/common/button/button.tsx"],"sourcesContent":["import cx from 'classnames';\nimport type { ReactElement } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport styles from './button.module.pcss';\nimport SpinnerLoading from 'components/common/loading/spinnerLoading';\nimport { ButtonStyleType, ButtonSize, ButtonType } from './button.types';\nimport type { ButtonProps } from './button.types';\nimport Ripple from '../ripple';\n\nconst CLASS_BY_STYLE: Record<ButtonStyleType, string> = {\n default: styles.buttonStyleDefault,\n primary: styles.buttonStylePrimary,\n delete: styles.buttonStyleDelete,\n};\n\nconst CLASS_BY_SIZE: Record<ButtonSize, string> = {\n default: styles.buttonSizeDefault,\n small: styles.buttonSizeSmall,\n medium: styles.buttonSizeMedium,\n large: styles.buttonSizeLarge,\n};\n\nfunction Button({\n className,\n style,\n type = ButtonType.Button,\n styleType = ButtonStyleType.Default,\n size = ButtonSize.Default,\n onClick = (): void => {},\n children,\n icon,\n isLoading = false,\n disabled = false,\n title = undefined,\n ref,\n classNames,\n styles: slotStyles,\n ...rest\n}: ButtonProps): ReactElement {\n return (\n <button\n {...rest}\n className={cx(\n styles.button,\n CLASS_BY_STYLE[styleType],\n CLASS_BY_SIZE[size],\n {\n [styles.buttonNotAllowed]: isLoading || disabled,\n },\n className\n )}\n style={style}\n type={type}\n onClick={onClick}\n disabled={disabled || isLoading}\n title={title}\n ref={ref}\n >\n <Ripple disabled={isLoading || disabled}>\n <div className={cx(styles.buttonBackground, classNames?.background)} style={slotStyles?.background}>\n <div className={cx(styles.buttonContent, classNames?.content)} style={slotStyles?.content}>\n {isLoading ? (\n <div className={cx(styles.buttonLoadingContainer, classNames?.loadingContainer)} style={slotStyles?.loadingContainer}>\n <SpinnerLoading className={styles.buttonLoadingIcon} />\n </div>\n ) : null}\n <div\n className={cx(classNames?.label, {\n [styles.buttonLoading]: isLoading,\n [styles.buttonWithIcon]: !!icon,\n })}\n style={slotStyles?.label}\n >\n {icon ? <FontAwesomeIcon icon={icon} /> : null}\n {children}\n </div>\n </div>\n </div>\n </Ripple>\n </button>\n );\n}\n\nButton.StyleType = ButtonStyleType;\nButton.Size = ButtonSize;\nButton.Type = ButtonType;\n\nexport default Button;\n"],"mappings":"4VAUA,IAAM,EAAkD,CACtD,QAAS,EAAO,mBAChB,QAAS,EAAO,mBAChB,OAAQ,EAAO,iBACjB,EAEM,EAA4C,CAChD,QAAS,EAAO,kBAChB,MAAO,EAAO,gBACd,OAAQ,EAAO,iBACf,MAAO,EAAO,eAChB,EAEA,SAAS,EAAO,CACd,YACA,QACA,OAAO,EAAW,OAClB,YAAY,EAAgB,QAC5B,OAAO,EAAW,QAClB,cAAsB,CAAC,EACvB,WACA,OACA,YAAY,GACZ,WAAW,GACX,QAAQ,IAAA,GACR,MACA,aACA,OAAQ,EACR,GAAG,GACyB,CAC5B,OACE,EAAC,SAAD,CACE,GAAI,EACJ,UAAW,EACT,EAAO,OACP,EAAe,GACf,EAAc,GACd,EACG,EAAO,kBAAmB,GAAa,CAC1C,EACA,CACF,EACO,QACD,OACG,UACT,SAAU,GAAY,EACf,QACF,eAEL,EAAC,EAAD,CAAQ,SAAU,GAAa,WAC7B,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,iBAAkB,GAAY,UAAU,EAAG,MAAO,GAAY,oBACtF,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,cAAe,GAAY,OAAO,EAAG,MAAO,GAAY,iBAAlF,CACG,EACC,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,uBAAwB,GAAY,gBAAgB,EAAG,MAAO,GAAY,0BAClG,EAAC,EAAD,CAAgB,UAAW,EAAO,iBAAoB,CAAA,CACnD,CAAA,EACH,KACJ,EAAC,MAAD,CACE,UAAW,EAAG,GAAY,MAAO,EAC9B,EAAO,eAAgB,GACvB,EAAO,gBAAiB,CAAC,CAAC,CAC7B,CAAC,EACD,MAAO,GAAY,eALrB,CAOG,EAAO,EAAC,EAAD,CAAuB,MAAO,CAAA,EAAI,KACzC,CACE,GACF,GACF,CAAA,CACC,CAAA,CACF,CAAA,CAEZ,CAEA,EAAO,UAAY,EACnB,EAAO,KAAO,EACd,EAAO,KAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={button:`button_wYLPJ`,"button-notAllowed":`button-notAllowed_xGT-E`,buttonNotAllowed:`button-notAllowed_xGT-E`,"button-loading-icon":`button-loading-icon_1pTTz`,buttonLoadingIcon:`button-loading-icon_1pTTz`,"button-content":`button-content_Q-0-4`,buttonContent:`button-content_Q-0-4`,"button-loading":`button-loading_TY6y7`,buttonLoading:`button-loading_TY6y7`,"button-loading-container":`button-loading-container_pMSta`,buttonLoadingContainer:`button-loading-container_pMSta`,"button-withIcon":`button-withIcon_IXEKA`,buttonWithIcon:`button-withIcon_IXEKA`,"button-style-default":`button-style-default_JmAqD`,buttonStyleDefault:`button-style-default_JmAqD`,"button-style-primary":`button-style-primary_Ra5i-`,buttonStylePrimary:`button-style-primary_Ra5i-`,"button-style-delete":`button-style-delete_jpTCf`,buttonStyleDelete:`button-style-delete_jpTCf`,"button-background":`button-background_9Vfo5`,buttonBackground:`button-background_9Vfo5`,"button-size-default":`button-size-default_N4HG9`,buttonSizeDefault:`button-size-default_N4HG9`,"button-size-small":`button-size-small_mn6jE`,buttonSizeSmall:`button-size-small_mn6jE`,"button-size-small-background":`button-size-small-background_KILXc`,buttonSizeSmallBackground:`button-size-small-background_KILXc`,"button-size-medium":`button-size-medium_gNVDM`,buttonSizeMedium:`button-size-medium_gNVDM`,"button-size-large":`button-size-large_xSIcS`,buttonSizeLarge:`button-size-large_xSIcS`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=button.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.module.mjs","names":[],"sources":["../../../../package/common/button/button.module.pcss"],"sourcesContent":[".button {\n appearance: none;\n -webkit-appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n background: transparent;\n color: var(--text-color);\n border: 1px solid transparent;\n padding: 0;\n font-family: var(--default-font);\n border-radius: var(--default-border-radius);\n cursor: pointer;\n position: relative;\n overflow: hidden;\n\n &-notAllowed {\n cursor: not-allowed;\n filter: opacity(0.8);\n }\n\n &-loading-icon {\n width: 100% !important;\n height: 100% !important;\n }\n\n &-content {\n position: relative;\n white-space: break-spaces;\n\n div {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n &-loading {\n visibility: hidden;\n\n &-container {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n &-withIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-s);\n }\n\n &-style {\n &-default {\n background: var(--button-default-background, transparent);\n color: var(--button-default-color, var(--text-color));\n border: var(--button-default-border, 1px solid transparent);\n }\n\n &-primary {\n background: var(--primary-color);\n color: var(--text-color);\n color: var(--text-on-primary);\n\n .button-loading-icon {\n stroke: var(--text-on-primary);\n }\n }\n\n &-delete {\n background: var(--error-color);\n color: var(--text-on-delete);\n\n .button-loading-icon {\n stroke: var(--text-on-delete);\n }\n }\n }\n\n &-background {\n display: block;\n padding: 8px 12px;\n }\n\n &-size {\n &-default {\n font-size: 16px;\n }\n\n &-small {\n /* Small button is same as default for now */\n font-size: 12px;\n\n &-background {\n display: block;\n padding: 0px;\n }\n }\n\n &-medium {\n /* Medium button is same as default for now */\n font-size: 16px;\n }\n\n &-large {\n /* Large button is same as default for now */\n font-size: 20px;\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=function(e){return e.Primary=`primary`,e.Default=`default`,e.Delete=`delete`,e}({}),t=function(e){return e.Default=`default`,e.Small=`small`,e.Medium=`medium`,e.Large=`large`,e}({}),n=function(e){return e.Button=`button`,e.Reset=`reset`,e.Submit=`submit`,e}({});export{t as ButtonSize,e as ButtonStyleType,n as ButtonType};
|
|
2
|
+
//# sourceMappingURL=button.types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.types.mjs","names":[],"sources":["../../../../package/common/button/button.types.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\nimport type { IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\n\nexport enum ButtonStyleType {\n Primary = 'primary',\n Default = 'default',\n Delete = 'delete',\n}\n\nexport enum ButtonSize {\n Default = 'default',\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\nexport enum ButtonType {\n Button = 'button',\n Reset = 'reset',\n Submit = 'submit',\n}\n\nexport type ButtonSlots = 'background' | 'content' | 'loadingContainer' | 'label';\n\nexport interface ButtonProps extends HtmlProps {\n className?: string;\n style?: CSSProperties;\n type?: ButtonType;\n styleType?: ButtonStyleType;\n size?: ButtonSize;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => Promise<void> | void;\n children?: React.ReactNode;\n icon?: IconDefinition;\n isLoading?: boolean;\n disabled?: boolean;\n title?: string;\n ref?: React.Ref<HTMLButtonElement>;\n classNames?: SlotClassNames<ButtonSlots>;\n styles?: SlotStyles<ButtonSlots>;\n}\n"],"mappings":"AAIA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,OAAA,UACF,EAAA,CAAA,CAAA,EAEY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,OAAA,SACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA,EAEY,EAAL,SAAA,EAAA,OACL,GAAA,OAAA,SACA,EAAA,MAAA,QACA,EAAA,OAAA,UACF,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../ripple/ripple.mjs";import t from"../interactableDiv/index.mjs";import{CardStyleType as n}from"./card.types.mjs";import r from"./card.module.mjs";import i from"classnames";import{jsx as a}from"react/jsx-runtime";var o={elevated:r.cardStyleElevated,outlined:r.cardStyleOutlined,filled:r.cardStyleFilled};function s({className:s=void 0,children:c=null,styleType:l=n.Elevated,onClick:u=void 0,tabIndex:d=null,hoverEffect:f=void 0,style:p=void 0,autoGap:m=!0,clip:h=!1,...g}){let _=!!u;return a(t,{...g,className:i(r.card,o[l],h&&r.cardClip,_&&r.cardInteractable,(_&&f!==!1||f)&&r.cardHover,s),onClick:u,tabIndex:d??(_?0:null),style:p,children:a(e,{disabled:!_,className:i(r.cardPadding,m&&r.cardGaps),style:{borderRadius:`inherit`},children:c})})}export{s as default};
|
|
2
|
+
//# sourceMappingURL=Card.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.mjs","names":[],"sources":["../../../../package/common/card/Card.tsx"],"sourcesContent":["import cx from 'classnames';\n\nimport { CardStyleType, type CardProps } from './card.types';\nimport styles from './card.module.pcss';\nimport InteractableDiv from '../interactableDiv';\nimport Ripple from '../ripple';\n\nconst CLASS_BY_STYLE: Record<CardStyleType, string> = {\n elevated: styles.cardStyleElevated,\n outlined: styles.cardStyleOutlined,\n filled: styles.cardStyleFilled,\n};\n\nfunction Card({\n className = undefined,\n children = null,\n styleType = CardStyleType.Elevated,\n onClick = undefined,\n tabIndex = null,\n hoverEffect = undefined,\n style = undefined,\n autoGap = true,\n clip = false,\n ...rest\n}: CardProps) {\n const isInteractable = !!onClick;\n\n return (\n <InteractableDiv\n {...rest}\n className={cx(\n styles.card,\n CLASS_BY_STYLE[styleType],\n clip && styles.cardClip,\n isInteractable && styles.cardInteractable,\n ((isInteractable && hoverEffect !== false) || hoverEffect) && styles.cardHover,\n className\n )}\n onClick={onClick}\n tabIndex={tabIndex ?? (isInteractable ? 0 : null)}\n style={style}\n >\n <Ripple\n disabled={!isInteractable}\n className={cx(styles.cardPadding, autoGap && styles.cardGaps)}\n style={{ borderRadius: 'inherit' }}\n >\n {children}\n </Ripple>\n </InteractableDiv>\n );\n}\n\nexport default Card;\n"],"mappings":"oOAOA,IAAM,EAAgD,CACpD,SAAU,EAAO,kBACjB,SAAU,EAAO,kBACjB,OAAQ,EAAO,eACjB,EAEA,SAAS,EAAK,CACZ,YAAY,IAAA,GACZ,WAAW,KACX,YAAY,EAAc,SAC1B,UAAU,IAAA,GACV,WAAW,KACX,cAAc,IAAA,GACd,QAAQ,IAAA,GACR,UAAU,GACV,OAAO,GACP,GAAG,GACS,CACZ,IAAM,EAAiB,CAAC,CAAC,EAEzB,OACE,EAAC,EAAD,CACE,GAAI,EACJ,UAAW,EACT,EAAO,KACP,EAAe,GACf,GAAQ,EAAO,SACf,GAAkB,EAAO,kBACvB,GAAkB,IAAgB,IAAU,IAAgB,EAAO,UACrE,CACF,EACS,UACT,SAAU,IAAa,EAAiB,EAAI,MACrC,iBAEP,EAAC,EAAD,CACE,SAAU,CAAC,EACX,UAAW,EAAG,EAAO,YAAa,GAAW,EAAO,QAAQ,EAC5D,MAAO,CAAE,aAAc,SAAU,EAEhC,UACK,CAAA,CACO,CAAA,CAErB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ButtonStyleType as e}from"../button/button.types.mjs";import t from"../button/button.mjs";import n from"./card.module.mjs";import"react";import r from"classnames";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o({className:o=``,actions:s=[],children:c=null}){return a(`div`,{className:r(n.cardActions,o),children:[s.map(({id:n,onClick:r,label:a,styleType:o=e.Default})=>i(`div`,{children:i(t,{onClick:r,styleType:o,children:a})},n??a)),c]})}export{o as default};
|
|
2
|
+
//# sourceMappingURL=CardActions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardActions.mjs","names":[],"sources":["../../../../package/common/card/CardActions.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'classnames';\nimport Button from '../button';\nimport { ButtonStyleType } from '../button/button.types';\n\nimport type { CardActionsProps } from './card.types';\nimport styles from './card.module.pcss';\n\nfunction CardActions({ className = '', actions = [], children = null }: CardActionsProps) {\n return (\n <div className={cx(styles.cardActions, className)}>\n {actions.map(({ id, onClick, label, styleType = ButtonStyleType.Default }) => (\n <div key={id ?? label}>\n <Button onClick={onClick} styleType={styleType}>\n {label}\n </Button>\n </div>\n ))}\n {children}\n </div>\n );\n}\n\nexport default CardActions;\n"],"mappings":"4NAQA,SAAS,EAAY,CAAE,YAAY,GAAI,UAAU,CAAC,EAAG,WAAW,MAA0B,CACxF,OACE,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,YAAa,CAAS,WAAhD,CACG,EAAQ,KAAK,CAAE,KAAI,UAAS,QAAO,YAAY,EAAgB,WAC9D,EAAC,MAAD,CAAA,SACE,EAAC,EAAD,CAAiB,UAAoB,qBAClC,CACK,CAAA,CACL,EAJK,GAAM,CAIX,CACN,EACA,CACE,GAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardContent.mjs","names":[],"sources":["../../../../package/common/card/CardContent.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CardContentProps } from './card.types';\n\nfunction CardContent({ children = null }: CardContentProps) {\n return <>{children}</>;\n}\n\nexport default CardContent;\n"],"mappings":"oEAIA,SAAS,EAAY,CAAE,WAAW,MAA0B,CAC1D,OAAO,EAAA,EAAA,CAAG,UAAW,CAAA,CACvB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../actionIcon/actionIcon.mjs";import t from"./card.module.mjs";import"react";import n from"classnames";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a({className:a=``,title:o=``,subTitle:s=``,thumbnail:c=``,actions:l=void 0}){let u=typeof c==`string`&&c.startsWith(`http`)?c:void 0;return i(`div`,{className:n(t.cardHeader,a),children:[c&&r(`div`,{className:t.cardHeaderThumbnail,style:u?{backgroundImage:`url(${u})`}:{},children:!u&&c}),i(`div`,{className:t.cardHeaderTitles,children:[i(`div`,{className:t.cardHeaderTitlesMainContainer,children:[r(`div`,{className:t.cardHeaderTitlesMain,children:o}),r(`div`,{className:t.cardHeaderActions,children:Array.isArray(l)?l.map((t,n)=>r(e,{title:t.title,onClick:t.onClick?e=>{e.stopPropagation(),t.onClick?.(e)}:void 0,icon:t.icon},n)):l})]}),r(`div`,{className:t.cardHeaderTitlesSub,children:s})]})]})}export{a as default};
|
|
2
|
+
//# sourceMappingURL=CardHeader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardHeader.mjs","names":[],"sources":["../../../../package/common/card/CardHeader.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'classnames';\n\nimport type { CardHeaderProps } from './card.types';\nimport styles from './card.module.pcss';\nimport ActionIcon from '../actionIcon';\n\nfunction CardHeader({\n className = '',\n title = '',\n subTitle = '',\n thumbnail = '',\n actions = undefined,\n}: CardHeaderProps) {\n const thumbnailUrl =\n typeof thumbnail === 'string' && thumbnail.startsWith('http') ? thumbnail : undefined;\n\n return (\n <div className={cx(styles.cardHeader, className)}>\n {thumbnail && (\n <div\n className={styles.cardHeaderThumbnail}\n style={thumbnailUrl ? { backgroundImage: `url(${thumbnailUrl})` } : {}}\n >\n {!thumbnailUrl && thumbnail}\n </div>\n )}\n <div className={styles.cardHeaderTitles}>\n <div className={styles.cardHeaderTitlesMainContainer}>\n <div className={styles.cardHeaderTitlesMain}>{title}</div>\n <div className={styles.cardHeaderActions}>\n {Array.isArray(actions)\n ? actions.map((action, index) => (\n <ActionIcon\n key={index}\n title={action.title}\n onClick={action.onClick ? (e: React.MouseEvent<HTMLDivElement>) => { e.stopPropagation(); action.onClick?.(e); } : undefined}\n icon={action.icon}\n />\n ))\n : actions}\n </div>\n </div>\n <div className={styles.cardHeaderTitlesSub}>{subTitle}</div>\n </div>\n </div>\n );\n}\n\nexport default CardHeader;\n"],"mappings":"uKAOA,SAAS,EAAW,CAClB,YAAY,GACZ,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,UAAU,IAAA,IACQ,CAClB,IAAM,EACJ,OAAO,GAAc,UAAY,EAAU,WAAW,MAAM,EAAI,EAAY,IAAA,GAE9E,OACE,EAAC,MAAD,CAAK,UAAW,EAAG,EAAO,WAAY,CAAS,WAA/C,CACG,GACC,EAAC,MAAD,CACE,UAAW,EAAO,oBAClB,MAAO,EAAe,CAAE,gBAAiB,OAAO,EAAa,EAAG,EAAI,CAAC,WAEpE,CAAC,GAAgB,CACf,CAAA,EAEP,EAAC,MAAD,CAAK,UAAW,EAAO,0BAAvB,CACE,EAAC,MAAD,CAAK,UAAW,EAAO,uCAAvB,CACE,EAAC,MAAD,CAAK,UAAW,EAAO,8BAAuB,CAAW,CAAA,EACzD,EAAC,MAAD,CAAK,UAAW,EAAO,2BACpB,MAAM,QAAQ,CAAO,EAClB,EAAQ,KAAK,EAAQ,IACnB,EAAC,EAAD,CAEE,MAAO,EAAO,MACd,QAAS,EAAO,QAAW,GAAwC,CAAE,EAAE,gBAAgB,EAAG,EAAO,UAAU,CAAC,CAAG,EAAI,IAAA,GACnH,KAAM,EAAO,IACd,EAJM,CAIN,CACF,EACD,CACD,CAAA,CACF,IACL,EAAC,MAAD,CAAK,UAAW,EAAO,6BAAsB,CAAc,CAAA,CACxD,GACF,GAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardMedia.mjs","names":[],"sources":["../../../../package/common/card/CardMedia.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CardMediaProps } from './card.types';\nimport styles from './card.module.pcss';\n\nfunction CardMedia({ src = '', alt = '' }: CardMediaProps) {\n return <img className={styles.cardMedia} src={src} alt={alt} />;\n}\n\nexport default CardMedia;\n"],"mappings":"uFAKA,SAAS,EAAU,CAAE,MAAM,GAAI,MAAM,IAAsB,CACzD,OAAO,EAAC,MAAD,CAAK,UAAW,EAAO,UAAgB,MAAU,KAAM,CAAA,CAChE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={card:`card_w-6Ki`,"card-clip":`card-clip_eZ8-1`,cardClip:`card-clip_eZ8-1`,"card-padding":`card-padding_X2-q-`,cardPadding:`card-padding_X2-q-`,"card-gaps":`card-gaps_jhYkx`,cardGaps:`card-gaps_jhYkx`,"card-style-elevated":`card-style-elevated_exvMB`,cardStyleElevated:`card-style-elevated_exvMB`,"card-style-outlined":`card-style-outlined_PxZZA`,cardStyleOutlined:`card-style-outlined_PxZZA`,"card-style-filled":`card-style-filled_2nhAY`,cardStyleFilled:`card-style-filled_2nhAY`,"card-interactable":`card-interactable_az2lE`,cardInteractable:`card-interactable_az2lE`,"card-hover":`card-hover_fdS-X`,cardHover:`card-hover_fdS-X`,cardHeader:`cardHeader_HfIlm`,"cardHeader-thumbnail":`cardHeader-thumbnail_rFw-N`,cardHeaderThumbnail:`cardHeader-thumbnail_rFw-N`,"cardHeader-actions":`cardHeader-actions_awD46`,cardHeaderActions:`cardHeader-actions_awD46`,"cardHeader-titles":`cardHeader-titles_CAUU3`,cardHeaderTitles:`cardHeader-titles_CAUU3`,"cardHeader-titles-main":`cardHeader-titles-main_Z834V`,cardHeaderTitlesMain:`cardHeader-titles-main_Z834V`,"cardHeader-titles-main-container":`cardHeader-titles-main-container_1j-od`,cardHeaderTitlesMainContainer:`cardHeader-titles-main-container_1j-od`,"cardHeader-titles-sub":`cardHeader-titles-sub_2X08b`,cardHeaderTitlesSub:`cardHeader-titles-sub_2X08b`,cardMedia:`cardMedia_GZJQF`,cardActions:`cardActions_uYu-0`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=card.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.module.mjs","names":[],"sources":["../../../../package/common/card/card.module.pcss"],"sourcesContent":[".card {\n border-radius: var(--default-border-radius);\n color: var(--text-color);\n border: 1px solid transparent;\n box-sizing: border-box;\n\n &-clip {\n overflow: hidden;\n }\n\n &-padding {\n padding: 16px;\n }\n\n &-gaps {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s);\n }\n\n &-style {\n &-elevated {\n background: var(--background-card-elevated, var(--background-accent-light));\n box-shadow: var(--card-shadow);\n }\n\n &-outlined {\n background: var(--background-card-outlined, transparent);\n border-color: var(--border-color);\n }\n\n &-filled {\n background: var(--background-card-filled, var(--background-accent));\n }\n }\n\n &-interactable {\n cursor: pointer;\n }\n\n &-hover {\n transition:\n transform 0.15s ease,\n box-shadow 0.15s ease,\n filter 0.3s ease;\n\n &:hover {\n transform: translateY(-2px);\n background: var(--background-accent);\n }\n }\n}\n\n.cardHeader {\n display: flex;\n gap: 16px;\n align-items: center;\n\n &-thumbnail {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 40px;\n height: 40px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 40px;\n overflow: hidden;\n background-size: cover;\n background-position: center;\n flex-shrink: 0;\n }\n\n &-actions {\n display: flex;\n gap: var(--spacing-s);\n flex-wrap: wrap;\n flex-shrink: 1;\n align-items: center;\n justify-content: flex-end;\n }\n\n &-titles {\n display: flex;\n flex-flow: column;\n flex: 1;\n gap: 4px;\n overflow: hidden;\n\n &-main {\n font-size: 18px;\n font-weight: 600;\n min-width: 3ch;\n flex-shrink: 100000;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &-container {\n display: flex;\n align-items: center;\n gap: var(--spacing-m);\n justify-content: space-between;\n }\n }\n\n &-sub {\n font-weight: 300;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n}\n\n.cardMedia {\n width: calc(100% + 32px);\n margin: 0 -16px 0 -16px;\n}\n\n.cardActions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.types.mjs","names":[],"sources":["../../../../package/common/card/card.types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport type { ButtonStyleType } from '../button/button.types';\nimport type { HtmlProps } from '../types/slots.types';\n\nexport enum CardStyleType {\n Elevated = 'elevated',\n Outlined = 'outlined',\n Filled = 'filled',\n}\n\nexport interface CardProps extends HtmlProps {\n className?: string | undefined;\n children?: ReactNode;\n styleType?: CardStyleType;\n onClick?: () => void;\n tabIndex?: number | null;\n hoverEffect?: boolean;\n style?: React.CSSProperties;\n autoGap?: boolean;\n clip?: boolean;\n}\n\nexport interface CardHeaderAction {\n title?: string;\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n icon: IconDefinition;\n}\n\nexport interface CardHeaderProps {\n className?: string;\n title?: ReactNode;\n subTitle?: ReactNode;\n /** URL string → rendered as background-image. Any other ReactNode → rendered inside the thumbnail div. */\n thumbnail?: string | ReactNode;\n actions?: CardHeaderAction[] | ReactNode;\n}\n\nexport interface CardMediaProps {\n src?: string;\n alt?: string;\n}\n\nexport interface CardContentProps {\n children?: ReactNode;\n}\n\nexport interface CardAction {\n id?: string;\n label?: string;\n styleType?: ButtonStyleType;\n onClick?: () => void;\n}\n\nexport interface CardActionsProps {\n className?: string;\n /** Renders a Button for each action object. Pass `children` for custom content instead. */\n actions?: CardAction[];\n children?: ReactNode;\n}\n"],"mappings":"AAKA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,OAAA,UACF,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../loading/spinnerLoading/index.mjs";import t from"../ripple/ripple.mjs";import n from"./checkbox.module.mjs";import{useEffect as r,useRef as i,useState as a}from"react";import o from"classnames";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l({label:l=``,selected:u=!1,onToggle:d=()=>{},className:f=``,style:p,disabled:m=!1,lineHeight:h=``,title:g=``,tabIndex:_=0,cursorDefault:v=!1,width:y=`17px`,height:b=`17px`,formValidator:x=null,children:S=null,background:C=null,isLoading:w=!1,classNames:T,styles:E,...D}){let O=i(null),[,k]=a(0);r(()=>{if(!x)return;let e=()=>k(e=>e+1);return x.registerOnUpdateListener(e),()=>x.removeOnUpdateListener(e)},[x]);function A(e){m||w||(O.current?.addRipple(),x&&x.set(!x.value),d(!u,e))}let j=x?x.value:u;return c(`div`,{...D,className:o(n.checkbox,{[n.checkboxDisabled]:m,[n.checkboxPointer]:!v},f),style:p,onClick:A,onKeyPress:e=>{e.key===`Enter`&&A(e)},role:`checkbox`,"aria-checked":j,tabIndex:_,children:[s(`div`,{title:g,className:o(n.checkboxIcon,w?n.checkboxLoading:null,T?.icon),style:E?.icon,children:w?s(`div`,{style:{width:y,height:b},children:s(e,{className:n.checkboxLoadingSpinner})}):c(`div`,{style:{width:y,height:b,...E?.checkmark},className:o(n.checkboxCheckmark,j&&n.checkboxCheckmarkChecked,T?.checkmark),children:[s(t,{ref:O,manualOnly:!0,overflowHidden:!1,rippleAnimationLength:.3,rippleBackground:`radial-gradient(transparent, var(--primary-color))`}),s(`svg`,{strokeLinejoin:`round`,strokeLinecap:`round`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`-0.5 -1.5 4 2.6`,width:`calc(${y} + 1px)`,height:`calc(${b} + 1px)`,...C?{style:{background:C}}:{},children:s(`path`,{d:`M 0 0 l 1 1 l 2 -2`,strokeWidth:`0.4`,fill:`none`})})]})}),s(`div`,{className:T?.label,style:{lineHeight:h||`100%`,...E?.label},children:S||l})]})}export{l as default};
|
|
2
|
+
//# sourceMappingURL=checkbox.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.mjs","names":[],"sources":["../../../../package/common/checkbox/checkbox.tsx"],"sourcesContent":["import { useRef, useEffect, useState, type ReactElement } from 'react';\nimport cx from 'classnames';\nimport Ripple from 'components/common/ripple';\nimport SpinnerLoading from '../loading/spinnerLoading';\n\nimport type { CheckboxProps } from './checkbox.types';\nimport styles from './checkbox.module.pcss';\n\nfunction Checkbox({\n label = '',\n selected = false,\n onToggle = () => {},\n className = '',\n style,\n disabled = false,\n lineHeight = '',\n title = '',\n tabIndex = 0,\n cursorDefault = false,\n width = '17px',\n height = '17px',\n formValidator = null,\n children = null,\n background = null,\n isLoading = false,\n classNames,\n styles: slotStyles,\n ...rest\n}: CheckboxProps): ReactElement {\n const rippleRef = useRef<{ addRipple: () => void }>(null);\n const [, forceUpdate] = useState(0);\n\n useEffect(() => {\n if (!formValidator) return;\n const listener = () => forceUpdate((n) => n + 1);\n formValidator.registerOnUpdateListener(listener);\n return () => formValidator.removeOnUpdateListener(listener);\n }, [formValidator]);\n\n function handleToggle(event?: React.MouseEvent | React.KeyboardEvent) {\n if (disabled || isLoading) return;\n rippleRef.current?.addRipple();\n if (formValidator) {\n formValidator.set(!formValidator.value);\n }\n onToggle(!selected, event);\n }\n\n const currSelected = (formValidator ? formValidator.value : selected) as boolean;\n\n return (\n <div\n {...rest}\n className={cx(\n styles.checkbox,\n {\n [styles.checkboxDisabled]: disabled,\n [styles.checkboxPointer]: !cursorDefault,\n },\n className\n )}\n style={style}\n onClick={handleToggle}\n onKeyPress={(e) => { if (e.key === 'Enter') handleToggle(e); }}\n role=\"checkbox\"\n aria-checked={currSelected}\n tabIndex={tabIndex}\n >\n <div\n title={title}\n className={cx(styles.checkboxIcon, isLoading ? styles.checkboxLoading : null, classNames?.icon)}\n style={slotStyles?.icon}\n >\n {isLoading ? (\n <div style={{ width, height }}>\n <SpinnerLoading className={styles.checkboxLoadingSpinner} />\n </div>\n ) : (\n <div\n style={{ width, height, ...slotStyles?.checkmark }}\n className={cx(\n styles.checkboxCheckmark,\n currSelected && styles.checkboxCheckmarkChecked,\n classNames?.checkmark\n )}\n >\n <Ripple\n ref={rippleRef}\n manualOnly\n overflowHidden={false}\n rippleAnimationLength={0.3}\n rippleBackground=\"radial-gradient(transparent, var(--primary-color))\"\n />\n <svg\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-0.5 -1.5 4 2.6\"\n width={`calc(${width} + 1px)`}\n height={`calc(${height} + 1px)`}\n {...(background ? { style: { background } } : {})}\n >\n <path d=\"M 0 0 l 1 1 l 2 -2\" strokeWidth=\"0.4\" fill=\"none\" />\n </svg>\n </div>\n )}\n </div>\n <div className={classNames?.label} style={{ lineHeight: lineHeight || '100%', ...slotStyles?.label }}>{children || label}</div>\n </div>\n );\n}\n\nexport default Checkbox;\n"],"mappings":"oQAQA,SAAS,EAAS,CAChB,QAAQ,GACR,WAAW,GACX,eAAiB,CAAC,EAClB,YAAY,GACZ,QACA,WAAW,GACX,aAAa,GACb,QAAQ,GACR,WAAW,EACX,gBAAgB,GAChB,QAAQ,OACR,SAAS,OACT,gBAAgB,KAChB,WAAW,KACX,aAAa,KACb,YAAY,GACZ,aACA,OAAQ,EACR,GAAG,GAC2B,CAC9B,IAAM,EAAY,EAAkC,IAAI,EAClD,EAAG,GAAe,EAAS,CAAC,EAElC,MAAgB,CACd,GAAI,CAAC,EAAe,OACpB,IAAM,MAAiB,EAAa,GAAM,EAAI,CAAC,EAE/C,OADA,EAAc,yBAAyB,CAAQ,MAClC,EAAc,uBAAuB,CAAQ,CAC5D,EAAG,CAAC,CAAa,CAAC,EAElB,SAAS,EAAa,EAAgD,CAChE,GAAY,IAChB,EAAU,SAAS,UAAU,EACzB,GACF,EAAc,IAAI,CAAC,EAAc,KAAK,EAExC,EAAS,CAAC,EAAU,CAAK,EAC3B,CAEA,IAAM,EAAgB,EAAgB,EAAc,MAAQ,EAE5D,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EACT,EAAO,SACP,EACG,EAAO,kBAAmB,GAC1B,EAAO,iBAAkB,CAAC,CAC7B,EACA,CACF,EACO,QACP,QAAS,EACT,WAAa,GAAM,CAAM,EAAE,MAAQ,SAAS,EAAa,CAAC,CAAG,EAC7D,KAAK,WACL,eAAc,EACJ,oBAfZ,CAiBE,EAAC,MAAD,CACS,QACP,UAAW,EAAG,EAAO,aAAc,EAAY,EAAO,gBAAkB,KAAM,GAAY,IAAI,EAC9F,MAAO,GAAY,cAElB,EACC,EAAC,MAAD,CAAK,MAAO,CAAE,QAAO,QAAO,WAC1B,EAAC,EAAD,CAAgB,UAAW,EAAO,sBAAyB,CAAA,CACxD,CAAA,EAEL,EAAC,MAAD,CACE,MAAO,CAAE,QAAO,SAAQ,GAAG,GAAY,SAAU,EACjD,UAAW,EACT,EAAO,kBACP,GAAgB,EAAO,yBACvB,GAAY,SACd,WANF,CAQE,EAAC,EAAD,CACE,IAAK,EACL,WAAA,GACA,eAAgB,GAChB,sBAAuB,GACvB,iBAAiB,oDAClB,CAAA,EACD,EAAC,MAAD,CACE,eAAe,QACf,cAAc,QACd,MAAM,6BACN,QAAQ,kBACR,MAAO,QAAQ,EAAM,SACrB,OAAQ,QAAQ,EAAO,SACvB,GAAK,EAAa,CAAE,MAAO,CAAE,YAAW,CAAE,EAAI,CAAC,WAE/C,EAAC,OAAD,CAAM,EAAE,qBAAqB,YAAY,MAAM,KAAK,MAAQ,CAAA,CACzD,CAAA,CACF,GAEJ,CAAA,EACL,EAAC,MAAD,CAAK,UAAW,GAAY,MAAO,MAAO,CAAE,WAAY,GAAc,OAAQ,GAAG,GAAY,KAAM,WAAI,GAAY,CAAW,CAAA,CAC3H,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={checkbox:`checkbox_VO3c2`,"checkbox-icon":`checkbox-icon_7O0Hm`,checkboxIcon:`checkbox-icon_7O0Hm`,"checkbox-loading":`checkbox-loading_4t2-w`,checkboxLoading:`checkbox-loading_4t2-w`,"checkbox-loading-spinner":`checkbox-loading-spinner_XzXt4`,checkboxLoadingSpinner:`checkbox-loading-spinner_XzXt4`,"checkbox-pointer":`checkbox-pointer_XnO8e`,checkboxPointer:`checkbox-pointer_XnO8e`,"checkbox-disabled":`checkbox-disabled_ML2rR`,checkboxDisabled:`checkbox-disabled_ML2rR`,"checkbox-checkmark":`checkbox-checkmark_Xclv9`,checkboxCheckmark:`checkbox-checkmark_Xclv9`,"checkbox-checkmark-checked":`checkbox-checkmark-checked_mD4FI`,checkboxCheckmarkChecked:`checkbox-checkmark-checked_mD4FI`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=checkbox.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.module.mjs","names":[],"sources":["../../../../package/common/checkbox/checkbox.module.pcss"],"sourcesContent":["\n.checkbox {\n user-select: none;\n display: flex;\n align-items: center;\n column-gap: 10px;\n margin: -1px;\n border: 1px solid transparent;\n width: fit-content;\n\n &-icon {\n color: #a3a9b9;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n background-color: var(--light-background-color);\n width: fit-content;\n height: fit-content;\n /* width: 16px;\n height: 16px; */\n }\n\n &-loading {\n background: transparent;\n\n &-spinner {\n width: 100%;\n height: 100%;\n }\n }\n\n &-pointer {\n cursor: pointer;\n }\n\n &:focus-visible {\n outline: none;\n border: 1px solid var(--primary-color);\n border-radius: 6px;\n }\n\n &-disabled {\n filter: brightness(0.8);\n cursor: not-allowed;\n }\n\n &-checkmark {\n border: 1.8px solid var(--text-color);\n border-radius: var(--default-border-radius);\n position: relative;\n\n svg {\n stroke: var(--text-on-primary);\n stroke-dasharray: 5;\n stroke-dashoffset: 5;\n transition:\n transform 0.1s,\n stroke-dashoffset 0.4s;\n transition-delay: 0s, 0.2s;\n background: var(--primary-color);\n transform: scale(0);\n box-sizing: content-box;\n padding: 2px;\n border-radius: var(--default-border-radius);\n }\n\n &-checked {\n svg {\n stroke-dashoffset: 0;\n transform: scale(1) translate(-3px, -3px);\n }\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../ripple/ripple.mjs";import t from"../actionIcon/actionIcon.mjs";import{ChipStyleType as n}from"./chip.types.mjs";import r from"./chip.module.mjs";import{useMemo as i}from"react";import a from"classnames";import{faXmarkCircle as o}from"@fortawesome/free-solid-svg-icons";import{jsx as s,jsxs as c}from"react/jsx-runtime";var l={default:r.chipStyleDefault,primary:r.chipStylePrimary,info:r.chipStyleInfo,warn:r.chipStyleWarn,error:r.chipStyleError};function u({className:u=``,thumbnail:d=``,text:f=``,styleType:p=n.Default,showRemoveIcon:m=!1,onClick:h,onRemove:g,..._}){let v=i(()=>{if(typeof d==`string`&&d.startsWith(`http`))return d},[d]);return s(`div`,{..._,className:a(r.chip,l[p],h&&r.chipClickable,u),onClick:h,children:s(e,{disabled:!h,style:{borderRadius:`inherit`},children:c(`div`,{className:r.chipInner,children:[d&&s(`div`,{className:r.chipThumbnail,style:v?{backgroundImage:`url(${v})`}:{},children:!v&&d}),s(`div`,{className:r.chipText,children:f}),m&&s(t,{icon:o,onClick:e=>{e.stopPropagation(),g?.()}})]})})})}export{u as default};
|
|
2
|
+
//# sourceMappingURL=chip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.mjs","names":[],"sources":["../../../../package/common/chip/chip.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { faXmarkCircle } from '@fortawesome/free-solid-svg-icons';\nimport cx from 'classnames';\n\nimport Ripple from '../ripple';\nimport ActionIcon from '../actionIcon';\nimport { ChipStyleType, ChipProps } from './chip.types';\n\nimport styles from './chip.module.pcss';\n\nconst CLASS_BY_STYLE: Record<ChipStyleType, string> = {\n default: styles.chipStyleDefault,\n primary: styles.chipStylePrimary,\n info: styles.chipStyleInfo,\n warn: styles.chipStyleWarn,\n error: styles.chipStyleError,\n};\n\nfunction Chip({\n className = '',\n thumbnail = '',\n text = '',\n styleType = ChipStyleType.Default,\n showRemoveIcon = false,\n onClick,\n onRemove,\n ...rest\n}: ChipProps) {\n const thumbnailUrl = useMemo(() => {\n if (typeof thumbnail === 'string' && thumbnail.startsWith('http')) return thumbnail;\n return undefined;\n }, [thumbnail]);\n\n return (\n <div\n {...rest}\n className={cx(styles.chip, CLASS_BY_STYLE[styleType], onClick && styles.chipClickable, className)}\n onClick={onClick}\n >\n <Ripple disabled={!onClick} style={{ borderRadius: 'inherit' }}>\n <div className={styles.chipInner}>\n {thumbnail && (\n <div\n className={styles.chipThumbnail}\n style={thumbnailUrl ? { backgroundImage: `url(${thumbnailUrl})` } : {}}\n >\n {!thumbnailUrl && thumbnail}\n </div>\n )}\n <div className={styles.chipText}>{text}</div>\n {showRemoveIcon && <ActionIcon icon={faXmarkCircle} onClick={(e) => { e.stopPropagation(); onRemove?.(); }} />}\n </div>\n </Ripple>\n </div>\n );\n}\n\nexport default Chip;\n"],"mappings":"gVAUA,IAAM,EAAgD,CACpD,QAAS,EAAO,iBAChB,QAAS,EAAO,iBAChB,KAAM,EAAO,cACb,KAAM,EAAO,cACb,MAAO,EAAO,cAChB,EAEA,SAAS,EAAK,CACZ,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,YAAY,EAAc,QAC1B,iBAAiB,GACjB,UACA,WACA,GAAG,GACS,CACZ,IAAM,EAAe,MAAc,CACjC,GAAI,OAAO,GAAc,UAAY,EAAU,WAAW,MAAM,EAAG,OAAO,CAE5E,EAAG,CAAC,CAAS,CAAC,EAEd,OACE,EAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAG,EAAO,KAAM,EAAe,GAAY,GAAW,EAAO,cAAe,CAAS,EACvF,mBAET,EAAC,EAAD,CAAQ,SAAU,CAAC,EAAS,MAAO,CAAE,aAAc,SAAU,WAC3D,EAAC,MAAD,CAAK,UAAW,EAAO,mBAAvB,CACG,GACC,EAAC,MAAD,CACE,UAAW,EAAO,cAClB,MAAO,EAAe,CAAE,gBAAiB,OAAO,EAAa,EAAG,EAAI,CAAC,WAEpE,CAAC,GAAgB,CACf,CAAA,EAEP,EAAC,MAAD,CAAK,UAAW,EAAO,kBAAW,CAAU,CAAA,EAC3C,GAAkB,EAAC,EAAD,CAAY,KAAM,EAAe,QAAU,GAAM,CAAE,EAAE,gBAAgB,EAAG,IAAW,CAAG,CAAI,CAAA,CAC1G,GACC,CAAA,CACL,CAAA,CAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={chip:`chip_rCTMl`,"chip-clickable":`chip-clickable_WTVjG`,chipClickable:`chip-clickable_WTVjG`,"chip-style-default":`chip-style-default_ppCDx`,chipStyleDefault:`chip-style-default_ppCDx`,"chip-style-primary":`chip-style-primary_oyE85`,chipStylePrimary:`chip-style-primary_oyE85`,"chip-style-info":`chip-style-info_GNJrm`,chipStyleInfo:`chip-style-info_GNJrm`,"chip-style-warn":`chip-style-warn_Jx3LU`,chipStyleWarn:`chip-style-warn_Jx3LU`,"chip-style-error":`chip-style-error_-Npvg`,chipStyleError:`chip-style-error_-Npvg`,"chip-inner":`chip-inner_mfo-w`,chipInner:`chip-inner_mfo-w`,"chip-text":`chip-text_d1juf`,chipText:`chip-text_d1juf`,"chip-thumbnail":`chip-thumbnail_-A7eU`,chipThumbnail:`chip-thumbnail_-A7eU`,"chip-container":`chip-container_oNNmF`,chipContainer:`chip-container_oNNmF`,"chip-container-inline":`chip-container-inline_11QHw`,chipContainerInline:`chip-container-inline_11QHw`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=chip.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.module.mjs","names":[],"sources":["../../../../package/common/chip/chip.module.pcss"],"sourcesContent":[".chip {\n background: rgba(0, 0, 0, 0.08);\n border-radius: 99999px;\n width: fit-content;\n position: relative;\n box-sizing: border-box;\n max-width: 100%;\n\n &-clickable {\n cursor: pointer;\n }\n\n &-style {\n &-default {\n background: rgba(0, 0, 0, 0.08);\n color: var(--text-color);\n }\n\n &-primary {\n background: var(--primary-color);\n color: var(--text-on-primary);\n }\n\n &-info {\n background: var(--info-lighter);\n color: var(--info-color);\n }\n\n &-warn {\n background: var(--warn-lighter);\n color: var(--warn-color);\n }\n\n &-error {\n background: var(--error-lighter);\n color: var(--error-color);\n }\n }\n\n &-inner {\n display: flex;\n gap: 8px;\n align-items: center;\n padding: 4px 8px;\n\n & > * {\n white-space: nowrap;\n }\n }\n\n &-text {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &-thumbnail {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 18px;\n height: 18px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 18px;\n overflow: hidden;\n background-size: cover;\n }\n\n &-container {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n\n &-inline {\n flex-wrap: nowrap;\n overflow: auto;\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.types.mjs","names":[],"sources":["../../../../package/common/chip/chip.types.ts"],"sourcesContent":["import type { HtmlProps } from '../types/slots.types';\n\nexport enum ChipStyleType {\n Default = 'default',\n Primary = 'primary',\n Info = 'info',\n Warn = 'warn',\n Error = 'error',\n}\n\nexport interface ChipProps extends HtmlProps {\n className?: string;\n text?: string;\n thumbnail?: React.ReactNode;\n styleType?: ChipStyleType;\n showRemoveIcon?: boolean;\n onClick?: () => void;\n onRemove?: () => void;\n}\n\nexport interface ChipContainerProps extends HtmlProps {\n className?: string;\n children?: React.ReactNode;\n inline?: boolean;\n}\n"],"mappings":"AAEA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,KAAA,OACA,EAAA,KAAA,OACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./chip.module.mjs";import t from"classnames";import{jsx as n}from"react/jsx-runtime";function r({className:r=void 0,children:i=null,inline:a=!1,...o}){return n(`div`,{...o,className:t(e.chipContainer,a&&e.chipContainerInline,r),children:i})}export{r as default};
|
|
2
|
+
//# sourceMappingURL=chipContainer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chipContainer.mjs","names":[],"sources":["../../../../package/common/chip/chipContainer.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport { ChipContainerProps } from './chip.types';\nimport styles from './chip.module.pcss';\n\nfunction ChipContainer({\n className = undefined,\n children = null,\n inline = false,\n ...rest\n}: ChipContainerProps): ReactElement {\n return (\n <div {...rest} className={cx(styles.chipContainer, inline && styles.chipContainerInline, className)}>\n {children}\n </div>\n );\n}\n\nexport default ChipContainer;\n"],"mappings":"mGAMA,SAAS,EAAc,CACrB,YAAY,IAAA,GACZ,WAAW,KACX,SAAS,GACT,GAAG,GACgC,CACnC,OACE,EAAC,MAAD,CAAK,GAAI,EAAM,UAAW,EAAG,EAAO,cAAe,GAAU,EAAO,oBAAqB,CAAS,EAC/F,UACE,CAAA,CAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../interactableDiv/index.mjs";import{Align as t}from"../floatingMenu/floatingMenu.types.mjs";import n from"../floatingMenu/floatingMenu.mjs";import r from"../input/input.mjs";import i from"./colorPicker.module.mjs";import{useEffect as a,useRef as o,useState as s}from"react";import c from"classnames";import{jsx as l,jsxs as u}from"react/jsx-runtime";function d(e){return/^#[0-9a-fA-F]{6}$/.test(e)||/^#[0-9a-fA-F]{8}$/.test(e)}function f(e){return/^#[0-9a-fA-F]{8}$/.test(e)?{hex6:e.slice(0,7),alpha:Math.round(parseInt(e.slice(7,9),16)/255*100)}:{hex6:e.slice(0,7),alpha:100}}function p(e,t,n){return!n||t>=100?e:`${e}${Math.round(t/100*255).toString(16).padStart(2,`0`)}`}function m(e,t){return`rgba(${parseInt(e.slice(1,3),16)}, ${parseInt(e.slice(3,5),16)}, ${parseInt(e.slice(5,7),16)}, ${t/100})`}function h(e){let t=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,r=parseInt(e.slice(5,7),16)/255,i=Math.max(t,n,r),a=i-Math.min(t,n,r),o=0;a!==0&&(o=i===t?(n-r)/a%6:i===n?(r-t)/a+2:(t-n)/a+4,o=Math.round(o*60),o<0&&(o+=360));let s=i===0?0:Math.round(a/i*100),c=Math.round(i*100);return{h:o,s,v:c}}function g(e,t,n){let r=t/100,i=n/100,a=i*r,o=a*(1-Math.abs(e/60%2-1)),s=i-a,c=0,l=0,u=0;e<60?(c=a,l=o,u=0):e<120?(c=o,l=a,u=0):e<180?(c=0,l=a,u=o):e<240?(c=0,l=o,u=a):e<300?(c=o,l=0,u=a):(c=a,l=0,u=o);let d=e=>Math.round((e+s)*255).toString(16).padStart(2,`0`);return`#${d(c)}${d(l)}${d(u)}`}function _({hex:e,onChange:t,useInputComponent:n=!1}){let[o,c]=s(e);a(()=>{c(e)},[e]);function u(e){c(e);let n=e.startsWith(`#`)?e:`#${e}`;d(n)&&t(n)}function f(){d(o.startsWith(`#`)?o:`#${o}`)||c(e)}return n?l(r,{value:o,onChange:e=>u(e),onBlur:f}):l(`input`,{type:`text`,value:o,onChange:e=>u(e.target.value),onBlur:f,className:i.hexInput,spellCheck:!1})}function v({hue:e,sat:t,val:n,alpha:r,onHueChange:a,onSVChange:s,onAlphaChange:c,showInput:d=!0,showAlpha:m=!1}){let v=o(null);function y(e){let t=v.current.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width)),r=Math.max(0,Math.min(1,(e.clientY-t.top)/t.height));return{s:n*100,v:(1-r)*100}}function b(e){let{s:t,v:n}=y(e.nativeEvent);s(t,n);let r=e=>{let{s:t,v:n}=y(e);s(t,n)},i=()=>{window.removeEventListener(`mousemove`,r),window.removeEventListener(`mouseup`,i)};window.addEventListener(`mousemove`,r),window.addEventListener(`mouseup`,i)}function x(e){let{hex6:t,alpha:n}=f(e),{h:r,s:i,v:o}=h(t);a(r),s(i,o),m&&c(n)}let S=g(e,t,n),C=m?p(S,r,!0):S;return u(`div`,{className:i.panel,children:[u(`div`,{ref:v,className:i.gradientArea,style:{"--hue":e},onMouseDown:b,children:[l(`div`,{className:i.gradientOverlay}),l(`div`,{className:i.cursor,style:{left:`${t}%`,top:`${100-n}%`}})]}),l(`input`,{type:`range`,min:0,max:359,value:e,onChange:e=>a(Number(e.target.value)),className:i.hueSlider}),m&&l(`input`,{type:`range`,min:0,max:100,value:r,onChange:e=>c(Number(e.target.value)),className:i.alphaSlider,style:{"--alpha-color":S}}),d&&l(_,{hex:C,onChange:x})]})}var y=`#3b82f6`;function b({className:r,value:a=y,onChange:b,showInput:x=!1,showAlpha:S=!1,inline:C=!1,...w}){let[T,E]=s(!1),{hex6:D,alpha:O}=f(d(a)?a:y),k=h(D),[A,j]=s({h:k.h,s:k.s,v:k.v,a:O}),M=o(A),[N,P]=s(a);if(a!==N){P(a);let{hex6:e,alpha:t}=f(d(a)?a:y);if(e!==g(A.h,A.s,A.v)||t!==A.a){let n=h(e);j({h:n.h,s:n.s,v:n.v,a:t})}}let{h:F,s:I,v:L,a:R}=A;function z(e,t,n,r){b?.(p(g(e,t,n),r,S))}function B(e){M.current.h=e,j(t=>({...t,h:e})),z(e,M.current.s,M.current.v,M.current.a)}function V(e,t){M.current.s=e,M.current.v=t,j(n=>({...n,s:e,v:t})),z(M.current.h,e,t,M.current.a)}function H(e){M.current.a=e,j(t=>({...t,a:e})),z(M.current.h,M.current.s,M.current.v,e)}let U=g(F,I,L),W=S?m(U,R):U,G=p(U,R,S),K={hue:F,sat:I,val:L,alpha:R,onHueChange:B,onSVChange:V,onAlphaChange:H,showAlpha:S};return C?l(`div`,{...w,className:c(i.colorPicker,r),children:l(v,{...K,showInput:x})}):u(`div`,{...w,className:c(i.colorPicker,r),children:[l(n,{isOpen:T,onOpenChange:E,dontCloseOnChildClick:!0,align:t.Left,content:l(v,{...K}),children:u(e,{className:i.swatch,children:[l(`div`,{className:i.swatchFill,style:{background:W}}),l(`span`,{className:i.swatchHex,children:G})]})}),x&&l(_,{hex:G,onChange:e=>b?.(e),useInputComponent:!0})]})}export{b as default};
|
|
2
|
+
//# sourceMappingURL=colorPicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorPicker.mjs","names":[],"sources":["../../../../package/common/colorPicker/colorPicker.tsx"],"sourcesContent":["import { useState, useRef, useEffect, type ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport InteractableDiv from 'components/common/interactableDiv';\nimport FloatingMenu from 'components/common/floatingMenu';\nimport Input from 'components/common/input';\nimport { Align } from 'components/common/floatingMenu/floatingMenu.types';\nimport type { ColorPickerProps } from './colorPicker.types';\n\nimport styles from './colorPicker.module.pcss';\n\n// ── Color utilities ──────────────────────────────────────────────────────────\n\nfunction isValidHex(s: string): boolean {\n return /^#[0-9a-fA-F]{6}$/.test(s) || /^#[0-9a-fA-F]{8}$/.test(s);\n}\n\n/** Split any valid hex into its 6-digit base and 0-100 alpha. */\nfunction parseHex(hex: string): { hex6: string; alpha: number } {\n if (/^#[0-9a-fA-F]{8}$/.test(hex)) {\n return {\n hex6: hex.slice(0, 7),\n alpha: Math.round((parseInt(hex.slice(7, 9), 16) / 255) * 100),\n };\n }\n return { hex6: hex.slice(0, 7), alpha: 100 };\n}\n\n/** Combine a 6-digit hex + 0-100 alpha into the right output format.\n * Full opacity (alpha === 100) is omitted — 6-digit hex implies opaque. */\nfunction buildValue(hex6: string, alpha: number, showAlpha: boolean): string {\n if (!showAlpha || alpha >= 100) return hex6;\n const a = Math.round((alpha / 100) * 255).toString(16).padStart(2, '0');\n return `${hex6}${a}`;\n}\n\nfunction hexToRgba(hex6: string, alpha: number): string {\n const r = parseInt(hex6.slice(1, 3), 16);\n const g = parseInt(hex6.slice(3, 5), 16);\n const b = parseInt(hex6.slice(5, 7), 16);\n return `rgba(${r}, ${g}, ${b}, ${alpha / 100})`;\n}\n\nfunction hexToHsv(hex6: string): { h: number; s: number; v: number } {\n const r = parseInt(hex6.slice(1, 3), 16) / 255;\n const g = parseInt(hex6.slice(3, 5), 16) / 255;\n const b = parseInt(hex6.slice(5, 7), 16) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n if (delta !== 0) {\n if (max === r) h = ((g - b) / delta) % 6;\n else if (max === g) h = (b - r) / delta + 2;\n else h = (r - g) / delta + 4;\n h = Math.round(h * 60);\n if (h < 0) h += 360;\n }\n\n const s = max === 0 ? 0 : Math.round((delta / max) * 100);\n const v = Math.round(max * 100);\n\n return { h, s, v };\n}\n\nfunction hsvToHex(h: number, s: number, v: number): string {\n const sv = s / 100;\n const vv = v / 100;\n const c = vv * sv;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = vv - c;\n\n let r = 0, g = 0, b = 0;\n if (h < 60) { r = c; g = x; b = 0; }\n else if (h < 120) { r = x; g = c; b = 0; }\n else if (h < 180) { r = 0; g = c; b = x; }\n else if (h < 240) { r = 0; g = x; b = c; }\n else if (h < 300) { r = x; g = 0; b = c; }\n else { r = c; g = 0; b = x; }\n\n const toHex = (n: number) => Math.round((n + m) * 255).toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\n// ── HexInput ─────────────────────────────────────────────────────────────────\n\ninterface HexInputProps {\n hex: string;\n onChange: (hex: string) => void;\n useInputComponent?: boolean;\n}\n\nfunction HexInput({ hex, onChange, useInputComponent = false }: HexInputProps): ReactElement {\n const [draft, setDraft] = useState(hex);\n\n useEffect(() => {\n setDraft(hex);\n }, [hex]);\n\n function handleChange(raw: string) {\n setDraft(raw);\n const normalized = raw.startsWith('#') ? raw : `#${raw}`;\n if (isValidHex(normalized)) onChange(normalized);\n }\n\n function handleBlur() {\n const normalized = draft.startsWith('#') ? draft : `#${draft}`;\n if (!isValidHex(normalized)) setDraft(hex);\n }\n\n if (useInputComponent) {\n return (\n <Input\n value={draft}\n onChange={(value: string) => handleChange(value)}\n onBlur={handleBlur}\n />\n );\n }\n\n return (\n <input\n type=\"text\"\n value={draft}\n onChange={(e) => handleChange(e.target.value)}\n onBlur={handleBlur}\n className={styles.hexInput}\n spellCheck={false}\n />\n );\n}\n\n// ── Picker panel ─────────────────────────────────────────────────────────────\n\ninterface PickerPanelProps {\n hue: number;\n sat: number;\n val: number;\n alpha: number;\n onHueChange: (h: number) => void;\n onSVChange: (s: number, v: number) => void;\n onAlphaChange: (a: number) => void;\n showInput?: boolean;\n showAlpha?: boolean;\n}\n\nfunction PickerPanel({\n hue, sat, val, alpha,\n onHueChange, onSVChange, onAlphaChange,\n showInput = true, showAlpha = false,\n}: PickerPanelProps): ReactElement {\n const gradientRef = useRef<HTMLDivElement>(null);\n\n function getSVFromEvent(e: MouseEvent): { s: number; v: number } {\n const rect = gradientRef.current!.getBoundingClientRect();\n const x = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n const y = Math.max(0, Math.min(1, (e.clientY - rect.top) / rect.height));\n return { s: x * 100, v: (1 - y) * 100 };\n }\n\n function onGradientMouseDown(e: React.MouseEvent) {\n const { s, v } = getSVFromEvent(e.nativeEvent);\n onSVChange(s, v);\n\n const onMove = (ev: MouseEvent) => {\n const { s, v } = getSVFromEvent(ev);\n onSVChange(s, v);\n };\n const onUp = () => {\n window.removeEventListener('mousemove', onMove);\n window.removeEventListener('mouseup', onUp);\n };\n window.addEventListener('mousemove', onMove);\n window.addEventListener('mouseup', onUp);\n }\n\n function onHexChange(normalized: string) {\n const { hex6, alpha: parsedAlpha } = parseHex(normalized);\n const { h, s, v } = hexToHsv(hex6);\n onHueChange(h);\n onSVChange(s, v);\n if (showAlpha) onAlphaChange(parsedAlpha);\n }\n\n const hex6 = hsvToHex(hue, sat, val);\n const hexInputValue = showAlpha ? buildValue(hex6, alpha, true) : hex6;\n\n return (\n <div className={styles.panel}>\n <div\n ref={gradientRef}\n className={styles.gradientArea}\n style={{ '--hue': hue } as React.CSSProperties}\n onMouseDown={onGradientMouseDown}\n >\n <div className={styles.gradientOverlay} />\n <div\n className={styles.cursor}\n style={{ left: `${sat}%`, top: `${100 - val}%` }}\n />\n </div>\n\n <input\n type=\"range\"\n min={0}\n max={359}\n value={hue}\n onChange={(e) => onHueChange(Number(e.target.value))}\n className={styles.hueSlider}\n />\n\n {showAlpha && (\n <input\n type=\"range\"\n min={0}\n max={100}\n value={alpha}\n onChange={(e) => onAlphaChange(Number(e.target.value))}\n className={styles.alphaSlider}\n style={{ '--alpha-color': hex6 } as React.CSSProperties}\n />\n )}\n\n {showInput && <HexInput hex={hexInputValue} onChange={onHexChange} />}\n </div>\n );\n}\n\n// ── ColorPicker ───────────────────────────────────────────────────────────────\n\nconst DEFAULT_COLOR = '#3b82f6';\n\nfunction ColorPicker({\n className,\n value = DEFAULT_COLOR,\n onChange,\n showInput = false,\n showAlpha = false,\n inline = false,\n ...rest\n}: ColorPickerProps): ReactElement {\n const [isOpen, setIsOpen] = useState(false);\n\n const initSafe = isValidHex(value) ? value : DEFAULT_COLOR;\n const { hex6: initHex6, alpha: initAlpha } = parseHex(initSafe);\n const initHsv = hexToHsv(initHex6);\n\n // Single state object so hue survives when saturation/value hit 0\n // (hexToHsv of any grey returns h=0, which would corrupt hue if derived from props).\n const [hsva, setHsva] = useState({ h: initHsv.h, s: initHsv.s, v: initHsv.v, a: initAlpha });\n\n // Ref mirrors state so drag callbacks never read stale closure values.\n const cur = useRef(hsva);\n\n // Sync from external prop changes: \"derive state during render\" pattern\n // avoids setState-in-effect. We compare the incoming hex against what our\n // current state produces — if they match, the change came from us and we skip.\n const [prevValue, setPrevValue] = useState(value);\n if (value !== prevValue) {\n setPrevValue(value);\n const safe = isValidHex(value) ? value : DEFAULT_COLOR;\n const { hex6: incomingHex6, alpha: incomingA } = parseHex(safe);\n const currentHex6 = hsvToHex(hsva.h, hsva.s, hsva.v);\n if (incomingHex6 !== currentHex6 || incomingA !== hsva.a) {\n const hsv = hexToHsv(incomingHex6);\n const next = { h: hsv.h, s: hsv.s, v: hsv.v, a: incomingA };\n setHsva(next);\n }\n }\n\n const { h: hue, s: sat, v: val, a: alpha } = hsva;\n\n function emit(h: number, s: number, v: number, a: number) {\n onChange?.(buildValue(hsvToHex(h, s, v), a, showAlpha));\n }\n\n function handleHueChange(h: number) {\n cur.current.h = h;\n setHsva(prev => ({ ...prev, h }));\n emit(h, cur.current.s, cur.current.v, cur.current.a);\n }\n\n function handleSVChange(s: number, v: number) {\n cur.current.s = s;\n cur.current.v = v;\n setHsva(prev => ({ ...prev, s, v }));\n emit(cur.current.h, s, v, cur.current.a);\n }\n\n function handleAlphaChange(a: number) {\n cur.current.a = a;\n setHsva(prev => ({ ...prev, a }));\n emit(cur.current.h, cur.current.s, cur.current.v, a);\n }\n\n const hex6 = hsvToHex(hue, sat, val);\n const swatchBackground = showAlpha ? hexToRgba(hex6, alpha) : hex6;\n const displayValue = buildValue(hex6, alpha, showAlpha);\n\n const pickerPanelProps: PickerPanelProps = {\n hue, sat, val, alpha,\n onHueChange: handleHueChange,\n onSVChange: handleSVChange,\n onAlphaChange: handleAlphaChange,\n showAlpha,\n };\n\n if (inline) {\n return (\n <div {...rest} className={cx(styles.colorPicker, className)}>\n <PickerPanel {...pickerPanelProps} showInput={showInput} />\n </div>\n );\n }\n\n return (\n <div {...rest} className={cx(styles.colorPicker, className)}>\n <FloatingMenu\n isOpen={isOpen}\n onOpenChange={setIsOpen}\n dontCloseOnChildClick\n align={Align.Left}\n content={<PickerPanel {...pickerPanelProps} />}\n >\n <InteractableDiv className={styles.swatch}>\n <div className={styles.swatchFill} style={{ background: swatchBackground }} />\n <span className={styles.swatchHex}>{displayValue}</span>\n </InteractableDiv>\n </FloatingMenu>\n\n {showInput && (\n <HexInput\n hex={displayValue}\n onChange={(v) => onChange?.(v)}\n useInputComponent\n />\n )}\n </div>\n );\n}\n\nexport default ColorPicker;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={colorPicker:`colorPicker_Ts3an`,swatch:`swatch_NW78g`,swatchHex:`swatchHex_j7-i5`,swatchFill:`swatchFill_oNtHf`,panel:`panel_WXEvY`,gradientArea:`gradientArea_qEZim`,gradientOverlay:`gradientOverlay_ZQybe`,cursor:`cursor_m67Lm`,hueSlider:`hueSlider_k3Knb`,alphaSlider:`alphaSlider_OT2sD`,hexInput:`hexInput_zQw4s`};export{e as default};
|
|
2
|
+
//# sourceMappingURL=colorPicker.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorPicker.module.mjs","names":[],"sources":["../../../../package/common/colorPicker/colorPicker.module.pcss"],"sourcesContent":[".colorPicker {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.swatch {\n width: 32px;\n height: 32px;\n border-radius: var(--default-border-radius);\n position: relative;\n cursor: pointer;\n flex-shrink: 0;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);\n /* checkerboard so transparency is visible */\n background-image:\n linear-gradient(45deg, #bbb 25%, transparent 25%),\n linear-gradient(-45deg, #bbb 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #bbb 75%),\n linear-gradient(-45deg, transparent 75%, #bbb 75%);\n background-size: 8px 8px;\n background-position: 0 0, 0 4px, 4px -4px, -4px 0;\n background-color: white;\n\n &:hover {\n & .swatchHex {\n opacity: 1;\n }\n }\n}\n\n.swatchFill {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n}\n\n.swatchHex {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 8px;\n font-family: monospace;\n background: rgba(0, 0, 0, 0.55);\n color: white;\n border-radius: inherit;\n opacity: 0;\n transition: opacity 0.15s;\n user-select: none;\n pointer-events: none;\n z-index: 1;\n}\n\n.panel {\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 224px;\n}\n\n.gradientArea {\n width: 200px;\n height: 160px;\n position: relative;\n cursor: crosshair;\n border-radius: 4px;\n overflow: hidden;\n background: linear-gradient(to right, white, hsl(calc(var(--hue) * 1deg), 100%, 50%));\n}\n\n.gradientOverlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, transparent, black);\n}\n\n.cursor {\n position: absolute;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n border: 2px solid white;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);\n transform: translate(-50%, -50%);\n pointer-events: none;\n z-index: 1;\n}\n\n.hueSlider {\n -webkit-appearance: none;\n appearance: none;\n width: 100%;\n height: 10px;\n border-radius: var(--default-border-radius);\n outline: none;\n cursor: pointer;\n background: linear-gradient(\n to right,\n hsl(0, 100%, 50%),\n hsl(60, 100%, 50%),\n hsl(120, 100%, 50%),\n hsl(180, 100%, 50%),\n hsl(240, 100%, 50%),\n hsl(300, 100%, 50%),\n hsl(360, 100%, 50%)\n );\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 6px;\n height: 20px;\n border-radius: var(--default-border-radius);\n background: var(--primary-color);\n box-shadow: var(--card-shadow);\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n width: 6px;\n height: 20px;\n border-radius: var(--default-border-radius);\n background: var(--primary-color);\n box-shadow: var(--card-shadow);\n cursor: pointer;\n }\n}\n\n.alphaSlider {\n -webkit-appearance: none;\n appearance: none;\n width: 100%;\n height: 10px;\n border-radius: var(--default-border-radius);\n outline: none;\n cursor: pointer;\n /* checkerboard base so transparency is visible under the gradient */\n background-image:\n linear-gradient(to right, transparent, var(--alpha-color)),\n linear-gradient(45deg, #bbb 25%, transparent 25%),\n linear-gradient(-45deg, #bbb 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #bbb 75%),\n linear-gradient(-45deg, transparent 75%, #bbb 75%);\n background-size: 100% 100%, 8px 8px, 8px 8px, 8px 8px, 8px 8px;\n background-position: 0 0, 0 0, 0 4px, 4px -4px, -4px 0;\n background-color: white;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 6px;\n height: 20px;\n border-radius: var(--default-border-radius);\n background: var(--primary-color);\n box-shadow: var(--card-shadow);\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n width: 6px;\n height: 20px;\n border-radius: var(--default-border-radius);\n background: var(--primary-color);\n box-shadow: var(--card-shadow);\n cursor: pointer;\n }\n}\n\n.hexInput {\n width: 100%;\n padding: 5px 8px;\n border-radius: var(--default-border-radius);\n border: 1px solid var(--border-color);\n background: var(--input-background);\n color: var(--text-color);\n font-size: 13px;\n font-family: monospace;\n box-sizing: border-box;\n outline: none;\n\n &:focus {\n border-color: var(--primary-color);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../actionButtons/actionButtons.mjs";import t from"../modal/modal.mjs";import{useState as n}from"react";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a({children:a=null,className:o=``,onClose:s=()=>{},onConfirm:c=()=>{},title:l=``,content:u=null,isOpen:d=void 0,actionButtonsProps:f={}}){let[p,m]=n(!1),[h,g]=n(!1);function _(e=!1){m(!1),s(e)}async function v(){g(!0);try{await c(),_(!0)}finally{g(!1)}}let y=i(t,{title:l,isOpen:d===void 0?p:d,onClose:()=>_(),className:a?void 0:o,children:[u,r(e,{onClose:()=>_(),onSubmit:v,submitLabel:`Confirm`,isSubmitButtonLoading:h,...f})]});return a?i(`div`,{className:o,children:[r(`span`,{onClick:()=>m(!0),children:a}),y]}):y}export{a as default};
|
|
2
|
+
//# sourceMappingURL=confirmModal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmModal.mjs","names":[],"sources":["../../../../package/common/confirmModal/confirmModal.tsx"],"sourcesContent":["import { useState, type ReactElement } from 'react';\n\nimport Modal from '../modal';\nimport { ActionButtons } from '../actionButtons';\nimport type { ConfirmModalProps } from './confirmModal.types';\n\nfunction ConfirmModal({\n children = null,\n className = '',\n onClose = () => {},\n onConfirm = () => {},\n title = '',\n content = null,\n isOpen: propIsOpen = undefined,\n actionButtonsProps = {},\n}: ConfirmModalProps): ReactElement {\n const [internalOpen, setInternalOpen] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n function handleClose(didSubmit = false) {\n setInternalOpen(false);\n onClose(didSubmit);\n }\n\n async function handleConfirm() {\n setIsSubmitting(true);\n try {\n await onConfirm();\n handleClose(true);\n } finally {\n setIsSubmitting(false);\n }\n }\n\n const isOpen = propIsOpen === undefined ? internalOpen : propIsOpen;\n\n const modal = (\n <Modal title={title} isOpen={isOpen} onClose={() => handleClose()} className={children ? undefined : className}>\n {content}\n <ActionButtons\n onClose={() => handleClose()}\n onSubmit={handleConfirm}\n submitLabel=\"Confirm\"\n isSubmitButtonLoading={isSubmitting}\n {...actionButtonsProps}\n />\n </Modal>\n );\n\n if (!children) return modal;\n\n return (\n <div className={className}>\n <span onClick={() => setInternalOpen(true)}>{children}</span>\n {modal}\n </div>\n );\n}\n\nexport default ConfirmModal;\n"],"mappings":"uKAMA,SAAS,EAAa,CACpB,WAAW,KACX,YAAY,GACZ,cAAgB,CAAC,EACjB,gBAAkB,CAAC,EACnB,QAAQ,GACR,UAAU,KACV,OAAQ,EAAa,IAAA,GACrB,qBAAqB,CAAC,GACY,CAClC,GAAM,CAAC,EAAc,GAAmB,EAAS,EAAK,EAChD,CAAC,EAAc,GAAmB,EAAS,EAAK,EAEtD,SAAS,EAAY,EAAY,GAAO,CACtC,EAAgB,EAAK,EACrB,EAAQ,CAAS,CACnB,CAEA,eAAe,GAAgB,CAC7B,EAAgB,EAAI,EACpB,GAAI,CACF,MAAM,EAAU,EAChB,EAAY,EAAI,CAClB,QAAU,CACR,EAAgB,EAAK,CACvB,CACF,CAIA,IAAM,EACJ,EAAC,EAAD,CAAc,QAAe,OAHhB,IAAe,IAAA,GAAY,EAAe,EAGlB,YAAe,EAAY,EAAG,UAAW,EAAW,IAAA,GAAY,WAArG,CACG,EACD,EAAC,EAAD,CACE,YAAe,EAAY,EAC3B,SAAU,EACV,YAAY,UACZ,sBAAuB,EACvB,GAAI,CACL,CAAA,CACI,IAKT,OAFK,EAGH,EAAC,MAAD,CAAgB,qBAAhB,CACE,EAAC,OAAD,CAAM,YAAe,EAAgB,EAAI,EAAI,UAAe,CAAA,EAC3D,CACE,IANe,CAQxB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../../../interactableDiv/index.mjs";import t from"./datePickerMonth.module.mjs";import{getLocale as n}from"../../../../services/localization.mjs";import{getDateFromDayMonthAndYear as r,getDayMonthAndYearOfDate as i,getDaysInMonth as a,getStartWeekDayOfMonth as o,getWeekDays as s}from"../../dateFunctions.mjs";import c from"classnames";import{jsx as l,jsxs as u}from"react/jsx-runtime";function d(e,t,n,a,o){let{day:s,month:c,year:l}=a?i(a):{day:void 0,month:void 0,year:void 0},{day:u,month:d,year:f}=o?i(o):{day:void 0,month:void 0,year:void 0},p=r(e,t,n),m=e===s&&t===c&&n===l,h=e===u&&t===d&&n===f,g=!1;if(s!==void 0&&c!==void 0&&l!==void 0&&u!==void 0&&d!==void 0&&f!==void 0){let e=r(s,c,l),t=r(u,d,f);g=p.getTime()>=e.getTime()&&p.getTime()<=t.getTime()}return{isStartDate:m,isInRange:g,isEndDate:h}}function f(e,t,n,a,o){let s=r(e,t,n);if(a){let{day:e,month:t,year:n}=i(a);if(s<r(e,t,n))return!0}if(o){let{day:e,month:t,year:n}=i(o);if(s>r(e,t,n))return!0}return!1}function p(e,t,n){let{day:r,month:a,year:o}=i(new Date);return e===r&&t===a&&n===o}function m({className:i=``,month:m=new Date().getMonth()+1,year:h=new Date().getFullYear(),onSelect:g=()=>null,selectionStart:_,selectionEnd:v,minDate:y=null,maxDate:b=null}){let x=n(`-`),S=a(m,h),C=o(m,h);return l(`div`,{className:c(t.datePickerMonth,i),children:u(`div`,{className:c(t.datePickerMonthContent),children:[s(x).map((e,t)=>l(`div`,{children:e},t)),Array.from(Array(C-1).keys()).map(e=>l(`div`,{className:c(t.datePickerMonthItem,t.datePickerMonthPlaceholder)},e)),Array.from(Array(S).keys()).map(n=>{let i=n+1,a=d(i,m,h,_,v),o=f(i,m,h,y,b),s=p(i,m,h);return l(e,{onClick:()=>o?null:g(r(i,m,h)),className:c(t.datePickerMonthDay,t.datePickerMonthItem,{[t.datePickerMonthDaySelected]:a.isInRange,[t.datePickerMonthDaySelectedStart]:a.isStartDate,[t.datePickerMonthDaySelectedEnd]:a.isEndDate,[t.datePickerMonthDayDisabled]:o,[t.datePickerMonthDayToday]:s}),children:i},i)}),Array.from(Array(42-(C+S-1)).keys()).map(e=>l(`div`,{className:c(t.datePickerMonthItem,t.datePickerMonthPlaceholder),children:`\xA0`},e))]})})}export{m as default};
|
|
2
|
+
//# sourceMappingURL=datePickerMonth.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datePickerMonth.mjs","names":[],"sources":["../../../../../../package/common/datePicker/components/datePickerMonth/datePickerMonth.tsx"],"sourcesContent":["import cx from 'classnames';\n\nimport styles from './datePickerMonth.module.pcss';\nimport { getLocale } from 'services/localization';\nimport InteractableDiv from 'components/common/interactableDiv';\nimport {\n getDateFromDayMonthAndYear,\n getDayMonthAndYearOfDate,\n getDaysInMonth,\n getStartWeekDayOfMonth,\n getWeekDays,\n} from '../../dateFunctions';\n\ninterface DatePickerMonthProps {\n className?: string;\n month?: number;\n year?: number;\n onSelect?: (date: Date) => void;\n selectionStart?: Date;\n selectionEnd?: Date;\n minDate?: Date | null;\n maxDate?: Date | null;\n}\n\nfunction checkSelected(\n day: number,\n month: number,\n year: number,\n selectionStart: Date | undefined,\n selectionEnd: Date | undefined,\n) {\n const { day: startDay, month: startMonth, year: startYear } = selectionStart\n ? getDayMonthAndYearOfDate(selectionStart)\n : { day: undefined, month: undefined, year: undefined };\n const { day: endDay, month: endMonth, year: endYear } = selectionEnd\n ? getDayMonthAndYearOfDate(selectionEnd)\n : { day: undefined, month: undefined, year: undefined };\n\n const toCheckNoTime = getDateFromDayMonthAndYear(day, month, year);\n\n const isStartDate = day === startDay && month === startMonth && year === startYear;\n const isEndDate = day === endDay && month === endMonth && year === endYear;\n\n let isInRange = false;\n if (startDay !== undefined && startMonth !== undefined && startYear !== undefined &&\n endDay !== undefined && endMonth !== undefined && endYear !== undefined) {\n const selectionStartNoTime = getDateFromDayMonthAndYear(startDay, startMonth, startYear);\n const selectionEndNoTime = getDateFromDayMonthAndYear(endDay, endMonth, endYear);\n isInRange =\n toCheckNoTime.getTime() >= selectionStartNoTime.getTime() &&\n toCheckNoTime.getTime() <= selectionEndNoTime.getTime();\n }\n\n return { isStartDate, isInRange, isEndDate };\n}\n\nfunction checkDisabled(\n day: number,\n month: number,\n year: number,\n minDate: Date | null | undefined,\n maxDate: Date | null | undefined,\n): boolean {\n const toCheckNoTime = getDateFromDayMonthAndYear(day, month, year);\n\n if (minDate) {\n const { day: minDay, month: minMonth, year: minYear } = getDayMonthAndYearOfDate(minDate);\n if (toCheckNoTime < getDateFromDayMonthAndYear(minDay, minMonth, minYear)) return true;\n }\n\n if (maxDate) {\n const { day: maxDay, month: maxMonth, year: maxYear } = getDayMonthAndYearOfDate(maxDate);\n if (toCheckNoTime > getDateFromDayMonthAndYear(maxDay, maxMonth, maxYear)) return true;\n }\n\n return false;\n}\n\nfunction checkIsToday(day: number, month: number, year: number): boolean {\n const { day: currDay, month: currMonth, year: currYear } = getDayMonthAndYearOfDate(new Date());\n return day === currDay && month === currMonth && year === currYear;\n}\n\nexport default function DatePickerMonth({\n className = '',\n month = new Date().getMonth() + 1,\n year = new Date().getFullYear(),\n onSelect = () => null,\n selectionStart,\n selectionEnd,\n minDate = null,\n maxDate = null,\n}: DatePickerMonthProps) {\n const locale = getLocale('-');\n const daysInMonth = getDaysInMonth(month, year);\n const startWeekDayOfMonth = getStartWeekDayOfMonth(month, year);\n\n return (\n <div className={cx(styles.datePickerMonth, className)}>\n <div className={cx(styles.datePickerMonthContent)}>\n {getWeekDays(locale).map((weekDay, index) => <div key={index}>{weekDay}</div>)}\n {Array.from(Array(startWeekDayOfMonth - 1).keys()).map((index) => (\n <div\n key={index}\n className={cx(styles.datePickerMonthItem, styles.datePickerMonthPlaceholder)}\n />\n ))}\n {Array.from(Array(daysInMonth).keys()).map((index) => {\n const day = index + 1;\n const selectedRes = checkSelected(day, month, year, selectionStart, selectionEnd);\n const isDisabled = checkDisabled(day, month, year, minDate, maxDate);\n const isToday = checkIsToday(day, month, year);\n\n return (\n <InteractableDiv\n key={day}\n onClick={() => isDisabled ? null : onSelect(getDateFromDayMonthAndYear(day, month, year))}\n className={cx(styles.datePickerMonthDay, styles.datePickerMonthItem, {\n [styles.datePickerMonthDaySelected]: selectedRes.isInRange,\n [styles.datePickerMonthDaySelectedStart]: selectedRes.isStartDate,\n [styles.datePickerMonthDaySelectedEnd]: selectedRes.isEndDate,\n [styles.datePickerMonthDayDisabled]: isDisabled,\n [styles.datePickerMonthDayToday]: isToday,\n })}\n >\n {day}\n </InteractableDiv>\n );\n })}\n {Array.from(Array(42 - (startWeekDayOfMonth + daysInMonth - 1)).keys()).map((index) => (\n <div\n key={index}\n className={cx(styles.datePickerMonthItem, styles.datePickerMonthPlaceholder)}\n >\n \n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|