@juspay/blend-design-system 0.0.37-beta.2 → 0.0.37-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Badge/Badge.d.ts +3 -0
- package/dist/components/Badge/Badge.types.d.ts +34 -0
- package/dist/components/Badge/badge.dark.tokens.d.ts +3 -0
- package/dist/components/Badge/badge.light.tokens.d.ts +3 -0
- package/dist/components/Badge/badge.tokens.d.ts +55 -0
- package/dist/components/Badge/badge.utils.d.ts +11 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/ChartsV2/chartV2Options.d.ts +3 -0
- package/dist/components/ChatInput/ChatInput.d.ts +1 -1
- package/dist/components/CodeEditorV2/codeEditorV2.tokens.d.ts +2 -2
- package/dist/components/CodeEditorV2/utils.d.ts +9 -0
- package/dist/components/DataTable/DataTablePagination.d.ts +2 -1
- package/dist/components/DataTable/TableBody/types.d.ts +5 -1
- package/dist/components/DataTable/TableFooter/types.d.ts +1 -0
- package/dist/components/DataTable/TableHeader/FilterComponents.d.ts +7 -2
- package/dist/components/DataTable/TableHeader/handlers.d.ts +1 -1
- package/dist/components/DataTable/types.d.ts +5 -0
- package/dist/components/DataTable/utils.d.ts +8 -0
- package/dist/components/DateRangePicker/types.d.ts +6 -0
- package/dist/components/Directory/directory.tokens.d.ts +6 -0
- package/dist/components/DrawerV2/DrawerV2.d.ts +15 -0
- package/dist/components/InputsV2/ChatInputV2/AttachmentDropdown.d.ts +11 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputTagV2.d.ts +13 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.d.ts +19 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.dark.tokens.d.ts +4 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.light.tokens.d.ts +3 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.tokens.d.ts +125 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.types.d.ts +54 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.d.ts +13 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2Mobile.dark.tokens.d.ts +4 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2Mobile.light.tokens.d.ts +3 -0
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2Mobile.tokens.d.ts +60 -0
- package/dist/components/InputsV2/ChatInputV2/MobileChatInputV2.d.ts +17 -0
- package/dist/components/InputsV2/ChatInputV2/index.d.ts +4 -0
- package/dist/components/InputsV2/ChatInputV2/utils.d.ts +43 -0
- package/dist/components/InputsV2/MultiValueInputV2/MultiValueInputV2.d.ts +1 -1
- package/dist/components/InputsV2/NumberInputV2/NumberInputV2.d.ts +32 -0
- package/dist/components/InputsV2/NumberInputV2/NumberInputV2.dark.tokens.d.ts +3 -0
- package/dist/components/InputsV2/NumberInputV2/NumberInputV2.light.tokens.d.ts +3 -0
- package/dist/components/InputsV2/NumberInputV2/NumberInputV2Stepper.d.ts +14 -0
- package/dist/components/InputsV2/NumberInputV2/NumberInputV2Unit.d.ts +12 -0
- package/dist/components/InputsV2/NumberInputV2/StepperArrow.d.ts +2 -0
- package/dist/components/InputsV2/NumberInputV2/index.d.ts +3 -0
- package/dist/components/InputsV2/NumberInputV2/numberInputV2.tokens.d.ts +135 -0
- package/dist/components/InputsV2/NumberInputV2/numberInputV2.types.d.ts +41 -0
- package/dist/components/InputsV2/NumberInputV2/utils.d.ts +52 -0
- package/dist/components/InputsV2/OTPInputV2/OTPInputV2.d.ts +14 -0
- package/dist/components/InputsV2/OTPInputV2/OTPInputV2.dark.tokens.d.ts +3 -0
- package/dist/components/InputsV2/OTPInputV2/OTPInputV2.light.tokens.d.ts +3 -0
- package/dist/components/InputsV2/OTPInputV2/OTPInputV2.tokens.d.ts +34 -0
- package/dist/components/InputsV2/OTPInputV2/OTPInputV2.types.d.ts +13 -0
- package/dist/components/InputsV2/OTPInputV2/index.d.ts +3 -0
- package/dist/components/InputsV2/OTPInputV2/otpInputV2Utils.d.ts +47 -0
- package/dist/components/InputsV2/SearchInputV2/SearchInputV2.d.ts +14 -0
- package/dist/components/InputsV2/SearchInputV2/SearchInputV2.dark.tokens.d.ts +3 -0
- package/dist/components/InputsV2/SearchInputV2/SearchInputV2.light.tokens.d.ts +3 -0
- package/dist/components/InputsV2/SearchInputV2/SearchInputV2.tokens.d.ts +92 -0
- package/dist/components/InputsV2/SearchInputV2/SearchInputV2.types.d.ts +13 -0
- package/dist/components/InputsV2/SearchInputV2/index.d.ts +3 -0
- package/dist/components/InputsV2/TextAreaV2/TextAreaV2.d.ts +23 -0
- package/dist/components/InputsV2/TextAreaV2/TextAreaV2.dark.tokens.d.ts +3 -0
- package/dist/components/InputsV2/TextAreaV2/TextAreaV2.light.tokens.d.ts +3 -0
- package/dist/components/InputsV2/TextAreaV2/TextAreaV2.tokens.d.ts +63 -0
- package/dist/components/InputsV2/TextAreaV2/TextAreaV2.types.d.ts +22 -0
- package/dist/components/InputsV2/TextAreaV2/index.d.ts +3 -0
- package/dist/components/InputsV2/TextAreaV2/utils.d.ts +47 -0
- package/dist/components/InputsV2/TextInputV2/TextInputV2.d.ts +3 -1
- package/dist/components/InputsV2/TextInputV2/TextInputV2.types.d.ts +24 -1
- package/dist/components/InputsV2/TextInputV2/utils.d.ts +5 -3
- package/dist/components/InputsV2/utils/FloatingLabelsV2/FloatingLabelsV2.d.ts +3 -1
- package/dist/components/InputsV2/utils/utils.d.ts +10 -0
- package/dist/components/Primitives/Block/Block.d.ts +1 -1
- package/dist/components/ProgressBarV2/utils.d.ts +40 -0
- package/dist/components/SidebarV2/SecondarySidebar.d.ts +9 -0
- package/dist/components/SidebarV2/SidebarV2.d.ts +3 -0
- package/dist/components/SidebarV2/SidebarV2Footer.d.ts +10 -0
- package/dist/components/SidebarV2/SidebarV2Header.d.ts +24 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/MobileNavigationItem.d.ts +4 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/MoreButton.d.ts +3 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/PrimaryActionButton.d.ts +3 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/hooks.d.ts +6 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/index.d.ts +3 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/mobile.dark.tokens.d.ts +3 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/mobile.light.tokens.d.ts +3 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/mobile.tokens.d.ts +87 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/types.d.ts +28 -0
- package/dist/components/SidebarV2/SidebarV2MobileNavigation/utils.d.ts +25 -0
- package/dist/components/SidebarV2/SidebarV2Panel.d.ts +34 -0
- package/dist/components/SidebarV2/index.d.ts +5 -0
- package/dist/components/SidebarV2/sidebarV2.dark.tokens.d.ts +3 -0
- package/dist/components/SidebarV2/sidebarV2.light.tokens.d.ts +3 -0
- package/dist/components/SidebarV2/sidebarV2.tokens.d.ts +106 -0
- package/dist/components/SidebarV2/sidebarV2.types.d.ts +1 -0
- package/dist/components/SidebarV2/types.d.ts +51 -0
- package/dist/components/SidebarV2/utils.d.ts +8 -0
- package/dist/components/StepperV2/Stepper/StepStatusCircle.d.ts +11 -0
- package/dist/components/StepperV2/Stepper/StepperComponent.d.ts +9 -0
- package/dist/components/StepperV2/Stepper/Steps.d.ts +7 -0
- package/dist/components/StepperV2/Stepper/StepsHorizontalBody.d.ts +15 -0
- package/dist/components/StepperV2/Stepper/StepsSubstepList.d.ts +18 -0
- package/dist/components/StepperV2/Stepper/StepsVerticalSubstepRails.d.ts +12 -0
- package/dist/components/StepperV2/Stepper/VerticalLineV2.d.ts +5 -0
- package/dist/components/StepperV2/Stepper/stepsHelpers.d.ts +10 -0
- package/dist/components/StepperV2/StepperV2.d.ts +9 -0
- package/dist/components/StepperV2/index.d.ts +4 -0
- package/dist/components/StepperV2/stepperV2.dark.tokens.d.ts +3 -0
- package/dist/components/StepperV2/stepperV2.light.tokens.d.ts +3 -0
- package/dist/components/StepperV2/stepperV2.tokens.d.ts +99 -0
- package/dist/components/StepperV2/stepperV2.types.d.ts +61 -0
- package/dist/components/StepperV2/utils.d.ts +4 -0
- package/dist/components/Tabs/tabs.token.d.ts +1 -1
- package/dist/components/Tabs/types.d.ts +1 -0
- package/dist/components/TabsV2/tabsV2.types.d.ts +1 -0
- package/dist/components/TagV2/TagV2.d.ts +1 -1
- package/dist/components/TopbarV2/TopbarV2.d.ts +3 -0
- package/dist/components/TopbarV2/index.d.ts +3 -0
- package/dist/components/TopbarV2/topbarV2.dark.tokens.d.ts +3 -0
- package/dist/components/TopbarV2/topbarV2.light.tokens.d.ts +3 -0
- package/dist/components/TopbarV2/topbarV2.tokens.d.ts +83 -0
- package/dist/components/TopbarV2/types.d.ts +50 -0
- package/dist/components/common/TruncatedTextWithTooltipV2/TruncatedTextWithTooltipV2.d.ts +2 -0
- package/dist/components/common/TruncatedTextWithTooltipV2/index.d.ts +2 -0
- package/dist/components/common/TruncatedTextWithTooltipV2/types.d.ts +16 -0
- package/dist/components/common/TruncatedTextWithTooltipV2/utils.d.ts +1 -0
- package/dist/components/common/index.d.ts +1 -0
- package/dist/context/ThemeContext.d.ts +22 -0
- package/dist/context/useComponentToken.d.ts +12 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useResizeObserver.d.ts +1 -1
- package/dist/hooks/useSectionScroll.d.ts +24 -0
- package/dist/hooks/useTruncationDetection.d.ts +1 -1
- package/dist/main.d.ts +107 -33
- package/dist/main.js +118076 -108882
- package/dist/node-CRWdZOVN.js +14736 -0
- package/dist/node.d.ts +35 -0
- package/dist/node.js +31 -0
- package/dist/style.css +1 -0
- package/dist/token-engine-server.d.ts +9 -0
- package/dist/token-engine.d.ts +10 -0
- package/dist/tokens/unit.tokens.d.ts +3 -0
- package/dist/tokens-server.d.ts +2 -0
- package/dist/tokens-server.js +779 -0
- package/dist/tokens.d.ts +2 -0
- package/dist/tokens.js +233 -0
- package/lib/breakpoints/breakPoints.ts +8 -0
- package/lib/components/Accordion/Accordion.tsx +109 -0
- package/lib/components/Accordion/AccordionItem.tsx +612 -0
- package/lib/components/Accordion/accessibility/AccordionAccessibility.tsx +547 -0
- package/lib/components/Accordion/accessibility/AccordionAccessibilityReport.ts +373 -0
- package/lib/components/Accordion/accessibility/index.ts +2 -0
- package/lib/components/Accordion/accordion.tokens.ts +299 -0
- package/lib/components/Accordion/index.ts +4 -0
- package/lib/components/Accordion/types.ts +43 -0
- package/lib/components/AccordionV2/AccordionV2.tsx +129 -0
- package/lib/components/AccordionV2/AccordionV2Chevron.tsx +67 -0
- package/lib/components/AccordionV2/AccordionV2Item.tsx +288 -0
- package/lib/components/AccordionV2/AccordionV2TriggerContent.tsx +227 -0
- package/lib/components/AccordionV2/accordionV2.animations.ts +26 -0
- package/lib/components/AccordionV2/accordionV2.dark.tokens.ts +208 -0
- package/lib/components/AccordionV2/accordionV2.light.tokens.ts +208 -0
- package/lib/components/AccordionV2/accordionV2.tokens.ts +89 -0
- package/lib/components/AccordionV2/accordionV2.types.ts +39 -0
- package/lib/components/AccordionV2/index.ts +4 -0
- package/lib/components/Alert/Alert.tsx +383 -0
- package/lib/components/Alert/accessibility/AlertAccessibility.tsx +425 -0
- package/lib/components/Alert/accessibility/AlertAccessibilityReport.ts +549 -0
- package/lib/components/Alert/accessibility/index.ts +2 -0
- package/lib/components/Alert/alert.tokens.ts +385 -0
- package/lib/components/Alert/index.ts +3 -0
- package/lib/components/Alert/types.ts +41 -0
- package/lib/components/AlertV2/AlertV2.tsx +366 -0
- package/lib/components/AlertV2/alertV2.dark.tokens.ts +335 -0
- package/lib/components/AlertV2/alertV2.light.tokens.ts +335 -0
- package/lib/components/AlertV2/alertV2.tokens.ts +94 -0
- package/lib/components/AlertV2/alertV2.types.ts +63 -0
- package/lib/components/AlertV2/index.ts +3 -0
- package/lib/components/Avatar/Avatar.tsx +385 -0
- package/lib/components/Avatar/StyledAvatar.tsx +8 -0
- package/lib/components/Avatar/accessibility/AvatarAccessibility.tsx +784 -0
- package/lib/components/Avatar/accessibility/AvatarAccessibilityReport.ts +512 -0
- package/lib/components/Avatar/accessibility/index.ts +2 -0
- package/lib/components/Avatar/avatar.tokens.ts +450 -0
- package/lib/components/Avatar/avatarUtils.ts +102 -0
- package/lib/components/Avatar/index.ts +3 -0
- package/lib/components/Avatar/types.ts +46 -0
- package/lib/components/AvatarGroup/AvatarGroup.tsx +178 -0
- package/lib/components/AvatarGroup/StyledAvatarGroup.tsx +122 -0
- package/lib/components/AvatarGroup/accessibility/AvatarGroupAccessibility.tsx +517 -0
- package/lib/components/AvatarGroup/accessibility/AvatarGroupAccessibilityReport.ts +416 -0
- package/lib/components/AvatarGroup/accessibility/index.ts +2 -0
- package/lib/components/AvatarGroup/avatarGroup.tokens.ts +233 -0
- package/lib/components/AvatarGroup/avatarGroupUtils.tsx +68 -0
- package/lib/components/AvatarGroup/index.ts +3 -0
- package/lib/components/AvatarGroup/types.ts +39 -0
- package/lib/components/AvatarV2/AvatarV2.tsx +361 -0
- package/lib/components/AvatarV2/avatarV2.dark.tokens.ts +333 -0
- package/lib/components/AvatarV2/avatarV2.light.tokens.ts +333 -0
- package/lib/components/AvatarV2/avatarV2.tokens.ts +93 -0
- package/lib/components/AvatarV2/avatarV2.types.ts +96 -0
- package/lib/components/AvatarV2/avatarV2.utils.ts +223 -0
- package/lib/components/AvatarV2/index.ts +15 -0
- package/lib/components/Badge/Badge.tsx +169 -0
- package/lib/components/Badge/Badge.types.ts +47 -0
- package/lib/components/Badge/badge.dark.tokens.ts +149 -0
- package/lib/components/Badge/badge.light.tokens.ts +149 -0
- package/lib/components/Badge/badge.tokens.ts +71 -0
- package/lib/components/Badge/badge.utils.ts +113 -0
- package/lib/components/Badge/index.ts +2 -0
- package/lib/components/Breadcrumb/Breadcrumb.tsx +229 -0
- package/lib/components/Breadcrumb/BreadcrumbSkeleton.tsx +37 -0
- package/lib/components/Breadcrumb/accessibility/BreadcrumbAccessibility.tsx +629 -0
- package/lib/components/Breadcrumb/accessibility/BreadcrumbAccessibilityReport.ts +552 -0
- package/lib/components/Breadcrumb/accessibility/index.ts +6 -0
- package/lib/components/Breadcrumb/breadcrumb.tokens.ts +104 -0
- package/lib/components/Breadcrumb/index.ts +3 -0
- package/lib/components/Breadcrumb/types.ts +20 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2.tsx +93 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2Icon.tsx +18 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2Item.tsx +67 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2List.tsx +102 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2OverflowMenu.tsx +106 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2Page.tsx +27 -0
- package/lib/components/BreadcrumbV2/BreadcrumbV2Separator.tsx +24 -0
- package/lib/components/BreadcrumbV2/breadcrumbV2.dark.tokens.ts +61 -0
- package/lib/components/BreadcrumbV2/breadcrumbV2.light.tokens.ts +61 -0
- package/lib/components/BreadcrumbV2/breadcrumbV2.tokens.ts +47 -0
- package/lib/components/BreadcrumbV2/breadcrumbV2.types.ts +53 -0
- package/lib/components/BreadcrumbV2/index.ts +3 -0
- package/lib/components/BreadcrumbV2/utils.ts +196 -0
- package/lib/components/Button/ACCESSIBILITY_REPORT.md +740 -0
- package/lib/components/Button/Button.tsx +109 -0
- package/lib/components/Button/ButtonBase.tsx +329 -0
- package/lib/components/Button/accessibility/ButtonAccessibility.tsx +1043 -0
- package/lib/components/Button/accessibility/ButtonAccessibilityReport.ts +578 -0
- package/lib/components/Button/accessibility/index.ts +7 -0
- package/lib/components/Button/button.tokens.ts +1846 -0
- package/lib/components/Button/index.ts +3 -0
- package/lib/components/Button/types.ts +48 -0
- package/lib/components/ButtonGroup/ButtonGroup.tsx +53 -0
- package/lib/components/ButtonGroup/accessibility/ButtonGroupAccessibility.tsx +483 -0
- package/lib/components/ButtonGroup/accessibility/ButtonGroupAccessibilityReport.ts +159 -0
- package/lib/components/ButtonGroup/accessibility/index.ts +7 -0
- package/lib/components/ButtonGroup/index.ts +2 -0
- package/lib/components/ButtonGroup/types.ts +7 -0
- package/lib/components/ButtonV2/ButtonGroupV2/ButtonGroupV2.tsx +32 -0
- package/lib/components/ButtonV2/ButtonGroupV2/buttonGroupV2.types.ts +15 -0
- package/lib/components/ButtonV2/ButtonGroupV2/index.ts +6 -0
- package/lib/components/ButtonV2/ButtonGroupV2/utils.ts +19 -0
- package/lib/components/ButtonV2/ButtonV2.tsx +335 -0
- package/lib/components/ButtonV2/IconButton.tsx +38 -0
- package/lib/components/ButtonV2/LinkButton.tsx +179 -0
- package/lib/components/ButtonV2/VisuallyHidden.tsx +13 -0
- package/lib/components/ButtonV2/buttonV2.dark.tokens.ts +1407 -0
- package/lib/components/ButtonV2/buttonV2.light.tokens.ts +1493 -0
- package/lib/components/ButtonV2/buttonV2.tokens.ts +87 -0
- package/lib/components/ButtonV2/buttonV2.types.ts +86 -0
- package/lib/components/ButtonV2/index.ts +8 -0
- package/lib/components/ButtonV2/utils.ts +348 -0
- package/lib/components/Card/Card.tsx +141 -0
- package/lib/components/Card/CardComponents.tsx +627 -0
- package/lib/components/Card/CardSkeleton.tsx +27 -0
- package/lib/components/Card/accessibility/CardAccessibility.tsx +912 -0
- package/lib/components/Card/accessibility/CardAccessibilityReport.ts +351 -0
- package/lib/components/Card/card.tokens.ts +360 -0
- package/lib/components/Card/index.ts +3 -0
- package/lib/components/Card/types.ts +74 -0
- package/lib/components/Card/utils.ts +217 -0
- package/lib/components/Charts/BlendChart.tsx +167 -0
- package/lib/components/Charts/BlendChart.types.ts +39 -0
- package/lib/components/Charts/BlendChartContainer.tsx +23 -0
- package/lib/components/Charts/BlendChartHeader.tsx +26 -0
- package/lib/components/Charts/ChartContainer.tsx +30 -0
- package/lib/components/Charts/ChartHeader.tsx +190 -0
- package/lib/components/Charts/ChartLegend.tsx +756 -0
- package/lib/components/Charts/ChartUtils.tsx +530 -0
- package/lib/components/Charts/Charts.tsx +1002 -0
- package/lib/components/Charts/ChartsSkeleton.tsx +31 -0
- package/lib/components/Charts/CoreChart.tsx +73 -0
- package/lib/components/Charts/CustomTooltip.tsx +876 -0
- package/lib/components/Charts/DateTimeFormatter.ts +769 -0
- package/lib/components/Charts/SankeyChartWrapper.tsx +345 -0
- package/lib/components/Charts/SankeyLink.tsx +95 -0
- package/lib/components/Charts/SankeyNode.tsx +113 -0
- package/lib/components/Charts/accessibility/ChartsAccessibility.tsx +827 -0
- package/lib/components/Charts/accessibility/ChartsAccessibilityReport.ts +370 -0
- package/lib/components/Charts/chart.tokens.ts +144 -0
- package/lib/components/Charts/index.ts +15 -0
- package/lib/components/Charts/renderChart.tsx +1385 -0
- package/lib/components/Charts/types.tsx +309 -0
- package/lib/components/Charts/utils.tsx +60 -0
- package/lib/components/ChartsV2/ChartContainerV2.tsx +30 -0
- package/lib/components/ChartsV2/ChartHeaderV2.tsx +27 -0
- package/lib/components/ChartsV2/ChartV2.tsx +94 -0
- package/lib/components/ChartsV2/ChartV2Fullscreen.tsx +157 -0
- package/lib/components/ChartsV2/ChartV2Legend.tsx +174 -0
- package/lib/components/ChartsV2/ChartV2NoData.tsx +48 -0
- package/lib/components/ChartsV2/ChartV2Skeleton.tsx +37 -0
- package/lib/components/ChartsV2/chartV2.dark.tokens.ts +200 -0
- package/lib/components/ChartsV2/chartV2.light.tokens.ts +197 -0
- package/lib/components/ChartsV2/chartV2.sankey.ts +13 -0
- package/lib/components/ChartsV2/chartV2.tokens.ts +117 -0
- package/lib/components/ChartsV2/chartV2.types.ts +84 -0
- package/lib/components/ChartsV2/chartV2Options.ts +119 -0
- package/lib/components/ChartsV2/index.ts +9 -0
- package/lib/components/ChartsV2/useChartLegend.ts +25 -0
- package/lib/components/ChartsV2/useChartLegendHover.ts +116 -0
- package/lib/components/ChartsV2/useChartRefs.ts +29 -0
- package/lib/components/ChartsV2/utils.ts +92 -0
- package/lib/components/ChatInput/AttachmentFile.tsx +266 -0
- package/lib/components/ChatInput/ChatInput.tsx +577 -0
- package/lib/components/ChatInput/MobileChatInput.tsx +240 -0
- package/lib/components/ChatInput/accessibility/ChatInputAccessibility.tsx +597 -0
- package/lib/components/ChatInput/accessibility/ChatInputAccessibilityReport.ts +314 -0
- package/lib/components/ChatInput/accessibility/index.ts +7 -0
- package/lib/components/ChatInput/chatInput.tokens.ts +575 -0
- package/lib/components/ChatInput/index.tsx +3 -0
- package/lib/components/ChatInput/types.ts +121 -0
- package/lib/components/ChatInput/utils.ts +151 -0
- package/lib/components/Checkbox/Checkbox.tsx +308 -0
- package/lib/components/Checkbox/StyledCheckbox.tsx +100 -0
- package/lib/components/Checkbox/accessibility/CheckboxAccessibility.tsx +1080 -0
- package/lib/components/Checkbox/accessibility/CheckboxAccessibilityReport.ts +580 -0
- package/lib/components/Checkbox/accessibility/index.ts +6 -0
- package/lib/components/Checkbox/checkbox.animations.ts +85 -0
- package/lib/components/Checkbox/checkbox.token.ts +366 -0
- package/lib/components/Checkbox/checkboxUtils.ts +144 -0
- package/lib/components/Checkbox/index.ts +2 -0
- package/lib/components/Checkbox/types.ts +39 -0
- package/lib/components/CodeBlock/CodeBlock.tsx +358 -0
- package/lib/components/CodeBlock/CodeBlockDiffView/CodeBlockDiffView.tsx +488 -0
- package/lib/components/CodeBlock/CodeBlockDiffView/types.ts +18 -0
- package/lib/components/CodeBlock/CodeBlockDiffView/utils.ts +26 -0
- package/lib/components/CodeBlock/CodeBlockLineParts.tsx +300 -0
- package/lib/components/CodeBlock/accessibility/CodeBlockAccessibility.tsx +697 -0
- package/lib/components/CodeBlock/accessibility/CodeBlockAccessibilityReport.ts +350 -0
- package/lib/components/CodeBlock/codeBlock.token.ts +322 -0
- package/lib/components/CodeBlock/index.ts +2 -0
- package/lib/components/CodeBlock/types.ts +72 -0
- package/lib/components/CodeBlock/utils.ts +712 -0
- package/lib/components/CodeEditor/CodeEditor.tsx +101 -0
- package/lib/components/CodeEditor/CodeEditorHeader.tsx +125 -0
- package/lib/components/CodeEditor/MonacoEditorWrapper.tsx +621 -0
- package/lib/components/CodeEditor/index.ts +2 -0
- package/lib/components/CodeEditor/monaco-editor.css +1 -0
- package/lib/components/CodeEditor/types.ts +49 -0
- package/lib/components/CodeEditor/utils.ts +27 -0
- package/lib/components/CodeEditorV2/CodeEditorV2.tsx +156 -0
- package/lib/components/CodeEditorV2/CodeEditorV2Header.tsx +123 -0
- package/lib/components/CodeEditorV2/MonacoEditor/MonacoEditorWrapper.tsx +395 -0
- package/lib/components/CodeEditorV2/MonacoEditor/monaco-editor.css +1 -0
- package/lib/components/CodeEditorV2/MonacoEditor/monacoTheme.ts +133 -0
- package/lib/components/CodeEditorV2/codeEditorV2.dark.tokens.ts +168 -0
- package/lib/components/CodeEditorV2/codeEditorV2.light.token.ts +170 -0
- package/lib/components/CodeEditorV2/codeEditorV2.tokens.ts +99 -0
- package/lib/components/CodeEditorV2/codeEditorV2.types.ts +132 -0
- package/lib/components/CodeEditorV2/index.ts +3 -0
- package/lib/components/CodeEditorV2/utils.ts +504 -0
- package/lib/components/DataTable/ColumnFilter/index.tsx +284 -0
- package/lib/components/DataTable/ColumnManager.tsx +322 -0
- package/lib/components/DataTable/DataTable.tsx +2052 -0
- package/lib/components/DataTable/DataTableHeader/index.tsx +775 -0
- package/lib/components/DataTable/DataTableHeader/types.ts +31 -0
- package/lib/components/DataTable/DataTablePagination.tsx +602 -0
- package/lib/components/DataTable/MobileColumnDrawer/index.tsx +407 -0
- package/lib/components/DataTable/MobileColumnManagerDrawer/index.tsx +164 -0
- package/lib/components/DataTable/TableBody/BulkActionBar.tsx +309 -0
- package/lib/components/DataTable/TableBody/index.tsx +1619 -0
- package/lib/components/DataTable/TableBody/types.ts +57 -0
- package/lib/components/DataTable/TableCell/index.tsx +590 -0
- package/lib/components/DataTable/TableCell/types.ts +24 -0
- package/lib/components/DataTable/TableFooter/index.tsx +63 -0
- package/lib/components/DataTable/TableFooter/types.ts +15 -0
- package/lib/components/DataTable/TableHeader/DraggableColumnHeader.tsx +71 -0
- package/lib/components/DataTable/TableHeader/FilterComponents.tsx +1549 -0
- package/lib/components/DataTable/TableHeader/MobileFilterDrawer.tsx +772 -0
- package/lib/components/DataTable/TableHeader/handlers.ts +232 -0
- package/lib/components/DataTable/TableHeader/index.tsx +2143 -0
- package/lib/components/DataTable/TableHeader/types.ts +84 -0
- package/lib/components/DataTable/TableHeader/utils.ts +302 -0
- package/lib/components/DataTable/accessibility/DataTableAccessibility.tsx +579 -0
- package/lib/components/DataTable/accessibility/DataTableAccessibilityReport.ts +250 -0
- package/lib/components/DataTable/accessibility/index.ts +7 -0
- package/lib/components/DataTable/columnTypes.ts +359 -0
- package/lib/components/DataTable/dataTable.tokens.ts +802 -0
- package/lib/components/DataTable/hooks/index.ts +2 -0
- package/lib/components/DataTable/hooks/useMobileDataTable.ts +35 -0
- package/lib/components/DataTable/index.ts +23 -0
- package/lib/components/DataTable/types.ts +447 -0
- package/lib/components/DataTable/utils.ts +1358 -0
- package/lib/components/DateRangePicker/CalendarGrid.tsx +1012 -0
- package/lib/components/DateRangePicker/DateRangePicker.tsx +1278 -0
- package/lib/components/DateRangePicker/MobileDrawerPresets.tsx +174 -0
- package/lib/components/DateRangePicker/QuickRangeSelector.tsx +241 -0
- package/lib/components/DateRangePicker/TimeSelector.tsx +446 -0
- package/lib/components/DateRangePicker/accessibility/DateRangePickerAccessibility.tsx +488 -0
- package/lib/components/DateRangePicker/accessibility/DateRangePickerAccessibilityReport.ts +547 -0
- package/lib/components/DateRangePicker/accessibility/index.ts +4 -0
- package/lib/components/DateRangePicker/components/ActionButtons.tsx +76 -0
- package/lib/components/DateRangePicker/components/DatePickerComponent.tsx +291 -0
- package/lib/components/DateRangePicker/components/PresetItem.tsx +139 -0
- package/lib/components/DateRangePicker/components/ScrollablePicker.tsx +618 -0
- package/lib/components/DateRangePicker/components/mobile.tokens.ts +167 -0
- package/lib/components/DateRangePicker/constants.ts +42 -0
- package/lib/components/DateRangePicker/dateRangePicker.tokens.ts +492 -0
- package/lib/components/DateRangePicker/index.ts +4 -0
- package/lib/components/DateRangePicker/types.ts +420 -0
- package/lib/components/DateRangePicker/utils.ts +4391 -0
- package/lib/components/Directory/Directory.tsx +75 -0
- package/lib/components/Directory/NavItem.tsx +517 -0
- package/lib/components/Directory/Section.tsx +270 -0
- package/lib/components/Directory/directory.tokens.ts +283 -0
- package/lib/components/Directory/index.ts +3 -0
- package/lib/components/Directory/types.ts +52 -0
- package/lib/components/Directory/utils.ts +77 -0
- package/lib/components/Drawer/Drawer.tsx +31 -0
- package/lib/components/Drawer/accessibility/DrawerAccessibility.tsx +749 -0
- package/lib/components/Drawer/accessibility/DrawerAccessibilityReport.ts +394 -0
- package/lib/components/Drawer/components/Drawer.css +21 -0
- package/lib/components/Drawer/components/DrawerBase.tsx +738 -0
- package/lib/components/Drawer/components/NestedSelectDrawer.tsx +843 -0
- package/lib/components/Drawer/components/SelectDrawer.tsx +701 -0
- package/lib/components/Drawer/components/StatusDrawer.tsx +127 -0
- package/lib/components/Drawer/drawer.tokens.ts +141 -0
- package/lib/components/Drawer/index.ts +20 -0
- package/lib/components/Drawer/types.ts +424 -0
- package/lib/components/DrawerV2/DrawerV2.tsx +131 -0
- package/lib/components/DrawerV2/index.ts +16 -0
- package/lib/components/DrawerV2/types.ts +58 -0
- package/lib/components/GradientBlur/GradientBlur.css +107 -0
- package/lib/components/GradientBlur/GradientBlur.tsx +16 -0
- package/lib/components/Inputs/AutofillStyles/AutofillStyles.ts +23 -0
- package/lib/components/Inputs/DropdownInput/DropdownInput.tsx +419 -0
- package/lib/components/Inputs/DropdownInput/accessibility/DropdownInputAccessibility.tsx +674 -0
- package/lib/components/Inputs/DropdownInput/accessibility/DropdownInputAccessibilityReport.ts +444 -0
- package/lib/components/Inputs/DropdownInput/dropdownInput.tokens.ts +304 -0
- package/lib/components/Inputs/DropdownInput/index.ts +3 -0
- package/lib/components/Inputs/DropdownInput/types.ts +51 -0
- package/lib/components/Inputs/MultiValueInput/MultiValueInput.tsx +324 -0
- package/lib/components/Inputs/MultiValueInput/accessibility/MultiValueInputAccessibility.tsx +501 -0
- package/lib/components/Inputs/MultiValueInput/accessibility/MultiValueInputAccessibilityReport.ts +479 -0
- package/lib/components/Inputs/MultiValueInput/index.ts +3 -0
- package/lib/components/Inputs/MultiValueInput/multiValueInput.tokens.ts +302 -0
- package/lib/components/Inputs/MultiValueInput/types.ts +38 -0
- package/lib/components/Inputs/NumberInput/NumberInput.tsx +623 -0
- package/lib/components/Inputs/NumberInput/accessibility/NumberInputAccessibility.tsx +581 -0
- package/lib/components/Inputs/NumberInput/accessibility/NumberInputAccessibilityReport.ts +333 -0
- package/lib/components/Inputs/NumberInput/index.ts +3 -0
- package/lib/components/Inputs/NumberInput/numberInput.tokens.ts +382 -0
- package/lib/components/Inputs/NumberInput/types.ts +23 -0
- package/lib/components/Inputs/NumberInput/utils.ts +329 -0
- package/lib/components/Inputs/OTPInput/OTPInput.tsx +355 -0
- package/lib/components/Inputs/OTPInput/accessibility/OTPInputAccessibility.tsx +456 -0
- package/lib/components/Inputs/OTPInput/accessibility/OTPInputAccessibilityReport.ts +466 -0
- package/lib/components/Inputs/OTPInput/index.ts +3 -0
- package/lib/components/Inputs/OTPInput/otpInput.tokens.ts +255 -0
- package/lib/components/Inputs/OTPInput/types.ts +17 -0
- package/lib/components/Inputs/SearchInput/SearchInput.tsx +299 -0
- package/lib/components/Inputs/SearchInput/accessibility/SearchInputAccessibility.tsx +644 -0
- package/lib/components/Inputs/SearchInput/accessibility/SearchInputAccessibilityReport.ts +428 -0
- package/lib/components/Inputs/SearchInput/index.ts +3 -0
- package/lib/components/Inputs/SearchInput/searchInput.tokens.ts +238 -0
- package/lib/components/Inputs/SearchInput/types.ts +13 -0
- package/lib/components/Inputs/TextArea/TextArea.tsx +227 -0
- package/lib/components/Inputs/TextArea/accessibility/TextAreaAccessibility.tsx +466 -0
- package/lib/components/Inputs/TextArea/accessibility/TextAreaAccessibilityReport.ts +476 -0
- package/lib/components/Inputs/TextArea/index.ts +2 -0
- package/lib/components/Inputs/TextArea/textarea.token.ts +264 -0
- package/lib/components/Inputs/TextArea/types.ts +26 -0
- package/lib/components/Inputs/TextInput/TextInput.tsx +448 -0
- package/lib/components/Inputs/TextInput/accessibility/TextInputAccessibility.tsx +598 -0
- package/lib/components/Inputs/TextInput/accessibility/TextInputAccessibilityReport.ts +576 -0
- package/lib/components/Inputs/TextInput/index.ts +3 -0
- package/lib/components/Inputs/TextInput/textInput.tokens.ts +305 -0
- package/lib/components/Inputs/TextInput/types.ts +41 -0
- package/lib/components/Inputs/TextInput/utils.ts +43 -0
- package/lib/components/Inputs/UnitInput/UnitInput.tsx +379 -0
- package/lib/components/Inputs/UnitInput/accessibility/UnitInputAccessibility.tsx +587 -0
- package/lib/components/Inputs/UnitInput/accessibility/UnitInputAccessibilityReport.ts +322 -0
- package/lib/components/Inputs/UnitInput/index.ts +3 -0
- package/lib/components/Inputs/UnitInput/types.ts +33 -0
- package/lib/components/Inputs/UnitInput/unitInput.tokens.ts +380 -0
- package/lib/components/Inputs/index.ts +8 -0
- package/lib/components/Inputs/utils/FloatingLabels/FloatingLabels.tsx +47 -0
- package/lib/components/Inputs/utils/InputFooter/InputFooter.tsx +92 -0
- package/lib/components/Inputs/utils/InputLabels/InputLabels.tsx +133 -0
- package/lib/components/InputsV2/ChatInputV2/AttachmentDropdown.tsx +64 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputTagV2.tsx +93 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2.dark.tokens.ts +339 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2.light.tokens.ts +317 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2.tokens.ts +133 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2.tsx +466 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2.types.ts +61 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.tsx +260 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2Mobile.dark.tokens.ts +87 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2Mobile.light.tokens.ts +79 -0
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2Mobile.tokens.ts +63 -0
- package/lib/components/InputsV2/ChatInputV2/MobileChatInputV2.tsx +346 -0
- package/lib/components/InputsV2/ChatInputV2/index.ts +4 -0
- package/lib/components/InputsV2/ChatInputV2/utils.ts +263 -0
- package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.dark.tokens.ts +409 -0
- package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.light.tokens.ts +409 -0
- package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.tokens.ts +82 -0
- package/lib/components/InputsV2/MultiValueInputV2/MultiValueInputV2.tsx +382 -0
- package/lib/components/InputsV2/MultiValueInputV2/MultiValueV2.types.ts +30 -0
- package/lib/components/InputsV2/MultiValueInputV2/index.ts +3 -0
- package/lib/components/InputsV2/NumberInputV2/NumberInputV2.dark.tokens.ts +404 -0
- package/lib/components/InputsV2/NumberInputV2/NumberInputV2.light.tokens.ts +532 -0
- package/lib/components/InputsV2/NumberInputV2/NumberInputV2.tsx +698 -0
- package/lib/components/InputsV2/NumberInputV2/NumberInputV2Stepper.tsx +135 -0
- package/lib/components/InputsV2/NumberInputV2/NumberInputV2Unit.tsx +75 -0
- package/lib/components/InputsV2/NumberInputV2/StepperArrow.tsx +25 -0
- package/lib/components/InputsV2/NumberInputV2/index.ts +3 -0
- package/lib/components/InputsV2/NumberInputV2/numberInputV2.tokens.ts +133 -0
- package/lib/components/InputsV2/NumberInputV2/numberInputV2.types.ts +47 -0
- package/lib/components/InputsV2/NumberInputV2/utils.ts +411 -0
- package/lib/components/InputsV2/OTPInputV2/OTPInputV2.dark.tokens.ts +299 -0
- package/lib/components/InputsV2/OTPInputV2/OTPInputV2.light.tokens.ts +301 -0
- package/lib/components/InputsV2/OTPInputV2/OTPInputV2.tokens.ts +47 -0
- package/lib/components/InputsV2/OTPInputV2/OTPInputV2.tsx +327 -0
- package/lib/components/InputsV2/OTPInputV2/OTPInputV2.types.ts +16 -0
- package/lib/components/InputsV2/OTPInputV2/index.ts +3 -0
- package/lib/components/InputsV2/OTPInputV2/otpInputV2Utils.ts +177 -0
- package/lib/components/InputsV2/SearchInputV2/SearchInputV2.dark.tokens.ts +257 -0
- package/lib/components/InputsV2/SearchInputV2/SearchInputV2.light.tokens.ts +257 -0
- package/lib/components/InputsV2/SearchInputV2/SearchInputV2.tokens.ts +106 -0
- package/lib/components/InputsV2/SearchInputV2/SearchInputV2.tsx +282 -0
- package/lib/components/InputsV2/SearchInputV2/SearchInputV2.types.ts +16 -0
- package/lib/components/InputsV2/SearchInputV2/index.ts +3 -0
- package/lib/components/InputsV2/SearchInputV2/utils.ts +164 -0
- package/lib/components/InputsV2/TextAreaV2/TextAreaV2.dark.tokens.ts +398 -0
- package/lib/components/InputsV2/TextAreaV2/TextAreaV2.light.tokens.ts +397 -0
- package/lib/components/InputsV2/TextAreaV2/TextAreaV2.tokens.ts +76 -0
- package/lib/components/InputsV2/TextAreaV2/TextAreaV2.tsx +251 -0
- package/lib/components/InputsV2/TextAreaV2/TextAreaV2.types.ts +26 -0
- package/lib/components/InputsV2/TextAreaV2/index.tsx +3 -0
- package/lib/components/InputsV2/TextAreaV2/utils.ts +140 -0
- package/lib/components/InputsV2/TextInputV2/TextInputV2.dark.tokens.ts +429 -0
- package/lib/components/InputsV2/TextInputV2/TextInputV2.light.tokens.ts +423 -0
- package/lib/components/InputsV2/TextInputV2/TextInputV2.tokens.ts +149 -0
- package/lib/components/InputsV2/TextInputV2/TextInputV2.tsx +433 -0
- package/lib/components/InputsV2/TextInputV2/TextInputV2.types.ts +56 -0
- package/lib/components/InputsV2/TextInputV2/index.ts +3 -0
- package/lib/components/InputsV2/TextInputV2/utils.ts +81 -0
- package/lib/components/InputsV2/inputV2.tokens.ts +93 -0
- package/lib/components/InputsV2/inputV2.types.ts +19 -0
- package/lib/components/InputsV2/utils/FloatingLabelsV2/FloatingLabelsV2.tsx +96 -0
- package/lib/components/InputsV2/utils/InputFooter/InputFooterV2.tsx +70 -0
- package/lib/components/InputsV2/utils/InputLabels/InputLabelsV2.tsx +95 -0
- package/lib/components/InputsV2/utils/InputSlots/InputSlots.tsx +43 -0
- package/lib/components/InputsV2/utils/utils.ts +38 -0
- package/lib/components/KeyValuePair/KeyValuePair.tokens.ts +111 -0
- package/lib/components/KeyValuePair/KeyValuePair.tsx +248 -0
- package/lib/components/KeyValuePair/accessibility/KeyValuePairAccessibility.tsx +514 -0
- package/lib/components/KeyValuePair/accessibility/KeyValuePairAccessibilityReport.ts +317 -0
- package/lib/components/KeyValuePair/accessibility/index.ts +2 -0
- package/lib/components/KeyValuePair/index.ts +3 -0
- package/lib/components/KeyValuePair/types.ts +45 -0
- package/lib/components/KeyValuePair/utils.ts +113 -0
- package/lib/components/KeyValuePairV2/KeyValuePairLayout.tsx +89 -0
- package/lib/components/KeyValuePairV2/KeyValuePairV2.tsx +132 -0
- package/lib/components/KeyValuePairV2/ResponsiveText.tsx +117 -0
- package/lib/components/KeyValuePairV2/index.ts +3 -0
- package/lib/components/KeyValuePairV2/keyValuePairV2.dark.tokens.ts +59 -0
- package/lib/components/KeyValuePairV2/keyValuePairV2.light.tokens.ts +59 -0
- package/lib/components/KeyValuePairV2/keyValuePairV2.tokens.ts +42 -0
- package/lib/components/KeyValuePairV2/keyValuePairV2.types.ts +35 -0
- package/lib/components/KeyValuePairV2/responsiveTextStyles.ts +65 -0
- package/lib/components/KeyValuePairV2/utils.ts +51 -0
- package/lib/components/Menu/Menu.tsx +502 -0
- package/lib/components/Menu/MenuGroupLabel.tsx +10 -0
- package/lib/components/Menu/MenuItem.tsx +246 -0
- package/lib/components/Menu/MenuSkeleton.tsx +36 -0
- package/lib/components/Menu/SubMenu.tsx +420 -0
- package/lib/components/Menu/accessibility/MenuAccessibility.tsx +598 -0
- package/lib/components/Menu/accessibility/MenuAccessibilityReport.ts +484 -0
- package/lib/components/Menu/accessibility/index.ts +2 -0
- package/lib/components/Menu/index.ts +3 -0
- package/lib/components/Menu/menu.animations.ts +146 -0
- package/lib/components/Menu/menu.styles.ts +17 -0
- package/lib/components/Menu/menu.tokens.ts +617 -0
- package/lib/components/Menu/types.tsx +101 -0
- package/lib/components/Menu/utils.ts +44 -0
- package/lib/components/MenuV2/MenuV2.tsx +133 -0
- package/lib/components/MenuV2/MenuV2Content.tsx +442 -0
- package/lib/components/MenuV2/MenuV2Item.tsx +194 -0
- package/lib/components/MenuV2/MenuV2SubMenu.tsx +288 -0
- package/lib/components/MenuV2/index.ts +7 -0
- package/lib/components/MenuV2/menuV2.animations.ts +83 -0
- package/lib/components/MenuV2/menuV2.dark.tokens.ts +401 -0
- package/lib/components/MenuV2/menuV2.light.tokens.ts +401 -0
- package/lib/components/MenuV2/menuV2.tokens.ts +126 -0
- package/lib/components/MenuV2/menuV2.types.ts +99 -0
- package/lib/components/MenuV2/menuV2.utils.ts +156 -0
- package/lib/components/Modal/MobileModal.tsx +235 -0
- package/lib/components/Modal/Modal.tsx +400 -0
- package/lib/components/Modal/ModalSkeleton.tsx +110 -0
- package/lib/components/Modal/accessibility/ModalAccessibility.tsx +518 -0
- package/lib/components/Modal/accessibility/ModalAccessibilityReport.ts +350 -0
- package/lib/components/Modal/index.ts +3 -0
- package/lib/components/Modal/modal.animations.ts +19 -0
- package/lib/components/Modal/modal.tokens.ts +207 -0
- package/lib/components/Modal/modal.utils.ts +24 -0
- package/lib/components/Modal/types.ts +42 -0
- package/lib/components/Modal/useModal.ts +66 -0
- package/lib/components/MultiSelect/MobileMultiSelect.tsx +999 -0
- package/lib/components/MultiSelect/MultiSelect.tsx +822 -0
- package/lib/components/MultiSelect/MultiSelectMenu.tsx +903 -0
- package/lib/components/MultiSelect/MultiSelectMenuItem.tsx +79 -0
- package/lib/components/MultiSelect/MultiSelectSkeleton.tsx +37 -0
- package/lib/components/MultiSelect/MultiSelectSubMenu.tsx +142 -0
- package/lib/components/MultiSelect/MultiSelectTrigger.tsx +322 -0
- package/lib/components/MultiSelect/SelectAllItem.tsx +108 -0
- package/lib/components/MultiSelect/accessibility/MultiSelectAccessibility.tsx +751 -0
- package/lib/components/MultiSelect/accessibility/MultiSelectAccessibilityReport.ts +604 -0
- package/lib/components/MultiSelect/accessibility/index.ts +7 -0
- package/lib/components/MultiSelect/index.ts +4 -0
- package/lib/components/MultiSelect/multiSelect.animations.ts +135 -0
- package/lib/components/MultiSelect/multiSelect.tokens.ts +777 -0
- package/lib/components/MultiSelect/types.ts +228 -0
- package/lib/components/MultiSelect/utils.ts +217 -0
- package/lib/components/MultiSelectGroup/MultiSelectGroup.tsx +35 -0
- package/lib/components/MultiSelectGroup/MultiselectGroupProps.types.ts +8 -0
- package/lib/components/MultiSelectGroup/index.tsx +4 -0
- package/lib/components/MultiSelectV2/MobileMultiSelectV2.tsx +1 -0
- package/lib/components/MultiSelectV2/MultiSelectV2.tsx +449 -0
- package/lib/components/MultiSelectV2/MultiSelectV2Menu.tsx +477 -0
- package/lib/components/MultiSelectV2/MultiSelectV2MenuActions.tsx +87 -0
- package/lib/components/MultiSelectV2/MultiSelectV2MenuHeader.tsx +91 -0
- package/lib/components/MultiSelectV2/MultiSelectV2MenuItem.tsx +76 -0
- package/lib/components/MultiSelectV2/MultiSelectV2MenuItems.tsx +114 -0
- package/lib/components/MultiSelectV2/MultiSelectV2MenuSearch.tsx +42 -0
- package/lib/components/MultiSelectV2/MultiSelectV2MenuVirtualList.tsx +139 -0
- package/lib/components/MultiSelectV2/MultiSelectV2SelectAllItem.tsx +114 -0
- package/lib/components/MultiSelectV2/MultiSelectV2Skeleton.tsx +48 -0
- package/lib/components/MultiSelectV2/MultiSelectV2SubMenu.tsx +153 -0
- package/lib/components/MultiSelectV2/MultiSelectV2Trigger.tsx +365 -0
- package/lib/components/MultiSelectV2/index.ts +14 -0
- package/lib/components/MultiSelectV2/mobile/MobileMultiSelectV2.tsx +708 -0
- package/lib/components/MultiSelectV2/mobile/mobileMultiSelectV2.utils.ts +72 -0
- package/lib/components/MultiSelectV2/multiSelectV2.dark.tokens.ts +459 -0
- package/lib/components/MultiSelectV2/multiSelectV2.light.tokens.ts +461 -0
- package/lib/components/MultiSelectV2/multiSelectV2.tokens.ts +251 -0
- package/lib/components/MultiSelectV2/multiSelectV2.types.ts +173 -0
- package/lib/components/MultiSelectV2/utils.ts +243 -0
- package/lib/components/Popover/MobilePopover.tsx +226 -0
- package/lib/components/Popover/Popover.tsx +226 -0
- package/lib/components/Popover/PopoverFooter.tsx +58 -0
- package/lib/components/Popover/PopoverHeader.tsx +125 -0
- package/lib/components/Popover/PopoverSkeleton.tsx +92 -0
- package/lib/components/Popover/accessibility/PopoverAccessibility.tsx +550 -0
- package/lib/components/Popover/accessibility/PopoverAccessibilityReport.ts +353 -0
- package/lib/components/Popover/index.ts +3 -0
- package/lib/components/Popover/popover.animations.ts +125 -0
- package/lib/components/Popover/popover.tokens.ts +277 -0
- package/lib/components/Popover/types.ts +54 -0
- package/lib/components/PopoverV2/MobilePopoverV2.tsx +219 -0
- package/lib/components/PopoverV2/PopoverV2.tsx +231 -0
- package/lib/components/PopoverV2/PopoverV2Footer.tsx +55 -0
- package/lib/components/PopoverV2/PopoverV2Header.tsx +133 -0
- package/lib/components/PopoverV2/PopoverV2Skeleton.tsx +89 -0
- package/lib/components/PopoverV2/index.tsx +3 -0
- package/lib/components/PopoverV2/popoverV2.dark.tokens.tsx +228 -0
- package/lib/components/PopoverV2/popoverV2.light.tokens.tsx +228 -0
- package/lib/components/PopoverV2/popoverV2.token.ts +85 -0
- package/lib/components/PopoverV2/popoverV2.types.ts +70 -0
- package/lib/components/Primitives/Block/Block.tsx +460 -0
- package/lib/components/Primitives/Group/Group.tsx +93 -0
- package/lib/components/Primitives/Group/index.ts +3 -0
- package/lib/components/Primitives/Group/types.ts +99 -0
- package/lib/components/Primitives/Group/utils.ts +76 -0
- package/lib/components/Primitives/PrimitiveButton/PrimitiveButton.tsx +376 -0
- package/lib/components/Primitives/PrimitiveInput/PrimitiveInput.tsx +482 -0
- package/lib/components/Primitives/PrimitiveLink.tsx +238 -0
- package/lib/components/Primitives/PrimitiveText/PrimitiveText.tsx +203 -0
- package/lib/components/Primitives/PrimitiveTextArea.tsx +398 -0
- package/lib/components/ProgressBar/ProgressBar.tsx +300 -0
- package/lib/components/ProgressBar/accessibility/ProgressBarAccessibility.tsx +751 -0
- package/lib/components/ProgressBar/accessibility/ProgressBarAccessibilityReport.ts +517 -0
- package/lib/components/ProgressBar/index.ts +3 -0
- package/lib/components/ProgressBar/progressbar.tokens.ts +313 -0
- package/lib/components/ProgressBar/types.ts +26 -0
- package/lib/components/ProgressBar/utils.ts +111 -0
- package/lib/components/ProgressBarV2/CircularProgressBarV2.tsx +118 -0
- package/lib/components/ProgressBarV2/LinearProgressBarV2.tsx +104 -0
- package/lib/components/ProgressBarV2/ProgressBarV2.tsx +85 -0
- package/lib/components/ProgressBarV2/index.ts +3 -0
- package/lib/components/ProgressBarV2/progressBarV2.dark.tokens.ts +203 -0
- package/lib/components/ProgressBarV2/progressBarV2.light.tokens.ts +203 -0
- package/lib/components/ProgressBarV2/progressBarV2.tokens.ts +80 -0
- package/lib/components/ProgressBarV2/progressBarV2.types.ts +50 -0
- package/lib/components/ProgressBarV2/utils.ts +154 -0
- package/lib/components/Radio/Radio.tsx +237 -0
- package/lib/components/Radio/RadioGroup.tsx +248 -0
- package/lib/components/Radio/StyledRadio.tsx +71 -0
- package/lib/components/Radio/accessibility/RadioAccessibility.tsx +1109 -0
- package/lib/components/Radio/accessibility/RadioAccessibilityReport.ts +581 -0
- package/lib/components/Radio/accessibility/index.ts +2 -0
- package/lib/components/Radio/index.ts +4 -0
- package/lib/components/Radio/radio.animations.ts +49 -0
- package/lib/components/Radio/radio.token.ts +287 -0
- package/lib/components/Radio/types.ts +39 -0
- package/lib/components/Radio/utils.ts +125 -0
- package/lib/components/Select/Select.tsx +378 -0
- package/lib/components/Select/SelectItem/SelectItem.tsx +3 -0
- package/lib/components/Select/SelectItem/index.tsx +384 -0
- package/lib/components/Select/SelectItem/types.ts +46 -0
- package/lib/components/Select/SelectItem/utils.ts +62 -0
- package/lib/components/Select/SelectMenu.tsx +518 -0
- package/lib/components/Select/index.ts +2 -0
- package/lib/components/Select/select.token.ts +80 -0
- package/lib/components/Select/selectUtils.ts +74 -0
- package/lib/components/Select/types.tsx +102 -0
- package/lib/components/SelectV2/SelectItemV2.tsx +328 -0
- package/lib/components/SelectV2/index.ts +10 -0
- package/lib/components/SelectV2/selectV2.constants.ts +7 -0
- package/lib/components/SelectV2/selectV2.shared.types.ts +113 -0
- package/lib/components/SelectV2/selectV2.tokenStates.ts +15 -0
- package/lib/components/SelectV2/types.ts +115 -0
- package/lib/components/SelectV2/useSelectV2MenuBehavior.ts +135 -0
- package/lib/components/SelectorV2/CheckboxV2/CheckboxV2.tsx +282 -0
- package/lib/components/SelectorV2/CheckboxV2/StyledCheckboxV2.tsx +100 -0
- package/lib/components/SelectorV2/CheckboxV2/checkboxV2.animations.ts +85 -0
- package/lib/components/SelectorV2/CheckboxV2/checkboxV2.dark.tokens.ts +327 -0
- package/lib/components/SelectorV2/CheckboxV2/checkboxV2.light.tokens.ts +324 -0
- package/lib/components/SelectorV2/CheckboxV2/checkboxV2.tokens.ts +98 -0
- package/lib/components/SelectorV2/CheckboxV2/checkboxV2.types.ts +70 -0
- package/lib/components/SelectorV2/CheckboxV2/index.ts +3 -0
- package/lib/components/SelectorV2/CheckboxV2/utils.ts +171 -0
- package/lib/components/SelectorV2/RadioV2/RadioV2.tsx +158 -0
- package/lib/components/SelectorV2/RadioV2/StyledRadioV2.tsx +72 -0
- package/lib/components/SelectorV2/RadioV2/index.ts +3 -0
- package/lib/components/SelectorV2/RadioV2/radioV2.dark.tokens.ts +278 -0
- package/lib/components/SelectorV2/RadioV2/radioV2.light.tokens.ts +281 -0
- package/lib/components/SelectorV2/RadioV2/radioV2.tokens.ts +90 -0
- package/lib/components/SelectorV2/RadioV2/radioV2.types.ts +45 -0
- package/lib/components/SelectorV2/SwitchV2/SwitchV2.tsx +239 -0
- package/lib/components/SelectorV2/SwitchV2/index.ts +3 -0
- package/lib/components/SelectorV2/SwitchV2/switchV2.dark.tokens.ts +232 -0
- package/lib/components/SelectorV2/SwitchV2/switchV2.light.tokens.ts +230 -0
- package/lib/components/SelectorV2/SwitchV2/switchV2.tokens.ts +80 -0
- package/lib/components/SelectorV2/SwitchV2/switchV2.types.ts +56 -0
- package/lib/components/SelectorV2/selectorV2.types.ts +13 -0
- package/lib/components/SelectorsContent/SelectorsContent.types.ts +55 -0
- package/lib/components/SelectorsContent/SelectorsLabel.tsx +68 -0
- package/lib/components/SelectorsContent/SelectorsSubLabel.tsx +52 -0
- package/lib/components/SelectorsContent/index.ts +3 -0
- package/lib/components/Sidebar/Sidebar.tsx +551 -0
- package/lib/components/Sidebar/SidebarContent.tsx +121 -0
- package/lib/components/Sidebar/SidebarFooter.tsx +46 -0
- package/lib/components/Sidebar/SidebarHeader.tsx +199 -0
- package/lib/components/Sidebar/SidebarMobile/MobileNavigationItem.tsx +99 -0
- package/lib/components/Sidebar/SidebarMobile/MoreButton.tsx +77 -0
- package/lib/components/Sidebar/SidebarMobile/PrimaryActionButton.tsx +60 -0
- package/lib/components/Sidebar/SidebarMobile/hooks.ts +87 -0
- package/lib/components/Sidebar/SidebarMobile/index.tsx +393 -0
- package/lib/components/Sidebar/SidebarMobile/mobile.tokens.ts +159 -0
- package/lib/components/Sidebar/SidebarMobile/utils.ts +167 -0
- package/lib/components/Sidebar/TenantPanel.tsx +255 -0
- package/lib/components/Sidebar/accessibility/SidebarAccessibility.tsx +715 -0
- package/lib/components/Sidebar/accessibility/SidebarAccessibilityReport.ts +446 -0
- package/lib/components/Sidebar/index.ts +3 -0
- package/lib/components/Sidebar/sidebar.tokens.ts +269 -0
- package/lib/components/Sidebar/types.ts +85 -0
- package/lib/components/Sidebar/utils.ts +371 -0
- package/lib/components/SidebarV2/SecondarySidebar.tsx +123 -0
- package/lib/components/SidebarV2/SidebarV2.tsx +474 -0
- package/lib/components/SidebarV2/SidebarV2Footer.tsx +45 -0
- package/lib/components/SidebarV2/SidebarV2Header.tsx +165 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/MobileNavigationItem.tsx +92 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/MoreButton.tsx +74 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/PrimaryActionButton.tsx +72 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/hooks.ts +91 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/index.tsx +385 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/mobile.dark.tokens.ts +85 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/mobile.light.tokens.ts +85 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/mobile.tokens.ts +99 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/types.ts +36 -0
- package/lib/components/SidebarV2/SidebarV2MobileNavigation/utils.ts +174 -0
- package/lib/components/SidebarV2/SidebarV2Panel.tsx +139 -0
- package/lib/components/SidebarV2/index.ts +10 -0
- package/lib/components/SidebarV2/sidebarV2.dark.tokens.ts +223 -0
- package/lib/components/SidebarV2/sidebarV2.light.tokens.ts +223 -0
- package/lib/components/SidebarV2/sidebarV2.tokens.ts +120 -0
- package/lib/components/SidebarV2/sidebarV2.types.ts +6 -0
- package/lib/components/SidebarV2/types.ts +63 -0
- package/lib/components/SidebarV2/utils.ts +121 -0
- package/lib/components/SingleSelect/MobileSingleSelect.tsx +628 -0
- package/lib/components/SingleSelect/SingleSelect.tsx +638 -0
- package/lib/components/SingleSelect/SingleSelectMenu.tsx +831 -0
- package/lib/components/SingleSelect/SingleSelectSkeleton.tsx +37 -0
- package/lib/components/SingleSelect/SingleSelectTrigger.tsx +242 -0
- package/lib/components/SingleSelect/accessibility/SingleSelectAccessibility.tsx +1375 -0
- package/lib/components/SingleSelect/accessibility/SingleSelectAccessibilityReport.ts +602 -0
- package/lib/components/SingleSelect/accessibility/index.ts +2 -0
- package/lib/components/SingleSelect/index.ts +3 -0
- package/lib/components/SingleSelect/singleSelect.animations.ts +149 -0
- package/lib/components/SingleSelect/singleSelect.tokens.ts +686 -0
- package/lib/components/SingleSelect/types.ts +141 -0
- package/lib/components/SingleSelect/utils.ts +236 -0
- package/lib/components/SingleSelectGroup/SingleSelectGroup.tsx +34 -0
- package/lib/components/SingleSelectGroup/SingleSelectGroupProps.types.ts +10 -0
- package/lib/components/SingleSelectGroup/index.ts +4 -0
- package/lib/components/SingleSelectV2/MobileSingleSelectV2.tsx +615 -0
- package/lib/components/SingleSelectV2/SingleSelectV2.tsx +297 -0
- package/lib/components/SingleSelectV2/SingleSelectV2List.tsx +90 -0
- package/lib/components/SingleSelectV2/SingleSelectV2Menu.tsx +355 -0
- package/lib/components/SingleSelectV2/SingleSelectV2MenuItems.tsx +228 -0
- package/lib/components/SingleSelectV2/SingleSelectV2Search.tsx +54 -0
- package/lib/components/SingleSelectV2/SingleSelectV2Skeleton.tsx +48 -0
- package/lib/components/SingleSelectV2/SingleSelectV2Trigger.tsx +308 -0
- package/lib/components/SingleSelectV2/SingleSelectV2VirtualList.tsx +161 -0
- package/lib/components/SingleSelectV2/index.ts +11 -0
- package/lib/components/SingleSelectV2/mobile/SingleSelectV2MobileItem.tsx +127 -0
- package/lib/components/SingleSelectV2/mobile/singleSelectV2.mobile.utils.ts +55 -0
- package/lib/components/SingleSelectV2/singleSelectV2.animations.ts +146 -0
- package/lib/components/SingleSelectV2/singleSelectV2.dark.tokens.ts +367 -0
- package/lib/components/SingleSelectV2/singleSelectV2.light.tokens.ts +367 -0
- package/lib/components/SingleSelectV2/singleSelectV2.tokens.ts +202 -0
- package/lib/components/SingleSelectV2/singleSelectV2.types.ts +203 -0
- package/lib/components/SingleSelectV2/utils.ts +384 -0
- package/lib/components/Skeleton/README.md +279 -0
- package/lib/components/Skeleton/Skeleton.tsx +192 -0
- package/lib/components/Skeleton/SkeletonAvatar.tsx +45 -0
- package/lib/components/Skeleton/SkeletonCard.tsx +137 -0
- package/lib/components/Skeleton/SkeletonCompound.tsx +64 -0
- package/lib/components/Skeleton/hooks/useSkeletonBase.ts +33 -0
- package/lib/components/Skeleton/index.ts +41 -0
- package/lib/components/Skeleton/skeleton.tokens.ts +143 -0
- package/lib/components/Skeleton/types.ts +38 -0
- package/lib/components/Skeleton/utils.ts +32 -0
- package/lib/components/Slider/Slider.tsx +296 -0
- package/lib/components/Slider/accessibility/SliderAccessibility.tsx +631 -0
- package/lib/components/Slider/accessibility/SliderAccessibilityReport.ts +246 -0
- package/lib/components/Slider/accessibility/index.ts +7 -0
- package/lib/components/Slider/index.ts +3 -0
- package/lib/components/Slider/types.ts +35 -0
- package/lib/components/Slider/utils.ts +370 -0
- package/lib/components/Snackbar/Snackbar.tsx +315 -0
- package/lib/components/Snackbar/accessibility/SnackbarAccessibility.tsx +525 -0
- package/lib/components/Snackbar/accessibility/SnackbarAccessibilityReport.ts +360 -0
- package/lib/components/Snackbar/accessibility/index.ts +2 -0
- package/lib/components/Snackbar/index.ts +4 -0
- package/lib/components/Snackbar/snackbar.tokens.ts +263 -0
- package/lib/components/Snackbar/types.ts +51 -0
- package/lib/components/SnackbarV2/SnackbarV2.tsx +474 -0
- package/lib/components/SnackbarV2/index.ts +4 -0
- package/lib/components/SnackbarV2/snackbarV2.dark.tokens.ts +161 -0
- package/lib/components/SnackbarV2/snackbarV2.light.tokens.ts +161 -0
- package/lib/components/SnackbarV2/snackbarV2.tokens.ts +88 -0
- package/lib/components/SnackbarV2/snackbarV2.types.ts +65 -0
- package/lib/components/SplitTag/SplitTag.tsx +85 -0
- package/lib/components/SplitTag/accessibility/SplitTagAccessibility.tsx +972 -0
- package/lib/components/SplitTag/accessibility/SplitTagAccessibilityReport.ts +441 -0
- package/lib/components/SplitTag/index.ts +2 -0
- package/lib/components/SplitTag/types.ts +8 -0
- package/lib/components/StatCard/StatCard.tsx +1620 -0
- package/lib/components/StatCard/StatCardSkeleton.tsx +24 -0
- package/lib/components/StatCard/accessibility/StatCardAccessibility.tsx +612 -0
- package/lib/components/StatCard/accessibility/StatCardAccessibilityReport.ts +400 -0
- package/lib/components/StatCard/index.ts +3 -0
- package/lib/components/StatCard/statcard.tokens.ts +468 -0
- package/lib/components/StatCard/types.ts +82 -0
- package/lib/components/StatCard/utils.ts +78 -0
- package/lib/components/StatCardV2/StatCardV2.chartConfig.ts +47 -0
- package/lib/components/StatCardV2/StatCardV2.tsx +307 -0
- package/lib/components/StatCardV2/StatCardV2Change.tsx +89 -0
- package/lib/components/StatCardV2/StatCardV2NoData.tsx +160 -0
- package/lib/components/StatCardV2/StatCardV2Skeleton.tsx +24 -0
- package/lib/components/StatCardV2/StatCardV2Subtitle.tsx +29 -0
- package/lib/components/StatCardV2/StatCardV2Title.tsx +83 -0
- package/lib/components/StatCardV2/StatCardV2Value.tsx +67 -0
- package/lib/components/StatCardV2/index.ts +3 -0
- package/lib/components/StatCardV2/statcardV2.dark.tokens.ts +184 -0
- package/lib/components/StatCardV2/statcardV2.light.tokens.ts +184 -0
- package/lib/components/StatCardV2/statcardV2.tokens.ts +95 -0
- package/lib/components/StatCardV2/statcardV2.types.ts +90 -0
- package/lib/components/StatCardV2/utils.ts +29 -0
- package/lib/components/Stepper/HorizonatlLine.tsx +23 -0
- package/lib/components/Stepper/HorizontalStepper.tsx +467 -0
- package/lib/components/Stepper/Stepper.tsx +56 -0
- package/lib/components/Stepper/StepperLine.tsx +19 -0
- package/lib/components/Stepper/VerticalLine.tsx +24 -0
- package/lib/components/Stepper/VerticalStepper.tsx +965 -0
- package/lib/components/Stepper/accessibility/StepperAccessibility.tsx +723 -0
- package/lib/components/Stepper/accessibility/StepperAccessibilityReport.ts +337 -0
- package/lib/components/Stepper/index.ts +3 -0
- package/lib/components/Stepper/stepper.tokens.ts +883 -0
- package/lib/components/Stepper/types.ts +55 -0
- package/lib/components/StepperV2/Stepper/StepStatusCircle.tsx +54 -0
- package/lib/components/StepperV2/Stepper/StepperComponent.tsx +177 -0
- package/lib/components/StepperV2/Stepper/Steps.tsx +562 -0
- package/lib/components/StepperV2/Stepper/StepsHorizontalBody.tsx +105 -0
- package/lib/components/StepperV2/Stepper/StepsSubstepList.tsx +198 -0
- package/lib/components/StepperV2/Stepper/StepsVerticalSubstepRails.tsx +72 -0
- package/lib/components/StepperV2/Stepper/VerticalLineV2.tsx +26 -0
- package/lib/components/StepperV2/Stepper/stepsHelpers.ts +59 -0
- package/lib/components/StepperV2/StepperV2.tsx +44 -0
- package/lib/components/StepperV2/index.ts +10 -0
- package/lib/components/StepperV2/stepperV2.dark.tokens.ts +1403 -0
- package/lib/components/StepperV2/stepperV2.light.tokens.ts +1389 -0
- package/lib/components/StepperV2/stepperV2.tokens.ts +116 -0
- package/lib/components/StepperV2/stepperV2.types.ts +72 -0
- package/lib/components/StepperV2/utils.ts +37 -0
- package/lib/components/Switch/StyledSwitch.tsx +97 -0
- package/lib/components/Switch/Switch.tsx +245 -0
- package/lib/components/Switch/SwitchGroup.tsx +115 -0
- package/lib/components/Switch/accessibility/SwitchAccessibility.tsx +819 -0
- package/lib/components/Switch/accessibility/SwitchAccessibilityReport.ts +579 -0
- package/lib/components/Switch/accessibility/index.ts +6 -0
- package/lib/components/Switch/index.ts +4 -0
- package/lib/components/Switch/switch.animations.ts +54 -0
- package/lib/components/Switch/switch.token.ts +363 -0
- package/lib/components/Switch/types.ts +37 -0
- package/lib/components/Switch/utils.ts +158 -0
- package/lib/components/Tabs/StyledTabs.tsx +153 -0
- package/lib/components/Tabs/Tabs.tsx +313 -0
- package/lib/components/Tabs/TabsContent.tsx +33 -0
- package/lib/components/Tabs/TabsList.tsx +590 -0
- package/lib/components/Tabs/TabsTrigger.tsx +271 -0
- package/lib/components/Tabs/accessibility/TabsAccessibility.tsx +735 -0
- package/lib/components/Tabs/accessibility/TabsAccessibilityReport.ts +290 -0
- package/lib/components/Tabs/accessibility/index.ts +2 -0
- package/lib/components/Tabs/index.ts +8 -0
- package/lib/components/Tabs/tabs.token.ts +758 -0
- package/lib/components/Tabs/types.ts +99 -0
- package/lib/components/Tabs/utils.ts +235 -0
- package/lib/components/TabsV2/StyledTabsV2.tsx +166 -0
- package/lib/components/TabsV2/TabsV2.tsx +202 -0
- package/lib/components/TabsV2/TabsV2Content.tsx +34 -0
- package/lib/components/TabsV2/TabsV2List.tsx +403 -0
- package/lib/components/TabsV2/TabsV2Trigger.tsx +260 -0
- package/lib/components/TabsV2/index.ts +12 -0
- package/lib/components/TabsV2/tabsV2.context.tsx +45 -0
- package/lib/components/TabsV2/tabsV2.dark.tokens.ts +680 -0
- package/lib/components/TabsV2/tabsV2.light.tokens.ts +680 -0
- package/lib/components/TabsV2/tabsV2.tokens.ts +111 -0
- package/lib/components/TabsV2/tabsV2.types.ts +85 -0
- package/lib/components/TabsV2/tabsV2.utils.ts +145 -0
- package/lib/components/TagGroupV2/TagGroupV2.tsx +32 -0
- package/lib/components/TagGroupV2/TagGroupV2.types.ts +12 -0
- package/lib/components/TagGroupV2/index.ts +2 -0
- package/lib/components/TagV2/TagSkeleton.tsx +102 -0
- package/lib/components/TagV2/TagV2.tsx +179 -0
- package/lib/components/TagV2/TagV2.types.ts +61 -0
- package/lib/components/TagV2/index.ts +2 -0
- package/lib/components/TagV2/tagV2.dark.tokens.ts +359 -0
- package/lib/components/TagV2/tagV2.light.tokens.ts +352 -0
- package/lib/components/TagV2/tagV2.tokens.ts +85 -0
- package/lib/components/TagV2/utils.ts +71 -0
- package/lib/components/Tags/Tag.tsx +115 -0
- package/lib/components/Tags/TagBase.tsx +227 -0
- package/lib/components/Tags/Tags.tsx +82 -0
- package/lib/components/Tags/accessibility/TagAccessibility.tsx +665 -0
- package/lib/components/Tags/accessibility/TagAccessibilityReport.ts +392 -0
- package/lib/components/Tags/index.ts +3 -0
- package/lib/components/Tags/tag.dark.tokens.ts +297 -0
- package/lib/components/Tags/tag.light.tokens.ts +297 -0
- package/lib/components/Tags/tag.tokens.ts +87 -0
- package/lib/components/Tags/types.ts +49 -0
- package/lib/components/Text/Text.tsx +147 -0
- package/lib/components/TextInputGroup/TextInputGroup.tsx +34 -0
- package/lib/components/TextInputGroup/TextInputGroupProps.types.ts +8 -0
- package/lib/components/TextInputGroup/index.ts +4 -0
- package/lib/components/Timeline/Timeline.tsx +106 -0
- package/lib/components/Timeline/TimelineHeader.tsx +120 -0
- package/lib/components/Timeline/TimelineLabel.tsx +61 -0
- package/lib/components/Timeline/TimelineNode.tsx +225 -0
- package/lib/components/Timeline/TimelineShowMore.tsx +36 -0
- package/lib/components/Timeline/TimelineSubstep.tsx +173 -0
- package/lib/components/Timeline/index.ts +9 -0
- package/lib/components/Timeline/timeline.dark.token.ts +149 -0
- package/lib/components/Timeline/timeline.light.token.ts +149 -0
- package/lib/components/Timeline/timeline.token.ts +152 -0
- package/lib/components/Timeline/types.ts +115 -0
- package/lib/components/Timeline/utils.ts +169 -0
- package/lib/components/Tooltip/Tooltip.tsx +170 -0
- package/lib/components/Tooltip/accessibility/TooltipAccessibility.tsx +592 -0
- package/lib/components/Tooltip/accessibility/TooltipAccessibilityReport.ts +356 -0
- package/lib/components/Tooltip/index.ts +3 -0
- package/lib/components/Tooltip/tooltip.animations.ts +82 -0
- package/lib/components/Tooltip/tooltip.tokens.ts +157 -0
- package/lib/components/Tooltip/types.ts +41 -0
- package/lib/components/TooltipV2/TooltipV2.tsx +214 -0
- package/lib/components/TooltipV2/index.ts +3 -0
- package/lib/components/TooltipV2/tooltipV2.animation.ts +82 -0
- package/lib/components/TooltipV2/tooltipV2.dark.tokens.ts +115 -0
- package/lib/components/TooltipV2/tooltipV2.light.tokens.ts +115 -0
- package/lib/components/TooltipV2/tooltipV2.tokens.ts +62 -0
- package/lib/components/TooltipV2/tooltipV2.types.ts +43 -0
- package/lib/components/Topbar/Topbar.tsx +370 -0
- package/lib/components/Topbar/index.ts +3 -0
- package/lib/components/Topbar/topbar.tokens.ts +304 -0
- package/lib/components/Topbar/types.ts +53 -0
- package/lib/components/TopbarV2/TopbarV2.tsx +363 -0
- package/lib/components/TopbarV2/index.ts +3 -0
- package/lib/components/TopbarV2/topbarV2.dark.tokens.ts +159 -0
- package/lib/components/TopbarV2/topbarV2.light.tokens.ts +159 -0
- package/lib/components/TopbarV2/topbarV2.tokens.ts +84 -0
- package/lib/components/TopbarV2/types.ts +52 -0
- package/lib/components/Upload/Upload.tsx +675 -0
- package/lib/components/Upload/accessibility/UploadAccessibility.tsx +507 -0
- package/lib/components/Upload/accessibility/UploadAccessibilityReport.ts +495 -0
- package/lib/components/Upload/accessibility/index.ts +3 -0
- package/lib/components/Upload/components/DefaultState.tsx +101 -0
- package/lib/components/Upload/components/ErrorState.tsx +124 -0
- package/lib/components/Upload/components/FileListDisplay.tsx +112 -0
- package/lib/components/Upload/components/MixedState.tsx +88 -0
- package/lib/components/Upload/components/SuccessState.tsx +108 -0
- package/lib/components/Upload/components/UploadingState.tsx +108 -0
- package/lib/components/Upload/components/index.ts +6 -0
- package/lib/components/Upload/index.ts +4 -0
- package/lib/components/Upload/types.ts +103 -0
- package/lib/components/Upload/upload.tokens.ts +288 -0
- package/lib/components/Upload/utils.ts +929 -0
- package/lib/components/VirtualList/VirtualList.tsx +269 -0
- package/lib/components/VirtualList/index.ts +7 -0
- package/lib/components/VirtualList/types.ts +31 -0
- package/lib/components/VirtualList/utils.ts +169 -0
- package/lib/components/animations/ChevronAnimation/ChevronAnimation.tsx +128 -0
- package/lib/components/animations/ChevronAnimation/index.ts +3 -0
- package/lib/components/animations/ChevronAnimation/types.ts +32 -0
- package/lib/components/animations/ChevronAnimation/utils.ts +41 -0
- package/lib/components/animations/Ripple/RippleContainer.tsx +70 -0
- package/lib/components/animations/Ripple/index.ts +2 -0
- package/lib/components/common/Seperator.tsx +30 -0
- package/lib/components/common/TruncatedTextWithTooltip.tsx +120 -0
- package/lib/components/common/TruncatedTextWithTooltipV2/TruncatedTextWithTooltipV2.tsx +88 -0
- package/lib/components/common/TruncatedTextWithTooltipV2/index.ts +2 -0
- package/lib/components/common/TruncatedTextWithTooltipV2/types.ts +21 -0
- package/lib/components/common/TruncatedTextWithTooltipV2/utils.ts +6 -0
- package/lib/components/common/error.animations.ts +28 -0
- package/lib/components/common/index.ts +11 -0
- package/lib/components/common/useErrorShake.ts +20 -0
- package/lib/components/common/virtualViewport.ts +23 -0
- package/lib/components/shared/accessibility/AccessibilityDashboard.tsx +348 -0
- package/lib/components/shared/accessibility/LightHouse-components/AccordionLightHouse.tsx +328 -0
- package/lib/components/shared/accessibility/LightHouse-components/AlertLightHouse.tsx +371 -0
- package/lib/components/shared/accessibility/LightHouse-components/AvatarGroupLightHouse.tsx +386 -0
- package/lib/components/shared/accessibility/LightHouse-components/AvatarLightHouse.tsx +248 -0
- package/lib/components/shared/accessibility/LightHouse-components/BreadcrumbLightHouse.tsx +242 -0
- package/lib/components/shared/accessibility/LightHouse-components/ButtonGroupLightHouse.tsx +342 -0
- package/lib/components/shared/accessibility/LightHouse-components/ButtonLightHouse.tsx +185 -0
- package/lib/components/shared/accessibility/LightHouse-components/CardLightHouse.tsx +542 -0
- package/lib/components/shared/accessibility/LightHouse-components/ChartsLightHouse.tsx +349 -0
- package/lib/components/shared/accessibility/LightHouse-components/ChatInputLightHouse.tsx +231 -0
- package/lib/components/shared/accessibility/LightHouse-components/CheckboxLightHouse.tsx +236 -0
- package/lib/components/shared/accessibility/LightHouse-components/CodeBlockLightHouse.tsx +180 -0
- package/lib/components/shared/accessibility/LightHouse-components/DrawerLightHouse.tsx +254 -0
- package/lib/components/shared/accessibility/LightHouse-components/DropdownInputLightHouse.tsx +204 -0
- package/lib/components/shared/accessibility/LightHouse-components/KeyValuePairLightHouse.tsx +220 -0
- package/lib/components/shared/accessibility/LightHouse-components/MenuLightHouse.tsx +441 -0
- package/lib/components/shared/accessibility/LightHouse-components/ModalLightHouse.tsx +93 -0
- package/lib/components/shared/accessibility/LightHouse-components/MultiSelectLightHouse.tsx +308 -0
- package/lib/components/shared/accessibility/LightHouse-components/MultiValueInputLightHouse.tsx +144 -0
- package/lib/components/shared/accessibility/LightHouse-components/NumberInputLightHouse.tsx +106 -0
- package/lib/components/shared/accessibility/LightHouse-components/OTPInputLightHouse.tsx +97 -0
- package/lib/components/shared/accessibility/LightHouse-components/PopoverLightHouse.tsx +97 -0
- package/lib/components/shared/accessibility/LightHouse-components/ProgressBarLightHouse.tsx +280 -0
- package/lib/components/shared/accessibility/LightHouse-components/RadioLightHouse.tsx +322 -0
- package/lib/components/shared/accessibility/LightHouse-components/SearchInputLightHouse.tsx +195 -0
- package/lib/components/shared/accessibility/LightHouse-components/SidebarLightHouse.tsx +403 -0
- package/lib/components/shared/accessibility/LightHouse-components/SingleSelectLightHouse.tsx +278 -0
- package/lib/components/shared/accessibility/LightHouse-components/SliderLightHouse.tsx +284 -0
- package/lib/components/shared/accessibility/LightHouse-components/SnackbarLightHouse.tsx +35 -0
- package/lib/components/shared/accessibility/LightHouse-components/SplitTagLightHouse.tsx +357 -0
- package/lib/components/shared/accessibility/LightHouse-components/StatCardLightHouse.tsx +249 -0
- package/lib/components/shared/accessibility/LightHouse-components/StepperLightHouse.tsx +208 -0
- package/lib/components/shared/accessibility/LightHouse-components/SwitchLightHouse.tsx +355 -0
- package/lib/components/shared/accessibility/LightHouse-components/TabsLightHouse.tsx +339 -0
- package/lib/components/shared/accessibility/LightHouse-components/TagLightHouse.tsx +440 -0
- package/lib/components/shared/accessibility/LightHouse-components/TextAreaLightHouse.tsx +141 -0
- package/lib/components/shared/accessibility/LightHouse-components/TextInputLightHouse.tsx +95 -0
- package/lib/components/shared/accessibility/LightHouse-components/TooltipLightHouse.tsx +218 -0
- package/lib/components/shared/accessibility/LightHouse-components/UnitInputLightHouse.tsx +128 -0
- package/lib/components/shared/accessibility/LightHouse-components/UploadLightHouse.tsx +269 -0
- package/lib/components/shared/accessibility/index.ts +13 -0
- package/lib/components/shared/accessibility/reportGenerator.ts +522 -0
- package/lib/components/shared/accessibility/storybookParser.ts +93 -0
- package/lib/components/shared/accessibility/testResultsParser.ts +75 -0
- package/lib/context/ShadowAware.tsx +52 -0
- package/lib/context/ThemeContext.tsx +436 -0
- package/lib/context/ThemeProvider.tsx +59 -0
- package/lib/context/index.ts +6 -0
- package/lib/context/initComponentTokens.ts +271 -0
- package/lib/context/theme.enum.ts +4 -0
- package/lib/context/useComponentToken.ts +322 -0
- package/lib/global-utils/GlobalUtils.ts +130 -0
- package/lib/hooks/index.ts +8 -0
- package/lib/hooks/useBreakPoints.ts +48 -0
- package/lib/hooks/useClickOutside.ts +30 -0
- package/lib/hooks/useDebounce.ts +19 -0
- package/lib/hooks/useDropdownInteractionLock.ts +226 -0
- package/lib/hooks/useInputSlotPadding.ts +50 -0
- package/lib/hooks/usePreventParentScroll.ts +37 -0
- package/lib/hooks/useResizeObserver.ts +33 -0
- package/lib/hooks/useResponsiveTokens.ts +26 -0
- package/lib/hooks/useRipple.ts +74 -0
- package/lib/hooks/useScrollLock.ts +174 -0
- package/lib/hooks/useSectionScroll.ts +90 -0
- package/lib/hooks/useTruncationDetection.ts +87 -0
- package/lib/main.ts +321 -0
- package/lib/node.ts +39 -0
- package/lib/pollyfills/resizeObserverPollyfill.ts +35 -0
- package/lib/token-engine-server.ts +95 -0
- package/lib/token-engine.ts +105 -0
- package/lib/tokens/border.tokens.ts +58 -0
- package/lib/tokens/color.tokens.ts +116 -0
- package/lib/tokens/font.tokens.ts +312 -0
- package/lib/tokens/index.ts +2 -0
- package/lib/tokens/opacity.tokens.ts +34 -0
- package/lib/tokens/shadows.tokens.ts +28 -0
- package/lib/tokens/theme.token.ts +29 -0
- package/lib/tokens/unit.tokens.ts +101 -0
- package/lib/tokens/zIndex.tokens.ts +25 -0
- package/lib/utils/accessibility/aria-helpers.ts +317 -0
- package/lib/utils/accessibility/focus-helpers.ts +226 -0
- package/lib/utils/accessibility/icon-helpers.ts +25 -0
- package/lib/utils/accessibility/index.ts +25 -0
- package/lib/utils/accessibility/keyboard-helpers.ts +342 -0
- package/lib/utils/accessibility/visually-hidden.tsx +45 -0
- package/lib/utils/prop-helpers.ts +10 -0
- package/package.json +17 -3
- package/dist/assets/main.css +0 -1
|
@@ -0,0 +1,1375 @@
|
|
|
1
|
+
import { forwardRef, useState } from 'react'
|
|
2
|
+
import { SingleSelect } from '../index'
|
|
3
|
+
import { singleSelectAccessibilityReport } from './SingleSelectAccessibilityReport'
|
|
4
|
+
import {
|
|
5
|
+
generateAccessibilityReport,
|
|
6
|
+
downloadReport,
|
|
7
|
+
getMimeType,
|
|
8
|
+
getFileExtension,
|
|
9
|
+
type ReportFormat,
|
|
10
|
+
} from '../../shared/accessibility/reportGenerator'
|
|
11
|
+
import { Download as DownloadIcon, Check } from 'lucide-react'
|
|
12
|
+
import Button from '../../Button/Button'
|
|
13
|
+
import { ButtonSize } from '../../Button/types'
|
|
14
|
+
|
|
15
|
+
export interface SingleSelectAccessibilityProps {
|
|
16
|
+
className?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const SingleSelectAccessibility = forwardRef<
|
|
20
|
+
HTMLDivElement,
|
|
21
|
+
SingleSelectAccessibilityProps
|
|
22
|
+
>(({ className }, ref) => {
|
|
23
|
+
const [selectedFormat, setSelectedFormat] =
|
|
24
|
+
useState<ReportFormat>('markdown')
|
|
25
|
+
const [includeTestResults, setIncludeTestResults] = useState(true)
|
|
26
|
+
const [includeRecommendations, setIncludeRecommendations] = useState(true)
|
|
27
|
+
const [reportHtmlContent, setReportHtmlContent] = useState<string | null>(
|
|
28
|
+
null
|
|
29
|
+
)
|
|
30
|
+
const [showFullReport, setShowFullReport] = useState(false)
|
|
31
|
+
const [demoStates, setDemoStates] = useState({
|
|
32
|
+
selected: '',
|
|
33
|
+
required: false,
|
|
34
|
+
error: false,
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const handleDownload = () => {
|
|
38
|
+
try {
|
|
39
|
+
const content = generateAccessibilityReport(
|
|
40
|
+
singleSelectAccessibilityReport,
|
|
41
|
+
{
|
|
42
|
+
format: selectedFormat,
|
|
43
|
+
includeTestResults,
|
|
44
|
+
includeRecommendations,
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.${getFileExtension(selectedFormat)}`
|
|
49
|
+
const mimeType = getMimeType(selectedFormat)
|
|
50
|
+
|
|
51
|
+
downloadReport(content, filename, mimeType)
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.error('Error generating report:', error)
|
|
54
|
+
alert('Failed to generate report. Please try again.')
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const handleViewReport = () => {
|
|
59
|
+
try {
|
|
60
|
+
const htmlContent = generateAccessibilityReport(
|
|
61
|
+
singleSelectAccessibilityReport,
|
|
62
|
+
{
|
|
63
|
+
format: 'html',
|
|
64
|
+
includeTestResults,
|
|
65
|
+
includeRecommendations,
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
setReportHtmlContent(htmlContent)
|
|
69
|
+
setShowFullReport(true)
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error('Error generating report:', error)
|
|
72
|
+
alert('Failed to generate report. Please try again.')
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const report = singleSelectAccessibilityReport
|
|
77
|
+
const compliantCount = report.criteria.filter(
|
|
78
|
+
(c) => c.status === 'compliant'
|
|
79
|
+
).length
|
|
80
|
+
const nonCompliantCount = report.criteria.filter(
|
|
81
|
+
(c) => c.status === 'non-compliant'
|
|
82
|
+
).length
|
|
83
|
+
const unsureCount = report.criteria.filter(
|
|
84
|
+
(c) => c.status === 'unsure'
|
|
85
|
+
).length
|
|
86
|
+
const totalApplicable = report.criteria.filter(
|
|
87
|
+
(c) => c.status !== 'not-applicable'
|
|
88
|
+
).length
|
|
89
|
+
const complianceRate =
|
|
90
|
+
totalApplicable > 0
|
|
91
|
+
? Math.round((compliantCount / totalApplicable) * 100)
|
|
92
|
+
: 0
|
|
93
|
+
|
|
94
|
+
const demoItems = [
|
|
95
|
+
{
|
|
96
|
+
items: [
|
|
97
|
+
{ label: 'Option 1', value: 'option1' },
|
|
98
|
+
{ label: 'Option 2', value: 'option2' },
|
|
99
|
+
{ label: 'Option 3', value: 'option3' },
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
return (
|
|
105
|
+
<div ref={ref} className={className}>
|
|
106
|
+
<div className="p-8 space-y-8 max-w-7xl mx-auto">
|
|
107
|
+
<div className="space-y-4">
|
|
108
|
+
<div className="flex items-start justify-between">
|
|
109
|
+
<div>
|
|
110
|
+
<h1 className="text-3xl font-bold mb-1">
|
|
111
|
+
SingleSelect Component Accessibility
|
|
112
|
+
</h1>
|
|
113
|
+
<div className="flex items-center gap-3 text-sm text-gray-500 mb-2">
|
|
114
|
+
<span>WCAG {report.wcagVersion}</span>
|
|
115
|
+
<span>•</span>
|
|
116
|
+
<span>{report.conformanceLevel}</span>
|
|
117
|
+
<span>•</span>
|
|
118
|
+
<span>{report.reportDate}</span>
|
|
119
|
+
</div>
|
|
120
|
+
<div className="flex items-center gap-2 text-xs text-gray-400">
|
|
121
|
+
<span>Evaluates: WCAG 2.0, 2.1, 2.2</span>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div
|
|
125
|
+
className={`px-3 py-1.5 rounded-md font-semibold text-sm text-white ${
|
|
126
|
+
report.overallStatus === 'compliant'
|
|
127
|
+
? 'bg-green-600'
|
|
128
|
+
: report.overallStatus === 'partial'
|
|
129
|
+
? 'bg-orange-600'
|
|
130
|
+
: report.overallStatus === 'unsure'
|
|
131
|
+
? 'bg-yellow-600'
|
|
132
|
+
: 'bg-red-600'
|
|
133
|
+
}`}
|
|
134
|
+
>
|
|
135
|
+
{report.overallStatus.toUpperCase()}
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<div className="grid grid-cols-2 md:grid-cols-4 gap-3">
|
|
140
|
+
<div className="bg-white border-2 border-green-200 rounded-lg p-4 shadow-sm">
|
|
141
|
+
<div className="text-2xl font-bold mb-1 text-green-600">
|
|
142
|
+
{compliantCount}
|
|
143
|
+
</div>
|
|
144
|
+
<div className="text-xs font-medium text-gray-700">
|
|
145
|
+
Compliant ✅
|
|
146
|
+
</div>
|
|
147
|
+
<div className="text-xs text-gray-500 mt-1">
|
|
148
|
+
Verified & tested
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
<div className="bg-white border-2 border-red-200 rounded-lg p-4 shadow-sm">
|
|
152
|
+
<div className="text-2xl font-bold mb-1 text-red-600">
|
|
153
|
+
{nonCompliantCount}
|
|
154
|
+
</div>
|
|
155
|
+
<div className="text-xs font-medium text-gray-700">
|
|
156
|
+
Non-Compliant ❌
|
|
157
|
+
</div>
|
|
158
|
+
<div className="text-xs text-gray-500 mt-1">
|
|
159
|
+
Issues found
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
<div className="bg-white border-2 border-orange-200 rounded-lg p-4 shadow-sm">
|
|
163
|
+
<div className="text-2xl font-bold mb-1 text-orange-600">
|
|
164
|
+
{unsureCount}
|
|
165
|
+
</div>
|
|
166
|
+
<div className="text-xs font-medium text-gray-700">
|
|
167
|
+
Unsure ⚠️
|
|
168
|
+
</div>
|
|
169
|
+
<div className="text-xs text-gray-500 mt-1">
|
|
170
|
+
Needs verification
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
<div className="bg-white border-2 border-blue-200 rounded-lg p-4 shadow-sm">
|
|
174
|
+
<div className="text-2xl font-bold mb-1 text-blue-600">
|
|
175
|
+
{complianceRate}%
|
|
176
|
+
</div>
|
|
177
|
+
<div className="text-xs font-medium text-gray-700">
|
|
178
|
+
Compliance Rate
|
|
179
|
+
</div>
|
|
180
|
+
<div className="text-xs text-gray-500 mt-1">
|
|
181
|
+
Based on verified items
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
|
|
186
|
+
{/* Unsure Items Warning */}
|
|
187
|
+
{unsureCount > 0 && (
|
|
188
|
+
<div className="bg-orange-50 border-2 border-orange-300 rounded-lg p-4">
|
|
189
|
+
<div className="flex items-start gap-3">
|
|
190
|
+
<span className="text-2xl">⚠️</span>
|
|
191
|
+
<div>
|
|
192
|
+
<h3 className="font-semibold text-orange-900 mb-1">
|
|
193
|
+
Manual Verification Required
|
|
194
|
+
</h3>
|
|
195
|
+
<p className="text-orange-800 text-sm">
|
|
196
|
+
{unsureCount} criterion/criteria marked
|
|
197
|
+
as "unsure" require manual verification.
|
|
198
|
+
These items need testing with contrast
|
|
199
|
+
checkers, screen readers, or depend on
|
|
200
|
+
application context. See verification
|
|
201
|
+
instructions below.
|
|
202
|
+
</p>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
)}
|
|
207
|
+
|
|
208
|
+
{/* Summary & Download */}
|
|
209
|
+
<div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
|
|
210
|
+
<div className="lg:col-span-2 bg-gray-50 border border-gray-200 rounded-lg p-4">
|
|
211
|
+
<h2 className="text-lg font-semibold mb-2">
|
|
212
|
+
Summary
|
|
213
|
+
</h2>
|
|
214
|
+
<p className="text-sm text-gray-700 leading-relaxed">
|
|
215
|
+
{report.summary}
|
|
216
|
+
</p>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<div className="bg-white border border-gray-200 rounded-lg p-4">
|
|
220
|
+
<h2 className="text-lg font-semibold mb-3">
|
|
221
|
+
Download Report
|
|
222
|
+
</h2>
|
|
223
|
+
<div className="space-y-3">
|
|
224
|
+
<div className="flex flex-col gap-2">
|
|
225
|
+
<label className="text-xs font-medium text-gray-700">
|
|
226
|
+
Format
|
|
227
|
+
</label>
|
|
228
|
+
<div className="flex gap-1">
|
|
229
|
+
<button
|
|
230
|
+
onClick={() =>
|
|
231
|
+
setSelectedFormat('markdown')
|
|
232
|
+
}
|
|
233
|
+
className={`flex-1 px-2 py-1.5 rounded text-xs font-medium transition-colors ${
|
|
234
|
+
selectedFormat === 'markdown'
|
|
235
|
+
? 'bg-primary-100 text-primary-700 border border-primary-300'
|
|
236
|
+
: 'bg-gray-100 text-gray-700 hover:bg-gray-200'
|
|
237
|
+
}`}
|
|
238
|
+
>
|
|
239
|
+
MD
|
|
240
|
+
</button>
|
|
241
|
+
<button
|
|
242
|
+
onClick={() =>
|
|
243
|
+
setSelectedFormat('html')
|
|
244
|
+
}
|
|
245
|
+
className={`flex-1 px-2 py-1.5 rounded text-xs font-medium transition-colors ${
|
|
246
|
+
selectedFormat === 'html'
|
|
247
|
+
? 'bg-primary-100 text-primary-700 border border-primary-300'
|
|
248
|
+
: 'bg-gray-100 text-gray-700 hover:bg-gray-200'
|
|
249
|
+
}`}
|
|
250
|
+
>
|
|
251
|
+
HTML
|
|
252
|
+
</button>
|
|
253
|
+
<button
|
|
254
|
+
onClick={() =>
|
|
255
|
+
setSelectedFormat('json')
|
|
256
|
+
}
|
|
257
|
+
className={`flex-1 px-2 py-1.5 rounded text-xs font-medium transition-colors ${
|
|
258
|
+
selectedFormat === 'json'
|
|
259
|
+
? 'bg-primary-100 text-primary-700 border border-primary-300'
|
|
260
|
+
: 'bg-gray-100 text-gray-700 hover:bg-gray-200'
|
|
261
|
+
}`}
|
|
262
|
+
>
|
|
263
|
+
JSON
|
|
264
|
+
</button>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
<div className="space-y-2">
|
|
268
|
+
<label className="flex items-center gap-2 text-xs">
|
|
269
|
+
<input
|
|
270
|
+
type="checkbox"
|
|
271
|
+
checked={includeTestResults}
|
|
272
|
+
onChange={(e) =>
|
|
273
|
+
setIncludeTestResults(
|
|
274
|
+
e.target.checked
|
|
275
|
+
)
|
|
276
|
+
}
|
|
277
|
+
className="w-3.5 h-3.5"
|
|
278
|
+
/>
|
|
279
|
+
<span className="text-gray-700">
|
|
280
|
+
Test Results
|
|
281
|
+
</span>
|
|
282
|
+
</label>
|
|
283
|
+
<label className="flex items-center gap-2 text-xs">
|
|
284
|
+
<input
|
|
285
|
+
type="checkbox"
|
|
286
|
+
checked={includeRecommendations}
|
|
287
|
+
onChange={(e) =>
|
|
288
|
+
setIncludeRecommendations(
|
|
289
|
+
e.target.checked
|
|
290
|
+
)
|
|
291
|
+
}
|
|
292
|
+
className="w-3.5 h-3.5"
|
|
293
|
+
/>
|
|
294
|
+
<span className="text-gray-700">
|
|
295
|
+
Recommendations
|
|
296
|
+
</span>
|
|
297
|
+
</label>
|
|
298
|
+
</div>
|
|
299
|
+
<div className="space-y-2">
|
|
300
|
+
<Button
|
|
301
|
+
text="Download"
|
|
302
|
+
leadingIcon={<DownloadIcon size={14} />}
|
|
303
|
+
size={ButtonSize.SMALL}
|
|
304
|
+
onClick={handleDownload}
|
|
305
|
+
fullWidth
|
|
306
|
+
/>
|
|
307
|
+
<Button
|
|
308
|
+
text={
|
|
309
|
+
showFullReport
|
|
310
|
+
? 'Hide Full Report'
|
|
311
|
+
: 'View Full Report'
|
|
312
|
+
}
|
|
313
|
+
size={ButtonSize.SMALL}
|
|
314
|
+
onClick={handleViewReport}
|
|
315
|
+
fullWidth
|
|
316
|
+
/>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
|
|
323
|
+
{/* Full Report Viewer */}
|
|
324
|
+
{showFullReport && reportHtmlContent && (
|
|
325
|
+
<section className="bg-white border-2 border-gray-300 rounded-lg p-6 shadow-lg">
|
|
326
|
+
<div className="flex items-center justify-between mb-4 pb-3 border-b border-gray-200">
|
|
327
|
+
<div>
|
|
328
|
+
<h2 className="text-xl font-bold text-gray-900">
|
|
329
|
+
Full Accessibility Report
|
|
330
|
+
</h2>
|
|
331
|
+
<p className="text-sm text-gray-500 mt-1">
|
|
332
|
+
Interactive HTML report (same as downloaded
|
|
333
|
+
version)
|
|
334
|
+
</p>
|
|
335
|
+
</div>
|
|
336
|
+
<button
|
|
337
|
+
onClick={() => {
|
|
338
|
+
setShowFullReport(false)
|
|
339
|
+
setReportHtmlContent(null)
|
|
340
|
+
}}
|
|
341
|
+
className="px-3 py-1.5 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"
|
|
342
|
+
>
|
|
343
|
+
Close
|
|
344
|
+
</button>
|
|
345
|
+
</div>
|
|
346
|
+
<div className="border border-gray-200 rounded-lg overflow-hidden bg-white">
|
|
347
|
+
<iframe
|
|
348
|
+
srcDoc={reportHtmlContent}
|
|
349
|
+
className="w-full"
|
|
350
|
+
style={{
|
|
351
|
+
height: '700px',
|
|
352
|
+
border: 'none',
|
|
353
|
+
}}
|
|
354
|
+
title="Accessibility Report"
|
|
355
|
+
sandbox="allow-same-origin"
|
|
356
|
+
/>
|
|
357
|
+
</div>
|
|
358
|
+
<div className="mt-4 pt-4 border-t border-gray-200 flex items-center justify-between">
|
|
359
|
+
<p className="text-xs text-gray-500">
|
|
360
|
+
Report generated on{' '}
|
|
361
|
+
{new Date().toLocaleString()}
|
|
362
|
+
</p>
|
|
363
|
+
<div className="flex gap-2">
|
|
364
|
+
<Button
|
|
365
|
+
text="Download HTML"
|
|
366
|
+
leadingIcon={<DownloadIcon size={14} />}
|
|
367
|
+
size={ButtonSize.SMALL}
|
|
368
|
+
onClick={() => {
|
|
369
|
+
const content =
|
|
370
|
+
generateAccessibilityReport(
|
|
371
|
+
singleSelectAccessibilityReport,
|
|
372
|
+
{
|
|
373
|
+
format: 'html',
|
|
374
|
+
includeTestResults,
|
|
375
|
+
includeRecommendations,
|
|
376
|
+
}
|
|
377
|
+
)
|
|
378
|
+
const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.html`
|
|
379
|
+
downloadReport(
|
|
380
|
+
content,
|
|
381
|
+
filename,
|
|
382
|
+
'text/html'
|
|
383
|
+
)
|
|
384
|
+
}}
|
|
385
|
+
/>
|
|
386
|
+
<Button
|
|
387
|
+
text="Download Markdown"
|
|
388
|
+
size={ButtonSize.SMALL}
|
|
389
|
+
onClick={() => {
|
|
390
|
+
const content =
|
|
391
|
+
generateAccessibilityReport(
|
|
392
|
+
singleSelectAccessibilityReport,
|
|
393
|
+
{
|
|
394
|
+
format: 'markdown',
|
|
395
|
+
includeTestResults,
|
|
396
|
+
includeRecommendations,
|
|
397
|
+
}
|
|
398
|
+
)
|
|
399
|
+
const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.md`
|
|
400
|
+
downloadReport(
|
|
401
|
+
content,
|
|
402
|
+
filename,
|
|
403
|
+
'text/markdown'
|
|
404
|
+
)
|
|
405
|
+
}}
|
|
406
|
+
/>
|
|
407
|
+
<Button
|
|
408
|
+
text="Download JSON"
|
|
409
|
+
size={ButtonSize.SMALL}
|
|
410
|
+
onClick={() => {
|
|
411
|
+
const content =
|
|
412
|
+
generateAccessibilityReport(
|
|
413
|
+
singleSelectAccessibilityReport,
|
|
414
|
+
{
|
|
415
|
+
format: 'json',
|
|
416
|
+
includeTestResults,
|
|
417
|
+
includeRecommendations,
|
|
418
|
+
}
|
|
419
|
+
)
|
|
420
|
+
const filename = `singleselect-accessibility-report-${singleSelectAccessibilityReport.reportDate}.json`
|
|
421
|
+
downloadReport(
|
|
422
|
+
content,
|
|
423
|
+
filename,
|
|
424
|
+
'application/json'
|
|
425
|
+
)
|
|
426
|
+
}}
|
|
427
|
+
/>
|
|
428
|
+
</div>
|
|
429
|
+
</div>
|
|
430
|
+
</section>
|
|
431
|
+
)}
|
|
432
|
+
|
|
433
|
+
{/* Interactive Demo Section */}
|
|
434
|
+
<section className="space-y-6">
|
|
435
|
+
<div>
|
|
436
|
+
<h2 className="text-2xl font-bold mb-2">
|
|
437
|
+
Interactive Accessibility Demo
|
|
438
|
+
</h2>
|
|
439
|
+
<p className="text-gray-600">
|
|
440
|
+
This demo showcases WCAG 2.1 Level AA compliance
|
|
441
|
+
features. Use keyboard navigation (Tab, Enter,
|
|
442
|
+
Space, Arrow keys) and screen readers to experience
|
|
443
|
+
accessibility features.
|
|
444
|
+
</p>
|
|
445
|
+
</div>
|
|
446
|
+
|
|
447
|
+
{/* WCAG Principle 1: Perceivable */}
|
|
448
|
+
<div className="space-y-4">
|
|
449
|
+
<h3 className="text-xl font-semibold">
|
|
450
|
+
1. Perceivable
|
|
451
|
+
</h3>
|
|
452
|
+
|
|
453
|
+
<div className="border-l-4 border-blue-500 pl-6 space-y-4">
|
|
454
|
+
<div>
|
|
455
|
+
<h4 className="text-lg font-semibold">
|
|
456
|
+
1.1.1 Non-text Content (Level A)
|
|
457
|
+
</h4>
|
|
458
|
+
<p className="text-sm text-gray-600 mb-4">
|
|
459
|
+
SingleSelect trigger with proper label
|
|
460
|
+
association
|
|
461
|
+
</p>
|
|
462
|
+
<SingleSelect
|
|
463
|
+
label="Select Country"
|
|
464
|
+
placeholder="Choose a country"
|
|
465
|
+
items={demoItems}
|
|
466
|
+
selected={demoStates.selected}
|
|
467
|
+
onSelect={(value) =>
|
|
468
|
+
setDemoStates((prev) => ({
|
|
469
|
+
...prev,
|
|
470
|
+
selected: value,
|
|
471
|
+
}))
|
|
472
|
+
}
|
|
473
|
+
/>
|
|
474
|
+
</div>
|
|
475
|
+
</div>
|
|
476
|
+
</div>
|
|
477
|
+
|
|
478
|
+
{/* WCAG Principle 2: Operable */}
|
|
479
|
+
<div className="space-y-4">
|
|
480
|
+
<h3 className="text-xl font-semibold">2. Operable</h3>
|
|
481
|
+
|
|
482
|
+
<div className="border-l-4 border-green-500 pl-6 space-y-4">
|
|
483
|
+
<div>
|
|
484
|
+
<h4 className="text-lg font-semibold">
|
|
485
|
+
2.1.1 Keyboard (Level A)
|
|
486
|
+
</h4>
|
|
487
|
+
<p className="text-sm text-gray-600 mb-4">
|
|
488
|
+
All functionality available via keyboard
|
|
489
|
+
(Tab, Enter, Space, Arrow keys, Escape)
|
|
490
|
+
</p>
|
|
491
|
+
<SingleSelect
|
|
492
|
+
label="Keyboard Navigation Demo"
|
|
493
|
+
placeholder="Tab to focus, then Enter/Space to open"
|
|
494
|
+
items={demoItems}
|
|
495
|
+
selected={demoStates.selected}
|
|
496
|
+
onSelect={(value) =>
|
|
497
|
+
setDemoStates((prev) => ({
|
|
498
|
+
...prev,
|
|
499
|
+
selected: value,
|
|
500
|
+
}))
|
|
501
|
+
}
|
|
502
|
+
/>
|
|
503
|
+
</div>
|
|
504
|
+
|
|
505
|
+
<div>
|
|
506
|
+
<h4 className="text-lg font-semibold">
|
|
507
|
+
2.4.7 Focus Visible (Level AA)
|
|
508
|
+
</h4>
|
|
509
|
+
<p className="text-sm text-gray-600 mb-4">
|
|
510
|
+
Visible focus indicators
|
|
511
|
+
</p>
|
|
512
|
+
<SingleSelect
|
|
513
|
+
label="Focus Indicator Demo"
|
|
514
|
+
placeholder="Focus me with Tab"
|
|
515
|
+
items={demoItems}
|
|
516
|
+
selected={demoStates.selected}
|
|
517
|
+
onSelect={(value) =>
|
|
518
|
+
setDemoStates((prev) => ({
|
|
519
|
+
...prev,
|
|
520
|
+
selected: value,
|
|
521
|
+
}))
|
|
522
|
+
}
|
|
523
|
+
/>
|
|
524
|
+
</div>
|
|
525
|
+
</div>
|
|
526
|
+
</div>
|
|
527
|
+
|
|
528
|
+
{/* WCAG Principle 3: Understandable */}
|
|
529
|
+
<div className="space-y-4">
|
|
530
|
+
<h3 className="text-xl font-semibold">
|
|
531
|
+
3. Understandable
|
|
532
|
+
</h3>
|
|
533
|
+
|
|
534
|
+
<div className="border-l-4 border-purple-500 pl-6 space-y-4">
|
|
535
|
+
<div>
|
|
536
|
+
<h4 className="text-lg font-semibold">
|
|
537
|
+
3.3.2 Labels or Instructions (Level A)
|
|
538
|
+
</h4>
|
|
539
|
+
<p className="text-sm text-gray-600 mb-4">
|
|
540
|
+
Clear labels and hint text
|
|
541
|
+
</p>
|
|
542
|
+
<SingleSelect
|
|
543
|
+
label="Select with Hint"
|
|
544
|
+
hintText="Please select an option from the list"
|
|
545
|
+
placeholder="Choose an option"
|
|
546
|
+
items={demoItems}
|
|
547
|
+
selected={demoStates.selected}
|
|
548
|
+
onSelect={(value) =>
|
|
549
|
+
setDemoStates((prev) => ({
|
|
550
|
+
...prev,
|
|
551
|
+
selected: value,
|
|
552
|
+
}))
|
|
553
|
+
}
|
|
554
|
+
/>
|
|
555
|
+
</div>
|
|
556
|
+
</div>
|
|
557
|
+
</div>
|
|
558
|
+
|
|
559
|
+
{/* WCAG Principle 4: Robust */}
|
|
560
|
+
<div className="space-y-4">
|
|
561
|
+
<h3 className="text-xl font-semibold">4. Robust</h3>
|
|
562
|
+
|
|
563
|
+
<div className="border-l-4 border-red-500 pl-6 space-y-4">
|
|
564
|
+
<div>
|
|
565
|
+
<h4 className="text-lg font-semibold">
|
|
566
|
+
4.1.2 Name, Role, Value (Level A)
|
|
567
|
+
</h4>
|
|
568
|
+
<p className="text-sm text-gray-600 mb-4">
|
|
569
|
+
SingleSelect state with aria-expanded and
|
|
570
|
+
aria-controls
|
|
571
|
+
</p>
|
|
572
|
+
<SingleSelect
|
|
573
|
+
label="State Demo"
|
|
574
|
+
placeholder="Select an option"
|
|
575
|
+
items={demoItems}
|
|
576
|
+
selected={demoStates.selected}
|
|
577
|
+
onSelect={(value) =>
|
|
578
|
+
setDemoStates((prev) => ({
|
|
579
|
+
...prev,
|
|
580
|
+
selected: value,
|
|
581
|
+
}))
|
|
582
|
+
}
|
|
583
|
+
/>
|
|
584
|
+
</div>
|
|
585
|
+
|
|
586
|
+
<div>
|
|
587
|
+
<h4 className="text-lg font-semibold">
|
|
588
|
+
4.1.3 Status Messages (Level AA)
|
|
589
|
+
</h4>
|
|
590
|
+
<p className="text-sm text-gray-600 mb-4">
|
|
591
|
+
Error state and required field indicators
|
|
592
|
+
</p>
|
|
593
|
+
<div className="space-y-4">
|
|
594
|
+
<SingleSelect
|
|
595
|
+
label="Required Field"
|
|
596
|
+
placeholder="Select an option"
|
|
597
|
+
items={demoItems}
|
|
598
|
+
selected={demoStates.selected}
|
|
599
|
+
onSelect={(value) =>
|
|
600
|
+
setDemoStates((prev) => ({
|
|
601
|
+
...prev,
|
|
602
|
+
selected: value,
|
|
603
|
+
}))
|
|
604
|
+
}
|
|
605
|
+
required={true}
|
|
606
|
+
/>
|
|
607
|
+
<SingleSelect
|
|
608
|
+
label="Error State"
|
|
609
|
+
placeholder="Select an option"
|
|
610
|
+
items={demoItems}
|
|
611
|
+
selected={demoStates.selected}
|
|
612
|
+
onSelect={(value) =>
|
|
613
|
+
setDemoStates((prev) => ({
|
|
614
|
+
...prev,
|
|
615
|
+
selected: value,
|
|
616
|
+
}))
|
|
617
|
+
}
|
|
618
|
+
error={true}
|
|
619
|
+
errorMessage="This field is required"
|
|
620
|
+
/>
|
|
621
|
+
</div>
|
|
622
|
+
</div>
|
|
623
|
+
</div>
|
|
624
|
+
</div>
|
|
625
|
+
</section>
|
|
626
|
+
|
|
627
|
+
{/* WCAG Guidelines Coverage */}
|
|
628
|
+
<section className="bg-white border border-gray-200 rounded-lg p-6">
|
|
629
|
+
<h2 className="text-xl font-bold mb-4">
|
|
630
|
+
WCAG Guidelines Coverage
|
|
631
|
+
</h2>
|
|
632
|
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
633
|
+
<div className="bg-blue-50 border border-blue-200 rounded-lg p-4">
|
|
634
|
+
<h3 className="font-semibold text-blue-900 mb-2">
|
|
635
|
+
WCAG 2.0 (2008)
|
|
636
|
+
</h3>
|
|
637
|
+
<p className="text-xs text-blue-800 mb-2">
|
|
638
|
+
Foundation guidelines
|
|
639
|
+
</p>
|
|
640
|
+
<ul className="text-xs text-blue-700 space-y-1">
|
|
641
|
+
{report.wcagVersions['2.0'].map((item, idx) => (
|
|
642
|
+
<li key={idx}>• {item}</li>
|
|
643
|
+
))}
|
|
644
|
+
</ul>
|
|
645
|
+
</div>
|
|
646
|
+
<div className="bg-green-50 border border-green-200 rounded-lg p-4">
|
|
647
|
+
<h3 className="font-semibold text-green-900 mb-2">
|
|
648
|
+
WCAG 2.1 (2018)
|
|
649
|
+
</h3>
|
|
650
|
+
<p className="text-xs text-green-800 mb-2">
|
|
651
|
+
Current standard
|
|
652
|
+
</p>
|
|
653
|
+
<ul className="text-xs text-green-700 space-y-1">
|
|
654
|
+
{report.wcagVersions['2.1'].map((item, idx) => (
|
|
655
|
+
<li key={idx}>• {item}</li>
|
|
656
|
+
))}
|
|
657
|
+
</ul>
|
|
658
|
+
</div>
|
|
659
|
+
<div className="bg-purple-50 border border-purple-200 rounded-lg p-4">
|
|
660
|
+
<h3 className="font-semibold text-purple-900 mb-2">
|
|
661
|
+
WCAG 2.2 (2023)
|
|
662
|
+
</h3>
|
|
663
|
+
<p className="text-xs text-purple-800 mb-2">
|
|
664
|
+
Latest updates
|
|
665
|
+
</p>
|
|
666
|
+
<ul className="text-xs text-purple-700 space-y-1">
|
|
667
|
+
{report.wcagVersions['2.2'].map((item, idx) => (
|
|
668
|
+
<li key={idx}>• {item}</li>
|
|
669
|
+
))}
|
|
670
|
+
</ul>
|
|
671
|
+
</div>
|
|
672
|
+
</div>
|
|
673
|
+
</section>
|
|
674
|
+
|
|
675
|
+
{/* AAA Compliance Summary */}
|
|
676
|
+
<section className="bg-gradient-to-r from-purple-50 to-blue-50 border-2 border-purple-300 rounded-lg p-6">
|
|
677
|
+
<h2 className="text-xl font-bold mb-4 text-purple-900">
|
|
678
|
+
AAA Compliance Summary
|
|
679
|
+
</h2>
|
|
680
|
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-4">
|
|
681
|
+
<div className="bg-green-100 border border-green-300 rounded-lg p-4">
|
|
682
|
+
<div className="text-2xl font-bold text-green-700 mb-1">
|
|
683
|
+
6
|
|
684
|
+
</div>
|
|
685
|
+
<div className="text-sm font-semibold text-green-800">
|
|
686
|
+
Compliant Criteria
|
|
687
|
+
</div>
|
|
688
|
+
<div className="text-xs text-green-700 mt-1">
|
|
689
|
+
1.4.8, 1.4.9, 2.1.3, 2.3.3, 3.2.5, 2.5.5
|
|
690
|
+
(height)
|
|
691
|
+
</div>
|
|
692
|
+
</div>
|
|
693
|
+
<div className="bg-red-100 border border-red-300 rounded-lg p-4">
|
|
694
|
+
<div className="text-2xl font-bold text-red-700 mb-1">
|
|
695
|
+
1
|
|
696
|
+
</div>
|
|
697
|
+
<div className="text-sm font-semibold text-red-800">
|
|
698
|
+
Non-Compliant
|
|
699
|
+
</div>
|
|
700
|
+
<div className="text-xs text-red-700 mt-1">
|
|
701
|
+
1.4.6 Contrast (Enhanced) - 7:1 required
|
|
702
|
+
</div>
|
|
703
|
+
</div>
|
|
704
|
+
<div className="bg-yellow-100 border border-yellow-300 rounded-lg p-4">
|
|
705
|
+
<div className="text-2xl font-bold text-yellow-700 mb-1">
|
|
706
|
+
2
|
|
707
|
+
</div>
|
|
708
|
+
<div className="text-sm font-semibold text-yellow-800">
|
|
709
|
+
Needs Action
|
|
710
|
+
</div>
|
|
711
|
+
<div className="text-xs text-yellow-700 mt-1">
|
|
712
|
+
2.5.5 (width verification), 3.3.6 (app-level)
|
|
713
|
+
</div>
|
|
714
|
+
</div>
|
|
715
|
+
</div>
|
|
716
|
+
<div className="bg-white border border-purple-200 rounded-lg p-4">
|
|
717
|
+
<h3 className="font-semibold text-purple-900 mb-2">
|
|
718
|
+
To Achieve Full AAA Compliance:
|
|
719
|
+
</h3>
|
|
720
|
+
<ol className="list-decimal list-inside text-sm text-purple-800 space-y-2">
|
|
721
|
+
<li>
|
|
722
|
+
<strong>
|
|
723
|
+
Redesign colors for 7:1 contrast (WCAG
|
|
724
|
+
1.4.6):
|
|
725
|
+
</strong>{' '}
|
|
726
|
+
Darken label text (gray[700] →
|
|
727
|
+
gray[800]/gray[900]), darken placeholder
|
|
728
|
+
(gray[400] → gray[600]+), verify error labels
|
|
729
|
+
meet 7:1
|
|
730
|
+
</li>
|
|
731
|
+
<li>
|
|
732
|
+
<strong>
|
|
733
|
+
Verify touch target width ≥44px (WCAG
|
|
734
|
+
2.5.5):
|
|
735
|
+
</strong>{' '}
|
|
736
|
+
Use browser DevTools to measure element width +
|
|
737
|
+
padding-left + padding-right. Height already
|
|
738
|
+
verified (Small=50px, Medium=56px, Large=72px)
|
|
739
|
+
</li>
|
|
740
|
+
<li>
|
|
741
|
+
<strong>
|
|
742
|
+
Implement confirmation patterns (WCAG
|
|
743
|
+
3.3.6):
|
|
744
|
+
</strong>{' '}
|
|
745
|
+
Add application-level confirmation dialogs for
|
|
746
|
+
critical actions (legal agreements, payments,
|
|
747
|
+
data deletion)
|
|
748
|
+
</li>
|
|
749
|
+
</ol>
|
|
750
|
+
</div>
|
|
751
|
+
</section>
|
|
752
|
+
|
|
753
|
+
{/* WCAG Criteria Overview */}
|
|
754
|
+
<section className="bg-white border border-gray-200 rounded-lg p-6">
|
|
755
|
+
<h2 className="text-xl font-bold mb-4">
|
|
756
|
+
WCAG Success Criteria Evaluation
|
|
757
|
+
</h2>
|
|
758
|
+
<div className="space-y-4">
|
|
759
|
+
<div>
|
|
760
|
+
<h3 className="font-semibold text-gray-900 mb-2">
|
|
761
|
+
Level A Criteria (15 evaluated)
|
|
762
|
+
</h3>
|
|
763
|
+
<p className="text-sm text-gray-600 mb-2">
|
|
764
|
+
Minimum requirements for basic accessibility.
|
|
765
|
+
</p>
|
|
766
|
+
<div className="bg-blue-50 border border-blue-200 rounded p-3">
|
|
767
|
+
<p className="text-xs font-medium text-blue-900 mb-1">
|
|
768
|
+
Criteria:
|
|
769
|
+
</p>
|
|
770
|
+
<p className="text-xs text-blue-800">
|
|
771
|
+
{report.testMethodology.wcagLevels.A.join(
|
|
772
|
+
', '
|
|
773
|
+
)}
|
|
774
|
+
</p>
|
|
775
|
+
</div>
|
|
776
|
+
</div>
|
|
777
|
+
<div>
|
|
778
|
+
<h3 className="font-semibold text-gray-900 mb-2">
|
|
779
|
+
Level AA Criteria (8 evaluated)
|
|
780
|
+
</h3>
|
|
781
|
+
<p className="text-sm text-gray-600 mb-2">
|
|
782
|
+
Enhanced accessibility requirements.
|
|
783
|
+
</p>
|
|
784
|
+
<div className="bg-green-50 border border-green-200 rounded p-3">
|
|
785
|
+
<p className="text-xs font-medium text-green-900 mb-1">
|
|
786
|
+
Criteria:
|
|
787
|
+
</p>
|
|
788
|
+
<p className="text-xs text-green-800">
|
|
789
|
+
{report.testMethodology.wcagLevels.AA.join(
|
|
790
|
+
', '
|
|
791
|
+
)}
|
|
792
|
+
</p>
|
|
793
|
+
</div>
|
|
794
|
+
</div>
|
|
795
|
+
<div>
|
|
796
|
+
<h3 className="font-semibold text-gray-900 mb-2">
|
|
797
|
+
Level AAA Criteria (9 evaluated)
|
|
798
|
+
</h3>
|
|
799
|
+
<p className="text-sm text-gray-600 mb-2">
|
|
800
|
+
Enhanced accessibility requirements. Currently
|
|
801
|
+
partially compliant - see issues below.
|
|
802
|
+
</p>
|
|
803
|
+
<div className="bg-purple-50 border border-purple-200 rounded p-3">
|
|
804
|
+
<p className="text-xs font-medium text-purple-900 mb-1">
|
|
805
|
+
Criteria:
|
|
806
|
+
</p>
|
|
807
|
+
<p className="text-xs text-purple-800">
|
|
808
|
+
{report.testMethodology.wcagLevels.AAA.join(
|
|
809
|
+
', '
|
|
810
|
+
)}
|
|
811
|
+
</p>
|
|
812
|
+
<p className="text-xs text-purple-700 mt-2 italic">
|
|
813
|
+
Note: Level AAA is not required for Level AA
|
|
814
|
+
conformance. To achieve full AAA compliance,
|
|
815
|
+
see recommendations section for required
|
|
816
|
+
changes.
|
|
817
|
+
</p>
|
|
818
|
+
</div>
|
|
819
|
+
</div>
|
|
820
|
+
</div>
|
|
821
|
+
</section>
|
|
822
|
+
|
|
823
|
+
{/* Testing Methodology */}
|
|
824
|
+
<section className="bg-white border border-gray-200 rounded-lg p-6">
|
|
825
|
+
<h2 className="text-xl font-bold mb-4">
|
|
826
|
+
Testing Methodology & Verification
|
|
827
|
+
</h2>
|
|
828
|
+
<div className="space-y-6">
|
|
829
|
+
<div>
|
|
830
|
+
<h3 className="font-semibold text-gray-900 mb-3 flex items-center gap-2">
|
|
831
|
+
<span className="text-green-600">✓</span>
|
|
832
|
+
Automated Testing
|
|
833
|
+
</h3>
|
|
834
|
+
<div className="bg-gray-50 rounded-lg p-4">
|
|
835
|
+
<ul className="list-disc list-inside space-y-2 text-sm text-gray-700">
|
|
836
|
+
{report.testMethodology.automated.map(
|
|
837
|
+
(test, index) => (
|
|
838
|
+
<li key={index}>{test}</li>
|
|
839
|
+
)
|
|
840
|
+
)}
|
|
841
|
+
</ul>
|
|
842
|
+
</div>
|
|
843
|
+
</div>
|
|
844
|
+
<div>
|
|
845
|
+
<h3 className="font-semibold text-gray-900 mb-3 flex items-center gap-2">
|
|
846
|
+
<span className="text-blue-600">✓</span>
|
|
847
|
+
Manual Testing
|
|
848
|
+
</h3>
|
|
849
|
+
<div className="bg-gray-50 rounded-lg p-4">
|
|
850
|
+
<ul className="list-disc list-inside space-y-2 text-sm text-gray-700">
|
|
851
|
+
{report.testMethodology.manual.map(
|
|
852
|
+
(test, index) => (
|
|
853
|
+
<li key={index}>{test}</li>
|
|
854
|
+
)
|
|
855
|
+
)}
|
|
856
|
+
</ul>
|
|
857
|
+
</div>
|
|
858
|
+
</div>
|
|
859
|
+
<div>
|
|
860
|
+
<h3 className="font-semibold text-gray-900 mb-3 flex items-center gap-2">
|
|
861
|
+
<span className="text-purple-600">🔧</span>
|
|
862
|
+
Verification Tools
|
|
863
|
+
</h3>
|
|
864
|
+
<div className="bg-gray-50 rounded-lg p-4">
|
|
865
|
+
<ul className="list-disc list-inside space-y-2 text-sm text-gray-700">
|
|
866
|
+
{report.testMethodology.verificationTools.map(
|
|
867
|
+
(tool, index) => (
|
|
868
|
+
<li key={index}>{tool}</li>
|
|
869
|
+
)
|
|
870
|
+
)}
|
|
871
|
+
</ul>
|
|
872
|
+
</div>
|
|
873
|
+
</div>
|
|
874
|
+
</div>
|
|
875
|
+
</section>
|
|
876
|
+
|
|
877
|
+
{/* Verification Instructions */}
|
|
878
|
+
<section className="bg-blue-50 border border-blue-200 rounded-lg p-6">
|
|
879
|
+
<h2 className="text-xl font-bold mb-4">
|
|
880
|
+
How to Verify Compliance
|
|
881
|
+
</h2>
|
|
882
|
+
<div className="space-y-4 text-sm">
|
|
883
|
+
<div>
|
|
884
|
+
<h3 className="font-semibold text-blue-900 mb-2">
|
|
885
|
+
1. Color Contrast Verification (1.4.3, 1.4.11)
|
|
886
|
+
</h3>
|
|
887
|
+
<ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
|
|
888
|
+
<li>
|
|
889
|
+
Open WebAIM Contrast Checker:
|
|
890
|
+
https://webaim.org/resources/contrastchecker/
|
|
891
|
+
</li>
|
|
892
|
+
<li>
|
|
893
|
+
Test each SingleSelect state:
|
|
894
|
+
<ul className="list-disc list-inside ml-4 mt-1">
|
|
895
|
+
<li>
|
|
896
|
+
Label text: #2B303B on #FFFFFF
|
|
897
|
+
(should be ≥4.5:1)
|
|
898
|
+
</li>
|
|
899
|
+
<li>
|
|
900
|
+
Placeholder text: #99A0AE on #FFFFFF
|
|
901
|
+
(should be ≥4.5:1)
|
|
902
|
+
</li>
|
|
903
|
+
<li>
|
|
904
|
+
Disabled states: Verify lighter
|
|
905
|
+
colors meet 4.5:1
|
|
906
|
+
</li>
|
|
907
|
+
</ul>
|
|
908
|
+
</li>
|
|
909
|
+
<li>
|
|
910
|
+
Test focus indicators: Outline colors
|
|
911
|
+
against trigger backgrounds (should be ≥3:1)
|
|
912
|
+
</li>
|
|
913
|
+
<li>
|
|
914
|
+
Document results and update report status
|
|
915
|
+
</li>
|
|
916
|
+
</ol>
|
|
917
|
+
</div>
|
|
918
|
+
<div>
|
|
919
|
+
<h3 className="font-semibold text-blue-900 mb-2">
|
|
920
|
+
2. Keyboard Navigation Verification (2.1.1,
|
|
921
|
+
2.4.7)
|
|
922
|
+
</h3>
|
|
923
|
+
<ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
|
|
924
|
+
<li>
|
|
925
|
+
Navigate to page with SingleSelect using
|
|
926
|
+
only keyboard (Tab key)
|
|
927
|
+
</li>
|
|
928
|
+
<li>
|
|
929
|
+
Verify trigger receives focus in logical
|
|
930
|
+
order
|
|
931
|
+
</li>
|
|
932
|
+
<li>
|
|
933
|
+
Verify disabled SingleSelect is skipped in
|
|
934
|
+
tab order
|
|
935
|
+
</li>
|
|
936
|
+
<li>
|
|
937
|
+
Press Enter or Space on focused trigger -
|
|
938
|
+
verify menu opens
|
|
939
|
+
</li>
|
|
940
|
+
<li>
|
|
941
|
+
Press Arrow keys (Up/Down) in menu - verify
|
|
942
|
+
navigation
|
|
943
|
+
</li>
|
|
944
|
+
<li>
|
|
945
|
+
Press Enter on menu item - verify selection
|
|
946
|
+
</li>
|
|
947
|
+
<li>Press Escape - verify menu closes</li>
|
|
948
|
+
<li>
|
|
949
|
+
Verify focus indicator is clearly visible
|
|
950
|
+
</li>
|
|
951
|
+
</ol>
|
|
952
|
+
</div>
|
|
953
|
+
<div>
|
|
954
|
+
<h3 className="font-semibold text-blue-900 mb-2">
|
|
955
|
+
3. Screen Reader Verification (4.1.2, 4.1.3)
|
|
956
|
+
</h3>
|
|
957
|
+
<ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
|
|
958
|
+
<li>
|
|
959
|
+
Enable screen reader (NVDA/JAWS/VoiceOver)
|
|
960
|
+
</li>
|
|
961
|
+
<li>
|
|
962
|
+
Navigate to SingleSelect using screen reader
|
|
963
|
+
navigation
|
|
964
|
+
</li>
|
|
965
|
+
<li>
|
|
966
|
+
Verify trigger announces: "Label, button,
|
|
967
|
+
collapsed" or "expanded"
|
|
968
|
+
</li>
|
|
969
|
+
<li>
|
|
970
|
+
Verify selected value is announced when
|
|
971
|
+
present
|
|
972
|
+
</li>
|
|
973
|
+
<li>
|
|
974
|
+
Verify required SingleSelect announces
|
|
975
|
+
required state
|
|
976
|
+
</li>
|
|
977
|
+
<li>
|
|
978
|
+
Verify error state announces error
|
|
979
|
+
information
|
|
980
|
+
</li>
|
|
981
|
+
<li>
|
|
982
|
+
Verify hint text is announced via
|
|
983
|
+
aria-describedby
|
|
984
|
+
</li>
|
|
985
|
+
<li>Verify clicking label focuses trigger</li>
|
|
986
|
+
</ol>
|
|
987
|
+
</div>
|
|
988
|
+
<div>
|
|
989
|
+
<h3 className="font-semibold text-blue-900 mb-2">
|
|
990
|
+
4. Touch Target Size Verification (WCAG 2.5.5
|
|
991
|
+
AAA, 2.5.8 AA)
|
|
992
|
+
</h3>
|
|
993
|
+
<p className="text-sm text-blue-800 mb-2">
|
|
994
|
+
<strong>How to Test:</strong> Use browser
|
|
995
|
+
DevTools to measure the clickable area
|
|
996
|
+
(including padding).
|
|
997
|
+
</p>
|
|
998
|
+
<ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
|
|
999
|
+
<li>
|
|
1000
|
+
<strong>Open Browser DevTools</strong> (F12
|
|
1001
|
+
or Right-click → Inspect)
|
|
1002
|
+
</li>
|
|
1003
|
+
<li>
|
|
1004
|
+
<strong>
|
|
1005
|
+
Select the trigger button element
|
|
1006
|
+
</strong>{' '}
|
|
1007
|
+
in the Elements panel
|
|
1008
|
+
</li>
|
|
1009
|
+
<li>
|
|
1010
|
+
<strong>Check Computed Styles:</strong> Look
|
|
1011
|
+
for padding-top, padding-bottom,
|
|
1012
|
+
padding-left, padding-right
|
|
1013
|
+
</li>
|
|
1014
|
+
<li>
|
|
1015
|
+
<strong>Calculate Clickable Area:</strong>
|
|
1016
|
+
<ul className="list-disc list-inside ml-4 mt-1">
|
|
1017
|
+
<li>
|
|
1018
|
+
Clickable Height = element height +
|
|
1019
|
+
padding-top + padding-bottom
|
|
1020
|
+
</li>
|
|
1021
|
+
<li>
|
|
1022
|
+
Clickable Width = element width +
|
|
1023
|
+
padding-left + padding-right
|
|
1024
|
+
</li>
|
|
1025
|
+
</ul>
|
|
1026
|
+
</li>
|
|
1027
|
+
<li>
|
|
1028
|
+
<strong>Verify Requirements:</strong>
|
|
1029
|
+
<ul className="list-disc list-inside ml-4 mt-1">
|
|
1030
|
+
<li>
|
|
1031
|
+
Level AA (WCAG 2.5.8): Minimum
|
|
1032
|
+
24x24px
|
|
1033
|
+
</li>
|
|
1034
|
+
<li>
|
|
1035
|
+
Level AAA (WCAG 2.5.5): Minimum
|
|
1036
|
+
44x44px
|
|
1037
|
+
</li>
|
|
1038
|
+
</ul>
|
|
1039
|
+
</li>
|
|
1040
|
+
<li>
|
|
1041
|
+
<strong>
|
|
1042
|
+
Alternative Method - Console:
|
|
1043
|
+
</strong>
|
|
1044
|
+
<pre className="bg-blue-100 p-2 rounded mt-2 text-xs overflow-x-auto">
|
|
1045
|
+
{`const trigger = document.querySelector('button[aria-haspopup="menu"]');
|
|
1046
|
+
const styles = window.getComputedStyle(trigger);
|
|
1047
|
+
const rect = trigger.getBoundingClientRect();
|
|
1048
|
+
const clickableHeight = rect.height +
|
|
1049
|
+
parseFloat(styles.paddingTop) +
|
|
1050
|
+
parseFloat(styles.paddingBottom);
|
|
1051
|
+
console.log('Clickable Height:', clickableHeight);
|
|
1052
|
+
// Should be ≥44px for AAA, ≥24px for AA`}
|
|
1053
|
+
</pre>
|
|
1054
|
+
</li>
|
|
1055
|
+
</ol>
|
|
1056
|
+
</div>
|
|
1057
|
+
<div>
|
|
1058
|
+
<h3 className="font-semibold text-blue-900 mb-2">
|
|
1059
|
+
5. Automated Testing with axe-core
|
|
1060
|
+
</h3>
|
|
1061
|
+
<ol className="list-decimal list-inside space-y-1 text-blue-800 ml-2">
|
|
1062
|
+
<li>
|
|
1063
|
+
Run: npm test
|
|
1064
|
+
SingleSelect.accessibility.test.tsx
|
|
1065
|
+
</li>
|
|
1066
|
+
<li>Review axe-core violations</li>
|
|
1067
|
+
<li>
|
|
1068
|
+
Verify all rules pass: button-name,
|
|
1069
|
+
keyboard-navigation,
|
|
1070
|
+
aria-required-attributes
|
|
1071
|
+
</li>
|
|
1072
|
+
<li>
|
|
1073
|
+
Check color-contrast warnings (may require
|
|
1074
|
+
manual verification)
|
|
1075
|
+
</li>
|
|
1076
|
+
</ol>
|
|
1077
|
+
</div>
|
|
1078
|
+
</div>
|
|
1079
|
+
</section>
|
|
1080
|
+
|
|
1081
|
+
{/* AAA Compliance Gaps */}
|
|
1082
|
+
<section className="bg-red-50 border-2 border-red-300 rounded-lg p-6">
|
|
1083
|
+
<h2 className="text-xl font-bold mb-4 text-red-900">
|
|
1084
|
+
AAA Compliance Gaps & Requirements
|
|
1085
|
+
</h2>
|
|
1086
|
+
<div className="space-y-4">
|
|
1087
|
+
<div className="bg-white border border-red-200 rounded-lg p-4">
|
|
1088
|
+
<h3 className="font-semibold text-red-900 mb-2 flex items-center gap-2">
|
|
1089
|
+
<span className="text-xl">❌</span>
|
|
1090
|
+
<span>
|
|
1091
|
+
1. WCAG 1.4.6 Contrast (Enhanced) -
|
|
1092
|
+
NON-COMPLIANT
|
|
1093
|
+
</span>
|
|
1094
|
+
</h3>
|
|
1095
|
+
<p className="text-sm text-red-800 mb-2">
|
|
1096
|
+
<strong>Requirement:</strong> Text must have 7:1
|
|
1097
|
+
contrast ratio for AAA (vs 4.5:1 for AA)
|
|
1098
|
+
</p>
|
|
1099
|
+
<p className="text-sm text-red-700 mb-2">
|
|
1100
|
+
<strong>Current Status:</strong> Designed for AA
|
|
1101
|
+
standard (4.5:1). Colors need adjustment for
|
|
1102
|
+
AAA.
|
|
1103
|
+
</p>
|
|
1104
|
+
<p className="text-sm text-red-700 mb-2">
|
|
1105
|
+
<strong>Action Required:</strong> Redesign color
|
|
1106
|
+
combinations:
|
|
1107
|
+
</p>
|
|
1108
|
+
<ul className="list-disc list-inside text-sm text-red-700 ml-4 space-y-1">
|
|
1109
|
+
<li>
|
|
1110
|
+
Label text: Darken from gray[700] (#2B303B)
|
|
1111
|
+
to gray[800] (#222530) or gray[900]
|
|
1112
|
+
(#181B25) for 7:1 with white background
|
|
1113
|
+
</li>
|
|
1114
|
+
<li>
|
|
1115
|
+
Placeholder text: Darken from gray[400]
|
|
1116
|
+
(#99A0AE) to gray[600] (#525866) or darker
|
|
1117
|
+
for 7:1
|
|
1118
|
+
</li>
|
|
1119
|
+
<li>
|
|
1120
|
+
Selected value: Ensure 7:1 contrast
|
|
1121
|
+
(currently gray[700])
|
|
1122
|
+
</li>
|
|
1123
|
+
<li>
|
|
1124
|
+
Error labels: Verify red[600] (#E7000B)
|
|
1125
|
+
meets 7:1 with white background
|
|
1126
|
+
</li>
|
|
1127
|
+
</ul>
|
|
1128
|
+
<p className="text-xs text-red-600 mt-2 italic">
|
|
1129
|
+
Verify with WebAIM Contrast Checker:
|
|
1130
|
+
https://webaim.org/resources/contrastchecker/
|
|
1131
|
+
</p>
|
|
1132
|
+
</div>
|
|
1133
|
+
|
|
1134
|
+
<div className="bg-white border border-orange-200 rounded-lg p-4">
|
|
1135
|
+
<h3 className="font-semibold text-orange-900 mb-2 flex items-center gap-2">
|
|
1136
|
+
<span className="text-xl">⚠️</span>
|
|
1137
|
+
<span>
|
|
1138
|
+
2. WCAG 2.5.5 Target Size - VERIFICATION
|
|
1139
|
+
REQUIRED
|
|
1140
|
+
</span>
|
|
1141
|
+
</h3>
|
|
1142
|
+
<p className="text-sm text-orange-800 mb-2">
|
|
1143
|
+
<strong>Requirement:</strong> Interactive target
|
|
1144
|
+
area must be ≥44x44px (both height AND width)
|
|
1145
|
+
</p>
|
|
1146
|
+
<p className="text-sm text-orange-700 mb-2">
|
|
1147
|
+
<strong>Current Status:</strong> HEIGHT verified
|
|
1148
|
+
via calculations (Small=50px ✓, Medium=56px ✓,
|
|
1149
|
+
Large=72px ✓). WIDTH requires manual
|
|
1150
|
+
verification.
|
|
1151
|
+
</p>
|
|
1152
|
+
<p className="text-sm text-orange-700 mb-2">
|
|
1153
|
+
<strong>Action Required:</strong> Verify trigger
|
|
1154
|
+
width meets 44px minimum:
|
|
1155
|
+
</p>
|
|
1156
|
+
<ol className="list-decimal list-inside text-sm text-orange-700 ml-4 space-y-1">
|
|
1157
|
+
<li>Open browser DevTools (F12)</li>
|
|
1158
|
+
<li>Select trigger button element</li>
|
|
1159
|
+
<li>
|
|
1160
|
+
Check computed styles: padding-left,
|
|
1161
|
+
padding-right
|
|
1162
|
+
</li>
|
|
1163
|
+
<li>
|
|
1164
|
+
Calculate: element width + padding-left +
|
|
1165
|
+
padding-right ≥ 44px
|
|
1166
|
+
</li>
|
|
1167
|
+
<li>
|
|
1168
|
+
If less than 44px, extend padding-x or add
|
|
1169
|
+
min-width: 44px
|
|
1170
|
+
</li>
|
|
1171
|
+
</ol>
|
|
1172
|
+
<p className="text-xs text-orange-600 mt-2 italic">
|
|
1173
|
+
Console command:{' '}
|
|
1174
|
+
<code className="bg-orange-100 px-1 rounded">
|
|
1175
|
+
getBoundingClientRect().width +
|
|
1176
|
+
parseFloat(getComputedStyle(element).paddingLeft)
|
|
1177
|
+
+
|
|
1178
|
+
parseFloat(getComputedStyle(element).paddingRight)
|
|
1179
|
+
</code>
|
|
1180
|
+
</p>
|
|
1181
|
+
</div>
|
|
1182
|
+
|
|
1183
|
+
<div className="bg-white border border-yellow-200 rounded-lg p-4">
|
|
1184
|
+
<h3 className="font-semibold text-yellow-900 mb-2 flex items-center gap-2">
|
|
1185
|
+
<span className="text-xl">⚠️</span>
|
|
1186
|
+
<span>
|
|
1187
|
+
3. WCAG 3.3.6 Error Prevention (All) -
|
|
1188
|
+
APPLICATION-DEPENDENT
|
|
1189
|
+
</span>
|
|
1190
|
+
</h3>
|
|
1191
|
+
<p className="text-sm text-yellow-800 mb-2">
|
|
1192
|
+
<strong>Requirement:</strong> For critical
|
|
1193
|
+
actions, implement confirmation patterns
|
|
1194
|
+
(reversible, checked, or confirmed)
|
|
1195
|
+
</p>
|
|
1196
|
+
<p className="text-sm text-yellow-700 mb-2">
|
|
1197
|
+
<strong>Current Status:</strong> Component
|
|
1198
|
+
provides error states (aria-invalid="true") and
|
|
1199
|
+
required states, but confirmation patterns must
|
|
1200
|
+
be implemented at application level.
|
|
1201
|
+
</p>
|
|
1202
|
+
<p className="text-sm text-yellow-700 mb-2">
|
|
1203
|
+
<strong>Action Required:</strong> Implement
|
|
1204
|
+
application-level confirmation dialogs for:
|
|
1205
|
+
</p>
|
|
1206
|
+
<ul className="list-disc list-inside text-sm text-yellow-700 ml-4 space-y-1">
|
|
1207
|
+
<li>Legal agreements (terms acceptance)</li>
|
|
1208
|
+
<li>
|
|
1209
|
+
Financial transactions (payment
|
|
1210
|
+
confirmations)
|
|
1211
|
+
</li>
|
|
1212
|
+
<li>Data deletion or modification</li>
|
|
1213
|
+
<li>Any irreversible actions</li>
|
|
1214
|
+
</ul>
|
|
1215
|
+
<p className="text-xs text-yellow-600 mt-2 italic">
|
|
1216
|
+
Component provides necessary hooks (error
|
|
1217
|
+
states, required states) but final
|
|
1218
|
+
implementation is application-dependent.
|
|
1219
|
+
</p>
|
|
1220
|
+
</div>
|
|
1221
|
+
|
|
1222
|
+
<div className="bg-green-50 border border-green-300 rounded-lg p-4">
|
|
1223
|
+
<h3 className="font-semibold text-green-900 mb-2">
|
|
1224
|
+
✅ Currently Compliant AAA Criteria (6/9)
|
|
1225
|
+
</h3>
|
|
1226
|
+
<ul className="list-disc list-inside text-sm text-green-800 space-y-1">
|
|
1227
|
+
<li>
|
|
1228
|
+
1.4.8 Visual Presentation - Text scales up
|
|
1229
|
+
to 200%
|
|
1230
|
+
</li>
|
|
1231
|
+
<li>
|
|
1232
|
+
1.4.9 Images of Text - No images of text
|
|
1233
|
+
used
|
|
1234
|
+
</li>
|
|
1235
|
+
<li>
|
|
1236
|
+
2.1.3 Keyboard (No Exception) - Full
|
|
1237
|
+
keyboard access
|
|
1238
|
+
</li>
|
|
1239
|
+
<li>
|
|
1240
|
+
2.3.3 Animation from Interactions - Respects
|
|
1241
|
+
reduced motion
|
|
1242
|
+
</li>
|
|
1243
|
+
<li>
|
|
1244
|
+
3.2.5 Change on Request - All changes
|
|
1245
|
+
require user action
|
|
1246
|
+
</li>
|
|
1247
|
+
<li>
|
|
1248
|
+
2.5.5 Target Size (Height) - Verified via
|
|
1249
|
+
calculations
|
|
1250
|
+
</li>
|
|
1251
|
+
</ul>
|
|
1252
|
+
</div>
|
|
1253
|
+
</div>
|
|
1254
|
+
</section>
|
|
1255
|
+
|
|
1256
|
+
{/* Testing Checklist */}
|
|
1257
|
+
<section className="bg-gray-50 border border-gray-200 rounded-lg p-6">
|
|
1258
|
+
<h2 className="text-xl font-bold mb-4">
|
|
1259
|
+
Accessibility Testing Checklist
|
|
1260
|
+
</h2>
|
|
1261
|
+
<ul className="space-y-2 text-sm">
|
|
1262
|
+
<li className="flex items-start">
|
|
1263
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1264
|
+
<span>
|
|
1265
|
+
<strong>Keyboard Navigation:</strong> All
|
|
1266
|
+
SingleSelect functionality reachable and
|
|
1267
|
+
activatable with keyboard (Tab, Enter, Space,
|
|
1268
|
+
Arrow keys, Escape)
|
|
1269
|
+
</span>
|
|
1270
|
+
</li>
|
|
1271
|
+
<li className="flex items-start">
|
|
1272
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1273
|
+
<span>
|
|
1274
|
+
<strong>Screen Reader:</strong> SingleSelect
|
|
1275
|
+
announced with accessible name, role, and state
|
|
1276
|
+
(aria-expanded, aria-controls)
|
|
1277
|
+
</span>
|
|
1278
|
+
</li>
|
|
1279
|
+
<li className="flex items-start">
|
|
1280
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1281
|
+
<span>
|
|
1282
|
+
<strong>Label Association:</strong> Labels
|
|
1283
|
+
properly associated with trigger (htmlFor/id)
|
|
1284
|
+
</span>
|
|
1285
|
+
</li>
|
|
1286
|
+
<li className="flex items-start">
|
|
1287
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1288
|
+
<span>
|
|
1289
|
+
<strong>Menu Items:</strong> Proper menuitem
|
|
1290
|
+
roles with keyboard navigation (Arrow keys)
|
|
1291
|
+
</span>
|
|
1292
|
+
</li>
|
|
1293
|
+
<li className="flex items-start">
|
|
1294
|
+
<Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1295
|
+
<span>
|
|
1296
|
+
<strong>Focus Indicators:</strong> Clear,
|
|
1297
|
+
visible focus outline (VERIFY: contrast ratio
|
|
1298
|
+
≥3:1)
|
|
1299
|
+
</span>
|
|
1300
|
+
</li>
|
|
1301
|
+
<li className="flex items-start">
|
|
1302
|
+
<Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1303
|
+
<span>
|
|
1304
|
+
<strong>Color Contrast:</strong> Text meets WCAG
|
|
1305
|
+
AA standards (VERIFY: ≥4.5:1 for normal text)
|
|
1306
|
+
</span>
|
|
1307
|
+
</li>
|
|
1308
|
+
<li className="flex items-start">
|
|
1309
|
+
<Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1310
|
+
<span>
|
|
1311
|
+
<strong>Touch Targets:</strong> HEIGHT verified
|
|
1312
|
+
via calculations (Small=50px, Medium=56px,
|
|
1313
|
+
Large=72px all exceed 44px ✓). WIDTH requires
|
|
1314
|
+
manual verification using browser DevTools -
|
|
1315
|
+
verify element width + padding-left +
|
|
1316
|
+
padding-right ≥ 44px
|
|
1317
|
+
</span>
|
|
1318
|
+
</li>
|
|
1319
|
+
<li className="flex items-start">
|
|
1320
|
+
<Check className="w-5 h-5 text-red-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1321
|
+
<span>
|
|
1322
|
+
<strong>AAA Contrast:</strong> Currently
|
|
1323
|
+
designed for AA (4.5:1). For AAA compliance
|
|
1324
|
+
(WCAG 1.4.6), requires 7:1 contrast ratio -
|
|
1325
|
+
REDESIGN REQUIRED
|
|
1326
|
+
</span>
|
|
1327
|
+
</li>
|
|
1328
|
+
<li className="flex items-start">
|
|
1329
|
+
<Check className="w-5 h-5 text-yellow-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1330
|
+
<span>
|
|
1331
|
+
<strong>AAA Error Prevention:</strong>{' '}
|
|
1332
|
+
Application-level confirmation patterns required
|
|
1333
|
+
for critical actions (WCAG 3.3.6) -
|
|
1334
|
+
APPLICATION-DEPENDENT
|
|
1335
|
+
</span>
|
|
1336
|
+
</li>
|
|
1337
|
+
<li className="flex items-start">
|
|
1338
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1339
|
+
<span>
|
|
1340
|
+
<strong>Required State:</strong> Indicated with
|
|
1341
|
+
asterisk and label association
|
|
1342
|
+
</span>
|
|
1343
|
+
</li>
|
|
1344
|
+
<li className="flex items-start">
|
|
1345
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1346
|
+
<span>
|
|
1347
|
+
<strong>Error State:</strong> Communicated via
|
|
1348
|
+
aria-invalid="true" attribute (WCAG 4.1.3) and
|
|
1349
|
+
visual styling (red border and label color)
|
|
1350
|
+
</span>
|
|
1351
|
+
</li>
|
|
1352
|
+
<li className="flex items-start">
|
|
1353
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1354
|
+
<span>
|
|
1355
|
+
<strong>Disabled State:</strong> Removed from
|
|
1356
|
+
tab order and clearly indicated
|
|
1357
|
+
</span>
|
|
1358
|
+
</li>
|
|
1359
|
+
<li className="flex items-start">
|
|
1360
|
+
<Check className="w-5 h-5 text-green-600 mr-2 flex-shrink-0 mt-0.5" />
|
|
1361
|
+
<span>
|
|
1362
|
+
<strong>Search Input:</strong> Has proper
|
|
1363
|
+
aria-label for accessibility
|
|
1364
|
+
</span>
|
|
1365
|
+
</li>
|
|
1366
|
+
</ul>
|
|
1367
|
+
</section>
|
|
1368
|
+
</div>
|
|
1369
|
+
</div>
|
|
1370
|
+
)
|
|
1371
|
+
})
|
|
1372
|
+
|
|
1373
|
+
SingleSelectAccessibility.displayName = 'SingleSelectAccessibility'
|
|
1374
|
+
|
|
1375
|
+
export default SingleSelectAccessibility
|