@aurora-ds/components 0.25.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -187
- package/dist/cjs/index.js +2395 -3605
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +2379 -3578
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +648 -1902
- package/package.json +92 -77
- package/dist/cjs/components/actions/button/Button.d.ts +0 -20
- package/dist/cjs/components/actions/button/Button.props.d.ts +0 -60
- package/dist/cjs/components/actions/button/Button.styles.d.ts +0 -18
- package/dist/cjs/components/actions/button/index.d.ts +0 -2
- package/dist/cjs/components/actions/button/utils/getButtonSizeStyles.utils.d.ts +0 -12
- package/dist/cjs/components/actions/button/utils/getButtonVariantStyles.utils.d.ts +0 -7
- package/dist/cjs/components/actions/button-toggle/ButtonToggle/ButtonToggle.d.ts +0 -15
- package/dist/cjs/components/actions/button-toggle/ButtonToggle/ButtonToggle.props.d.ts +0 -48
- package/dist/cjs/components/actions/button-toggle/ButtonToggle/ButtonToggle.styles.d.ts +0 -4
- package/dist/cjs/components/actions/button-toggle/ButtonToggle/index.d.ts +0 -2
- package/dist/cjs/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.d.ts +0 -14
- package/dist/cjs/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.props.d.ts +0 -29
- package/dist/cjs/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.styles.d.ts +0 -3
- package/dist/cjs/components/actions/button-toggle/ButtonToggleGroup/index.d.ts +0 -2
- package/dist/cjs/components/actions/button-toggle/index.d.ts +0 -2
- package/dist/cjs/components/actions/icon-button/IconButton.d.ts +0 -17
- package/dist/cjs/components/actions/icon-button/IconButton.props.d.ts +0 -55
- package/dist/cjs/components/actions/icon-button/IconButton.styles.d.ts +0 -4
- package/dist/cjs/components/actions/icon-button/index.d.ts +0 -2
- package/dist/cjs/components/actions/icon-button/utils/getIconButtonSizeStyles.utils.d.ts +0 -9
- package/dist/cjs/components/data-display/avatar/Avatar.d.ts +0 -24
- package/dist/cjs/components/data-display/avatar/Avatar.props.d.ts +0 -39
- package/dist/cjs/components/data-display/avatar/Avatar.styles.d.ts +0 -10
- package/dist/cjs/components/data-display/avatar/AvatarGroup.d.ts +0 -9
- package/dist/cjs/components/data-display/avatar/avatar-group/AvatarGroup.d.ts +0 -9
- package/dist/cjs/components/data-display/avatar/avatar-group/AvatarGroup.props.d.ts +0 -10
- package/dist/cjs/components/data-display/avatar/avatar-group/AvatarGroup.styles.d.ts +0 -14
- package/dist/cjs/components/data-display/avatar/index.d.ts +0 -4
- package/dist/cjs/components/data-display/avatar/utils/getAvatarSizes.utils.d.ts +0 -11
- package/dist/cjs/components/data-display/chip/Chip.d.ts +0 -16
- package/dist/cjs/components/data-display/chip/Chip.props.d.ts +0 -40
- package/dist/cjs/components/data-display/chip/Chip.styles.d.ts +0 -4
- package/dist/cjs/components/data-display/chip/index.d.ts +0 -2
- package/dist/cjs/components/data-display/chip/utils/getChipColorStyles.utils.d.ts +0 -12
- package/dist/cjs/components/data-display/chip/utils/getChipContentSize.utils.d.ts +0 -6
- package/dist/cjs/components/data-display/chip/utils/getChipSizeStyles.utils.d.ts +0 -10
- package/dist/cjs/components/data-display/icon/Icon.d.ts +0 -35
- package/dist/cjs/components/data-display/icon/Icon.props.d.ts +0 -14
- package/dist/cjs/components/data-display/icon/Icon.styles.d.ts +0 -3
- package/dist/cjs/components/data-display/icon/index.d.ts +0 -2
- package/dist/cjs/components/data-display/skeleton/Skeleton.d.ts +0 -4
- package/dist/cjs/components/data-display/skeleton/Skeleton.props.d.ts +0 -7
- package/dist/cjs/components/data-display/skeleton/Skeleton.styles.d.ts +0 -3
- package/dist/cjs/components/data-display/skeleton/index.d.ts +0 -2
- package/dist/cjs/components/data-display/status/Status.d.ts +0 -16
- package/dist/cjs/components/data-display/status/Status.props.d.ts +0 -40
- package/dist/cjs/components/data-display/status/Status.styles.d.ts +0 -4
- package/dist/cjs/components/data-display/status/index.d.ts +0 -2
- package/dist/cjs/components/data-display/status/utils/getStatusColorStyles.utils.d.ts +0 -7
- package/dist/cjs/components/data-display/status/utils/getStatusContentSize.utils.d.ts +0 -8
- package/dist/cjs/components/data-display/status/utils/getStatusSizeStyles.utils.d.ts +0 -12
- package/dist/cjs/components/forms/date-picker/DatePicker.d.ts +0 -3
- package/dist/cjs/components/forms/date-picker/DatePicker.props.d.ts +0 -29
- package/dist/cjs/components/forms/date-picker/DatePicker.styles.d.ts +0 -9
- package/dist/cjs/components/forms/date-picker/calendar/Calendar.d.ts +0 -3
- package/dist/cjs/components/forms/date-picker/calendar/Calendar.props.d.ts +0 -13
- package/dist/cjs/components/forms/date-picker/calendar/Calendar.styles.d.ts +0 -3
- package/dist/cjs/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.d.ts +0 -3
- package/dist/cjs/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.props.d.ts +0 -20
- package/dist/cjs/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.d.ts +0 -13
- package/dist/cjs/components/forms/date-picker/calendar/calendar-header/CalendarHeader.d.ts +0 -3
- package/dist/cjs/components/forms/date-picker/calendar/calendar-header/CalendarHeader.props.d.ts +0 -15
- package/dist/cjs/components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.d.ts +0 -6
- package/dist/cjs/components/forms/date-picker/calendar/index.d.ts +0 -2
- package/dist/cjs/components/forms/date-picker/index.d.ts +0 -2
- package/dist/cjs/components/forms/date-picker/utils/datePicker.utils.d.ts +0 -13
- package/dist/cjs/components/forms/file-picker/FilePicker.d.ts +0 -24
- package/dist/cjs/components/forms/file-picker/FilePicker.props.d.ts +0 -99
- package/dist/cjs/components/forms/file-picker/FilePicker.styles.d.ts +0 -19
- package/dist/cjs/components/forms/file-picker/index.d.ts +0 -2
- package/dist/cjs/components/forms/form/Form.d.ts +0 -3
- package/dist/cjs/components/forms/form/Form.props.d.ts +0 -9
- package/dist/cjs/components/forms/form/Form.styles.d.ts +0 -3
- package/dist/cjs/components/forms/form/index.d.ts +0 -2
- package/dist/cjs/components/forms/image-picker/ImagePicker.d.ts +0 -18
- package/dist/cjs/components/forms/image-picker/ImagePicker.props.d.ts +0 -76
- package/dist/cjs/components/forms/image-picker/index.d.ts +0 -2
- package/dist/cjs/components/forms/input/Input.d.ts +0 -3
- package/dist/cjs/components/forms/input/Input.props.d.ts +0 -46
- package/dist/cjs/components/forms/input/Input.styles.d.ts +0 -15
- package/dist/cjs/components/forms/input/index.d.ts +0 -2
- package/dist/cjs/components/forms/select/Select.d.ts +0 -25
- package/dist/cjs/components/forms/select/Select.props.d.ts +0 -54
- package/dist/cjs/components/forms/select/Select.styles.d.ts +0 -10
- package/dist/cjs/components/forms/select/SelectItem/SelectItem.d.ts +0 -7
- package/dist/cjs/components/forms/select/SelectItem/SelectItem.props.d.ts +0 -19
- package/dist/cjs/components/forms/select/SelectItem/SelectItem.styles.d.ts +0 -7
- package/dist/cjs/components/forms/select/SelectItem/index.d.ts +0 -2
- package/dist/cjs/components/forms/select/index.d.ts +0 -2
- package/dist/cjs/components/forms/textarea/TextArea.d.ts +0 -3
- package/dist/cjs/components/forms/textarea/TextArea.props.d.ts +0 -39
- package/dist/cjs/components/forms/textarea/TextArea.styles.d.ts +0 -11
- package/dist/cjs/components/forms/textarea/index.d.ts +0 -2
- package/dist/cjs/components/foundation/icon/Icon.d.ts +0 -42
- package/dist/cjs/components/foundation/icon/Icon.props.d.ts +0 -26
- package/dist/cjs/components/foundation/icon/Icon.styles.d.ts +0 -3
- package/dist/cjs/components/foundation/icon/index.d.ts +0 -2
- package/dist/cjs/components/foundation/text/Text.d.ts +0 -21
- package/dist/cjs/components/foundation/text/Text.props.d.ts +0 -40
- package/dist/cjs/components/foundation/text/Text.styles.d.ts +0 -4
- package/dist/cjs/components/foundation/text/index.d.ts +0 -2
- package/dist/cjs/components/foundation/text/utils/getTextVariantStyles.utils.d.ts +0 -7
- package/dist/cjs/components/foundation/text/utils/getTruncateTextStyles.utils.d.ts +0 -21
- package/dist/cjs/components/foundation/text/utils/parseTextWithBold.utils.d.ts +0 -7
- package/dist/cjs/components/index.d.ts +0 -35
- package/dist/cjs/components/inputs/button/Button.d.ts +0 -12
- package/dist/cjs/components/inputs/button/Button.props.d.ts +0 -28
- package/dist/cjs/components/inputs/button/Button.styles.d.ts +0 -18
- package/dist/cjs/components/inputs/button/index.d.ts +0 -2
- package/dist/cjs/components/inputs/icon-button/IconButton.d.ts +0 -4
- package/dist/cjs/components/inputs/icon-button/IconButton.props.d.ts +0 -27
- package/dist/cjs/components/inputs/icon-button/IconButton.styles.d.ts +0 -4
- package/dist/cjs/components/inputs/icon-button/index.d.ts +0 -2
- package/dist/cjs/components/inputs/input/Input.d.ts +0 -6
- package/dist/cjs/components/inputs/input/Input.props.d.ts +0 -17
- package/dist/cjs/components/inputs/input/Input.styles.d.ts +0 -7
- package/dist/cjs/components/inputs/input/index.d.ts +0 -2
- package/dist/cjs/components/layout/accordion/Accordion.d.ts +0 -10
- package/dist/cjs/components/layout/accordion/Accordion.props.d.ts +0 -36
- package/dist/cjs/components/layout/accordion/Accordion.styles.d.ts +0 -7
- package/dist/cjs/components/layout/accordion/index.d.ts +0 -2
- package/dist/cjs/components/layout/box/Box.d.ts +0 -23
- package/dist/cjs/components/layout/box/Box.props.d.ts +0 -139
- package/dist/cjs/components/layout/box/Box.styles.d.ts +0 -7
- package/dist/cjs/components/layout/box/index.d.ts +0 -2
- package/dist/cjs/components/layout/card/Card.d.ts +0 -14
- package/dist/cjs/components/layout/card/Card.props.d.ts +0 -68
- package/dist/cjs/components/layout/card/Card.styles.d.ts +0 -7
- package/dist/cjs/components/layout/card/index.d.ts +0 -2
- package/dist/cjs/components/layout/grid/Grid.d.ts +0 -15
- package/dist/cjs/components/layout/grid/Grid.props.d.ts +0 -57
- package/dist/cjs/components/layout/grid/Grid.styles.d.ts +0 -7
- package/dist/cjs/components/layout/grid/index.d.ts +0 -2
- package/dist/cjs/components/layout/page-construction/page/Page.d.ts +0 -10
- package/dist/cjs/components/layout/page-construction/page/Page.props.d.ts +0 -30
- package/dist/cjs/components/layout/page-construction/page/Page.styles.d.ts +0 -5
- package/dist/cjs/components/layout/page-construction/page/index.d.ts +0 -2
- package/dist/cjs/components/layout/page-construction/page-section/PageSection.d.ts +0 -10
- package/dist/cjs/components/layout/page-construction/page-section/PageSection.props.d.ts +0 -34
- package/dist/cjs/components/layout/page-construction/page-section/PageSection.styles.d.ts +0 -4
- package/dist/cjs/components/layout/page-construction/page-section/index.d.ts +0 -2
- package/dist/cjs/components/layout/separator/Separator.d.ts +0 -9
- package/dist/cjs/components/layout/separator/Separator.props.d.ts +0 -17
- package/dist/cjs/components/layout/separator/Separator.styles.d.ts +0 -7
- package/dist/cjs/components/layout/separator/index.d.ts +0 -2
- package/dist/cjs/components/layout/stack/Stack.d.ts +0 -13
- package/dist/cjs/components/layout/stack/Stack.props.d.ts +0 -42
- package/dist/cjs/components/layout/stack/Stack.styles.d.ts +0 -7
- package/dist/cjs/components/layout/stack/index.d.ts +0 -2
- package/dist/cjs/components/layout/text/Text.d.ts +0 -21
- package/dist/cjs/components/layout/text/Text.props.d.ts +0 -28
- package/dist/cjs/components/layout/text/Text.styles.d.ts +0 -4
- package/dist/cjs/components/layout/text/index.d.ts +0 -2
- package/dist/cjs/components/navigation/breadcrumb/Breadcrumb.d.ts +0 -12
- package/dist/cjs/components/navigation/breadcrumb/Breadcrumb.props.d.ts +0 -13
- package/dist/cjs/components/navigation/breadcrumb/Breadcrumb.styles.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.d.ts +0 -8
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.props.d.ts +0 -5
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.d.ts +0 -7
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbEllipsis/index.d.ts +0 -2
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbEllipsis.d.ts +0 -9
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbItem/BreadcrumbItem.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbItem/BreadcrumbItem.styles.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbItem/index.d.ts +0 -1
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbItem.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.d.ts +0 -7
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.props.d.ts +0 -14
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.d.ts +0 -7
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbLink/index.d.ts +0 -2
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbLink.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbList/BreadcrumbList.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbList/BreadcrumbList.styles.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbList/index.d.ts +0 -1
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbList.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.d.ts +0 -7
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.props.d.ts +0 -10
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.d.ts +0 -7
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbPage/index.d.ts +0 -2
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbPage.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.d.ts +0 -7
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.props.d.ts +0 -5
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.styles.d.ts +0 -6
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbSeparator/index.d.ts +0 -2
- package/dist/cjs/components/navigation/breadcrumb/BreadcrumbSeparator.d.ts +0 -9
- package/dist/cjs/components/navigation/breadcrumb/index.d.ts +0 -10
- package/dist/cjs/components/navigation/breadcrumb/utils/buildBreadcrumbChildren.utils.d.ts +0 -5
- package/dist/cjs/components/navigation/breadcrumb/utils/flattenChildren.utils.d.ts +0 -5
- package/dist/cjs/components/navigation/breadcrumb/utils/insertSeparators.utils.d.ts +0 -5
- package/dist/cjs/components/navigation/breadcrumb/utils/isSeparator.utils.d.ts +0 -5
- package/dist/cjs/components/navigation/drawer-item/DrawerItem.d.ts +0 -10
- package/dist/cjs/components/navigation/drawer-item/DrawerItem.props.d.ts +0 -31
- package/dist/cjs/components/navigation/drawer-item/DrawerItem.styles.d.ts +0 -7
- package/dist/cjs/components/navigation/drawer-item/index.d.ts +0 -2
- package/dist/cjs/components/navigation/pagination/Pagination.d.ts +0 -6
- package/dist/cjs/components/navigation/pagination/Pagination.props.d.ts +0 -24
- package/dist/cjs/components/navigation/pagination/Pagination.styles.d.ts +0 -7
- package/dist/cjs/components/navigation/pagination/index.d.ts +0 -2
- package/dist/cjs/components/navigation/tabs/Tabs.d.ts +0 -7
- package/dist/cjs/components/navigation/tabs/Tabs.props.d.ts +0 -12
- package/dist/cjs/components/navigation/tabs/Tabs.styles.d.ts +0 -7
- package/dist/cjs/components/navigation/tabs/index.d.ts +0 -4
- package/dist/cjs/components/navigation/tabs/tab-item/TabItem.d.ts +0 -7
- package/dist/cjs/components/navigation/tabs/tab-item/TabItem.props.d.ts +0 -15
- package/dist/cjs/components/navigation/tabs/tab-item/TabItem.styles.d.ts +0 -6
- package/dist/cjs/components/overlay/accordion/Accordion.d.ts +0 -10
- package/dist/cjs/components/overlay/accordion/Accordion.props.d.ts +0 -52
- package/dist/cjs/components/overlay/accordion/Accordion.styles.d.ts +0 -7
- package/dist/cjs/components/overlay/accordion/index.d.ts +0 -2
- package/dist/cjs/components/overlay/alert/Alert.d.ts +0 -37
- package/dist/cjs/components/overlay/alert/Alert.props.d.ts +0 -56
- package/dist/cjs/components/overlay/alert/Alert.styles.d.ts +0 -4
- package/dist/cjs/components/overlay/alert/index.d.ts +0 -2
- package/dist/cjs/components/overlay/alert/utils/getAlertIcon.utils.d.ts +0 -8
- package/dist/cjs/components/overlay/alert/utils/getAlertPositionStyles.utils.d.ts +0 -8
- package/dist/cjs/components/overlay/alert/utils/getAlertVariantColors.utils.d.ts +0 -14
- package/dist/cjs/components/overlay/menu/Menu.d.ts +0 -4
- package/dist/cjs/components/overlay/menu/Menu.props.d.ts +0 -14
- package/dist/cjs/components/overlay/menu/Menu.styles.d.ts +0 -13
- package/dist/cjs/components/overlay/menu/MenuGroup/MenuGroup.d.ts +0 -4
- package/dist/cjs/components/overlay/menu/MenuGroup/MenuGroup.props.d.ts +0 -4
- package/dist/cjs/components/overlay/menu/MenuGroup/MenuGroup.styles.d.ts +0 -3
- package/dist/cjs/components/overlay/menu/MenuGroup/index.d.ts +0 -2
- package/dist/cjs/components/overlay/menu/MenuItem/MenuItem.d.ts +0 -4
- package/dist/cjs/components/overlay/menu/MenuItem/MenuItem.props.d.ts +0 -14
- package/dist/cjs/components/overlay/menu/MenuItem/MenuItem.styles.d.ts +0 -4
- package/dist/cjs/components/overlay/menu/MenuItem/index.d.ts +0 -2
- package/dist/cjs/components/overlay/menu/index.d.ts +0 -6
- package/dist/cjs/components/overlay/modal/Modal.d.ts +0 -28
- package/dist/cjs/components/overlay/modal/Modal.props.d.ts +0 -10
- package/dist/cjs/components/overlay/modal/Modal.styles.d.ts +0 -4
- package/dist/cjs/components/overlay/modal/index.d.ts +0 -2
- package/dist/cjs/constants/animations.d.ts +0 -1
- package/dist/cjs/constants/globalConstants.d.ts +0 -5
- package/dist/cjs/hooks/index.d.ts +0 -7
- package/dist/cjs/hooks/useAlert.d.ts +0 -23
- package/dist/cjs/hooks/useAlert.types.d.ts +0 -56
- package/dist/cjs/hooks/useAnchorPosition.d.ts +0 -17
- package/dist/cjs/hooks/useAnchorPosition.types.d.ts +0 -5
- package/dist/cjs/hooks/useClickOutside.d.ts +0 -8
- package/dist/cjs/hooks/useTransitionRender.d.ts +0 -7
- package/dist/cjs/hooks/useTransitionRender.types.d.ts +0 -4
- package/dist/cjs/index.d.ts +0 -6
- package/dist/cjs/interfaces/alert.types.d.ts +0 -8
- package/dist/cjs/interfaces/avatar.types.d.ts +0 -2
- package/dist/cjs/interfaces/button.types.d.ts +0 -36
- package/dist/cjs/interfaces/card.types.d.ts +0 -3
- package/dist/cjs/interfaces/chip.types.d.ts +0 -6
- package/dist/cjs/interfaces/index.d.ts +0 -7
- package/dist/cjs/interfaces/select.types.d.ts +0 -5
- package/dist/cjs/interfaces/stack.types.d.ts +0 -7
- package/dist/cjs/interfaces/status.types.d.ts +0 -6
- package/dist/cjs/interfaces/text.types.d.ts +0 -7
- package/dist/cjs/interfaces/theme.contracts.d.ts +0 -243
- package/dist/cjs/resources/Icons.d.ts +0 -15
- package/dist/cjs/resources/icons/AlertCircleIcon.d.ts +0 -2
- package/dist/cjs/resources/icons/AlertTriangleIcon.d.ts +0 -2
- package/dist/cjs/resources/icons/CalendarIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/CheckCircleIcon.d.ts +0 -2
- package/dist/cjs/resources/icons/ChevronDownIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/ChevronLeftIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/ChevronRightIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/CloseIcon.d.ts +0 -2
- package/dist/cjs/resources/icons/EyeIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/EyeOffIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/InfoIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/MoreHorizontalIcon.d.ts +0 -1
- package/dist/cjs/resources/icons/PlusIcon.d.ts +0 -2
- package/dist/cjs/resources/icons/TrashIcon.d.ts +0 -2
- package/dist/cjs/resources/icons/UploadIcon.d.ts +0 -2
- package/dist/cjs/theme/defaultTheme.d.ts +0 -29
- package/dist/cjs/theme/theme.module.d.ts +0 -32
- package/dist/cjs/theme/theme.types.d.ts +0 -17
- package/dist/cjs/theme/types/themeBreakpoints.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeColor.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeFontSize.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeFontWeight.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeLineHeight.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeOpacity.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeRadius.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeShadows.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeSpacing.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeTransition.types.d.ts +0 -5
- package/dist/cjs/theme/types/themeZIndex.types.d.ts +0 -5
- package/dist/cjs/theme/values/themeBreakpoints.d.ts +0 -5
- package/dist/cjs/theme/values/themeColors.d.ts +0 -6
- package/dist/cjs/theme/values/themeFontSize.d.ts +0 -5
- package/dist/cjs/theme/values/themeFontWeight.d.ts +0 -5
- package/dist/cjs/theme/values/themeLineHeight.d.ts +0 -5
- package/dist/cjs/theme/values/themeOpacity.d.ts +0 -5
- package/dist/cjs/theme/values/themeRadius.d.ts +0 -5
- package/dist/cjs/theme/values/themeShadows.d.ts +0 -5
- package/dist/cjs/theme/values/themeSpacing.d.ts +0 -5
- package/dist/cjs/theme/values/themeTransition.d.ts +0 -5
- package/dist/cjs/theme/values/themeZIndex.d.ts +0 -5
- package/dist/cjs/utils/ui/components/actions/button/getButtonSizeStyles.utils.d.ts +0 -12
- package/dist/cjs/utils/ui/components/actions/button/getButtonVariantStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.d.ts +0 -9
- package/dist/cjs/utils/ui/components/button/getButtonVariantStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/chip/getChipColorStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/chip/getChipContentSize.utils.d.ts +0 -8
- package/dist/cjs/utils/ui/components/chip/getChipSizeStyles.utils.d.ts +0 -12
- package/dist/cjs/utils/ui/components/data-display/avatar/getAvatarSizes.utils.d.ts +0 -11
- package/dist/cjs/utils/ui/components/data-display/chip/getChipColorStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/data-display/chip/getChipContentSize.utils.d.ts +0 -8
- package/dist/cjs/utils/ui/components/data-display/chip/getChipSizeStyles.utils.d.ts +0 -12
- package/dist/cjs/utils/ui/components/data-display/status/getStatusColorStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/data-display/status/getStatusContentSize.utils.d.ts +0 -8
- package/dist/cjs/utils/ui/components/data-display/status/getStatusSizeStyles.utils.d.ts +0 -12
- package/dist/cjs/utils/ui/components/date-picker/datePicker.utils.d.ts +0 -13
- package/dist/cjs/utils/ui/components/foundation/text/getTextVariantStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/foundation/text/getTruncateTextStyles.utils.d.ts +0 -21
- package/dist/cjs/utils/ui/components/foundation/text/parseTextWithBold.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/icon-button/getIconButtonSizeStyles.utils.d.ts +0 -9
- package/dist/cjs/utils/ui/components/navigation/breadcrumb/buildBreadcrumbChildren.utils.d.ts +0 -5
- package/dist/cjs/utils/ui/components/navigation/breadcrumb/flattenChildren.utils.d.ts +0 -5
- package/dist/cjs/utils/ui/components/navigation/breadcrumb/insertSeparators.utils.d.ts +0 -5
- package/dist/cjs/utils/ui/components/navigation/breadcrumb/isSeparator.utils.d.ts +0 -5
- package/dist/cjs/utils/ui/components/overlay/alert/getAlertIcon.utils.d.ts +0 -8
- package/dist/cjs/utils/ui/components/overlay/alert/getAlertPositionStyles.utils.d.ts +0 -8
- package/dist/cjs/utils/ui/components/overlay/alert/getAlertVariantColors.utils.d.ts +0 -14
- package/dist/cjs/utils/ui/components/text/getTextVariantStyles.utils.d.ts +0 -7
- package/dist/cjs/utils/ui/components/text/getTruncateTextStyles.utils.d.ts +0 -17
- package/dist/cjs/utils/ui/components/text/parseTextWithBold.utils.d.ts +0 -7
- package/dist/esm/components/actions/button/Button.d.ts +0 -20
- package/dist/esm/components/actions/button/Button.props.d.ts +0 -60
- package/dist/esm/components/actions/button/Button.styles.d.ts +0 -18
- package/dist/esm/components/actions/button/index.d.ts +0 -2
- package/dist/esm/components/actions/button/utils/getButtonSizeStyles.utils.d.ts +0 -12
- package/dist/esm/components/actions/button/utils/getButtonVariantStyles.utils.d.ts +0 -7
- package/dist/esm/components/actions/button-toggle/ButtonToggle/ButtonToggle.d.ts +0 -15
- package/dist/esm/components/actions/button-toggle/ButtonToggle/ButtonToggle.props.d.ts +0 -48
- package/dist/esm/components/actions/button-toggle/ButtonToggle/ButtonToggle.styles.d.ts +0 -4
- package/dist/esm/components/actions/button-toggle/ButtonToggle/index.d.ts +0 -2
- package/dist/esm/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.d.ts +0 -14
- package/dist/esm/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.props.d.ts +0 -29
- package/dist/esm/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.styles.d.ts +0 -3
- package/dist/esm/components/actions/button-toggle/ButtonToggleGroup/index.d.ts +0 -2
- package/dist/esm/components/actions/button-toggle/index.d.ts +0 -2
- package/dist/esm/components/actions/icon-button/IconButton.d.ts +0 -17
- package/dist/esm/components/actions/icon-button/IconButton.props.d.ts +0 -55
- package/dist/esm/components/actions/icon-button/IconButton.styles.d.ts +0 -4
- package/dist/esm/components/actions/icon-button/index.d.ts +0 -2
- package/dist/esm/components/actions/icon-button/utils/getIconButtonSizeStyles.utils.d.ts +0 -9
- package/dist/esm/components/data-display/avatar/Avatar.d.ts +0 -24
- package/dist/esm/components/data-display/avatar/Avatar.props.d.ts +0 -39
- package/dist/esm/components/data-display/avatar/Avatar.styles.d.ts +0 -10
- package/dist/esm/components/data-display/avatar/AvatarGroup.d.ts +0 -9
- package/dist/esm/components/data-display/avatar/avatar-group/AvatarGroup.d.ts +0 -9
- package/dist/esm/components/data-display/avatar/avatar-group/AvatarGroup.props.d.ts +0 -10
- package/dist/esm/components/data-display/avatar/avatar-group/AvatarGroup.styles.d.ts +0 -14
- package/dist/esm/components/data-display/avatar/index.d.ts +0 -4
- package/dist/esm/components/data-display/avatar/utils/getAvatarSizes.utils.d.ts +0 -11
- package/dist/esm/components/data-display/chip/Chip.d.ts +0 -16
- package/dist/esm/components/data-display/chip/Chip.props.d.ts +0 -40
- package/dist/esm/components/data-display/chip/Chip.styles.d.ts +0 -4
- package/dist/esm/components/data-display/chip/index.d.ts +0 -2
- package/dist/esm/components/data-display/chip/utils/getChipColorStyles.utils.d.ts +0 -12
- package/dist/esm/components/data-display/chip/utils/getChipContentSize.utils.d.ts +0 -6
- package/dist/esm/components/data-display/chip/utils/getChipSizeStyles.utils.d.ts +0 -10
- package/dist/esm/components/data-display/icon/Icon.d.ts +0 -35
- package/dist/esm/components/data-display/icon/Icon.props.d.ts +0 -14
- package/dist/esm/components/data-display/icon/Icon.styles.d.ts +0 -3
- package/dist/esm/components/data-display/icon/index.d.ts +0 -2
- package/dist/esm/components/data-display/skeleton/Skeleton.d.ts +0 -4
- package/dist/esm/components/data-display/skeleton/Skeleton.props.d.ts +0 -7
- package/dist/esm/components/data-display/skeleton/Skeleton.styles.d.ts +0 -3
- package/dist/esm/components/data-display/skeleton/index.d.ts +0 -2
- package/dist/esm/components/data-display/status/Status.d.ts +0 -16
- package/dist/esm/components/data-display/status/Status.props.d.ts +0 -40
- package/dist/esm/components/data-display/status/Status.styles.d.ts +0 -4
- package/dist/esm/components/data-display/status/index.d.ts +0 -2
- package/dist/esm/components/data-display/status/utils/getStatusColorStyles.utils.d.ts +0 -7
- package/dist/esm/components/data-display/status/utils/getStatusContentSize.utils.d.ts +0 -8
- package/dist/esm/components/data-display/status/utils/getStatusSizeStyles.utils.d.ts +0 -12
- package/dist/esm/components/forms/date-picker/DatePicker.d.ts +0 -3
- package/dist/esm/components/forms/date-picker/DatePicker.props.d.ts +0 -29
- package/dist/esm/components/forms/date-picker/DatePicker.styles.d.ts +0 -9
- package/dist/esm/components/forms/date-picker/calendar/Calendar.d.ts +0 -3
- package/dist/esm/components/forms/date-picker/calendar/Calendar.props.d.ts +0 -13
- package/dist/esm/components/forms/date-picker/calendar/Calendar.styles.d.ts +0 -3
- package/dist/esm/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.d.ts +0 -3
- package/dist/esm/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.props.d.ts +0 -20
- package/dist/esm/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.d.ts +0 -13
- package/dist/esm/components/forms/date-picker/calendar/calendar-header/CalendarHeader.d.ts +0 -3
- package/dist/esm/components/forms/date-picker/calendar/calendar-header/CalendarHeader.props.d.ts +0 -15
- package/dist/esm/components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.d.ts +0 -6
- package/dist/esm/components/forms/date-picker/calendar/index.d.ts +0 -2
- package/dist/esm/components/forms/date-picker/index.d.ts +0 -2
- package/dist/esm/components/forms/date-picker/utils/datePicker.utils.d.ts +0 -13
- package/dist/esm/components/forms/file-picker/FilePicker.d.ts +0 -24
- package/dist/esm/components/forms/file-picker/FilePicker.props.d.ts +0 -99
- package/dist/esm/components/forms/file-picker/FilePicker.styles.d.ts +0 -19
- package/dist/esm/components/forms/file-picker/index.d.ts +0 -2
- package/dist/esm/components/forms/form/Form.d.ts +0 -3
- package/dist/esm/components/forms/form/Form.props.d.ts +0 -9
- package/dist/esm/components/forms/form/Form.styles.d.ts +0 -3
- package/dist/esm/components/forms/form/index.d.ts +0 -2
- package/dist/esm/components/forms/image-picker/ImagePicker.d.ts +0 -18
- package/dist/esm/components/forms/image-picker/ImagePicker.props.d.ts +0 -76
- package/dist/esm/components/forms/image-picker/index.d.ts +0 -2
- package/dist/esm/components/forms/input/Input.d.ts +0 -3
- package/dist/esm/components/forms/input/Input.props.d.ts +0 -46
- package/dist/esm/components/forms/input/Input.styles.d.ts +0 -15
- package/dist/esm/components/forms/input/index.d.ts +0 -2
- package/dist/esm/components/forms/select/Select.d.ts +0 -25
- package/dist/esm/components/forms/select/Select.props.d.ts +0 -54
- package/dist/esm/components/forms/select/Select.styles.d.ts +0 -10
- package/dist/esm/components/forms/select/SelectItem/SelectItem.d.ts +0 -7
- package/dist/esm/components/forms/select/SelectItem/SelectItem.props.d.ts +0 -19
- package/dist/esm/components/forms/select/SelectItem/SelectItem.styles.d.ts +0 -7
- package/dist/esm/components/forms/select/SelectItem/index.d.ts +0 -2
- package/dist/esm/components/forms/select/index.d.ts +0 -2
- package/dist/esm/components/forms/textarea/TextArea.d.ts +0 -3
- package/dist/esm/components/forms/textarea/TextArea.props.d.ts +0 -39
- package/dist/esm/components/forms/textarea/TextArea.styles.d.ts +0 -11
- package/dist/esm/components/forms/textarea/index.d.ts +0 -2
- package/dist/esm/components/foundation/icon/Icon.d.ts +0 -42
- package/dist/esm/components/foundation/icon/Icon.props.d.ts +0 -26
- package/dist/esm/components/foundation/icon/Icon.styles.d.ts +0 -3
- package/dist/esm/components/foundation/icon/index.d.ts +0 -2
- package/dist/esm/components/foundation/text/Text.d.ts +0 -21
- package/dist/esm/components/foundation/text/Text.props.d.ts +0 -40
- package/dist/esm/components/foundation/text/Text.styles.d.ts +0 -4
- package/dist/esm/components/foundation/text/index.d.ts +0 -2
- package/dist/esm/components/foundation/text/utils/getTextVariantStyles.utils.d.ts +0 -7
- package/dist/esm/components/foundation/text/utils/getTruncateTextStyles.utils.d.ts +0 -21
- package/dist/esm/components/foundation/text/utils/parseTextWithBold.utils.d.ts +0 -7
- package/dist/esm/components/index.d.ts +0 -35
- package/dist/esm/components/inputs/button/Button.d.ts +0 -12
- package/dist/esm/components/inputs/button/Button.props.d.ts +0 -28
- package/dist/esm/components/inputs/button/Button.styles.d.ts +0 -18
- package/dist/esm/components/inputs/button/index.d.ts +0 -2
- package/dist/esm/components/inputs/icon-button/IconButton.d.ts +0 -4
- package/dist/esm/components/inputs/icon-button/IconButton.props.d.ts +0 -27
- package/dist/esm/components/inputs/icon-button/IconButton.styles.d.ts +0 -4
- package/dist/esm/components/inputs/icon-button/index.d.ts +0 -2
- package/dist/esm/components/inputs/input/Input.d.ts +0 -6
- package/dist/esm/components/inputs/input/Input.props.d.ts +0 -17
- package/dist/esm/components/inputs/input/Input.styles.d.ts +0 -7
- package/dist/esm/components/inputs/input/index.d.ts +0 -2
- package/dist/esm/components/layout/accordion/Accordion.d.ts +0 -10
- package/dist/esm/components/layout/accordion/Accordion.props.d.ts +0 -36
- package/dist/esm/components/layout/accordion/Accordion.styles.d.ts +0 -7
- package/dist/esm/components/layout/accordion/index.d.ts +0 -2
- package/dist/esm/components/layout/box/Box.d.ts +0 -23
- package/dist/esm/components/layout/box/Box.props.d.ts +0 -139
- package/dist/esm/components/layout/box/Box.styles.d.ts +0 -7
- package/dist/esm/components/layout/box/index.d.ts +0 -2
- package/dist/esm/components/layout/card/Card.d.ts +0 -14
- package/dist/esm/components/layout/card/Card.props.d.ts +0 -68
- package/dist/esm/components/layout/card/Card.styles.d.ts +0 -7
- package/dist/esm/components/layout/card/index.d.ts +0 -2
- package/dist/esm/components/layout/grid/Grid.d.ts +0 -15
- package/dist/esm/components/layout/grid/Grid.props.d.ts +0 -57
- package/dist/esm/components/layout/grid/Grid.styles.d.ts +0 -7
- package/dist/esm/components/layout/grid/index.d.ts +0 -2
- package/dist/esm/components/layout/page-construction/page/Page.d.ts +0 -10
- package/dist/esm/components/layout/page-construction/page/Page.props.d.ts +0 -30
- package/dist/esm/components/layout/page-construction/page/Page.styles.d.ts +0 -5
- package/dist/esm/components/layout/page-construction/page/index.d.ts +0 -2
- package/dist/esm/components/layout/page-construction/page-section/PageSection.d.ts +0 -10
- package/dist/esm/components/layout/page-construction/page-section/PageSection.props.d.ts +0 -34
- package/dist/esm/components/layout/page-construction/page-section/PageSection.styles.d.ts +0 -4
- package/dist/esm/components/layout/page-construction/page-section/index.d.ts +0 -2
- package/dist/esm/components/layout/separator/Separator.d.ts +0 -9
- package/dist/esm/components/layout/separator/Separator.props.d.ts +0 -17
- package/dist/esm/components/layout/separator/Separator.styles.d.ts +0 -7
- package/dist/esm/components/layout/separator/index.d.ts +0 -2
- package/dist/esm/components/layout/stack/Stack.d.ts +0 -13
- package/dist/esm/components/layout/stack/Stack.props.d.ts +0 -42
- package/dist/esm/components/layout/stack/Stack.styles.d.ts +0 -7
- package/dist/esm/components/layout/stack/index.d.ts +0 -2
- package/dist/esm/components/layout/text/Text.d.ts +0 -21
- package/dist/esm/components/layout/text/Text.props.d.ts +0 -28
- package/dist/esm/components/layout/text/Text.styles.d.ts +0 -4
- package/dist/esm/components/layout/text/index.d.ts +0 -2
- package/dist/esm/components/navigation/breadcrumb/Breadcrumb.d.ts +0 -12
- package/dist/esm/components/navigation/breadcrumb/Breadcrumb.props.d.ts +0 -13
- package/dist/esm/components/navigation/breadcrumb/Breadcrumb.styles.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.d.ts +0 -8
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.props.d.ts +0 -5
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.d.ts +0 -7
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbEllipsis/index.d.ts +0 -2
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbEllipsis.d.ts +0 -9
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbItem/BreadcrumbItem.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbItem/BreadcrumbItem.styles.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbItem/index.d.ts +0 -1
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbItem.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.d.ts +0 -7
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.props.d.ts +0 -14
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.d.ts +0 -7
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbLink/index.d.ts +0 -2
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbLink.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbList/BreadcrumbList.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbList/BreadcrumbList.styles.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbList/index.d.ts +0 -1
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbList.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.d.ts +0 -7
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.props.d.ts +0 -10
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.d.ts +0 -7
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbPage/index.d.ts +0 -2
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbPage.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.d.ts +0 -7
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.props.d.ts +0 -5
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.styles.d.ts +0 -6
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbSeparator/index.d.ts +0 -2
- package/dist/esm/components/navigation/breadcrumb/BreadcrumbSeparator.d.ts +0 -9
- package/dist/esm/components/navigation/breadcrumb/index.d.ts +0 -10
- package/dist/esm/components/navigation/breadcrumb/utils/buildBreadcrumbChildren.utils.d.ts +0 -5
- package/dist/esm/components/navigation/breadcrumb/utils/flattenChildren.utils.d.ts +0 -5
- package/dist/esm/components/navigation/breadcrumb/utils/insertSeparators.utils.d.ts +0 -5
- package/dist/esm/components/navigation/breadcrumb/utils/isSeparator.utils.d.ts +0 -5
- package/dist/esm/components/navigation/drawer-item/DrawerItem.d.ts +0 -10
- package/dist/esm/components/navigation/drawer-item/DrawerItem.props.d.ts +0 -31
- package/dist/esm/components/navigation/drawer-item/DrawerItem.styles.d.ts +0 -7
- package/dist/esm/components/navigation/drawer-item/index.d.ts +0 -2
- package/dist/esm/components/navigation/pagination/Pagination.d.ts +0 -6
- package/dist/esm/components/navigation/pagination/Pagination.props.d.ts +0 -24
- package/dist/esm/components/navigation/pagination/Pagination.styles.d.ts +0 -7
- package/dist/esm/components/navigation/pagination/index.d.ts +0 -2
- package/dist/esm/components/navigation/tabs/Tabs.d.ts +0 -7
- package/dist/esm/components/navigation/tabs/Tabs.props.d.ts +0 -12
- package/dist/esm/components/navigation/tabs/Tabs.styles.d.ts +0 -7
- package/dist/esm/components/navigation/tabs/index.d.ts +0 -4
- package/dist/esm/components/navigation/tabs/tab-item/TabItem.d.ts +0 -7
- package/dist/esm/components/navigation/tabs/tab-item/TabItem.props.d.ts +0 -15
- package/dist/esm/components/navigation/tabs/tab-item/TabItem.styles.d.ts +0 -6
- package/dist/esm/components/overlay/accordion/Accordion.d.ts +0 -10
- package/dist/esm/components/overlay/accordion/Accordion.props.d.ts +0 -52
- package/dist/esm/components/overlay/accordion/Accordion.styles.d.ts +0 -7
- package/dist/esm/components/overlay/accordion/index.d.ts +0 -2
- package/dist/esm/components/overlay/alert/Alert.d.ts +0 -37
- package/dist/esm/components/overlay/alert/Alert.props.d.ts +0 -56
- package/dist/esm/components/overlay/alert/Alert.styles.d.ts +0 -4
- package/dist/esm/components/overlay/alert/index.d.ts +0 -2
- package/dist/esm/components/overlay/alert/utils/getAlertIcon.utils.d.ts +0 -8
- package/dist/esm/components/overlay/alert/utils/getAlertPositionStyles.utils.d.ts +0 -8
- package/dist/esm/components/overlay/alert/utils/getAlertVariantColors.utils.d.ts +0 -14
- package/dist/esm/components/overlay/menu/Menu.d.ts +0 -4
- package/dist/esm/components/overlay/menu/Menu.props.d.ts +0 -14
- package/dist/esm/components/overlay/menu/Menu.styles.d.ts +0 -13
- package/dist/esm/components/overlay/menu/MenuGroup/MenuGroup.d.ts +0 -4
- package/dist/esm/components/overlay/menu/MenuGroup/MenuGroup.props.d.ts +0 -4
- package/dist/esm/components/overlay/menu/MenuGroup/MenuGroup.styles.d.ts +0 -3
- package/dist/esm/components/overlay/menu/MenuGroup/index.d.ts +0 -2
- package/dist/esm/components/overlay/menu/MenuItem/MenuItem.d.ts +0 -4
- package/dist/esm/components/overlay/menu/MenuItem/MenuItem.props.d.ts +0 -14
- package/dist/esm/components/overlay/menu/MenuItem/MenuItem.styles.d.ts +0 -4
- package/dist/esm/components/overlay/menu/MenuItem/index.d.ts +0 -2
- package/dist/esm/components/overlay/menu/index.d.ts +0 -6
- package/dist/esm/components/overlay/modal/Modal.d.ts +0 -28
- package/dist/esm/components/overlay/modal/Modal.props.d.ts +0 -10
- package/dist/esm/components/overlay/modal/Modal.styles.d.ts +0 -4
- package/dist/esm/components/overlay/modal/index.d.ts +0 -2
- package/dist/esm/constants/animations.d.ts +0 -1
- package/dist/esm/constants/globalConstants.d.ts +0 -5
- package/dist/esm/hooks/index.d.ts +0 -7
- package/dist/esm/hooks/useAlert.d.ts +0 -23
- package/dist/esm/hooks/useAlert.types.d.ts +0 -56
- package/dist/esm/hooks/useAnchorPosition.d.ts +0 -17
- package/dist/esm/hooks/useAnchorPosition.types.d.ts +0 -5
- package/dist/esm/hooks/useClickOutside.d.ts +0 -8
- package/dist/esm/hooks/useTransitionRender.d.ts +0 -7
- package/dist/esm/hooks/useTransitionRender.types.d.ts +0 -4
- package/dist/esm/index.d.ts +0 -6
- package/dist/esm/interfaces/alert.types.d.ts +0 -8
- package/dist/esm/interfaces/avatar.types.d.ts +0 -2
- package/dist/esm/interfaces/button.types.d.ts +0 -36
- package/dist/esm/interfaces/card.types.d.ts +0 -3
- package/dist/esm/interfaces/chip.types.d.ts +0 -6
- package/dist/esm/interfaces/index.d.ts +0 -7
- package/dist/esm/interfaces/select.types.d.ts +0 -5
- package/dist/esm/interfaces/stack.types.d.ts +0 -7
- package/dist/esm/interfaces/status.types.d.ts +0 -6
- package/dist/esm/interfaces/text.types.d.ts +0 -7
- package/dist/esm/interfaces/theme.contracts.d.ts +0 -243
- package/dist/esm/resources/Icons.d.ts +0 -15
- package/dist/esm/resources/icons/AlertCircleIcon.d.ts +0 -2
- package/dist/esm/resources/icons/AlertTriangleIcon.d.ts +0 -2
- package/dist/esm/resources/icons/CalendarIcon.d.ts +0 -1
- package/dist/esm/resources/icons/CheckCircleIcon.d.ts +0 -2
- package/dist/esm/resources/icons/ChevronDownIcon.d.ts +0 -1
- package/dist/esm/resources/icons/ChevronLeftIcon.d.ts +0 -1
- package/dist/esm/resources/icons/ChevronRightIcon.d.ts +0 -1
- package/dist/esm/resources/icons/CloseIcon.d.ts +0 -2
- package/dist/esm/resources/icons/EyeIcon.d.ts +0 -1
- package/dist/esm/resources/icons/EyeOffIcon.d.ts +0 -1
- package/dist/esm/resources/icons/InfoIcon.d.ts +0 -1
- package/dist/esm/resources/icons/MoreHorizontalIcon.d.ts +0 -1
- package/dist/esm/resources/icons/PlusIcon.d.ts +0 -2
- package/dist/esm/resources/icons/TrashIcon.d.ts +0 -2
- package/dist/esm/resources/icons/UploadIcon.d.ts +0 -2
- package/dist/esm/theme/defaultTheme.d.ts +0 -29
- package/dist/esm/theme/theme.module.d.ts +0 -32
- package/dist/esm/theme/theme.types.d.ts +0 -17
- package/dist/esm/theme/types/themeBreakpoints.types.d.ts +0 -5
- package/dist/esm/theme/types/themeColor.types.d.ts +0 -5
- package/dist/esm/theme/types/themeFontSize.types.d.ts +0 -5
- package/dist/esm/theme/types/themeFontWeight.types.d.ts +0 -5
- package/dist/esm/theme/types/themeLineHeight.types.d.ts +0 -5
- package/dist/esm/theme/types/themeOpacity.types.d.ts +0 -5
- package/dist/esm/theme/types/themeRadius.types.d.ts +0 -5
- package/dist/esm/theme/types/themeShadows.types.d.ts +0 -5
- package/dist/esm/theme/types/themeSpacing.types.d.ts +0 -5
- package/dist/esm/theme/types/themeTransition.types.d.ts +0 -5
- package/dist/esm/theme/types/themeZIndex.types.d.ts +0 -5
- package/dist/esm/theme/values/themeBreakpoints.d.ts +0 -5
- package/dist/esm/theme/values/themeColors.d.ts +0 -6
- package/dist/esm/theme/values/themeFontSize.d.ts +0 -5
- package/dist/esm/theme/values/themeFontWeight.d.ts +0 -5
- package/dist/esm/theme/values/themeLineHeight.d.ts +0 -5
- package/dist/esm/theme/values/themeOpacity.d.ts +0 -5
- package/dist/esm/theme/values/themeRadius.d.ts +0 -5
- package/dist/esm/theme/values/themeShadows.d.ts +0 -5
- package/dist/esm/theme/values/themeSpacing.d.ts +0 -5
- package/dist/esm/theme/values/themeTransition.d.ts +0 -5
- package/dist/esm/theme/values/themeZIndex.d.ts +0 -5
- package/dist/esm/utils/ui/components/actions/button/getButtonSizeStyles.utils.d.ts +0 -12
- package/dist/esm/utils/ui/components/actions/button/getButtonVariantStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.d.ts +0 -9
- package/dist/esm/utils/ui/components/button/getButtonVariantStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/chip/getChipColorStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/chip/getChipContentSize.utils.d.ts +0 -8
- package/dist/esm/utils/ui/components/chip/getChipSizeStyles.utils.d.ts +0 -12
- package/dist/esm/utils/ui/components/data-display/avatar/getAvatarSizes.utils.d.ts +0 -11
- package/dist/esm/utils/ui/components/data-display/chip/getChipColorStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/data-display/chip/getChipContentSize.utils.d.ts +0 -8
- package/dist/esm/utils/ui/components/data-display/chip/getChipSizeStyles.utils.d.ts +0 -12
- package/dist/esm/utils/ui/components/data-display/status/getStatusColorStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/data-display/status/getStatusContentSize.utils.d.ts +0 -8
- package/dist/esm/utils/ui/components/data-display/status/getStatusSizeStyles.utils.d.ts +0 -12
- package/dist/esm/utils/ui/components/date-picker/datePicker.utils.d.ts +0 -13
- package/dist/esm/utils/ui/components/foundation/text/getTextVariantStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/foundation/text/getTruncateTextStyles.utils.d.ts +0 -21
- package/dist/esm/utils/ui/components/foundation/text/parseTextWithBold.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/icon-button/getIconButtonSizeStyles.utils.d.ts +0 -9
- package/dist/esm/utils/ui/components/navigation/breadcrumb/buildBreadcrumbChildren.utils.d.ts +0 -5
- package/dist/esm/utils/ui/components/navigation/breadcrumb/flattenChildren.utils.d.ts +0 -5
- package/dist/esm/utils/ui/components/navigation/breadcrumb/insertSeparators.utils.d.ts +0 -5
- package/dist/esm/utils/ui/components/navigation/breadcrumb/isSeparator.utils.d.ts +0 -5
- package/dist/esm/utils/ui/components/overlay/alert/getAlertIcon.utils.d.ts +0 -8
- package/dist/esm/utils/ui/components/overlay/alert/getAlertPositionStyles.utils.d.ts +0 -8
- package/dist/esm/utils/ui/components/overlay/alert/getAlertVariantColors.utils.d.ts +0 -14
- package/dist/esm/utils/ui/components/text/getTextVariantStyles.utils.d.ts +0 -7
- package/dist/esm/utils/ui/components/text/getTruncateTextStyles.utils.d.ts +0 -17
- package/dist/esm/utils/ui/components/text/parseTextWithBold.utils.d.ts +0 -7
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/foundation/icon/Icon.styles.ts","../../src/components/foundation/icon/Icon.tsx","../../src/components/foundation/text/utils/getTextVariantStyles.utils.ts","../../src/components/foundation/text/utils/getTruncateTextStyles.utils.ts","../../src/components/foundation/text/Text.styles.ts","../../src/components/foundation/text/utils/parseTextWithBold.utils.ts","../../src/components/foundation/text/Text.tsx","../../src/components/data-display/status/utils/getStatusColorStyles.utils.ts","../../src/components/data-display/status/utils/getStatusSizeStyles.utils.ts","../../src/components/data-display/status/Status.styles.ts","../../src/components/data-display/status/utils/getStatusContentSize.utils.ts","../../src/components/data-display/status/Status.tsx","../../src/constants/globalConstants.ts","../../src/components/data-display/avatar/utils/getAvatarSizes.utils.ts","../../src/components/data-display/avatar/Avatar.styles.ts","../../src/components/data-display/avatar/Avatar.tsx","../../src/utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts","../../src/components/data-display/avatar/avatar-group/AvatarGroup.styles.ts","../../src/components/data-display/avatar/avatar-group/AvatarGroup.tsx","../../src/constants/animations.ts","../../src/components/data-display/skeleton/Skeleton.styles.ts","../../src/components/data-display/skeleton/Skeleton.tsx","../../src/utils/ui/components/actions/button/getButtonSizeStyles.utils.ts","../../src/utils/ui/components/actions/button/getButtonVariantStyles.utils.ts","../../src/components/actions/button/Button.styles.ts","../../src/components/actions/button/utils/getButtonSizeStyles.utils.ts","../../src/components/actions/button/utils/getButtonVariantStyles.utils.ts","../../src/components/actions/button/Button.tsx","../../src/utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts","../../src/components/actions/icon-button/IconButton.styles.ts","../../src/components/actions/icon-button/utils/getIconButtonSizeStyles.utils.ts","../../src/components/actions/icon-button/IconButton.tsx","../../src/components/actions/button-toggle/ButtonToggle/ButtonToggle.styles.ts","../../src/components/actions/button-toggle/ButtonToggle/ButtonToggle.tsx","../../src/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.styles.ts","../../src/components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.tsx","../../src/components/forms/form/Form.styles.ts","../../src/components/forms/form/Form.tsx","../../src/components/forms/input/Input.styles.ts","../../src/components/layout/stack/Stack.styles.ts","../../src/components/layout/stack/Stack.tsx","../../src/resources/icons/AlertCircleIcon.tsx","../../src/resources/icons/AlertTriangleIcon.tsx","../../src/resources/icons/CalendarIcon.tsx","../../src/resources/icons/CheckCircleIcon.tsx","../../src/resources/icons/ChevronDownIcon.tsx","../../src/resources/icons/ChevronLeftIcon.tsx","../../src/resources/icons/ChevronRightIcon.tsx","../../src/resources/icons/CloseIcon.tsx","../../src/resources/icons/EyeIcon.tsx","../../src/resources/icons/EyeOffIcon.tsx","../../src/resources/icons/InfoIcon.tsx","../../src/resources/icons/MoreHorizontalIcon.tsx","../../src/resources/icons/TrashIcon.tsx","../../src/resources/icons/UploadIcon.tsx","../../src/components/forms/input/Input.tsx","../../src/components/forms/textarea/TextArea.styles.ts","../../src/components/forms/textarea/TextArea.tsx","../../src/components/forms/select/Select.styles.ts","../../src/components/forms/select/SelectItem/SelectItem.styles.ts","../../src/components/forms/select/SelectItem/SelectItem.tsx","../../src/components/overlay/menu/Menu.styles.ts","../../src/hooks/useAnchorPosition.ts","../../src/hooks/useClickOutside.ts","../../src/hooks/useTransitionRender.ts","../../src/components/overlay/menu/Menu.tsx","../../src/components/overlay/menu/MenuGroup/MenuGroup.styles.ts","../../src/components/overlay/menu/MenuGroup/MenuGroup.tsx","../../src/components/overlay/menu/MenuItem/MenuItem.styles.ts","../../src/components/overlay/menu/MenuItem/MenuItem.tsx","../../src/components/forms/select/Select.tsx","../../src/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.ts","../../src/components/forms/date-picker/calendar/calendar-grid/CalendarGrid.tsx","../../src/components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.ts","../../src/components/forms/date-picker/calendar/calendar-header/CalendarHeader.tsx","../../src/components/forms/date-picker/calendar/Calendar.styles.ts","../../src/components/forms/date-picker/utils/datePicker.utils.ts","../../src/components/forms/date-picker/calendar/Calendar.tsx","../../src/components/forms/date-picker/DatePicker.styles.ts","../../src/components/forms/date-picker/DatePicker.tsx","../../src/components/forms/file-picker/FilePicker.styles.ts","../../src/components/forms/file-picker/FilePicker.tsx","../../src/components/forms/image-picker/ImagePicker.tsx","../../src/components/layout/box/Box.styles.ts","../../src/components/layout/box/Box.tsx","../../src/components/layout/card/Card.styles.ts","../../src/components/layout/card/Card.tsx","../../src/components/layout/grid/Grid.styles.ts","../../src/components/layout/grid/Grid.tsx","../../src/components/layout/separator/Separator.styles.ts","../../src/components/layout/separator/Separator.tsx","../../src/components/layout/page-construction/page-section/PageSection.styles.ts","../../src/components/layout/page-construction/page-section/PageSection.tsx","../../src/components/layout/page-construction/page/Page.styles.ts","../../src/components/layout/page-construction/page/Page.tsx","../../src/components/overlay/accordion/Accordion.styles.ts","../../src/components/overlay/accordion/Accordion.tsx","../../src/components/overlay/alert/utils/getAlertPositionStyles.utils.ts","../../src/components/overlay/alert/utils/getAlertVariantColors.utils.ts","../../src/components/overlay/alert/Alert.styles.ts","../../src/components/overlay/alert/utils/getAlertIcon.utils.tsx","../../src/components/overlay/alert/Alert.tsx","../../src/components/overlay/modal/Modal.styles.ts","../../src/components/overlay/modal/Modal.tsx","../../src/components/navigation/drawer-item/DrawerItem.styles.ts","../../src/components/navigation/drawer-item/DrawerItem.tsx","../../src/components/navigation/breadcrumb/Breadcrumb.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.tsx","../../src/components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.tsx","../../src/components/navigation/breadcrumb/utils/insertSeparators.utils.tsx","../../src/components/navigation/breadcrumb/utils/buildBreadcrumbChildren.utils.tsx","../../src/components/navigation/breadcrumb/utils/flattenChildren.utils.ts","../../src/components/navigation/breadcrumb/utils/isSeparator.utils.ts","../../src/components/navigation/breadcrumb/Breadcrumb.tsx","../../src/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx","../../src/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.ts","../../src/components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.tsx","../../src/components/navigation/tabs/Tabs.styles.ts","../../src/components/navigation/tabs/Tabs.tsx","../../src/components/navigation/tabs/tab-item/TabItem.styles.ts","../../src/components/navigation/tabs/tab-item/TabItem.tsx","../../src/components/navigation/pagination/Pagination.styles.ts","../../src/components/navigation/pagination/Pagination.tsx","../../src/hooks/useAlert.tsx","../../src/theme/values/themeBreakpoints.ts","../../src/theme/values/themeColors.ts","../../src/theme/values/themeFontSize.ts","../../src/theme/values/themeFontWeight.ts","../../src/theme/values/themeLineHeight.ts","../../src/theme/values/themeOpacity.ts","../../src/theme/values/themeRadius.ts","../../src/theme/values/themeShadows.ts","../../src/theme/values/themeSpacing.ts","../../src/theme/values/themeTransition.ts","../../src/theme/values/themeZIndex.ts","../../src/theme/defaultTheme.ts"],"sourcesContent":["import { createStyles } from '@aurora-ds/theme'\n\nimport { ThemeContract } from '@/interfaces'\n\nexport const ICON_STYLES = createStyles((theme) => ({\n root: (\n size?: keyof ThemeContract['fontSize'],\n color?: keyof ThemeContract['colors'],\n fill?: keyof ThemeContract['colors'],\n backgroundColor?: keyof ThemeContract['colors'],\n padding?: keyof ThemeContract['spacing'],\n borderRadius?: keyof ThemeContract['radius']\n ) => ({\n boxSizing: 'content-box',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n transition: 'color 150ms ease-in-out, fill 150ms ease-in-out',\n flexShrink: 0,\n lineHeight: 0,\n height: theme.fontSize[size ?? 'md'],\n width: theme.fontSize[size ?? 'md'],\n minWidth: theme.fontSize[size ?? 'md'],\n minHeight: theme.fontSize[size ?? 'md'],\n color: color ? theme.colors[color] : 'inherit',\n fill: fill ? theme.colors[fill] : undefined,\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\n padding: padding ? theme.spacing[padding] : 0,\n borderRadius: theme.radius[borderRadius ?? 'md'],\n '& svg': {\n fill: fill ? theme.colors[fill] : undefined,\n },\n }),\n}))\n","import { Children, cloneElement, FC, isValidElement, ReactElement } from 'react'\r\n\r\nimport { IconProps } from '@components/foundation/icon/Icon.props.ts'\r\nimport { ICON_STYLES } from '@components/foundation/icon/Icon.styles.ts'\r\n\r\n/**\r\n * Icon component - Wrapper for SVG icons with theme-aware styling\r\n *\r\n * **Features:**\r\n * - Theme-aware sizing via font sizes\r\n * - Color (stroke) and fill support from theme\r\n * - Optional background with padding and border radius\r\n * - Transition animation on color changes\r\n *\r\n * **Usage:**\r\n * ```tsx\r\n * import { SomeIcon } from 'some-icon-library'\r\n *\r\n * // Stroke color only\r\n * <Icon size=\"md\" color=\"primary\">\r\n * <SomeIcon />\r\n * </Icon>\r\n *\r\n * // With fill color\r\n * <Icon size=\"md\" color=\"primary\" fill=\"secondary\">\r\n * <SomeIcon />\r\n * </Icon>\r\n * ```\r\n *\r\n * **With background:**\r\n * ```tsx\r\n * <Icon\r\n * size=\"lg\"\r\n * color=\"onPrimary\"\r\n * fill=\"onPrimary\"\r\n * backgroundColor=\"primary\"\r\n * padding=\"sm\"\r\n * borderRadius=\"full\"\r\n * >\r\n * <SomeIcon />\r\n * </Icon>\r\n * ```\r\n */\r\nconst Icon: FC<IconProps> = ({\r\n children,\r\n size,\r\n color,\r\n fill,\r\n backgroundColor,\r\n padding,\r\n borderRadius,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n // Clone child element to apply width and height\r\n const child = Children.only(children)\r\n const styledChild = isValidElement(child)\r\n ? cloneElement(child as ReactElement<{ width?: string; height?: string }>, {\r\n width: '100%',\r\n height: '100%',\r\n })\r\n : child\r\n\r\n return (\r\n <div\r\n className={ICON_STYLES.root(size, color, fill, backgroundColor, padding, borderRadius)}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {styledChild}\r\n </div>\r\n )\r\n}\r\n\r\nIcon.displayName = 'Icon'\r\n\r\nexport default Icon\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { TextVariants, TextVariantStyle } from '@interfaces/text.types.ts'\r\n\r\n/**\r\n * Get text variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getTextVariantStyles = (theme: ThemeContract): Record<TextVariants, TextVariantStyle> => ({\r\n h1: {\r\n tag: 'h1',\r\n fontSize: theme.fontSize.xl,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h2: {\r\n tag: 'h2',\r\n fontSize: theme.fontSize.lg,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h3: {\r\n tag: 'h3',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h4: {\r\n tag: 'h4',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h5: {\r\n tag: 'h5',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h6: {\r\n tag: 'h6',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n p: {\r\n tag: 'p',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.relaxed,\r\n },\r\n span: {\r\n tag: 'span',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n label: {\r\n tag: 'label',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n})\r\n","export const getTruncateTextStyles = (maxLines: number) => (\r\n maxLines === 1\r\n ? {\r\n whiteSpace: 'nowrap' as const,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n }\r\n : {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n WebkitLineClamp: maxLines,\r\n WebkitBoxOrient: 'vertical' as const,\r\n // Improve wrapping behavior for multi-line clamp compatibility\r\n whiteSpace: 'normal' as const,\r\n overflowWrap: 'break-word' as const,\r\n wordBreak: 'break-word' as const,\r\n lineClamp: maxLines,\r\n }\r\n)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TextStyleParams } from '@components/foundation/text/Text.props.ts'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils.ts'\r\nimport { getTruncateTextStyles } from '@components/foundation/text/utils/getTruncateTextStyles.utils.ts'\r\n\r\nexport const TEXT_STYLES = createStyles((theme) => {\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n return {\r\n root: ({\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontFamily,\r\n maxLines,\r\n underline,\r\n preserveWhitespace,\r\n }: TextStyleParams) => ({\r\n margin: 0,\r\n fontSize: fontSize ? theme.fontSize[fontSize] : variantStyles[variant].fontSize,\r\n fontWeight: variantStyles[variant].fontWeight,\r\n lineHeight: variantStyles[variant].lineHeight,\r\n color: color ? theme.colors[color] : theme.colors.text,\r\n cursor: 'inherit',\r\n fontFamily,\r\n ...(preserveWhitespace && { whiteSpace: 'pre-wrap' }),\r\n ...(underline && {\r\n textDecoration: 'underline',\r\n textUnderlineOffset: '3px',\r\n }),\r\n ...(maxLines && getTruncateTextStyles(maxLines)),\r\n }),\r\n }\r\n})\r\n","import { createElement, Fragment, ReactNode } from 'react'\r\n\r\n/**\r\n * Parses text content and converts **bold** syntax to <strong> elements\r\n * @param children - The content to parse (string or ReactNode)\r\n * @returns Parsed content with bold text wrapped in <strong> elements\r\n */\r\nexport const parseTextWithBold = (children: ReactNode): ReactNode => {\r\n if (typeof children !== 'string' || !children.includes('**')) {\r\n return children\r\n }\r\n\r\n const boldPattern = /\\*\\*(.+?)\\*\\*/g\r\n const parts: ReactNode[] = []\r\n let lastIndex = 0\r\n let match: RegExpExecArray | null\r\n\r\n while ((match = boldPattern.exec(children)) !== null) {\r\n if (match.index > lastIndex) {\r\n parts.push(children.slice(lastIndex, match.index))\r\n }\r\n\r\n parts.push(\r\n createElement('strong', { key: match.index }, match[1])\r\n )\r\n\r\n lastIndex = match.index + match[0].length\r\n }\r\n\r\n if (parts.length === 0) {\r\n return children\r\n }\r\n\r\n if (lastIndex < children.length) {\r\n parts.push(children.slice(lastIndex))\r\n }\r\n\r\n return createElement(Fragment, null, ...parts)\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { createElement, FC, useMemo } from 'react'\r\n\r\nimport { TextProps } from '@components/foundation/text/Text.props.ts'\r\nimport { TEXT_STYLES } from '@components/foundation/text/Text.styles.ts'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils.ts'\r\nimport { getTruncateTextStyles } from '@components/foundation/text/utils/getTruncateTextStyles.utils.ts'\r\nimport { parseTextWithBold } from '@components/foundation/text/utils/parseTextWithBold.utils.ts'\r\n\r\n/**\r\n * Text component - Renders semantic HTML elements based on variant\r\n *\r\n * **Variants:**\r\n * - `h1-h6`: Heading elements with appropriate styling\r\n * - `p`: Paragraph element with relaxed line height\r\n * - `span`: Inline text element (default)\r\n * - `label`: Label element with medium font weight\r\n *\r\n * **Features:**\r\n * - Automatic HTML tag selection based on variant\r\n * - Theme-aware colors\r\n * - Text truncation with `maxLines`\r\n * - Underline support\r\n * - Preserve whitespace with `preserveWhitespace` prop\r\n * - Bold text with **double asterisks** syntax\r\n */\r\nconst Text: FC<TextProps> = ({\r\n children,\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontFamily,\r\n maxLines,\r\n underline,\r\n preserveWhitespace,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n id,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = useMemo(() => getTextVariantStyles(theme), [theme])\r\n const tag = variantStyles[variant].tag\r\n const parsedChildren = useMemo(() => parseTextWithBold(children), [children])\r\n\r\n // Force inline truncate styles when needed (fix for multi-line clamp not applied in some envs)\r\n const truncateStyles = maxLines ? getTruncateTextStyles(maxLines) : undefined\r\n\r\n return createElement(\r\n tag,\r\n {\r\n id,\r\n className: TEXT_STYLES.root({ variant, color, fontSize, fontFamily, maxLines, underline, preserveWhitespace }),\r\n style: truncateStyles,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n 'aria-describedby': ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n },\r\n parsedChildren\r\n )\r\n}\r\n\r\nText.displayName = 'Text'\r\n\r\nexport default Text\r\n","import { StatusColor, ThemeContract } from '@/interfaces'\nimport { StatusStyleParams } from '@components/data-display/status/Status.props.ts'\n\nexport const getStatusColorStyles = (\n theme: ThemeContract,\n color: StatusStyleParams['color'],\n variant: StatusStyleParams['variant'],\n disabled: StatusStyleParams['disabled']\n) => {\n if (disabled) {\n return {\n filled: {\n backgroundColor: theme.colors.disabled,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: 'transparent',\n borderColor: theme.colors.disabled,\n },\n }[variant]\n }\n\n const colorMap = {\n default: {\n filled: {\n backgroundColor: theme.colors.defaultSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.defaultSubtle,\n borderColor: theme.colors.default,\n },\n },\n primary: {\n filled: {\n backgroundColor: theme.colors.primarySubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.primarySubtle,\n borderColor: theme.colors.primary,\n },\n },\n success: {\n filled: {\n backgroundColor: theme.colors.successSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.successSubtle,\n borderColor: theme.colors.success,\n },\n },\n warning: {\n filled: {\n backgroundColor: theme.colors.warningSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.warningSubtle,\n borderColor: theme.colors.warning,\n },\n },\n error: {\n filled: {\n backgroundColor: theme.colors.errorSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.errorSubtle,\n borderColor: theme.colors.error,\n },\n },\n info: {\n filled: {\n backgroundColor: theme.colors.infoSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.infoSubtle,\n borderColor: theme.colors.info,\n },\n },\n highlight: {\n filled: {\n backgroundColor: theme.colors.highlightSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.highlightSubtle,\n borderColor: theme.colors.highlight,\n },\n },\n accent: {\n filled: {\n backgroundColor: theme.colors.accentSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.accentSubtle,\n borderColor: theme.colors.accent,\n },\n },\n new: {\n filled: {\n backgroundColor: theme.colors.newSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.newSubtle,\n borderColor: theme.colors.new,\n },\n },\n rose: {\n filled: {\n backgroundColor: theme.colors.roseSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.roseSubtle,\n borderColor: theme.colors.rose,\n },\n },\n yellow: {\n filled: {\n backgroundColor: theme.colors.yellowSubtle,\n borderColor: 'transparent',\n },\n outlined: {\n backgroundColor: theme.colors.yellowSubtle,\n borderColor: theme.colors.yellow,\n },\n },\n }\n return colorMap[color][variant]\n}\n\nexport const getStatusTextColor = (\n color: StatusColor,\n disabled: boolean\n): keyof ThemeContract['colors'] => {\n if (disabled) {\n return 'disabledText' as const\n }\n\n // Retourne directement la clé de couleur du thème\n return color as keyof ThemeContract['colors']\n}\n","import { ThemeContract } from '@/interfaces'\r\nimport { StatusStyleParams } from '@components/data-display/status/Status.props.ts'\r\n\r\n/**\r\n * Get status size styles based on the theme, size and icon-only state\r\n * @param theme - Theme object\r\n * @param size - Status size\r\n * @param isIconOnly - Whether the status has only an icon (no label)\r\n */\r\nexport const getStatusSizeStyles = (\r\n theme: ThemeContract,\r\n size: StatusStyleParams['size'],\r\n isIconOnly: StatusStyleParams['isIconOnly']\r\n) => {\r\n const sizeMap = {\r\n '2xs': {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize['2xs'] },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize['2xs'] },\r\n },\r\n xs: {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize.xs },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize.xs },\r\n },\r\n sm: {\r\n iconOnly: { padding: theme.spacing.xs, fontSize: theme.fontSize.sm },\r\n withLabel: { padding: `${theme.spacing.xs} ${theme.spacing.sm}`, fontSize: theme.fontSize.sm },\r\n },\r\n md: {\r\n iconOnly: { padding: theme.spacing.sm, fontSize: theme.fontSize.md },\r\n withLabel: { padding: `${theme.spacing.sm} ${theme.spacing.md}`, fontSize: theme.fontSize.sm },\r\n },\r\n lg: {\r\n iconOnly: { padding: theme.spacing.md, fontSize: theme.fontSize.lg },\r\n withLabel: { padding: `${theme.spacing.sm} ${theme.spacing.lg}`, fontSize: theme.fontSize.md },\r\n },\r\n }\r\n\r\n return isIconOnly ? sizeMap[size].iconOnly : sizeMap[size].withLabel\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { StatusStyleParams } from '@components/data-display/status/Status.props'\nimport { getStatusColorStyles } from '@components/data-display/status/utils/getStatusColorStyles.utils'\nimport { getStatusSizeStyles } from '@components/data-display/status/utils/getStatusSizeStyles.utils'\n\nexport const STATUS_STYLES = createStyles((theme) => ({\n root: ({ variant, color, size, isIconOnly, disabled, gap, radius }: StatusStyleParams) => {\n const colorStyles = getStatusColorStyles(theme, color, variant, disabled)\n const sizeStyles = getStatusSizeStyles(theme, size, isIconOnly)\n\n return {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: gap ? theme.spacing[gap] : theme.spacing.sm,\n borderRadius: radius ? theme.radius[radius] : theme.radius.md,\n border: variant === 'outlined' ? '1px solid' : 'none',\n aspectRatio: isIconOnly ? 1 : undefined,\n height: 'fit-content',\n width: 'fit-content',\n fontFamily: 'inherit',\n fontWeight: theme.fontWeight.medium,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n ...sizeStyles,\n ...colorStyles,\n }\n },\n}))\n","import { StatusStyleParams } from '@components/data-display/status/Status.props.ts'\nimport { ThemeFontSizeContract } from '@interfaces/theme.contracts'\n\n/**\n * Get status content size based on the status size\n * @param size\n * @constructor\n */\nexport const getStatusContentSize = (\n size: StatusStyleParams['size'],\n): keyof ThemeFontSizeContract => {\n const sizeMap = {\n '2xs': '2xs',\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n }\n\n return sizeMap[size] as keyof ThemeFontSizeContract\n}\n","import { FC } from 'react'\r\n\r\nimport { ThemeContract } from '@/interfaces'\r\nimport { StatusProps } from '@components/data-display/status/Status.props'\r\nimport { STATUS_STYLES } from '@components/data-display/status/Status.styles'\r\nimport { getStatusTextColor } from '@components/data-display/status/utils/getStatusColorStyles.utils'\r\nimport { getStatusContentSize } from '@components/data-display/status/utils/getStatusContentSize.utils'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport Text from '@components/foundation/text/Text.tsx'\r\n\r\n/**\r\n * Status component\r\n *\r\n * A compact element for displaying status, tags, or information.\r\n *\r\n * **Variants:**\r\n * - `filled`: Solid background (default)\r\n * - `outlined`: Border only\r\n *\r\n * **Colors:**\r\n * - `default`, `primary`, `success`, `warning`, `error`, `info`, `highlight`, `accent`, `new`, `rose`, `yellow`\r\n */\r\nconst Status: FC<StatusProps> = ({\r\n label,\r\n icon,\r\n variant = 'filled',\r\n color = 'default',\r\n size = 'md',\r\n gap,\r\n radius,\r\n disabled = false,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const isIconOnly = Boolean(icon) && !label\r\n const textColor = getStatusTextColor(color, disabled)\r\n\r\n return (\r\n <span\r\n className={STATUS_STYLES.root({\r\n variant,\r\n color,\r\n size,\r\n isIconOnly,\r\n disabled,\r\n gap,\r\n radius,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {icon && (\r\n <Icon\r\n size={getStatusContentSize(size)}\r\n color={textColor as keyof ThemeContract['colors']}\r\n >\r\n {icon}\r\n </Icon>\r\n )}\r\n {label && (\r\n <Text\r\n variant={'label'}\r\n fontSize={getStatusContentSize(size)}\r\n color={textColor as keyof ThemeContract['colors']}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\nStatus.displayName = 'Status'\r\n\r\nexport default Status\r\n","export const BUTTON_SIZE = 36\r\nexport const ALERT_MAX_WIDTH = 320\r\nexport const MENU_ITEM_SIZE = 32\r\nexport const DRAWER_ITEM_HEIGHT = 32\r\nexport const DEFAULT_TRANSITION_DURATION_MS = 150\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { AvatarSize } from '@interfaces/avatar.types.ts'\r\n\r\n/**\r\n * Get avatar sizes configuration based on the theme\r\n * @param theme\r\n */\r\nexport const getAvatarSizes = (theme: Theme): Record<AvatarSize, { size: number; fontSize: keyof ThemeContract['fontSize']; overlap: string }> => ({\r\n small: { size: BUTTON_SIZE - 8, fontSize: 'xs', overlap: `-${theme.spacing.md}` },\r\n medium: { size: BUTTON_SIZE, fontSize: 'sm', overlap: `-${theme.spacing.md}` },\r\n large: { size: BUTTON_SIZE + 8, fontSize: 'sm', overlap: `-${theme.spacing.lg}` },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { AvatarStyleParams } from '@components/data-display/avatar/Avatar.props.ts'\r\nimport { getAvatarSizes } from '@components/data-display/avatar/utils/getAvatarSizes.utils'\r\n\r\n/**\r\n * Avatar styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const AVATAR_STYLES = createStyles((theme) => {\r\n const AVATAR_SIZES = getAvatarSizes(theme)\r\n\r\n return {\r\n root: ({ hasImage = false, clickable = false, size = 'medium', color, borderColor, backgroundColor }: AvatarStyleParams & { clickable?: boolean }) => {\r\n const sizeConfig = AVATAR_SIZES[size]\r\n return {\r\n width: sizeConfig.size,\r\n height: sizeConfig.size,\r\n borderRadius: theme.radius.full,\r\n backgroundColor: backgroundColor || (hasImage ? 'transparent' : theme.colors.surfaceHover),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: clickable ? 'pointer' : 'default',\r\n border: hasImage && !borderColor ? 'none' : `1px solid ${borderColor || theme.colors.border}`,\r\n overflow: 'hidden',\r\n flexShrink: 0,\r\n color: color || theme.colors.textSecondary,\r\n fontWeight: theme.fontWeight.medium,\r\n }\r\n },\r\n image: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n },\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC, KeyboardEvent } from 'react'\r\n\r\nimport { AvatarProps } from '@components/data-display/avatar/Avatar.props.ts'\r\nimport { AVATAR_STYLES } from '@components/data-display/avatar/Avatar.styles.ts'\r\nimport { getAvatarSizes } from '@components/data-display/avatar/utils/getAvatarSizes.utils'\r\nimport Text from '@components/foundation/text/Text.tsx'\r\n\r\n/**\r\n * Avatar component\r\n *\r\n * Displays a user's avatar with an optional image or fallback initials.\r\n *\r\n * **Accessibility:**\r\n * - When `onClick` is provided, the avatar becomes a focusable button\r\n * with keyboard support (Enter/Space activates the click)\r\n * - Provide `label` or `ariaLabel` for screen readers\r\n * - For decorative avatars, both can be omitted\r\n *\r\n * @example\r\n * ```tsx\r\n * // Static avatar with image\r\n * <Avatar image=\"/user.jpg\" label=\"Jane Doe\" />\r\n *\r\n * // Interactive avatar (clickable)\r\n * <Avatar label=\"JD\" onClick={() => openProfile()} ariaLabel=\"Open Jane's profile\" />\r\n * ```\r\n */\r\nconst Avatar: FC<AvatarProps> = ({\r\n image,\r\n label,\r\n onClick,\r\n size = 'medium',\r\n color,\r\n borderColor,\r\n backgroundColor,\r\n ariaLabel,\r\n tabIndex,\r\n}) => {\r\n // hooks\r\n const theme = useTheme()\r\n\r\n // variables\r\n const AVATAR_SIZES = getAvatarSizes(theme)\r\n const hasImage = !!image\r\n const clickable = !!onClick\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\r\n if (onClick && (event.key === 'Enter' || event.key === ' ')) {\r\n event.preventDefault()\r\n onClick(event)\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={AVATAR_STYLES.root({ hasImage, clickable, size, color, borderColor, backgroundColor })}\r\n onClick={onClick}\r\n onKeyDown={clickable ? handleKeyDown : undefined}\r\n role={clickable ? 'button' : undefined}\r\n tabIndex={clickable ? (tabIndex ?? 0) : tabIndex}\r\n aria-label={ariaLabel || label}\r\n >\r\n {hasImage ? (\r\n <img\r\n src={image}\r\n alt={label || ariaLabel || ''}\r\n className={AVATAR_STYLES.image}\r\n />\r\n ) : (\r\n <Text\r\n variant={'label'}\r\n fontSize={AVATAR_SIZES[size].fontSize}\r\n >\r\n {label || '?'}\r\n </Text>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nAvatar.displayName = 'Avatar'\r\n\r\nexport default Avatar\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { AvatarSize } from '@interfaces/avatar.types.ts'\r\n\r\n/**\r\n * Get avatar sizes configuration based on the theme\r\n * @param theme\r\n */\r\nexport const getAvatarSizes = (theme: Theme): Record<AvatarSize, { size: number; fontSize: keyof ThemeContract['fontSize']; overlap: string }> => ({\r\n small: { size: BUTTON_SIZE - 8, fontSize: 'xs', overlap: `-${theme.spacing.md}` },\r\n medium: { size: BUTTON_SIZE, fontSize: 'sm', overlap: `-${theme.spacing.md}` },\r\n large: { size: BUTTON_SIZE + 8, fontSize: 'sm', overlap: `-${theme.spacing.lg}` },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { AvatarSize } from '@/interfaces'\nimport { getAvatarSizes } from '@utils/ui/components/data-display/avatar/getAvatarSizes.utils.ts'\n\n/**\n * AvatarGroup styles using createStyles from @aurora-ds/theme\n */\nexport const AVATAR_GROUP_STYLES = createStyles((theme) => {\n const AVATAR_SIZES = getAvatarSizes(theme)\n\n return {\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n child: ({ size = 'medium' }: { size?: AvatarSize }) => ({\n marginLeft: AVATAR_SIZES[size].overlap,\n }),\n firstChild: {\n marginLeft: '0',\n },\n more: ({ size = 'medium' }: { size?: AvatarSize }) => {\n const sizeConfig = AVATAR_SIZES[size]\n return {\n width: sizeConfig.size,\n height: sizeConfig.size,\n borderRadius: theme.radius.full,\n backgroundColor: theme.colors.surfaceHover,\n border: `1px solid ${theme.colors.border}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.colors.textSecondary,\n fontSize: sizeConfig.fontSize,\n fontWeight: theme.fontWeight.medium,\n flexShrink: 0,\n marginLeft: AVATAR_SIZES[size].overlap,\n }\n },\n }\n})\n","import { useTheme } from '@aurora-ds/theme'\nimport { FC, Children } from 'react'\n\nimport { AvatarGroupProps } from '@/components'\nimport { AVATAR_GROUP_STYLES } from '@components/data-display/avatar/avatar-group/AvatarGroup.styles.ts'\nimport { getAvatarSizes } from '@components/data-display/avatar/utils/getAvatarSizes.utils'\nimport Text from '@components/foundation/text/Text.tsx'\n\n/**\n * AvatarGroup component\n *\n * Groups multiple avatars with overlapping display and optional limit.\n */\nconst AvatarGroup: FC<AvatarGroupProps> = ({ children, limit, size = 'medium' }) => {\n // hooks\n const theme = useTheme()\n\n // variables\n const AVATAR_SIZES = getAvatarSizes(theme)\n const childArray = Children.toArray(children)\n const displayedChildren = limit ? childArray.slice(0, limit) : childArray\n const moreCount = limit && childArray.length > limit ? childArray.length - limit : 0\n\n return (\n <div className={AVATAR_GROUP_STYLES.root}>\n {displayedChildren.map((child, index) => (\n <div\n key={index}\n className={index === 0 ? AVATAR_GROUP_STYLES.firstChild : AVATAR_GROUP_STYLES.child({ size })}\n >\n {child}\n </div>\n ))}\n {moreCount > 0 && (\n <div className={AVATAR_GROUP_STYLES.more({ size })}>\n <Text\n variant={'label'}\n fontSize={AVATAR_SIZES[size].fontSize}\n >\n +\n {moreCount}\n </Text>\n </div>\n )}\n </div>\n )\n}\n\nAvatarGroup.displayName = 'AvatarGroup'\n\nexport default AvatarGroup\n","import { keyframes } from '@aurora-ds/theme'\r\n\r\nexport const shimmerAnimation = keyframes({\r\n '0%': {\r\n backgroundPosition: '-200% 0',\r\n },\r\n '100%': {\r\n backgroundPosition: '200% 0',\r\n },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { CSSProperties } from 'react'\r\n\r\nimport { ThemeContract } from '@/interfaces'\r\nimport { shimmerAnimation } from '@constants/animations'\r\n\r\nexport const SKELETON_STYLES = createStyles((theme) => ({\r\n root: (width?: CSSProperties['width'], height?: CSSProperties['height'], borderRadius?: keyof ThemeContract['radius']) => ({\r\n width,\r\n height,\r\n borderRadius: borderRadius ? theme.radius[borderRadius] : theme.radius.md,\r\n background: `linear-gradient(90deg, ${theme.colors.surfaceActive} 25%, ${theme.colors.surfaceHover} 50%, ${theme.colors.surfaceActive} 75%)`,\r\n backgroundSize: '200% 100%',\r\n animation: `${shimmerAnimation} 1.2s ease-in-out infinite`,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SkeletonProps } from '@components/data-display/skeleton/Skeleton.props'\r\nimport { SKELETON_STYLES } from '@components/data-display/skeleton/Skeleton.styles'\r\n\r\nconst Skeleton: FC<SkeletonProps> = ({\r\n width,\r\n height,\r\n borderRadius\r\n}) => {\r\n return (\r\n <div\r\n className={SKELETON_STYLES.root(width, height, borderRadius)}\r\n />\r\n )\r\n}\r\n\r\nSkeleton.displayName = 'Skeleton'\r\n\r\nexport default Skeleton\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype ButtonSizeConfig = {\r\n height: number\r\n padding: {\r\n vertical: keyof ThemeContract['spacing']\r\n horizontal: keyof ThemeContract['spacing']\r\n }\r\n fontSize: keyof ThemeContract['fontSize']\r\n}\r\n\r\nexport const getButtonSizeStyles = (): Record<IconButtonSizes, ButtonSizeConfig> => ({\r\n small: {\r\n height: BUTTON_SIZE - 8,\r\n padding: {\r\n vertical: 'xs',\r\n horizontal: 'sm'\r\n },\r\n fontSize: 'sm'\r\n },\r\n medium: {\r\n height: BUTTON_SIZE,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'md'\r\n },\r\n fontSize: 'sm'\r\n },\r\n large: {\r\n height: BUTTON_SIZE + 8,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'lg'\r\n },\r\n fontSize: 'md'\r\n }\r\n})\r\n","import { colors, Theme } from '@aurora-ds/theme'\r\n\r\nimport { ButtonVariants, ButtonVariantStyle } from '@interfaces/button.types.ts'\r\n\r\n/**\r\n * Get button variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getButtonVariantStyles = (theme: Theme): Record<ButtonVariants, ButtonVariantStyle> => {\r\n // Shared base styles\r\n const transparentBase = {\r\n backgroundColor: colors.transparent,\r\n color: theme.colors.primary,\r\n }\r\n\r\n const surfaceStates = {\r\n hover: { backgroundColor: theme.colors.surfaceHover },\r\n pressed: { backgroundColor: theme.colors.surfaceActive },\r\n }\r\n\r\n const baseDisabled = {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }\r\n\r\n return {\r\n contained: {\r\n default: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.primaryHover },\r\n pressed: { backgroundColor: theme.colors.primaryActive },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onPrimary',\r\n },\r\n outlined: {\r\n default: {\r\n ...transparentBase,\r\n border: `1px solid ${theme.colors.primary}`,\r\n },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', borderColor: theme.colors.disabled },\r\n textColor: 'primary',\r\n },\r\n text: {\r\n default: { ...transparentBase, border: 'none' },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent' },\r\n textColor: 'primary',\r\n },\r\n destructive: {\r\n default: {\r\n backgroundColor: theme.colors.error,\r\n color: theme.colors.onError,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.errorHover },\r\n pressed: { backgroundColor: theme.colors.error },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onError',\r\n },\r\n link: {\r\n default: { ...transparentBase, border: 'none', textDecoration: 'underline', textDecorationColor: 'transparent', textUnderlineOffset: '3px' },\r\n hover: { backgroundColor: 'transparent', textDecorationColor: 'currentColor' },\r\n pressed: { backgroundColor: 'transparent', textDecorationColor: 'currentColor', color: theme.colors.linkActive },\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', textDecoration: 'none' },\r\n textColor: 'link',\r\n },\r\n }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { ButtonStyleParams } from '@components/actions/button/Button.props.ts'\r\nimport { getButtonSizeStyles } from '@utils/ui/components/actions/button/getButtonSizeStyles.utils.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\n\r\n/**\r\n * Button styles using createStyles from @aurora-ds/theme\r\n *\r\n * Override via className with createStyles:\r\n * ```tsx\r\n * const myStyles = createStyles((theme) => ({\r\n * custom: {\r\n * backgroundColor: theme.colors.accent,\r\n * ':hover': { backgroundColor: theme.colors.accentHover }\r\n * }\r\n * }))\r\n * <Button className={myStyles.custom} label=\"Custom\" />\r\n * ```\r\n */\r\nexport const BUTTON_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getButtonSizeStyles()\r\n\r\n return {\r\n root: ({\r\n variant = 'contained',\r\n active = false,\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium'\r\n }: ButtonStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n const overrides = textColor ? {\r\n ...(variant !== 'contained' && { color: theme.colors[textColor] }),\r\n ...(variant === 'outlined' && { border: `1px solid ${theme.colors[textColor]}` }),\r\n } : {}\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: `${theme.spacing[sizeConfig.padding.vertical]} ${theme.spacing[sizeConfig.padding.horizontal]}`,\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}, text-decoration-color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.height,\r\n maxHeight: sizeConfig.height,\r\n fontFamily: 'inherit',\r\n ...variantStyles[variant].default,\r\n ...(active && variantStyles[variant].pressed),\r\n ':hover': {\r\n ...variantStyles[variant].hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...variantStyles[variant].pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': variantStyles[variant].disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype ButtonSizeConfig = {\r\n height: number\r\n padding: {\r\n vertical: keyof ThemeContract['spacing']\r\n horizontal: keyof ThemeContract['spacing']\r\n }\r\n fontSize: keyof ThemeContract['fontSize']\r\n}\r\n\r\nexport const getButtonSizeStyles = (): Record<IconButtonSizes, ButtonSizeConfig> => ({\r\n small: {\r\n height: BUTTON_SIZE - 8,\r\n padding: {\r\n vertical: 'xs',\r\n horizontal: 'sm'\r\n },\r\n fontSize: 'sm'\r\n },\r\n medium: {\r\n height: BUTTON_SIZE,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'md'\r\n },\r\n fontSize: 'sm'\r\n },\r\n large: {\r\n height: BUTTON_SIZE + 8,\r\n padding: {\r\n vertical: 'sm',\r\n horizontal: 'lg'\r\n },\r\n fontSize: 'md'\r\n }\r\n})\r\n","import { colors, Theme } from '@aurora-ds/theme'\r\n\r\nimport { ButtonVariants, ButtonVariantStyle } from '@interfaces/button.types.ts'\r\n\r\n/**\r\n * Get button variant styles based on the theme\r\n * @param theme\r\n */\r\nexport const getButtonVariantStyles = (theme: Theme): Record<ButtonVariants, ButtonVariantStyle> => {\r\n // Shared base styles\r\n const transparentBase = {\r\n backgroundColor: colors.transparent,\r\n color: theme.colors.primary,\r\n }\r\n\r\n const surfaceStates = {\r\n hover: { backgroundColor: theme.colors.surfaceHover },\r\n pressed: { backgroundColor: theme.colors.surfaceActive },\r\n }\r\n\r\n const baseDisabled = {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }\r\n\r\n return {\r\n contained: {\r\n default: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.primaryHover },\r\n pressed: { backgroundColor: theme.colors.primaryActive },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onPrimary',\r\n },\r\n outlined: {\r\n default: {\r\n ...transparentBase,\r\n border: `1px solid ${theme.colors.primary}`,\r\n },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', borderColor: theme.colors.disabled },\r\n textColor: 'primary',\r\n },\r\n text: {\r\n default: { ...transparentBase, border: 'none' },\r\n ...surfaceStates,\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent' },\r\n textColor: 'primary',\r\n },\r\n destructive: {\r\n default: {\r\n backgroundColor: theme.colors.error,\r\n color: theme.colors.onError,\r\n border: 'none',\r\n },\r\n hover: { backgroundColor: theme.colors.errorHover },\r\n pressed: { backgroundColor: theme.colors.error },\r\n disabled: { ...baseDisabled, backgroundColor: theme.colors.disabled },\r\n textColor: 'onError',\r\n },\r\n link: {\r\n default: { ...transparentBase, border: 'none', textDecoration: 'underline', textDecorationColor: 'transparent', textUnderlineOffset: '3px' },\r\n hover: { backgroundColor: 'transparent', textDecorationColor: 'currentColor' },\r\n pressed: { backgroundColor: 'transparent', textDecorationColor: 'currentColor', color: theme.colors.linkActive },\r\n disabled: { ...baseDisabled, backgroundColor: 'transparent', textDecoration: 'none' },\r\n textColor: 'link',\r\n },\r\n }\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { ButtonProps } from '@components/actions/button/Button.props.ts'\r\nimport { BUTTON_STYLES } from '@components/actions/button/Button.styles.ts'\r\nimport { getButtonSizeStyles } from '@components/actions/button/utils/getButtonSizeStyles.utils'\r\nimport { getButtonVariantStyles } from '@components/actions/button/utils/getButtonVariantStyles.utils'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\n/**\r\n * Button component\r\n *\r\n * **Variants:**\r\n * - `contained`: Solid background button (default)\r\n * - `outlined`: Border only button\r\n * - `text`: Text only button without background\r\n * - `destructive`: Danger/delete action button\r\n *\r\n * **Accessibility:**\r\n * - Use `ariaLabel` when the button has no visible text or the label is unclear\r\n * - Use `ariaPressed` for toggle buttons to indicate their state\r\n * - Use `ariaBusy` when the button triggers an async action\r\n * - Use `ariaExpanded` when the button controls a collapsible section\r\n * - Use `ariaControls` to reference the controlled element\r\n */\r\nconst Button: FC<ButtonProps> = ({\r\n label,\r\n startIcon,\r\n endIcon,\r\n variant = 'contained',\r\n active = false,\r\n onClick,\r\n disabled,\r\n type = 'button',\r\n textColor: customTextColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n ariaPressed,\r\n ariaBusy,\r\n ariaExpanded,\r\n ariaHasPopup,\r\n ariaControls,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getButtonSizeStyles()\r\n const textColor = disabled ? 'disabledText' : (customTextColor ?? variantStyles[variant].textColor)\r\n\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={type}\r\n className={BUTTON_STYLES.root({ variant, active, textColor: customTextColor, backgroundColor, hoverBackgroundColor, activeBackgroundColor, size })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-pressed={ariaPressed}\r\n aria-busy={ariaBusy}\r\n aria-expanded={ariaExpanded}\r\n aria-haspopup={ariaHasPopup}\r\n aria-controls={ariaControls}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {startIcon && (\r\n <Icon color={textColor}>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={textColor}\r\n fontSize={sizeStyles[size].fontSize}\r\n >\r\n {label}\r\n </Text>\r\n {endIcon && (\r\n <Icon color={textColor}>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </button>\r\n )\r\n}\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport default Button\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype IconButtonSizeConfig = {\r\n size: number\r\n padding: keyof ThemeContract['spacing']\r\n iconSize: keyof ThemeContract['fontSize']\r\n}\r\n\r\nexport const getIconButtonSizeStyles = (): Record<IconButtonSizes, IconButtonSizeConfig> => ({\r\n small: {\r\n size: BUTTON_SIZE - 8,\r\n padding: 'xs',\r\n iconSize: 'md'\r\n },\r\n medium: {\r\n size: BUTTON_SIZE,\r\n padding: 'sm',\r\n iconSize: 'lg'\r\n },\r\n large: {\r\n size: BUTTON_SIZE + 8,\r\n padding: 'sm',\r\n iconSize: 'xl'\r\n }\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { IconButtonStyleParams } from '@components/actions/icon-button/IconButton.props.ts'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils.ts'\r\nimport { getIconButtonSizeStyles } from '@utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils.ts'\r\n\r\nexport const ICON_BUTTON_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getIconButtonSizeStyles()\r\n\r\n return {\r\n root: ({\r\n variant = 'contained',\r\n active = false,\r\n size = 'medium',\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor\r\n }: IconButtonStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n const overrides = textColor ? {\r\n ...(variant !== 'contained' && { color: theme.colors[textColor] }),\r\n ...(variant === 'outlined' && { border: `1px solid ${theme.colors[textColor]}` }),\r\n } : {}\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing[sizeConfig.padding],\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.size,\r\n maxHeight: sizeConfig.size,\r\n minWidth: sizeConfig.size,\r\n maxWidth: sizeConfig.size,\r\n fontFamily: 'inherit',\r\n ...variantStyles[variant].default,\r\n ...(active && variantStyles[variant].pressed),\r\n ':hover': {\r\n ...variantStyles[variant].hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...variantStyles[variant].pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': variantStyles[variant].disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\nimport { IconButtonSizes } from '@interfaces/button.types.ts'\r\n\r\ntype IconButtonSizeConfig = {\r\n size: number\r\n padding: keyof ThemeContract['spacing']\r\n iconSize: keyof ThemeContract['fontSize']\r\n}\r\n\r\nexport const getIconButtonSizeStyles = (): Record<IconButtonSizes, IconButtonSizeConfig> => ({\r\n small: {\r\n size: BUTTON_SIZE - 8,\r\n padding: 'xs',\r\n iconSize: 'md'\r\n },\r\n medium: {\r\n size: BUTTON_SIZE,\r\n padding: 'sm',\r\n iconSize: 'lg'\r\n },\r\n large: {\r\n size: BUTTON_SIZE + 8,\r\n padding: 'sm',\r\n iconSize: 'xl'\r\n }\r\n})\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC } from 'react'\r\n\r\nimport { getButtonVariantStyles } from '@components/actions/button/utils/getButtonVariantStyles.utils'\r\nimport { IconButtonProps } from '@components/actions/icon-button/IconButton.props.ts'\r\nimport { ICON_BUTTON_STYLES } from '@components/actions/icon-button/IconButton.styles.ts'\r\nimport { getIconButtonSizeStyles } from '@components/actions/icon-button/utils/getIconButtonSizeStyles.utils'\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\n\r\n/**\r\n * IconButton component\r\n *\r\n * A button that displays only an icon without text.\r\n *\r\n * **⚠️ Accessibility:** Always provide an `ariaLabel` for icon-only buttons\r\n * so screen readers can describe the action.\r\n *\r\n * @example\r\n * ```tsx\r\n * <IconButton icon={<CloseIcon />} ariaLabel=\"Close dialog\" onClick={onClose} />\r\n * ```\r\n */\r\nconst IconButton: FC<IconButtonProps> = ({\r\n icon,\r\n variant = 'contained',\r\n active = false,\r\n type = 'button',\r\n onClick,\r\n disabled,\r\n textColor: customTextColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n ariaPressed,\r\n ariaBusy,\r\n ariaExpanded,\r\n ariaHasPopup,\r\n ariaControls,\r\n}) => {\r\n const theme = useTheme()\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const textColor = disabled ? 'disabledText' : (customTextColor ?? variantStyles[variant].textColor)\r\n const iconSize = getIconButtonSizeStyles()[size].iconSize\r\n\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={type}\r\n className={ICON_BUTTON_STYLES.root({ variant, active, size, textColor: customTextColor, backgroundColor, hoverBackgroundColor, activeBackgroundColor })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-pressed={ariaPressed}\r\n aria-busy={ariaBusy}\r\n aria-expanded={ariaExpanded}\r\n aria-haspopup={ariaHasPopup}\r\n aria-controls={ariaControls}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <Icon\r\n color={textColor}\r\n size={iconSize}\r\n >\r\n {icon}\r\n </Icon>\r\n </button>\r\n )\r\n}\r\n\r\nIconButton.displayName = 'IconButton'\r\n\r\nexport default IconButton\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { ButtonToggleStyleParams } from '@components/actions/button-toggle/ButtonToggle/ButtonToggle.props'\r\nimport { getButtonVariantStyles } from '@utils/ui/components/actions/button/getButtonVariantStyles.utils'\r\nimport { getIconButtonSizeStyles } from '@utils/ui/components/actions/icon-button/getIconButtonSizeStyles.utils'\r\n\r\nexport const BUTTON_TOGGLE_STYLES = createStyles((theme) => {\r\n const variantStyles = getButtonVariantStyles(theme)\r\n const sizeStyles = getIconButtonSizeStyles()\r\n const textVariant = variantStyles.text\r\n\r\n return {\r\n root: ({\r\n active = false,\r\n size = 'medium',\r\n activeTextColor = 'primary',\r\n inactiveTextColor = 'textSecondary',\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor\r\n }: ButtonToggleStyleParams) => {\r\n const sizeConfig = sizeStyles[size]\r\n\r\n // Determine the text color based on active state\r\n const finalTextColor = textColor\r\n ? theme.colors[textColor]\r\n : active\r\n ? theme.colors[activeTextColor]\r\n : theme.colors[inactiveTextColor]\r\n\r\n const overrides = {\r\n color: finalTextColor,\r\n }\r\n\r\n const backgroundOverride = backgroundColor ? { backgroundColor: theme.colors[backgroundColor] } : {}\r\n const hoverBackgroundOverride = hoverBackgroundColor ? { backgroundColor: theme.colors[hoverBackgroundColor] } : {}\r\n const activeBackgroundOverride = activeBackgroundColor ? { backgroundColor: theme.colors[activeBackgroundColor] } : {}\r\n\r\n return {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing[sizeConfig.padding],\r\n borderRadius: 0, // No border radius for grouped buttons\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: sizeConfig.size,\r\n maxHeight: sizeConfig.size,\r\n minWidth: sizeConfig.size,\r\n fontFamily: 'inherit',\r\n ...textVariant.default,\r\n ...(active && textVariant.pressed),\r\n ':hover': {\r\n ...textVariant.hover,\r\n ...hoverBackgroundOverride,\r\n },\r\n ':active': {\r\n ...textVariant.pressed,\r\n ...activeBackgroundOverride,\r\n },\r\n ':disabled': textVariant.disabled,\r\n ...overrides,\r\n ...backgroundOverride,\r\n }\r\n },\r\n }\r\n})\r\n","import { FC } from 'react'\r\n\r\nimport { ButtonToggleProps } from '@components/actions/button-toggle/ButtonToggle/ButtonToggle.props'\r\nimport { BUTTON_TOGGLE_STYLES } from '@components/actions/button-toggle/ButtonToggle/ButtonToggle.styles'\r\n\r\n/**\r\n * ButtonToggle component\r\n *\r\n * A toggle button similar to IconButton but with active state.\r\n * Uses only the 'text' variant style.\r\n * Designed to be used within ButtonToggleGroup.\r\n *\r\n * **Colors:**\r\n * - Active: primary (default) - customizable via activeTextColor\r\n * - Inactive: textSecondary (default) - customizable via inactiveTextColor\r\n */\r\nconst ButtonToggle: FC<ButtonToggleProps> = ({\r\n value,\r\n children,\r\n active = false,\r\n onClick,\r\n disabled,\r\n activeTextColor,\r\n inactiveTextColor,\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor,\r\n size = 'medium',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n if (onClick) {\r\n onClick(e, value)\r\n }\r\n }\r\n\r\n return (\r\n <button\r\n onClick={handleClick}\r\n disabled={disabled}\r\n type={'button'}\r\n className={BUTTON_TOGGLE_STYLES.root({\r\n active,\r\n size,\r\n activeTextColor,\r\n inactiveTextColor,\r\n textColor,\r\n backgroundColor,\r\n hoverBackgroundColor,\r\n activeBackgroundColor\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-pressed={active}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </button>\r\n )\r\n}\r\n\r\nButtonToggle.displayName = 'ButtonToggle'\r\n\r\nexport default ButtonToggle\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const BUTTON_TOGGLE_GROUP_STYLES = createStyles((theme) => {\r\n return {\r\n root: () => ({\r\n display: 'inline-flex',\r\n flexDirection: 'row',\r\n gap: 0,\r\n flexGrow: 0,\r\n width: 'fit-content',\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n overflow: 'hidden',\r\n\r\n // First child - rounded left corners\r\n '& > button:first-of-type': {\r\n borderTopLeftRadius: theme.radius.md,\r\n borderBottomLeftRadius: theme.radius.md,\r\n },\r\n\r\n // Last child - rounded right corners\r\n '& > button:last-of-type': {\r\n borderTopRightRadius: theme.radius.md,\r\n borderBottomRightRadius: theme.radius.md,\r\n },\r\n\r\n // All children except last - border right\r\n '& > button:not(:last-of-type)': {\r\n borderRight: `1px solid ${theme.colors.border}`,\r\n },\r\n }),\r\n }\r\n})\r\n","import { FC, Children, cloneElement, isValidElement } from 'react'\r\n\r\nimport { ButtonToggleGroupProps, ButtonToggleChild } from '@components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.props'\r\nimport { BUTTON_TOGGLE_GROUP_STYLES } from '@components/actions/button-toggle/ButtonToggleGroup/ButtonToggleGroup.styles'\r\n\r\n/**\r\n * ButtonToggleGroup component\r\n *\r\n * Groups multiple ButtonToggle components together in a row without gaps.\r\n * Manages exclusive selection (only one button can be active at a time).\r\n *\r\n * **Default Colors:**\r\n * - Active buttons: primary\r\n * - Inactive buttons: textSecondary\r\n */\r\nconst ButtonToggleGroup: FC<ButtonToggleGroupProps> = ({\r\n value,\r\n onChange,\r\n children,\r\n exclusive = true,\r\n required = false,\r\n size = 'medium',\r\n activeTextColor,\r\n inactiveTextColor,\r\n ariaLabel,\r\n role = 'group',\r\n}) => {\r\n const handleToggleClick = (_e: React.MouseEvent<HTMLButtonElement>, toggleValue: string) => {\r\n if (!onChange) {return}\r\n\r\n if (exclusive) {\r\n // If required is true and clicking the currently active button, don't deselect\r\n if (required && value === toggleValue) {\r\n return\r\n }\r\n // Toggle off if clicking the active button, otherwise set new value\r\n onChange(value === toggleValue ? null : toggleValue)\r\n } else {\r\n // Non-exclusive mode would need array value support\r\n onChange(toggleValue)\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={BUTTON_TOGGLE_GROUP_STYLES.root()}\r\n role={role}\r\n aria-label={ariaLabel}\r\n >\r\n {Children.map(children, (child) => {\r\n if (!isValidElement(child)) {\r\n return child\r\n }\r\n\r\n const toggleChild = child as ButtonToggleChild\r\n\r\n return cloneElement(toggleChild, {\r\n ...toggleChild.props,\r\n active: exclusive ? value === toggleChild.props.value : toggleChild.props.active,\r\n size,\r\n activeTextColor: toggleChild.props.activeTextColor || activeTextColor,\r\n inactiveTextColor: toggleChild.props.inactiveTextColor || inactiveTextColor,\r\n onClick: (e: React.MouseEvent<HTMLButtonElement>, toggleValue: string) => {\r\n handleToggleClick(e, toggleValue)\r\n // Also call original onClick if provided\r\n if (toggleChild.props.onClick) {\r\n toggleChild.props.onClick(e, toggleValue)\r\n }\r\n },\r\n })\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nButtonToggleGroup.displayName = 'ButtonToggleGroup'\r\n\r\nexport default ButtonToggleGroup\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const FORM_STYLES = createStyles(() => ({\r\n root: {\r\n display: 'contents',\r\n },\r\n}))\r\n","import { FC, FormEvent, memo, useCallback } from 'react'\r\n\r\nimport { FormProps } from '@components/forms/form/Form.props'\r\nimport { FORM_STYLES } from '@components/forms/form/Form.styles'\r\n\r\n/**\r\n * Form component - A transparent wrapper for form elements with automatic preventDefault handling\r\n */\r\nconst Form: FC<FormProps> = ({\r\n children,\r\n onSubmit,\r\n ariaLabel,\r\n}) => {\r\n const handleSubmit = useCallback((e: FormEvent) => {\r\n e.preventDefault()\r\n onSubmit?.(e)\r\n }, [onSubmit])\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className={FORM_STYLES.root}\r\n aria-label={ariaLabel}\r\n >\r\n {children}\r\n </form>\r\n )\r\n}\r\n\r\nForm.displayName = 'Form'\r\n\r\nexport default memo(Form)\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { InputStyleParams } from '@components/forms/input/Input.props.ts'\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\n\nimport type { CSSProperties } from 'react'\n\n/**\n * Input styles using createStyles from @aurora-ds/theme\n */\nexport const INPUT_STYLES = createStyles((theme) => ({\n container: ({ width }: { width?: CSSProperties['width'] }) => ({\n position: 'relative',\n display: 'block',\n width: width ?? '100%',\n '&:hover:not(.disabled) input': {\n borderColor: theme.colors.primaryHover,\n },\n }),\n startIcon: {\n position: 'absolute',\n left: theme.spacing.md,\n top: '50%',\n transform: 'translateY(-50%)',\n pointerEvents: 'none',\n },\n endIcon: {\n position: 'absolute',\n right: theme.spacing.sm,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 1,\n },\n endIconShifted: {\n position: 'absolute',\n right: `calc(${theme.spacing.md} + 1.5rem)`,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 1,\n },\n passwordToggle: {\n position: 'absolute',\n right: theme.spacing.xs,\n top: '50%',\n transform: 'translateY(-50%)',\n zIndex: 2,\n },\n root: ({ disabled = false, hasStartIcon = false, hasEndIcon = false, hasPasswordToggle = false }: InputStyleParams) => ({\n boxSizing: 'border-box',\n width: '100%',\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\n paddingLeft: hasStartIcon ? `calc(${theme.spacing.md} + 1.5rem)` : theme.spacing.md,\n paddingRight: `calc(${theme.spacing.sm} + ${hasEndIcon ? '1.5rem' : '0px'} + ${hasPasswordToggle ? '1.5rem' : '0px'} + ${hasEndIcon && hasPasswordToggle ? theme.spacing.xs : '0px'})`,\n border: `1px solid ${theme.colors.border}`,\n borderRadius: theme.radius.md,\n fontSize: theme.fontSize.sm,\n fontFamily: 'inherit',\n backgroundColor: theme.colors.surface,\n color: theme.colors.text,\n transition: `border-color ${theme.transition.fast}`,\n outline: 'none',\n minHeight: BUTTON_SIZE,\n maxHeight: BUTTON_SIZE,\n lineHeight: theme.lineHeight.none,\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n ':focus': {\n borderColor: theme.colors.primary,\n },\n '::placeholder': {\n color: theme.colors.textTertiary,\n fontSize: theme.fontSize.sm,\n },\n ...(disabled && {\n color: theme.colors.disabledText,\n cursor: 'not-allowed',\n opacity: theme.opacity.high\n }),\n }),\n}))\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { StackStyleParams } from '@components/layout/stack/Stack.props.ts'\r\n\r\n/**\r\n * Stack styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const STACK_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction,\r\n gap,\r\n width,\r\n height,\r\n align,\r\n justify,\r\n wrap,\r\n padding,\r\n }: StackStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: direction,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n width,\r\n height,\r\n alignItems: align,\r\n justifyContent: justify,\r\n flexWrap: wrap,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { StackProps } from '@components/layout/stack/Stack.props.ts'\r\nimport { STACK_STYLES } from '@components/layout/stack/Stack.styles.ts'\r\n\r\n/**\r\n * Stack component\r\n *\r\n * A flexbox container for laying out children in a row or column.\r\n *\r\n * **Direction:**\r\n * - `row`: Horizontal layout (default)\r\n * - `column`: Vertical layout\r\n */\r\nconst Stack: FC<StackProps> = ({\r\n children,\r\n direction = 'row',\r\n gap = 'sm',\r\n width,\r\n height,\r\n align = 'center',\r\n justify,\r\n wrap,\r\n padding,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={STACK_STYLES.root({\r\n direction,\r\n gap,\r\n width,\r\n height,\r\n align,\r\n justify,\r\n wrap,\r\n padding,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nStack.displayName = 'Stack'\r\n\r\nexport default Stack\r\n","import { JSX } from 'react'\r\n\r\nexport const AlertCircleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'8'}\r\n x2={'12'}\r\n y2={'12'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'16'}\r\n x2={'12.01'}\r\n y2={'16'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import { JSX } from 'react'\r\n\r\nexport const AlertTriangleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <path\r\n d={'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'9'}\r\n x2={'12'}\r\n y2={'13'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'17'}\r\n x2={'12.01'}\r\n y2={'17'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const CalendarIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <path d={'M8 2v4'} />\r\n <path d={'M16 2v4'} />\r\n <rect\r\n width={'18'}\r\n height={'18'}\r\n x={'3'}\r\n y={'4'}\r\n rx={'2'}\r\n />\r\n <path d={'M3 10h18'} />\r\n </svg>\r\n )\r\n}\r\n","import { JSX } from 'react'\r\n\r\nexport const CheckCircleIcon = (): JSX.Element => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <polyline\r\n points={'9 12 11 14 15 10'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const ChevronDownIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-down-icon lucide-chevron-down'}\r\n >\r\n <path d={'m6 9 6 6 6-6'}/>\r\n </svg>\r\n\r\n )\r\n}\r\n","export const ChevronLeftIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-left-icon lucide-chevron-left'}\r\n >\r\n <path d={'m15 18-6-6 6-6'}/>\r\n </svg>\r\n )\r\n}\r\n","export const ChevronRightIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-chevron-right-icon lucide-chevron-right'}\r\n >\r\n <path d={'m9 18 6-6-6-6'}/>\r\n </svg>\r\n\r\n )\r\n}\r\n","import { FC } from 'react'\r\n\r\nexport const CloseIcon: FC = () => (\r\n <svg\r\n width={'16'}\r\n height={'16'}\r\n viewBox={'0 0 16 16'}\r\n fill={'none'}\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n >\r\n <path\r\n d={'M12 4L4 12M4 4l8 8'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n />\r\n </svg>\r\n)\r\n","export const EyeIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-eye-icon lucide-eye'}\r\n >\r\n <path\r\n d={'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0'}\r\n />\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'3'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const EyeOffIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-eye-off-icon lucide-eye-off'}\r\n >\r\n <path d={'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49'}/>\r\n <path d={'M14.084 14.158a3 3 0 0 1-4.242-4.242'}/>\r\n <path d={'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143'}/>\r\n <path d={'m2 2 20 20'}/>\r\n </svg>\r\n )\r\n}\r\n","export const InfoIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'100%'}\r\n height={'100%'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'10'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'16'}\r\n x2={'12'}\r\n y2={'12'}\r\n />\r\n <line\r\n x1={'12'}\r\n y1={'8'}\r\n x2={'12.01'}\r\n y2={'8'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const MoreHorizontalIcon = () => {\r\n return (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n className={'lucide lucide-ellipsis-icon lucide-ellipsis'}\r\n >\r\n <circle\r\n cx={'12'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n <circle\r\n cx={'19'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n <circle\r\n cx={'5'}\r\n cy={'12'}\r\n r={'1'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import { FC } from 'react'\r\n\r\nexport const TrashIcon: FC = () => (\r\n <svg\r\n width={'16'}\r\n height={'16'}\r\n viewBox={'0 0 16 16'}\r\n fill={'none'}\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n >\r\n <path\r\n d={'M2 4H3.33333H14'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n />\r\n <path\r\n d={'M5.33325 4.00004V2.66671C5.33325 2.31309 5.47373 1.97395 5.72378 1.7239C5.97382 1.47385 6.31296 1.33337 6.66659 1.33337H9.33325C9.68687 1.33337 10.026 1.47385 10.276 1.7239C10.5261 1.97395 10.6666 2.31309 10.6666 2.66671V4.00004M12.6666 4.00004V13.3334C12.6666 13.687 12.5261 14.0261 12.276 14.2762C12.026 14.5262 11.6868 14.6667 11.3333 14.6667H4.66659C4.31296 14.6667 3.97382 14.5262 3.72378 14.2762C3.47373 14.0261 3.33325 13.687 3.33325 13.3334V4.00004H12.6666Z'}\r\n stroke={'currentColor'}\r\n strokeWidth={'2'}\r\n strokeLinecap={'round'}\r\n strokeLinejoin={'round'}\r\n />\r\n </svg>\r\n)\r\n","import { FC } from 'react'\r\n\r\nexport const UploadIcon: FC = () => (\r\n <svg\r\n xmlns={'http://www.w3.org/2000/svg'}\r\n width={'24'}\r\n height={'24'}\r\n viewBox={'0 0 24 24'}\r\n fill={'none'}\r\n stroke={'currentColor'}\r\n stroke-width={'2'}\r\n stroke-linecap={'round'}\r\n stroke-linejoin={'round'}\r\n className={'lucide lucide-upload-icon lucide-upload'}\r\n >\r\n <path d={'M12 3v12'}/>\r\n <path d={'m17 8-5-5-5 5'}/>\r\n <path d={'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'}/>\r\n </svg>\r\n)\r\n","import { forwardRef, ChangeEvent, useId, useState, memo } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { InputProps } from '@components/forms/input/Input.props.ts'\r\nimport { INPUT_STYLES } from '@components/forms/input/Input.styles.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { EyeIcon, EyeOffIcon } from '@resources/Icons'\r\n\r\n/**\r\n * Input component\r\n *\r\n * A text input field with optional label, icons, and error state.\r\n *\r\n * **Accessibility:**\r\n * - `aria-label` defaults to the `label` prop for screen readers\r\n * - When `error` is provided, `aria-invalid=\"true\"` and `aria-errormessage`\r\n * are automatically set to link the input to its error message\r\n * - `mandatory` adds `aria-required=\"true\"` to the input element\r\n *\r\n * @example\r\n * ```tsx\r\n * <Input\r\n * value={email}\r\n * onChange={setEmail}\r\n * label=\"Email address\"\r\n * mandatory\r\n * error={emailError}\r\n * type=\"email\"\r\n * />\r\n * ```\r\n */\r\nconst Input = forwardRef<HTMLInputElement, InputProps>(({\r\n value,\r\n onChange,\r\n onFocus,\r\n onBlur,\r\n onClick,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n type = 'text',\r\n ariaLabel,\r\n startIcon,\r\n endIcon,\r\n width,\r\n error,\r\n id,\r\n}, ref) => {\r\n const generatedId = useId()\r\n const inputId = id ?? generatedId\r\n const errorId = error ? `${inputId}-error` : undefined\r\n const [showPassword, setShowPassword] = useState(false)\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n onChange(event.target.value)\r\n }\r\n\r\n const inputType = type === 'password' ? (showPassword ? 'text' : 'password') : type\r\n const hasPasswordToggle = type === 'password'\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n id={`${inputId}-label`}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n ariaLabel={'required'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n className={`${INPUT_STYLES.container({ width })} ${disabled ? 'disabled' : ''}`}\r\n >\r\n <input\r\n id={inputId}\r\n ref={ref}\r\n type={inputType}\r\n value={value}\r\n onChange={handleChange}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onClick={onClick}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n className={INPUT_STYLES.root({ disabled, hasStartIcon: !!startIcon, hasEndIcon: !!endIcon, hasPasswordToggle, hasError: !!error })}\r\n aria-label={ariaLabel || label}\r\n aria-required={mandatory || undefined}\r\n aria-invalid={error ? true : undefined}\r\n aria-errormessage={errorId}\r\n />\r\n {startIcon && (\r\n <div className={INPUT_STYLES.startIcon}>\r\n <Icon color={'textTertiary'}>\r\n {startIcon}\r\n </Icon>\r\n </div>\r\n )}\r\n {endIcon && (\r\n <div className={hasPasswordToggle ? INPUT_STYLES.endIconShifted : INPUT_STYLES.endIcon}>\r\n <Icon color={'textTertiary'}>\r\n {endIcon}\r\n </Icon>\r\n </div>\r\n )}\r\n {hasPasswordToggle && (\r\n <div className={INPUT_STYLES.passwordToggle}>\r\n <IconButton\r\n icon={showPassword ? <EyeOffIcon /> : <EyeIcon />}\r\n onClick={() => setShowPassword(!showPassword)}\r\n disabled={disabled}\r\n ariaLabel={showPassword ? 'Hide password' : 'Show password'}\r\n variant={'text'}\r\n size={'small'}\r\n textColor={'textSecondary'}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n {error && (\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n id={errorId}\r\n role={'alert'}\r\n >\r\n {error}\r\n </Text>\r\n )}\r\n </Stack>\r\n )\r\n})\r\n\r\nInput.displayName = 'Input'\r\n\r\nexport default memo(Input)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TextAreaStyleParams } from '@components/forms/textarea/TextArea.props.ts'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n/**\r\n * TextArea styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const TEXTAREA_STYLES = createStyles((theme) => ({\r\n container: ({ width }: { width?: CSSProperties['width'] }) => ({\r\n position: 'relative',\r\n display: 'inline-block',\r\n width: width ?? '100%',\r\n '&:hover:not(.disabled) textarea': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n }),\r\n root: ({ disabled = false }: TextAreaStyleParams) => ({\r\n boxSizing: 'border-box',\r\n width: '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.sm,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n lineHeight: theme.lineHeight.normal,\r\n resize: 'none',\r\n overflow: 'hidden',\r\n ':focus': {\r\n borderColor: theme.colors.primary,\r\n },\r\n '::placeholder': {\r\n color: theme.colors.textTertiary,\r\n fontSize: theme.fontSize.sm,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n },\r\n ...(disabled && {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }),\r\n }),\r\n}))\r\n","import { forwardRef, ChangeEvent, memo, useEffect, useId, useRef, useCallback } from 'react'\r\n\r\nimport { TextAreaProps } from '@components/forms/textarea/TextArea.props.ts'\r\nimport { TEXTAREA_STYLES } from '@components/forms/textarea/TextArea.styles.ts'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\n\r\n/**\r\n * TextArea component with auto-expanding height based on content\r\n *\r\n * **Accessibility:**\r\n * - `aria-label` defaults to the `label` prop for screen readers\r\n * - When `error` is provided, `aria-invalid=\"true\"` and `aria-errormessage`\r\n * are automatically set to link the textarea to its error message\r\n * - `mandatory` adds `aria-required=\"true\"` to the textarea element\r\n *\r\n * @example\r\n * ```tsx\r\n * <TextArea\r\n * value={message}\r\n * onChange={setMessage}\r\n * label=\"Message\"\r\n * mandatory\r\n * error={messageError}\r\n * minRows={4}\r\n * />\r\n * ```\r\n */\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(({\r\n value,\r\n onChange,\r\n onFocus,\r\n onBlur,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n ariaLabel,\r\n width,\r\n minRows = 3,\r\n maxRows,\r\n error,\r\n id,\r\n}, ref) => {\r\n const generatedId = useId()\r\n const textareaId = id ?? generatedId\r\n const errorId = error ? `${textareaId}-error` : undefined\r\n const internalRef = useRef<HTMLTextAreaElement>(null)\r\n const textareaRef = (ref as React.RefObject<HTMLTextAreaElement>) || internalRef\r\n\r\n const adjustHeight = useCallback(() => {\r\n const textarea = textareaRef.current\r\n if (textarea) {\r\n textarea.style.height = 'auto'\r\n const lineHeight = parseInt(getComputedStyle(textarea).lineHeight) || 20\r\n const minHeight = lineHeight * minRows\r\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity\r\n const newHeight = Math.min(Math.max(minHeight, textarea.scrollHeight), maxHeight)\r\n textarea.style.height = `${newHeight}px`\r\n textarea.style.overflowY = textarea.scrollHeight > maxHeight ? 'auto' : 'hidden'\r\n }\r\n }, [minRows, maxRows, textareaRef])\r\n\r\n useEffect(() => {\r\n adjustHeight()\r\n }, [value, adjustHeight])\r\n\r\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\r\n onChange(event.target.value)\r\n }\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n id={`${textareaId}-label`}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n ariaLabel={'required'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n className={`${TEXTAREA_STYLES.container({ width })} ${disabled ? 'disabled' : ''}`}\r\n >\r\n <textarea\r\n id={textareaId}\r\n ref={textareaRef}\r\n value={value}\r\n onChange={handleChange}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n className={TEXTAREA_STYLES.root({ disabled, hasError: !!error })}\r\n aria-label={ariaLabel || label}\r\n aria-required={mandatory || undefined}\r\n aria-invalid={error ? true : undefined}\r\n aria-errormessage={errorId}\r\n rows={minRows}\r\n />\r\n </div>\r\n {error && (\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n id={errorId}\r\n role={'alert'}\r\n >\r\n {error}\r\n </Text>\r\n )}\r\n </Stack>\r\n )\r\n})\r\n\r\nTextArea.displayName = 'TextArea'\r\n\r\nexport default memo(TextArea)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SelectStyleParams } from '@components/forms/select/Select.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\n\r\n/**\r\n * Select styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SELECT_STYLES = createStyles((theme) => ({\r\n root: ({\r\n disabled = false,\r\n width,\r\n isOpen = false\r\n }: SelectStyleParams) => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n boxSizing: 'border-box',\r\n width: width ?? '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: `1px solid ${isOpen ? theme.colors.primary : theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.md,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n minHeight: BUTTON_SIZE,\r\n maxHeight: BUTTON_SIZE,\r\n gap: theme.spacing.lg,\r\n lineHeight: theme.lineHeight.none,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n ...(disabled && {\r\n color: theme.colors.disabled,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high\r\n }),\r\n ...(!disabled && !isOpen && {\r\n ':hover': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n }),\r\n }),\r\n trigger: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n flex: 1\r\n },\r\n value: {\r\n flex: 1,\r\n fontSize: theme.fontSize.md,\r\n color: theme.colors.text\r\n },\r\n placeholder: {\r\n flex: 1,\r\n fontSize: theme.fontSize.md,\r\n color: theme.colors.textTertiary\r\n }\r\n}))\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SelectItemStyleParams } from '@components/forms/select/SelectItem/SelectItem.props'\r\nimport { MENU_ITEM_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * SelectItem styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SELECT_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({\r\n isSelected = false,\r\n disabled = false\r\n }: SelectItemStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: isSelected ? theme.colors.primary : theme.colors.surface,\r\n outline: 'none',\r\n border: 'none',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n minHeight: MENU_ITEM_SIZE,\r\n maxHeight: MENU_ITEM_SIZE,\r\n flexShrink: 0,\r\n transition: 'background-color 150ms ease-in-out',\r\n color: disabled ? theme.colors.disabled : (isSelected ? theme.colors.surface : theme.colors.text),\r\n opacity: disabled ? 0.5 : 1,\r\n ':hover': {\r\n backgroundColor: disabled ? theme.colors.surface : (isSelected ? theme.colors.primary : theme.colors.surfaceHover),\r\n },\r\n })\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SelectItemProps } from '@components/forms/select/SelectItem/SelectItem.props'\r\nimport { SELECT_ITEM_STYLES } from '@components/forms/select/SelectItem/SelectItem.styles'\r\nimport { Text } from '@components/foundation/text'\r\n\r\n/**\r\n * SelectItem component for use inside Select dropdown\r\n */\r\nconst SelectItem: FC<SelectItemProps> = ({\r\n option,\r\n isSelected = false,\r\n onSelect\r\n}) => {\r\n const handleClick = () => {\r\n if (!option.disabled && onSelect) {\r\n onSelect(option.value)\r\n }\r\n }\r\n\r\n return (\r\n <button\r\n className={SELECT_ITEM_STYLES.root({ isSelected, disabled: option.disabled })}\r\n onClick={handleClick}\r\n role={'option'}\r\n aria-selected={isSelected}\r\n >\r\n <Text\r\n variant={'label'}\r\n maxLines={1}\r\n color={isSelected ? 'surface' : 'text'}\r\n >\r\n {option.label}\r\n </Text>\r\n </button>\r\n )\r\n}\r\n\r\nSelectItem.displayName = 'SelectItem'\r\n\r\nexport { SelectItem }\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { CSSProperties } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS, MENU_ITEM_SIZE } from '@constants/globalConstants'\r\nimport { AnchorOrigin, AnchorPosition } from '@hooks/useAnchorPosition.types'\r\n\r\ntype MenuStyleParams = {\r\n isFadingIn: boolean\r\n anchorOrigin: AnchorOrigin\r\n position: AnchorPosition\r\n width?: CSSProperties['width']\r\n disableAnimation?: boolean\r\n}\r\n\r\nexport const MENU_STYLES = createStyles((theme) => ({\r\n root: ({ isFadingIn, anchorOrigin, position, width, disableAnimation = false }: MenuStyleParams) => ({\r\n position: 'fixed',\r\n zIndex: theme.zIndex.popover,\r\n marginTop: theme.spacing.xs,\r\n backgroundColor: theme.colors.surface,\r\n borderRadius: theme.radius.md,\r\n border: `1px solid ${theme.colors.border}`,\r\n boxShadow: theme.shadows.md,\r\n minWidth: 150,\r\n maxHeight: MENU_ITEM_SIZE * 8,\r\n overflowY: 'auto',\r\n width,\r\n opacity: disableAnimation ? 1 : (isFadingIn ? 1 : 0),\r\n transform: disableAnimation ? 'scale(1)' : (isFadingIn ? 'scale(1)' : 'scale(0.95)'),\r\n transformOrigin: anchorOrigin === 'right' ? 'top right' : 'top left',\r\n transition: disableAnimation ? 'none' : `opacity ${DEFAULT_TRANSITION_DURATION_MS}ms ease-out, transform ${DEFAULT_TRANSITION_DURATION_MS}ms ease-out`,\r\n top: position?.top ?? 0,\r\n left: position?.left ?? 0,\r\n visibility: position ? 'visible' : 'hidden',\r\n }),\r\n}))\r\n","import { RefObject, useCallback, useLayoutEffect, useState } from 'react'\r\n\r\nimport { AnchorOrigin, AnchorPosition } from '@hooks/useAnchorPosition.types'\r\n\r\ntype UseAnchorPositionParams = {\r\n anchor: HTMLElement | null\r\n menuRef: RefObject<HTMLDivElement | null>\r\n anchorOrigin?: AnchorOrigin\r\n isVisible: boolean\r\n}\r\n\r\nconst VIEWPORT_PADDING = 8\r\n\r\n/**\r\n * Hook pour calculer la position d'un élément par rapport à son ancre\r\n * @param anchor - Élément HTML servant d'ancre\r\n * @param menuRef - Référence vers l'élément à positionner\r\n * @param anchorOrigin - Origine de l'ancrage ('left' ou 'right')\r\n * @param isVisible - Si l'élément est visible (pour recalculer la position)\r\n */\r\nexport const useAnchorPosition = ({\r\n anchor,\r\n menuRef,\r\n anchorOrigin = 'right',\r\n isVisible\r\n}: UseAnchorPositionParams): AnchorPosition => {\r\n const [position, setPosition] = useState<AnchorPosition>(null)\r\n\r\n const calculatePosition = useCallback(() => {\r\n if (!anchor || !isVisible) {\r\n setPosition(null)\r\n return\r\n }\r\n\r\n const anchorRect = anchor.getBoundingClientRect()\r\n const menuElement = menuRef.current\r\n const menuWidth = menuElement?.offsetWidth || 150\r\n const menuHeight = menuElement?.offsetHeight || 200\r\n\r\n const viewportWidth = window.innerWidth\r\n const viewportHeight = window.innerHeight\r\n\r\n // Calculer la position horizontale initiale\r\n let left = anchorOrigin === 'right'\r\n ? anchorRect.right - menuWidth\r\n : anchorRect.left\r\n\r\n // Calculer la position verticale initiale (sous l'ancre)\r\n let top = anchorRect.bottom\r\n\r\n // Ajuster si le menu dépasse à droite\r\n if (left + menuWidth > viewportWidth - VIEWPORT_PADDING) {\r\n left = viewportWidth - menuWidth - VIEWPORT_PADDING\r\n }\r\n\r\n // Ajuster si le menu dépasse à gauche\r\n if (left < VIEWPORT_PADDING) {\r\n left = VIEWPORT_PADDING\r\n }\r\n\r\n // Ajuster si le menu dépasse en bas\r\n if (top + menuHeight > viewportHeight - VIEWPORT_PADDING) {\r\n // Essayer de placer le menu au-dessus de l'ancre\r\n const topAbove = anchorRect.top - menuHeight\r\n if (topAbove >= VIEWPORT_PADDING) {\r\n top = topAbove\r\n } else {\r\n // Si pas assez de place au-dessus, placer au maximum en bas\r\n top = viewportHeight - menuHeight - VIEWPORT_PADDING\r\n }\r\n }\r\n\r\n setPosition({ top, left })\r\n }, [anchor, anchorOrigin, isVisible, menuRef])\r\n\r\n useLayoutEffect(() => {\r\n calculatePosition()\r\n }, [calculatePosition])\r\n\r\n useLayoutEffect(() => {\r\n if (!isVisible) {return}\r\n\r\n const handleReposition = () => {\r\n calculatePosition()\r\n }\r\n\r\n window.addEventListener('resize', handleReposition)\r\n window.addEventListener('scroll', handleReposition, true)\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleReposition)\r\n window.removeEventListener('scroll', handleReposition, true)\r\n }\r\n }, [isVisible, calculatePosition])\r\n\r\n return position\r\n}\r\n","import { RefObject, useEffect } from 'react'\r\n\r\n/**\r\n * Gestion d'un click en dehors d'un ou plusieurs éléments\r\n * @param refs Tableau de références à écouter\r\n * @param onClickOutside Callback si clic à l'extérieur\r\n * @param shouldTrigger Activation du comportement\r\n */\r\nexport const useClickOutside = (\r\n refs: RefObject<HTMLElement | null>[],\r\n onClickOutside: () => void,\r\n shouldTrigger: boolean = true\r\n): void => {\r\n useEffect(() => {\r\n if (!shouldTrigger) {\r\n return\r\n }\r\n\r\n const handleClick = (event: MouseEvent): void => {\r\n const isInside = refs.some(ref =>\r\n ref.current?.contains(event.target as Node)\r\n )\r\n\r\n if (!isInside) {\r\n onClickOutside()\r\n }\r\n }\r\n\r\n document.addEventListener('mousedown', handleClick)\r\n\r\n return (): void => {\r\n document.removeEventListener('mousedown', handleClick)\r\n }\r\n }, [refs, onClickOutside, shouldTrigger])\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/globalConstants'\r\nimport { UseTransitionRenderReturnType } from '@hooks/useTransitionRender.types'\r\n\r\n/**\r\n * Hook pour gérer les animations de transition lors des renders\r\n * @param isOpen - État d'ouverture\r\n * @param duration - Durée de la transition en ms\r\n */\r\nexport const useTransitionRender = (\r\n isOpen: boolean,\r\n duration = DEFAULT_TRANSITION_DURATION_MS\r\n): UseTransitionRenderReturnType => {\r\n const [isVisible, setIsVisible] = useState(false)\r\n const [isFadingIn, setIsFadingIn] = useState(false)\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setIsVisible(true)\r\n const timeout = setTimeout(() => {\r\n setIsFadingIn(true)\r\n }, 10)\r\n return (): void => {\r\n clearTimeout(timeout)\r\n }\r\n } else {\r\n setIsFadingIn(false)\r\n const timeout = setTimeout(() => {\r\n setIsVisible(false)\r\n }, duration)\r\n return (): void => {\r\n clearTimeout(timeout)\r\n }\r\n }\r\n }, [isOpen, duration])\r\n\r\n return {\r\n isVisible,\r\n isFadingIn\r\n }\r\n}\r\n","import { FC, useEffect, useMemo, useRef } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { MenuProps } from '@components/overlay/menu/Menu.props'\r\nimport { MENU_STYLES } from '@components/overlay/menu/Menu.styles'\r\nimport { useAnchorPosition } from '@hooks/useAnchorPosition'\r\nimport { useClickOutside } from '@hooks/useClickOutside'\r\nimport { useTransitionRender } from '@hooks/useTransitionRender'\r\n\r\nconst Menu: FC<MenuProps> = ({\r\n anchor,\r\n onClose,\r\n children,\r\n anchorOrigin = 'right',\r\n width,\r\n disableAnimation = false\r\n}) => {\r\n // refs\r\n const menuRef = useRef<HTMLDivElement>(null)\r\n const anchorRef = useRef<HTMLElement | null>(null)\r\n\r\n // variables\r\n const isOpen = Boolean(anchor)\r\n const refs = useMemo(() => [menuRef, anchorRef], [])\r\n\r\n // hooks\r\n const { isVisible, isFadingIn } = useTransitionRender(isOpen)\r\n const position = useAnchorPosition({ anchor, menuRef, anchorOrigin, isVisible })\r\n\r\n // useEffects\r\n useEffect(() => {\r\n if (anchor) {\r\n anchorRef.current = anchor\r\n }\r\n }, [anchor])\r\n\r\n useEffect(() => {\r\n if (!isVisible) {\r\n anchorRef.current = null\r\n }\r\n }, [isVisible])\r\n\r\n useClickOutside(refs, onClose, isVisible)\r\n\r\n if (!isVisible) {\r\n return null\r\n }\r\n\r\n return createPortal(\r\n <div\r\n ref={menuRef}\r\n className={MENU_STYLES.root({ isFadingIn, anchorOrigin, position, width, disableAnimation })}\r\n >\r\n {children}\r\n </div>,\r\n document.body\r\n )\r\n}\r\n\r\nMenu.displayName = 'Menu'\r\n\r\nexport default Menu\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_GROUP_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: theme.spacing.xs,\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { MenuGroupProps } from '@components/overlay/menu/MenuGroup/MenuGroup.props'\r\nimport { MENU_GROUP_STYLES } from '@components/overlay/menu/MenuGroup/MenuGroup.styles'\r\n\r\nconst MenuGroup: FC<MenuGroupProps> = ({\r\n children\r\n}) => {\r\n return (\r\n <div\r\n className={MENU_GROUP_STYLES.root}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nMenuGroup.displayName = 'MenuGroup'\r\n\r\nexport default MenuGroup\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { MenuItemStyleParams } from '@components/overlay/menu/MenuItem/MenuItem.props'\r\nimport { MENU_ITEM_SIZE } from '@constants/globalConstants.ts'\r\n\r\nexport const MENU_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({ active }: MenuItemStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: active ? theme.colors.primary : theme.colors.surface,\r\n outline: 'none',\r\n border: 'none',\r\n cursor: 'pointer',\r\n minHeight: MENU_ITEM_SIZE,\r\n maxHeight: MENU_ITEM_SIZE,\r\n flexShrink: 0,\r\n width: '100%',\r\n transition: 'background-color 150ms ease-in-out',\r\n color: active ? theme.colors.surface : theme.colors.text,\r\n ':hover': {\r\n backgroundColor: active ? theme.colors.primary : theme.colors.surfaceHover,\r\n },\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { MenuItemProps } from '@components/overlay/menu/MenuItem/MenuItem.props'\r\nimport { MENU_ITEM_STYLES } from '@components/overlay/menu/MenuItem/MenuItem.styles'\r\n\r\nconst MenuItem: FC<MenuItemProps> = ({\r\n label,\r\n icon,\r\n onClick,\r\n textColor,\r\n iconColor,\r\n active = false\r\n}) => {\r\n return (\r\n <button\r\n className={MENU_ITEM_STYLES.root({ active })}\r\n onClick={onClick}\r\n >\r\n {icon && (\r\n <Icon\r\n color={active ? 'surface' : (iconColor ?? 'text')}\r\n size={'sm'}\r\n >\r\n {icon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={active ? 'surface' : (textColor ?? 'text')}\r\n maxLines={1}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n </button>\r\n )\r\n}\r\n\r\nMenuItem.displayName = 'MenuItem'\r\n\r\nexport default MenuItem\r\n","import { FC, useId, useRef, useState } from 'react'\r\n\r\nimport { SelectProps } from '@components/forms/select/Select.props'\r\nimport { SELECT_STYLES } from '@components/forms/select/Select.styles'\r\nimport { SelectItem } from '@components/forms/select/SelectItem'\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Menu } from '@components/overlay/menu'\r\nimport { MenuGroup } from '@components/overlay/menu/MenuGroup'\r\nimport { ChevronDownIcon } from '@resources/icons/ChevronDownIcon'\r\n\r\n/**\r\n * Select component that uses Menu for dropdown\r\n *\r\n * **Accessibility:**\r\n * - Uses `role=\"combobox\"` with `aria-expanded` and `aria-haspopup=\"listbox\"`\r\n * - Keyboard support: Enter/Space opens, Escape closes\r\n * - When `error` is provided, `aria-invalid=\"true\"` and `aria-errormessage` are set\r\n * - `mandatory` adds `aria-required=\"true\"`\r\n *\r\n * @example\r\n * ```tsx\r\n * <Select\r\n * options={[{ value: 'fr', label: 'France' }]}\r\n * value={country}\r\n * onChange={setCountry}\r\n * label=\"Country\"\r\n * mandatory\r\n * error={countryError}\r\n * />\r\n * ```\r\n */\r\nconst Select: FC<SelectProps> = ({\r\n options,\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder = 'Select an option',\r\n disabled = false,\r\n width,\r\n error,\r\n id,\r\n ariaLabel,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const triggerRef = useRef<HTMLDivElement>(null)\r\n const generatedId = useId()\r\n const selectId = id ?? generatedId\r\n const errorId = error ? `${selectId}-error` : undefined\r\n\r\n const selectedOption = options.find(option => option.value === value)\r\n const menuWidth = triggerRef.current?.offsetWidth ?? width\r\n\r\n const handleTriggerClick = () => {\r\n if (!disabled) {\r\n setIsOpen(!isOpen)\r\n }\r\n }\r\n\r\n const handleTriggerKeyDown = (event: React.KeyboardEvent) => {\r\n if (disabled) { return }\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault()\r\n setIsOpen(prev => !prev)\r\n }\r\n if (event.key === 'Escape' && isOpen) {\r\n setIsOpen(false)\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setIsOpen(false)\r\n }\r\n\r\n const handleSelect = (selectedValue: string | number) => {\r\n onChange(selectedValue)\r\n setIsOpen(false)\r\n }\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n id={`${selectId}-label`}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n ariaLabel={'required'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n ref={triggerRef}\r\n className={SELECT_STYLES.root({ disabled, width, isOpen, hasError: !!error })}\r\n onClick={handleTriggerClick}\r\n onKeyDown={handleTriggerKeyDown}\r\n role={'combobox'}\r\n tabIndex={disabled ? -1 : 0}\r\n aria-expanded={isOpen}\r\n aria-haspopup={'listbox'}\r\n aria-label={ariaLabel || label}\r\n aria-required={mandatory || undefined}\r\n aria-invalid={error ? true : undefined}\r\n aria-errormessage={errorId}\r\n >\r\n <div className={SELECT_STYLES.trigger}>\r\n <Text\r\n variant={'p'}\r\n maxLines={1}\r\n color={selectedOption ? 'text' : 'textSecondary'}\r\n >\r\n {selectedOption ? selectedOption.label : placeholder}\r\n </Text>\r\n </div>\r\n <Icon>\r\n <ChevronDownIcon />\r\n </Icon>\r\n </div>\r\n {error && (\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n id={errorId}\r\n role={'alert'}\r\n >\r\n {error}\r\n </Text>\r\n )}\r\n <Menu\r\n anchor={isOpen ? triggerRef.current : null}\r\n onClose={handleClose}\r\n width={menuWidth}\r\n >\r\n <MenuGroup>\r\n {options.map(option => (\r\n <SelectItem\r\n key={option.value}\r\n option={option}\r\n isSelected={option.value === value}\r\n onSelect={handleSelect}\r\n />\r\n ))}\r\n </MenuGroup>\r\n </Menu>\r\n </Stack>\r\n )\r\n}\r\n\r\nSelect.displayName = 'Select'\r\n\r\nexport { Select }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_GRID_STYLES = createStyles((theme) => ({\r\n daysGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(7, 1fr)',\r\n gap: '2px',\r\n },\r\n monthsGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n gap: theme.spacing.xs,\r\n padding: theme.spacing.xs,\r\n },\r\n yearsGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(4, 1fr)',\r\n gap: theme.spacing.xs,\r\n padding: theme.spacing.xs,\r\n },\r\n dayHeader: {\r\n textAlign: 'center',\r\n fontSize: theme.fontSize.xs,\r\n fontWeight: theme.fontWeight.medium,\r\n color: theme.colors.textSecondary,\r\n padding: '2px',\r\n },\r\n day: ({ isCurrentMonth, isSelected, isToday, isDisabled }: {\r\n isCurrentMonth?: boolean\r\n isSelected?: boolean\r\n isToday?: boolean\r\n isDisabled?: boolean\r\n }) => ({\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n border: 'none',\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: 'transparent',\r\n color: isCurrentMonth ? theme.colors.text : theme.colors.textTertiary,\r\n fontSize: theme.fontSize.xs,\r\n cursor: isDisabled ? 'not-allowed' : 'pointer',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n transition: `background-color ${theme.transition.fast}`,\r\n ...(isSelected && {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n }),\r\n ...(isToday && !isSelected && {\r\n backgroundColor: theme.colors.primarySubtle,\r\n color: theme.colors.primary,\r\n }),\r\n ...(isDisabled && {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n }),\r\n ':hover': !isDisabled && !isSelected ? {\r\n backgroundColor: theme.colors.primaryHover,\r\n color: theme.colors.onPrimary,\r\n } : {},\r\n }),\r\n monthYearItem: (isSelected: boolean) => ({\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n border: 'none',\r\n borderRadius: theme.radius.sm,\r\n backgroundColor: isSelected ? theme.colors.primary : 'transparent',\r\n color: isSelected ? theme.colors.onPrimary : theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}`,\r\n ':hover': !isSelected ? {\r\n backgroundColor: theme.colors.primarySubtle,\r\n } : {},\r\n }),\r\n}))\r\n","import { FC, memo } from 'react'\r\n\r\nimport { CalendarGridProps } from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.props.ts'\r\nimport { CALENDAR_GRID_STYLES } from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.styles.ts'\r\n\r\nconst MONTHS = [\r\n 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\r\n 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'\r\n]\r\n\r\nconst DAY_NAMES = ['D', 'L', 'M', 'M', 'J', 'V', 'S']\r\n\r\nconst CalendarGrid: FC<CalendarGridProps> = ({\r\n view,\r\n days = [],\r\n currentMonth,\r\n yearRangeStart = 2020,\r\n onDaySelect,\r\n onMonthSelect,\r\n onYearSelect,\r\n}) => {\r\n if (view === 'days') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.daysGrid}>\r\n {DAY_NAMES.map((day, index) => (\r\n <div\r\n key={`${day}-${index}`}\r\n className={CALENDAR_GRID_STYLES.dayHeader}\r\n >\r\n {day}\r\n </div>\r\n ))}\r\n {days.map(day => (\r\n <button\r\n key={day.date.getTime()}\r\n className={CALENDAR_GRID_STYLES.day(day)}\r\n onClick={() => !day.isDisabled && onDaySelect?.(day.date)}\r\n disabled={day.isDisabled}\r\n type={'button'}\r\n >\r\n {day.date.getDate()}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n if (view === 'months') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.monthsGrid}>\r\n {MONTHS.map((month, index) => (\r\n <button\r\n key={month}\r\n type={'button'}\r\n className={CALENDAR_GRID_STYLES.monthYearItem(currentMonth?.getMonth() === index)}\r\n onClick={() => onMonthSelect?.(index)}\r\n >\r\n {month.substring(0, 3)}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n if (view === 'years') {\r\n return (\r\n <div className={CALENDAR_GRID_STYLES.yearsGrid}>\r\n {Array.from({ length: 12 }, (_, i) => yearRangeStart + i).map(year => (\r\n <button\r\n key={year}\r\n type={'button'}\r\n className={CALENDAR_GRID_STYLES.monthYearItem(currentMonth?.getFullYear() === year)}\r\n onClick={() => onYearSelect?.(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n }\r\n\r\n return null\r\n}\r\n\r\nCalendarGrid.displayName = 'CalendarGrid'\r\n\r\nexport default memo(CalendarGrid)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_HEADER_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: theme.spacing.sm,\r\n },\r\n labelButton: {\r\n background: 'none',\r\n border: 'none',\r\n cursor: 'pointer',\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n borderRadius: theme.radius.sm,\r\n color: theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n transition: `background-color ${theme.transition.fast}`,\r\n ':hover': {\r\n backgroundColor: theme.colors.primarySubtle,\r\n },\r\n },\r\n labelText: {\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n color: theme.colors.text,\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n },\r\n leftArrow: {\r\n transform: 'rotate(180deg)',\r\n },\r\n}))\r\n","import { FC, memo } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { CalendarHeaderProps } from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.props.ts'\r\nimport { CALENDAR_HEADER_STYLES } from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.styles.ts'\r\nimport { Text } from '@components/foundation/text'\r\nimport { ChevronRightIcon } from '@resources/icons/ChevronRightIcon.tsx'\r\n\r\nconst CalendarHeader: FC<CalendarHeaderProps> = ({\r\n label,\r\n onPrev,\r\n onNext,\r\n onLabelClick,\r\n isLabelClickable = true,\r\n}) => {\r\n return (\r\n <div className={CALENDAR_HEADER_STYLES.root}>\r\n <div className={CALENDAR_HEADER_STYLES.leftArrow}>\r\n <IconButton\r\n icon={<ChevronRightIcon />}\r\n onClick={onPrev}\r\n variant={'text'}\r\n size={'small'}\r\n />\r\n </div>\r\n {isLabelClickable ? (\r\n <button\r\n type={'button'}\r\n className={CALENDAR_HEADER_STYLES.labelButton}\r\n onClick={onLabelClick}\r\n >\r\n {label}\r\n </button>\r\n ) : (\r\n <Text variant={'p'}>\r\n {label}\r\n </Text>\r\n )}\r\n <IconButton\r\n icon={<ChevronRightIcon />}\r\n onClick={onNext}\r\n variant={'text'}\r\n size={'small'}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nCalendarHeader.displayName = 'CalendarHeader'\r\n\r\nexport default memo(CalendarHeader)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const CALENDAR_STYLES = createStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing.sm,\r\n },\r\n}))\r\n","import { DateFormat } from '@components/forms/date-picker/DatePicker.props'\r\n\r\nexport const formatDate = (date: Date | null, format: DateFormat = 'dd/MM/yyyy'): string => {\r\n if (!date) {return ''}\r\n\r\n const day = String(date.getDate()).padStart(2, '0')\r\n const month = String(date.getMonth() + 1).padStart(2, '0')\r\n const year = date.getFullYear()\r\n\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n return `${day}/${month}/${year}`\r\n case 'MM/dd/yyyy':\r\n return `${month}/${day}/${year}`\r\n case 'yyyy-MM-dd':\r\n return `${year}-${month}-${day}`\r\n default:\r\n return `${day}/${month}/${year}`\r\n }\r\n}\r\n\r\nexport const parseDate = (value: string, format: DateFormat = 'dd/MM/yyyy'): Date | null => {\r\n if (!value) {\r\n return null\r\n }\r\n\r\n const cleanValue = value.replace(/[^\\d]/g, '')\r\n if (cleanValue.length !== 8) {\r\n return null\r\n }\r\n\r\n let day: number, month: number, year: number\r\n\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n day = parseInt(cleanValue.substring(0, 2), 10)\r\n month = parseInt(cleanValue.substring(2, 4), 10) - 1\r\n year = parseInt(cleanValue.substring(4, 8), 10)\r\n break\r\n case 'MM/dd/yyyy':\r\n month = parseInt(cleanValue.substring(0, 2), 10) - 1\r\n day = parseInt(cleanValue.substring(2, 4), 10)\r\n year = parseInt(cleanValue.substring(4, 8), 10)\r\n break\r\n case 'yyyy-MM-dd':\r\n year = parseInt(cleanValue.substring(0, 4), 10)\r\n month = parseInt(cleanValue.substring(4, 6), 10) - 1\r\n day = parseInt(cleanValue.substring(6, 8), 10)\r\n break\r\n default:\r\n return null\r\n }\r\n\r\n // Validate date\r\n if (month < 0 || month > 11 || day < 1 || day > 31 || year < 1900 || year > 2100) {\r\n return null\r\n }\r\n\r\n const date = new Date(year, month, day)\r\n // Check if the date is valid (handles cases like Feb 30)\r\n if (date.getDate() !== day || date.getMonth() !== month || date.getFullYear() !== year) {\r\n return null\r\n }\r\n\r\n return date\r\n}\r\n\r\nexport const getDateSeparator = (format: DateFormat): string => {\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n case 'MM/dd/yyyy':\r\n return '/'\r\n case 'yyyy-MM-dd':\r\n return '-'\r\n default:\r\n return '/'\r\n }\r\n}\r\n\r\nexport const formatInputValue = (value: string, format: DateFormat): string => {\r\n const cleanValue = value.replace(/[^\\d]/g, '')\r\n const separator = getDateSeparator(format)\r\n\r\n if (format === 'yyyy-MM-dd') {\r\n if (cleanValue.length <= 4) {\r\n return cleanValue\r\n }\r\n if (cleanValue.length <= 6) {\r\n return `${cleanValue.slice(0, 4)}${separator}${cleanValue.slice(4)}`\r\n }\r\n return `${cleanValue.slice(0, 4)}${separator}${cleanValue.slice(4, 6)}${separator}${cleanValue.slice(6, 8)}`\r\n } else {\r\n if (cleanValue.length <= 2) {\r\n return cleanValue\r\n }\r\n if (cleanValue.length <= 4) {\r\n return `${cleanValue.slice(0, 2)}${separator}${cleanValue.slice(2)}`\r\n }\r\n return `${cleanValue.slice(0, 2)}${separator}${cleanValue.slice(2, 4)}${separator}${cleanValue.slice(4, 8)}`\r\n }\r\n}\r\n\r\nexport interface CalendarDay {\r\n date: Date;\r\n isCurrentMonth: boolean;\r\n isSelected: boolean;\r\n isToday: boolean;\r\n isDisabled: boolean;\r\n}\r\n\r\nexport const getCalendarDays = (\r\n year: number,\r\n month: number,\r\n selectedDate?: Date | null,\r\n minDate?: Date,\r\n maxDate?: Date\r\n): CalendarDay[] => {\r\n const firstDay = new Date(year, month, 1)\r\n const startDate = new Date(firstDay)\r\n startDate.setDate(startDate.getDate() - firstDay.getDay())\r\n\r\n const days: CalendarDay[] = []\r\n const current = new Date(startDate)\r\n const today = new Date()\r\n today.setHours(0, 0, 0, 0)\r\n\r\n for (let i = 0; i < 42; i++) {\r\n const currentDate = new Date(current)\r\n currentDate.setHours(0, 0, 0, 0)\r\n\r\n const isCurrentMonth = current.getMonth() === month\r\n const isSelected = selectedDate ? current.toDateString() === selectedDate.toDateString() : false\r\n const isToday = current.toDateString() === today.toDateString()\r\n\r\n let isDisabled = false\r\n if (minDate) {\r\n const min = new Date(minDate)\r\n min.setHours(0, 0, 0, 0)\r\n if (currentDate < min) {isDisabled = true}\r\n }\r\n if (maxDate && !isDisabled) {\r\n const max = new Date(maxDate)\r\n max.setHours(0, 0, 0, 0)\r\n if (currentDate > max) {isDisabled = true}\r\n }\r\n\r\n days.push({\r\n date: new Date(current),\r\n isCurrentMonth,\r\n isSelected,\r\n isToday,\r\n isDisabled,\r\n })\r\n current.setDate(current.getDate() + 1)\r\n }\r\n\r\n return days\r\n}\r\n","import { FC, memo, useCallback, useMemo, useState } from 'react'\r\n\r\nimport CalendarGrid from '@components/forms/date-picker/calendar/calendar-grid/CalendarGrid.tsx'\r\nimport CalendarHeader from '@components/forms/date-picker/calendar/calendar-header/CalendarHeader.tsx'\r\nimport { CalendarProps, CalendarView } from '@components/forms/date-picker/calendar/Calendar.props'\r\nimport { CALENDAR_STYLES } from '@components/forms/date-picker/calendar/Calendar.styles'\r\nimport { getCalendarDays } from '@components/forms/date-picker/utils/datePicker.utils'\r\n\r\nconst Calendar: FC<CalendarProps> = ({\r\n value,\r\n onDateSelect,\r\n minDate,\r\n maxDate,\r\n locale = 'fr-FR',\r\n}) => {\r\n const [currentMonth, setCurrentMonth] = useState(() =>\r\n value ? new Date(value.getFullYear(), value.getMonth()) : new Date()\r\n )\r\n const [view, setView] = useState<CalendarView>('days')\r\n const [yearRangeStart, setYearRangeStart] = useState(() => {\r\n const year = value?.getFullYear() ?? new Date().getFullYear()\r\n return Math.floor(year / 12) * 12\r\n })\r\n\r\n const calendarDays = useMemo(() =>\r\n getCalendarDays(\r\n currentMonth.getFullYear(),\r\n currentMonth.getMonth(),\r\n value,\r\n minDate ?? undefined,\r\n maxDate ?? undefined\r\n ),\r\n [currentMonth, value, minDate, maxDate])\r\n\r\n const headerLabel = useMemo(() => {\r\n if (view === 'days') {\r\n return currentMonth.toLocaleDateString(locale, { month: 'long', year: 'numeric' })\r\n }\r\n if (view === 'months') {\r\n return String(currentMonth.getFullYear())\r\n }\r\n return `${yearRangeStart} - ${yearRangeStart + 11}`\r\n }, [view, currentMonth, locale, yearRangeStart])\r\n\r\n const handlePrev = useCallback(() => {\r\n if (view === 'years') {\r\n setYearRangeStart(prev => prev - 12)\r\n } else if (view === 'months') {\r\n setCurrentMonth(prev => new Date(prev.getFullYear() - 1, prev.getMonth()))\r\n } else {\r\n setCurrentMonth(prev => new Date(prev.getFullYear(), prev.getMonth() - 1))\r\n }\r\n }, [view])\r\n\r\n const handleNext = useCallback(() => {\r\n if (view === 'years') {\r\n setYearRangeStart(prev => prev + 12)\r\n } else if (view === 'months') {\r\n setCurrentMonth(prev => new Date(prev.getFullYear() + 1, prev.getMonth()))\r\n } else {\r\n setCurrentMonth(prev => new Date(prev.getFullYear(), prev.getMonth() + 1))\r\n }\r\n }, [view])\r\n\r\n const handleLabelClick = useCallback(() => {\r\n if (view === 'days') {\r\n setView('months')\r\n } else if (view === 'months') {\r\n setView('years')\r\n setYearRangeStart(Math.floor(currentMonth.getFullYear() / 12) * 12)\r\n }\r\n }, [view, currentMonth])\r\n\r\n const handleDaySelect = useCallback((date: Date) => {\r\n onDateSelect(date)\r\n }, [onDateSelect])\r\n\r\n const handleMonthSelect = useCallback((monthIndex: number) => {\r\n setCurrentMonth(new Date(currentMonth.getFullYear(), monthIndex))\r\n setView('days')\r\n }, [currentMonth])\r\n\r\n const handleYearSelect = useCallback((year: number) => {\r\n setCurrentMonth(new Date(year, currentMonth.getMonth()))\r\n setView('months')\r\n }, [currentMonth])\r\n\r\n return (\r\n <div className={CALENDAR_STYLES.root}>\r\n <CalendarHeader\r\n view={view}\r\n label={headerLabel}\r\n onPrev={handlePrev}\r\n onNext={handleNext}\r\n onLabelClick={handleLabelClick}\r\n isLabelClickable={view !== 'years'}\r\n />\r\n <CalendarGrid\r\n view={view}\r\n days={calendarDays}\r\n currentMonth={currentMonth}\r\n yearRangeStart={yearRangeStart}\r\n onDaySelect={handleDaySelect}\r\n onMonthSelect={handleMonthSelect}\r\n onYearSelect={handleYearSelect}\r\n locale={locale}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nCalendar.displayName = 'Calendar'\r\n\r\nexport default memo(Calendar)\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { DatePickerStyleParams } from '@components/forms/date-picker/DatePicker.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\n\r\n/**\r\n * DatePicker styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const DATE_PICKER_STYLES = createStyles((theme) => ({\r\n container: ({ width }: DatePickerStyleParams) => ({\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: width ?? '100%',\r\n }),\r\n input: {\r\n boxSizing: 'border-box',\r\n width: '100%',\r\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\r\n paddingRight: `calc(${theme.spacing.sm} + 1.5rem)`,\r\n border: `1px solid ${theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n fontSize: theme.fontSize.sm,\r\n fontFamily: 'inherit',\r\n backgroundColor: theme.colors.surface,\r\n color: theme.colors.text,\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n minHeight: BUTTON_SIZE,\r\n maxHeight: BUTTON_SIZE,\r\n lineHeight: theme.lineHeight.none,\r\n ':hover:not(:disabled)': {\r\n borderColor: theme.colors.primaryHover,\r\n },\r\n ':focus': {\r\n borderColor: theme.colors.primary,\r\n },\r\n '::placeholder': {\r\n color: theme.colors.textTertiary,\r\n },\r\n ':disabled': {\r\n color: theme.colors.disabledText,\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n },\r\n calendarButton: {\r\n position: 'absolute',\r\n right: theme.spacing.xs,\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n zIndex: 2,\r\n },\r\n}))\r\n","import { ChangeEvent, FC, useState, useRef, useCallback, memo, useEffect } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Calendar } from '@components/forms/date-picker/calendar'\r\nimport { DatePickerProps } from '@components/forms/date-picker/DatePicker.props'\r\nimport { DATE_PICKER_STYLES } from '@components/forms/date-picker/DatePicker.styles'\r\nimport { formatDate, formatInputValue, parseDate } from '@components/forms/date-picker/utils/datePicker.utils'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Menu } from '@components/overlay/menu'\r\nimport { CalendarIcon } from '@resources/icons/CalendarIcon'\r\n\r\n/**\r\n * DatePicker component with custom calendar\r\n */\r\nconst DatePicker: FC<DatePickerProps> = ({\r\n value,\r\n onChange,\r\n label,\r\n mandatory = false,\r\n placeholder,\r\n disabled = false,\r\n width,\r\n minDate,\r\n maxDate,\r\n dateFormat = 'dd/MM/yyyy',\r\n locale = 'fr-FR',\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const [inputValue, setInputValue] = useState(() => formatDate(value ?? null, dateFormat))\r\n const [isUserTyping, setIsUserTyping] = useState(false)\r\n const inputRef = useRef<HTMLInputElement>(null)\r\n const containerRef = useRef<HTMLDivElement>(null)\r\n\r\n // Sync inputValue when value prop changes (but not while user is typing)\r\n useEffect(() => {\r\n if (!isUserTyping) {\r\n setInputValue(formatDate(value ?? null, dateFormat))\r\n }\r\n }, [value, dateFormat, isUserTyping])\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false)\r\n }, [])\r\n\r\n const handleDateSelect = useCallback((date: Date) => {\r\n onChange(date)\r\n setInputValue(formatDate(date, dateFormat))\r\n setIsOpen(false)\r\n }, [onChange, dateFormat])\r\n\r\n const handleInputChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n const rawValue = e.target.value\r\n const formatted = formatInputValue(rawValue, dateFormat)\r\n setInputValue(formatted)\r\n setIsUserTyping(true)\r\n\r\n // Try to parse the date\r\n const parsedDate = parseDate(formatted, dateFormat)\r\n if (parsedDate) {\r\n // Check if within min/max bounds\r\n let isValid = true\r\n if (minDate && parsedDate < minDate) {\r\n isValid = false\r\n }\r\n if (maxDate && parsedDate > maxDate) {\r\n isValid = false\r\n }\r\n\r\n if (isValid) {\r\n onChange(parsedDate)\r\n }\r\n } else if (rawValue === '') {\r\n onChange(null)\r\n }\r\n }, [dateFormat, minDate, maxDate, onChange])\r\n\r\n const handleInputBlur = useCallback(() => {\r\n setIsUserTyping(false)\r\n\r\n // If input is empty, that's valid (null date)\r\n if (inputValue === '') {\r\n return\r\n }\r\n\r\n // Reset to the current value if input is invalid\r\n const parsedDate = parseDate(inputValue, dateFormat)\r\n if (!parsedDate) {\r\n setInputValue(formatDate(value ?? null, dateFormat))\r\n }\r\n }, [inputValue, dateFormat, value])\r\n\r\n const handleCalendarButtonClick = useCallback((e: React.MouseEvent) => {\r\n e.stopPropagation()\r\n if (!disabled) {\r\n setIsOpen(prev => !prev)\r\n }\r\n }, [disabled])\r\n\r\n return (\r\n <Stack\r\n direction={'column'}\r\n gap={'xs'}\r\n align={'stretch'}\r\n width={width ?? '100%'}\r\n >\r\n {label && (\r\n <Stack\r\n direction={'row'}\r\n gap={'xs'}\r\n align={'center'}\r\n >\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n {mandatory && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n *\r\n </Text>\r\n )}\r\n </Stack>\r\n )}\r\n <div\r\n ref={containerRef}\r\n className={DATE_PICKER_STYLES.container({ width })}\r\n >\r\n <input\r\n ref={inputRef}\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleInputBlur}\r\n placeholder={placeholder ?? dateFormat.toLowerCase()}\r\n className={DATE_PICKER_STYLES.input}\r\n disabled={disabled}\r\n />\r\n <div className={DATE_PICKER_STYLES.calendarButton}>\r\n <IconButton\r\n icon={<CalendarIcon />}\r\n onClick={handleCalendarButtonClick}\r\n disabled={disabled}\r\n variant={'text'}\r\n size={'small'}\r\n textColor={'textSecondary'}\r\n />\r\n </div>\r\n </div>\r\n <Menu\r\n anchor={isOpen ? containerRef.current : null}\r\n onClose={handleClose}\r\n width={280}\r\n anchorOrigin={'left'}\r\n >\r\n <Calendar\r\n value={value}\r\n onDateSelect={handleDateSelect}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n />\r\n </Menu>\r\n </Stack>\r\n )\r\n}\r\n\r\nDatePicker.displayName = 'DatePicker'\r\n\r\nexport default memo(DatePicker)\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { CSSProperties } from 'react'\r\n\r\ntype StyleParams = {\r\n width?: CSSProperties['width']\r\n dropzoneHeight?: CSSProperties['height']\r\n previewMaxHeight?: CSSProperties['maxHeight']\r\n previewMaxWidth?: CSSProperties['maxWidth']\r\n previewObjectFit?: CSSProperties['objectFit']\r\n isDragOver?: boolean\r\n}\r\n\r\nexport const FILE_PICKER_STYLES = createStyles((theme) => ({\r\n root: (params?: StyleParams) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: theme.spacing.xs,\r\n width: params?.width ?? '100%',\r\n }),\r\n dropzone: (params?: StyleParams) => ({\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.md,\r\n border: `2px dashed ${params?.isDragOver ? theme.colors.primary : theme.colors.border}`,\r\n borderRadius: theme.radius.md,\r\n backgroundColor: params?.isDragOver ? theme.colors.surfaceHover : theme.colors.surface,\r\n cursor: 'pointer',\r\n transition: `all ${theme.transition.fast}`,\r\n minHeight: params?.dropzoneHeight ?? undefined,\r\n '&:hover': {\r\n borderColor: theme.colors.primary,\r\n backgroundColor: theme.colors.surfaceHover,\r\n },\r\n '& > *': {\r\n pointerEvents: 'none',\r\n },\r\n }),\r\n dropzoneDisabled: {\r\n opacity: 0.5,\r\n cursor: 'not-allowed',\r\n '&:hover': {\r\n borderColor: theme.colors.border,\r\n backgroundColor: theme.colors.surface,\r\n },\r\n },\r\n hiddenInput: {\r\n display: 'none',\r\n },\r\n previewContainer: {\r\n position: 'relative',\r\n width: '100%',\r\n borderRadius: theme.radius.md,\r\n overflow: 'hidden',\r\n },\r\n preview: (params?: StyleParams) => ({\r\n width: '100%',\r\n maxHeight: params?.previewMaxHeight ?? '200px',\r\n maxWidth: params?.previewMaxWidth ?? '100%',\r\n objectFit: params?.previewObjectFit ?? 'cover',\r\n borderRadius: theme.radius.md,\r\n }),\r\n clearButton: {\r\n position: 'absolute',\r\n top: theme.spacing.xs,\r\n right: theme.spacing.xs,\r\n '& button': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.8)',\r\n },\r\n },\r\n },\r\n}))\r\n","import { ChangeEvent, FC, KeyboardEvent, MouseEvent, useRef, useState, type DragEvent } from 'react'\r\n\r\nimport IconButton from '@components/actions/icon-button/IconButton.tsx'\r\nimport { FilePickerProps } from '@components/forms/file-picker/FilePicker.props.ts'\r\nimport { FILE_PICKER_STYLES } from '@components/forms/file-picker/FilePicker.styles.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport Stack from '@components/layout/stack/Stack.tsx'\r\n\r\n/**\r\n * Generic file picker component with drag-and-drop style interface.\r\n * Supports custom preview, icons, and styling for use in external libraries.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Basic usage with image\r\n * <FilePicker\r\n * label=\"Upload Image\"\r\n * accept=\"image/*\"\r\n * preview={imagePreview}\r\n * placeholder=\"Click to upload\"\r\n * hint=\"JPEG, PNG or WebP\"\r\n * icon={PlusIcon}\r\n * clearIcon={TrashIcon}\r\n * onSelect={handleSelect}\r\n * onClear={handleClear}\r\n * />\r\n * ```\r\n */\r\nconst FilePicker: FC<FilePickerProps> = ({\r\n label,\r\n accept,\r\n preview,\r\n previewIsImage = true,\r\n previewAlt = 'Preview',\r\n error,\r\n onSelect,\r\n onClear,\r\n disabled = false,\r\n placeholder = 'Click to upload a file',\r\n hint,\r\n icon: IconComponent,\r\n clearIcon: ClearIconComponent,\r\n clearAriaLabel = 'Remove file',\r\n width,\r\n dropzoneHeight,\r\n previewMaxHeight,\r\n previewMaxWidth,\r\n previewObjectFit,\r\n}) => {\r\n // refs\r\n const inputRef = useRef<HTMLInputElement>(null)\r\n\r\n // state\r\n const [isDragOver, setIsDragOver] = useState(false)\r\n\r\n // handlers\r\n const handleClick = () => {\r\n if (!disabled && inputRef.current) {\r\n inputRef.current.click()\r\n }\r\n }\r\n\r\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n const file = e.target.files?.[0] || null\r\n onSelect(file)\r\n\r\n // Reset input to allow selecting the same file again\r\n if (inputRef.current) {\r\n inputRef.current.value = ''\r\n }\r\n }\r\n\r\n const handleClear = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n onClear()\r\n }\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault()\r\n handleClick()\r\n }\r\n }\r\n\r\n const handleDragEnter = (e: DragEvent<HTMLDivElement>) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (!disabled) {\r\n setIsDragOver(true)\r\n }\r\n }\r\n\r\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n }\r\n\r\n const handleDragLeave = (e: DragEvent<HTMLDivElement>) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n // Only set isDragOver to false if we're actually leaving the dropzone\r\n // (not just entering a child element)\r\n if (e.currentTarget === e.target || !e.currentTarget.contains(e.relatedTarget as Node)) {\r\n setIsDragOver(false)\r\n }\r\n }\r\n\r\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n setIsDragOver(false)\r\n\r\n if (!disabled) {\r\n const file = e.dataTransfer.files?.[0] || null\r\n if (file) {\r\n // Validate file type if accept is specified\r\n if (accept) {\r\n const acceptedTypes = accept.split(',').map(type => type.trim())\r\n const isAccepted = acceptedTypes.some(type => {\r\n if (type.startsWith('.')) {\r\n // Extension check\r\n return file.name.toLowerCase().endsWith(type.toLowerCase())\r\n } else {\r\n // MIME type check\r\n return file.type === type || file.type.match(new RegExp(type.replace('*', '.*')))\r\n }\r\n })\r\n if (isAccepted) {\r\n onSelect(file)\r\n }\r\n } else {\r\n onSelect(file)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Determine if preview is a string (image URL) or ReactNode\r\n const isImagePreview = typeof preview === 'string' && previewIsImage\r\n const hasPreview = preview !== null && preview !== undefined\r\n\r\n // Style parameters\r\n const styleParams = {\r\n width,\r\n dropzoneHeight,\r\n previewMaxHeight,\r\n previewMaxWidth,\r\n previewObjectFit,\r\n isDragOver,\r\n }\r\n\r\n return (\r\n <div className={FILE_PICKER_STYLES.root(styleParams)}>\r\n {label && (\r\n <Text\r\n fontSize={'sm'}\r\n variant={'label'}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n\r\n <input\r\n ref={inputRef}\r\n type={'file'}\r\n accept={accept}\r\n className={FILE_PICKER_STYLES.hiddenInput}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n />\r\n\r\n {hasPreview ? (\r\n <div className={FILE_PICKER_STYLES.previewContainer}>\r\n {isImagePreview ? (\r\n <img\r\n src={preview as string}\r\n alt={previewAlt}\r\n className={FILE_PICKER_STYLES.preview(styleParams)}\r\n />\r\n ) : (\r\n preview\r\n )}\r\n {!disabled && ClearIconComponent && (\r\n <div className={FILE_PICKER_STYLES.clearButton}>\r\n <IconButton\r\n icon={<ClearIconComponent />}\r\n onClick={handleClear}\r\n ariaLabel={clearAriaLabel}\r\n variant={'contained'}\r\n size={'small'}\r\n textColor={'surface'}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div\r\n className={`${FILE_PICKER_STYLES.dropzone(styleParams)} ${disabled ? FILE_PICKER_STYLES.dropzoneDisabled : ''}`}\r\n onClick={handleClick}\r\n role={'button'}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n onDragEnter={handleDragEnter}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n >\r\n <Stack>\r\n {IconComponent && (\r\n <Icon\r\n size={'md'}\r\n color={'text'}\r\n >\r\n <IconComponent />\r\n </Icon>\r\n )}\r\n <Text>\r\n {placeholder}\r\n </Text>\r\n </Stack>\r\n {hint && (\r\n <Text\r\n fontSize={'xs'}\r\n color={'textSecondary'}\r\n >\r\n {hint}\r\n </Text>\r\n )}\r\n </div>\r\n )}\r\n\r\n {error && (\r\n <Text\r\n fontSize={'sm'}\r\n color={'error'}\r\n >\r\n {error}\r\n </Text>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nFilePicker.displayName = 'FilePicker'\r\n\r\nexport default FilePicker\r\n","import { FC } from 'react'\r\n\r\nimport { FilePicker } from '@components/forms/file-picker'\r\nimport { ImagePickerProps } from '@components/forms/image-picker/ImagePicker.props.ts'\r\nimport { UploadIcon, TrashIcon } from '@resources/Icons.ts'\r\n\r\n/**\r\n * Image picker component built on top of the generic FilePicker.\r\n * Pre-configured for image uploads with JPEG, PNG, and WebP support.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ImagePicker\r\n * label=\"Profile Picture\"\r\n * preview={imageUrl}\r\n * onSelect={handleImageSelect}\r\n * onClear={handleImageClear}\r\n * />\r\n * ```\r\n */\r\nconst ImagePicker: FC<ImagePickerProps> = ({\r\n label,\r\n preview,\r\n error,\r\n onSelect,\r\n onClear,\r\n disabled = false,\r\n placeholder = 'Click to upload an image',\r\n hint = 'JPEG, PNG or WebP',\r\n previewAlt = 'Image preview',\r\n clearAriaLabel = 'Remove image',\r\n width,\r\n dropzoneHeight,\r\n previewMaxHeight,\r\n previewMaxWidth,\r\n previewObjectFit,\r\n}) => {\r\n return (\r\n <FilePicker\r\n label={label}\r\n accept={'image/jpeg,image/png,image/webp'}\r\n preview={preview}\r\n previewIsImage={true}\r\n previewAlt={previewAlt}\r\n error={error}\r\n onSelect={onSelect}\r\n onClear={onClear}\r\n disabled={disabled}\r\n placeholder={placeholder}\r\n hint={hint}\r\n icon={UploadIcon}\r\n clearIcon={TrashIcon}\r\n clearAriaLabel={clearAriaLabel}\r\n width={width}\r\n dropzoneHeight={dropzoneHeight}\r\n previewMaxHeight={previewMaxHeight}\r\n previewMaxWidth={previewMaxWidth}\r\n previewObjectFit={previewObjectFit}\r\n />\r\n )\r\n}\r\n\r\nImagePicker.displayName = 'ImagePicker'\r\n\r\nexport default ImagePicker\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { BoxStyleParams } from '@components/layout/box/Box.props'\r\n\r\n/**\r\n * Box styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BOX_STYLES = createStyles((theme) => ({\r\n root: ({\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n padding,\r\n margin,\r\n backgroundColor,\r\n radius,\r\n display,\r\n position,\r\n top,\r\n right,\r\n bottom,\r\n left,\r\n overflow,\r\n overflowX,\r\n overflowY,\r\n borderColor,\r\n borderWidth,\r\n flexDirection,\r\n alignItems,\r\n justifyContent,\r\n gap,\r\n flexWrap,\r\n flexGrow,\r\n flexShrink,\r\n flexBasis,\r\n zIndex,\r\n opacity,\r\n cursor,\r\n shadow,\r\n }: BoxStyleParams) => ({\r\n display,\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n margin: margin ? theme.spacing[margin] : undefined,\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\r\n borderRadius: radius ? theme.radius[radius] : undefined,\r\n position,\r\n top,\r\n right,\r\n bottom,\r\n left,\r\n overflow,\r\n overflowX,\r\n overflowY,\r\n border: borderColor ? `${borderWidth || '1px'} solid ${theme.colors[borderColor]}` : undefined,\r\n flexDirection,\r\n alignItems,\r\n justifyContent,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n flexWrap,\r\n flexGrow,\r\n flexShrink,\r\n flexBasis,\r\n zIndex,\r\n opacity,\r\n cursor,\r\n boxShadow: shadow ? theme.shadows[shadow] : undefined,\r\n boxSizing: 'border-box',\r\n transition: `background-color ${theme.transition.normal}, border-color ${theme.transition.normal}`,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { BoxProps } from '@components/layout/box/Box.props'\r\nimport { BOX_STYLES } from '@components/layout/box/Box.styles'\r\n\r\n/**\r\n * Box component\r\n *\r\n * A versatile container component that acts as a flexible div with extensive styling props.\r\n * Perfect for layout composition, spacing control, and creating custom containers.\r\n *\r\n * **Common use cases:**\r\n * - Layout containers with specific dimensions\r\n * - Spacing and positioning elements\r\n * - Creating flexible layouts with flexbox\r\n * - Wrapping content with background colors or borders\r\n *\r\n * @example\r\n * ```tsx\r\n * <Box width=\"300px\" height=\"200px\" padding=\"md\" backgroundColor=\"surface\">\r\n * Content here\r\n * </Box>\r\n * ```\r\n */\r\nconst Box: FC<BoxProps> = ({\r\n children,\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n padding,\r\n margin,\r\n backgroundColor,\r\n radius,\r\n display = 'block',\r\n position,\r\n top,\r\n right,\r\n bottom,\r\n left,\r\n overflow,\r\n overflowX,\r\n overflowY,\r\n borderColor,\r\n borderWidth,\r\n flexDirection,\r\n alignItems,\r\n justifyContent,\r\n gap,\r\n flexWrap,\r\n flexGrow,\r\n flexShrink,\r\n flexBasis,\r\n zIndex,\r\n opacity,\r\n cursor,\r\n shadow,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n id,\r\n onClick,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onDragOver,\r\n onDragLeave,\r\n onDrop,\r\n onDragStart,\r\n onDragEnd,\r\n onDragEnter,\r\n draggable,\r\n}) => {\r\n return (\r\n <div\r\n id={id}\r\n className={BOX_STYLES.root({\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n padding,\r\n margin,\r\n backgroundColor,\r\n radius,\r\n display,\r\n position,\r\n top,\r\n right,\r\n bottom,\r\n left,\r\n overflow,\r\n overflowX,\r\n overflowY,\r\n borderColor,\r\n borderWidth,\r\n flexDirection,\r\n alignItems,\r\n justifyContent,\r\n gap,\r\n flexWrap,\r\n flexGrow,\r\n flexShrink,\r\n flexBasis,\r\n zIndex,\r\n opacity,\r\n cursor,\r\n shadow,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n onClick={onClick}\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n onDragOver={onDragOver}\r\n onDragLeave={onDragLeave}\r\n onDrop={onDrop}\r\n onDragStart={onDragStart}\r\n onDragEnd={onDragEnd}\r\n onDragEnter={onDragEnter}\r\n draggable={draggable}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nBox.displayName = 'Box'\r\n\r\nexport default Box\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { CardStyleParams } from '@components/layout/card/Card.props.ts'\r\n\r\n/**\r\n * Card styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const CARD_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction,\r\n padding,\r\n width,\r\n height,\r\n maxHeight,\r\n gap,\r\n radius,\r\n shadow,\r\n align,\r\n justify,\r\n backgroundColor,\r\n borderColor\r\n }: CardStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: direction,\r\n padding: padding ? theme.spacing[padding] : undefined,\r\n width,\r\n height,\r\n maxHeight,\r\n overflowY: maxHeight ? 'auto' : undefined,\r\n gap: gap ? theme.spacing[gap] : undefined,\r\n borderRadius: theme.radius[radius],\r\n boxShadow: theme.shadows[shadow],\r\n backgroundColor: theme.colors[backgroundColor],\r\n border: borderColor ? `1px solid ${theme.colors[borderColor]}` : 'none',\r\n alignItems: align,\r\n justifyContent: justify,\r\n boxSizing: 'border-box',\r\n flexShrink: 0,\r\n transition: `background-color ${theme.transition.normal}, border-color ${theme.transition.normal}`,\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { CardProps } from '@components/layout/card/Card.props.ts'\r\nimport { CARD_STYLES } from '@components/layout/card/Card.styles.ts'\r\n\r\n/**\r\n * Card component\r\n *\r\n * A container component with a background, border radius, and optional shadow.\r\n * Uses a Stack layout internally for organizing children.\r\n *\r\n * **Direction:**\r\n * - `column`: Vertical layout (default)\r\n * - `row`: Horizontal layout\r\n */\r\nconst Card: FC<CardProps> = ({\r\n children,\r\n direction = 'column',\r\n padding = 'md',\r\n width,\r\n height,\r\n maxHeight,\r\n gap,\r\n radius = 'md',\r\n shadow = 'none',\r\n align,\r\n justify,\r\n backgroundColor = 'surface',\r\n borderColor = 'border',\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n onDragOver,\r\n onDragLeave,\r\n onDrop,\r\n onDragStart,\r\n onDragEnd,\r\n onDragEnter,\r\n draggable,\r\n}) => {\r\n return (\r\n <div\r\n className={CARD_STYLES.root({\r\n direction,\r\n padding,\r\n width,\r\n height,\r\n maxHeight,\r\n gap,\r\n radius,\r\n shadow,\r\n align,\r\n justify,\r\n backgroundColor,\r\n borderColor\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n onDragOver={onDragOver}\r\n onDragLeave={onDragLeave}\r\n onDrop={onDrop}\r\n onDragStart={onDragStart}\r\n onDragEnd={onDragEnd}\r\n onDragEnter={onDragEnter}\r\n draggable={draggable}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nCard.displayName = 'Card'\r\n\r\nexport default Card\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { GridStyleParams } from '@components/layout/grid/Grid.props.ts'\r\n\r\n/**\r\n * Generates the grid-template-columns value based on columns and minChildWidth props\r\n * - If only columns is defined: creates a fixed number of columns\r\n * - If only minChildWidth is defined: creates responsive auto-fill columns\r\n * - If both are defined: creates responsive columns with a maximum limit (columns acts as max)\r\n *\r\n * Key difference between auto-fill and auto-fit:\r\n * - auto-fill: keeps empty column tracks, items don't stretch to fill container\r\n * - auto-fit: collapses empty tracks, items stretch to fill available space\r\n */\r\nconst getGridTemplateColumns = (\r\n columns?: number,\r\n minChildWidth?: string | number,\r\n columnGap?: string\r\n): string | undefined => {\r\n const minWidthValue = typeof minChildWidth === 'number' ? `${minChildWidth}px` : minChildWidth\r\n\r\n if (minChildWidth && columns) {\r\n // Responsive grid with max columns limit\r\n // Uses auto-fill to preserve empty column tracks (items don't stretch beyond their column)\r\n // The min value ensures items are at least minChildWidth\r\n // The max value is 1fr to distribute space evenly within the max columns constraint\r\n const gapValue = columnGap || '0px'\r\n const minColumnWidth = `calc((100% - (${columns} - 1) * ${gapValue}) / ${columns})`\r\n return `repeat(auto-fill, minmax(max(${minWidthValue}, ${minColumnWidth}), 1fr))`\r\n }\r\n if (minChildWidth) {\r\n // Responsive grid without column limit - items will fill available space\r\n return `repeat(auto-fill, minmax(${minWidthValue}, 1fr))`\r\n }\r\n if (columns) {\r\n // Fixed number of columns - each column takes equal space\r\n return `repeat(${columns}, 1fr)`\r\n }\r\n return undefined\r\n}\r\n\r\n/**\r\n * Generates the grid-template-rows value based on rows prop\r\n */\r\nconst getGridTemplateRows = (rows?: number): string | undefined => {\r\n if (rows) {\r\n return `repeat(${rows}, auto)`\r\n }\r\n return undefined\r\n}\r\n\r\n/**\r\n * Grid styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const GRID_STYLES = createStyles((theme) => ({\r\n root: ({\r\n columns,\r\n rows,\r\n columnGap,\r\n rowGap,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n }: GridStyleParams) => {\r\n const columnGapValue = columnGap ? theme.spacing[columnGap] : undefined\r\n const rowGapValue = rowGap ? theme.spacing[rowGap] : undefined\r\n\r\n return {\r\n display: 'grid',\r\n gridTemplateColumns: getGridTemplateColumns(columns, minChildWidth, columnGapValue),\r\n gridTemplateRows: getGridTemplateRows(rows),\r\n columnGap: columnGapValue,\r\n rowGap: rowGapValue,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding: padding ? theme.spacing[padding] : undefined\r\n } as const\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { GridProps } from '@components/layout/grid/Grid.props.ts'\r\nimport { GRID_STYLES } from '@components/layout/grid/Grid.styles.ts'\r\n\r\n/**\r\n * Grid component\r\n *\r\n * A CSS Grid container for laying out children in a two-dimensional grid.\r\n *\r\n * **Usage:**\r\n * - Use `columns` to define the number of columns or a custom grid-template-columns value\r\n * - Use `rows` to define the number of rows or a custom grid-template-rows value\r\n * - Use `minChildWidth` for responsive auto-fill grids\r\n * - Combine `columns` + `minChildWidth` for responsive grid with max columns limit\r\n */\r\nconst Grid: FC<GridProps> = ({\r\n children,\r\n columns = 3,\r\n rows,\r\n columnGap = 'md',\r\n rowGap = 'md',\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <div\r\n className={GRID_STYLES.root({\r\n columns,\r\n rows,\r\n columnGap,\r\n rowGap,\r\n width,\r\n height,\r\n minHeight,\r\n alignItems,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n padding,\r\n minChildWidth,\r\n })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nGrid.displayName = 'Grid'\r\n\r\nexport default Grid\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { SeparatorStyleParams } from '@components/layout/separator/Separator.props.ts'\r\n\r\n/**\r\n * Separator styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const SEPARATOR_STYLES = createStyles((theme) => ({\r\n root: ({\r\n direction = 'horizontal',\r\n color = 'border',\r\n width,\r\n height\r\n }: SeparatorStyleParams) => ({\r\n backgroundColor: theme.colors[color],\r\n ...(direction === 'horizontal' ? {\r\n width: '100%',\r\n height: '1px',\r\n } : {\r\n width: '1px',\r\n height: '100%',\r\n }),\r\n ...(width !== undefined && { width }),\r\n ...(height !== undefined && { height }),\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { SeparatorProps } from '@components/layout/separator/Separator.props.ts'\r\nimport { SEPARATOR_STYLES } from '@components/layout/separator/Separator.styles.ts'\r\n\r\n/**\r\n * Separator component\r\n *\r\n * A simple separator line for horizontal or vertical division.\r\n */\r\nconst Separator: FC<SeparatorProps> = ({\r\n direction = 'horizontal',\r\n width,\r\n height,\r\n color = 'border',\r\n}) => {\r\n return (\r\n <div\r\n className={SEPARATOR_STYLES.root({ direction, color, width, height })}\r\n />\r\n )\r\n}\r\n\r\nSeparator.displayName = 'Separator'\r\n\r\nexport default Separator\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PageSectionStyleParams } from '@components/layout/page-construction/page-section/PageSection.props.ts'\r\n\r\nexport const PAGE_SECTION_STYLES = createStyles((theme) => ({\r\n root: ({\r\n gap,\r\n paddingHorizontal,\r\n paddingVertical,\r\n alignItems = 'center',\r\n maxWidth,\r\n minHeight\r\n }: PageSectionStyleParams) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: gap || theme.spacing.xl,\r\n padding: `${paddingVertical ? theme.spacing[paddingVertical] : theme.spacing['3xl']} ${paddingHorizontal ? theme.spacing[paddingHorizontal] : theme.spacing.xl}`,\r\n alignItems,\r\n maxWidth,\r\n minHeight,\r\n width: '100%',\r\n margin: '0 auto'\r\n })\r\n}))\r\n","import { FC } from 'react'\n\nimport { PageSectionProps } from '@components/layout/page-construction/page-section/PageSection.props.ts'\nimport { PAGE_SECTION_STYLES } from '@components/layout/page-construction/page-section/PageSection.styles.ts'\n\n/**\n * PageSection component\n *\n * A layout component that provides consistent spacing and alignment for page sections.\n * Supports customization of gap, padding, alignment, min height and max width.\n */\nconst PageSection: FC<PageSectionProps> = ({\n children,\n gap,\n paddingHorizontal,\n paddingVertical,\n alignItems,\n maxWidth,\n minHeight,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n return (\n <section\n className={PAGE_SECTION_STYLES.root({ gap, paddingHorizontal, paddingVertical, alignItems, maxWidth, minHeight })}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n {children}\n </section>\n )\n}\n\nPageSection.displayName = 'PageSection'\n\nexport default PageSection\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PageStyleParams } from '@components/layout/page-construction/page/Page.props.ts'\r\n\r\nexport const PAGE_STYLES = createStyles(() => ({\r\n root: ({\r\n backgroundColor,\r\n padding\r\n }: PageStyleParams) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n backgroundColor,\r\n padding,\r\n }),\r\n children: ({\r\n maxWidth = '100%'\r\n }: PageStyleParams) => ({\r\n maxWidth,\r\n height: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n width: '100%',\r\n flex: 1,\r\n })\r\n}))\r\n","import { FC } from 'react'\n\nimport { PageProps } from '@components/layout/page-construction/page/Page.props.ts'\nimport { PAGE_STYLES } from '@components/layout/page-construction/page/Page.styles.ts'\n\n/**\n * Page component\n *\n * A layout component that provides consistent page structure with optional footer.\n * Supports customization of dimensions, background, and content constraints.\n */\nconst Page: FC<PageProps> = ({\n children,\n footer,\n maxWidth,\n backgroundColor,\n padding,\n className,\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n role,\n tabIndex,\n}) => {\n return (\n <div\n className={`${PAGE_STYLES.root({ backgroundColor, padding })} ${className || ''}`}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n role={role}\n tabIndex={tabIndex}\n >\n <div\n className={PAGE_STYLES.children({ maxWidth })}\n >\n {children}\n </div>\n {footer && (\n <div>\n {footer}\n </div>\n )}\n </div>\n )\n}\n\nPage.displayName = 'Page'\n\nexport default Page\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport {\r\n AccordionContentStyleParams,\r\n AccordionHeaderStyleParams,\r\n AccordionIconStyleParams,\r\n AccordionStyleParams\r\n} from '@components/overlay/accordion/Accordion.props.ts'\r\n\r\nexport const ACCORDION_STYLES = createStyles((theme) => {\r\n return {\r\n root: ({ disabled, width }: AccordionStyleParams) => ({\r\n width: width ?? '100%',\r\n overflow: 'hidden',\r\n opacity: disabled ? 0.8 : 1,\r\n borderRadius: theme.radius.md,\r\n }),\r\n header: ({ disabled, backgroundColor, headerPadding }: AccordionHeaderStyleParams) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n padding: headerPadding ?? `${theme.spacing.sm} ${theme.spacing.md}`,\r\n border: 'none',\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] :'transparent',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}`,\r\n gap: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n ':hover': {\r\n backgroundColor: disabled ? 'transparent' : theme.colors.surfaceHover,\r\n },\r\n }),\r\n expandIcon: ({ expanded }: AccordionIconStyleParams) => ({\r\n transition: `transform ${theme.transition.fast}`,\r\n transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)',\r\n }),\r\n content: ({ expanded, contentPadding }: AccordionContentStyleParams) => ({\r\n display: expanded ? 'block' : 'none',\r\n padding: contentPadding ?? `0 ${theme.spacing.sm} ${theme.spacing.md}`,\r\n }),\r\n }\r\n})\r\n","import { FC, useState } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { AccordionProps } from '@components/overlay/accordion/Accordion.props.ts'\r\nimport { ACCORDION_STYLES } from '@components/overlay/accordion/Accordion.styles.ts'\r\nimport { ChevronDownIcon } from '@resources/Icons.ts'\r\n\r\n/**\r\n * Accordion component\r\n *\r\n * A collapsible container that can show/hide content.\r\n * Supports controlled and uncontrolled modes.\r\n */\r\nconst Accordion: FC<AccordionProps> = ({\r\n title,\r\n children,\r\n expanded,\r\n defaultExpanded = false,\r\n onChange,\r\n disabled = false,\r\n icon,\r\n backgroundColor,\r\n width,\r\n headerPadding,\r\n contentPadding,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded)\r\n\r\n // Use controlled value if provided, otherwise use internal state\r\n const isExpanded = expanded !== undefined ? expanded : internalExpanded\r\n\r\n const handleToggle = () => {\r\n if (disabled) {return}\r\n\r\n const newExpanded = !isExpanded\r\n\r\n if (expanded === undefined) {\r\n setInternalExpanded(newExpanded)\r\n }\r\n\r\n onChange?.(newExpanded)\r\n }\r\n\r\n return (\r\n <div\r\n className={ACCORDION_STYLES.root({ disabled, width })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <button\r\n type={'button'}\r\n className={ACCORDION_STYLES.header({ disabled, backgroundColor, headerPadding })}\r\n onClick={handleToggle}\r\n disabled={disabled}\r\n aria-expanded={isExpanded}\r\n >\r\n <Stack\r\n direction={'row'}\r\n align={'center'}\r\n gap={'sm'}\r\n width={'100%'}\r\n >\r\n {icon && (\r\n <Icon color={disabled ? 'disabledText' : 'text'}>\r\n {icon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n color={disabled ? 'disabledText' : 'text'}\r\n >\r\n {title}\r\n </Text>\r\n </Stack>\r\n <div\r\n className={ACCORDION_STYLES.expandIcon({ expanded: isExpanded })}\r\n >\r\n <Icon color={disabled ? 'disabledText' : 'text'}>\r\n <ChevronDownIcon />\r\n </Icon>\r\n </div>\r\n </button>\r\n <div\r\n className={ACCORDION_STYLES.content({ expanded: isExpanded, contentPadding })}\r\n role={'region'}\r\n aria-hidden={!isExpanded}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nAccordion.displayName = 'Accordion'\r\n\r\nexport default Accordion\r\n","import { AlertPosition } from '@interfaces/alert.types'\r\n\r\nconst ALERT_OFFSET = 16\r\n\r\n/**\r\n * Get position styles for alert\r\n * @param position - Alert position\r\n * @param offsetY - Vertical offset for stacking (in pixels)\r\n * @returns Object with CSS position styles (top/bottom + left/right)\r\n */\r\nexport const getAlertPositionStyles = (position: AlertPosition, offsetY: number): Record<string, string> => {\r\n const verticalPosition = `${ALERT_OFFSET + offsetY}px`\r\n\r\n switch (position) {\r\n case 'top-left':\r\n return { top: verticalPosition, left: `${ALERT_OFFSET}px` }\r\n case 'top-right':\r\n return { top: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n case 'bottom-left':\r\n return { bottom: verticalPosition, left: `${ALERT_OFFSET}px` }\r\n case 'bottom-right':\r\n return { bottom: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n default:\r\n return { top: verticalPosition, right: `${ALERT_OFFSET}px` }\r\n }\r\n}\r\n","import { ThemeContract } from '@/interfaces'\r\nimport { AlertVariant } from '@interfaces/alert.types'\r\n\r\nexport interface AlertVariantColors {\r\n background: string\r\n border: string\r\n iconColor: 'info' | 'warning' | 'error' | 'success' | 'text'\r\n}\r\n\r\n/**\r\n * Get colors for alert variants\r\n * @param theme - Aurora theme\r\n * @param variant - Alert variant\r\n * @returns Colors for the variant\r\n */\r\nexport const getAlertVariantColors = (theme: ThemeContract, variant: AlertVariant): AlertVariantColors => {\r\n const variantColors: Record<AlertVariant, AlertVariantColors> = {\r\n default: {\r\n background: theme.colors.surface,\r\n border: theme.colors.border,\r\n iconColor: 'text'\r\n },\r\n info: {\r\n background: theme.colors.infoSubtle,\r\n border: theme.colors.info,\r\n iconColor: 'info'\r\n },\r\n warning: {\r\n background: theme.colors.warningSubtle,\r\n border: theme.colors.warning,\r\n iconColor: 'warning'\r\n },\r\n error: {\r\n background: theme.colors.errorSubtle,\r\n border: theme.colors.error,\r\n iconColor: 'error'\r\n },\r\n success: {\r\n background: theme.colors.successSubtle,\r\n border: theme.colors.success,\r\n iconColor: 'success'\r\n }\r\n }\r\n\r\n return variantColors[variant]\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { AlertStyleParams } from '@components/overlay/alert/Alert.props'\r\nimport { getAlertPositionStyles } from '@components/overlay/alert/utils/getAlertPositionStyles.utils'\r\nimport { getAlertVariantColors } from '@components/overlay/alert/utils/getAlertVariantColors.utils'\r\nimport { ALERT_MAX_WIDTH } from '@constants/globalConstants.ts'\r\nimport { Theme } from '@theme/theme.types.ts'\r\n\r\nexport const ALERT_STYLES = createStyles(\r\n (theme: Theme) => ({\r\n root: ({ variant, position, isVisible, offsetY, maxWidth }: AlertStyleParams) => {\r\n const colors = getAlertVariantColors(theme, variant)\r\n const positionStyles = getAlertPositionStyles(position, offsetY)\r\n\r\n return {\r\n position: 'fixed',\r\n ...positionStyles,\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n padding: theme.spacing.sm,\r\n backgroundColor: colors.background,\r\n border: `1px solid ${colors.border}`,\r\n borderRadius: theme.radius.md,\r\n boxShadow: theme.shadows.lg,\r\n minWidth: ALERT_MAX_WIDTH,\r\n maxWidth,\r\n overflow: 'hidden',\r\n zIndex: theme.zIndex.toast,\r\n opacity: isVisible ? 1 : 0,\r\n transform: isVisible ? 'translateY(0)' :\r\n (position.startsWith('top') ? 'translateY(-8px)' : 'translateY(8px)'),\r\n transition: `all ${theme.transition.normal}, opacity ${theme.transition.fast}`,\r\n pointerEvents: isVisible ? 'auto' : 'none'\r\n } as const\r\n }\r\n })\r\n)\r\n","import { JSX } from 'react'\r\n\r\nimport { AlertVariant } from '@interfaces/alert.types'\r\nimport { AlertCircleIcon, AlertTriangleIcon, CheckCircleIcon, InfoIcon } from '@resources/Icons'\r\n\r\n// Pre-create icon instances to avoid recreation on every call\r\nconst ALERT_ICONS: Record<AlertVariant, JSX.Element> = {\r\n default: <InfoIcon />,\r\n info: <InfoIcon />,\r\n warning: <AlertTriangleIcon />,\r\n error: <AlertCircleIcon />,\r\n success: <CheckCircleIcon />\r\n}\r\n\r\n/**\r\n * Get icon component for alert variant\r\n * @param variant - Alert variant\r\n * @returns JSX Element for the icon\r\n */\r\nexport const getAlertIcon = (variant: AlertVariant): JSX.Element => {\r\n return ALERT_ICONS[variant]\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { FC, useEffect, useRef, useMemo, memo } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { AlertProps } from '@components/overlay/alert/Alert.props'\r\nimport { ALERT_STYLES } from '@components/overlay/alert/Alert.styles'\r\nimport { getAlertIcon } from '@components/overlay/alert/utils/getAlertIcon.utils'\r\nimport { getAlertVariantColors } from '@components/overlay/alert/utils/getAlertVariantColors.utils'\r\nimport { ALERT_MAX_WIDTH } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * Alert component - Display notifications with different variants\r\n *\r\n * **Variants:**\r\n * - `default`: Standard alert with neutral styling\r\n * - `info`: Informational alert with blue styling\r\n * - `warning`: Warning alert with yellow/orange styling\r\n * - `error`: Error alert with red styling\r\n * - `success`: Success alert with green styling\r\n *\r\n * **Features:**\r\n * - Auto-dismisses after 3 seconds\r\n * - Positioned at screen corners\r\n * - Supports stacking with offsetY\r\n * - Icon based on variant\r\n * - Smooth animations\r\n * - Dynamic height calculation for proper stacking\r\n *\r\n * **Accessibility:**\r\n * - Uses `role=\"alert\"` for screen reader announcements\r\n * - Error alerts use `aria-live=\"assertive\"` for urgent announcements\r\n * - Other variants use `aria-live=\"polite\"` to avoid interrupting users\r\n *\r\n * @example\r\n * ```tsx\r\n * <Alert\r\n * text=\"Operation completed successfully\"\r\n * variant=\"success\"\r\n * position=\"top-right\"\r\n * isVisible={true}\r\n * />\r\n * ```\r\n */\r\nconst Alert: FC<AlertProps> = memo(({\r\n text,\r\n variant = 'default',\r\n position = 'top-right',\r\n isVisible = false,\r\n offsetY = 0,\r\n maxWidth = ALERT_MAX_WIDTH,\r\n alertId,\r\n onHeightChange\r\n}) => {\r\n const theme = useTheme()\r\n const alertRef = useRef<HTMLDivElement>(null)\r\n const lastHeightRef = useRef<number>(0)\r\n\r\n const icon = useMemo(() => getAlertIcon(variant), [variant])\r\n const colors = useMemo(() => getAlertVariantColors(theme, variant), [theme, variant])\r\n\r\n // Error alerts are urgent → assertive; others are polite\r\n const ariaLive = variant === 'error' ? 'assertive' : 'polite'\r\n\r\n // Report height changes to parent (only when height actually changes)\r\n useEffect(() => {\r\n if (alertRef.current && onHeightChange && isVisible && alertId) {\r\n const height = alertRef.current.offsetHeight\r\n // Only call onHeightChange if height has actually changed\r\n if (height !== lastHeightRef.current) {\r\n lastHeightRef.current = height\r\n onHeightChange(alertId, height)\r\n }\r\n }\r\n }, [isVisible, text, maxWidth, alertId, onHeightChange])\r\n\r\n return (\r\n <div\r\n ref={alertRef}\r\n className={ALERT_STYLES.root({ variant, position, isVisible, offsetY, maxWidth })}\r\n role={'alert'}\r\n aria-live={ariaLive}\r\n aria-atomic={'true'}\r\n >\r\n <Icon\r\n size={'sm'}\r\n color={colors.iconColor}\r\n >\r\n {icon}\r\n </Icon>\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={colors.iconColor}\r\n maxLines={4}\r\n >\r\n {text}\r\n </Text>\r\n </div>\r\n )\r\n})\r\n\r\nAlert.displayName = 'Alert'\r\n\r\nexport { Alert }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MODAL_STYLES = createStyles((theme) => ({\r\n background: (isFadingIn: boolean) => ({\r\n background: 'rgba(0, 0, 0, 0.6)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n zIndex: theme.zIndex.modal,\r\n transition: 'opacity 150ms ease-in-out',\r\n width: '100vw',\r\n height: '100vh',\r\n opacity: isFadingIn ? 1 : 0,\r\n }),\r\n content: (isFadingIn: boolean) => ({\r\n width: '100%',\r\n maxWidth: 500,\r\n borderRadius: 8,\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: isFadingIn ? 'translate(-50%, -50%) scale(1)' : 'translate(-50%, -50%) scale(0.95)',\r\n transformOrigin: 'center center',\r\n transition: 'transform 150ms ease-in-out',\r\n backgroundColor: theme.colors.background,\r\n padding: theme.spacing.md,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: 'fit-content',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing.md,\r\n border: `1px solid ${theme.colors.border}`,\r\n }),\r\n}))\r\n","import { FC, FormEvent, Fragment, useRef, useEffect, useId, MouseEvent } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { Button } from '@components/actions/button'\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Form } from '@components/forms/form'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { ModalProps } from '@components/overlay/modal/Modal.props'\r\nimport { MODAL_STYLES } from '@components/overlay/modal/Modal.styles'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants'\r\nimport { useTransitionRender } from '@hooks/useTransitionRender'\r\nimport { CloseIcon } from '@resources/Icons.ts'\r\n\r\nconst FOCUSABLE_SELECTORS = [\r\n 'a[href]',\r\n 'button:not([disabled])',\r\n 'input:not([disabled])',\r\n 'select:not([disabled])',\r\n 'textarea:not([disabled])',\r\n '[tabindex]:not([tabindex=\"-1\"])',\r\n].join(', ')\r\n\r\n/**\r\n * Modal component\r\n *\r\n * An overlay dialog for focused interactions.\r\n *\r\n * **Accessibility:**\r\n * - Uses `role=\"dialog\"` and `aria-modal=\"true\"` for screen readers\r\n * - `aria-labelledby` links to the modal title\r\n * - Focus is trapped inside the modal while it is open\r\n * - Focus returns to the triggering element when closed\r\n * - Escape key closes the modal\r\n *\r\n * @example\r\n * ```tsx\r\n * <Modal\r\n * isOpen={isOpen}\r\n * onClose={() => setIsOpen(false)}\r\n * label=\"Confirm deletion\"\r\n * action={{ label: 'Delete', onClick: handleDelete }}\r\n * >\r\n * <Text>Are you sure you want to delete this item?</Text>\r\n * </Modal>\r\n * ```\r\n */\r\nconst Modal: FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n label,\r\n children,\r\n isForm,\r\n action\r\n}) => {\r\n // refs\r\n const modalRef = useRef<HTMLDivElement | null>(null)\r\n const contentRef = useRef<HTMLDivElement | null>(null)\r\n const previousFocusRef = useRef<HTMLElement | null>(null)\r\n\r\n // unique id for aria-labelledby\r\n const titleId = useId()\r\n\r\n // hooks\r\n const { isVisible, isFadingIn } = useTransitionRender(isOpen)\r\n\r\n // Save focus and trap it inside modal\r\n useEffect(() => {\r\n if (isOpen) {\r\n previousFocusRef.current = document.activeElement as HTMLElement\r\n\r\n // Move focus to first focusable element in modal\r\n setTimeout(() => {\r\n const content = contentRef.current\r\n if (content) {\r\n const focusable = content.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS)\r\n focusable[0]?.focus()\r\n }\r\n }, 50)\r\n } else {\r\n // Restore focus to the element that triggered the modal\r\n previousFocusRef.current?.focus()\r\n }\r\n }, [isOpen])\r\n\r\n // Keyboard: Escape to close + focus trap (Tab/Shift+Tab)\r\n useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (!isOpen) { return }\r\n\r\n if (event.key === 'Escape') {\r\n onClose()\r\n return\r\n }\r\n\r\n if (event.key === 'Tab') {\r\n const content = contentRef.current\r\n if (!content) { return }\r\n\r\n const focusable = Array.from(content.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS))\r\n if (focusable.length === 0) { return }\r\n\r\n const first = focusable[0]\r\n const last = focusable[focusable.length - 1]\r\n\r\n if (event.shiftKey) {\r\n if (document.activeElement === first) {\r\n event.preventDefault()\r\n last.focus()\r\n }\r\n } else {\r\n if (document.activeElement === last) {\r\n event.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n }\r\n }\r\n\r\n document.addEventListener('keydown', handleKeyDown)\r\n return () => document.removeEventListener('keydown', handleKeyDown)\r\n }, [isOpen, onClose])\r\n\r\n // actions\r\n const safeInvokeAction = (e?: MouseEvent<HTMLButtonElement>) => {\r\n if (action && typeof action.onClick === 'function') {\r\n action.onClick(e as MouseEvent<HTMLButtonElement>)\r\n }\r\n }\r\n\r\n // body of the modal\r\n const body = (\r\n <>\r\n <Stack\r\n justify={'space-between'}\r\n height={BUTTON_SIZE}\r\n width={'100%'}\r\n >\r\n <Text\r\n variant={'h3'}\r\n id={titleId}\r\n >\r\n {label}\r\n </Text>\r\n {!action && (\r\n <IconButton\r\n icon={<CloseIcon />}\r\n onClick={onClose}\r\n size={'small'}\r\n variant={'text'}\r\n textColor={'text'}\r\n ariaLabel={'Close dialog'}\r\n />\r\n )}\r\n </Stack>\r\n {children}\r\n {action && (\r\n <Stack\r\n justify={'flex-end'}\r\n width={'100%'}\r\n >\r\n <Button\r\n label={'Cancel'}\r\n onClick={onClose}\r\n variant={'outlined'}\r\n />\r\n <Button\r\n {...action}\r\n type={isForm ? 'submit' : 'button'}\r\n onClick={isForm ? undefined : action.onClick}\r\n />\r\n </Stack>\r\n )}\r\n </>\r\n )\r\n\r\n return createPortal(\r\n <Fragment>\r\n {isVisible ? (\r\n <div\r\n className={MODAL_STYLES.background(isFadingIn)}\r\n ref={modalRef}\r\n onClick={(e) => {\r\n // Close when clicking the backdrop\r\n if (e.target === e.currentTarget) { onClose() }\r\n }}\r\n >\r\n <div\r\n ref={contentRef}\r\n className={MODAL_STYLES.content(isFadingIn)}\r\n role={'dialog'}\r\n aria-modal={'true'}\r\n aria-labelledby={titleId}\r\n >\r\n {isForm ? (\r\n <Form onSubmit={(e: FormEvent) => { e.preventDefault(); safeInvokeAction() }}>\r\n {body}\r\n </Form>\r\n ) : (\r\n <Fragment>\r\n {body}\r\n </Fragment>\r\n )}\r\n </div>\r\n </div>\r\n ) : null}\r\n </Fragment>,\r\n document.body\r\n )\r\n}\r\n\r\nModal.displayName = 'Modal'\r\n\r\nexport default Modal\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { DrawerItemStyleParams } from '@components/navigation/drawer-item/DrawerItem.props'\r\nimport { DRAWER_ITEM_HEIGHT } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * DrawerItem styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const DRAWER_ITEM_STYLES = createStyles((theme) => ({\r\n root: ({ selected = false }: DrawerItemStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n boxSizing: 'border-box',\r\n gap: theme.spacing.sm,\r\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\r\n borderRadius: theme.radius.md,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n fontFamily: 'inherit',\r\n width: '100%',\r\n minHeight: DRAWER_ITEM_HEIGHT,\r\n maxHeight: DRAWER_ITEM_HEIGHT,\r\n backgroundColor: selected ? theme.colors.primary : 'transparent',\r\n color: selected ? theme.colors.onPrimary : theme.colors.textSecondary,\r\n border: 'none',\r\n ':hover': {\r\n backgroundColor: selected ? theme.colors.primaryHover : theme.colors.surfaceHover,\r\n color: selected ? theme.colors.onPrimary : theme.colors.text,\r\n },\r\n ':active': {\r\n backgroundColor: selected ? theme.colors.primaryActive : theme.colors.surfaceActive,\r\n },\r\n ':disabled': {\r\n color: theme.colors.disabledText,\r\n backgroundColor: selected ? theme.colors.disabled : 'transparent',\r\n cursor: 'not-allowed',\r\n },\r\n }),\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Status } from '@components/data-display/status'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { DrawerItemProps } from '@components/navigation/drawer-item/DrawerItem.props'\r\nimport { DRAWER_ITEM_STYLES } from '@components/navigation/drawer-item/DrawerItem.styles'\r\n\r\n/**\r\n * DrawerItem component\r\n *\r\n * A navigation item for use in drawers/sidebars.\r\n * Similar to a text button with selected state support.\r\n */\r\nconst DrawerItem: FC<DrawerItemProps> = ({\r\n label,\r\n startIcon,\r\n endIcon,\r\n selected = false,\r\n onClick,\r\n disabled,\r\n chip,\r\n ariaLabel,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n role,\r\n tabIndex,\r\n}) => {\r\n return (\r\n <button\r\n onClick={onClick}\r\n disabled={disabled}\r\n type={'button'}\r\n className={DRAWER_ITEM_STYLES.root({ selected })}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n role={role}\r\n tabIndex={tabIndex}\r\n >\r\n <Stack>\r\n {startIcon && (\r\n <Icon\r\n color={selected ? 'surface' : 'textSecondary'}\r\n >\r\n {startIcon}\r\n </Icon>\r\n )}\r\n <Text\r\n variant={'label'}\r\n maxLines={1}\r\n color={selected ? 'surface' : 'textSecondary'}\r\n >\r\n {label}\r\n </Text>\r\n {endIcon && (\r\n <Icon\r\n color={selected ? 'surface' : 'textSecondary'}\r\n >\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </Stack>\r\n {chip && !selected && (\r\n <Status\r\n {...chip}\r\n size={'2xs'}\r\n color={chip.color ?? 'info'}\r\n disabled={disabled}\r\n />\r\n )}\r\n </button>\r\n )\r\n}\r\n\r\nDrawerItem.displayName = 'DrawerItem'\r\n\r\nexport default DrawerItem\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * Breadcrumb styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_STYLES = createStyles((theme) => ({\r\n list: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n wordBreak: 'break-word',\r\n fontSize: theme.fontSize.sm,\r\n color: theme.colors.disabledText,\r\n listStyle: 'none',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n}))\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbEllipsis styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_ELLIPSIS_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n },\r\n ellipsis: {\r\n display: 'flex',\r\n height: 36,\r\n width: 36,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}))\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { BreadcrumbEllipsisProps } from '@components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.props.ts'\r\nimport { BREADCRUMB_ELLIPSIS_STYLES } from '@components/navigation/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.ts'\r\nimport { MoreHorizontalIcon } from '@resources/icons/MoreHorizontalIcon.tsx'\r\n\r\n/**\r\n * BreadcrumbEllipsis component\r\n * Renders an ellipsis item in the breadcrumb (includes the li wrapper)\r\n */\r\nconst BreadcrumbEllipsis: FC<BreadcrumbEllipsisProps> = () => (\r\n <li className={BREADCRUMB_ELLIPSIS_STYLES.item}>\r\n <span\r\n role={'presentation'}\r\n aria-hidden={'true'}\r\n className={BREADCRUMB_ELLIPSIS_STYLES.ellipsis}\r\n >\r\n <Icon\r\n size={'md'}\r\n color={'disabledText'}\r\n >\r\n <MoreHorizontalIcon />\r\n </Icon>\r\n </span>\r\n </li>\r\n)\r\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\r\n\r\nexport { BreadcrumbEllipsis }\r\n","import { FC } from 'react'\r\n\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { BreadcrumbSeparatorProps } from '@components/navigation/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.props.ts'\r\nimport { ChevronRightIcon } from '@resources/icons/ChevronRightIcon.tsx'\r\n\r\n/**\r\n * BreadcrumbSeparator component\r\n */\r\nconst BreadcrumbSeparator: FC<BreadcrumbSeparatorProps> = () => (\r\n <li\r\n role={'presentation'}\r\n aria-hidden={'true'}\r\n >\r\n <Icon\r\n color={'disabledText'}\r\n size={'sm'}\r\n >\r\n <ChevronRightIcon />\r\n </Icon>\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\r\n\r\nexport { BreadcrumbSeparator }\r\n","import { cloneElement, ComponentType, isValidElement, ReactElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Inserts separators between breadcrumb items automatically\r\n */\r\nexport const insertSeparators = (\r\n items: ReactNode[],\r\n SeparatorComponent: ComponentType\r\n): ReactNode[] => {\r\n const result: ReactNode[] = []\r\n\r\n items.forEach((item, index) => {\r\n // Add the item with a key\r\n const itemWithKey = isValidElement(item)\r\n ? cloneElement(item as ReactElement, { key: `item-${index}` })\r\n : item\r\n result.push(itemWithKey)\r\n\r\n // Add separator after each item except the last one\r\n if (index < items.length - 1) {\r\n result.push(<SeparatorComponent key={`sep-${index}`} />)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { cloneElement, ComponentType, isValidElement, ReactElement, ReactNode } from 'react'\r\n\r\nimport { insertSeparators } from '@components/navigation/breadcrumb/utils/insertSeparators.utils'\r\n\r\n/**\r\n * Builds the breadcrumb children with ellipsis logic\r\n */\r\nexport const buildBreadcrumbChildren = (\r\n items: ReactNode[],\r\n maxItems: number | undefined,\r\n EllipsisComponent: ComponentType,\r\n SeparatorComponent: ComponentType\r\n): ReactNode[] => {\r\n if (!maxItems || items.length <= maxItems) {\r\n return insertSeparators(items, SeparatorComponent)\r\n }\r\n\r\n // First item\r\n const firstItem = items[0]\r\n\r\n // Last (maxItems - 1) items\r\n const lastItemsCount = maxItems - 1\r\n const lastItems = items.slice(-lastItemsCount)\r\n\r\n // Build the result: first + separator + ellipsis + separator + last items with separators between them\r\n const result: ReactNode[] = []\r\n\r\n // Add first item with key\r\n const firstWithKey = isValidElement(firstItem)\r\n ? cloneElement(firstItem as ReactElement, { key: 'first' })\r\n : firstItem\r\n result.push(firstWithKey)\r\n\r\n // Add separator + ellipsis + separator\r\n result.push(<SeparatorComponent key={'sep-ellipsis-before'} />)\r\n result.push(<EllipsisComponent key={'ellipsis'} />)\r\n result.push(<SeparatorComponent key={'sep-ellipsis-after'} />)\r\n\r\n // Add last items with separators between them\r\n lastItems.forEach((item, index) => {\r\n const itemWithKey = isValidElement(item)\r\n ? cloneElement(item as ReactElement, { key: `last-${index}` })\r\n : item\r\n result.push(itemWithKey)\r\n\r\n // Add separator between items (but not after the last one)\r\n if (index < lastItems.length - 1) {\r\n result.push(<SeparatorComponent key={`sep-last-${index}`} />)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { Children, Fragment, isValidElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Flattens children, extracting children from Fragments\r\n */\r\nexport const flattenChildren = (children: ReactNode): ReactNode[] => {\r\n const result: ReactNode[] = []\r\n\r\n Children.forEach(children, (child) => {\r\n if (isValidElement(child) && child.type === Fragment) {\r\n result.push(...flattenChildren(child.props.children))\r\n } else {\r\n result.push(child)\r\n }\r\n })\r\n\r\n return result\r\n}\r\n","import { isValidElement, ReactNode } from 'react'\r\n\r\n/**\r\n * Checks if a React element is a BreadcrumbSeparator\r\n */\r\nexport const isSeparator = (child: ReactNode): boolean => {\r\n return isValidElement(child) && (child.type as { displayName?: string })?.displayName === 'BreadcrumbSeparator'\r\n}\r\n","import { memo, useMemo } from 'react'\r\n\r\nimport { BreadcrumbProps } from '@components/navigation/breadcrumb/Breadcrumb.props.ts'\r\nimport { BREADCRUMB_STYLES } from '@components/navigation/breadcrumb/Breadcrumb.styles.ts'\r\nimport { BreadcrumbEllipsis } from '@components/navigation/breadcrumb/BreadcrumbEllipsis'\r\nimport { BreadcrumbSeparator } from '@components/navigation/breadcrumb/BreadcrumbSeparator'\r\nimport { buildBreadcrumbChildren } from '@components/navigation/breadcrumb/utils/buildBreadcrumbChildren.utils'\r\nimport { flattenChildren } from '@components/navigation/breadcrumb/utils/flattenChildren.utils'\r\nimport { isSeparator } from '@components/navigation/breadcrumb/utils/isSeparator.utils'\r\n\r\n/**\r\n * Breadcrumb component\r\n * Navigation component for hierarchical page structures\r\n *\r\n * @param maxItems - Maximum number of items to display (minimum 2).\r\n * If exceeded, shows: first item + ellipsis + last (maxItems - 1) items\r\n * @param children\r\n * @param props\r\n */\r\nconst Breadcrumb = memo<BreadcrumbProps>(({\r\n maxItems,\r\n children,\r\n ...props\r\n}) => {\r\n const allChildren = flattenChildren(children)\r\n\r\n // Filter out any manually added separators (in case user added them)\r\n const items = allChildren.filter(child => !isSeparator(child))\r\n\r\n const renderedChildren = useMemo(() => buildBreadcrumbChildren(\r\n items,\r\n maxItems,\r\n BreadcrumbEllipsis,\r\n BreadcrumbSeparator\r\n ), [items, maxItems])\r\n\r\n return (\r\n <nav\r\n aria-label={'breadcrumb'}\r\n {...props}\r\n >\r\n <ol\r\n className={BREADCRUMB_STYLES.list}\r\n >\r\n {renderedChildren}\r\n </ol>\r\n </nav>\r\n )\r\n})\r\nBreadcrumb.displayName = 'Breadcrumb'\r\n\r\nexport { Breadcrumb }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbLink styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_LINK_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n cursor: 'pointer'\r\n },\r\n link: {\r\n transition: `color ${theme.transition.fast}, text-decoration-color ${theme.transition.fast}`,\r\n color: theme.colors.disabledText,\r\n textDecoration: 'underline',\r\n textDecorationColor: 'transparent',\r\n textUnderlineOffset: '3px',\r\n ':hover': {\r\n color: theme.colors.primary,\r\n textDecorationColor: 'currentColor',\r\n },\r\n },\r\n}))\r\n","import { memo } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\nimport { BreadcrumbLinkProps } from '@components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.props.ts'\r\nimport { BREADCRUMB_LINK_STYLES } from '@components/navigation/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.ts'\r\n\r\n/**\r\n * BreadcrumbLink component\r\n * Renders a clickable breadcrumb item with a link\r\n */\r\nconst BreadcrumbLink = memo<BreadcrumbLinkProps>((props) => {\r\n const { children, onClick } = props\r\n\r\n return (\r\n <li className={BREADCRUMB_LINK_STYLES.item}>\r\n <a\r\n className={BREADCRUMB_LINK_STYLES.link}\r\n onClick={onClick}\r\n >\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {children}\r\n </Text>\r\n </a>\r\n </li>\r\n )\r\n})\r\nBreadcrumbLink.displayName = 'BreadcrumbLink'\r\n\r\nexport { BreadcrumbLink }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\n/**\r\n * BreadcrumbPage styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const BREADCRUMB_PAGE_STYLES = createStyles((theme) => ({\r\n item: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n },\r\n page: {\r\n fontWeight: theme.fontWeight.medium,\r\n color: theme.colors.primary,\r\n },\r\n}))\r\n","import { memo } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\nimport { BreadcrumbPageProps } from '@components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.props.ts'\r\nimport { BREADCRUMB_PAGE_STYLES } from '@components/navigation/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.ts'\r\n\r\n/**\r\n * BreadcrumbPage component\r\n * Renders the current page (non-clickable) in the breadcrumb\r\n */\r\nconst BreadcrumbPage = memo<BreadcrumbPageProps>(({\r\n children\r\n}) => (\r\n <li className={BREADCRUMB_PAGE_STYLES.item}>\r\n <span\r\n className={BREADCRUMB_PAGE_STYLES.page}\r\n >\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n color={'primary'}\r\n >\r\n {children}\r\n </Text>\r\n </span>\r\n </li>\r\n))\r\nBreadcrumbPage.displayName = 'BreadcrumbPage'\r\n\r\nexport { BreadcrumbPage }\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { TabsStyleParams } from '@components/navigation/tabs/Tabs.props'\r\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\r\n\r\n/**\r\n * Tabs styles using createStyles from @aurora-ds/theme\r\n */\r\nexport const TABS_STYLES = createStyles((theme) => ({\r\n root: ({ width = '100%' }: TabsStyleParams) => ({\r\n display: 'flex',\r\n width,\r\n backgroundColor: theme.colors.surfaceHover,\r\n borderRadius: theme.radius.md,\r\n overflow: 'hidden',\r\n padding: theme.spacing.xs,\r\n height: `calc(2 * ${theme.spacing.xs} + ${BUTTON_SIZE}px)`,\r\n }),\r\n}))\r\n","import React, { FC } from 'react'\r\n\r\nimport { TabsProps } from '@components/navigation/tabs/Tabs.props'\r\nimport { TABS_STYLES } from '@components/navigation/tabs/Tabs.styles'\r\n\r\n/**\r\n * Tabs component for navigation between multiple sections\r\n */\r\nconst Tabs: FC<TabsProps> = ({\r\n children,\r\n activeTab,\r\n width = '100%',\r\n}) => {\r\n return (\r\n <div\r\n className={TABS_STYLES.root({ width })}\r\n >\r\n {React.Children.map(children, (child, index) => {\r\n if (React.isValidElement(child)) {\r\n const tabValue = child.props.value\r\n const isActive = activeTab === tabValue || (activeTab === undefined && index === 0)\r\n return React.cloneElement(child, {\r\n isActive,\r\n })\r\n }\r\n return child\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nTabs.displayName = 'Tabs'\r\n\r\nexport default Tabs\r\n","import { createStyles } from '@aurora-ds/theme'\n\nimport { BUTTON_SIZE } from '@constants/globalConstants.ts'\n\n/**\n * Tabs styles using createStyles from @aurora-ds/theme\n */\nexport const TAB_ITEM_STYLES = createStyles((theme) => ({\n tab: (isActive: boolean) => ({\n flex: 1,\n padding: theme.spacing.sm,\n height: BUTTON_SIZE,\n borderRadius: theme.radius.sm,\n cursor: 'pointer',\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}, boxShadow ${theme.transition.fast}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing.sm,\n backgroundColor: isActive ? theme.colors.background : 'transparent',\n color: isActive ? theme.colors.text : theme.colors.textSecondary,\n boxShadow: isActive ? theme.shadows.sm : undefined,\n ':hover': {\n backgroundColor: !isActive ? theme.colors.secondaryActive : undefined,\n },\n }),\n}))\n","import { FC } from 'react'\r\n\r\nimport Icon from '@components/foundation/icon/Icon.tsx'\r\nimport { Text } from '@components/foundation/text'\r\nimport { TabItemProps } from '@components/navigation/tabs/tab-item/TabItem.props.ts'\r\nimport { TAB_ITEM_STYLES } from '@components/navigation/tabs/tab-item/TabItem.styles.ts'\r\n\r\n/**\r\n * TabItem component for use inside Tabs\r\n */\r\nconst TabItem: FC<TabItemProps> = ({\r\n label,\r\n isActive = false,\r\n onClick,\r\n startIcon,\r\n endIcon\r\n}) => {\r\n return (\r\n <div\r\n className={TAB_ITEM_STYLES.tab(isActive)}\r\n onClick={onClick}\r\n >\r\n {startIcon && (\r\n <Icon>\r\n {startIcon}\r\n </Icon>\r\n )}\r\n {label && (\r\n <Text\r\n variant={'label'}\r\n preserveWhitespace\r\n maxLines={1}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n {endIcon && (\r\n <Icon>\r\n {endIcon}\r\n </Icon>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nTabItem.displayName = 'TabItem'\r\n\r\nexport default TabItem\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { PaginationStyleParams } from '@components/navigation/pagination/Pagination.props'\r\n\r\nexport const PAGINATION_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.xs,\r\n },\r\n pageButton: ({ disabled = false, active = false }: PaginationStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: '40px',\r\n maxHeight: '40px',\r\n minWidth: '40px',\r\n maxWidth: '40px',\r\n fontFamily: 'inherit',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.medium,\r\n backgroundColor: active ? theme.colors.primary : 'transparent',\r\n color: active ? theme.colors.onPrimary : theme.colors.text,\r\n border: 'none',\r\n opacity: disabled ? 0.4 : 1,\r\n ':hover': disabled ? {} : (active ? {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n } : {\r\n backgroundColor: theme.colors.surfaceHover,\r\n }),\r\n ':active': disabled ? {} : (active ? {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n } : {\r\n backgroundColor: theme.colors.surfaceActive,\r\n }),\r\n }),\r\n // kept for backward compatibility in case some usages relied on it directly\r\n activePageButton: {\r\n backgroundColor: theme.colors.primary,\r\n color: theme.colors.onPrimary,\r\n ':hover': {\r\n backgroundColor: theme.colors.primary,\r\n },\r\n ':active': {\r\n backgroundColor: theme.colors.primary,\r\n },\r\n },\r\n navigationButton: ({ disabled = false }: PaginationStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing.sm,\r\n borderRadius: theme.radius.md,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n transition: `background-color ${theme.transition.fast}, color ${theme.transition.fast}`,\r\n minHeight: '40px',\r\n maxHeight: '40px',\r\n minWidth: '40px',\r\n maxWidth: '40px',\r\n fontFamily: 'inherit',\r\n backgroundColor: 'transparent',\r\n color: theme.colors.text,\r\n border: 'none',\r\n opacity: disabled ? 0.4 : 1,\r\n ':hover': disabled ? {} : {\r\n backgroundColor: theme.colors.surfaceHover,\r\n },\r\n ':active': disabled ? {} : {\r\n backgroundColor: theme.colors.surfaceActive,\r\n },\r\n }),\r\n}))\r\n","import { FC, useMemo } from 'react'\r\n\r\nimport { PaginationProps } from '@components/navigation/pagination/Pagination.props'\r\nimport { PAGINATION_STYLES } from '@components/navigation/pagination/Pagination.styles'\r\nimport { ChevronLeftIcon, ChevronRightIcon } from '@resources/Icons'\r\n\r\n/**\r\n * Pagination component for navigating between pages\r\n */\r\nexport const Pagination: FC<PaginationProps> = ({\r\n currentPage,\r\n totalPages,\r\n onPageChange,\r\n onPrevious,\r\n onNext,\r\n maxVisiblePages = 7,\r\n ariaLabel = 'Pagination'\r\n}) => {\r\n const styles = PAGINATION_STYLES\r\n\r\n // Calculate which page numbers to display\r\n const visiblePages = useMemo(() => {\r\n const pages: number[] = []\r\n\r\n if (totalPages <= maxVisiblePages) {\r\n // Show all pages if they fit\r\n for (let i = 1; i <= totalPages; i++) {\r\n pages.push(i)\r\n }\r\n } else {\r\n // Calculate range around current page\r\n const halfVisible = Math.floor(maxVisiblePages / 2)\r\n const start = Math.max(1, currentPage - halfVisible)\r\n const end = Math.min(totalPages, start + maxVisiblePages - 1)\r\n\r\n // Adjust start if we're near the end\r\n const adjustedStart = end === totalPages ? Math.max(1, end - maxVisiblePages + 1) : start\r\n\r\n for (let i = adjustedStart; i <= end; i++) {\r\n pages.push(i)\r\n }\r\n }\r\n\r\n return pages\r\n }, [currentPage, totalPages, maxVisiblePages])\r\n\r\n const handlePrevious = () => {\r\n if (currentPage > 1) {\r\n const newPage = currentPage - 1\r\n if (onPrevious) {\r\n onPrevious(newPage)\r\n }\r\n onPageChange(newPage)\r\n }\r\n }\r\n\r\n const handleNext = () => {\r\n if (currentPage < totalPages) {\r\n const newPage = currentPage + 1\r\n if (onNext) {\r\n onNext(newPage)\r\n }\r\n onPageChange(newPage)\r\n }\r\n }\r\n\r\n const handlePageClick = (page: number) => {\r\n if (page !== currentPage) {\r\n onPageChange(page)\r\n }\r\n }\r\n\r\n const isPreviousDisabled = currentPage === 1\r\n const isNextDisabled = currentPage === totalPages\r\n\r\n return (\r\n <nav\r\n aria-label={ariaLabel}\r\n className={styles.root}\r\n >\r\n {/* Previous button */}\r\n <button\r\n type={'button'}\r\n onClick={handlePrevious}\r\n disabled={isPreviousDisabled}\r\n aria-label={'Page précédente'}\r\n className={styles.navigationButton({ disabled: isPreviousDisabled })}\r\n >\r\n <ChevronLeftIcon />\r\n </button>\r\n\r\n {/* Page numbers */}\r\n {visiblePages.map((page) => {\r\n const isActive = page === currentPage\r\n return (\r\n <button\r\n key={page}\r\n type={'button'}\r\n onClick={() => handlePageClick(page)}\r\n aria-label={`Page ${page}`}\r\n aria-current={isActive ? 'page' : undefined}\r\n className={styles.pageButton({ disabled: false, active: isActive })}\r\n >\r\n {page}\r\n </button>\r\n )\r\n })}\r\n\r\n {/* Next button */}\r\n <button\r\n type={'button'}\r\n onClick={handleNext}\r\n disabled={isNextDisabled}\r\n aria-label={'Page suivante'}\r\n className={styles.navigationButton({ disabled: isNextDisabled })}\r\n >\r\n <ChevronRightIcon />\r\n </button>\r\n </nav>\r\n )\r\n}\r\n\r\nPagination.displayName = 'Pagination'\r\n","import { createContext, FC, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { Alert } from '@components/overlay/alert'\r\nimport { AlertItem, AlertContextValue, AlertProviderProps, ShowAlertOptions } from '@hooks/useAlert.types'\r\n\r\nconst AlertContext = createContext<AlertContextValue | undefined>(undefined)\r\n\r\nconst ALERT_DURATION = 3000\r\nconst MAX_ALERTS = 2\r\nconst ALERT_HEIGHT = 48 // Approximate height with padding (px)\r\nconst ALERT_SPACING = 6 // Spacing between alerts (px)\r\n\r\n/**\r\n * Alert Provider Component\r\n * Manages alert queue and renders alerts in a portal\r\n */\r\nconst AlertProvider: FC<AlertProviderProps> = ({ children }) => {\r\n const [alerts, setAlerts] = useState<AlertItem[]>([])\r\n const [visibleAlerts, setVisibleAlerts] = useState<Set<string>>(new Set())\r\n const [alertHeights, setAlertHeights] = useState<Map<string, number>>(new Map())\r\n const timersRef = useRef<Map<string, NodeJS.Timeout>>(new Map())\r\n\r\n const showAlert = useCallback((options: ShowAlertOptions) => {\r\n const {\r\n text,\r\n variant = 'default',\r\n position = 'top-right',\r\n duration = ALERT_DURATION,\r\n maxWidth = 300\r\n } = options\r\n\r\n const id = `alert-${Date.now()}-${Math.random()}`\r\n const newAlert: AlertItem = {\r\n id,\r\n text,\r\n variant,\r\n position,\r\n timestamp: Date.now(),\r\n maxWidth\r\n }\r\n\r\n setAlerts((prev) => {\r\n const updatedAlerts = [...prev, newAlert]\r\n // Keep only MAX_ALERTS for the same position\r\n const samePositionAlerts = updatedAlerts.filter(a => a.position === position)\r\n\r\n if (samePositionAlerts.length > MAX_ALERTS) {\r\n // Remove the oldest alert for this position\r\n const oldestAlert = samePositionAlerts[0]\r\n const timerToRemove = timersRef.current.get(oldestAlert.id)\r\n if (timerToRemove) {\r\n clearTimeout(timerToRemove)\r\n timersRef.current.delete(oldestAlert.id)\r\n }\r\n setVisibleAlerts((prevVisible) => {\r\n const newVisible = new Set(prevVisible)\r\n newVisible.delete(oldestAlert.id)\r\n return newVisible\r\n })\r\n // Remove from alerts array after animation\r\n setTimeout(() => {\r\n setAlerts((current) => current.filter(a => a.id !== oldestAlert.id))\r\n setAlertHeights((prevHeights) => {\r\n const newMap = new Map(prevHeights)\r\n newMap.delete(oldestAlert.id)\r\n return newMap\r\n })\r\n }, 300)\r\n\r\n return updatedAlerts.filter(a => a.id !== oldestAlert.id)\r\n }\r\n\r\n return updatedAlerts\r\n })\r\n\r\n // Show alert after a small delay for animation\r\n setTimeout(() => {\r\n setVisibleAlerts((prev) => new Set(prev).add(id))\r\n }, 10)\r\n\r\n // Auto-dismiss timer\r\n const timer = setTimeout(() => {\r\n setVisibleAlerts((prev) => {\r\n const newVisible = new Set(prev)\r\n newVisible.delete(id)\r\n return newVisible\r\n })\r\n\r\n // Remove from DOM after animation\r\n setTimeout(() => {\r\n setAlerts((prev) => prev.filter(a => a.id !== id))\r\n setAlertHeights((prev) => {\r\n const newMap = new Map(prev)\r\n newMap.delete(id)\r\n return newMap\r\n })\r\n timersRef.current.delete(id)\r\n }, 300)\r\n }, duration)\r\n\r\n timersRef.current.set(id, timer)\r\n }, [])\r\n\r\n // Handle height changes from alerts (memoized to avoid re-creating on every render)\r\n const handleHeightChange = useCallback((alertId: string, height: number) => {\r\n setAlertHeights((prev) => {\r\n const currentHeight = prev.get(alertId)\r\n // Only update if height actually changed\r\n if (currentHeight !== height) {\r\n const newMap = new Map(prev)\r\n newMap.set(alertId, height)\r\n return newMap\r\n }\r\n return prev\r\n })\r\n }, [])\r\n\r\n // Cleanup timers on unmount\r\n useEffect(() => {\r\n return () => {\r\n timersRef.current.forEach(timer => clearTimeout(timer))\r\n timersRef.current.clear()\r\n }\r\n }, [])\r\n\r\n const contextValue = useMemo<AlertContextValue>(\r\n () => ({ showAlert }),\r\n [showAlert]\r\n )\r\n\r\n // Group alerts by position\r\n const alertsByPosition = useMemo(() => {\r\n const grouped: Record<string, AlertItem[]> = {}\r\n alerts.forEach(alert => {\r\n if (!grouped[alert.position]) {\r\n grouped[alert.position] = []\r\n }\r\n grouped[alert.position].push(alert)\r\n })\r\n return grouped\r\n }, [alerts])\r\n\r\n return (\r\n <AlertContext.Provider value={contextValue}>\r\n {children}\r\n {typeof window !== 'undefined' && createPortal(\r\n <>\r\n {Object.entries(alertsByPosition).map(([position, positionAlerts]) => {\r\n // positionAlerts is ordered from oldest -> newest\r\n const isTopPosition = position.startsWith('top')\r\n const ordered = isTopPosition ? [...positionAlerts].reverse() : positionAlerts\r\n\r\n return ordered.map((alert, index) => {\r\n // Calculate offset based on actual heights of previous alerts\r\n let offset = 0\r\n for (let i = 0; i < index; i++) {\r\n const prevAlert = ordered[i]\r\n const height = alertHeights.get(prevAlert.id) || ALERT_HEIGHT\r\n offset += height + ALERT_SPACING\r\n }\r\n\r\n return (\r\n <Alert\r\n key={alert.id}\r\n text={alert.text}\r\n variant={alert.variant}\r\n position={alert.position}\r\n isVisible={visibleAlerts.has(alert.id)}\r\n offsetY={offset}\r\n maxWidth={alert.maxWidth}\r\n alertId={alert.id}\r\n onHeightChange={handleHeightChange}\r\n />\r\n )\r\n })\r\n })}\r\n </>,\r\n document.body\r\n )}\r\n </AlertContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access alert functionality\r\n *\r\n * @example\r\n * ```tsx\r\n * const { showAlert } = useAlert()\r\n *\r\n * showAlert({\r\n * text: 'Operation completed',\r\n * variant: 'success',\r\n * position: 'top-right'\r\n * })\r\n * ```\r\n */\r\nconst useAlert = (): AlertContextValue => {\r\n const context = useContext(AlertContext)\r\n if (!context) {\r\n throw new Error('useAlert must be used within an AlertProvider')\r\n }\r\n return context\r\n}\r\n\r\nexport { AlertProvider, useAlert }\r\n","import type { ThemeBreakpointsContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default breakpoint tokens\r\n */\r\nexport const themeBreakpoints: ThemeBreakpointsContract = {\r\n xs: '480px', // Extra small devices (phones in landscape)\r\n sm: '640px', // Small devices (large phones, small tablets)\r\n md: '768px', // Medium devices (tablets)\r\n lg: '1024px', // Large devices (desktops)\r\n xl: '1280px', // Extra large devices (large desktops)\r\n '2xl': '1536px', // Extra extra large devices (wide screens)\r\n}\r\n","import { colors } from '@aurora-ds/theme'\r\n\r\nimport type { ThemeColorContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default color tokens\r\n * Uses color scales from @aurora-ds/theme\r\n */\r\nexport const themeColors: ThemeColorContract = {\r\n // Surface colors\r\n background: colors.slate[25],\r\n surface: colors.white,\r\n surfaceHover: colors.slate[100],\r\n surfaceActive: colors.slate[200],\r\n\r\n // Text colors\r\n text: colors.slate[800],\r\n textSecondary: colors.slate[500],\r\n textTertiary: colors.slate[400],\r\n\r\n // Primary colors (Indigo)\r\n primary: colors.indigo[600],\r\n primaryHover: colors.indigo[700],\r\n primaryActive: colors.indigo[800],\r\n primarySubtle: colors.indigo[50],\r\n primaryDisabled: colors.indigo[300],\r\n onPrimary: colors.white,\r\n\r\n // Secondary colors (Slate)\r\n secondary: colors.slate[100],\r\n secondaryHover: colors.slate[200],\r\n secondaryActive: colors.slate[300],\r\n secondarySubtle: colors.slate[50],\r\n secondaryDisabled: colors.slate[200],\r\n onSecondary: colors.slate[700],\r\n\r\n // Border colors\r\n border: colors.slate[200],\r\n\r\n // Disabled state\r\n disabledText: colors.slate[400],\r\n disabled: colors.slate[300],\r\n\r\n // Semantic colors - Success (Emerald)\r\n success: colors.emerald[600],\r\n successSubtle: colors.emerald[100],\r\n\r\n // Semantic colors - Warning (Amber)\r\n warning: colors.amber[600],\r\n warningSubtle: colors.amber[100],\r\n\r\n // Semantic colors - Error (Red)\r\n error: colors.red[500],\r\n errorHover: colors.red[700],\r\n errorSubtle: colors.red[100],\r\n onError: colors.white,\r\n\r\n // Semantic colors - Info (Blue)\r\n info: colors.blue[500],\r\n infoSubtle: colors.blue[100],\r\n\r\n // Semantic colors - Highlight (Orange)\r\n highlight: colors.orange[500],\r\n highlightSubtle: colors.orange[100],\r\n\r\n // Semantic colors - Accent (Purple)\r\n accent: colors.purple[500],\r\n accentSubtle: colors.purple[100],\r\n\r\n // Status colors - Default (Neutral slate)\r\n default: colors.slate[500],\r\n defaultSubtle: colors.slate[100],\r\n\r\n // Status colors - New (Cyan)\r\n new: colors.cyan[600],\r\n newSubtle: colors.cyan[100],\r\n\r\n // Status colors - Rose (Pink)\r\n rose: colors.rose[500],\r\n roseSubtle: colors.rose[100],\r\n\r\n // Status colors - Yellow\r\n yellow: colors.yellow[600],\r\n yellowSubtle: colors.yellow[100],\r\n\r\n // Link colors (Indigo)\r\n link: colors.indigo[600],\r\n linkHover: colors.indigo[700],\r\n linkActive: colors.indigo[800],\r\n linkDisabled: colors.indigo[300],\r\n}\r\n","import type { ThemeFontSizeContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default font size tokens\r\n */\r\nexport const themeFontSize: ThemeFontSizeContract = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n}\r\n","import type { ThemeFontWeightContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default font weight tokens\r\n */\r\nexport const themeFontWeight: ThemeFontWeightContract = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n}\r\n","import type { ThemeLineHeightContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default line height tokens\r\n */\r\nexport const themeLineHeight: ThemeLineHeightContract = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n loose: 2,\r\n}\r\n","import type { ThemeOpacityContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default opacity tokens\r\n */\r\nexport const themeOpacity: ThemeOpacityContract = {\r\n none: 0,\r\n lowest: 0.05,\r\n low: 0.1,\r\n medium: 0.25,\r\n high: 0.5,\r\n higher: 0.75,\r\n full: 1,\r\n}\r\n","import type { ThemeRadiusContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default border radius tokens\r\n */\r\nexport const themeRadius: ThemeRadiusContract = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n '2xl': '1rem', // 16px\r\n full: '9999px',\r\n}\r\n","import type { ThemeShadowsContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default shadow tokens\r\n */\r\nexport const themeShadows: ThemeShadowsContract = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\r\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\r\n focus: '0 0 0 3px rgb(99 102 241 / 0.4)',\r\n}\r\n","import type { ThemeSpacingContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default spacing tokens\r\n */\r\nexport const themeSpacing: ThemeSpacingContract = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n}\r\n","import type { ThemeTransitionContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default transition tokens\r\n */\r\nexport const themeTransition: ThemeTransitionContract = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n}\r\n","import type { ThemeZIndexContract } from '@interfaces/theme.contracts'\r\n\r\n/**\r\n * Default z-index tokens\r\n */\r\nexport const themeZIndex: ThemeZIndexContract = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n sticky: 1100,\r\n overlay: 1300,\r\n modal: 1400,\r\n popover: 1500,\r\n tooltip: 1600,\r\n toast: 1700,\r\n}\r\n","import '@theme/theme.module'\r\n\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeColors } from '@theme/values/themeColors.ts'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\n/**\r\n * Default theme for aurora-ds-components\r\n *\r\n * This theme is used by default if no custom theme is provided.\r\n * You can override it by passing your own theme to ThemeProvider:\r\n *\r\n * @example\r\n * ```tsx\r\n * import { ThemeProvider } from '@aurora-ds/theme'\r\n * import { defaultTheme } from '@aurora-ds/components'\r\n *\r\n * // Use default theme\r\n * <ThemeProvider theme={defaultTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n *\r\n * // Or extend/override it\r\n * const myTheme = {\r\n * ...defaultTheme,\r\n * colors: {\r\n * ...defaultTheme.colors,\r\n * primary: '#FF0000', // Override primary color\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport const defaultTheme: Theme = {\r\n colors: themeColors,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n}\r\n"],"names":["_jsx","_jsxs","getAvatarSizes","getButtonSizeStyles","getButtonVariantStyles","getIconButtonSizeStyles","Form","CalendarGrid","CalendarHeader","Calendar","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/data-display/badge/utils/getBadgeColorStyles.utils.ts","../../src/components/data-display/badge/Badge.styles.ts","../../src/components/foundation/icon/Icon.styles.ts","../../src/components/foundation/icon/Icon.tsx","../../src/components/foundation/text/utils/getTextVariantStyles.utils.ts","../../src/components/foundation/text/Text.styles.ts","../../src/components/foundation/text/utils/getTruncateTextStyles.utils.ts","../../src/components/foundation/text/utils/parseTextWithBold.utils.ts","../../src/components/foundation/text/Text.tsx","../../src/components/data-display/badge/Badge.tsx","../../src/hooks/components/overlay/use-tooltip-position/useTooltipPosition.ts","../../src/components/overlay/tooltip/Tooltip.styles.ts","../../src/components/overlay/tooltip/Tooltip.tsx","../../src/components/data-display/info-bubble/InfoBubble.styles.ts","../../src/resources/Icons.ts","../../src/components/data-display/info-bubble/InfoBubble.tsx","../../src/constants/animation.constants.ts","../../src/components/actions/_common/buttonVariants.styles.ts","../../src/components/actions/button/Button.styles.ts","../../src/components/actions/button/Button.tsx","../../src/components/actions/icon-button/IconButton.styles.ts","../../src/components/actions/icon-button/IconButton.tsx","../../src/components/forms/form/Form.tsx","../../src/components/forms/switch/Switch.styles.ts","../../src/hooks/common/use-controllable-state/useControllableState.ts","../../src/components/forms/switch/utils/useSwitch.utils.ts","../../src/components/forms/switch/Switch.tsx","../../src/components/layout/box/Box.styles.ts","../../src/components/layout/box/Box.tsx","../../src/components/layout/stack/Stack.tsx","../../src/components/forms/text-field/TextField.styles.ts","../../src/hooks/common/use-merged-refs/useMergedRefs.ts","../../src/components/forms/text-field/utils/useTextField.utils.ts","../../src/components/forms/text-field/TextField.tsx","../../src/components/overlay/menu/Menu.styles.ts","../../src/hooks/common/use-key-press/useKeyPress.ts","../../src/hooks/components/overlay/use-menu-position/useMenuPosition.ts","../../src/components/overlay/menu/utils/useMenu.utils.ts","../../src/components/overlay/menu/menu-group/MenuGroup.styles.ts","../../src/components/overlay/menu/menu-group/MenuGroup.tsx","../../src/components/overlay/menu/menu-item/MenuItem.styles.ts","../../src/components/overlay/menu/menu-item/MenuItem.tsx","../../src/components/overlay/menu/Menu.tsx","../../src/components/forms/select/select-trigger/SelectTrigger.styles.ts","../../src/components/forms/select/select-trigger/SelectTrigger.tsx","../../src/components/forms/select/utils/useSelect.utils.ts","../../src/components/forms/select/Select.tsx","../../src/components/overlay/alert/Alert.context.ts","../../src/components/overlay/alert/alert-title/AlertTitle.tsx","../../src/components/overlay/alert/alert-body/AlertBody.tsx","../../src/components/overlay/alert/Alert.tsx","../../src/constants/breakpoints.constants.ts","../../src/constants/app.constants.ts","../../src/components/overlay/dialog/Dialog.styles.ts","../../src/components/overlay/dialog/Dialog.context.ts","../../src/hooks/common/use-transition-render/useTransitionRender.ts","../../src/hooks/common/use-body-scroll-lock/useBodyScrollLock.ts","../../src/hooks/common/use-focus-trap/useFocusTrap.ts","../../src/components/overlay/dialog/utils/useDialog.utils.ts","../../src/components/overlay/dialog/dialog-header/DialogHeader.tsx","../../src/components/overlay/dialog/dialog-body/DialogBody.tsx","../../src/components/overlay/dialog/Dialog.tsx","../../src/theme/_palettes/lightPalette.ts","../../src/theme/values/themeBreakpoints.ts","../../src/theme/values/themeFontSize.ts","../../src/theme/values/themeFontWeight.ts","../../src/theme/values/themeLineHeight.ts","../../src/theme/values/themeOpacity.ts","../../src/theme/values/themeRadius.ts","../../src/theme/values/themeShadows.ts","../../src/theme/values/themeSpacing.ts","../../src/theme/values/themeTransition.ts","../../src/theme/values/themeZIndex.ts","../../src/theme/themes/lightTheme.ts","../../src/theme/_palettes/darkPalette.ts","../../src/theme/themes/darkTheme.ts"],"sourcesContent":["import type { BadgeColor, BadgeVariant } from '@components/data-display/badge/badge.types'\r\n\r\nconst BADGE_VARIANTS_LIST: BadgeVariant[] = ['filled', 'outlined', 'subtle', 'subtleOutlined']\r\n\r\ntype BadgeIntent = {\r\n bg: string\r\n on: string\r\n fg: string\r\n fgStrong: string\r\n subtle: string\r\n border: string\r\n}\r\n\r\n/**\r\n * Builds compound variants combining `variant` × `color` for the Badge.\r\n * Returns one entry per (color, variant) pair with static color styles.\r\n */\r\nexport const buildBadgeCompoundVariants = (theme: { colors: Record<string, string> }) => {\r\n const c = theme.colors\r\n\r\n const intents: Record<BadgeColor, BadgeIntent> = {\r\n default: {\r\n bg: c.defaultMain,\r\n on: c.textInverse,\r\n fg: c.defaultMain,\r\n fgStrong: c.defaultHover,\r\n subtle: c.defaultSubtle,\r\n border: c.defaultMain,\r\n },\r\n primary: {\r\n bg: c.primaryMain,\r\n on: c.primaryOn,\r\n fg: c.primaryMain,\r\n fgStrong: c.primaryHover,\r\n subtle: c.primarySubtle,\r\n border: c.primaryMain,\r\n },\r\n secondary: {\r\n bg: c.secondaryMain,\r\n on: c.secondaryOn,\r\n fg: c.secondaryOn,\r\n fgStrong: c.secondaryOn,\r\n subtle: c.secondarySubtle,\r\n border: c.borderStrong,\r\n },\r\n success: {\r\n bg: c.successMain,\r\n on: c.successOn,\r\n fg: c.successMain,\r\n fgStrong: c.successHover,\r\n subtle: c.successSubtle,\r\n border: c.successMain,\r\n },\r\n warning: {\r\n bg: c.warningMain,\r\n on: c.warningOn,\r\n fg: c.warningMain,\r\n fgStrong: c.warningHover,\r\n subtle: c.warningSubtle,\r\n border: c.warningMain,\r\n },\r\n error: {\r\n bg: c.errorMain,\r\n on: c.errorOn,\r\n fg: c.errorMain,\r\n fgStrong: c.errorHover,\r\n subtle: c.errorSubtle,\r\n border: c.errorMain,\r\n },\r\n info: {\r\n bg: c.infoMain,\r\n on: c.infoOn,\r\n fg: c.infoMain,\r\n fgStrong: c.infoHover,\r\n subtle: c.infoSubtle,\r\n border: c.infoMain,\r\n },\r\n orange: {\r\n bg: c.orangeMain,\r\n on: c.orangeOn,\r\n fg: c.orangeMain,\r\n fgStrong: c.orangeHover,\r\n subtle: c.orangeSubtle,\r\n border: c.orangeMain,\r\n },\r\n pink: {\r\n bg: c.pinkMain,\r\n on: c.pinkOn,\r\n fg: c.pinkMain,\r\n fgStrong: c.pinkHover,\r\n subtle: c.pinkSubtle,\r\n border: c.pinkMain,\r\n },\r\n violet: {\r\n bg: c.violetMain,\r\n on: c.violetOn,\r\n fg: c.violetMain,\r\n fgStrong: c.violetHover,\r\n subtle: c.violetSubtle,\r\n border: c.violetMain,\r\n },\r\n }\r\n\r\n const getColorStyles = (intent: BadgeIntent, appearance: BadgeVariant) => {\r\n if (appearance === 'filled') {\r\n return {\r\n backgroundColor: intent.bg,\r\n borderColor: intent.bg,\r\n color: intent.on,\r\n }\r\n }\r\n\r\n if (appearance === 'outlined') {\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: intent.border,\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n if (appearance === 'subtleOutlined') {\r\n return {\r\n backgroundColor: intent.subtle,\r\n borderColor: intent.border,\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n // subtle\r\n return {\r\n backgroundColor: intent.subtle,\r\n borderColor: 'transparent',\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n return (Object.keys(intents) as BadgeColor[]).flatMap((color) =>\r\n BADGE_VARIANTS_LIST.map((variant) => ({\r\n color,\r\n variant,\r\n styles: getColorStyles(intents[color], variant),\r\n }))\r\n )\r\n}\r\n","import { createVariants } from '@aurora-ds/theme'\r\nimport { buildBadgeCompoundVariants } from '@components/data-display/badge/utils/getBadgeColorStyles.utils'\r\n\r\nexport const BADGE_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: theme.spacing.xs,\r\n boxSizing: 'border-box' as const,\r\n borderRadius: theme.radius.full,\r\n border: '1px solid transparent',\r\n fontFamily: 'inherit',\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.none,\r\n whiteSpace: 'nowrap' as const,\r\n userSelect: 'none' as const,\r\n },\r\n variants: {\r\n size: {\r\n sm: {\r\n height: '1.25rem',\r\n padding: `0.125rem ${theme.spacing['xs+']}`,\r\n fontSize: theme.fontSize['2xs'],\r\n },\r\n md: {\r\n height: '1.5rem',\r\n padding: `0.1875rem ${theme.spacing.sm}`,\r\n fontSize: theme.fontSize.xs,\r\n },\r\n lg: {\r\n height: '2rem',\r\n padding: `0.25rem ${theme.spacing.md}`,\r\n fontSize: theme.fontSize.sm,\r\n },\r\n },\r\n // Appearance and color styling is handled entirely by compoundVariants.\r\n variant: { filled: {}, outlined: {}, subtle: {}, subtleOutlined: {} },\r\n color: {\r\n default: {},\r\n primary: {},\r\n secondary: {},\r\n success: {},\r\n warning: {},\r\n error: {},\r\n info: {},\r\n orange: {},\r\n pink: {},\r\n violet: {},\r\n },\r\n },\r\n defaultVariants: { size: 'md', variant: 'subtle', color: 'default' },\r\n compoundVariants: buildBadgeCompoundVariants(theme),\r\n}), { id: 'badge' })\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { IconStyleParams } from '@components/foundation/icon/Icon.props'\r\n\r\nexport const ICON_STYLES = createStyles((theme) => ({\r\n root: ({ size, strokeColor, fill, backgroundColor, padding, borderRadius }: IconStyleParams) => ({\r\n boxSizing: 'content-box' as const,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n transition: `color ${theme.transition.fast}, fill ${theme.transition.fast}`,\r\n flexShrink: 0,\r\n lineHeight: 0,\r\n height: theme.fontSize[size ?? 'md'],\r\n width: theme.fontSize[size ?? 'md'],\r\n minWidth: theme.fontSize[size ?? 'md'],\r\n minHeight: theme.fontSize[size ?? 'md'],\r\n backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\r\n padding: padding ? theme.spacing[padding] : 0,\r\n borderRadius: theme.radius[borderRadius ?? 'none'],\r\n '& svg': {\r\n color: strokeColor ? theme.colors[strokeColor] : undefined,\r\n stroke: strokeColor ? theme.colors[strokeColor] : undefined,\r\n },\r\n '& svg [fill=\"currentColor\"], & svg[fill=\"currentColor\"]': {\r\n fill: fill ? theme.colors[fill] : undefined,\r\n },\r\n }),\r\n}))\r\n","import { ICON_STYLES } from '@components/foundation/icon/Icon.styles'\r\nimport type { IconProps } from '@components/foundation/icon/Icon.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * Renders an SVG icon inside a theme-aware wrapper.\r\n *\r\n * @example <Icon icon={MenuIcon} size='md' strokeColor='primaryMain' />\r\n * @example <Icon icon={CloseIcon} strokeColor='textInverse' backgroundColor='primaryMain' padding='sm' borderRadius='full' />\r\n */\r\nconst Icon: FC<IconProps> = (\r\n {\r\n ref,\r\n icon: SvgIcon,\r\n size,\r\n strokeColor,\r\n fill,\r\n backgroundColor,\r\n padding,\r\n borderRadius,\r\n className,\r\n role,\r\n ...rest\r\n }\r\n) => {\r\n const generatedClassName = ICON_STYLES.root({ size, strokeColor, fill, backgroundColor, padding, borderRadius })\r\n const mergedClassName = className ? `${generatedClassName} ${className}` : generatedClassName\r\n const isLabelled = Boolean(rest['aria-label'] || rest['aria-labelledby'])\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={mergedClassName}\r\n aria-hidden={isLabelled ? undefined : true}\r\n role={role ?? (isLabelled ? 'img' : 'presentation')}\r\n {...rest}\r\n >\r\n <SvgIcon\r\n width={'100%'}\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nIcon.displayName = 'Icon'\r\n\r\nexport default Icon\r\n","import type { TextVariants, TextVariantStyle } from '@components/foundation/text/text.types'\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\n/** Returns the baseline font styles for each text variant. */\r\nexport const getTextVariantStyles = (theme: Theme): Record<TextVariants, TextVariantStyle> => ({\r\n h1: {\r\n tag: 'h1',\r\n fontSize: theme.fontSize['3xl'],\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h2: {\r\n tag: 'h2',\r\n fontSize: theme.fontSize['2xl'],\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h3: {\r\n tag: 'h3',\r\n fontSize: theme.fontSize.xl,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h4: {\r\n tag: 'h4',\r\n fontSize: theme.fontSize.lg,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h5: {\r\n tag: 'h5',\r\n fontSize: theme.fontSize.md,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n h6: {\r\n tag: 'h6',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n p: {\r\n tag: 'p',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.relaxed,\r\n },\r\n span: {\r\n tag: 'span',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.regular,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n label: {\r\n tag: 'label',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n strong: {\r\n tag: 'strong',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils'\r\n\r\nimport type { TextStyleParams } from '@components/foundation/text/Text.props'\r\n\r\nexport const TEXT_STYLES = createStyles((theme) => {\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n return {\r\n root: ({\r\n variant = 'span',\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n underline,\r\n strikethrough,\r\n italic,\r\n noWrap,\r\n preserveWhitespace,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n }: TextStyleParams) => {\r\n const textDecoration =\r\n underline && strikethrough\r\n ? 'underline line-through'\r\n : underline\r\n ? 'underline'\r\n : strikethrough\r\n ? 'line-through'\r\n : undefined\r\n\r\n return {\r\n margin: 0,\r\n padding: 0,\r\n fontSize: fontSize ? theme.fontSize[fontSize] : variantStyles[variant].fontSize,\r\n fontWeight: fontWeight ? theme.fontWeight[fontWeight] : variantStyles[variant].fontWeight,\r\n lineHeight: lineHeight ? theme.lineHeight[lineHeight] : variantStyles[variant].lineHeight,\r\n color: color ? theme.colors[color] : 'inherit',\r\n cursor: 'inherit',\r\n ...(width !== undefined && { width }),\r\n ...(fontFamily && { fontFamily }),\r\n ...(textTransform && { textTransform }),\r\n ...(letterSpacing !== undefined && { letterSpacing }),\r\n ...(textAlign && { textAlign }),\r\n ...(italic && { fontStyle: 'italic' }),\r\n // noWrap and preserveWhitespace are mutually exclusive; noWrap wins.\r\n // Truncation (maxLines/truncate) injects whiteSpace via inline style — both are ignored there.\r\n ...(noWrap\r\n ? { whiteSpace: 'nowrap' as const }\r\n : preserveWhitespace\r\n ? { whiteSpace: 'pre-wrap' as const }\r\n : {}),\r\n ...(textDecoration && {\r\n textDecoration,\r\n ...(underline && { textUnderlineOffset: '3px' }),\r\n }),\r\n }\r\n },\r\n }\r\n})\r\n","/**\r\n * Returns inline CSS styles to truncate text with an ellipsis.\r\n *\r\n * - 1 line → classic `white-space: nowrap` + `text-overflow: ellipsis` (best browser support)\r\n * - n lines → `-webkit-line-clamp` (supported in all modern browsers)\r\n */\r\nexport const getTruncateTextStyles = (maxLines: number) => {\r\n if (maxLines === 1) {\r\n return {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n }\r\n }\r\n\r\n return {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n WebkitLineClamp: maxLines,\r\n WebkitBoxOrient: 'vertical' as const,\r\n whiteSpace: 'normal' as const,\r\n overflowWrap: 'break-word' as const,\r\n wordBreak: 'break-word' as const,\r\n }\r\n}\r\n","import { createElement, Fragment, type ReactNode } from 'react'\r\n\r\n/**\r\n * Parses text content and converts **bold** syntax to <strong> elements\r\n * @param children - The content to parse (string or ReactNode)\r\n * @returns Parsed content with bold text wrapped in <strong> elements\r\n */\r\nexport const parseTextWithBold = (children: ReactNode): ReactNode => {\r\n if (typeof children !== 'string' || !children.includes('**')) {\r\n return children\r\n }\r\n\r\n const boldPattern = /\\*\\*(.+?)\\*\\*/g\r\n const parts: ReactNode[] = []\r\n let lastIndex = 0\r\n let match: RegExpExecArray | null\r\n\r\n while ((match = boldPattern.exec(children)) !== null) {\r\n if (match.index > lastIndex) {\r\n parts.push(children.slice(lastIndex, match.index))\r\n }\r\n\r\n parts.push(\r\n createElement('strong', { key: match.index }, match[1])\r\n )\r\n\r\n lastIndex = match.index + match[0].length\r\n }\r\n\r\n if (parts.length === 0) {\r\n return children\r\n }\r\n\r\n if (lastIndex < children.length) {\r\n parts.push(children.slice(lastIndex))\r\n }\r\n\r\n return createElement(Fragment, null, ...parts)\r\n}\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { TEXT_STYLES } from '@components/foundation/text/Text.styles'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils'\r\nimport { getTruncateTextStyles } from '@components/foundation/text/utils/getTruncateTextStyles.utils'\r\nimport { parseTextWithBold } from '@components/foundation/text/utils/parseTextWithBold.utils'\r\nimport { createElement, type FC } from 'react'\r\n\r\nimport type { TextProps } from '@components/foundation/text/Text.props'\r\n\r\n/**\r\n * Renders a semantic HTML text element with theme-aware styling.\r\n *\r\n * @example <Text variant='h1' color='text.primary'>Title</Text>\r\n * @example <Text variant='p' maxLines={2}>Long content…</Text>\r\n * @example <Text variant='h1' as='h2'>h1 styles, h2 semantics</Text>\r\n * @example <Text variant='label' htmlFor='email'>Email</Text>\r\n * @example <Text>Hello **world**!</Text> // → Hello <strong>world</strong>!\r\n */\r\nconst Text: FC<TextProps> = (\r\n {\r\n ref,\r\n children,\r\n variant = 'span',\r\n as,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n underline,\r\n strikethrough,\r\n italic,\r\n maxLines,\r\n truncate,\r\n noWrap,\r\n preserveWhitespace,\r\n htmlFor,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const theme = useTheme()\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n const effectiveLines = truncate ? 1 : maxLines\r\n const tag = as ?? variantStyles[variant].tag\r\n const parsedChildren = parseTextWithBold(children)\r\n const truncateStyles = effectiveLines ? getTruncateTextStyles(effectiveLines) : undefined\r\n\r\n const generatedClassName = TEXT_STYLES.root({\r\n variant,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n underline,\r\n strikethrough,\r\n italic,\r\n noWrap: effectiveLines ? false : noWrap,\r\n preserveWhitespace,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n })\r\n\r\n const mergedClassName = className ? `${generatedClassName} ${className}` : generatedClassName\r\n const mergedStyle = truncateStyles ? { ...truncateStyles, ...style } : style\r\n\r\n return createElement(\r\n tag,\r\n {\r\n ref,\r\n className: mergedClassName,\r\n style: mergedStyle,\r\n ...(tag === 'label' && htmlFor !== undefined ? { htmlFor } : {}),\r\n ...rest,\r\n },\r\n parsedChildren\r\n )\r\n}\r\n\r\nexport default Text\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { BADGE_VARIANTS } from '@components/data-display/badge/Badge.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { BadgeProps } from '@components/data-display/badge/Badge.props'\r\nimport type { BadgeSize } from '@components/data-display/badge/badge.types'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { CSSProperties, FC } from 'react'\r\n\r\n/** Maps badge size to an Icon size token. */\r\nconst ICON_SIZE: Record<BadgeSize, keyof Theme['fontSize']> = {\r\n sm: 'xs',\r\n md: 'xs',\r\n lg: 'sm',\r\n}\r\n\r\n/** Maps badge size to a Text font-size token. */\r\nconst LABEL_FONT_SIZE: Record<BadgeSize, keyof Theme['fontSize']> = {\r\n sm: '2xs',\r\n md: 'xs',\r\n lg: 'sm',\r\n}\r\n\r\n/** Diameter of the dot indicator per size. */\r\nconst DOT_SIZE: Record<BadgeSize, string> = {\r\n sm: '0.375rem',\r\n md: '0.5rem',\r\n lg: '0.625rem',\r\n}\r\n\r\n/**\r\n * Compact label used to convey status, category or count information.\r\n *\r\n * @example <Badge color='success'>Active</Badge>\r\n * @example <Badge variant='outlined' color='error'>Critical</Badge>\r\n * @example <Badge variant='filled' color='primary' size='sm' startIcon={StarIcon}>Featured</Badge>\r\n * @example <Badge dot color='warning' />\r\n */\r\nconst Badge: FC<BadgeProps> = (\r\n {\r\n ref,\r\n variant = 'subtle',\r\n color = 'default',\r\n size = 'md',\r\n borderRadius = 'sm',\r\n startIcon: StartIcon,\r\n endIcon: EndIcon,\r\n icon,\r\n dot = false,\r\n children,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const theme = useTheme()\r\n const rootClassName = BADGE_VARIANTS({ variant, color, size }, className)\r\n const resolvedBorderRadius = borderRadius ? theme.radius[borderRadius] : undefined\r\n const effectiveStartIcon = StartIcon ?? icon\r\n\r\n if (dot) {\r\n const dotStyle: CSSProperties = {\r\n width: DOT_SIZE[size],\r\n height: DOT_SIZE[size],\r\n minWidth: DOT_SIZE[size],\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: resolvedBorderRadius ?? '9999px',\r\n }\r\n return (\r\n <span\r\n ref={ref}\r\n className={rootClassName}\r\n style={{ ...dotStyle, ...style }}\r\n aria-hidden={true}\r\n {...rest}\r\n />\r\n )\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={rootClassName}\r\n style={{ ...(resolvedBorderRadius ? { borderRadius: resolvedBorderRadius } : {}), ...style }}\r\n {...rest}\r\n >\r\n {effectiveStartIcon && (\r\n <Icon\r\n icon={effectiveStartIcon}\r\n size={ICON_SIZE[size]}\r\n />\r\n )}\r\n\r\n {children !== undefined && children !== null && (\r\n <Text\r\n variant={'span'}\r\n fontSize={LABEL_FONT_SIZE[size]}\r\n fontWeight={'medium'}\r\n lineHeight={'none'}\r\n >\r\n {children}\r\n </Text>\r\n )}\r\n\r\n {EndIcon && (\r\n <Icon\r\n icon={EndIcon}\r\n size={ICON_SIZE[size]}\r\n />\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\nBadge.displayName = 'Badge'\r\n\r\nexport default Badge\r\n","import { useCallback, useEffect, useRef, useState } from 'react'\r\nimport type { UseTooltipPositionOptions, UseTooltipPositionResult, TooltipPosition } from '@hooks/components/overlay/use-tooltip-position/useTooltipPosition.types'\r\nimport type { TooltipPlacement } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\nconst VIEWPORT_MARGIN_PX = 8\r\nconst GAP_PX = 6\r\nconst FADE_IN_DELAY_MS = 10\r\n\r\n/**\r\n * Computes and continuously updates the `position: fixed` coordinates for a\r\n * tooltip bubble, clamping it to the viewport on all four sides.\r\n *\r\n * Positioning strategy (two-pass):\r\n * - First pass: mount the bubble at the preferred position.\r\n * - Second pass (rAF): read the actual rendered size and clamp all sides.\r\n *\r\n * Handles:\r\n * - All four placements: top, bottom, left, right.\r\n * - Screen-edge clamping so the tooltip never overflows any side.\r\n * - Fade-in animation (sets `isFadingIn` on next tick to trigger CSS transition).\r\n * - Mouse/focus event handlers for show/hide.\r\n */\r\nexport const useTooltipPosition = ({\r\n placement,\r\n}: UseTooltipPositionOptions): UseTooltipPositionResult => {\r\n const wrapperRef = useRef<HTMLDivElement>(null)\r\n const bubbleRef = useRef<HTMLDivElement>(null)\r\n const [isVisible, setIsVisible] = useState(false)\r\n const [isFadingIn, setIsFadingIn] = useState(false)\r\n const [position, setPosition] = useState<TooltipPosition>({ top: 0, left: 0 })\r\n const showTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\r\n\r\n const computePosition = useCallback(\r\n (currentPlacement: TooltipPlacement = placement) => {\r\n const trigger = wrapperRef.current\r\n const bubble = bubbleRef.current\r\n if (!trigger) {return}\r\n\r\n const rect = trigger.getBoundingClientRect()\r\n const bubbleW = bubble?.offsetWidth ?? 0\r\n const bubbleH = bubble?.offsetHeight ?? 0\r\n\r\n let top = 0\r\n let left = 0\r\n\r\n switch (currentPlacement) {\r\n case 'top':\r\n top = rect.top - bubbleH - GAP_PX\r\n left = rect.left + rect.width / 2 - bubbleW / 2\r\n break\r\n case 'bottom':\r\n top = rect.bottom + GAP_PX\r\n left = rect.left + rect.width / 2 - bubbleW / 2\r\n break\r\n case 'left':\r\n top = rect.top + rect.height / 2 - bubbleH / 2\r\n left = rect.left - bubbleW - GAP_PX\r\n break\r\n case 'right':\r\n top = rect.top + rect.height / 2 - bubbleH / 2\r\n left = rect.right + GAP_PX\r\n break\r\n }\r\n\r\n // Clamp horizontally\r\n const maxLeft = window.innerWidth - bubbleW - VIEWPORT_MARGIN_PX\r\n left = Math.max(VIEWPORT_MARGIN_PX, Math.min(left, maxLeft))\r\n\r\n // Clamp vertically\r\n const maxTop = window.innerHeight - bubbleH - VIEWPORT_MARGIN_PX\r\n top = Math.max(VIEWPORT_MARGIN_PX, Math.min(top, maxTop))\r\n\r\n setPosition({ top, left })\r\n },\r\n [placement],\r\n )\r\n\r\n const show = useCallback(() => {\r\n setIsVisible(true)\r\n // Defer isFadingIn so the initial render (opacity 0) is committed first,\r\n // then the transition fires on the next paint.\r\n showTimerRef.current = setTimeout(() => {\r\n setIsFadingIn(true)\r\n requestAnimationFrame(() => computePosition())\r\n }, FADE_IN_DELAY_MS)\r\n }, [computePosition])\r\n\r\n const hide = useCallback(() => {\r\n if (showTimerRef.current !== null) {\r\n clearTimeout(showTimerRef.current)\r\n showTimerRef.current = null\r\n }\r\n setIsVisible(false)\r\n setIsFadingIn(false)\r\n }, [])\r\n\r\n // Re-compute on scroll or resize while visible\r\n useEffect(() => {\r\n if (!isVisible) {return}\r\n const handleUpdate = () => requestAnimationFrame(() => computePosition())\r\n window.addEventListener('scroll', handleUpdate, true)\r\n window.addEventListener('resize', handleUpdate)\r\n return () => {\r\n window.removeEventListener('scroll', handleUpdate, true)\r\n window.removeEventListener('resize', handleUpdate)\r\n }\r\n }, [isVisible, computePosition])\r\n\r\n // Second-pass: once the bubble mounts, recompute with actual dimensions\r\n useEffect(() => {\r\n if (isVisible && bubbleRef.current) {\r\n const id = requestAnimationFrame(() => computePosition())\r\n return () => cancelAnimationFrame(id)\r\n }\r\n }, [isVisible, computePosition])\r\n\r\n // Cleanup timers on unmount\r\n useEffect(() => {\r\n return () => {\r\n if (showTimerRef.current !== null) {clearTimeout(showTimerRef.current)}\r\n }\r\n }, [])\r\n\r\n return {\r\n wrapperRef,\r\n bubbleRef,\r\n isVisible,\r\n isFadingIn,\r\n position,\r\n handleMouseEnter: show,\r\n handleMouseLeave: hide,\r\n handleFocus: show,\r\n handleBlur: hide,\r\n handleClick: hide,\r\n }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport type { TooltipPlacement } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\ntype TooltipBubbleStyleParams = {\r\n placement: TooltipPlacement\r\n isFadingIn: boolean\r\n width: number\r\n}\r\n\r\ntype CaretStyleParams = {\r\n placement: TooltipPlacement\r\n}\r\n\r\nexport const TOOLTIP_STYLES = createStyles((theme) => {\r\n const CARET_OUTER: Record<TooltipPlacement, object> = {\r\n top: { bottom: -6, left: '50%', transform: 'translateX(-50%)', borderLeft: '6px solid transparent', borderRight: '6px solid transparent', borderTop: `6px solid ${theme.colors.borderMain}` },\r\n bottom: { top: -6, left: '50%', transform: 'translateX(-50%)', borderLeft: '6px solid transparent', borderRight: '6px solid transparent', borderBottom: `6px solid ${theme.colors.borderMain}` },\r\n left: { right: -6, top: '50%', transform: 'translateY(-50%)', borderTop: '6px solid transparent', borderBottom: '6px solid transparent', borderLeft: `6px solid ${theme.colors.borderMain}` },\r\n right: { left: -6, top: '50%', transform: 'translateY(-50%)', borderTop: '6px solid transparent', borderBottom: '6px solid transparent', borderRight: `6px solid ${theme.colors.borderMain}` },\r\n }\r\n\r\n const CARET_INNER: Record<TooltipPlacement, object> = {\r\n top: { bottom: -5, left: '50%', transform: 'translateX(-50%)', borderLeft: '5px solid transparent', borderRight: '5px solid transparent', borderTop: `5px solid ${theme.colors.surfacePaper}` },\r\n bottom: { top: -5, left: '50%', transform: 'translateX(-50%)', borderLeft: '5px solid transparent', borderRight: '5px solid transparent', borderBottom: `5px solid ${theme.colors.surfacePaper}` },\r\n left: { right: -5, top: '50%', transform: 'translateY(-50%)', borderTop: '5px solid transparent', borderBottom: '5px solid transparent', borderLeft: `5px solid ${theme.colors.surfacePaper}` },\r\n right: { left: -5, top: '50%', transform: 'translateY(-50%)', borderTop: '5px solid transparent', borderBottom: '5px solid transparent', borderRight: `5px solid ${theme.colors.surfacePaper}` },\r\n }\r\n\r\n return {\r\n wrapper: {\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n wrapperInline: {\r\n display: 'inline-flex',\r\n width: 'auto',\r\n },\r\n bubble: ({ isFadingIn, width }: TooltipBubbleStyleParams) => ({\r\n position: 'fixed' as const,\r\n opacity: isFadingIn ? 1 : 0,\r\n transform: `scale(${isFadingIn ? 1 : 0.95})`,\r\n transformOrigin: 'center',\r\n transition: `opacity ${theme.transition.fast}, transform ${theme.transition.fast}`,\r\n backgroundColor: theme.colors.surfacePaper,\r\n border: `1px solid ${theme.colors.borderMain}`,\r\n borderRadius: theme.radius.md,\r\n padding: theme.spacing.sm,\r\n // filter: drop-shadow follows the painted shape including CSS-triangle carets,\r\n // unlike box-shadow which is clipped to the rectangular border-box.\r\n filter: theme.shadows.dropSm,\r\n pointerEvents: 'none' as const,\r\n maxWidth: width,\r\n whiteSpace: 'normal' as const,\r\n wordBreak: 'break-word' as const,\r\n overflowWrap: 'break-word' as const,\r\n zIndex: theme.zIndex.tooltip,\r\n color: theme.colors.textPrimary,\r\n }),\r\n caretOuter: ({ placement }: CaretStyleParams) => ({\r\n position: 'absolute' as const,\r\n width: 0,\r\n height: 0,\r\n ...CARET_OUTER[placement],\r\n }),\r\n caretInner: ({ placement }: CaretStyleParams) => ({\r\n position: 'absolute' as const,\r\n width: 0,\r\n height: 0,\r\n ...CARET_INNER[placement],\r\n }),\r\n }\r\n})\r\n","import { cloneElement, isValidElement, useId, type FC } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { useTooltipPosition } from '@hooks/components/overlay/use-tooltip-position/useTooltipPosition'\r\nimport { TOOLTIP_STYLES } from '@components/overlay/tooltip/Tooltip.styles'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { TooltipProps } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\n/** Returns true when the primary input is a touch/pointer-coarse device (mobile). */\r\nconst isTouchDevice = (): boolean =>\r\n typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches\r\n\r\nconst DEFAULT_WIDTH = 200\r\n\r\n/**\r\n * Tooltip\r\n *\r\n * A hover/focus-triggered tooltip rendered in a portal to avoid clipping\r\n * by parent `overflow: hidden` containers. Computes its fixed position from\r\n * the trigger element's bounding rect and clamps it to the viewport on all sides.\r\n *\r\n * **Placements:** `top` | `bottom` | `left` | `right` (default)\r\n *\r\n * By default the tooltip is disabled on touch/mobile devices (`pointer: coarse`).\r\n * Set `disableOnMobile={false}` to keep it active on mobile (e.g. InfoBubble).\r\n *\r\n * @example\r\n * ```tsx\r\n * <Tooltip label=\"Save document\" placement=\"top\">\r\n * <Button>Save</Button>\r\n * </Tooltip>\r\n * ```\r\n */\r\nconst Tooltip: FC<TooltipProps> = ({\r\n children,\r\n label,\r\n placement = 'right',\r\n disabled = false,\r\n inline = false,\r\n withArrow = false,\r\n width = DEFAULT_WIDTH,\r\n hideOnClick = true,\r\n disableOnMobile = true,\r\n}) => {\r\n const tooltipId = useId()\r\n const isEffectivelyDisabled = disabled || (disableOnMobile && isTouchDevice())\r\n\r\n const {\r\n wrapperRef,\r\n bubbleRef,\r\n isVisible,\r\n isFadingIn,\r\n position,\r\n handleMouseEnter,\r\n handleMouseLeave,\r\n handleFocus,\r\n handleBlur,\r\n handleClick,\r\n } = useTooltipPosition({ placement })\r\n\r\n // Inject aria-describedby on the direct child so screen readers associate\r\n // the tooltip text with the focused trigger element. Also forward handleClick\r\n // on the child itself (instead of the wrapper div) to satisfy a11y rules.\r\n const trigger = !isEffectivelyDisabled && isValidElement<Record<string, unknown>>(children)\r\n ? cloneElement(children, {\r\n 'aria-describedby': tooltipId,\r\n ...(hideOnClick && { onClick: handleClick }),\r\n })\r\n : children\r\n\r\n return (\r\n <div\r\n ref={wrapperRef}\r\n className={inline ? TOOLTIP_STYLES.wrapperInline : TOOLTIP_STYLES.wrapper}\r\n onMouseEnter={isEffectivelyDisabled ? undefined : handleMouseEnter}\r\n onMouseLeave={isEffectivelyDisabled ? undefined : handleMouseLeave}\r\n onFocus={isEffectivelyDisabled ? undefined : handleFocus}\r\n onBlur={isEffectivelyDisabled ? undefined : handleBlur}\r\n >\r\n {trigger}\r\n {!isEffectivelyDisabled && isVisible && createPortal(\r\n <div\r\n ref={bubbleRef}\r\n id={tooltipId}\r\n className={TOOLTIP_STYLES.bubble({ placement, isFadingIn, width })}\r\n style={{ top: position.top, left: position.left }}\r\n role={'tooltip'}\r\n aria-live={'polite'}\r\n >\r\n <Text fontSize={'sm'}>\r\n {label}\r\n </Text>\r\n {withArrow && (\r\n <>\r\n <div className={TOOLTIP_STYLES.caretOuter({ placement })} />\r\n <div className={TOOLTIP_STYLES.caretInner({ placement })} />\r\n </>\r\n )}\r\n </div>,\r\n document.body,\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nTooltip.displayName = 'Tooltip'\r\n\r\nexport default Tooltip\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const INFO_BUBBLE_STYLES = createStyles((theme) => ({\r\n trigger: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: 'pointer',\r\n // Ensure the icon is keyboard-focusable and shows focus ring\r\n outline: 'none',\r\n border: 'none',\r\n aspectRatio: '1 !important',\r\n flexShrink: 0,\r\n backgroundColor: 'transparent',\r\n margin: 0,\r\n padding: theme.spacing.xs,\r\n ':focus-visible': {\r\n boxShadow: theme.shadows.focus,\r\n },\r\n },\r\n}))\r\n","import AlertErrorIcon from '@resources/assets/icons/AlertErrorIcon.svg?react'\r\nimport AlertInfoIcon from '@resources/assets/icons/AlertInfoIcon.svg?react'\r\nimport AlertSuccessIcon from '@resources/assets/icons/AlertSuccessIcon.svg?react'\r\nimport AlertWarningIcon from '@resources/assets/icons/AlertWarningIcon.svg?react'\r\nimport ChevronDownIcon from '@resources/assets/icons/ChevronDownIcon.svg?react'\r\nimport CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\nimport EyeIcon from '@resources/assets/icons/EyeIcon.svg?react'\r\nimport EyeSlashIcon from '@resources/assets/icons/EyeSlashIcon.svg?react'\r\nimport SpinnerIcon from '@resources/assets/icons/SpinnerIcon.svg?react'\r\n\r\nexport { SpinnerIcon }\r\n\r\nexport const IconRegistry = {\r\n AlertErrorIcon,\r\n AlertInfoIcon,\r\n AlertSuccessIcon,\r\n AlertWarningIcon,\r\n ChevronDownIcon,\r\n CloseIcon,\r\n EyeIcon,\r\n EyeSlashIcon,\r\n SpinnerIcon,\r\n} as const\r\n","import { type FC } from 'react'\r\nimport { Tooltip } from '@components/overlay/tooltip'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { INFO_BUBBLE_STYLES } from '@components/data-display/info-bubble/InfoBubble.styles'\r\nimport { IconRegistry } from '@resources/Icons'\r\n\r\nimport type { InfoBubbleProps } from '@components/data-display/info-bubble/InfoBubble.props'\r\n\r\n/**\r\n * InfoBubble\r\n *\r\n * An info icon with an attached tooltip. Unlike the regular `Tooltip`, the\r\n * tooltip is **not** disabled on mobile — users can tap the icon to read the\r\n * information on touch devices.\r\n *\r\n * @example\r\n * ```tsx\r\n * <InfoBubble label=\"This field is required for compliance.\" />\r\n * ```\r\n *\r\n * @example\r\n * ```tsx\r\n * <InfoBubble label=\"Detailed explanation\" placement=\"right\" withArrow={false} />\r\n * ```\r\n */\r\nconst InfoBubble: FC<InfoBubbleProps> = ({\r\n label,\r\n placement = 'top',\r\n width = 200,\r\n withArrow = true,\r\n}) => {\r\n return (\r\n <Tooltip\r\n label={label}\r\n placement={placement}\r\n width={width}\r\n withArrow={withArrow}\r\n inline={true}\r\n hideOnClick={false}\r\n disableOnMobile={false}\r\n >\r\n <button\r\n type={'button'}\r\n className={INFO_BUBBLE_STYLES.trigger}\r\n aria-label={label}\r\n tabIndex={0}\r\n >\r\n <Icon\r\n icon={IconRegistry.AlertInfoIcon}\r\n size={'sm'}\r\n strokeColor={'textSecondary'}\r\n />\r\n </button>\r\n </Tooltip>\r\n )\r\n}\r\n\r\nInfoBubble.displayName = 'InfoBubble'\r\n\r\nexport default InfoBubble\r\n","import { keyframes } from '@aurora-ds/theme'\r\n\r\nexport const spinAnimation = keyframes({\r\n '0%': { transform: 'rotate(0deg)' },\r\n '100%': { transform: 'rotate(360deg)' },\r\n})\r\n\r\nexport const skeletonShimmerAnimation = keyframes({\r\n '0%': { backgroundPosition: '100% 50%' },\r\n '100%': { backgroundPosition: '0% 50%' },\r\n})\r\n","import { type CompoundVariant, type StyleWithPseudos } from '@aurora-ds/theme'\r\n\r\nimport type { ButtonColor, ButtonVariant } from '@components/actions/button/button.types'\r\nimport type { ButtonIntentMap } from '@components/actions/_common/buttonIntent.types'\r\n\r\nconst APPEARANCES: ButtonVariant[] = ['contained', 'outlined', 'text']\r\n\r\nexport const buildActionButtonVariantBase = (theme: {\r\n colors: Record<string, string>\r\n shadows: Record<string, string>\r\n transition: Record<string, string>\r\n opacity: Record<string, number>\r\n radius: Record<string, string>\r\n}): StyleWithPseudos => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n border: '1px solid transparent',\r\n borderRadius: theme.radius.md,\r\n fontFamily: 'inherit',\r\n userSelect: 'none',\r\n cursor: 'pointer',\r\n outline: 'none',\r\n transition: `background-color ${theme.transition.fast}, border-color ${theme.transition.fast}, color ${theme.transition.fast}, box-shadow ${theme.transition.fast}`,\r\n ':focus-visible': { boxShadow: theme.shadows.focus },\r\n ':disabled': { cursor: 'not-allowed', opacity: theme.opacity.high, boxShadow: 'none' },\r\n})\r\n\r\nexport const buildActionButtonCompoundVariants = (theme: {\r\n colors: Record<string, string>\r\n shadows: Record<string, string>\r\n}): CompoundVariant<{ color: Record<ButtonColor, StyleWithPseudos>; variant: Record<ButtonVariant, StyleWithPseudos> }>[] => {\r\n const c = theme.colors\r\n\r\n const intents: ButtonIntentMap = {\r\n primary: {\r\n main: c.primaryMain, hover: c.primaryHover, active: c.primaryActive,\r\n on: c.primaryOn, subtle: c.primarySubtle, subtleHover: c.primarySubtleHover, subtleActive: c.primarySubtleActive,\r\n fg: c.primaryMain, fgHover: c.primaryHover, border: c.primaryMain,\r\n },\r\n secondary: {\r\n main: c.secondaryMain, hover: c.secondaryHover, active: c.secondaryActive,\r\n on: c.secondaryOn, subtle: c.secondarySubtle, subtleHover: c.secondarySubtleHover, subtleActive: c.secondarySubtleActive,\r\n fg: c.secondaryOn, fgHover: c.secondaryOn, border: c.borderStrong,\r\n },\r\n neutral: {\r\n main: c.defaultMain, hover: c.defaultHover, active: c.defaultActive,\r\n on: c.textInverse, subtle: c.defaultSubtle, subtleHover: c.defaultSubtleHover, subtleActive: c.defaultSubtleActive,\r\n fg: c.defaultMain, fgHover: c.defaultHover, border: c.defaultMain,\r\n },\r\n info: {\r\n main: c.infoMain, hover: c.infoHover, active: c.infoActive,\r\n on: c.infoOn, subtle: c.infoSubtle, subtleHover: c.infoSubtleHover, subtleActive: c.infoSubtleActive,\r\n fg: c.infoMain, fgHover: c.infoHover, border: c.infoMain,\r\n },\r\n success: {\r\n main: c.successMain, hover: c.successHover, active: c.successActive,\r\n on: c.successOn, subtle: c.successSubtle, subtleHover: c.successSubtleHover, subtleActive: c.successSubtleActive,\r\n fg: c.successMain, fgHover: c.successHover, border: c.successMain,\r\n },\r\n warning: {\r\n main: c.warningMain, hover: c.warningHover, active: c.warningActive,\r\n on: c.warningOn, subtle: c.warningSubtle, subtleHover: c.warningSubtleHover, subtleActive: c.warningSubtleActive,\r\n fg: c.warningMain, fgHover: c.warningHover, border: c.warningMain,\r\n },\r\n error: {\r\n main: c.errorMain, hover: c.errorHover, active: c.errorActive,\r\n on: c.errorOn, subtle: c.errorSubtle, subtleHover: c.errorSubtleHover, subtleActive: c.errorSubtleActive,\r\n fg: c.errorMain, fgHover: c.errorHover, border: c.errorMain,\r\n },\r\n }\r\n\r\n const appearanceStyles = (intent: ButtonIntentMap[ButtonColor], appearance: ButtonVariant): StyleWithPseudos => {\r\n if (appearance === 'contained') {\r\n return {\r\n backgroundColor: intent.main,\r\n borderColor: intent.main,\r\n color: intent.on,\r\n boxShadow: theme.shadows.xs,\r\n ':hover:not(:disabled)': { backgroundColor: intent.hover, borderColor: intent.hover, boxShadow: theme.shadows.sm },\r\n ':active:not(:disabled)': { backgroundColor: intent.active, borderColor: intent.active, boxShadow: theme.shadows.none },\r\n }\r\n }\r\n\r\n if (appearance === 'outlined') {\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: intent.border,\r\n color: intent.fg,\r\n ':hover:not(:disabled)': { backgroundColor: intent.subtleHover, color: intent.fgHover },\r\n ':active:not(:disabled)': { backgroundColor: intent.subtleActive, borderColor: intent.active, color: intent.active },\r\n }\r\n }\r\n\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: 'transparent',\r\n color: intent.fg,\r\n ':hover:not(:disabled)': { backgroundColor: intent.subtleHover, color: intent.fgHover },\r\n ':active:not(:disabled)': { backgroundColor: intent.subtleActive, color: intent.active },\r\n }\r\n }\r\n\r\n return (Object.keys(intents) as ButtonColor[]).flatMap((color) =>\r\n APPEARANCES.map((appearance) => ({\r\n color,\r\n variant: appearance,\r\n styles: appearanceStyles(intents[color], appearance),\r\n }))\r\n ) as CompoundVariant<{ color: Record<ButtonColor, StyleWithPseudos>; variant: Record<ButtonVariant, StyleWithPseudos> }>[]\r\n}\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nimport { spinAnimation } from '@constants/animation.constants'\r\nimport { buildActionButtonCompoundVariants, buildActionButtonVariantBase } from '@components/actions/_common/buttonVariants.styles'\r\n\r\nexport const BUTTON_VARIANTS = createVariants((theme) => ({\r\n base: buildActionButtonVariantBase(theme),\r\n variants: {\r\n size: {\r\n sm: { height: '2rem', padding: `0 ${theme.spacing.sm}`, fontSize: theme.fontSize.xs },\r\n md: { height: '2.5rem', padding: `0 ${theme.spacing.md}`, fontSize: theme.fontSize.sm },\r\n lg: { height: '3rem', padding: `0 ${theme.spacing.lg}`, fontSize: theme.fontSize.md },\r\n },\r\n // Appearance/color styling is provided entirely by compoundVariants.\r\n variant: { contained: {}, outlined: {}, text: {} },\r\n color: { primary: {}, secondary: {}, neutral: {}, info: {}, success: {}, warning: {}, error: {} },\r\n },\r\n defaultVariants: { size: 'md', variant: 'contained', color: 'primary' },\r\n compoundVariants: buildActionButtonCompoundVariants(theme),\r\n}), { id: 'button' })\r\n\r\nexport const BUTTON_STYLES = createStyles({\r\n /** Inner wrapper holding icons + label, centered by the button. */\r\n content: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: '0.5em',\r\n },\r\n /** Hidden (but keeps width) while loading. */\r\n contentHidden: { visibility: 'hidden' },\r\n /** Centers the spinner icon over the button content while loading. */\r\n spinnerWrap: {\r\n position: 'absolute',\r\n inset: 0,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n /** Spinning animation applied to the SpinnerIcon wrapper. */\r\n spinnerIcon: {\r\n animation: `${spinAnimation} 0.75s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n}, { id: 'button-extra' })\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { SpinnerIcon } from '@resources/Icons'\r\nimport { BUTTON_STYLES, BUTTON_VARIANTS } from '@components/actions/button/Button.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { ButtonProps } from '@components/actions/button/Button.props'\r\nimport type { ButtonSize } from '@components/actions/button/button.types'\r\nimport type { FC } from 'react'\r\n\r\n/** Maps the button size to a Text font-size token so the label scales with the button. */\r\nconst LABEL_FONT_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'xs',\r\n md: 'sm',\r\n lg: 'md',\r\n}\r\n\r\n/** Maps the button size to an Icon size token. */\r\nconst ICON_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/**\r\n * Theme-aware button built on `createVariants`.\r\n *\r\n * @example <Button onClick={save}>Save</Button>\r\n * @example <Button variant='outlined' color='error' startIcon={IconRegistry.CloseIcon}>Delete</Button>\r\n * @example <Button color='success' isLoading width='100%'>Submitting…</Button>\r\n */\r\nconst Button: FC<ButtonProps> = (\r\n {\r\n ref,\r\n variant = 'contained',\r\n color = 'primary',\r\n size = 'md',\r\n width,\r\n flexGrow,\r\n flexShrink,\r\n isLoading = false,\r\n startIcon: StartIcon,\r\n endIcon: EndIcon,\r\n children,\r\n className,\r\n type = 'button',\r\n disabled,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const isDisabled = disabled || isLoading\r\n const iconSize = ICON_SIZE[size]\r\n\r\n const rootClassName = BUTTON_VARIANTS({ variant, color, size }, className)\r\n const mergedStyle = {\r\n ...style,\r\n ...(width !== undefined ? { width } : {}),\r\n ...(flexGrow !== undefined ? { flexGrow } : {}),\r\n ...(flexShrink !== undefined ? { flexShrink } : {}),\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type={type}\r\n className={rootClassName}\r\n disabled={isDisabled}\r\n aria-busy={isLoading || undefined}\r\n style={mergedStyle}\r\n {...rest}\r\n >\r\n {isLoading && (\r\n <span className={BUTTON_STYLES.spinnerWrap}>\r\n <Icon\r\n icon={SpinnerIcon}\r\n size={iconSize}\r\n className={BUTTON_STYLES.spinnerIcon}\r\n />\r\n </span>\r\n )}\r\n\r\n <span className={cx(BUTTON_STYLES.content, isLoading && BUTTON_STYLES.contentHidden)}>\r\n {StartIcon && (\r\n <Icon\r\n icon={StartIcon}\r\n size={iconSize}\r\n />\r\n )}\r\n\r\n {children !== undefined && children !== null && (\r\n <Text\r\n variant={'span'}\r\n fontSize={LABEL_FONT_SIZE[size]}\r\n fontWeight={'medium'}\r\n lineHeight={'none'}\r\n >\r\n {children}\r\n </Text>\r\n )}\r\n\r\n {EndIcon && (\r\n <Icon\r\n icon={EndIcon}\r\n size={iconSize}\r\n />\r\n )}\r\n </span>\r\n </button>\r\n )\r\n}\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport default Button\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nimport { spinAnimation } from '@constants/animation.constants'\r\nimport { buildActionButtonCompoundVariants, buildActionButtonVariantBase } from '@components/actions/_common/buttonVariants.styles'\r\n\r\nexport const ICON_BUTTON_VARIANTS = createVariants((theme) => ({\r\n base: buildActionButtonVariantBase(theme),\r\n variants: {\r\n size: {\r\n sm: { width: '2rem', height: '2rem', padding: '0' },\r\n md: { width: '2.5rem', height: '2.5rem', padding: '0' },\r\n lg: { width: '3rem', height: '3rem', padding: '0' },\r\n },\r\n variant: { contained: {}, outlined: {}, text: {} },\r\n color: { primary: {}, secondary: {}, neutral: {}, info: {}, success: {}, warning: {}, error: {} },\r\n },\r\n defaultVariants: { size: 'md', variant: 'contained', color: 'primary' },\r\n compoundVariants: buildActionButtonCompoundVariants(theme),\r\n}), { id: 'icon-button' })\r\n\r\nexport const ICON_BUTTON_STYLES = createStyles({\r\n /** Spinning animation applied to the SpinnerIcon. */\r\n spinnerIcon: {\r\n animation: `${spinAnimation} 0.75s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n /** Hidden (but keeps size) while loading. */\r\n iconHidden: { visibility: 'hidden' },\r\n /** Centers the spinner icon absolutely over the button while loading. */\r\n spinnerWrap: {\r\n position: 'absolute',\r\n inset: 0,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}, { id: 'icon-button-extra' })\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { SpinnerIcon } from '@resources/Icons'\r\nimport { ICON_BUTTON_STYLES, ICON_BUTTON_VARIANTS } from '@components/actions/icon-button/IconButton.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { ButtonSize } from '@components/actions/button/button.types'\r\nimport type { IconButtonProps } from '@components/actions/icon-button/IconButton.props'\r\nimport type { FC } from 'react'\r\n\r\n/** Maps the icon-button size to an Icon size token. */\r\nconst ICON_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/**\r\n * Square icon-only button.\r\n * `ariaLabel` is mandatory since there is no visible text.\r\n *\r\n * @example <IconButton icon={CloseIcon} ariaLabel={t('common.close')} />\r\n * @example <IconButton icon={DeleteIcon} ariaLabel={t('actions.delete')} variant='outlined' color='error' />\r\n * @example <IconButton icon={SaveIcon} ariaLabel={t('actions.save')} isLoading />\r\n */\r\nconst IconButton: FC<IconButtonProps> = (\r\n {\r\n ref,\r\n icon: IconComponent,\r\n ariaLabel,\r\n variant = 'contained',\r\n color = 'primary',\r\n size = 'md',\r\n isLoading = false,\r\n className,\r\n type = 'button',\r\n disabled,\r\n ...rest\r\n }\r\n) => {\r\n const isDisabled = disabled || isLoading\r\n const iconSize = ICON_SIZE[size]\r\n\r\n const rootClassName = ICON_BUTTON_VARIANTS(\r\n { variant, color, size },\r\n className\r\n )\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type={type}\r\n className={rootClassName}\r\n disabled={isDisabled}\r\n aria-label={ariaLabel}\r\n aria-busy={isLoading || undefined}\r\n {...rest}\r\n >\r\n {isLoading && (\r\n <span className={ICON_BUTTON_STYLES.spinnerWrap}>\r\n <Icon\r\n icon={SpinnerIcon}\r\n size={iconSize}\r\n className={ICON_BUTTON_STYLES.spinnerIcon}\r\n />\r\n </span>\r\n )}\r\n\r\n <Icon\r\n icon={IconComponent}\r\n size={iconSize}\r\n className={cx(isLoading && ICON_BUTTON_STYLES.iconHidden)}\r\n />\r\n </button>\r\n )\r\n}\r\n\r\nIconButton.displayName = 'IconButton'\r\n\r\nexport default IconButton\r\n","import type { FC, FormEvent } from 'react'\r\n\r\nimport type { FormProps } from '@components/forms/form/Form.props'\r\n\r\n/**\r\n * Thin wrapper around `<form>`. Prevents the default browser submit and\r\n * delegates to the `onSubmit` callback.\r\n *\r\n * @example\r\n * <Form onSubmit={handleSubmit}>\r\n * <TextField label=\"Email\" />\r\n * <Button type=\"submit\">Send</Button>\r\n * </Form>\r\n */\r\nconst Form: FC<FormProps> = ({\r\n children,\r\n onSubmit,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n}) => {\r\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n onSubmit(event)\r\n }\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n noValidate\r\n >\r\n {children}\r\n </form>\r\n )\r\n}\r\n\r\nForm.displayName = 'Form'\r\n\r\nexport default Form\r\n","import { type CompoundVariant, createStyles, createVariants, type StyleWithPseudos } from '@aurora-ds/theme'\r\n\r\nimport type { SwitchColor } from '@components/forms/switch/switch.types'\r\n\r\n// sm → track 2rem × 1.125rem | thumb 0.875rem | checked left: 1rem\r\n// md → track 2.75rem × 1.5rem | thumb 1.25rem | checked left: 1.375rem\r\n// lg → track 3.5rem × 2rem | thumb 1.75rem | checked left: 1.625rem\r\n\r\nexport const SWITCH_TRACK_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n const colorTokens: Record<SwitchColor, string> = {\r\n primary: c.primaryMain,\r\n success: c.successMain,\r\n error: c.errorMain,\r\n warning: c.warningMain,\r\n info: c.infoMain,\r\n neutral: c.defaultMain,\r\n }\r\n\r\n const compoundVariants = (Object.keys(colorTokens) as SwitchColor[]).map((color) => ({\r\n color,\r\n checked: 'true' as const,\r\n disabled: 'false' as const,\r\n styles: { backgroundColor: colorTokens[color] },\r\n })) as CompoundVariant<{\r\n color: Record<SwitchColor, StyleWithPseudos>\r\n size: Record<'sm' | 'md' | 'lg', StyleWithPseudos>\r\n checked: Record<'true' | 'false', StyleWithPseudos>\r\n disabled: Record<'true' | 'false', StyleWithPseudos>\r\n }>[]\r\n\r\n return {\r\n base: {\r\n position: 'relative' as const,\r\n display: 'inline-block',\r\n flexShrink: 0,\r\n borderRadius: theme.radius.full,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, box-shadow ${theme.transition.fast}`,\r\n },\r\n variants: {\r\n size: {\r\n sm: { width: '2rem', height: '1.125rem' },\r\n md: { width: '2.75rem', height: '1.5rem' },\r\n lg: { width: '3.5rem', height: '2rem' },\r\n },\r\n color: {\r\n primary: {}, success: {}, error: {}, warning: {}, info: {}, neutral: {},\r\n },\r\n checked: { true: {}, false: {} },\r\n disabled: { true: { cursor: 'not-allowed' }, false: {} },\r\n },\r\n defaultVariants: { size: 'md', color: 'primary', checked: 'false', disabled: 'false' },\r\n compoundVariants,\r\n }\r\n}, { id: 'switch-track' })\r\n\r\nexport const SWITCH_THUMB_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n position: 'absolute' as const,\r\n top: '0.125rem',\r\n left: '0.125rem',\r\n borderRadius: theme.radius.full,\r\n backgroundColor: theme.colors.textInverse,\r\n boxShadow: theme.shadows.xs,\r\n transition: `left ${theme.transition.fast}`,\r\n pointerEvents: 'none' as const,\r\n },\r\n variants: {\r\n size: {\r\n sm: { width: '0.875rem', height: '0.875rem' },\r\n md: { width: '1.25rem', height: '1.25rem' },\r\n lg: { width: '1.75rem', height: '1.75rem' },\r\n },\r\n checked: { true: {}, false: {} },\r\n },\r\n defaultVariants: { size: 'md', checked: 'false' },\r\n compoundVariants: [\r\n { size: 'sm', checked: 'true', styles: { left: '1rem' } },\r\n { size: 'md', checked: 'true', styles: { left: '1.375rem' } },\r\n { size: 'lg', checked: 'true', styles: { left: '1.625rem' } },\r\n ],\r\n}), { id: 'switch-thumb' })\r\n\r\nexport const SWITCH_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n cursor: 'pointer',\r\n userSelect: 'none',\r\n '&[data-disabled]': {\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n },\r\n input: {\r\n position: 'absolute',\r\n width: '1px',\r\n height: '1px',\r\n padding: '0',\r\n margin: '-1px',\r\n overflow: 'hidden',\r\n clip: 'rect(0, 0, 0, 0)',\r\n whiteSpace: 'nowrap',\r\n borderWidth: '0',\r\n },\r\n}), { id: 'switch-extra' })\r\n","import { useCallback, useRef, useState } from 'react'\r\n\r\nimport type {\r\n UseControllableStateOptions,\r\n UseControllableStateResult,\r\n} from '@hooks/common/use-controllable-state/useControllableState.types'\r\n\r\n/**\r\n * Unifies controlled and uncontrolled value handling.\r\n *\r\n * - When `value` is provided the hook is controlled: the returned value mirrors\r\n * it and internal state is never used to render.\r\n * - Otherwise it is uncontrolled: state starts at `defaultValue` and updates\r\n * internally.\r\n *\r\n * In both modes `setValue` calls `onChange` with the next value, so consumers\r\n * have a single code path regardless of mode.\r\n *\r\n * @example\r\n * const [value, setValue] = useControllableState({ value, defaultValue: '', onChange })\r\n */\r\nexport const useControllableState = <T>({\r\n value,\r\n defaultValue,\r\n onChange,\r\n}: UseControllableStateOptions<T>): UseControllableStateResult<T> => {\r\n const isControlled = value !== undefined\r\n const [internalValue, setInternalValue] = useState<T>(defaultValue)\r\n\r\n const onChangeRef = useRef(onChange)\r\n onChangeRef.current = onChange\r\n\r\n const resolvedValue = isControlled ? (value as T) : internalValue\r\n\r\n const setValue = useCallback(\r\n (next: T) => {\r\n if (!isControlled) {\r\n setInternalValue(next)\r\n }\r\n onChangeRef.current?.(next)\r\n },\r\n [isControlled]\r\n )\r\n\r\n return [resolvedValue, setValue]\r\n}\r\n","import { ChangeEvent, InputHTMLAttributes, useCallback, useId } from 'react'\r\n\r\nimport { useControllableState } from '@hooks/common/use-controllable-state/useControllableState'\r\n\r\nimport type { SwitchProps } from '@components/forms/switch/Switch.props'\r\n\r\ntype UseSwitchParams = Pick<SwitchProps, 'id' | 'checked' | 'defaultChecked' | 'onChange'>\r\n\r\ntype UseSwitchReturn = {\r\n /** Resolved id (provided or generated) wiring the label to the input. */\r\n switchId: string\r\n /** Whether the switch is visually checked. */\r\n isChecked: boolean\r\n /** Props to spread on the native input — controlled or uncontrolled, never both. */\r\n inputValueProps: Pick<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'onChange'>\r\n}\r\n\r\n/**\r\n * Business logic for the Switch component: id resolution and\r\n * controlled/uncontrolled checked state handling.\r\n */\r\nexport const useSwitch = ({ id, checked, defaultChecked, onChange }: UseSwitchParams): UseSwitchReturn => {\r\n const generatedId = useId()\r\n const switchId = id ?? generatedId\r\n\r\n const [isChecked, setChecked] = useControllableState<boolean>({\r\n value: checked,\r\n defaultValue: defaultChecked ?? false,\r\n })\r\n\r\n const handleChange = useCallback(\r\n (event: ChangeEvent<HTMLInputElement>) => {\r\n setChecked(event.target.checked)\r\n onChange?.(event)\r\n },\r\n [setChecked, onChange]\r\n )\r\n\r\n const inputValueProps = checked !== undefined\r\n ? { checked, onChange: handleChange }\r\n : { defaultChecked: defaultChecked ?? false, onChange: handleChange }\r\n\r\n return { switchId, isChecked, inputValueProps }\r\n}\r\n","import { type FC } from 'react'\r\n\r\nimport {\r\n SWITCH_STYLES,\r\n SWITCH_THUMB_VARIANTS,\r\n SWITCH_TRACK_VARIANTS,\r\n} from '@components/forms/switch/Switch.styles'\r\nimport { Text } from '@components/foundation/text'\r\nimport { useSwitch } from '@components/forms/switch/utils/useSwitch.utils'\r\n\r\nimport type { SwitchProps } from '@components/forms/switch/Switch.props'\r\n\r\n/**\r\n * Accessible toggle switch built on `<input type=\"checkbox\" role=\"switch\">`.\r\n *\r\n * Supports controlled (`checked` + `onChange`) and uncontrolled (`defaultChecked`) modes.\r\n *\r\n * @example <Switch label='Enable notifications' defaultChecked />\r\n * @example <Switch checked={isEnabled} onChange={(e) => setEnabled(e.target.checked)} color='success' size='lg' />\r\n */\r\nconst Switch: FC<SwitchProps> = (\r\n {\r\n ref,\r\n label,\r\n size = 'md',\r\n color = 'primary',\r\n id,\r\n checked,\r\n defaultChecked,\r\n disabled,\r\n onChange,\r\n ...rest\r\n }\r\n) => {\r\n const { switchId, isChecked, inputValueProps } = useSwitch({ id, checked, defaultChecked, onChange })\r\n const checkedVariant = isChecked ? 'true' : 'false'\r\n\r\n return (\r\n <label\r\n htmlFor={switchId}\r\n className={SWITCH_STYLES.root}\r\n data-disabled={disabled || undefined}\r\n >\r\n <span className={SWITCH_TRACK_VARIANTS({ size, color, checked: checkedVariant, disabled: disabled ? 'true' : 'false' })}>\r\n <input\r\n ref={ref}\r\n id={switchId}\r\n type={'checkbox'}\r\n role={'switch'}\r\n disabled={disabled}\r\n className={SWITCH_STYLES.input}\r\n {...inputValueProps}\r\n {...rest}\r\n />\r\n <span\r\n aria-hidden={'true'}\r\n className={SWITCH_THUMB_VARIANTS({ size, checked: checkedVariant })}\r\n />\r\n </span>\r\n\r\n {label !== undefined && (\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n </label>\r\n )\r\n}\r\n\r\nSwitch.displayName = 'Switch'\r\n\r\nexport default Switch\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { BoxStyleProps } from '@components/layout/box/Box.props'\r\n\r\nexport const BOX_STYLES = createStyles((theme) => ({\r\n root: ({\r\n // Display\r\n display,\r\n // Dimensions\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n // Padding\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n // Margin\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n // Flex / grid container\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent,\r\n gridTemplateColumns, gridTemplateRows,\r\n // Flex / grid item\r\n flex, flexGrow, flexShrink, flexBasis,\r\n alignSelf, justifySelf, gridColumn, gridRow, order,\r\n // Position\r\n position, top, right, bottom, left, inset, zIndex,\r\n // Overflow\r\n overflow, overflowX, overflowY,\r\n // Appearance\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n }: BoxStyleProps) => {\r\n // Local casts: our token types are structurally identical to the aurora theme sub-objects.\r\n const sp = theme.spacing as Record<keyof Theme['spacing'], string>\r\n const cl = theme.colors as Record<keyof Theme['colors'], string>\r\n const rd = theme.radius as Record<keyof Theme['radius'], string>\r\n const sh = theme.shadows as Record<keyof Theme['shadows'], string>\r\n const zi = theme.zIndex as Record<keyof Theme['zIndex'], number>\r\n\r\n return {\r\n boxSizing: 'border-box' as const,\r\n\r\n // Display\r\n ...(display !== undefined && { display }),\r\n\r\n // Dimensions\r\n ...(width !== undefined && { width }),\r\n ...(height !== undefined && { height }),\r\n ...(minWidth !== undefined && { minWidth }),\r\n ...(maxWidth !== undefined && { maxWidth }),\r\n ...(minHeight !== undefined && { minHeight }),\r\n ...(maxHeight !== undefined && { maxHeight }),\r\n\r\n // Padding — shorthands first, explicit per-side props override (last key wins).\r\n ...(px !== undefined && { paddingLeft: sp[px], paddingRight: sp[px] }),\r\n ...(py !== undefined && { paddingTop: sp[py], paddingBottom: sp[py] }),\r\n ...(padding !== undefined && { padding: sp[padding] }),\r\n ...(paddingTop !== undefined && { paddingTop: sp[paddingTop] }),\r\n ...(paddingRight !== undefined && { paddingRight: sp[paddingRight] }),\r\n ...(paddingBottom !== undefined && { paddingBottom: sp[paddingBottom] }),\r\n ...(paddingLeft !== undefined && { paddingLeft: sp[paddingLeft] }),\r\n\r\n // Margin\r\n ...(mx !== undefined && { marginLeft: sp[mx], marginRight: sp[mx] }),\r\n ...(my !== undefined && { marginTop: sp[my], marginBottom: sp[my] }),\r\n ...(margin !== undefined && { margin: sp[margin] }),\r\n ...(marginTop !== undefined && { marginTop: sp[marginTop] }),\r\n ...(marginRight !== undefined && { marginRight: sp[marginRight] }),\r\n ...(marginBottom !== undefined && { marginBottom: sp[marginBottom] }),\r\n ...(marginLeft !== undefined && { marginLeft: sp[marginLeft] }),\r\n\r\n // Flex / grid container\r\n ...(gap !== undefined && { gap: sp[gap] }),\r\n ...(rowGap !== undefined && { rowGap: sp[rowGap] }),\r\n ...(columnGap !== undefined && { columnGap: sp[columnGap] }),\r\n ...(flexDirection !== undefined && { flexDirection }),\r\n ...(flexWrap !== undefined && { flexWrap }),\r\n ...(alignItems !== undefined && { alignItems }),\r\n ...(justifyContent !== undefined && { justifyContent }),\r\n ...(gridTemplateColumns !== undefined && { gridTemplateColumns }),\r\n ...(gridTemplateRows !== undefined && { gridTemplateRows }),\r\n\r\n // Flex / grid item\r\n ...(flex !== undefined && { flex }),\r\n ...(flexGrow !== undefined && { flexGrow }),\r\n ...(flexShrink !== undefined && { flexShrink }),\r\n ...(flexBasis !== undefined && { flexBasis }),\r\n ...(alignSelf !== undefined && { alignSelf }),\r\n ...(justifySelf !== undefined && { justifySelf }),\r\n ...(gridColumn !== undefined && { gridColumn }),\r\n ...(gridRow !== undefined && { gridRow }),\r\n ...(order !== undefined && { order }),\r\n\r\n // Position\r\n ...(position !== undefined && { position }),\r\n ...(top !== undefined && { top }),\r\n ...(right !== undefined && { right }),\r\n ...(bottom !== undefined && { bottom }),\r\n ...(left !== undefined && { left }),\r\n ...(inset !== undefined && { inset }),\r\n ...(zIndex !== undefined && { zIndex: zi[zIndex] }),\r\n\r\n // Overflow\r\n ...(overflow !== undefined && { overflow }),\r\n ...(overflowX !== undefined && { overflowX }),\r\n ...(overflowY !== undefined && { overflowY }),\r\n\r\n // Appearance\r\n ...(backgroundColor !== undefined && { backgroundColor: cl[backgroundColor] }),\r\n ...(color !== undefined && { color: cl[color] }),\r\n ...(borderRadius !== undefined && { borderRadius: rd[borderRadius] }),\r\n ...(boxShadow !== undefined && { boxShadow: sh[boxShadow] }),\r\n ...(border !== undefined && { border }),\r\n ...(borderColor !== undefined && { borderColor: cl[borderColor] }),\r\n ...(borderWidth !== undefined && { borderWidth }),\r\n ...(borderStyle !== undefined && { borderStyle }),\r\n ...(textAlign !== undefined && { textAlign }),\r\n ...(cursor !== undefined && { cursor }),\r\n ...(opacity !== undefined && { opacity }),\r\n }\r\n },\r\n}))\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { BOX_STYLES } from '@components/layout/box/Box.styles'\r\n\r\nimport type { BoxProps } from '@components/layout/box/Box.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A plain `div` enriched with convenient, token-aware style props.\r\n *\r\n * Spacing / color / radius / shadow / z-index props accept theme tokens only\r\n * (e.g. `padding='md'`, `backgroundColor='surfacePaper'`).\r\n * Dimensions and position offsets accept any CSS value.\r\n * All native `div` attributes are forwarded, and `ref` points to the element.\r\n *\r\n * @example <Box padding='md' backgroundColor='surfacePaper' borderRadius='lg'>Content</Box>\r\n * @example <Box display='flex' gap='sm' alignItems='center'>…</Box>\r\n */\r\nconst Box: FC<BoxProps> = (\r\n {\r\n ref,\r\n display,\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent, gridTemplateColumns, gridTemplateRows,\r\n flex, flexGrow, flexShrink, flexBasis, alignSelf, justifySelf, gridColumn, gridRow, order,\r\n position, top, right, bottom, left, inset, zIndex,\r\n overflow, overflowX, overflowY,\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n style,\r\n className,\r\n children,\r\n ...rest\r\n }\r\n) => {\r\n const generatedClassName = BOX_STYLES.root({\r\n display,\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent, gridTemplateColumns, gridTemplateRows,\r\n flex, flexGrow, flexShrink, flexBasis, alignSelf, justifySelf, gridColumn, gridRow, order,\r\n position, top, right, bottom, left, inset, zIndex,\r\n overflow, overflowX, overflowY,\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n })\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cx(generatedClassName, className)}\r\n style={style}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nBox.displayName = 'Box'\r\n\r\nexport default Box\r\n","import { Box } from '@components/layout/box'\r\n\r\nimport type { StackProps } from '@components/layout/stack/Stack.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A flex `Box` for laying out children along a single axis.\r\n *\r\n * Defaults to `display: flex` and a vertical (`column`) direction. Every\r\n * `Box` style prop is available (`gap`, `alignItems`, `justifyContent`, …),\r\n * and `display` can still be overridden (e.g. `'inline-flex'`).\r\n *\r\n * @example <Stack gap='sm'>…</Stack>\r\n * @example <Stack flexDirection='row' gap='md' alignItems='center' justifyContent='space-between'>…</Stack>\r\n */\r\nconst Stack: FC<StackProps> = (\r\n {\r\n flexDirection = 'row',\r\n display = 'flex',\r\n gap = 'sm',\r\n ...rest\r\n }\r\n) => (\r\n <Box\r\n display={display}\r\n flexDirection={flexDirection}\r\n gap={gap}\r\n {...rest}\r\n />\r\n)\r\n\r\nStack.displayName = 'Stack'\r\n\r\nexport default Stack\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nexport const TEXTFIELD_WRAPPER_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n base: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n boxSizing: 'border-box',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderRadius: theme.radius.md,\r\n backgroundColor: c.surfacePaper,\r\n transition: `border-color ${theme.transition.fast}`,\r\n '&[data-disabled]': {\r\n opacity: theme.opacity.high,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n variants: {\r\n size: {\r\n // Font-size is set on the wrapper so the native input inherits it via `fontSize: 'inherit'`.\r\n sm: { height: '2rem', paddingLeft: theme.spacing.sm, paddingRight: theme.spacing.xs, fontSize: theme.fontSize.xs },\r\n md: { height: '2.5rem', paddingLeft: theme.spacing.sm, paddingRight: theme.spacing.xs, fontSize: theme.fontSize.sm },\r\n lg: { height: '3rem', paddingLeft: theme.spacing.md, paddingRight: theme.spacing.sm, fontSize: theme.fontSize.md },\r\n },\r\n status: {\r\n default: {\r\n borderColor: c.borderMain,\r\n ':hover:not(:focus-within)': { borderColor: c.borderStrong },\r\n ':focus-within': { borderColor: c.primaryMain },\r\n },\r\n error: {\r\n borderColor: c.errorMain,\r\n ':focus-within': { borderColor: c.errorMain },\r\n },\r\n success: {\r\n borderColor: c.successMain,\r\n ':focus-within': { borderColor: c.successMain },\r\n },\r\n warning: {\r\n borderColor: c.warningMain,\r\n ':focus-within': { borderColor: c.warningMain },\r\n },\r\n },\r\n },\r\n defaultVariants: { size: 'md', status: 'default' },\r\n }\r\n}, { id: 'textfield-wrapper' })\r\n\r\nexport const TEXTFIELD_STYLES = createStyles((theme) => ({\r\n /** Visually hidden native input — fills the remaining space inside the wrapper. */\r\n input: {\r\n flex: 1,\r\n minWidth: 0,\r\n border: 'none',\r\n outline: 'none',\r\n background: 'transparent',\r\n color: theme.colors.textPrimary,\r\n fontFamily: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'normal',\r\n padding: '0',\r\n '&::placeholder': { color: theme.colors.textTertiary },\r\n '&:disabled': { cursor: 'not-allowed', color: theme.colors.textDisabled },\r\n },\r\n /** Wrapper for the start icon — aligned with the input baseline. Clickable to focus the input. */\r\n startIconWrap: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n cursor: 'pointer',\r\n },\r\n /** Wrapper for end actions (custom content + optional password toggle). */\r\n endActionWrap: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n gap: theme.spacing['2xs'],\r\n },\r\n}), { id: 'textfield-extra' })\r\n","import { MutableRefObject, Ref, RefCallback, useCallback, useRef } from 'react'\r\n\r\nconst assignRef = <T>(ref: Ref<T> | undefined, node: T | null): void => {\r\n if (typeof ref === 'function') {\r\n ref(node)\r\n } else if (ref != null) {\r\n (ref as MutableRefObject<T | null>).current = node\r\n }\r\n}\r\n\r\n/**\r\n * Merges several refs (callback or object) into a single stable callback ref.\r\n *\r\n * Useful when a component needs an internal ref while still forwarding the\r\n * consumer's `ref`. The returned callback keeps a stable identity across\r\n * renders to avoid detach/attach churn, always assigning to the latest refs.\r\n *\r\n * @example\r\n * const inputRef = useRef<HTMLInputElement | null>(null)\r\n * const mergedRef = useMergedRefs(ref, inputRef)\r\n */\r\nexport const useMergedRefs = <T>(...refs: Array<Ref<T> | undefined>): RefCallback<T> => {\r\n const refsRef = useRef(refs)\r\n refsRef.current = refs\r\n\r\n return useCallback((node: T | null) => {\r\n for (const ref of refsRef.current) {\r\n assignRef(ref, node)\r\n }\r\n }, [])\r\n}\r\n","import { RefCallback, RefObject, useCallback, useId, useRef, useState } from 'react'\r\n\r\nimport { useMergedRefs } from '@hooks/common/use-merged-refs/useMergedRefs'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { TextFieldProps } from '@components/forms/text-field/TextField.props'\r\nimport type { TextFieldSize, TextFieldStatus } from '@components/forms/text-field/textField.types'\r\n\r\n/** Maps field size to an Icon size token for the start icon. */\r\nconst ICON_SIZE_MAP: Record<TextFieldSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/** Maps field size to the password toggle IconButton size. */\r\nconst ICON_BUTTON_SIZE_MAP: Record<TextFieldSize, 'sm' | 'md' | 'lg'> = {\r\n sm: 'sm',\r\n md: 'sm',\r\n lg: 'md',\r\n}\r\n\r\n/** Maps status to a theme color token used for the helper text. */\r\nconst HELPER_COLOR_MAP: Record<TextFieldStatus, keyof Theme['colors']> = {\r\n default: 'textSecondary',\r\n error: 'errorHover',\r\n success: 'successHover',\r\n warning: 'warningHover',\r\n}\r\n\r\ntype UseTextFieldParams = {\r\n id?: string\r\n ref?: TextFieldProps['ref']\r\n type?: TextFieldProps['type']\r\n size: TextFieldSize\r\n status: TextFieldStatus\r\n endAction?: TextFieldProps['endAction']\r\n}\r\n\r\ntype UseTextFieldReturn = {\r\n fieldId: string\r\n helperId: string\r\n inputRef: RefObject<HTMLInputElement | null>\r\n mergedRef: RefCallback<HTMLInputElement>\r\n isPassword: boolean\r\n showPassword: boolean\r\n togglePassword: () => void\r\n resolvedType: TextFieldProps['type']\r\n iconSize: keyof Theme['fontSize']\r\n iconButtonSize: 'sm' | 'md' | 'lg'\r\n helperColor: keyof Theme['colors']\r\n hasEndSection: boolean\r\n focusInput: () => void\r\n}\r\n\r\n/**\r\n * Business logic for the TextField component: id resolution, ref merging,\r\n * password visibility toggling and size/status derived tokens.\r\n */\r\nexport const useTextField = ({\r\n id,\r\n ref,\r\n type,\r\n size,\r\n status,\r\n endAction,\r\n}: UseTextFieldParams): UseTextFieldReturn => {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const helperId = `${fieldId}-helper`\r\n\r\n const inputRef = useRef<HTMLInputElement | null>(null)\r\n const mergedRef = useMergedRefs<HTMLInputElement>(ref, inputRef)\r\n\r\n const [showPassword, setShowPassword] = useState(false)\r\n const isPassword = type === 'password'\r\n const resolvedType = isPassword ? (showPassword ? 'text' : 'password') : type\r\n\r\n const togglePassword = useCallback(() => setShowPassword((prev) => !prev), [])\r\n const focusInput = useCallback(() => inputRef.current?.focus(), [])\r\n\r\n return {\r\n fieldId,\r\n helperId,\r\n inputRef,\r\n mergedRef,\r\n isPassword,\r\n showPassword,\r\n togglePassword,\r\n resolvedType,\r\n iconSize: ICON_SIZE_MAP[size],\r\n iconButtonSize: ICON_BUTTON_SIZE_MAP[size],\r\n helperColor: HELPER_COLOR_MAP[status],\r\n hasEndSection: endAction !== undefined || isPassword,\r\n focusInput,\r\n }\r\n}\r\n","import { FC } from 'react'\r\n\r\nimport EyeIcon from '@resources/assets/icons/EyeIcon.svg?react'\r\nimport EyeSlashIcon from '@resources/assets/icons/EyeSlashIcon.svg?react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { TEXTFIELD_STYLES, TEXTFIELD_WRAPPER_VARIANTS } from '@components/forms/text-field/TextField.styles'\r\nimport { useTextField } from '@components/forms/text-field/utils/useTextField.utils'\r\n\r\nimport type { TextFieldProps } from '@components/forms/text-field/TextField.props'\r\n\r\n/**\r\n * Full-featured text input with label, helper text, icons and end actions.\r\n *\r\n * Supports all native input types. When `type` is `'password'`, a visibility\r\n * toggle is automatically injected as an end action.\r\n *\r\n * @example <TextField label=\"Email\" placeholder=\"you@example.com\" />\r\n * @example <TextField label=\"Password\" type=\"password\" helperText=\"Min. 8 characters.\" />\r\n * @example <TextField label=\"Name\" status=\"error\" helperText=\"This field is required.\" />\r\n * @example <TextField label=\"Search\" startIcon={SearchIcon} endAction={<ClearButton />} />\r\n */\r\nconst TextField: FC<TextFieldProps> = ({\r\n ref,\r\n label,\r\n helperText,\r\n size = 'md',\r\n status = 'default',\r\n startIcon: StartIcon,\r\n endAction,\r\n type,\r\n id,\r\n disabled,\r\n required,\r\n ...rest\r\n}) => {\r\n const {\r\n fieldId,\r\n helperId,\r\n mergedRef,\r\n isPassword,\r\n showPassword,\r\n togglePassword,\r\n resolvedType,\r\n iconSize,\r\n iconButtonSize,\r\n helperColor,\r\n hasEndSection,\r\n focusInput,\r\n } = useTextField({ id, ref, type, size, status, endAction })\r\n\r\n return (\r\n <Stack\r\n flexDirection={'column'}\r\n gap={'xs'}\r\n >\r\n {label !== undefined && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n fontWeight={'medium'}\r\n color={'textSecondary'}\r\n htmlFor={fieldId}\r\n >\r\n {label}\r\n {required && (\r\n <Text\r\n variant={'span'}\r\n color={'errorMain'}\r\n aria-hidden={true}\r\n >\r\n {' *'}\r\n </Text>\r\n )}\r\n </Text>\r\n )}\r\n\r\n <div\r\n className={TEXTFIELD_WRAPPER_VARIANTS({ size, status })}\r\n data-disabled={disabled || undefined}\r\n >\r\n {StartIcon && (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <span\r\n className={TEXTFIELD_STYLES.startIconWrap}\r\n onClick={focusInput}\r\n >\r\n <Icon\r\n icon={StartIcon}\r\n size={iconSize}\r\n strokeColor={'textSecondary'}\r\n />\r\n </span>\r\n )}\r\n\r\n <input\r\n ref={mergedRef}\r\n id={fieldId}\r\n type={resolvedType}\r\n disabled={disabled}\r\n required={required}\r\n aria-required={required || undefined}\r\n aria-invalid={status === 'error' || undefined}\r\n aria-describedby={helperText !== undefined ? helperId : undefined}\r\n className={TEXTFIELD_STYLES.input}\r\n {...rest}\r\n />\r\n\r\n {hasEndSection && (\r\n <span className={TEXTFIELD_STYLES.endActionWrap}>\r\n {endAction}\r\n {isPassword && (\r\n <IconButton\r\n icon={showPassword ? EyeSlashIcon : EyeIcon}\r\n ariaLabel={showPassword ? 'Hide password' : 'Show password'}\r\n variant={'text'}\r\n color={'neutral'}\r\n size={iconButtonSize}\r\n type={'button'}\r\n tabIndex={-1}\r\n onClick={togglePassword}\r\n />\r\n )}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {helperText !== undefined && (\r\n <Text\r\n id={helperId}\r\n variant={'span'}\r\n fontSize={'xs'}\r\n color={helperColor}\r\n >\r\n {helperText}\r\n </Text>\r\n )}\r\n </Stack>\r\n )\r\n}\r\n\r\nTextField.displayName = 'TextField'\r\n\r\nexport default TextField\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_STYLES = createStyles((theme) => ({\r\n backdrop: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n zIndex: theme.zIndex.dropdown - 1,\r\n },\r\n panel: {\r\n position: 'fixed' as const,\r\n zIndex: theme.zIndex.dropdown,\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderRadius: theme.radius.lg,\r\n border: `1px solid ${theme.colors.borderMain}`,\r\n boxShadow: theme.shadows.md,\r\n overflowY: 'auto' as const,\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n },\r\n}), { id: 'menu' })\r\n","import { useEffect, useRef } from 'react'\nimport type { KeyPressMap, UseKeyPressOptions } from '@hooks/common/use-key-press/useKeyPress.types'\n\n/**\n * Listens to keyboard events and dispatches to the matching handler in `keyMap`.\n * A single hook call can handle multiple keys.\n *\n * @example\n * `\ts\n * useKeyPress(\n * { ArrowDown: onDown, ArrowUp: onUp, Enter: onEnter, Escape: onClose },\n * { enabled: isOpen }\n * )\n * `\n */\nexport const useKeyPress = (\n keyMap: KeyPressMap,\n { target, enabled = true }: UseKeyPressOptions = {}\n): void => {\n const mapRef = useRef<KeyPressMap>(keyMap)\n\n useEffect(() => {\n mapRef.current = keyMap\n })\n\n useEffect(() => {\n if (!enabled) {return}\n\n const eventTarget = target ?? document\n const listener = (event: Event): void => {\n const keyboardEvent = event as KeyboardEvent\n const handler = mapRef.current[keyboardEvent.key]\n handler?.(keyboardEvent)\n }\n\n eventTarget.addEventListener('keydown', listener)\n return () => eventTarget.removeEventListener('keydown', listener)\n }, [enabled, target])\n}\n","import { CSSProperties, useCallback, useEffect, useLayoutEffect, useState } from 'react'\nimport type { UseMenuPositionOptions, UseMenuPositionResult } from '@hooks/components/overlay/use-menu-position/useMenuPosition.types'\n\nconst VIEWPORT_MARGIN_PX = 8\n\n/**\n * Computes and continuously updates the `position: fixed` style for a menu panel.\n *\n * Positioning strategy:\n * - Preferred top: anchorBottom + gap (menu opens downward from anchor)\n * - If the menu bottom would exceed the viewport: shift `top` upward so the menu\n * bottom lands at viewportHeight - VIEWPORT_MARGIN_PX. `top` can go above\n * anchor.bottom when the menu is tall, but it never goes off the top of the screen.\n * - Horizontal: clamped so the menu never overflows the left or right viewport edges.\n *\n * Uses a two-pass strategy: first render with `menuHeight = 0` (preferredTop),\n * then a rAF recompute with the actual rendered height to apply the offset.\n */\nexport const useMenuPosition = ({\n anchorEl,\n open,\n menuRef,\n minWidth,\n gap = 4,\n}: UseMenuPositionOptions): UseMenuPositionResult => {\n const [style, setStyle] = useState<CSSProperties>({})\n\n const computePosition = useCallback(() => {\n if (!anchorEl) {return}\n\n const anchor = anchorEl.getBoundingClientRect()\n const menuEl = menuRef.current\n const menuHeight = menuEl?.offsetHeight ?? 0\n const menuWidth = menuEl?.offsetWidth ?? 0\n\n // --- Vertical ---\n const preferredTop = anchor.bottom + gap\n const viewportBottom = window.innerHeight - VIEWPORT_MARGIN_PX\n\n let top = preferredTop\n if (menuHeight > 0 && preferredTop + menuHeight > viewportBottom) {\n // Shift up so the bottom of the menu aligns with the viewport bottom\n top = viewportBottom - menuHeight\n // Never go above the top of the viewport\n top = Math.max(VIEWPORT_MARGIN_PX, top)\n }\n\n // --- Horizontal ---\n const resolvedMinWidth = typeof minWidth === 'number' ? minWidth : anchor.width\n const effectiveWidth = Math.max(menuWidth, resolvedMinWidth)\n const maxLeft = window.innerWidth - effectiveWidth - VIEWPORT_MARGIN_PX\n const left = Math.max(VIEWPORT_MARGIN_PX, Math.min(anchor.left, maxLeft))\n\n setStyle({ top, left, minWidth: minWidth ?? anchor.width })\n }, [anchorEl, menuRef, minWidth, gap])\n\n // First pass: compute as soon as the menu opens (menuHeight = 0 → preferredTop)\n useLayoutEffect(() => {\n if (open) {computePosition()}\n else {setStyle({})}\n }, [open, computePosition])\n\n // Second pass: recompute after the panel renders to get actual height/width\n useEffect(() => {\n if (!open) {return}\n const id = requestAnimationFrame(computePosition)\n return () => cancelAnimationFrame(id)\n }, [open, computePosition])\n\n // Keep position in sync on scroll (capture = all scroll containers) and resize\n useEffect(() => {\n if (!open) {return}\n window.addEventListener('scroll', computePosition, true)\n window.addEventListener('resize', computePosition)\n return () => {\n window.removeEventListener('scroll', computePosition, true)\n window.removeEventListener('resize', computePosition)\n }\n }, [open, computePosition])\n\n return { style }\n}\n","import { CSSProperties, RefObject, useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nimport { useKeyPress } from '@hooks/common/use-key-press/useKeyPress'\r\nimport { useMenuPosition } from '@hooks/components/overlay/use-menu-position/useMenuPosition'\r\n\r\nimport type { MenuProps } from '@components/overlay/menu/Menu.props'\r\n\r\ntype UseMenuParams = Pick<MenuProps, 'open' | 'onClose' | 'anchorEl' | 'minWidth'>\r\n\r\ntype UseMenuReturn = {\r\n /** Ref to attach to the listbox panel. */\r\n panelRef: RefObject<HTMLDivElement | null>\r\n /** Computed inline positioning style for the panel. */\r\n style: CSSProperties\r\n}\r\n\r\n/**\r\n * Business logic for the Menu component: positioning, roving keyboard\r\n * navigation (Arrow/Home/End/Enter), Escape-to-close, and keeping the\r\n * `data-focused` attribute in sync with the active option.\r\n */\r\nexport const useMenu = ({ open, onClose, anchorEl, minWidth }: UseMenuParams): UseMenuReturn => {\r\n const panelRef = useRef<HTMLDivElement>(null)\r\n const [focusedIndex, setFocusedIndex] = useState(-1)\r\n\r\n const { style } = useMenuPosition({ anchorEl, open, menuRef: panelRef, minWidth })\r\n\r\n /** Returns all non-disabled option elements inside the panel. */\r\n const getOptions = useCallback((): HTMLElement[] => {\r\n if (!panelRef.current) {return []}\r\n return Array.from(\r\n panelRef.current.querySelectorAll<HTMLElement>('[role=\"option\"]:not([data-disabled])')\r\n )\r\n }, [])\r\n\r\n // On open: focus panel, initialise focusedIndex to selected item (or 0)\r\n useEffect(() => {\r\n if (!open) {\r\n setFocusedIndex(-1)\r\n return\r\n }\r\n const raf = requestAnimationFrame(() => {\r\n panelRef.current?.focus()\r\n const options = getOptions()\r\n const selectedIdx = options.findIndex((el) => el.getAttribute('aria-selected') === 'true')\r\n setFocusedIndex(selectedIdx >= 0 ? selectedIdx : 0)\r\n })\r\n return () => cancelAnimationFrame(raf)\r\n }, [open, getOptions])\r\n\r\n // Keep data-focused in sync with focusedIndex\r\n useEffect(() => {\r\n if (!open) {return}\r\n const options = getOptions()\r\n options.forEach((el, idx) => {\r\n if (idx === focusedIndex) {\r\n el.setAttribute('data-focused', 'true')\r\n el.scrollIntoView({ block: 'nearest' })\r\n } else {\r\n el.removeAttribute('data-focused')\r\n }\r\n })\r\n }, [focusedIndex, open, getOptions])\r\n\r\n useKeyPress(\r\n {\r\n Escape: onClose,\r\n ArrowDown: (e) => {\r\n e.preventDefault()\r\n setFocusedIndex((prev) => {\r\n const count = getOptions().length\r\n return count === 0 ? prev : (prev + 1) % count\r\n })\r\n },\r\n ArrowUp: (e) => {\r\n e.preventDefault()\r\n setFocusedIndex((prev) => {\r\n const count = getOptions().length\r\n return count === 0 ? prev : (prev - 1 + count) % count\r\n })\r\n },\r\n Home: (e) => {\r\n e.preventDefault()\r\n const count = getOptions().length\r\n if (count > 0) {setFocusedIndex(0)}\r\n },\r\n End: (e) => {\r\n e.preventDefault()\r\n const count = getOptions().length\r\n if (count > 0) {setFocusedIndex(count - 1)}\r\n },\r\n Enter: () => {\r\n const options = getOptions()\r\n if (focusedIndex >= 0) {options[focusedIndex]?.click()}\r\n },\r\n },\r\n { enabled: open }\r\n )\r\n\r\n return { panelRef, style }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_GROUP_STYLES = createStyles((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n },\r\n divider: {\r\n height: '1px',\r\n backgroundColor: c.borderMain,\r\n marginTop: theme.spacing.xs,\r\n marginBottom: theme.spacing.xs,\r\n marginLeft: theme.spacing.md,\r\n marginRight: theme.spacing.md,\r\n },\r\n label: {\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.md,\r\n color: c.textTertiary,\r\n fontSize: theme.fontSize.xs,\r\n fontWeight: theme.fontWeight.medium,\r\n userSelect: 'none' as const,\r\n textTransform: 'uppercase' as const,\r\n letterSpacing: '0.05em',\r\n },\r\n list: {\r\n listStyle: 'none',\r\n margin: '0',\r\n padding: '0',\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n },\r\n }\r\n}, { id: 'menu-group' })\r\n","import type { FC } from 'react'\r\nimport { MENU_GROUP_STYLES } from '@components/overlay/menu/menu-group/MenuGroup.styles'\r\nimport type { MenuGroupProps } from '@components/overlay/menu/menu-group/MenuGroup.props'\r\n\r\nconst MenuGroup: FC<MenuGroupProps> = ({\r\n label,\r\n divider,\r\n children,\r\n}) => {\r\n return (\r\n <div className={MENU_GROUP_STYLES.root}>\r\n {divider && (\r\n <div\r\n className={MENU_GROUP_STYLES.divider}\r\n role={'separator'}\r\n aria-hidden={true}\r\n />\r\n )}\r\n {label !== undefined && (\r\n <span className={MENU_GROUP_STYLES.label}>{label}</span>\r\n )}\r\n <ul\r\n className={MENU_GROUP_STYLES.list}\r\n role={'group'}\r\n aria-label={label}\r\n >\r\n {children}\r\n </ul>\r\n </div>\r\n )\r\n}\r\n\r\nMenuGroup.displayName = 'MenuGroup'\r\n\r\nexport default MenuGroup\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_ITEM_STYLES = createStyles((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.md,\r\n cursor: 'pointer',\r\n userSelect: 'none' as const,\r\n color: c.textPrimary,\r\n fontSize: theme.fontSize.sm,\r\n listStyle: 'none',\r\n transition: `background-color ${theme.transition.fast}`,\r\n '&[data-selected]': {\r\n backgroundColor: c.primarySubtle,\r\n color: c.primaryMain,\r\n fontWeight: theme.fontWeight.medium,\r\n },\r\n '&[data-focused]': {\r\n backgroundColor: c.defaultSubtleHover,\r\n },\r\n '&[data-focused][data-selected]': {\r\n backgroundColor: c.primarySubtleHover,\r\n },\r\n '&[data-disabled]': {\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n ':hover:not([data-disabled])': {\r\n backgroundColor: c.defaultSubtleHover,\r\n },\r\n ':active:not([data-disabled])': {\r\n backgroundColor: c.defaultSubtleActive,\r\n },\r\n },\r\n }\r\n}, { id: 'menu-item' })\r\n","import type { FC } from 'react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { MENU_ITEM_STYLES } from '@components/overlay/menu/menu-item/MenuItem.styles'\r\nimport type { MenuItemProps } from '@components/overlay/menu/menu-item/MenuItem.props'\r\n\r\nconst MenuItem: FC<MenuItemProps> = ({\r\n ref,\r\n label,\r\n icon,\r\n selected,\r\n focused,\r\n disabled,\r\n onClick,\r\n ...rest\r\n}) => {\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <li\r\n ref={ref}\r\n role={'option'}\r\n aria-selected={selected}\r\n aria-disabled={disabled}\r\n data-selected={selected || undefined}\r\n data-focused={focused || undefined}\r\n data-disabled={disabled || undefined}\r\n className={MENU_ITEM_STYLES.root}\r\n onClick={disabled ? undefined : onClick}\r\n {...rest}\r\n >\r\n {icon !== undefined && (\r\n <Icon\r\n icon={icon}\r\n size={'sm'}\r\n strokeColor={selected ? 'primaryMain' : 'textSecondary'}\r\n />\r\n )}\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n </li>\r\n )\r\n}\r\n\r\nMenuItem.displayName = 'MenuItem'\r\n\r\nexport default MenuItem\r\n","import { FC } from 'react'\nimport { createPortal } from 'react-dom'\nimport { MENU_STYLES } from '@components/overlay/menu/Menu.styles'\nimport { useMenu } from '@components/overlay/menu/utils/useMenu.utils'\nimport MenuGroup from '@components/overlay/menu/menu-group/MenuGroup'\nimport MenuItem from '@components/overlay/menu/menu-item/MenuItem'\nimport type { MenuProps } from '@components/overlay/menu/Menu.props'\nimport type { MenuComponent } from '@components/overlay/menu/Menu.types'\n\nconst MenuBase: FC<MenuProps> = ({\n open,\n onClose,\n anchorEl,\n minWidth,\n maxHeight = '20rem',\n id,\n children,\n}) => {\n const { panelRef, style } = useMenu({ open, onClose, anchorEl, minWidth })\n\n if (!open) {return null}\n\n return createPortal(\n <>\n <div\n className={MENU_STYLES.backdrop}\n onClick={onClose}\n aria-hidden={true}\n />\n <div\n ref={panelRef}\n id={id}\n role={'listbox'}\n tabIndex={-1}\n className={MENU_STYLES.panel}\n style={{ ...style, maxHeight, outline: 'none' }}\n >\n {children}\n </div>\n </>,\n document.body\n )\n}\n\nMenuBase.displayName = 'Menu'\n\nconst Menu = MenuBase as MenuComponent\nMenu.Item = MenuItem\nMenu.Group = MenuGroup\n\nexport default Menu\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nexport const SELECT_TRIGGER_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n base: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n boxSizing: 'border-box' as const,\r\n width: '100%',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderRadius: theme.radius.md,\r\n backgroundColor: c.surfacePaper,\r\n cursor: 'pointer',\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n fontFamily: 'inherit',\r\n '&[data-open]': {\r\n borderColor: c.primaryMain,\r\n },\r\n '&[data-disabled]': {\r\n opacity: theme.opacity.high,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n variants: {\r\n size: {\r\n sm: {\r\n height: '2rem',\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.sm,\r\n fontSize: theme.fontSize.xs,\r\n },\r\n md: {\r\n height: '2.5rem',\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.sm,\r\n fontSize: theme.fontSize.sm,\r\n },\r\n lg: {\r\n height: '3rem',\r\n paddingLeft: theme.spacing.lg,\r\n paddingRight: theme.spacing.md,\r\n fontSize: theme.fontSize.md,\r\n },\r\n },\r\n status: {\r\n default: {\r\n borderColor: c.borderMain,\r\n ':hover:not([data-disabled]):not([data-open])': {\r\n borderColor: c.borderStrong,\r\n },\r\n ':focus-visible': {\r\n borderColor: c.primaryMain,\r\n outline: 'none',\r\n },\r\n },\r\n error: {\r\n borderColor: c.errorMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n success: {\r\n borderColor: c.successMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n warning: {\r\n borderColor: c.warningMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n },\r\n defaultVariants: { size: 'md', status: 'default' },\r\n }\r\n}, { id: 'select-trigger' })\r\n\r\nexport const SELECT_TRIGGER_STYLES = createStyles((theme) => ({\r\n value: {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n color: theme.colors.textPrimary,\r\n textAlign: 'left' as const,\r\n },\r\n placeholder: {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n color: theme.colors.textTertiary,\r\n textAlign: 'left' as const,\r\n },\r\n chevron: {\r\n flexShrink: 0,\r\n transition: `transform ${theme.transition.fast}`,\r\n color: theme.colors.textSecondary,\r\n },\r\n chevronOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n}), { id: 'select-trigger-extra' })\r\n","import type { FC } from 'react'\r\nimport { cx } from '@aurora-ds/theme'\r\nimport ChevronDownIcon from '@resources/assets/icons/ChevronDownIcon.svg?react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { SELECT_TRIGGER_STYLES, SELECT_TRIGGER_VARIANTS } from '@components/forms/select/select-trigger/SelectTrigger.styles'\r\nimport type { SelectTriggerProps } from '@components/forms/select/select-trigger/SelectTrigger.props'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { TextFieldSize } from '@components/forms/text-field/textField.types'\r\n\r\nconst ICON_SIZE_MAP: Record<TextFieldSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\nconst SelectTrigger: FC<SelectTriggerProps> = ({\r\n ref,\r\n size = 'md',\r\n status = 'default',\r\n open,\r\n hasValue,\r\n startIcon,\r\n disabled,\r\n children,\r\n ...rest\r\n}) => {\r\n const iconSize = ICON_SIZE_MAP[size]\r\n\r\n return (\r\n <button\r\n type={'button'}\r\n ref={ref}\r\n className={SELECT_TRIGGER_VARIANTS({ size, status })}\r\n data-open={open || undefined}\r\n data-disabled={disabled || undefined}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {startIcon !== undefined && (\r\n <Icon\r\n icon={startIcon}\r\n size={iconSize}\r\n strokeColor={'textSecondary'}\r\n />\r\n )}\r\n <span className={hasValue ? SELECT_TRIGGER_STYLES.value : SELECT_TRIGGER_STYLES.placeholder}>\r\n {children}\r\n </span>\r\n <Icon\r\n icon={ChevronDownIcon}\r\n size={iconSize}\r\n className={cx(SELECT_TRIGGER_STYLES.chevron, open ? SELECT_TRIGGER_STYLES.chevronOpen : undefined)}\r\n strokeColor={'textSecondary'}\r\n />\r\n </button>\r\n )\r\n}\r\n\r\nSelectTrigger.displayName = 'SelectTrigger'\r\n\r\nexport default SelectTrigger\r\n","import { RefCallback, RefObject, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react'\r\n\r\nimport { useControllableState } from '@hooks/common/use-controllable-state/useControllableState'\r\nimport { useMergedRefs } from '@hooks/common/use-merged-refs/useMergedRefs'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { SelectProps } from '@components/forms/select/Select.props'\r\nimport type { SelectOption } from '@components/forms/select/select.types'\r\nimport type { TextFieldStatus } from '@components/forms/text-field/textField.types'\r\n\r\n/** Maps status to a theme color token used for the helper text. */\r\nconst HELPER_COLOR_MAP: Record<TextFieldStatus, keyof Theme['colors']> = {\r\n default: 'textSecondary',\r\n error: 'errorHover',\r\n success: 'successHover',\r\n warning: 'warningHover',\r\n}\r\n\r\ntype UseSelectParams = {\r\n id?: string\r\n ref?: SelectProps['ref']\r\n value?: string\r\n defaultValue?: string\r\n onChange?: (value: string) => void\r\n options?: SelectOption[]\r\n status: TextFieldStatus\r\n disabled?: boolean\r\n}\r\n\r\ntype UseSelectReturn = {\r\n fieldId: string\r\n menuId: string\r\n triggerRef: RefObject<HTMLButtonElement | null>\r\n mergedRef: RefCallback<HTMLButtonElement>\r\n open: boolean\r\n toggle: () => void\r\n close: () => void\r\n currentValue: string\r\n selectedOption: SelectOption | undefined\r\n groupedOptions: Map<string | undefined, SelectOption[]>\r\n handleSelect: (optValue: string) => void\r\n helperColor: keyof Theme['colors']\r\n}\r\n\r\n/**\r\n * Business logic for the Select component: id resolution, ref merging,\r\n * controlled/uncontrolled value handling, open state, option grouping and\r\n * focus restoration to the trigger when the menu closes.\r\n */\r\nexport const useSelect = ({\r\n id,\r\n ref,\r\n value,\r\n defaultValue,\r\n onChange,\r\n options,\r\n status,\r\n disabled,\r\n}: UseSelectParams): UseSelectReturn => {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const menuId = `${fieldId}-menu`\r\n\r\n const triggerRef = useRef<HTMLButtonElement | null>(null)\r\n const mergedRef = useMergedRefs<HTMLButtonElement>(ref, triggerRef)\r\n\r\n const [open, setOpen] = useState(false)\r\n\r\n const [currentValue, setValue] = useControllableState<string>({\r\n value,\r\n defaultValue: defaultValue ?? '',\r\n onChange,\r\n })\r\n\r\n // Restore focus to the trigger when the menu closes.\r\n const wasOpenRef = useRef(false)\r\n useEffect(() => {\r\n if (wasOpenRef.current && !open) {\r\n triggerRef.current?.focus()\r\n }\r\n wasOpenRef.current = open\r\n }, [open])\r\n\r\n const selectedOption = useMemo(\r\n () => options?.find((opt) => opt.value === currentValue),\r\n [options, currentValue]\r\n )\r\n\r\n const groupedOptions = useMemo(() => {\r\n const map = new Map<string | undefined, SelectOption[]>()\r\n for (const opt of options ?? []) {\r\n const key = opt.group\r\n const existing = map.get(key)\r\n if (existing !== undefined) {\r\n existing.push(opt)\r\n } else {\r\n map.set(key, [opt])\r\n }\r\n }\r\n return map\r\n }, [options])\r\n\r\n const handleSelect = useCallback(\r\n (optValue: string) => {\r\n setValue(optValue)\r\n setOpen(false)\r\n },\r\n [setValue]\r\n )\r\n\r\n const toggle = useCallback(() => {\r\n if (!disabled) {\r\n setOpen((prev) => !prev)\r\n }\r\n }, [disabled])\r\n\r\n const close = useCallback(() => setOpen(false), [])\r\n\r\n return {\r\n fieldId,\r\n menuId,\r\n triggerRef,\r\n mergedRef,\r\n open,\r\n toggle,\r\n close,\r\n currentValue,\r\n selectedOption,\r\n groupedOptions,\r\n handleSelect,\r\n helperColor: HELPER_COLOR_MAP[status],\r\n }\r\n}\r\n","import { FC } from 'react'\nimport { Stack } from '@components/layout/stack'\nimport { Text } from '@components/foundation/text'\nimport { Menu } from '@components/overlay/menu'\nimport { SelectTrigger } from '@components/forms/select/select-trigger'\nimport { useSelect } from '@components/forms/select/utils/useSelect.utils'\nimport type { SelectProps } from '@components/forms/select/Select.props'\n\nconst Select: FC<SelectProps> = ({\n ref,\n value,\n defaultValue,\n onChange,\n options,\n label,\n helperText,\n placeholder,\n size = 'md',\n status = 'default',\n disabled,\n required,\n width,\n id,\n}) => {\n const {\n fieldId,\n menuId,\n triggerRef,\n mergedRef,\n open,\n toggle,\n close,\n currentValue,\n selectedOption,\n groupedOptions,\n handleSelect,\n helperColor,\n } = useSelect({ id, ref, value, defaultValue, onChange, options, status, disabled })\n\n return (\n <Stack\n flexDirection={'column'}\n gap={'xs'}\n style={{ width: width ?? '100%' }}\n >\n {label !== undefined && (\n <Text\n variant={'label'}\n fontSize={'sm'}\n fontWeight={'medium'}\n color={'textSecondary'}\n htmlFor={fieldId}\n >\n {label}\n {required && (\n <Text\n variant={'span'}\n color={'errorMain'}\n aria-hidden={true}\n >\n {' *'}\n </Text>\n )}\n </Text>\n )}\n\n <SelectTrigger\n ref={mergedRef}\n id={fieldId}\n size={size}\n status={status}\n open={open}\n hasValue={selectedOption !== undefined}\n disabled={disabled}\n required={required}\n aria-haspopup={'listbox'}\n aria-expanded={open}\n aria-controls={menuId}\n aria-invalid={status === 'error' || undefined}\n onClick={toggle}\n >\n {selectedOption !== undefined ? selectedOption.label : placeholder}\n </SelectTrigger>\n\n <Menu\n open={open}\n onClose={close}\n anchorEl={triggerRef.current}\n id={menuId}\n >\n {Array.from(groupedOptions.entries()).map(([groupKey, groupOpts], groupIndex) => {\n const items = groupOpts.map((opt) => (\n <Menu.Item\n key={opt.value}\n label={opt.label}\n icon={opt.icon}\n selected={opt.value === currentValue}\n disabled={opt.disabled}\n onClick={() => handleSelect(opt.value)}\n />\n ))\n return groupKey !== undefined ? (\n <Menu.Group\n key={groupKey}\n label={groupKey}\n divider={groupIndex > 0}\n >\n {items}\n </Menu.Group>\n ) : (\n <Menu.Group\n key={'__ungrouped'}\n divider={groupIndex > 0}\n >\n {items}\n </Menu.Group>\n )\n })}\n </Menu>\n\n {helperText !== undefined && (\n <Text\n variant={'span'}\n fontSize={'xs'}\n color={helperColor}\n >\n {helperText}\n </Text>\n )}\n </Stack>\n )\n}\n\nSelect.displayName = 'Select'\n\nexport default Select\n","import { createContext, useContext } from 'react'\r\n\r\nimport type { AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\ntype AlertContextValue = {\r\n variant: AlertVariant\r\n accentColor: keyof Theme['colors']\r\n}\r\n\r\nexport const AlertContext = createContext<AlertContextValue>({\r\n variant: 'default',\r\n accentColor: 'defaultActive',\r\n})\r\n\r\nexport const useAlertContext = () => useContext(AlertContext)\r\n","import type { FC } from 'react'\r\n\r\nimport AlertSuccessIcon from '@resources/assets/icons/AlertSuccessIcon.svg?react'\r\nimport AlertErrorIcon from '@resources/assets/icons/AlertErrorIcon.svg?react'\r\nimport AlertWarningIcon from '@resources/assets/icons/AlertWarningIcon.svg?react'\r\nimport AlertInfoIcon from '@resources/assets/icons/AlertInfoIcon.svg?react'\r\n\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Text } from '@components/foundation/text'\r\nimport { useAlertContext } from '@components/overlay/alert/Alert.context'\r\n\r\nimport type { AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { AlertTitleProps } from '@components/overlay/alert/alert-title/AlertTitle.props'\r\n\r\nconst VARIANT_ICONS: Partial<Record<AlertVariant, FC<{ width?: number; height?: number }>>> = {\r\n success: AlertSuccessIcon,\r\n error: AlertErrorIcon,\r\n warning: AlertWarningIcon,\r\n info: AlertInfoIcon,\r\n}\r\n\r\n/**\r\n * Alert title row: renders the variant icon alongside the title text.\r\n * Must be used inside an `<Alert>` component.\r\n */\r\nconst AlertTitle: FC<AlertTitleProps> = ({ children }) => {\r\n const { variant, accentColor } = useAlertContext()\r\n const IconComponent = VARIANT_ICONS[variant]\r\n\r\n return (\r\n <Stack\r\n flexDirection={'row'}\r\n alignItems={'center'}\r\n gap={'sm'}\r\n >\r\n {IconComponent && (\r\n <Stack\r\n flexShrink={0}\r\n alignItems={'center'}\r\n color={accentColor}\r\n width={'1.25rem'}\r\n height={'1.25rem'}\r\n aria-hidden={true}\r\n >\r\n <IconComponent\r\n width={20}\r\n height={20}\r\n />\r\n </Stack>\r\n )}\r\n <Text\r\n fontWeight={'semibold'}\r\n fontSize={'sm'}\r\n color={accentColor}\r\n >\r\n {children}\r\n </Text>\r\n </Stack>\r\n )\r\n}\r\n\r\nAlertTitle.displayName = 'Alert.Title'\r\n\r\nexport default AlertTitle\r\n","import type { FC } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { AlertBodyProps } from '@components/overlay/alert/alert-body/AlertBody.props'\r\n\r\n/**\r\n * Alert message body. Must be used inside an `<Alert>` component.\r\n */\r\nconst AlertBody: FC<AlertBodyProps> = ({ children }) => (\r\n <Text\r\n as={'p'}\r\n fontSize={'sm'}\r\n color={'textSecondary'}\r\n >\r\n {children}\r\n </Text>\r\n)\r\n\r\nAlertBody.displayName = 'Alert.Body'\r\n\r\nexport default AlertBody\r\n","import { Stack } from '@components/layout/stack'\r\nimport { AlertContext } from '@components/overlay/alert/Alert.context'\r\nimport AlertTitle from '@components/overlay/alert/alert-title/AlertTitle'\r\nimport AlertBody from '@components/overlay/alert/alert-body/AlertBody'\r\n\r\nimport type { AlertComponent, AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { AlertProps } from '@components/overlay/alert/Alert.props'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport { FC } from 'react'\r\n\r\ntype VariantTokens = {\r\n backgroundColor: keyof Theme['colors']\r\n borderColor: keyof Theme['colors']\r\n accentColor: keyof Theme['colors']\r\n}\r\n\r\nconst VARIANT_TOKENS: Record<AlertVariant, VariantTokens> = {\r\n default: { backgroundColor: 'surfacePaper', borderColor: 'defaultMain', accentColor: 'defaultActive' },\r\n success: { backgroundColor: 'successSubtle', borderColor: 'successMain', accentColor: 'successActive' },\r\n error: { backgroundColor: 'errorSubtle', borderColor: 'errorMain', accentColor: 'errorActive' },\r\n warning: { backgroundColor: 'warningSubtle', borderColor: 'warningMain', accentColor: 'warningActive' },\r\n info: { backgroundColor: 'infoSubtle', borderColor: 'infoMain', accentColor: 'infoActive' },\r\n}\r\n\r\nconst VARIANT_ARIA_LIVE: Record<AlertVariant, 'polite' | 'assertive'> = {\r\n default: 'polite',\r\n success: 'polite',\r\n error: 'assertive',\r\n warning: 'polite',\r\n info: 'polite',\r\n}\r\n\r\n/**\r\n * Inline alert banner with 5 visual variants: default, success, error, warning, info.\r\n * Use `Alert.Title` (icon + heading) and `Alert.Body` (message) as children.\r\n *\r\n * @example\r\n * <Alert variant=\"success\">\r\n * <Alert.Title>Saved</Alert.Title>\r\n * <Alert.Body>Your changes have been saved successfully.</Alert.Body>\r\n * </Alert>\r\n */\r\nconst AlertBase: FC<AlertProps> = ({\r\n variant = 'default',\r\n children,\r\n width = '100%'\r\n}) => {\r\n const { backgroundColor, borderColor, accentColor } = VARIANT_TOKENS[variant]\r\n\r\n return (\r\n <AlertContext.Provider value={{ variant, accentColor }}>\r\n <Stack\r\n role={'alert'}\r\n aria-live={VARIANT_ARIA_LIVE[variant]}\r\n flexDirection={'column'}\r\n gap={'xs'}\r\n padding={'md'}\r\n borderRadius={'lg'}\r\n backgroundColor={backgroundColor}\r\n borderColor={borderColor}\r\n borderWidth={'1px'}\r\n borderStyle={'solid'}\r\n width={width}\r\n >\r\n {children}\r\n </Stack>\r\n </AlertContext.Provider>\r\n )\r\n}\r\n\r\nAlertBase.displayName = 'Alert'\r\n\r\nconst Alert = AlertBase as AlertComponent\r\nAlert.Title = AlertTitle\r\nAlert.Body = AlertBody\r\n\r\nexport default Alert\r\n","/**\r\n * Responsive breakpoints (min-width, mobile-first).\r\n * Keep in sync with themeBreakpoints.\r\n */\r\nexport const BREAKPOINTS = {\r\n xs: 480,\r\n sm: 640,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1280,\r\n '2xl': 1536,\r\n} as const\r\n\r\n/** Max-width media query strings (max = breakpoint - 1px). */\r\nexport const MEDIA_MAX = {\r\n xs: `max-width: ${BREAKPOINTS.xs - 1}px`,\r\n sm: `max-width: ${BREAKPOINTS.sm - 1}px`,\r\n md: `max-width: ${BREAKPOINTS.md - 1}px`,\r\n lg: `max-width: ${BREAKPOINTS.lg - 1}px`,\r\n xl: `max-width: ${BREAKPOINTS.xl - 1}px`,\r\n '2xl': `max-width: ${BREAKPOINTS['2xl'] - 1}px`,\r\n} as const\r\n\r\n/** Min-width media query strings (standard breakpoints). */\r\nexport const MEDIA_MIN = {\r\n xs: `min-width: ${BREAKPOINTS.xs}px`,\r\n sm: `min-width: ${BREAKPOINTS.sm}px`,\r\n md: `min-width: ${BREAKPOINTS.md}px`,\r\n lg: `min-width: ${BREAKPOINTS.lg}px`,\r\n xl: `min-width: ${BREAKPOINTS.xl}px`,\r\n '2xl': `min-width: ${BREAKPOINTS['2xl']}px`,\r\n} as const\r\n","/** Default duration in milliseconds for mount/unmount transition animations. */\r\nexport const DEFAULT_TRANSITION_DURATION_MS = 250\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { MEDIA_MAX } from '@constants/breakpoints.constants'\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nconst TRANSITION = `${DEFAULT_TRANSITION_DURATION_MS}ms ease`\r\n\r\nexport const DIALOG_STYLES = createStyles((theme) => ({\r\n backdrop: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n zIndex: theme.zIndex.modal - 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0)',\r\n transition: `background-color ${TRANSITION}`,\r\n },\r\n\r\n backdropVisible: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n },\r\n panel: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n margin: 'auto',\r\n width: '90vw',\r\n height: 'fit-content',\r\n maxWidth: 'var(--dialog-max-width, 80vw)',\r\n maxHeight: 'var(--dialog-max-height, 80vh)',\r\n minWidth: 'var(--dialog-min-width, 0px)',\r\n minHeight: 'var(--dialog-min-height, 0px)',\r\n zIndex: theme.zIndex.modal,\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderRadius: theme.radius['2xl'],\r\n boxShadow: theme.shadows.xl,\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n overflow: 'hidden' as const,\r\n willChange: 'opacity, transform',\r\n opacity: 0,\r\n transform: 'scale(0.97)',\r\n transition: `opacity ${TRANSITION}, transform ${TRANSITION}`,\r\n // Mobile: bottom sheet\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n top: 'auto',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 0,\r\n width: '100%',\r\n height: 'auto',\r\n maxWidth: 'none',\r\n maxHeight: 'var(--dialog-max-height, 85vh)',\r\n borderRadius: `${theme.radius['2xl']} ${theme.radius['2xl']} 0 0`,\r\n transform: 'translateY(100%)',\r\n },\r\n },\r\n\r\n panelVisible: {\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n transform: 'translateY(0)',\r\n },\r\n },\r\n\r\n // Full-height variant on mobile (applied via `fullscreen` prop)\r\n panelFullscreen: {\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n height: '100dvh',\r\n maxHeight: 'none',\r\n },\r\n },\r\n\r\n}), { id: 'dialog' })\r\n","import { createContext, useContext } from 'react'\r\n\r\nimport type CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\n\r\nexport type DialogContextValue = {\r\n /** Stable id for the title element, used by `aria-labelledby` on the panel. */\r\n titleId: string\r\n /** Close icon SVG component forwarded to Dialog.Header. */\r\n CloseIconComponent: typeof CloseIcon\r\n}\r\n\r\nexport const DialogContext = createContext<DialogContextValue>({\r\n titleId: '',\r\n CloseIconComponent: null as any,\r\n})\r\n\r\nexport const useDialogContext = (): DialogContextValue => useContext(DialogContext)\r\n","import { useEffect, useLayoutEffect, useState } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nimport type { UseTransitionRenderReturnType } from '@hooks/common/use-transition-render/useTransitionRender.types'\r\n\r\n/**\r\n * Manages mount/unmount transitions with a two-phase approach (visible → fading-in).\r\n *\r\n * Opening sequence:\r\n * 1. `useLayoutEffect` sets `isVisible=true` synchronously before the browser paints\r\n * → element is in the DOM at its initial hidden state on the very first frame.\r\n * 2. Double `requestAnimationFrame` in `useEffect` waits for two rendered frames\r\n * before setting `isFadingIn=true`, guaranteeing the CSS transition always starts\r\n * from the painted hidden state (prevents flickering).\r\n *\r\n * Closing sequence:\r\n * `isFadingIn=false` → CSS transition plays → after `duration` ms → `isVisible=false`.\r\n *\r\n * @param isOpen - Whether the element should be shown.\r\n * @param duration - Transition duration in milliseconds (defaults to `DEFAULT_TRANSITION_DURATION_MS`).\r\n */\r\nexport const useTransitionRender = (\r\n isOpen: boolean,\r\n duration = DEFAULT_TRANSITION_DURATION_MS\r\n): UseTransitionRenderReturnType => {\r\n const [isVisible, setIsVisible] = useState(isOpen)\r\n const [isFadingIn, setIsFadingIn] = useState(isOpen)\r\n\r\n // Mount synchronously before paint so the element is in the DOM at opacity:0\r\n // on the very first frame — no extra render cycle between null and the initial state.\r\n useLayoutEffect(() => {\r\n if (isOpen) {\r\n setIsVisible(true)\r\n }\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n // Double RAF: frame 1 → element rendered; frame 2 → element painted at hidden\r\n // state → THEN trigger the CSS transition.\r\n let raf2: number\r\n const raf1 = requestAnimationFrame(() => {\r\n raf2 = requestAnimationFrame(() => setIsFadingIn(true))\r\n })\r\n return () => {\r\n cancelAnimationFrame(raf1)\r\n cancelAnimationFrame(raf2)\r\n }\r\n } else {\r\n setIsFadingIn(false)\r\n const timeout = setTimeout(() => setIsVisible(false), duration)\r\n return () => clearTimeout(timeout)\r\n }\r\n }, [isOpen, duration])\r\n\r\n return { isVisible, isFadingIn }\r\n}\r\n","import { useEffect } from 'react'\r\n\r\n/**\r\n * Locks scrolling on `document.body` while `active` is true.\r\n *\r\n * Preserves the current scroll position and keeps the scrollbar gutter\r\n * (`overflow-y: scroll`) to avoid horizontal layout shift when the scrollbar\r\n * disappears. The original styles and scroll position are restored on cleanup.\r\n *\r\n * @example useBodyScrollLock(isDialogOpen)\r\n */\r\nexport const useBodyScrollLock = (active: boolean): void => {\r\n useEffect(() => {\r\n if (!active) {return}\r\n\r\n const scrollY = window.scrollY\r\n const body = document.body\r\n body.style.position = 'fixed'\r\n body.style.top = `-${scrollY}px`\r\n body.style.overflowY = 'scroll'\r\n body.style.width = '100%'\r\n\r\n return () => {\r\n body.style.position = ''\r\n body.style.top = ''\r\n body.style.overflowY = ''\r\n body.style.width = ''\r\n window.scrollTo(0, scrollY)\r\n }\r\n }, [active])\r\n}\r\n","import { RefObject, useEffect } from 'react'\r\n\r\nconst FOCUSABLE_SELECTOR = [\r\n 'a[href]',\r\n 'button:not([disabled])',\r\n 'textarea:not([disabled])',\r\n 'input:not([disabled])',\r\n 'select:not([disabled])',\r\n '[tabindex]:not([tabindex=\"-1\"])',\r\n].join(',')\r\n\r\nconst getFocusable = (container: HTMLElement): HTMLElement[] =>\r\n Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)).filter(\r\n (el) => el.offsetParent !== null || el === document.activeElement\r\n )\r\n\r\n/**\r\n * Traps Tab / Shift+Tab focus within the element referenced by `containerRef`\r\n * while `active` is true. Focusable elements are recomputed on each Tab press\r\n * so dynamic content is handled correctly. Required for accessible modals.\r\n *\r\n * @example useFocusTrap(panelRef, open)\r\n */\r\nexport const useFocusTrap = (\r\n containerRef: RefObject<HTMLElement | null>,\r\n active: boolean\r\n): void => {\r\n useEffect(() => {\r\n if (!active) {return}\r\n const container = containerRef.current\r\n if (!container) {return}\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key !== 'Tab') {return}\r\n\r\n const focusable = getFocusable(container)\r\n if (focusable.length === 0) {\r\n event.preventDefault()\r\n container.focus()\r\n return\r\n }\r\n\r\n const first = focusable[0]\r\n const last = focusable[focusable.length - 1]\r\n const activeEl = document.activeElement\r\n\r\n if (event.shiftKey) {\r\n if (activeEl === first || activeEl === container || !container.contains(activeEl)) {\r\n event.preventDefault()\r\n last.focus()\r\n }\r\n } else if (activeEl === last) {\r\n event.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n container.addEventListener('keydown', handleKeyDown)\r\n return () => container.removeEventListener('keydown', handleKeyDown)\r\n }, [active, containerRef])\r\n}\r\n","import { useId, useEffect, useRef, useCallback, type CSSProperties, type RefObject } from 'react'\r\n\r\nimport { useTransitionRender } from '@hooks/common/use-transition-render/useTransitionRender'\r\nimport { useKeyPress } from '@hooks/common/use-key-press/useKeyPress'\r\nimport { useBodyScrollLock } from '@hooks/common/use-body-scroll-lock/useBodyScrollLock'\r\nimport { useFocusTrap } from '@hooks/common/use-focus-trap/useFocusTrap'\r\nimport { BREAKPOINTS } from '@constants/breakpoints.constants'\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nimport type { DialogProps } from '@components/overlay/dialog/Dialog.props'\r\n\r\nconst MOBILE_MEDIA_QUERY = `(max-width: ${BREAKPOINTS.sm - 1}px)`\r\n\r\ntype UseDialogReturn = {\r\n isVisible: boolean\r\n isFadingIn: boolean\r\n panelRef: RefObject<HTMLDivElement | null>\r\n titleId: string\r\n labelledBy: string | undefined\r\n handleBackdropClick: () => void\r\n cssVars: CSSProperties\r\n}\r\n\r\nconst resolvePx = (v: number | string): string =>\r\n typeof v === 'number' ? `${v}px` : v\r\n\r\nexport const useDialog = ({\r\n open,\r\n onClose,\r\n closeOnBackdropClick,\r\n maxWidth,\r\n maxHeight,\r\n minWidth,\r\n minHeight,\r\n 'aria-label': ariaLabel,\r\n}: Pick<DialogProps, 'open' | 'onClose' | 'closeOnBackdropClick' | 'maxWidth' | 'maxHeight' | 'minWidth' | 'minHeight' | 'aria-label'>): UseDialogReturn => {\r\n\r\n const { isVisible, isFadingIn } = useTransitionRender(open, DEFAULT_TRANSITION_DURATION_MS)\r\n const titleId = useId()\r\n const panelRef = useRef<HTMLDivElement>(null)\r\n\r\n // Focus the panel after the opening transition completes\r\n useEffect(() => {\r\n if (!open) {return}\r\n const timer = setTimeout(() => {\r\n panelRef.current?.focus({ preventScroll: true })\r\n }, DEFAULT_TRANSITION_DURATION_MS)\r\n return () => clearTimeout(timer)\r\n }, [open])\r\n\r\n // Lock body scroll while the dialog is open, preserving the scrollbar to avoid layout shift\r\n useBodyScrollLock(open)\r\n\r\n // Trap focus within the dialog panel while it is mounted (accessible modal)\r\n useFocusTrap(panelRef, isVisible)\r\n\r\n // Backdrop is always clickable on mobile (bottom-sheet UX), opt-in on desktop\r\n const handleBackdropClick = useCallback(() => {\r\n const isMobile = window.matchMedia(MOBILE_MEDIA_QUERY).matches\r\n if (closeOnBackdropClick || isMobile) {\r\n onClose()\r\n }\r\n }, [closeOnBackdropClick, onClose])\r\n\r\n useKeyPress({ Escape: onClose }, { enabled: open })\r\n\r\n const cssVars: CSSProperties = {\r\n '--dialog-max-width': resolvePx(maxWidth!),\r\n '--dialog-max-height': maxHeight,\r\n ...(minWidth !== undefined && { '--dialog-min-width': resolvePx(minWidth) }),\r\n ...(minHeight !== undefined && { '--dialog-min-height': resolvePx(minHeight) }),\r\n } as CSSProperties\r\n\r\n const labelledBy = ariaLabel ? undefined : titleId\r\n\r\n return { isVisible, isFadingIn, panelRef, titleId, labelledBy, handleBackdropClick, cssVars }\r\n}\r\n","import { useContext, type FC } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { DialogContext } from '@components/overlay/dialog/Dialog.context'\r\n\r\nimport type { DialogHeaderProps } from '@components/overlay/dialog/dialog-header/DialogHeader.props'\r\n\r\n/**\r\n * Standard dialog header with a title and a close button.\r\n * The `titleId` is wired automatically to the parent Dialog's `aria-labelledby`.\r\n *\r\n * @example\r\n * <Dialog.Header title=\"Confirm action\" onClose={handleClose} />\r\n */\r\nconst DialogHeader: FC<DialogHeaderProps> = ({ title, onClose }) => {\r\n const { titleId, CloseIconComponent } = useContext(DialogContext)\r\n\r\n return (\r\n <Stack\r\n flexDirection={'row'}\r\n alignItems={'center'}\r\n justifyContent={'space-between'}\r\n gap={'md'}\r\n paddingTop={'md'}\r\n paddingBottom={'md'}\r\n paddingLeft={'lg'}\r\n paddingRight={'md'}\r\n flexShrink={0}\r\n >\r\n <Text\r\n id={titleId}\r\n variant={'span'}\r\n fontSize={'md'}\r\n fontWeight={'semibold'}\r\n color={'textPrimary'}\r\n >\r\n {title}\r\n </Text>\r\n\r\n <IconButton\r\n icon={CloseIconComponent}\r\n ariaLabel={'Close dialog'}\r\n variant={'text'}\r\n color={'neutral'}\r\n size={'sm'}\r\n type={'button'}\r\n onClick={onClose}\r\n />\r\n </Stack>\r\n )\r\n}\r\n\r\nDialogHeader.displayName = 'Dialog.Header'\r\n\r\nexport default DialogHeader\r\n","import type { FC } from 'react'\r\n\r\nimport { Box } from '@components/layout/box'\r\n\r\nimport type { DialogBodyProps } from '@components/overlay/dialog/dialog-body/DialogBody.props'\r\n\r\n/**\r\n * Scrollable content area of the dialog.\r\n *\r\n * @example\r\n * <Dialog.Body>\r\n * <p>Are you sure you want to delete this item?</p>\r\n * </Dialog.Body>\r\n */\r\nconst DialogBody: FC<DialogBodyProps> = ({ children }) => (\r\n <Box\r\n flexGrow={1}\r\n minHeight={'0'}\r\n overflowY={'auto'}\r\n padding={'lg'}\r\n >\r\n {children}\r\n </Box>\r\n)\r\n\r\nDialogBody.displayName = 'Dialog.Body'\r\n\r\nexport default DialogBody\r\n","import { createPortal } from 'react-dom'\r\nimport { type FC } from 'react'\r\nimport { cx } from '@aurora-ds/theme'\r\n\r\nimport CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\nimport { DIALOG_STYLES } from '@components/overlay/dialog/Dialog.styles'\r\nimport { DialogContext } from '@components/overlay/dialog/Dialog.context'\r\nimport { useDialog } from '@components/overlay/dialog/utils/useDialog.utils'\r\nimport DialogHeader from '@components/overlay/dialog/dialog-header/DialogHeader'\r\nimport DialogBody from '@components/overlay/dialog/dialog-body/DialogBody'\r\n\r\nimport type { DialogProps } from '@components/overlay/dialog/Dialog.props'\r\nimport type { DialogComponent } from '@components/overlay/dialog/Dialog.types'\r\n\r\n/**\r\n * Modal dialog with a semi-transparent overlay. Supports responsive layout:\r\n * centered on desktop, full-width bottom sheet on mobile (< sm breakpoint).\r\n *\r\n * Animated via `useTransitionRender` on both open and close.\r\n * Closed by pressing Escape or using `Dialog.Header`'s built-in close button.\r\n * Backdrop click: always enabled on mobile, opt-in on desktop via `closeOnBackdropClick`.\r\n *\r\n * @example\r\n * <Dialog open={open} onClose={() => setOpen(false)}>\r\n * <Dialog.Header title=\"Settings\" onClose={() => setOpen(false)} />\r\n * <Dialog.Body>…content…</Dialog.Body>\r\n * </Dialog>\r\n */\r\nconst DialogBase: FC<DialogProps> = ({\r\n open,\r\n onClose,\r\n children,\r\n closeOnBackdropClick = false,\r\n fullscreen = false,\r\n maxWidth = '80vw',\r\n maxHeight = '80vh',\r\n minWidth,\r\n minHeight,\r\n 'aria-label': ariaLabel,\r\n}) => {\r\n const { isVisible, isFadingIn, panelRef, titleId, labelledBy, handleBackdropClick, cssVars } =\r\n useDialog({ open, onClose, closeOnBackdropClick, maxWidth, maxHeight, minWidth, minHeight, 'aria-label': ariaLabel })\r\n\r\n if (!isVisible) {return null}\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={cx(DIALOG_STYLES.backdrop, isFadingIn && DIALOG_STYLES.backdropVisible)}\r\n onClick={handleBackdropClick}\r\n aria-hidden={true}\r\n />\r\n\r\n <div\r\n ref={panelRef}\r\n role={'dialog'}\r\n aria-modal={true}\r\n aria-labelledby={labelledBy}\r\n aria-label={ariaLabel}\r\n tabIndex={-1}\r\n className={cx(\r\n DIALOG_STYLES.panel,\r\n isFadingIn && DIALOG_STYLES.panelVisible,\r\n fullscreen && DIALOG_STYLES.panelFullscreen,\r\n )}\r\n style={cssVars}\r\n >\r\n <DialogContext.Provider value={{ titleId, CloseIconComponent: CloseIcon }}>\r\n {children}\r\n </DialogContext.Provider>\r\n </div>\r\n </>,\r\n document.body\r\n )\r\n}\r\n\r\nDialogBase.displayName = 'Dialog'\r\n\r\nconst Dialog = DialogBase as DialogComponent\r\nDialog.Header = DialogHeader\r\nDialog.Body = DialogBody\r\n\r\nexport default Dialog\r\n","export const lightPalette = {\r\n // Surface\r\n surfaceBackground: '#f8fafc',\r\n surfacePaper: '#ffffff',\r\n surfaceElevated: '#f1f5f9',\r\n\r\n // Text\r\n textPrimary: '#0f172a',\r\n textSecondary: '#475569',\r\n textTertiary: '#64748b',\r\n textDisabled: '#94a3b8',\r\n textInverse: '#ffffff',\r\n\r\n // Primary (Indigo brand)\r\n primaryMain: '#5b5aef',\r\n primaryHover: '#4f46e5',\r\n primaryActive: '#4338ca',\r\n primarySubtle: '#eef2ff',\r\n primarySubtleHover: '#e0e7ff',\r\n primarySubtleActive: '#c7d2fe',\r\n primaryDisabled: '#a5b4fc',\r\n primaryOn: '#ffffff',\r\n\r\n // Secondary (Slate neutral)\r\n secondaryMain: '#f1f5f9',\r\n secondaryHover: '#e2e8f0',\r\n secondaryActive: '#cbd5e1',\r\n secondarySubtle: '#f8fafc',\r\n secondarySubtleHover: '#f1f5f9',\r\n secondarySubtleActive: '#e2e8f0',\r\n secondaryDisabled: '#e2e8f0',\r\n secondaryOn: '#1e293b',\r\n\r\n // Border\r\n borderSubtle: '#f1f5f9',\r\n borderMain: '#e2e8f0',\r\n borderStrong: '#cbd5e1',\r\n\r\n // Disabled state\r\n disabledMain: '#e2e8f0',\r\n disabledText: '#94a3b8',\r\n\r\n // Success (Emerald)\r\n successMain: '#059669',\r\n successHover: '#047857',\r\n successActive: '#065f46',\r\n successSubtle: '#d1fae5',\r\n successSubtleHover: '#a7f3d0',\r\n successSubtleActive: '#6ee7b7',\r\n successOn: '#ffffff',\r\n\r\n // Warning (Amber)\r\n warningMain: '#d97706',\r\n warningHover: '#b45309',\r\n warningActive: '#92400e',\r\n warningSubtle: '#fef3c7',\r\n warningSubtleHover: '#fde68a',\r\n warningSubtleActive: '#fcd34d',\r\n warningOn: '#ffffff',\r\n\r\n // Error (Red)\r\n errorMain: '#dc2626',\r\n errorHover: '#b91c1c',\r\n errorActive: '#991b1b',\r\n errorSubtle: '#fee2e2',\r\n errorSubtleHover: '#fecaca',\r\n errorSubtleActive: '#fca5a5',\r\n errorOn: '#ffffff',\r\n\r\n // Info (Sky)\r\n infoMain: '#0284c7',\r\n infoHover: '#0369a1',\r\n infoActive: '#0c4a6e',\r\n infoSubtle: '#e0f2fe',\r\n infoSubtleHover: '#bae6fd',\r\n infoSubtleActive: '#7dd3fc',\r\n infoOn: '#ffffff',\r\n\r\n // Orange\r\n orangeMain: '#ea580c',\r\n orangeHover: '#c2410c',\r\n orangeActive: '#9a2e0f',\r\n orangeSubtle: '#ffedd5',\r\n orangeSubtleHover: '#fed7aa',\r\n orangeSubtleActive: '#fdba74',\r\n orangeOn: '#ffffff',\r\n\r\n // Pink\r\n pinkMain: '#db2777',\r\n pinkHover: '#be185d',\r\n pinkActive: '#9d174d',\r\n pinkSubtle: '#fce7f3',\r\n pinkSubtleHover: '#fbcfe8',\r\n pinkSubtleActive: '#f9a8d4',\r\n pinkOn: '#ffffff',\r\n\r\n // Violet\r\n violetMain: '#7c3aed',\r\n violetHover: '#6d28d9',\r\n violetActive: '#5b21b6',\r\n violetSubtle: '#ede9fe',\r\n violetSubtleHover: '#ddd6fe',\r\n violetSubtleActive: '#c4b5fd',\r\n violetOn: '#ffffff',\r\n\r\n // Default (Slate)\r\n defaultMain: '#64748b',\r\n defaultHover: '#475569',\r\n defaultActive: '#334155',\r\n defaultSubtle: '#f1f5f9',\r\n defaultSubtleHover: '#e2e8f0',\r\n defaultSubtleActive: '#cbd5e1',\r\n\r\n // Skeleton\r\n skeletonPrimary: '#dde3ec',\r\n skeletonSecondary: '#edf0f5',\r\n\r\n // Link (Blue)\r\n linkMain: '#1e40af',\r\n linkHover: '#1d4ed8',\r\n linkActive: '#2563eb',\r\n linkDisabled: '#93c5fd',\r\n}\r\n","/**\r\n * Default breakpoint tokens\r\n */\r\nexport const themeBreakpoints = {\r\n xs: '480px', // Extra small devices (phones in landscape)\r\n sm: '640px', // Small devices (large phones, small tablets)\r\n md: '768px', // Medium devices (tablets)\r\n lg: '1024px', // Large devices (desktops)\r\n xl: '1280px', // Extra large devices (large desktops)\r\n '2xl': '1536px', // Extra extra large devices (wide screens)\r\n}\r\n","/**\r\n * Default font size tokens\r\n */\r\nexport const themeFontSize = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n}\r\n","/**\r\n * Default font weight tokens\r\n */\r\nexport const themeFontWeight = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n}\r\n","/**\r\n * Default line height tokens\r\n */\r\nexport const themeLineHeight = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n loose: 2,\r\n}\r\n","/**\r\n * Default opacity tokens\r\n */\r\nexport const themeOpacity = {\r\n none: 0,\r\n lowest: 0.05,\r\n low: 0.1,\r\n medium: 0.25,\r\n high: 0.5,\r\n higher: 0.75,\r\n full: 1,\r\n}\r\n","/**\r\n * Default border radius tokens\r\n */\r\nexport const themeRadius = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n '2xl': '1rem', // 16px\r\n full: '9999px',\r\n}\r\n","/**\r\n * Default shadow tokens\r\n */\r\nexport const themeShadows = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\r\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\r\n focus: '0 0 0 3px rgb(99 102 241 / 0.4)',\r\n dropSm: 'drop-shadow(0 1px 3px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 2px rgb(0 0 0 / 0.1))',\r\n}\r\n","/**\r\n * Default spacing tokens\r\n */\r\nexport const themeSpacing = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n 'xs+': '0.375rem', // 6px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n}\r\n","/**\r\n * Default transition tokens\r\n */\r\nexport const themeTransition = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n}\r\n","/**\r\n * Default z-index tokens\r\n */\r\nexport const themeZIndex = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n sticky: 1100,\r\n overlay: 1300,\r\n modal: 1400,\r\n popover: 1500,\r\n tooltip: 1600,\r\n toast: 1700,\r\n}\r\n","import { createTheme } from '@aurora-ds/theme'\r\nimport { lightPalette } from '@theme/_palettes/lightPalette'\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nexport const lightTheme = createTheme({\r\n colors: lightPalette,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n})\r\n","export const darkPalette = {\r\n // Surface\r\n surfaceBackground: '#0f172a',\r\n surfacePaper: '#1e293b',\r\n surfaceElevated: '#273548',\r\n\r\n // Text\r\n textPrimary: '#f8fafc',\r\n textSecondary: '#cbd5e1',\r\n textTertiary: '#64748b',\r\n textDisabled: '#475569',\r\n textInverse: '#0f172a',\r\n\r\n // Primary (Indigo brand, lighter for dark bg)\r\n primaryMain: '#a5b4fc',\r\n primaryHover: '#c7d2fe',\r\n primaryActive: '#ddd6fe',\r\n primarySubtle: '#1e1b4b',\r\n primarySubtleHover: '#2d2a5e',\r\n primarySubtleActive: '#3b3878',\r\n primaryDisabled: '#4338ca',\r\n primaryOn: '#ffffff',\r\n\r\n // Secondary (Slate dark)\r\n secondaryMain: '#1e293b',\r\n secondaryHover: '#273548',\r\n secondaryActive: '#334155',\r\n secondarySubtle: '#0f172a',\r\n secondarySubtleHover: '#1e293b',\r\n secondarySubtleActive: '#273548',\r\n secondaryDisabled: '#1e293b',\r\n secondaryOn: '#f1f5f9',\r\n\r\n // Border\r\n borderSubtle: '#1e293b',\r\n borderMain: '#334155',\r\n borderStrong: '#475569',\r\n\r\n // Disabled state\r\n disabledMain: '#334155',\r\n disabledText: '#475569',\r\n\r\n // Success (Emerald)\r\n successMain: '#6ee7b7',\r\n successHover: '#a7f3d0',\r\n successActive: '#d1fae5',\r\n successSubtle: '#052e1f',\r\n successSubtleHover: '#063d29',\r\n successSubtleActive: '#084e35',\r\n successOn: '#0a0a0a',\r\n\r\n // Warning (Amber)\r\n warningMain: '#fcd34d',\r\n warningHover: '#fde68a',\r\n warningActive: '#fef3c7',\r\n warningSubtle: '#3a2a05',\r\n warningSubtleHover: '#4d390a',\r\n warningSubtleActive: '#62480e',\r\n warningOn: '#0a0a0a',\r\n\r\n // Error (Red)\r\n errorMain: '#fca5a5',\r\n errorHover: '#fecaca',\r\n errorActive: '#fee2e2',\r\n errorSubtle: '#3a0d0d',\r\n errorSubtleHover: '#4d1212',\r\n errorSubtleActive: '#621818',\r\n errorOn: '#0a0a0a',\r\n\r\n // Info (Sky)\r\n infoMain: '#7dd3fc',\r\n infoHover: '#bae6fd',\r\n infoActive: '#e0f2fe',\r\n infoSubtle: '#08263a',\r\n infoSubtleHover: '#0a3352',\r\n infoSubtleActive: '#0c4068',\r\n infoOn: '#0a0a0a',\r\n\r\n // Orange\r\n orangeMain: '#fdba74',\r\n orangeHover: '#fed7aa',\r\n orangeActive: '#ffedd5',\r\n orangeSubtle: '#3b1906',\r\n orangeSubtleHover: '#4f2309',\r\n orangeSubtleActive: '#642d0d',\r\n orangeOn: '#0a0a0a',\r\n\r\n // Pink\r\n pinkMain: '#f9a8d4',\r\n pinkHover: '#fbcfe8',\r\n pinkActive: '#fce7f3',\r\n pinkSubtle: '#3d0f28',\r\n pinkSubtleHover: '#511539',\r\n pinkSubtleActive: '#66204b',\r\n pinkOn: '#0a0a0a',\r\n\r\n // Violet\r\n violetMain: '#c4b5fd',\r\n violetHover: '#ddd6fe',\r\n violetActive: '#ede9fe',\r\n violetSubtle: '#22103f',\r\n violetSubtleHover: '#2f1856',\r\n violetSubtleActive: '#3d2270',\r\n violetOn: '#0a0a0a',\r\n\r\n // Default (Slate)\r\n defaultMain: '#94a3b8',\r\n defaultHover: '#cbd5e1',\r\n defaultActive: '#e2e8f0',\r\n defaultSubtle: '#1e293b',\r\n defaultSubtleHover: '#273548',\r\n defaultSubtleActive: '#334155',\r\n\r\n // Skeleton\r\n skeletonPrimary: '#1e293b',\r\n skeletonSecondary: '#3d5068',\r\n\r\n // Link (Blue)\r\n linkMain: '#93c5fd',\r\n linkHover: '#bfdbfe',\r\n linkActive: '#dbeafe',\r\n linkDisabled: '#1e40af',\r\n}\r\n","import { createTheme } from '@aurora-ds/theme'\r\nimport { darkPalette } from '@theme/_palettes/darkPalette'\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nexport const darkTheme = createTheme({\r\n colors: darkPalette,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n})\r\n"],"names":["_jsx","ICON_SIZE","LABEL_FONT_SIZE","_jsxs","VIEWPORT_MARGIN_PX","_Fragment","ICON_SIZE_MAP","HELPER_COLOR_MAP"],"mappings":"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"}
|