@seveelly/baseui 16.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/CODEOWNERS +4 -0
- package/.github/ISSUE_TEMPLATE/1.bug.md +31 -0
- package/.github/ISSUE_TEMPLATE/2.feature.md +8 -0
- package/.github/ISSUE_TEMPLATE/3.uber.employee.md +6 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +12 -0
- package/.github/workflows/pr-check.yml +33 -0
- package/.github/workflows/release.yml +57 -0
- package/.husky/pre-commit +5 -0
- package/.ladle/components.tsx +31 -0
- package/.lintstagedrc +6 -0
- package/CODE_OF_CONDUCT.md +46 -0
- package/LICENSE +21 -0
- package/PUBLISHING.md +15 -0
- package/README.md +63 -0
- package/documentation-site/@types/just-clone.d.ts +11 -0
- package/documentation-site/@types/just-omit.d.ts +16 -0
- package/documentation-site/cheat-sheet.jsx +5626 -0
- package/documentation-site/components/align-left-icon.jsx +23 -0
- package/documentation-site/components/align-right-icon.jsx +23 -0
- package/documentation-site/components/anchor.jsx +54 -0
- package/documentation-site/components/blog.jsx +149 -0
- package/documentation-site/components/bulb.jsx +36 -0
- package/documentation-site/components/cheat-sheet.jsx +121 -0
- package/documentation-site/components/code-box.tsx +34 -0
- package/documentation-site/components/code-icon.jsx +28 -0
- package/documentation-site/components/code.jsx +42 -0
- package/documentation-site/components/direction-context.jsx +12 -0
- package/documentation-site/components/example.jsx +234 -0
- package/documentation-site/components/exports.jsx +52 -0
- package/documentation-site/components/floating-marker-container.jsx +27 -0
- package/documentation-site/components/footer.jsx +86 -0
- package/documentation-site/components/gallery.jsx +405 -0
- package/documentation-site/components/github-logo.jsx +27 -0
- package/documentation-site/components/header-navigation.jsx +262 -0
- package/documentation-site/components/hooks.jsx +32 -0
- package/documentation-site/components/json.jsx +15 -0
- package/documentation-site/components/layout.jsx +189 -0
- package/documentation-site/components/map-marker-sizing-table.jsx +41 -0
- package/documentation-site/components/markdown-elements.jsx +187 -0
- package/documentation-site/components/meta-favicons.jsx +38 -0
- package/documentation-site/components/meta-seo.jsx +30 -0
- package/documentation-site/components/overrides.jsx +106 -0
- package/documentation-site/components/pencil-icon.jsx +26 -0
- package/documentation-site/components/posts.jsx +100 -0
- package/documentation-site/components/search.jsx +118 -0
- package/documentation-site/components/sidebar.jsx +78 -0
- package/documentation-site/components/skip-to-content.jsx +39 -0
- package/documentation-site/components/slack-logo.jsx +40 -0
- package/documentation-site/components/table-guide-notification.jsx +29 -0
- package/documentation-site/components/table-of-contents.jsx +100 -0
- package/documentation-site/components/theming/animations.jsx +141 -0
- package/documentation-site/components/theming/borders.jsx +65 -0
- package/documentation-site/components/theming/breakpoints.jsx +25 -0
- package/documentation-site/components/theming/colors.jsx +45 -0
- package/documentation-site/components/theming/common.jsx +133 -0
- package/documentation-site/components/theming/grid.jsx +34 -0
- package/documentation-site/components/theming/lighting.jsx +30 -0
- package/documentation-site/components/theming/sizing.jsx +31 -0
- package/documentation-site/components/theming/typography.jsx +39 -0
- package/documentation-site/components/thumbs/components/Accordion.jsx +25 -0
- package/documentation-site/components/thumbs/components/AspectRatioBox.jsx +19 -0
- package/documentation-site/components/thumbs/components/Avatar.jsx +28 -0
- package/documentation-site/components/thumbs/components/BaseProvider.jsx +22 -0
- package/documentation-site/components/thumbs/components/Block.jsx +29 -0
- package/documentation-site/components/thumbs/components/Breadcrumbs.jsx +25 -0
- package/documentation-site/components/thumbs/components/Button.jsx +17 -0
- package/documentation-site/components/thumbs/components/ButtonGroup.jsx +18 -0
- package/documentation-site/components/thumbs/components/Card.jsx +18 -0
- package/documentation-site/components/thumbs/components/Checkbox.jsx +28 -0
- package/documentation-site/components/thumbs/components/DataTable.jsx +24 -0
- package/documentation-site/components/thumbs/components/Datepicker.jsx +28 -0
- package/documentation-site/components/thumbs/components/DndList.jsx +22 -0
- package/documentation-site/components/thumbs/components/Drawer.jsx +22 -0
- package/documentation-site/components/thumbs/components/FileUploader.jsx +21 -0
- package/documentation-site/components/thumbs/components/FileUploaderBasic.jsx +21 -0
- package/documentation-site/components/thumbs/components/FixedMarker.jsx +46 -0
- package/documentation-site/components/thumbs/components/FlexGrid.jsx +20 -0
- package/documentation-site/components/thumbs/components/FloatingMarker.jsx +39 -0
- package/documentation-site/components/thumbs/components/FloatingRouteMarker.jsx +32 -0
- package/documentation-site/components/thumbs/components/FormControl.jsx +19 -0
- package/documentation-site/components/thumbs/components/HeaderNavigation.jsx +19 -0
- package/documentation-site/components/thumbs/components/Heading.jsx +21 -0
- package/documentation-site/components/thumbs/components/Icon.jsx +20 -0
- package/documentation-site/components/thumbs/components/Input.jsx +17 -0
- package/documentation-site/components/thumbs/components/Layer.jsx +19 -0
- package/documentation-site/components/thumbs/components/LayoutGrid.jsx +20 -0
- package/documentation-site/components/thumbs/components/Link.jsx +17 -0
- package/documentation-site/components/thumbs/components/List.jsx +30 -0
- package/documentation-site/components/thumbs/components/LocationPuck.jsx +29 -0
- package/documentation-site/components/thumbs/components/Menu.jsx +23 -0
- package/documentation-site/components/thumbs/components/Modal.jsx +23 -0
- package/documentation-site/components/thumbs/components/Notification.jsx +21 -0
- package/documentation-site/components/thumbs/components/Pagination.jsx +24 -0
- package/documentation-site/components/thumbs/components/PaymentCard.jsx +18 -0
- package/documentation-site/components/thumbs/components/PhoneInput.jsx +21 -0
- package/documentation-site/components/thumbs/components/PinCode.jsx +20 -0
- package/documentation-site/components/thumbs/components/Popover.jsx +19 -0
- package/documentation-site/components/thumbs/components/ProgressBar.jsx +18 -0
- package/documentation-site/components/thumbs/components/ProgressSteps.jsx +21 -0
- package/documentation-site/components/thumbs/components/Radio.jsx +30 -0
- package/documentation-site/components/thumbs/components/Rating.jsx +24 -0
- package/documentation-site/components/thumbs/components/Select.jsx +21 -0
- package/documentation-site/components/thumbs/components/SideNavigation.jsx +23 -0
- package/documentation-site/components/thumbs/components/Slider.jsx +19 -0
- package/documentation-site/components/thumbs/components/Spinner.jsx +32 -0
- package/documentation-site/components/thumbs/components/Styled.jsx +21 -0
- package/documentation-site/components/thumbs/components/Table.jsx +24 -0
- package/documentation-site/components/thumbs/components/TableGrid.jsx +24 -0
- package/documentation-site/components/thumbs/components/TableSemantic.jsx +24 -0
- package/documentation-site/components/thumbs/components/Tabs.jsx +20 -0
- package/documentation-site/components/thumbs/components/Tag.jsx +40 -0
- package/documentation-site/components/thumbs/components/Textarea.jsx +21 -0
- package/documentation-site/components/thumbs/components/Toast.jsx +22 -0
- package/documentation-site/components/thumbs/components/Tokens.jsx +23 -0
- package/documentation-site/components/thumbs/components/Tooltip.jsx +19 -0
- package/documentation-site/components/thumbs/components/TreeView.jsx +21 -0
- package/documentation-site/components/thumbs/components/Typography.jsx +20 -0
- package/documentation-site/components/thumbs/components/UnstableA11Y.jsx +30 -0
- package/documentation-site/components/thumbs/components/UseStyletron.jsx +37 -0
- package/documentation-site/components/thumbs/index.jsx +87 -0
- package/documentation-site/components/thumbs/svg/accordion.svg +9 -0
- package/documentation-site/components/thumbs/svg/aspect-ratio-box.svg +5 -0
- package/documentation-site/components/thumbs/svg/avatar.svg +6 -0
- package/documentation-site/components/thumbs/svg/base-provider.svg +8 -0
- package/documentation-site/components/thumbs/svg/block.svg +12 -0
- package/documentation-site/components/thumbs/svg/breadcrumbs.svg +7 -0
- package/documentation-site/components/thumbs/svg/button-group.svg +5 -0
- package/documentation-site/components/thumbs/svg/button.svg +3 -0
- package/documentation-site/components/thumbs/svg/card.svg +4 -0
- package/documentation-site/components/thumbs/svg/checkbox.svg +9 -0
- package/documentation-site/components/thumbs/svg/data-table.svg +32 -0
- package/documentation-site/components/thumbs/svg/datepicker.svg +24 -0
- package/documentation-site/components/thumbs/svg/dnd-list.svg +7 -0
- package/documentation-site/components/thumbs/svg/drawer.svg +5 -0
- package/documentation-site/components/thumbs/svg/file-uploader.svg +7 -0
- package/documentation-site/components/thumbs/svg/fixed-marker.svg +13 -0
- package/documentation-site/components/thumbs/svg/flex-grid.svg +12 -0
- package/documentation-site/components/thumbs/svg/floating-marker.svg +13 -0
- package/documentation-site/components/thumbs/svg/floating-route-marker.svg +6 -0
- package/documentation-site/components/thumbs/svg/form-control.svg +5 -0
- package/documentation-site/components/thumbs/svg/header-navigation.svg +6 -0
- package/documentation-site/components/thumbs/svg/heading.svg +6 -0
- package/documentation-site/components/thumbs/svg/icon.svg +6 -0
- package/documentation-site/components/thumbs/svg/input.svg +3 -0
- package/documentation-site/components/thumbs/svg/layer.svg +5 -0
- package/documentation-site/components/thumbs/svg/layout-grid.svg +17 -0
- package/documentation-site/components/thumbs/svg/link.svg +4 -0
- package/documentation-site/components/thumbs/svg/list.svg +9 -0
- package/documentation-site/components/thumbs/svg/location-puck.svg +5 -0
- package/documentation-site/components/thumbs/svg/menu.svg +8 -0
- package/documentation-site/components/thumbs/svg/modal.svg +6 -0
- package/documentation-site/components/thumbs/svg/notification.svg +4 -0
- package/documentation-site/components/thumbs/svg/pagination.svg +7 -0
- package/documentation-site/components/thumbs/svg/payment-card.svg +4 -0
- package/documentation-site/components/thumbs/svg/phone-input.svg +5 -0
- package/documentation-site/components/thumbs/svg/pin-code.svg +6 -0
- package/documentation-site/components/thumbs/svg/popover.svg +5 -0
- package/documentation-site/components/thumbs/svg/progress-bar.svg +4 -0
- package/documentation-site/components/thumbs/svg/progress-steps.svg +8 -0
- package/documentation-site/components/thumbs/svg/radio.svg +8 -0
- package/documentation-site/components/thumbs/svg/rating.svg +7 -0
- package/documentation-site/components/thumbs/svg/select.svg +4 -0
- package/documentation-site/components/thumbs/svg/side-navigation.svg +9 -0
- package/documentation-site/components/thumbs/svg/slider.svg +5 -0
- package/documentation-site/components/thumbs/svg/spinner.svg +7 -0
- package/documentation-site/components/thumbs/svg/styled.svg +7 -0
- package/documentation-site/components/thumbs/svg/table-grid.svg +18 -0
- package/documentation-site/components/thumbs/svg/table-semantic.svg +12 -0
- package/documentation-site/components/thumbs/svg/table.svg +11 -0
- package/documentation-site/components/thumbs/svg/tabs.svg +7 -0
- package/documentation-site/components/thumbs/svg/tag.svg +6 -0
- package/documentation-site/components/thumbs/svg/textarea.svg +4 -0
- package/documentation-site/components/thumbs/svg/toast.svg +5 -0
- package/documentation-site/components/thumbs/svg/tokens.svg +8 -0
- package/documentation-site/components/thumbs/svg/tooltip.svg +5 -0
- package/documentation-site/components/thumbs/svg/tree-view.svg +8 -0
- package/documentation-site/components/thumbs/svg/typography.svg +6 -0
- package/documentation-site/components/thumbs/svg/unstable-a11y.svg +13 -0
- package/documentation-site/components/thumbs/svg/use-styletron.svg +11 -0
- package/documentation-site/components/thumbs/template.jsx +34 -0
- package/documentation-site/components/unstable-warning.jsx +36 -0
- package/documentation-site/components/version-selector.jsx +92 -0
- package/documentation-site/components/yard/__tests__/ast.test.ts +101 -0
- package/documentation-site/components/yard/__tests__/code-generator.test.ts +197 -0
- package/documentation-site/components/yard/action-buttons.tsx +83 -0
- package/documentation-site/components/yard/ast.ts +75 -0
- package/documentation-site/components/yard/config/accordion.ts +75 -0
- package/documentation-site/components/yard/config/app-nav-bar.ts +131 -0
- package/documentation-site/components/yard/config/avatar.ts +57 -0
- package/documentation-site/components/yard/config/badge.ts +121 -0
- package/documentation-site/components/yard/config/banner.ts +116 -0
- package/documentation-site/components/yard/config/bottom-navigation.ts +83 -0
- package/documentation-site/components/yard/config/breadcrumbs.ts +68 -0
- package/documentation-site/components/yard/config/button-dock.ts +83 -0
- package/documentation-site/components/yard/config/button-group.ts +156 -0
- package/documentation-site/components/yard/config/button-timed.ts +116 -0
- package/documentation-site/components/yard/config/button.ts +170 -0
- package/documentation-site/components/yard/config/card.ts +79 -0
- package/documentation-site/components/yard/config/checkbox-v2.ts +167 -0
- package/documentation-site/components/yard/config/checkbox.ts +197 -0
- package/documentation-site/components/yard/config/combobox.ts +148 -0
- package/documentation-site/components/yard/config/common/common.ts +76 -0
- package/documentation-site/components/yard/config/datepicker.ts +434 -0
- package/documentation-site/components/yard/config/dialog.ts +141 -0
- package/documentation-site/components/yard/config/divider.ts +37 -0
- package/documentation-site/components/yard/config/dnd-list.ts +91 -0
- package/documentation-site/components/yard/config/drawer.ts +144 -0
- package/documentation-site/components/yard/config/file-uploader-basic.ts +123 -0
- package/documentation-site/components/yard/config/file-uploader.ts +176 -0
- package/documentation-site/components/yard/config/fixed-marker.ts +192 -0
- package/documentation-site/components/yard/config/floating-marker.ts +124 -0
- package/documentation-site/components/yard/config/floating-route-marker.ts +98 -0
- package/documentation-site/components/yard/config/form-control.ts +84 -0
- package/documentation-site/components/yard/config/header-navigation.ts +81 -0
- package/documentation-site/components/yard/config/hint-dot.ts +76 -0
- package/documentation-site/components/yard/config/icon.ts +54 -0
- package/documentation-site/components/yard/config/input.ts +290 -0
- package/documentation-site/components/yard/config/link.ts +40 -0
- package/documentation-site/components/yard/config/list-heading.ts +88 -0
- package/documentation-site/components/yard/config/list-item-label.ts +55 -0
- package/documentation-site/components/yard/config/list-item.ts +108 -0
- package/documentation-site/components/yard/config/location-puck.ts +101 -0
- package/documentation-site/components/yard/config/menu.ts +99 -0
- package/documentation-site/components/yard/config/message-card.ts +115 -0
- package/documentation-site/components/yard/config/mobile-header.ts +90 -0
- package/documentation-site/components/yard/config/modal.ts +160 -0
- package/documentation-site/components/yard/config/nav-item.ts +49 -0
- package/documentation-site/components/yard/config/notification-circle.ts +102 -0
- package/documentation-site/components/yard/config/notification.ts +94 -0
- package/documentation-site/components/yard/config/page-control.ts +76 -0
- package/documentation-site/components/yard/config/pagination.ts +81 -0
- package/documentation-site/components/yard/config/payment-card.ts +65 -0
- package/documentation-site/components/yard/config/phone-input.ts +155 -0
- package/documentation-site/components/yard/config/pin-code.ts +76 -0
- package/documentation-site/components/yard/config/popover.ts +223 -0
- package/documentation-site/components/yard/config/progress-bar.ts +111 -0
- package/documentation-site/components/yard/config/progress-steps-numbered.ts +45 -0
- package/documentation-site/components/yard/config/progress-steps.ts +111 -0
- package/documentation-site/components/yard/config/radio.ts +176 -0
- package/documentation-site/components/yard/config/rating.ts +77 -0
- package/documentation-site/components/yard/config/segmented-control.ts +82 -0
- package/documentation-site/components/yard/config/select.ts +435 -0
- package/documentation-site/components/yard/config/side-nav.ts +112 -0
- package/documentation-site/components/yard/config/skeleton.ts +62 -0
- package/documentation-site/components/yard/config/slider.ts +124 -0
- package/documentation-site/components/yard/config/spinner.ts +43 -0
- package/documentation-site/components/yard/config/stepper.ts +69 -0
- package/documentation-site/components/yard/config/switch.ts +174 -0
- package/documentation-site/components/yard/config/system-banner.ts +122 -0
- package/documentation-site/components/yard/config/tab-motion.ts +67 -0
- package/documentation-site/components/yard/config/table-semantic.ts +114 -0
- package/documentation-site/components/yard/config/table.ts +71 -0
- package/documentation-site/components/yard/config/tabs-motion.ts +133 -0
- package/documentation-site/components/yard/config/tabs.ts +95 -0
- package/documentation-site/components/yard/config/tag.ts +207 -0
- package/documentation-site/components/yard/config/textarea.ts +59 -0
- package/documentation-site/components/yard/config/tile.ts +127 -0
- package/documentation-site/components/yard/config/timepicker.ts +107 -0
- package/documentation-site/components/yard/config/timezonepicker.ts +70 -0
- package/documentation-site/components/yard/config/toast.ts +125 -0
- package/documentation-site/components/yard/config/tooltip.ts +74 -0
- package/documentation-site/components/yard/config/tree-view.ts +149 -0
- package/documentation-site/components/yard/custom-props.ts +125 -0
- package/documentation-site/components/yard/dark-theme.ts +80 -0
- package/documentation-site/components/yard/editor.tsx +126 -0
- package/documentation-site/components/yard/index.tsx +169 -0
- package/documentation-site/components/yard/knob.tsx +254 -0
- package/documentation-site/components/yard/knobs.tsx +96 -0
- package/documentation-site/components/yard/nested-tooltip.tsx +64 -0
- package/documentation-site/components/yard/override.tsx +210 -0
- package/documentation-site/components/yard/overrides-description.tsx +29 -0
- package/documentation-site/components/yard/overrides.tsx +212 -0
- package/documentation-site/components/yard/provider.ts +142 -0
- package/documentation-site/components/yard/styled-components.tsx +45 -0
- package/documentation-site/components/yard/theme-editor.tsx +178 -0
- package/documentation-site/components/yard/types.ts +26 -0
- package/documentation-site/components/yard/utils.ts +49 -0
- package/documentation-site/examples/accordion/basic.tsx +15 -0
- package/documentation-site/examples/accordion/custom.tsx +17 -0
- package/documentation-site/examples/accordion/renderpanelcontent.tsx +15 -0
- package/documentation-site/examples/accordion/stateful-panel.tsx +13 -0
- package/documentation-site/examples/accordion/stateless.tsx +25 -0
- package/documentation-site/examples/accordion/title.tsx +47 -0
- package/documentation-site/examples/app-nav-bar/basic.tsx +86 -0
- package/documentation-site/examples/app-nav-bar/map-item-to-node.tsx +43 -0
- package/documentation-site/examples/app-nav-bar/unique-identifier.tsx +31 -0
- package/documentation-site/examples/aspect-ratio-box/basic.tsx +63 -0
- package/documentation-site/examples/aspect-ratio-box/calendar.tsx +63 -0
- package/documentation-site/examples/aspect-ratio-box/image.tsx +14 -0
- package/documentation-site/examples/avatar/error.tsx +19 -0
- package/documentation-site/examples/avatar/initials.tsx +12 -0
- package/documentation-site/examples/avatar/override.tsx +88 -0
- package/documentation-site/examples/avatar/sizes.tsx +19 -0
- package/documentation-site/examples/badge/offset.tsx +34 -0
- package/documentation-site/examples/badge/primary-inline.tsx +10 -0
- package/documentation-site/examples/badge/secondary-inline.tsx +19 -0
- package/documentation-site/examples/banner/action.tsx +48 -0
- package/documentation-site/examples/banner/artwork.tsx +34 -0
- package/documentation-site/examples/banner/variants.tsx +36 -0
- package/documentation-site/examples/block/basic.tsx +11 -0
- package/documentation-site/examples/block/override.tsx +17 -0
- package/documentation-site/examples/block/responsive.tsx +11 -0
- package/documentation-site/examples/bottom-navigation/images/deliveryHeroItalian.svg +836 -0
- package/documentation-site/examples/bottom-navigation/images/deliveryLargeStrawberries.svg +72 -0
- package/documentation-site/examples/bottom-navigation/images/earnerLargeRiderDriver.svg +104 -0
- package/documentation-site/examples/bottom-navigation/images/index.d.ts +4 -0
- package/documentation-site/examples/bottom-navigation/overflow.tsx +135 -0
- package/documentation-site/examples/breadcrumbs/basic.tsx +13 -0
- package/documentation-site/examples/breadcrumbs/pseudo.tsx +33 -0
- package/documentation-site/examples/button/as-an-anchor.tsx +14 -0
- package/documentation-site/examples/button/backgroundSafe.tsx +29 -0
- package/documentation-site/examples/button/basic.tsx +12 -0
- package/documentation-site/examples/button/dropdown.tsx +42 -0
- package/documentation-site/examples/button/kinds.tsx +14 -0
- package/documentation-site/examples/button/shapes.tsx +26 -0
- package/documentation-site/examples/button/sizes.tsx +24 -0
- package/documentation-site/examples/button/states.tsx +19 -0
- package/documentation-site/examples/button/widthTypes.tsx +27 -0
- package/documentation-site/examples/button/with-enhancers.tsx +20 -0
- package/documentation-site/examples/button-dock/basic.tsx +66 -0
- package/documentation-site/examples/button-group/basic.tsx +13 -0
- package/documentation-site/examples/button-group/checkbox-mode.tsx +24 -0
- package/documentation-site/examples/button-group/controlled.tsx +56 -0
- package/documentation-site/examples/button-group/disabled-button.tsx +13 -0
- package/documentation-site/examples/button-group/disabled.tsx +13 -0
- package/documentation-site/examples/button-group/dropdown.tsx +48 -0
- package/documentation-site/examples/button-group/enhancer.tsx +14 -0
- package/documentation-site/examples/button-group/icon.tsx +20 -0
- package/documentation-site/examples/button-group/padding.tsx +46 -0
- package/documentation-site/examples/button-group/radio-mode.tsx +20 -0
- package/documentation-site/examples/button-group/scrollable.tsx +17 -0
- package/documentation-site/examples/button-group/stateful-checkbox.tsx +16 -0
- package/documentation-site/examples/button-group/stateful-radio.tsx +13 -0
- package/documentation-site/examples/button-group/wrappable.tsx +17 -0
- package/documentation-site/examples/button-timed/paused.tsx +79 -0
- package/documentation-site/examples/card/basic.tsx +13 -0
- package/documentation-site/examples/card/image-cta.tsx +23 -0
- package/documentation-site/examples/card/thumbnail-cta.tsx +25 -0
- package/documentation-site/examples/checkbox/alignment.tsx +67 -0
- package/documentation-site/examples/checkbox/basic-controlled.tsx +11 -0
- package/documentation-site/examples/checkbox/basic-uncontrolled.tsx +6 -0
- package/documentation-site/examples/checkbox/component-overrides.tsx +30 -0
- package/documentation-site/examples/checkbox/disabled.tsx +13 -0
- package/documentation-site/examples/checkbox/error.tsx +11 -0
- package/documentation-site/examples/checkbox/focus.tsx +35 -0
- package/documentation-site/examples/checkbox/indeterminate.tsx +48 -0
- package/documentation-site/examples/checkbox/multiline.tsx +16 -0
- package/documentation-site/examples/checkbox/overrides.tsx +36 -0
- package/documentation-site/examples/checkbox/toggle.tsx +34 -0
- package/documentation-site/examples/checkbox-v2/alignment.tsx +38 -0
- package/documentation-site/examples/checkbox-v2/basic-controlled.tsx +11 -0
- package/documentation-site/examples/checkbox-v2/basic-uncontrolled.tsx +6 -0
- package/documentation-site/examples/checkbox-v2/component-overrides.tsx +30 -0
- package/documentation-site/examples/checkbox-v2/disabled.tsx +18 -0
- package/documentation-site/examples/checkbox-v2/error.tsx +11 -0
- package/documentation-site/examples/checkbox-v2/indeterminate.tsx +55 -0
- package/documentation-site/examples/checkbox-v2/multiline.tsx +16 -0
- package/documentation-site/examples/checkbox-v2/overrides.tsx +36 -0
- package/documentation-site/examples/combobox/async-options.tsx +108 -0
- package/documentation-site/examples/combobox/filtered-options.tsx +99 -0
- package/documentation-site/examples/combobox/focus.tsx +54 -0
- package/documentation-site/examples/combobox/input-overrides.tsx +42 -0
- package/documentation-site/examples/combobox/replacement-node.tsx +59 -0
- package/documentation-site/examples/data-table/access-table-data.tsx +79 -0
- package/documentation-site/examples/data-table/basic.tsx +151 -0
- package/documentation-site/examples/data-table/batch-action.tsx +169 -0
- package/documentation-site/examples/data-table/customized-column-sort.tsx +197 -0
- package/documentation-site/examples/data-table/customized-empty-state.tsx +103 -0
- package/documentation-site/examples/data-table/row-height-line-clamp.tsx +295 -0
- package/documentation-site/examples/datepicker/basic.tsx +11 -0
- package/documentation-site/examples/datepicker/calendar-multiple-months-with-label.tsx +15 -0
- package/documentation-site/examples/datepicker/calendar-multiple-months.tsx +14 -0
- package/documentation-site/examples/datepicker/calendar-time-select.tsx +11 -0
- package/documentation-site/examples/datepicker/composed-range-pickers.tsx +124 -0
- package/documentation-site/examples/datepicker/composed-single-pickers.tsx +59 -0
- package/documentation-site/examples/datepicker/datepicker-with-timezone.tsx +29 -0
- package/documentation-site/examples/datepicker/datepickers-color-states.tsx +111 -0
- package/documentation-site/examples/datepicker/i18n.tsx +13 -0
- package/documentation-site/examples/datepicker/in-popover.tsx +27 -0
- package/documentation-site/examples/datepicker/nested-override.tsx +51 -0
- package/documentation-site/examples/datepicker/null-mask.tsx +16 -0
- package/documentation-site/examples/datepicker/quick-select.tsx +10 -0
- package/documentation-site/examples/datepicker/range-picker-with-separate-inputs.tsx +15 -0
- package/documentation-site/examples/datepicker/with-callback-overrides.tsx +50 -0
- package/documentation-site/examples/datepicker/with-mask.tsx +16 -0
- package/documentation-site/examples/datepicker/with-overrides.tsx +60 -0
- package/documentation-site/examples/dialog/images/index.d.ts +10 -0
- package/documentation-site/examples/dialog/images/venice.jpg +0 -0
- package/documentation-site/examples/dialog/with-background-image.tsx +65 -0
- package/documentation-site/examples/dialog/without-overlay.tsx +45 -0
- package/documentation-site/examples/divider/basic.tsx +55 -0
- package/documentation-site/examples/dnd-list/basic.tsx +13 -0
- package/documentation-site/examples/dnd-list/customDragHandle.tsx +34 -0
- package/documentation-site/examples/dnd-list/overrideLabel.tsx +21 -0
- package/documentation-site/examples/dnd-list/overrides_short.tsx +13 -0
- package/documentation-site/examples/dnd-list/overrides_state_props.tsx +19 -0
- package/documentation-site/examples/dnd-list/overrides_style.tsx +23 -0
- package/documentation-site/examples/dnd-list/overrides_whole_subcomponent.tsx +45 -0
- package/documentation-site/examples/dnd-list/removable.tsx +22 -0
- package/documentation-site/examples/dnd-list/stateless.tsx +30 -0
- package/documentation-site/examples/dnd-list/varyingHeights.tsx +19 -0
- package/documentation-site/examples/drawer/anchors.tsx +47 -0
- package/documentation-site/examples/drawer/sizes.tsx +47 -0
- package/documentation-site/examples/drawer/ssr-render-all.tsx +19 -0
- package/documentation-site/examples/empty-state/empty-state.tsx +45 -0
- package/documentation-site/examples/empty-state/loading.tsx +30 -0
- package/documentation-site/examples/file-uploader/basic.tsx +40 -0
- package/documentation-site/examples/file-uploader/dynamic-loading.tsx +67 -0
- package/documentation-site/examples/file-uploader/item-preview.tsx +24 -0
- package/documentation-site/examples/file-uploader/label-hint.tsx +14 -0
- package/documentation-site/examples/file-uploader/overrides.tsx +61 -0
- package/documentation-site/examples/file-uploader/upload-restrictions.tsx +70 -0
- package/documentation-site/examples/file-uploader-basic/_overrides_component.tsx +69 -0
- package/documentation-site/examples/file-uploader-basic/basic.tsx +74 -0
- package/documentation-site/examples/file-uploader-basic/disabled.tsx +6 -0
- package/documentation-site/examples/file-uploader-basic/error.tsx +79 -0
- package/documentation-site/examples/file-uploader-basic/indeterminate-progress.tsx +32 -0
- package/documentation-site/examples/file-uploader-basic/overrides.tsx +102 -0
- package/documentation-site/examples/fixed-marker/badge-and-label-enhancers.tsx +25 -0
- package/documentation-site/examples/fixed-marker/badge-enhancer-text.tsx +22 -0
- package/documentation-site/examples/fixed-marker/basic.tsx +6 -0
- package/documentation-site/examples/fixed-marker/dragging.tsx +27 -0
- package/documentation-site/examples/fixed-marker/end-enhancer-color.tsx +15 -0
- package/documentation-site/examples/fixed-marker/react-map-gl-dragging.tsx +61 -0
- package/documentation-site/examples/fixed-marker/react-map-gl.tsx +41 -0
- package/documentation-site/examples/fixed-marker/start-enhancer-large.tsx +17 -0
- package/documentation-site/examples/fixed-marker/start-enhancer.tsx +14 -0
- package/documentation-site/examples/fixed-marker/x-small.tsx +15 -0
- package/documentation-site/examples/flex-grid/basic.tsx +28 -0
- package/documentation-site/examples/flex-grid/missing.tsx +33 -0
- package/documentation-site/examples/flex-grid/responsive.tsx +38 -0
- package/documentation-site/examples/flex-grid/unequal-narrow.tsx +42 -0
- package/documentation-site/examples/flex-grid/unequal-wide.tsx +42 -0
- package/documentation-site/examples/floating-marker/basic.tsx +6 -0
- package/documentation-site/examples/floating-marker/large-square-anchor-start-enhancer.tsx +19 -0
- package/documentation-site/examples/floating-marker/large-top-right.tsx +16 -0
- package/documentation-site/examples/floating-marker/react-map-gl.tsx +42 -0
- package/documentation-site/examples/floating-marker/secondary-label-color.tsx +19 -0
- package/documentation-site/examples/floating-marker/secondary-label.tsx +12 -0
- package/documentation-site/examples/floating-marker/small-no-anchor.tsx +16 -0
- package/documentation-site/examples/floating-marker/start-enhancer.tsx +18 -0
- package/documentation-site/examples/floating-route-marker/basic.tsx +6 -0
- package/documentation-site/examples/floating-route-marker/changing-pointer-positions.tsx +63 -0
- package/documentation-site/examples/floating-route-marker/custom-color-overrides.tsx +70 -0
- package/documentation-site/examples/floating-route-marker/react-map-gl.tsx +80 -0
- package/documentation-site/examples/floating-route-marker/secondary-label.tsx +6 -0
- package/documentation-site/examples/floating-route-marker/start-end-enhancer.tsx +14 -0
- package/documentation-site/examples/form-control/checkbox.tsx +14 -0
- package/documentation-site/examples/form-control/input.tsx +16 -0
- package/documentation-site/examples/form-control/kinds.tsx +27 -0
- package/documentation-site/examples/form-control/radio-group.tsx +19 -0
- package/documentation-site/examples/form-control/select.tsx +26 -0
- package/documentation-site/examples/form-control/textarea.tsx +16 -0
- package/documentation-site/examples/form-control/validation.tsx +50 -0
- package/documentation-site/examples/getting-started/usage.tsx +20 -0
- package/documentation-site/examples/header-navigation/basic.tsx +33 -0
- package/documentation-site/examples/header-navigation/with-search.tsx +54 -0
- package/documentation-site/examples/heading/basic.tsx +93 -0
- package/documentation-site/examples/heading/decouple-styles.tsx +56 -0
- package/documentation-site/examples/hint-dot/offset.tsx +19 -0
- package/documentation-site/examples/icon/basic.tsx +19 -0
- package/documentation-site/examples/icon/button.tsx +30 -0
- package/documentation-site/examples/icon/list.tsx +55 -0
- package/documentation-site/examples/input/available-states.tsx +20 -0
- package/documentation-site/examples/input/basic-controlled.tsx +13 -0
- package/documentation-site/examples/input/basic-uncontrolled.tsx +11 -0
- package/documentation-site/examples/input/clearable.tsx +13 -0
- package/documentation-site/examples/input/enhancers.tsx +24 -0
- package/documentation-site/examples/input/focus.tsx +28 -0
- package/documentation-site/examples/input/mask.tsx +6 -0
- package/documentation-site/examples/input/overrides.tsx +44 -0
- package/documentation-site/examples/input/password.tsx +13 -0
- package/documentation-site/examples/input/sizes.tsx +14 -0
- package/documentation-site/examples/input/with-select.tsx +91 -0
- package/documentation-site/examples/input/with-tags.tsx +77 -0
- package/documentation-site/examples/internationalization/example.tsx +19 -0
- package/documentation-site/examples/layer/basic-tether.tsx +140 -0
- package/documentation-site/examples/layer/basic.tsx +55 -0
- package/documentation-site/examples/layer/layer-z-index.tsx +185 -0
- package/documentation-site/examples/layout-grid/align.tsx +56 -0
- package/documentation-site/examples/layout-grid/basic.tsx +79 -0
- package/documentation-site/examples/layout-grid/behavior.tsx +46 -0
- package/documentation-site/examples/layout-grid/compact.tsx +79 -0
- package/documentation-site/examples/layout-grid/custom.tsx +85 -0
- package/documentation-site/examples/layout-grid/hide.tsx +55 -0
- package/documentation-site/examples/layout-grid/order.tsx +52 -0
- package/documentation-site/examples/layout-grid/overrides.tsx +83 -0
- package/documentation-site/examples/layout-grid/responsive.tsx +55 -0
- package/documentation-site/examples/layout-grid/skip-shrink.tsx +46 -0
- package/documentation-site/examples/layout-grid/skip.tsx +49 -0
- package/documentation-site/examples/layout-grid/span.tsx +55 -0
- package/documentation-site/examples/layout-grid/unit.tsx +79 -0
- package/documentation-site/examples/list/artwork-sizes.tsx +45 -0
- package/documentation-site/examples/list/basic.tsx +29 -0
- package/documentation-site/examples/list/enhancers.tsx +52 -0
- package/documentation-site/examples/list/menu-adapter.tsx +49 -0
- package/documentation-site/examples/list/sublist.tsx +74 -0
- package/documentation-site/examples/list/tap-target.tsx +26 -0
- package/documentation-site/examples/location-puck/consumer-confidence.tsx +8 -0
- package/documentation-site/examples/location-puck/consumer-no-heading.tsx +8 -0
- package/documentation-site/examples/location-puck/consumer.tsx +6 -0
- package/documentation-site/examples/location-puck/earner.tsx +6 -0
- package/documentation-site/examples/location-puck/react-map-gl.tsx +41 -0
- package/documentation-site/examples/menu/basic.tsx +39 -0
- package/documentation-site/examples/menu/child-render-all.tsx +78 -0
- package/documentation-site/examples/menu/child.tsx +80 -0
- package/documentation-site/examples/menu/compact.tsx +38 -0
- package/documentation-site/examples/menu/dividers.tsx +37 -0
- package/documentation-site/examples/menu/grouped.tsx +38 -0
- package/documentation-site/examples/menu/href.tsx +14 -0
- package/documentation-site/examples/menu/profile.tsx +43 -0
- package/documentation-site/examples/menu/stateless.tsx +38 -0
- package/documentation-site/examples/menu/virtual-list.tsx +55 -0
- package/documentation-site/examples/message-card/color.tsx +65 -0
- package/documentation-site/examples/message-card/custom-color.tsx +25 -0
- package/documentation-site/examples/message-card/images/dinner.jpg +0 -0
- package/documentation-site/examples/message-card/images/hamburger.jpg +0 -0
- package/documentation-site/examples/message-card/images/index.d.ts +4 -0
- package/documentation-site/examples/message-card/images/moto.jpg +0 -0
- package/documentation-site/examples/message-card/images/planet.jpg +0 -0
- package/documentation-site/examples/message-card/images/train.jpg +0 -0
- package/documentation-site/examples/message-card/images/valley.jpg +0 -0
- package/documentation-site/examples/message-card/images/venice.jpg +0 -0
- package/documentation-site/examples/message-card/layout.tsx +36 -0
- package/documentation-site/examples/message-card/positioning.tsx +61 -0
- package/documentation-site/examples/mobile-header/floating.tsx +66 -0
- package/documentation-site/examples/mobile-header/images/map-san-francisco.jpg +0 -0
- package/documentation-site/examples/mobile-header/text-content.tsx +92 -0
- package/documentation-site/examples/modal/autofocus.tsx +39 -0
- package/documentation-site/examples/modal/basic.tsx +36 -0
- package/documentation-site/examples/modal/buried-interactive-element.tsx +91 -0
- package/documentation-site/examples/modal/nested.tsx +86 -0
- package/documentation-site/examples/modal/sized.tsx +49 -0
- package/documentation-site/examples/notification/basic.tsx +6 -0
- package/documentation-site/examples/notification/closeable.tsx +6 -0
- package/documentation-site/examples/notification/custom-dismiss.tsx +15 -0
- package/documentation-site/examples/notification/full-width.tsx +14 -0
- package/documentation-site/examples/notification/kinds.tsx +12 -0
- package/documentation-site/examples/notification/overrides.tsx +25 -0
- package/documentation-site/examples/notification-circle/inline.tsx +10 -0
- package/documentation-site/examples/notification-circle/offset.tsx +21 -0
- package/documentation-site/examples/overrides/component.tsx +14 -0
- package/documentation-site/examples/overrides/props.tsx +18 -0
- package/documentation-site/examples/overrides/style-with-theme.tsx +18 -0
- package/documentation-site/examples/overrides/style.tsx +18 -0
- package/documentation-site/examples/page-control/overflow.tsx +52 -0
- package/documentation-site/examples/pagination/controlled.tsx +15 -0
- package/documentation-site/examples/pagination/labels.tsx +15 -0
- package/documentation-site/examples/pagination/overrides.tsx +91 -0
- package/documentation-site/examples/pagination/uncontrolled.tsx +6 -0
- package/documentation-site/examples/payment-card/controlled.tsx +13 -0
- package/documentation-site/examples/payment-card/defaultvalue.tsx +13 -0
- package/documentation-site/examples/payment-card/form.tsx +61 -0
- package/documentation-site/examples/payment-card/uncontrolled.tsx +13 -0
- package/documentation-site/examples/phone-input/basic.tsx +19 -0
- package/documentation-site/examples/phone-input/flag-overrides.tsx +29 -0
- package/documentation-site/examples/phone-input/localized.tsx +27 -0
- package/documentation-site/examples/phone-input/nested-overrides.tsx +32 -0
- package/documentation-site/examples/phone-input/uncontrolled.tsx +6 -0
- package/documentation-site/examples/pin-code/autofocus.tsx +25 -0
- package/documentation-site/examples/pin-code/basic.tsx +14 -0
- package/documentation-site/examples/pin-code/completion.tsx +26 -0
- package/documentation-site/examples/pin-code/event.tsx +16 -0
- package/documentation-site/examples/pin-code/id-and-name.tsx +16 -0
- package/documentation-site/examples/pin-code/length.tsx +14 -0
- package/documentation-site/examples/pin-code/mask.tsx +27 -0
- package/documentation-site/examples/pin-code/no-tab.tsx +17 -0
- package/documentation-site/examples/pin-code/override.tsx +34 -0
- package/documentation-site/examples/pin-code/placeholder.tsx +15 -0
- package/documentation-site/examples/pin-code/size.tsx +35 -0
- package/documentation-site/examples/pin-code/stateful.tsx +11 -0
- package/documentation-site/examples/pin-code/states.tsx +35 -0
- package/documentation-site/examples/popover/clipping.tsx +38 -0
- package/documentation-site/examples/popover/dismiss.tsx +31 -0
- package/documentation-site/examples/popover/link.tsx +17 -0
- package/documentation-site/examples/popover/overrides.tsx +42 -0
- package/documentation-site/examples/popover/placements.tsx +35 -0
- package/documentation-site/examples/popover/ref-handling.tsx +61 -0
- package/documentation-site/examples/popover/ssr-render-all.tsx +20 -0
- package/documentation-site/examples/popover/stateful-click.tsx +15 -0
- package/documentation-site/examples/popover/stateful-hover.tsx +17 -0
- package/documentation-site/examples/popover/stateless.tsx +16 -0
- package/documentation-site/examples/popover/with-arrow.tsx +16 -0
- package/documentation-site/examples/progress-bar/basic.tsx +36 -0
- package/documentation-site/examples/progress-bar/custom-label.tsx +46 -0
- package/documentation-site/examples/progress-bar/negative.tsx +47 -0
- package/documentation-site/examples/progress-bar/overrides.tsx +62 -0
- package/documentation-site/examples/progress-bar/rounded.tsx +39 -0
- package/documentation-site/examples/progress-bar/steps.tsx +36 -0
- package/documentation-site/examples/progress-bar/with-label.tsx +36 -0
- package/documentation-site/examples/progress-steps/dotted.tsx +93 -0
- package/documentation-site/examples/progress-steps/horizontal.tsx +66 -0
- package/documentation-site/examples/progress-steps/numbered.tsx +70 -0
- package/documentation-site/examples/radio/basic.tsx +22 -0
- package/documentation-site/examples/radio/disabled.tsx +11 -0
- package/documentation-site/examples/radio/error.tsx +18 -0
- package/documentation-site/examples/radio/horizontal-align.tsx +18 -0
- package/documentation-site/examples/radio/overrides.tsx +35 -0
- package/documentation-site/examples/radio/stateful.tsx +12 -0
- package/documentation-site/examples/rating/emoticon.tsx +9 -0
- package/documentation-site/examples/rating/star.tsx +7 -0
- package/documentation-site/examples/rating/starReadOnly.tsx +13 -0
- package/documentation-site/examples/segmented-control/badge-hint.tsx +17 -0
- package/documentation-site/examples/segmented-control/badge.tsx +17 -0
- package/documentation-site/examples/segmented-control/basic.tsx +18 -0
- package/documentation-site/examples/segmented-control/disabled.tsx +18 -0
- package/documentation-site/examples/select/async-options.tsx +106 -0
- package/documentation-site/examples/select/control-ref-dropdown.tsx +50 -0
- package/documentation-site/examples/select/control-ref-input-value.tsx +41 -0
- package/documentation-site/examples/select/controlled.tsx +22 -0
- package/documentation-site/examples/select/creatable-multi.tsx +24 -0
- package/documentation-site/examples/select/creatable.tsx +23 -0
- package/documentation-site/examples/select/focus.tsx +42 -0
- package/documentation-site/examples/select/grouped.tsx +29 -0
- package/documentation-site/examples/select/in-modal.tsx +64 -0
- package/documentation-site/examples/select/label.tsx +52 -0
- package/documentation-site/examples/select/native.tsx +28 -0
- package/documentation-site/examples/select/overridden-dropdown.tsx +31 -0
- package/documentation-site/examples/select/overridden-tag.tsx +58 -0
- package/documentation-site/examples/select/overridden.tsx +33 -0
- package/documentation-site/examples/select/search-multi-pick.tsx +26 -0
- package/documentation-site/examples/select/search-single-pick.tsx +25 -0
- package/documentation-site/examples/select/sizes.tsx +53 -0
- package/documentation-site/examples/select/uncontrolled.tsx +20 -0
- package/documentation-site/examples/select/with-many-options.tsx +101 -0
- package/documentation-site/examples/side-navigation/basic.tsx +48 -0
- package/documentation-site/examples/side-navigation/nav-overrides.tsx +68 -0
- package/documentation-site/examples/skeleton/animation.tsx +6 -0
- package/documentation-site/examples/skeleton/auto-size-rows.tsx +6 -0
- package/documentation-site/examples/skeleton/basic.tsx +6 -0
- package/documentation-site/examples/skeleton/circle.tsx +18 -0
- package/documentation-site/examples/skeleton/subElements.tsx +19 -0
- package/documentation-site/examples/slider/basic.tsx +7 -0
- package/documentation-site/examples/slider/custom-ticks.tsx +60 -0
- package/documentation-site/examples/slider/disabled.tsx +9 -0
- package/documentation-site/examples/slider/marks.tsx +14 -0
- package/documentation-site/examples/slider/overrides.tsx +44 -0
- package/documentation-site/examples/slider/range.tsx +7 -0
- package/documentation-site/examples/slider/stateful.tsx +6 -0
- package/documentation-site/examples/slider/step-min-max.tsx +15 -0
- package/documentation-site/examples/snackbar/action-button-usage.tsx +61 -0
- package/documentation-site/examples/snackbar/infinite-duration.tsx +68 -0
- package/documentation-site/examples/snackbar/line-lengths.tsx +72 -0
- package/documentation-site/examples/snackbar/placement.tsx +55 -0
- package/documentation-site/examples/spinner/basic.tsx +6 -0
- package/documentation-site/examples/spinner/custom.tsx +14 -0
- package/documentation-site/examples/spinner/size.tsx +12 -0
- package/documentation-site/examples/spinner/span.tsx +10 -0
- package/documentation-site/examples/styled/basic.tsx +16 -0
- package/documentation-site/examples/switch/alignment.tsx +39 -0
- package/documentation-site/examples/switch/basic-controlled.tsx +11 -0
- package/documentation-site/examples/switch/basic-uncontrolled.tsx +6 -0
- package/documentation-site/examples/switch/disabled.tsx +19 -0
- package/documentation-site/examples/switch/multiline.tsx +16 -0
- package/documentation-site/examples/switch/overrides.tsx +38 -0
- package/documentation-site/examples/switch/showIcon.tsx +39 -0
- package/documentation-site/examples/switch/size.tsx +39 -0
- package/documentation-site/examples/system-banner/basic.tsx +27 -0
- package/documentation-site/examples/system-banner/clickable-banner.tsx +58 -0
- package/documentation-site/examples/system-banner/multiple-actions.tsx +93 -0
- package/documentation-site/examples/system-banner/with-actions.tsx +49 -0
- package/documentation-site/examples/system-banner/with-artwork.tsx +40 -0
- package/documentation-site/examples/system-banner/with-icons.tsx +52 -0
- package/documentation-site/examples/system-banner/with-style-overrides.tsx +167 -0
- package/documentation-site/examples/table/basic.tsx +14 -0
- package/documentation-site/examples/table/cells.tsx +333 -0
- package/documentation-site/examples/table/filter.tsx +108 -0
- package/documentation-site/examples/table/fixed-width-column.tsx +62 -0
- package/documentation-site/examples/table/graph.tsx +134 -0
- package/documentation-site/examples/table/horizontal-scroll.tsx +29 -0
- package/documentation-site/examples/table/pagination.tsx +129 -0
- package/documentation-site/examples/table/sortable.tsx +142 -0
- package/documentation-site/examples/table/vertical-scroll.tsx +29 -0
- package/documentation-site/examples/table/virtual-horizontal-scroll.tsx +94 -0
- package/documentation-site/examples/table/virtual.tsx +92 -0
- package/documentation-site/examples/table-grid/basic.tsx +39 -0
- package/documentation-site/examples/table-grid/cell-navigation.tsx +205 -0
- package/documentation-site/examples/table-grid/cell-span.tsx +58 -0
- package/documentation-site/examples/table-grid/nested.tsx +259 -0
- package/documentation-site/examples/table-grid/sortable.tsx +133 -0
- package/documentation-site/examples/table-semantic/alternating.tsx +48 -0
- package/documentation-site/examples/table-semantic/basic.tsx +14 -0
- package/documentation-site/examples/table-semantic/builder.tsx +35 -0
- package/documentation-site/examples/table-semantic/cells.tsx +175 -0
- package/documentation-site/examples/table-semantic/empty-message.tsx +8 -0
- package/documentation-site/examples/table-semantic/scroll.tsx +26 -0
- package/documentation-site/examples/table-semantic/sortable.tsx +69 -0
- package/documentation-site/examples/table-semantic/span.tsx +46 -0
- package/documentation-site/examples/table-semantic/toggleable.tsx +89 -0
- package/documentation-site/examples/tabs/controlled.tsx +28 -0
- package/documentation-site/examples/tabs/custom-keys.tsx +28 -0
- package/documentation-site/examples/tabs/overrides.tsx +87 -0
- package/documentation-site/examples/tabs/renderall.tsx +12 -0
- package/documentation-site/examples/tabs/uncontrolled.tsx +12 -0
- package/documentation-site/examples/tabs/vertical.tsx +15 -0
- package/documentation-site/examples/tabs-motion/alignment.tsx +52 -0
- package/documentation-site/examples/tabs-motion/artwork.tsx +23 -0
- package/documentation-site/examples/tabs-motion/basic.tsx +18 -0
- package/documentation-site/examples/tabs-motion/disabled.tsx +19 -0
- package/documentation-site/examples/tabs-motion/enhancer.tsx +24 -0
- package/documentation-site/examples/tabs-motion/fixed.tsx +19 -0
- package/documentation-site/examples/tabs-motion/keyboard-activation.tsx +19 -0
- package/documentation-site/examples/tabs-motion/keys.tsx +22 -0
- package/documentation-site/examples/tabs-motion/refs.tsx +32 -0
- package/documentation-site/examples/tabs-motion/renderAll.tsx +19 -0
- package/documentation-site/examples/tabs-motion/stateful.tsx +14 -0
- package/documentation-site/examples/tabs-motion/tab-override.tsx +28 -0
- package/documentation-site/examples/tabs-motion/vertical-orientation.tsx +19 -0
- package/documentation-site/examples/tag/basic.tsx +11 -0
- package/documentation-site/examples/tag/clickable-non-closeable.tsx +77 -0
- package/documentation-site/examples/tag/clickable.tsx +71 -0
- package/documentation-site/examples/tag/custom-color.tsx +30 -0
- package/documentation-site/examples/tag/disabled.tsx +77 -0
- package/documentation-site/examples/tag/kinds.tsx +39 -0
- package/documentation-site/examples/tag/non-clickable.tsx +39 -0
- package/documentation-site/examples/tag/non-closeable.tsx +39 -0
- package/documentation-site/examples/tag/size.tsx +12 -0
- package/documentation-site/examples/tag/variants.tsx +16 -0
- package/documentation-site/examples/tag-group/hierachy.tsx +28 -0
- package/documentation-site/examples/tag-group/size.tsx +33 -0
- package/documentation-site/examples/tag-group/wrap.tsx +115 -0
- package/documentation-site/examples/textarea/basic.tsx +9 -0
- package/documentation-site/examples/textarea/ref.tsx +26 -0
- package/documentation-site/examples/textarea/resizable.tsx +14 -0
- package/documentation-site/examples/textarea/sizes.tsx +32 -0
- package/documentation-site/examples/textarea/stateful.tsx +12 -0
- package/documentation-site/examples/textarea/states.tsx +28 -0
- package/documentation-site/examples/theme/icon-overrides.tsx +25 -0
- package/documentation-site/examples/tile/action.tsx +17 -0
- package/documentation-site/examples/tile/alignment.tsx +15 -0
- package/documentation-site/examples/tile/multi-select-batch.tsx +24 -0
- package/documentation-site/examples/tile/multi-select-live.tsx +24 -0
- package/documentation-site/examples/tile/selection-no-trailing-content.tsx +18 -0
- package/documentation-site/examples/tile/single-select.tsx +18 -0
- package/documentation-site/examples/timepicker/timepicker-minmax.tsx +49 -0
- package/documentation-site/examples/timepicker/timepicker.tsx +37 -0
- package/documentation-site/examples/timezonepicker/timezone-picker.tsx +18 -0
- package/documentation-site/examples/toast/toast-close-from-outside.tsx +29 -0
- package/documentation-site/examples/toast/toast-notification.tsx +14 -0
- package/documentation-site/examples/toast/toast-same-key-notification.tsx +73 -0
- package/documentation-site/examples/tokens/basic.tsx +12 -0
- package/documentation-site/examples/tooltip/stateful-complex-content.tsx +44 -0
- package/documentation-site/examples/tooltip/stateful.tsx +30 -0
- package/documentation-site/examples/tree-view/basic.tsx +127 -0
- package/documentation-site/examples/tree-view/custom-label.tsx +70 -0
- package/documentation-site/examples/tree-view/interactable.tsx +70 -0
- package/documentation-site/examples/tree-view/label-overrides.tsx +135 -0
- package/documentation-site/examples/tree-view/overrides.tsx +109 -0
- package/documentation-site/examples/tree-view/single-expanded.tsx +263 -0
- package/documentation-site/examples/tree-view/uncontrolled.tsx +45 -0
- package/documentation-site/examples/typography/display.tsx +20 -0
- package/documentation-site/examples/typography/heading.tsx +24 -0
- package/documentation-site/examples/typography/text.tsx +30 -0
- package/documentation-site/examples/unstable-a11y/wrapper.tsx +41 -0
- package/documentation-site/examples/use-styletron/basic.tsx +13 -0
- package/documentation-site/examples/use-styletron/overrides.tsx +31 -0
- package/documentation-site/examples/use-styletron/reuse-css-definitions.tsx +25 -0
- package/documentation-site/helpers/ga.ts +36 -0
- package/documentation-site/helpers/polyfills.js +21 -0
- package/documentation-site/helpers/slugify.jsx +22 -0
- package/documentation-site/helpers/styletron.jsx +18 -0
- package/documentation-site/images/base-web-white.svg +9 -0
- package/documentation-site/images/base-web.svg +9 -0
- package/documentation-site/mdx-components.tsx +8 -0
- package/documentation-site/next.config.js +43 -0
- package/documentation-site/pages/_app.jsx +258 -0
- package/documentation-site/pages/_document.jsx +118 -0
- package/documentation-site/pages/blog/base-figma-community/index.mdx +31 -0
- package/documentation-site/pages/blog/base-figma-community/metadata.json +11 -0
- package/documentation-site/pages/blog/base-web-v11/index.mdx +98 -0
- package/documentation-site/pages/blog/base-web-v11/metadata.json +11 -0
- package/documentation-site/pages/blog/base-web-v12/index.mdx +27 -0
- package/documentation-site/pages/blog/base-web-v12/metadata.json +11 -0
- package/documentation-site/pages/blog/base-web-v16/index.mdx +38 -0
- package/documentation-site/pages/blog/base-web-v16/metadata.json +19 -0
- package/documentation-site/pages/blog/base-web-v7/index.mdx +479 -0
- package/documentation-site/pages/blog/base-web-v7/metadata.json +11 -0
- package/documentation-site/pages/blog/base-web-v8/index.mdx +227 -0
- package/documentation-site/pages/blog/base-web-v8/metadata.json +11 -0
- package/documentation-site/pages/blog/base-web-v9/index.mdx +785 -0
- package/documentation-site/pages/blog/base-web-v9/metadata.json +17 -0
- package/documentation-site/pages/blog/drag-and-drop-list/index.mdx +301 -0
- package/documentation-site/pages/blog/drag-and-drop-list/metadata.json +11 -0
- package/documentation-site/pages/blog/file-uploader/index.mdx +202 -0
- package/documentation-site/pages/blog/file-uploader/metadata.json +11 -0
- package/documentation-site/pages/blog/getting-started-with-base-web/index.mdx +243 -0
- package/documentation-site/pages/blog/getting-started-with-base-web/metadata.json +11 -0
- package/documentation-site/pages/blog/getting-started-with-styletron/index.mdx +340 -0
- package/documentation-site/pages/blog/getting-started-with-styletron/metadata.json +11 -0
- package/documentation-site/pages/blog/index.mdx +8 -0
- package/documentation-site/pages/blog/introducing-base-map-markers/anchor-position-example.jsx +63 -0
- package/documentation-site/pages/blog/introducing-base-map-markers/cover.png +0 -0
- package/documentation-site/pages/blog/introducing-base-map-markers/index.mdx +90 -0
- package/documentation-site/pages/blog/introducing-base-map-markers/metadata.json +11 -0
- package/documentation-site/pages/blog/introducing-base-map-markers/rendezvous.png +0 -0
- package/documentation-site/pages/blog/introducing-react-view/index.mdx +278 -0
- package/documentation-site/pages/blog/introducing-react-view/live-editor.jsx +41 -0
- package/documentation-site/pages/blog/introducing-react-view/metadata.json +11 -0
- package/documentation-site/pages/blog/nested-overrides-playground/index.mdx +96 -0
- package/documentation-site/pages/blog/nested-overrides-playground/live-editor-tag.jsx +206 -0
- package/documentation-site/pages/blog/nested-overrides-playground/live-editor.jsx +111 -0
- package/documentation-site/pages/blog/nested-overrides-playground/metadata.json +17 -0
- package/documentation-site/pages/blog/open-source-engagement/index.mdx +25 -0
- package/documentation-site/pages/blog/open-source-engagement/metadata.json +11 -0
- package/documentation-site/pages/blog/phone-input/ideal.png +0 -0
- package/documentation-site/pages/blog/phone-input/index.mdx +265 -0
- package/documentation-site/pages/blog/phone-input/keyboard.png +0 -0
- package/documentation-site/pages/blog/phone-input/mapping.png +0 -0
- package/documentation-site/pages/blog/phone-input/metadata.json +11 -0
- package/documentation-site/pages/blog/phone-input/patterns.png +0 -0
- package/documentation-site/pages/blog/responsive-web/aspect-ratio-box.gif +0 -0
- package/documentation-site/pages/blog/responsive-web/index.mdx +248 -0
- package/documentation-site/pages/blog/responsive-web/metadata.json +18 -0
- package/documentation-site/pages/blog/responsive-web/responsive-flex-grid.gif +0 -0
- package/documentation-site/pages/blog/responsive-web/responsive-hide.gif +0 -0
- package/documentation-site/pages/blog/responsive-web/responsive-load-status.gif +0 -0
- package/documentation-site/pages/blog/responsive-web/responsive-nav-bar.gif +0 -0
- package/documentation-site/pages/blog/responsive-web/viewport-meta-tag.gif +0 -0
- package/documentation-site/pages/blog/screen-reader-improvements/index.mdx +77 -0
- package/documentation-site/pages/blog/screen-reader-improvements/metadata.json +17 -0
- package/documentation-site/pages/blog/visual-regression-testing/changelog.png +0 -0
- package/documentation-site/pages/blog/visual-regression-testing/comparison.png +0 -0
- package/documentation-site/pages/blog/visual-regression-testing/examplesnapshot.png +0 -0
- package/documentation-site/pages/blog/visual-regression-testing/index.mdx +393 -0
- package/documentation-site/pages/blog/visual-regression-testing/left.png +0 -0
- package/documentation-site/pages/blog/visual-regression-testing/metadata.json +20 -0
- package/documentation-site/pages/blog/visual-regression-testing/mobilemodal.png +0 -0
- package/documentation-site/pages/blog/visual-regression-testing/right.png +0 -0
- package/documentation-site/pages/blog/visual-regression-testing/swipe.gif +0 -0
- package/documentation-site/pages/blog/vs-code-extension/cheat-sheet.png +0 -0
- package/documentation-site/pages/blog/vs-code-extension/code-snippets.gif +0 -0
- package/documentation-site/pages/blog/vs-code-extension/coloring.png +0 -0
- package/documentation-site/pages/blog/vs-code-extension/commands.png +0 -0
- package/documentation-site/pages/blog/vs-code-extension/index.mdx +115 -0
- package/documentation-site/pages/blog/vs-code-extension/metadata.json +11 -0
- package/documentation-site/pages/cheat-sheet.mdx +10 -0
- package/documentation-site/pages/components/accordion.mdx +81 -0
- package/documentation-site/pages/components/app-nav-bar.mdx +52 -0
- package/documentation-site/pages/components/aspect-ratio-box.mdx +41 -0
- package/documentation-site/pages/components/avatar.mdx +63 -0
- package/documentation-site/pages/components/badge.mdx +56 -0
- package/documentation-site/pages/components/banner.mdx +45 -0
- package/documentation-site/pages/components/base-provider.mdx +39 -0
- package/documentation-site/pages/components/block.mdx +81 -0
- package/documentation-site/pages/components/bottom-navigation.mdx +40 -0
- package/documentation-site/pages/components/breadcrumbs.mdx +49 -0
- package/documentation-site/pages/components/button-dock.mdx +42 -0
- package/documentation-site/pages/components/button-group.mdx +117 -0
- package/documentation-site/pages/components/button-timed.mdx +44 -0
- package/documentation-site/pages/components/button.mdx +115 -0
- package/documentation-site/pages/components/card.mdx +44 -0
- package/documentation-site/pages/components/checkbox-v2.mdx +84 -0
- package/documentation-site/pages/components/checkbox.mdx +114 -0
- package/documentation-site/pages/components/combobox.mdx +64 -0
- package/documentation-site/pages/components/data-table.mdx +77 -0
- package/documentation-site/pages/components/datepicker.mdx +167 -0
- package/documentation-site/pages/components/dialog.mdx +44 -0
- package/documentation-site/pages/components/divider.mdx +32 -0
- package/documentation-site/pages/components/dnd-list.mdx +81 -0
- package/documentation-site/pages/components/drawer.mdx +49 -0
- package/documentation-site/pages/components/empty-state.mdx +25 -0
- package/documentation-site/pages/components/file-uploader-basic.mdx +77 -0
- package/documentation-site/pages/components/file-uploader.mdx +80 -0
- package/documentation-site/pages/components/fixed-marker.mdx +144 -0
- package/documentation-site/pages/components/flex-grid.mdx +65 -0
- package/documentation-site/pages/components/floating-marker.mdx +149 -0
- package/documentation-site/pages/components/floating-route-marker.mdx +135 -0
- package/documentation-site/pages/components/form-control.mdx +80 -0
- package/documentation-site/pages/components/header-navigation.mdx +45 -0
- package/documentation-site/pages/components/heading.mdx +43 -0
- package/documentation-site/pages/components/hint-dot.mdx +33 -0
- package/documentation-site/pages/components/icon.mdx +44 -0
- package/documentation-site/pages/components/index.mdx +10 -0
- package/documentation-site/pages/components/input.mdx +131 -0
- package/documentation-site/pages/components/layer.mdx +101 -0
- package/documentation-site/pages/components/layout-grid.mdx +213 -0
- package/documentation-site/pages/components/link.mdx +22 -0
- package/documentation-site/pages/components/list.mdx +68 -0
- package/documentation-site/pages/components/location-puck.mdx +97 -0
- package/documentation-site/pages/components/menu.mdx +203 -0
- package/documentation-site/pages/components/message-card.mdx +80 -0
- package/documentation-site/pages/components/mobile-header.mdx +54 -0
- package/documentation-site/pages/components/modal.mdx +95 -0
- package/documentation-site/pages/components/notification-circle.mdx +47 -0
- package/documentation-site/pages/components/notification.mdx +74 -0
- package/documentation-site/pages/components/page-control.mdx +33 -0
- package/documentation-site/pages/components/pagination.mdx +60 -0
- package/documentation-site/pages/components/payment-card.mdx +81 -0
- package/documentation-site/pages/components/phone-input.mdx +86 -0
- package/documentation-site/pages/components/pin-code.mdx +156 -0
- package/documentation-site/pages/components/popover.mdx +107 -0
- package/documentation-site/pages/components/progress-bar.mdx +86 -0
- package/documentation-site/pages/components/progress-steps.mdx +58 -0
- package/documentation-site/pages/components/radio.mdx +58 -0
- package/documentation-site/pages/components/rating.mdx +56 -0
- package/documentation-site/pages/components/segmented-control.mdx +52 -0
- package/documentation-site/pages/components/select.mdx +158 -0
- package/documentation-site/pages/components/side-nav.mdx +79 -0
- package/documentation-site/pages/components/skeleton.mdx +61 -0
- package/documentation-site/pages/components/slider.mdx +94 -0
- package/documentation-site/pages/components/snackbar.mdx +66 -0
- package/documentation-site/pages/components/spinner.mdx +55 -0
- package/documentation-site/pages/components/stepper.mdx +25 -0
- package/documentation-site/pages/components/styled.mdx +29 -0
- package/documentation-site/pages/components/switch.mdx +75 -0
- package/documentation-site/pages/components/system-banner.mdx +223 -0
- package/documentation-site/pages/components/table-grid.mdx +55 -0
- package/documentation-site/pages/components/table-semantic.mdx +106 -0
- package/documentation-site/pages/components/table.mdx +107 -0
- package/documentation-site/pages/components/tabs-motion.mdx +158 -0
- package/documentation-site/pages/components/tabs.mdx +73 -0
- package/documentation-site/pages/components/tag-group.mdx +36 -0
- package/documentation-site/pages/components/tag.mdx +106 -0
- package/documentation-site/pages/components/textarea.mdx +58 -0
- package/documentation-site/pages/components/tile.mdx +73 -0
- package/documentation-site/pages/components/time-picker.mdx +35 -0
- package/documentation-site/pages/components/timezone-picker.mdx +28 -0
- package/documentation-site/pages/components/toast.mdx +65 -0
- package/documentation-site/pages/components/tokens.mdx +138 -0
- package/documentation-site/pages/components/tooltip.mdx +46 -0
- package/documentation-site/pages/components/tree-view.mdx +89 -0
- package/documentation-site/pages/components/typography.mdx +54 -0
- package/documentation-site/pages/components/unstable-a11y.mdx +31 -0
- package/documentation-site/pages/components/use-styletron.mdx +108 -0
- package/documentation-site/pages/discover-more/comparison.mdx +47 -0
- package/documentation-site/pages/discover-more/supported-platforms.mdx +22 -0
- package/documentation-site/pages/discover-more/versioning-policy.mdx +53 -0
- package/documentation-site/pages/getting-started/learn.mdx +94 -0
- package/documentation-site/pages/getting-started/setup.mdx +151 -0
- package/documentation-site/pages/guides/bidirectionality.mdx +51 -0
- package/documentation-site/pages/guides/colors.mdx +41 -0
- package/documentation-site/pages/guides/internationalization.mdx +44 -0
- package/documentation-site/pages/guides/seo.mdx +143 -0
- package/documentation-site/pages/guides/styling.mdx +616 -0
- package/documentation-site/pages/guides/tables.mdx +54 -0
- package/documentation-site/pages/guides/theming.mdx +601 -0
- package/documentation-site/pages/guides/understanding-overrides.mdx +328 -0
- package/documentation-site/pages/index.jsx +215 -0
- package/documentation-site/posts.jsx +293 -0
- package/documentation-site/public/android-chrome-192x192.png +0 -0
- package/documentation-site/public/apple-touch-icon.png +0 -0
- package/documentation-site/public/browserconfig.xml +9 -0
- package/documentation-site/public/favicon-16x16.png +0 -0
- package/documentation-site/public/favicon-32x32.png +0 -0
- package/documentation-site/public/favicon.ico +0 -0
- package/documentation-site/public/fonts.css +97 -0
- package/documentation-site/public/images/banzaicloud-logo.png +0 -0
- package/documentation-site/public/images/blog/file-uploader/carousel-view.png +0 -0
- package/documentation-site/public/images/blog/file-uploader/file-uploader-architecture-diagram.png +0 -0
- package/documentation-site/public/images/blog/file-uploader/file-uploader.gif +0 -0
- package/documentation-site/public/images/blog/file-uploader/grid-view.png +0 -0
- package/documentation-site/public/images/blog/file-uploader/list-view.png +0 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/base-web.svg +9 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/foundation.png +0 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/input-with-cta.png +0 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/mockup.png +0 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/result.png +0 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/strength-meter.gif +0 -0
- package/documentation-site/public/images/blog/getting-started-with-base-web/styled.png +0 -0
- package/documentation-site/public/images/blog/getting-started-with-styletron/fancy-button.gif +0 -0
- package/documentation-site/public/images/blog/getting-started-with-styletron/themed-buttons.gif +0 -0
- package/documentation-site/public/images/blog/responsive-web/responsive-shipper-tools.svg +1 -0
- package/documentation-site/public/images/blog/vs-code-extension/vscodelogo.png +0 -0
- package/documentation-site/public/images/broadcom-logo.png +0 -0
- package/documentation-site/public/images/cadre-logo.png +0 -0
- package/documentation-site/public/images/everbase-logo.png +0 -0
- package/documentation-site/public/images/extensis-logo.png +0 -0
- package/documentation-site/public/images/gcf-logo.png +0 -0
- package/documentation-site/public/images/metromile-logo.png +0 -0
- package/documentation-site/public/images/overrides1.png +0 -0
- package/documentation-site/public/images/overrides2.png +0 -0
- package/documentation-site/public/images/radity-logo.png +0 -0
- package/documentation-site/public/images/react-view-overrides.png +0 -0
- package/documentation-site/public/images/sprinklr-logo.png +0 -0
- package/documentation-site/public/images/streamlit-logo.png +0 -0
- package/documentation-site/public/images/uber-logo.png +0 -0
- package/documentation-site/public/images/uptime-logo.png +0 -0
- package/documentation-site/public/mstile-150x150.png +0 -0
- package/documentation-site/public/safari-pinned-tab.svg +35 -0
- package/documentation-site/public/site.webmanifest +14 -0
- package/documentation-site/routes.jsx +495 -0
- package/documentation-site/tsconfig.json +24 -0
- package/package.json +124 -0
- package/packages/baseui-codemods/.eslintrc.js +14 -0
- package/packages/baseui-codemods/README.md +145 -0
- package/packages/baseui-codemods/package.json +30 -0
- package/packages/baseui-codemods/yarn.lock +5452 -0
- package/packages/baseweb-vscode-extension/.env +2 -0
- package/packages/baseweb-vscode-extension/.eslintignore +1 -0
- package/packages/baseweb-vscode-extension/.vscode/launch.json +30 -0
- package/packages/baseweb-vscode-extension/.vscode/tasks.json +20 -0
- package/packages/baseweb-vscode-extension/.vscodeignore +11 -0
- package/packages/baseweb-vscode-extension/README.md +33 -0
- package/packages/baseweb-vscode-extension/ext-src/coloring.ts +231 -0
- package/packages/baseweb-vscode-extension/ext-src/components.json +51 -0
- package/packages/baseweb-vscode-extension/ext-src/extension.ts +164 -0
- package/packages/baseweb-vscode-extension/ext-src/react-app-env.d.ts +1 -0
- package/packages/baseweb-vscode-extension/ext-src/test/runTest.ts +23 -0
- package/packages/baseweb-vscode-extension/ext-src/test/suite/extension.test.ts +15 -0
- package/packages/baseweb-vscode-extension/ext-src/test/suite/index.ts +37 -0
- package/packages/baseweb-vscode-extension/images/icon.png +0 -0
- package/packages/baseweb-vscode-extension/package.json +392 -0
- package/packages/baseweb-vscode-extension/public/index.html +40 -0
- package/packages/baseweb-vscode-extension/scripts/build-non-split.js +23 -0
- package/packages/baseweb-vscode-extension/scripts/update-package.js +37 -0
- package/packages/baseweb-vscode-extension/snippets/build.ts +68 -0
- package/packages/baseweb-vscode-extension/snippets/mock.ts +1 -0
- package/packages/baseweb-vscode-extension/snippets/tsconfig.json +20 -0
- package/packages/baseweb-vscode-extension/src/App.tsx +419 -0
- package/packages/baseweb-vscode-extension/src/index.css +6 -0
- package/packages/baseweb-vscode-extension/src/index.tsx +8 -0
- package/packages/baseweb-vscode-extension/src/react-app-env.d.ts +1 -0
- package/packages/baseweb-vscode-extension/tsconfig.extension.json +28 -0
- package/packages/baseweb-vscode-extension/tsconfig.json +20 -0
- package/packages/baseweb-vscode-extension/tslint.json +12 -0
- package/packages/baseweb-vscode-extension/vsc-extension-quickstart.md +41 -0
- package/packages/baseweb-vscode-extension/yarn.lock +11222 -0
- package/packages/eslint-plugin-baseui/.eslintrc.js +14 -0
- package/packages/eslint-plugin-baseui/README.md +88 -0
- package/packages/eslint-plugin-baseui/__tests__/config.test.js +21 -0
- package/packages/eslint-plugin-baseui/__tests__/deprecated-component-api.test.js +757 -0
- package/packages/eslint-plugin-baseui/__tests__/deprecated-theme-api-test.js +862 -0
- package/packages/eslint-plugin-baseui/__tests__/example-config/.eslintrc.js +4 -0
- package/packages/eslint-plugin-baseui/__tests__/example-config/fixture.js +7 -0
- package/packages/eslint-plugin-baseui/__tests__/no-block-style.test.js +105 -0
- package/packages/eslint-plugin-baseui/__tests__/no-component-classname.test.js +122 -0
- package/packages/eslint-plugin-baseui/__tests__/no-deep-imports.test.js +73 -0
- package/packages/eslint-plugin-baseui/__tests__/no-shorthand-properties.test.js +142 -0
- package/packages/eslint-plugin-baseui/index.js +10 -0
- package/packages/eslint-plugin-baseui/jest.config.js +14 -0
- package/packages/eslint-plugin-baseui/package.json +37 -0
- package/packages/eslint-plugin-baseui/src/deprecated-component-api.js +474 -0
- package/packages/eslint-plugin-baseui/src/deprecated-theme-api.js +610 -0
- package/packages/eslint-plugin-baseui/src/index.js +39 -0
- package/packages/eslint-plugin-baseui/src/messages.js +59 -0
- package/packages/eslint-plugin-baseui/src/no-block-style.js +68 -0
- package/packages/eslint-plugin-baseui/src/no-component-classname.js +58 -0
- package/packages/eslint-plugin-baseui/src/no-deep-imports.js +26 -0
- package/packages/eslint-plugin-baseui/src/no-shorthand-properties.js +104 -0
- package/packages/eslint-plugin-baseui/yarn.lock +3924 -0
- package/publish/.babelrc.js +26 -0
- package/publish/publish-next.js +47 -0
- package/publish/transform-cup-globals.js +55 -0
- package/src/a11y/a11y.tsx +151 -0
- package/src/a11y/index.ts +7 -0
- package/src/a11y/types.ts +12 -0
- package/src/accordion/__tests__/accordion-controlled.scenario.tsx +32 -0
- package/src/accordion/__tests__/accordion-disabled.scenario.tsx +18 -0
- package/src/accordion/__tests__/accordion-expanded.scenario.tsx +23 -0
- package/src/accordion/__tests__/accordion-panel-override.scenario.tsx +49 -0
- package/src/accordion/__tests__/accordion-stateless.scenario.tsx +34 -0
- package/src/accordion/__tests__/accordion.e2e.ts +94 -0
- package/src/accordion/__tests__/accordion.scenario.tsx +19 -0
- package/src/accordion/__tests__/accordion.stories.tsx +20 -0
- package/src/accordion/__tests__/accordion.test.tsx +55 -0
- package/src/accordion/__tests__/panel.test.tsx +85 -0
- package/src/accordion/__tests__/stateful-panel-container.test.tsx +23 -0
- package/src/accordion/accordion.tsx +155 -0
- package/src/accordion/constants.ts +9 -0
- package/src/accordion/index.ts +30 -0
- package/src/accordion/locale.ts +17 -0
- package/src/accordion/panel.tsx +232 -0
- package/src/accordion/stateful-panel-container.ts +57 -0
- package/src/accordion/stateful-panel.tsx +19 -0
- package/src/accordion/stateless-accordion.tsx +67 -0
- package/src/accordion/styled-components.ts +140 -0
- package/src/accordion/types.ts +173 -0
- package/src/app-nav-bar/__tests__/app-nav-bar-get-unique-identifier.scenario.tsx +37 -0
- package/src/app-nav-bar/__tests__/app-nav-bar-icon-overrides.scenario.tsx +86 -0
- package/src/app-nav-bar/__tests__/app-nav-bar-is-main-item-active.scenario.tsx +52 -0
- package/src/app-nav-bar/__tests__/app-nav-bar-map-item-to-node.scenario.tsx +52 -0
- package/src/app-nav-bar/__tests__/app-nav-bar-overrides.scenario.tsx +137 -0
- package/src/app-nav-bar/__tests__/app-nav-bar-title-node.scenario.tsx +29 -0
- package/src/app-nav-bar/__tests__/app-nav-bar.scenario.tsx +75 -0
- package/src/app-nav-bar/__tests__/app-nav-bar.stories.tsx +22 -0
- package/src/app-nav-bar/__tests__/utils.test.ts +89 -0
- package/src/app-nav-bar/app-nav-bar.tsx +249 -0
- package/src/app-nav-bar/constants.ts +15 -0
- package/src/app-nav-bar/index.ts +22 -0
- package/src/app-nav-bar/mobile-menu.tsx +210 -0
- package/src/app-nav-bar/styled-components.ts +240 -0
- package/src/app-nav-bar/types.ts +66 -0
- package/src/app-nav-bar/user-menu.tsx +124 -0
- package/src/app-nav-bar/user-profile-tile.tsx +57 -0
- package/src/app-nav-bar/utils.ts +62 -0
- package/src/aspect-ratio-box/__tests__/aspect-ratio-box.scenario.tsx +46 -0
- package/src/aspect-ratio-box/__tests__/aspect-ratio-box.stories.tsx +10 -0
- package/src/aspect-ratio-box/aspect-ratio-box-body.tsx +31 -0
- package/src/aspect-ratio-box/aspect-ratio-box.tsx +72 -0
- package/src/aspect-ratio-box/index.ts +9 -0
- package/src/aspect-ratio-box/types.ts +13 -0
- package/src/avatar/__tests__/adorable.png +0 -0
- package/src/avatar/__tests__/avatar-custom-initials.scenario.tsx +13 -0
- package/src/avatar/__tests__/avatar-error.scenario.tsx +19 -0
- package/src/avatar/__tests__/avatar-no-src.scenario.tsx +19 -0
- package/src/avatar/__tests__/avatar-update-image.scenario.tsx +23 -0
- package/src/avatar/__tests__/avatar.scenario.tsx +20 -0
- package/src/avatar/__tests__/avatar.stories.tsx +18 -0
- package/src/avatar/__tests__/avatar.test.tsx +120 -0
- package/src/avatar/__tests__/styled-component.test.tsx +44 -0
- package/src/avatar/avatar.tsx +81 -0
- package/src/avatar/index.ts +17 -0
- package/src/avatar/styled-components.ts +68 -0
- package/src/avatar/types.ts +37 -0
- package/src/badge/__tests__/badge.scenario.tsx +142 -0
- package/src/badge/__tests__/badge.stories.tsx +16 -0
- package/src/badge/__tests__/hint-dot.scenario.tsx +162 -0
- package/src/badge/__tests__/inline-badge.scenario.tsx +63 -0
- package/src/badge/__tests__/notification-circle.scenario.tsx +70 -0
- package/src/badge/badge.tsx +86 -0
- package/src/badge/constants.ts +46 -0
- package/src/badge/hint-dot.tsx +63 -0
- package/src/badge/index.ts +42 -0
- package/src/badge/notification-circle.tsx +76 -0
- package/src/badge/styled-components.ts +345 -0
- package/src/badge/types.ts +54 -0
- package/src/badge/utils.ts +18 -0
- package/src/banner/__tests__/banner-action-below.scenario.tsx +47 -0
- package/src/banner/__tests__/banner-artwork.scenario.tsx +82 -0
- package/src/banner/__tests__/banner-nested.scenario.tsx +55 -0
- package/src/banner/__tests__/banner-overrides.scenario.tsx +75 -0
- package/src/banner/__tests__/banner.scenario.tsx +75 -0
- package/src/banner/__tests__/banner.stories.tsx +19 -0
- package/src/banner/__tests__/banner.test.tsx +45 -0
- package/src/banner/banner.tsx +264 -0
- package/src/banner/constants.ts +27 -0
- package/src/banner/index.ts +19 -0
- package/src/banner/styled-components.ts +149 -0
- package/src/banner/types.ts +65 -0
- package/src/block/__tests__/block.scenario.tsx +18 -0
- package/src/block/__tests__/block.stories.tsx +11 -0
- package/src/block/__tests__/block.test.tsx +139 -0
- package/src/block/block.tsx +181 -0
- package/src/block/index.ts +9 -0
- package/src/block/styled-components.ts +378 -0
- package/src/block/types.ts +424 -0
- package/src/bottom-navigation/bottom-navigation.tsx +147 -0
- package/src/bottom-navigation/index.ts +10 -0
- package/src/bottom-navigation/nav-item.tsx +14 -0
- package/src/bottom-navigation/panel.tsx +27 -0
- package/src/bottom-navigation/selector.tsx +33 -0
- package/src/bottom-navigation/styled-components.ts +89 -0
- package/src/bottom-navigation/types.ts +59 -0
- package/src/breadcrumbs/__tests__/breadcrumbs-icon-overrides.scenario.tsx +45 -0
- package/src/breadcrumbs/__tests__/breadcrumbs-pseudo.scenario.tsx +41 -0
- package/src/breadcrumbs/__tests__/breadcrumbs-rtl.scenario.tsx +19 -0
- package/src/breadcrumbs/__tests__/breadcrumbs-trailing.scenario.tsx +21 -0
- package/src/breadcrumbs/__tests__/breadcrumbs.e2e.ts +19 -0
- package/src/breadcrumbs/__tests__/breadcrumbs.scenario.tsx +20 -0
- package/src/breadcrumbs/__tests__/breadcrumbs.stories.tsx +16 -0
- package/src/breadcrumbs/__tests__/breadcrumbs.test.tsx +42 -0
- package/src/breadcrumbs/breadcrumbs.tsx +79 -0
- package/src/breadcrumbs/index.ts +11 -0
- package/src/breadcrumbs/locale.ts +15 -0
- package/src/breadcrumbs/styled-components.ts +49 -0
- package/src/breadcrumbs/types.ts +27 -0
- package/src/button/__tests__/button-a11y.scenario.tsx +74 -0
- package/src/button/__tests__/button-backgroundsafe.scenario.tsx +90 -0
- package/src/button/__tests__/button-circle.scenario.tsx +55 -0
- package/src/button/__tests__/button-colors.scenario.tsx +69 -0
- package/src/button/__tests__/button-enhancers-compact.scenario.tsx +29 -0
- package/src/button/__tests__/button-enhancers-loading.scenario.tsx +29 -0
- package/src/button/__tests__/button-enhancers.scenario.tsx +199 -0
- package/src/button/__tests__/button-functional-children.scenario.tsx +85 -0
- package/src/button/__tests__/button-in-form.test.tsx +50 -0
- package/src/button/__tests__/button-min-hit-area.scenario.tsx +100 -0
- package/src/button/__tests__/button-rtl.scenario.tsx +20 -0
- package/src/button/__tests__/button-shapes.scenario.tsx +122 -0
- package/src/button/__tests__/button-sizes-loading.scenario.tsx +40 -0
- package/src/button/__tests__/button-sizes.scenario.tsx +27 -0
- package/src/button/__tests__/button-width-type.scenario.tsx +163 -0
- package/src/button/__tests__/button.e2e.ts +18 -0
- package/src/button/__tests__/button.scenario.tsx +96 -0
- package/src/button/__tests__/button.stories.tsx +43 -0
- package/src/button/__tests__/button.test.tsx +277 -0
- package/src/button/__tests__/link-buttons.scenario.tsx +89 -0
- package/src/button/button-internals.tsx +134 -0
- package/src/button/button.tsx +240 -0
- package/src/button/constants.ts +51 -0
- package/src/button/default-props.ts +19 -0
- package/src/button/index.ts +31 -0
- package/src/button/styled-components.ts +915 -0
- package/src/button/types.ts +114 -0
- package/src/button/utils.ts +33 -0
- package/src/button-dock/button-dock.tsx +39 -0
- package/src/button-dock/index.ts +9 -0
- package/src/button-dock/styled-components.ts +46 -0
- package/src/button-dock/types.ts +21 -0
- package/src/button-group/__tests__/button-group-a11y.scenario.tsx +66 -0
- package/src/button-group/__tests__/button-group-checkbox.scenario.tsx +20 -0
- package/src/button-group/__tests__/button-group-disabled.scenario.tsx +32 -0
- package/src/button-group/__tests__/button-group-kinds.scenario.tsx +37 -0
- package/src/button-group/__tests__/button-group-overrides.scenario.tsx +31 -0
- package/src/button-group/__tests__/button-group-padding-scenario.tsx +73 -0
- package/src/button-group/__tests__/button-group-pill.scenario.tsx +20 -0
- package/src/button-group/__tests__/button-group-radio.scenario.tsx +20 -0
- package/src/button-group/__tests__/button-group-selected-disabled.scenario.tsx +47 -0
- package/src/button-group/__tests__/button-group-selected.scenario.tsx +32 -0
- package/src/button-group/__tests__/button-group-sizes.scenario.tsx +32 -0
- package/src/button-group/__tests__/button-group-wrap.scenario.tsx +69 -0
- package/src/button-group/__tests__/button-group.e2e.ts +31 -0
- package/src/button-group/__tests__/button-group.stories.tsx +38 -0
- package/src/button-group/__tests__/button-group.test.tsx +140 -0
- package/src/button-group/__tests__/stateful-button-group.test.tsx +160 -0
- package/src/button-group/__tests__/stateful-container.test.tsx +75 -0
- package/src/button-group/button-group.tsx +168 -0
- package/src/button-group/constants.ts +20 -0
- package/src/button-group/index.ts +31 -0
- package/src/button-group/locale.ts +15 -0
- package/src/button-group/stateful-button-group.tsx +21 -0
- package/src/button-group/stateful-container.ts +90 -0
- package/src/button-group/styled-components.ts +69 -0
- package/src/button-group/types.ts +91 -0
- package/src/button-timed/__tests__/button-timed.e2e.ts +40 -0
- package/src/button-timed/__tests__/button-timed.scenario.tsx +62 -0
- package/src/button-timed/__tests__/button-timed.stories.tsx +10 -0
- package/src/button-timed/__tests__/button-timed.test.tsx +57 -0
- package/src/button-timed/button-timed.tsx +103 -0
- package/src/button-timed/index.ts +24 -0
- package/src/button-timed/styled-components.ts +53 -0
- package/src/button-timed/types.ts +19 -0
- package/src/button-timed/utils.ts +22 -0
- package/src/card/__tests__/card-header-level.scenario.tsx +39 -0
- package/src/card/__tests__/card-heading-level.e2e.ts +22 -0
- package/src/card/__tests__/card-image-link.scenario.tsx +32 -0
- package/src/card/__tests__/card-image-object.scenario.tsx +33 -0
- package/src/card/__tests__/card-text-only.scenario.tsx +26 -0
- package/src/card/__tests__/card.e2e.ts +18 -0
- package/src/card/__tests__/card.scenario.tsx +30 -0
- package/src/card/__tests__/card.stories.tsx +18 -0
- package/src/card/__tests__/card.test.tsx +51 -0
- package/src/card/__tests__/images.ts +12 -0
- package/src/card/card.tsx +103 -0
- package/src/card/index.ts +24 -0
- package/src/card/styled-components.ts +96 -0
- package/src/card/types.ts +51 -0
- package/src/checkbox/__tests__/checkbox-indeterminate.scenario.tsx +68 -0
- package/src/checkbox/__tests__/checkbox-placement.scenario.tsx +70 -0
- package/src/checkbox/__tests__/checkbox-react-hook-form.scenario.tsx +109 -0
- package/src/checkbox/__tests__/checkbox-rtl.scenario.tsx +20 -0
- package/src/checkbox/__tests__/checkbox-select.scenario.tsx +22 -0
- package/src/checkbox/__tests__/checkbox-states.scenario.tsx +32 -0
- package/src/checkbox/__tests__/checkbox-toggle.scenario.tsx +42 -0
- package/src/checkbox/__tests__/checkbox-unlabeled.scenario.tsx +13 -0
- package/src/checkbox/__tests__/checkbox.e2e.ts +37 -0
- package/src/checkbox/__tests__/checkbox.scenario.tsx +13 -0
- package/src/checkbox/__tests__/checkbox.stories.tsx +24 -0
- package/src/checkbox/__tests__/checkbox.test.tsx +73 -0
- package/src/checkbox/__tests__/stateful-checkbox-container.test.tsx +89 -0
- package/src/checkbox/checkbox.tsx +229 -0
- package/src/checkbox/constants.ts +27 -0
- package/src/checkbox/index.ts +26 -0
- package/src/checkbox/stateful-checkbox-container.ts +107 -0
- package/src/checkbox/stateful-checkbox.tsx +25 -0
- package/src/checkbox/styled-components.ts +284 -0
- package/src/checkbox/types.ts +185 -0
- package/src/checkbox-v2/__tests__/checkbox-v2-auto-focus.scenario.tsx +13 -0
- package/src/checkbox-v2/__tests__/checkbox-v2-indeterminate.scenario.tsx +73 -0
- package/src/checkbox-v2/__tests__/checkbox-v2-placement.scenario.tsx +44 -0
- package/src/checkbox-v2/__tests__/checkbox-v2-react-hook-form.scenario.tsx +109 -0
- package/src/checkbox-v2/__tests__/checkbox-v2-states.scenario.tsx +39 -0
- package/src/checkbox-v2/__tests__/checkbox-v2-unlabeled.scenario.tsx +14 -0
- package/src/checkbox-v2/__tests__/checkbox-v2.scenario.tsx +45 -0
- package/src/checkbox-v2/__tests__/checkbox-v2.stories.tsx +28 -0
- package/src/checkbox-v2/__tests__/checkbox-v2.test.tsx +138 -0
- package/src/checkbox-v2/__tests__/stateful-checkbox-v2-container.test.tsx +99 -0
- package/src/checkbox-v2/checkbox.tsx +262 -0
- package/src/checkbox-v2/constants.ts +17 -0
- package/src/checkbox-v2/index.ts +23 -0
- package/src/checkbox-v2/stateful-checkbox-container.ts +133 -0
- package/src/checkbox-v2/stateful-checkbox.tsx +23 -0
- package/src/checkbox-v2/styled-components.ts +223 -0
- package/src/checkbox-v2/types.ts +187 -0
- package/src/combobox/__tests__/combobox-async.scenario.tsx +110 -0
- package/src/combobox/__tests__/combobox-autocomplete-false.scenario.tsx +44 -0
- package/src/combobox/__tests__/combobox-disabled.scenario.tsx +40 -0
- package/src/combobox/__tests__/combobox-form-control.scenario.tsx +61 -0
- package/src/combobox/__tests__/combobox-form.scenario.tsx +56 -0
- package/src/combobox/__tests__/combobox-inline-text-search.scenario.tsx +91 -0
- package/src/combobox/__tests__/combobox-overrides.scenario.tsx +73 -0
- package/src/combobox/__tests__/combobox-replacement-node.scenario.tsx +65 -0
- package/src/combobox/__tests__/combobox-search.scenario.tsx +102 -0
- package/src/combobox/__tests__/combobox-sizes.scenario.tsx +59 -0
- package/src/combobox/__tests__/combobox.e2e.ts +47 -0
- package/src/combobox/__tests__/combobox.scenario.tsx +44 -0
- package/src/combobox/__tests__/combobox.stories.tsx +30 -0
- package/src/combobox/__tests__/combobox.test.tsx +406 -0
- package/src/combobox/combobox.tsx +335 -0
- package/src/combobox/index.ts +21 -0
- package/src/combobox/styled-components.ts +103 -0
- package/src/combobox/types.ts +66 -0
- package/src/data-table/__tests__/animal-data.ts +528 -0
- package/src/data-table/__tests__/column-anchor.test.tsx +107 -0
- package/src/data-table/__tests__/column-boolean.test.tsx +134 -0
- package/src/data-table/__tests__/column-categorical.test.tsx +252 -0
- package/src/data-table/__tests__/column-custom.test.tsx +98 -0
- package/src/data-table/__tests__/column-datetime.test.tsx +332 -0
- package/src/data-table/__tests__/column-numerical.test.tsx +273 -0
- package/src/data-table/__tests__/column-string.test.tsx +51 -0
- package/src/data-table/__tests__/data-table-add-remove-columns.scenario.tsx +40 -0
- package/src/data-table/__tests__/data-table-batch-action.e2e.ts +177 -0
- package/src/data-table/__tests__/data-table-batch-action.scenario.tsx +99 -0
- package/src/data-table/__tests__/data-table-categorical-column.scenario.tsx +50 -0
- package/src/data-table/__tests__/data-table-cell-indices.scenario.tsx +31 -0
- package/src/data-table/__tests__/data-table-collection-of-objects.scenario.tsx +81 -0
- package/src/data-table/__tests__/data-table-column-width-resize.scenario.tsx +38 -0
- package/src/data-table/__tests__/data-table-columns-not-sortable.e2e.ts +31 -0
- package/src/data-table/__tests__/data-table-columns-not-sortable.scenario.tsx +67 -0
- package/src/data-table/__tests__/data-table-columns.e2e.ts +608 -0
- package/src/data-table/__tests__/data-table-columns.scenario.tsx +62 -0
- package/src/data-table/__tests__/data-table-datetime-column.scenario.tsx +31 -0
- package/src/data-table/__tests__/data-table-empty.scenario.tsx +43 -0
- package/src/data-table/__tests__/data-table-extracted-filters.e2e.ts +45 -0
- package/src/data-table/__tests__/data-table-extracted-filters.scenario.tsx +138 -0
- package/src/data-table/__tests__/data-table-extracted-highlight.scenario.tsx +124 -0
- package/src/data-table/__tests__/data-table-full-window.scenario.tsx +54 -0
- package/src/data-table/__tests__/data-table-get-rows.scenario.tsx +80 -0
- package/src/data-table/__tests__/data-table-imperative-clear-selection.e2e.ts +39 -0
- package/src/data-table/__tests__/data-table-imperative-clear-selection.scenario.tsx +82 -0
- package/src/data-table/__tests__/data-table-included-rows-change.e2e.ts +29 -0
- package/src/data-table/__tests__/data-table-included-rows-change.scenario.tsx +52 -0
- package/src/data-table/__tests__/data-table-initial-filters.e2e.ts +63 -0
- package/src/data-table/__tests__/data-table-initial-filters.scenario.tsx +78 -0
- package/src/data-table/__tests__/data-table-initial-selected-rows.e2e.ts +21 -0
- package/src/data-table/__tests__/data-table-initial-selected-rows.scenario.tsx +62 -0
- package/src/data-table/__tests__/data-table-initial-sort.e2e.ts +21 -0
- package/src/data-table/__tests__/data-table-initial-sort.scenario.tsx +38 -0
- package/src/data-table/__tests__/data-table-large-column-data.scenario.tsx +140 -0
- package/src/data-table/__tests__/data-table-loading.scenario.tsx +49 -0
- package/src/data-table/__tests__/data-table-not-filterable.scenario.tsx +45 -0
- package/src/data-table/__tests__/data-table-not-searchable.scenario.tsx +45 -0
- package/src/data-table/__tests__/data-table-numerical-column.scenario.tsx +78 -0
- package/src/data-table/__tests__/data-table-resizable-column-widths.scenario.tsx +98 -0
- package/src/data-table/__tests__/data-table-row-actions-button.e2e.ts +33 -0
- package/src/data-table/__tests__/data-table-row-actions-button.scenario.tsx +66 -0
- package/src/data-table/__tests__/data-table-row-actions-dynamic.e2e.ts +29 -0
- package/src/data-table/__tests__/data-table-row-actions-dynamic.scenario.tsx +70 -0
- package/src/data-table/__tests__/data-table-row-actions.e2e.ts +54 -0
- package/src/data-table/__tests__/data-table-row-actions.scenario.tsx +117 -0
- package/src/data-table/__tests__/data-table-row-height.scenario.tsx +64 -0
- package/src/data-table/__tests__/data-table-rtl.e2e.ts +26 -0
- package/src/data-table/__tests__/data-table-rtl.scenario.tsx +39 -0
- package/src/data-table/__tests__/data-table-stateful-callback.e2e.ts +51 -0
- package/src/data-table/__tests__/data-table-stateful-callback.scenario.tsx +120 -0
- package/src/data-table/__tests__/data-table-text-search.e2e.ts +36 -0
- package/src/data-table/__tests__/data-table-text-search.scenario.tsx +98 -0
- package/src/data-table/__tests__/data-table-unreliable.e2e.ts +56 -0
- package/src/data-table/__tests__/data-table.scenario.tsx +271 -0
- package/src/data-table/__tests__/data-table.stories.tsx +74 -0
- package/src/data-table/__tests__/data-table.test.tsx +166 -0
- package/src/data-table/__tests__/graphql-array-data.ts +206 -0
- package/src/data-table/__tests__/precision-data.ts +187 -0
- package/src/data-table/__tests__/text-search.test.ts +49 -0
- package/src/data-table/__tests__/utilities.ts +63 -0
- package/src/data-table/column-anchor.tsx +86 -0
- package/src/data-table/column-boolean.tsx +116 -0
- package/src/data-table/column-categorical.tsx +264 -0
- package/src/data-table/column-custom.ts +28 -0
- package/src/data-table/column-datetime.tsx +660 -0
- package/src/data-table/column-numerical.tsx +546 -0
- package/src/data-table/column-row-index.tsx +55 -0
- package/src/data-table/column-string.tsx +85 -0
- package/src/data-table/column.tsx +92 -0
- package/src/data-table/constants.ts +49 -0
- package/src/data-table/data-table.tsx +1074 -0
- package/src/data-table/filter-menu.tsx +342 -0
- package/src/data-table/filter-shell.tsx +88 -0
- package/src/data-table/header-cell.tsx +178 -0
- package/src/data-table/index.ts +37 -0
- package/src/data-table/locale.ts +90 -0
- package/src/data-table/measure-column-widths.tsx +190 -0
- package/src/data-table/stateful-container.ts +156 -0
- package/src/data-table/stateful-data-table.tsx +331 -0
- package/src/data-table/text-search.tsx +69 -0
- package/src/data-table/types.ts +193 -0
- package/src/datepicker/__tests__/calendar-icon-overrides.scenario.tsx +40 -0
- package/src/datepicker/__tests__/calendar-multi-month.scenario.tsx +48 -0
- package/src/datepicker/__tests__/calendar-time-select.scenario.tsx +39 -0
- package/src/datepicker/__tests__/calendar.e2e.ts +120 -0
- package/src/datepicker/__tests__/calendar.scenario.tsx +21 -0
- package/src/datepicker/__tests__/calendar.test.tsx +66 -0
- package/src/datepicker/__tests__/datepicker-i18n-chinese.scenario.tsx +14 -0
- package/src/datepicker/__tests__/datepicker-int-range.e2e.ts +30 -0
- package/src/datepicker/__tests__/datepicker-int-range.scenario.tsx +32 -0
- package/src/datepicker/__tests__/datepicker-int.e2e.ts +28 -0
- package/src/datepicker/__tests__/datepicker-int.scenario.tsx +30 -0
- package/src/datepicker/__tests__/datepicker-keyboard-nav.e2e.ts +277 -0
- package/src/datepicker/__tests__/datepicker-mask.scenario.tsx +82 -0
- package/src/datepicker/__tests__/datepicker-onchange-flow.scenario.tsx +49 -0
- package/src/datepicker/__tests__/datepicker-range-exclude-dates.e2e.ts +53 -0
- package/src/datepicker/__tests__/datepicker-range-exclude-dates.scenario.tsx +68 -0
- package/src/datepicker/__tests__/datepicker-range-highlight.scenario.tsx +19 -0
- package/src/datepicker/__tests__/datepicker-range-locked-behavior.e2e.ts +132 -0
- package/src/datepicker/__tests__/datepicker-range-locked-behavior.scenario.tsx +77 -0
- package/src/datepicker/__tests__/datepicker-range-multi-month.scenario.tsx +35 -0
- package/src/datepicker/__tests__/datepicker-range-null-start-date.scenario.tsx +24 -0
- package/src/datepicker/__tests__/datepicker-range-separate-inputs.e2e.ts +114 -0
- package/src/datepicker/__tests__/datepicker-range-separate-inputs.scenario.tsx +72 -0
- package/src/datepicker/__tests__/datepicker-range.e2e.ts +134 -0
- package/src/datepicker/__tests__/datepicker-range.scenario.tsx +53 -0
- package/src/datepicker/__tests__/datepicker-rtl.scenario.tsx +19 -0
- package/src/datepicker/__tests__/datepicker-time.scenario.tsx +26 -0
- package/src/datepicker/__tests__/datepicker-unreliable.e2e.ts +174 -0
- package/src/datepicker/__tests__/datepicker.e2e.ts +147 -0
- package/src/datepicker/__tests__/datepicker.scenario.tsx +97 -0
- package/src/datepicker/__tests__/datepicker.stories.tsx +64 -0
- package/src/datepicker/__tests__/datepicker.test.tsx +319 -0
- package/src/datepicker/__tests__/datepickers-color-states.scenario.tsx +58 -0
- package/src/datepicker/__tests__/datepickers-composed-range.e2e.ts +160 -0
- package/src/datepicker/__tests__/datepickers-composed-range.scenario.tsx +144 -0
- package/src/datepicker/__tests__/datepickers-composed-single.scenario.tsx +53 -0
- package/src/datepicker/__tests__/stateful-calendar-overrides.scenario.tsx +69 -0
- package/src/datepicker/__tests__/stateful-calendar.scenario.tsx +25 -0
- package/src/datepicker/__tests__/stateful-calendar.test.tsx +24 -0
- package/src/datepicker/__tests__/stateful-container.test.tsx +36 -0
- package/src/datepicker/__tests__/stateful-datepicker-min-max-date.scenario.tsx +26 -0
- package/src/datepicker/__tests__/stateful-datepicker-quick-select.e2e.ts +49 -0
- package/src/datepicker/__tests__/stateful-datepicker-quick-select.scenario.tsx +24 -0
- package/src/datepicker/__tests__/stateful-datepicker.e2e.ts +98 -0
- package/src/datepicker/__tests__/stateful-datepicker.scenario.tsx +12 -0
- package/src/datepicker/__tests__/stateful-datepicker.test.tsx +23 -0
- package/src/datepicker/__tests__/stateful-range-datepicker.scenario.tsx +13 -0
- package/src/datepicker/__tests__/stateful-range-quick-select.scenario.tsx +13 -0
- package/src/datepicker/__tests__/utils.test.ts +1013 -0
- package/src/datepicker/calendar-header.tsx +648 -0
- package/src/datepicker/calendar.tsx +749 -0
- package/src/datepicker/constants.ts +43 -0
- package/src/datepicker/datepicker.tsx +650 -0
- package/src/datepicker/datepicker_DO_NOT_USE.tsx +670 -0
- package/src/datepicker/day.tsx +462 -0
- package/src/datepicker/index.ts +37 -0
- package/src/datepicker/locale.ts +74 -0
- package/src/datepicker/month.tsx +131 -0
- package/src/datepicker/stateful-calendar.tsx +35 -0
- package/src/datepicker/stateful-container.ts +77 -0
- package/src/datepicker/stateful-datepicker.tsx +34 -0
- package/src/datepicker/styled-components.ts +696 -0
- package/src/datepicker/types.ts +365 -0
- package/src/datepicker/utils/__tests__/date-helpers.node.ts +46 -0
- package/src/datepicker/utils/calendar-header-helpers.ts +48 -0
- package/src/datepicker/utils/date-fns-adapter.ts +13 -0
- package/src/datepicker/utils/date-helpers.ts +448 -0
- package/src/datepicker/utils/day-state.ts +60 -0
- package/src/datepicker/utils/index.ts +91 -0
- package/src/datepicker/utils/types.ts +78 -0
- package/src/datepicker/week.tsx +98 -0
- package/src/dialog/constants.ts +22 -0
- package/src/dialog/dialog.tsx +165 -0
- package/src/dialog/index.ts +10 -0
- package/src/dialog/styled-components.ts +188 -0
- package/src/dialog/types.ts +49 -0
- package/src/divider/__tests__/divider.scenario.tsx +62 -0
- package/src/divider/__tests__/divider.stories.tsx +10 -0
- package/src/divider/constants.ts +11 -0
- package/src/divider/index.tsx +20 -0
- package/src/divider/styled-components.ts +40 -0
- package/src/divider/types.ts +11 -0
- package/src/dnd-list/__tests__/dnd-list-rtl.scenario.tsx +19 -0
- package/src/dnd-list/__tests__/dnd-list.scenario.tsx +26 -0
- package/src/dnd-list/__tests__/dnd-list.stories.tsx +10 -0
- package/src/dnd-list/__tests__/list.test.tsx +36 -0
- package/src/dnd-list/__tests__/stateful-list-container.test.tsx +91 -0
- package/src/dnd-list/__tests__/stateful-list.test.tsx +29 -0
- package/src/dnd-list/constants.ts +9 -0
- package/src/dnd-list/index.ts +29 -0
- package/src/dnd-list/list.tsx +156 -0
- package/src/dnd-list/stateful-list-container.ts +74 -0
- package/src/dnd-list/stateful-list.tsx +27 -0
- package/src/dnd-list/styled-components.ts +139 -0
- package/src/dnd-list/types.ts +83 -0
- package/src/drawer/__tests__/drawer-hide-backdrop.scenario.tsx +46 -0
- package/src/drawer/__tests__/drawer-render-all.scenario.tsx +45 -0
- package/src/drawer/__tests__/drawer-rtl.scenario.tsx +19 -0
- package/src/drawer/__tests__/drawer-select.scenario.tsx +44 -0
- package/src/drawer/__tests__/drawer.e2e.ts +118 -0
- package/src/drawer/__tests__/drawer.scenario.tsx +42 -0
- package/src/drawer/__tests__/drawer.stories.tsx +16 -0
- package/src/drawer/__tests__/drawer.test.tsx +132 -0
- package/src/drawer/close-icon.tsx +12 -0
- package/src/drawer/constants.ts +33 -0
- package/src/drawer/drawer.tsx +307 -0
- package/src/drawer/index.ts +11 -0
- package/src/drawer/locale.ts +15 -0
- package/src/drawer/styled-components.ts +219 -0
- package/src/drawer/types.ts +84 -0
- package/src/file-uploader/__tests__/file-uploader-item-preview.scenario.tsx +20 -0
- package/src/file-uploader/__tests__/file-uploader-label-hint.scenario.tsx +20 -0
- package/src/file-uploader/__tests__/file-uploader-long-loading-multiple-files.scenario.tsx +56 -0
- package/src/file-uploader/__tests__/file-uploader-long-loading.scenario.tsx +26 -0
- package/src/file-uploader/__tests__/file-uploader-overrides.scenario.tsx +67 -0
- package/src/file-uploader/__tests__/file-uploader-upload-restrictions.scenario.tsx +25 -0
- package/src/file-uploader/__tests__/file-uploader.e2e.ts +300 -0
- package/src/file-uploader/__tests__/file-uploader.scenario.tsx +13 -0
- package/src/file-uploader/__tests__/file-uploader.stories.tsx +22 -0
- package/src/file-uploader/__tests__/file-uploader.test.tsx +746 -0
- package/src/file-uploader/constants.ts +30 -0
- package/src/file-uploader/file-uploader.tsx +637 -0
- package/src/file-uploader/index.ts +28 -0
- package/src/file-uploader/locale.ts +23 -0
- package/src/file-uploader/styled-components.ts +245 -0
- package/src/file-uploader/types.ts +74 -0
- package/src/file-uploader/utils.ts +40 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic-disabled.scenario.tsx +13 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic-error.scenario.tsx +19 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic-post-drop.scenario.tsx +17 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic-pre-drop.scenario.tsx +17 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic-progress-bar.scenario.tsx +13 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic-spinner.scenario.tsx +13 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic.e2e.ts +25 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic.scenario.tsx +12 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic.stories.tsx +22 -0
- package/src/file-uploader-basic/__tests__/file-uploader-basic.test.tsx +180 -0
- package/src/file-uploader-basic/file-uploader-basic.tsx +297 -0
- package/src/file-uploader-basic/index.ts +21 -0
- package/src/file-uploader-basic/locale.ts +23 -0
- package/src/file-uploader-basic/styled-components.ts +89 -0
- package/src/file-uploader-basic/types.ts +56 -0
- package/src/flex-grid/__tests__/__snapshots__/flex-grid-item.test.tsx.snap +99 -0
- package/src/flex-grid/__tests__/__snapshots__/flex-grid.test.tsx.snap +31 -0
- package/src/flex-grid/__tests__/flex-grid-fractional-pixel.scenario.tsx +35 -0
- package/src/flex-grid/__tests__/flex-grid-item.test.tsx +209 -0
- package/src/flex-grid/__tests__/flex-grid-missing.scenario.tsx +39 -0
- package/src/flex-grid/__tests__/flex-grid-responsive.scenario.tsx +35 -0
- package/src/flex-grid/__tests__/flex-grid-unequal-narrow.scenario.tsx +42 -0
- package/src/flex-grid/__tests__/flex-grid-unequal-wide.scenario.tsx +43 -0
- package/src/flex-grid/__tests__/flex-grid.scenario.tsx +30 -0
- package/src/flex-grid/__tests__/flex-grid.stories.tsx +20 -0
- package/src/flex-grid/__tests__/flex-grid.test.tsx +35 -0
- package/src/flex-grid/flex-grid-item.tsx +196 -0
- package/src/flex-grid/flex-grid.tsx +86 -0
- package/src/flex-grid/index.ts +9 -0
- package/src/flex-grid/types.ts +24 -0
- package/src/form-control/__tests__/form-control-id.scenario.tsx +29 -0
- package/src/form-control/__tests__/form-control-with-counter.scenario.tsx +59 -0
- package/src/form-control/__tests__/form-control.scenario.tsx +63 -0
- package/src/form-control/__tests__/form-control.stories.tsx +14 -0
- package/src/form-control/__tests__/form-control.test.tsx +223 -0
- package/src/form-control/form-control.tsx +243 -0
- package/src/form-control/index.ts +14 -0
- package/src/form-control/styled-components.ts +116 -0
- package/src/form-control/types.ts +65 -0
- package/src/header-navigation/__tests__/header-navigation.e2e.ts +18 -0
- package/src/header-navigation/__tests__/header-navigation.scenario.tsx +47 -0
- package/src/header-navigation/__tests__/header-navigation.stories.tsx +10 -0
- package/src/header-navigation/__tests__/header-navigation.test.tsx +26 -0
- package/src/header-navigation/constants.ts +11 -0
- package/src/header-navigation/examples-icons.ts +9 -0
- package/src/header-navigation/header-navigation.tsx +26 -0
- package/src/header-navigation/index.ts +15 -0
- package/src/header-navigation/styled-components.ts +77 -0
- package/src/header-navigation/types.ts +16 -0
- package/src/heading/__tests__/heading.scenario.tsx +81 -0
- package/src/heading/__tests__/heading.stories.tsx +10 -0
- package/src/heading/__tests__/heading.test.ts +59 -0
- package/src/heading/heading-level.tsx +18 -0
- package/src/heading/heading.tsx +42 -0
- package/src/heading/index.ts +9 -0
- package/src/heading/types.ts +18 -0
- package/src/helper/__tests__/helper-position.scenario.tsx +76 -0
- package/src/helper/__tests__/helper-steps.scenario.tsx +48 -0
- package/src/helper/__tests__/helper-with-steps.scenario.tsx +75 -0
- package/src/helper/__tests__/helper.stories.tsx +14 -0
- package/src/helper/constants.ts +8 -0
- package/src/helper/helper-steps.tsx +65 -0
- package/src/helper/helper.tsx +47 -0
- package/src/helper/index.ts +23 -0
- package/src/helper/stateful-helper.tsx +39 -0
- package/src/helper/styled-components.ts +183 -0
- package/src/helper/types.ts +16 -0
- package/src/helpers/__tests__/__snapshots__/overrides.test.tsx.snap +20 -0
- package/src/helpers/__tests__/__snapshots__/react-helpers.test.tsx.snap +27 -0
- package/src/helpers/__tests__/helpers.stories.tsx +10 -0
- package/src/helpers/__tests__/i18n-interpolation.test.ts +17 -0
- package/src/helpers/__tests__/override-avoid-remount.scenario.tsx +49 -0
- package/src/helpers/__tests__/overrides.test.tsx +310 -0
- package/src/helpers/__tests__/react-helpers.test.tsx +29 -0
- package/src/helpers/__tests__/responsive-helpers.test.ts +141 -0
- package/src/helpers/__tests__/strings.test.ts +13 -0
- package/src/helpers/base-provider.tsx +24 -0
- package/src/helpers/i18n-interpolation.ts +18 -0
- package/src/helpers/overrides.tsx +222 -0
- package/src/helpers/react-helpers.tsx +30 -0
- package/src/helpers/responsive-helpers.ts +46 -0
- package/src/helpers/strings.ts +7 -0
- package/src/helpers/types.ts +34 -0
- package/src/icon/README.md +5 -0
- package/src/icon/__tests__/icon-attributes.scenario.tsx +71 -0
- package/src/icon/__tests__/icon-buttons.scenario.tsx +41 -0
- package/src/icon/__tests__/icon-overrides.scenario.tsx +53 -0
- package/src/icon/__tests__/icon.stories.tsx +14 -0
- package/src/icon/__tests__/icon.test.tsx +63 -0
- package/src/icon/alert.tsx +46 -0
- package/src/icon/arrow-down.tsx +46 -0
- package/src/icon/arrow-left.tsx +46 -0
- package/src/icon/arrow-right.tsx +46 -0
- package/src/icon/arrow-up.tsx +46 -0
- package/src/icon/blank.tsx +40 -0
- package/src/icon/build-icons.js +110 -0
- package/src/icon/calendar.tsx +42 -0
- package/src/icon/check-indeterminate.tsx +47 -0
- package/src/icon/check.tsx +46 -0
- package/src/icon/chevron-down-small.tsx +45 -0
- package/src/icon/chevron-down.tsx +47 -0
- package/src/icon/chevron-left-small.tsx +45 -0
- package/src/icon/chevron-left.tsx +46 -0
- package/src/icon/chevron-right-small.tsx +46 -0
- package/src/icon/chevron-right.tsx +46 -0
- package/src/icon/chevron-up-small.tsx +45 -0
- package/src/icon/chevron-up.tsx +47 -0
- package/src/icon/circle-check-filled.tsx +46 -0
- package/src/icon/circle-exclamation-point-filled.tsx +54 -0
- package/src/icon/delete-alt.tsx +46 -0
- package/src/icon/delete.tsx +46 -0
- package/src/icon/filter.tsx +44 -0
- package/src/icon/grab.tsx +46 -0
- package/src/icon/hide.tsx +42 -0
- package/src/icon/icon-exports.ts +39 -0
- package/src/icon/icon-template.txt +42 -0
- package/src/icon/icon.tsx +42 -0
- package/src/icon/index.ts +14 -0
- package/src/icon/menu.tsx +44 -0
- package/src/icon/omit-dollar-prefixed-keys.ts +20 -0
- package/src/icon/overflow.tsx +44 -0
- package/src/icon/paperclip-filled.tsx +45 -0
- package/src/icon/plus.tsx +46 -0
- package/src/icon/search.tsx +46 -0
- package/src/icon/show.tsx +42 -0
- package/src/icon/spinner.tsx +52 -0
- package/src/icon/styled-components.ts +57 -0
- package/src/icon/svg/alert.svg +3 -0
- package/src/icon/svg/arrow-down.svg +3 -0
- package/src/icon/svg/arrow-left.svg +3 -0
- package/src/icon/svg/arrow-right.svg +3 -0
- package/src/icon/svg/arrow-up.svg +3 -0
- package/src/icon/svg/blank.svg +1 -0
- package/src/icon/svg/calendar.svg +3 -0
- package/src/icon/svg/check-indeterminate.svg +3 -0
- package/src/icon/svg/check.svg +3 -0
- package/src/icon/svg/chevron-down-small.svg +4 -0
- package/src/icon/svg/chevron-down.svg +3 -0
- package/src/icon/svg/chevron-left-small.svg +4 -0
- package/src/icon/svg/chevron-left.svg +3 -0
- package/src/icon/svg/chevron-right-small.svg +4 -0
- package/src/icon/svg/chevron-right.svg +3 -0
- package/src/icon/svg/chevron-up-small.svg +4 -0
- package/src/icon/svg/chevron-up.svg +3 -0
- package/src/icon/svg/delete-alt.svg +3 -0
- package/src/icon/svg/delete.svg +3 -0
- package/src/icon/svg/filter.svg +5 -0
- package/src/icon/svg/grab.svg +3 -0
- package/src/icon/svg/hide.svg +4 -0
- package/src/icon/svg/menu.svg +5 -0
- package/src/icon/svg/overflow.svg +5 -0
- package/src/icon/svg/plus.svg +3 -0
- package/src/icon/svg/search.svg +3 -0
- package/src/icon/svg/show.svg +4 -0
- package/src/icon/svg/spinner.svg +4 -0
- package/src/icon/svg/triangle-down.svg +3 -0
- package/src/icon/svg/triangle-left.svg +3 -0
- package/src/icon/svg/triangle-right.svg +3 -0
- package/src/icon/svg/triangle-up.svg +3 -0
- package/src/icon/svg/upload.svg +3 -0
- package/src/icon/trash-can-filled.tsx +47 -0
- package/src/icon/triangle-down.tsx +42 -0
- package/src/icon/triangle-left.tsx +42 -0
- package/src/icon/triangle-right.tsx +42 -0
- package/src/icon/triangle-up.tsx +42 -0
- package/src/icon/types.ts +31 -0
- package/src/icon/upload.tsx +46 -0
- package/src/index.ts +38 -0
- package/src/input/__tests__/__snapshots__/utils.test.ts.snap +15 -0
- package/src/input/__tests__/base-input.test.tsx +94 -0
- package/src/input/__tests__/input-before-after.scenario.tsx +42 -0
- package/src/input/__tests__/input-clearable-icon-overrides.scenario.tsx +38 -0
- package/src/input/__tests__/input-clearable-noescape.scenario.tsx +28 -0
- package/src/input/__tests__/input-clearable.scenario.tsx +47 -0
- package/src/input/__tests__/input-disabled-matches-select.scenario.tsx +34 -0
- package/src/input/__tests__/input-form-control-states.scenario.tsx +50 -0
- package/src/input/__tests__/input-mask.scenario.tsx +21 -0
- package/src/input/__tests__/input-number.scenario.tsx +12 -0
- package/src/input/__tests__/input-password-icon-overrides.scenario.tsx +39 -0
- package/src/input/__tests__/input-password.scenario.tsx +51 -0
- package/src/input/__tests__/input-rtl.scenario.tsx +31 -0
- package/src/input/__tests__/input-selector.scenario.tsx +97 -0
- package/src/input/__tests__/input-sizes.scenario.tsx +25 -0
- package/src/input/__tests__/input-states.scenario.tsx +105 -0
- package/src/input/__tests__/input-with-button.scenario.tsx +45 -0
- package/src/input/__tests__/input.e2e.ts +153 -0
- package/src/input/__tests__/input.scenario.tsx +23 -0
- package/src/input/__tests__/input.stories.tsx +38 -0
- package/src/input/__tests__/input.test.tsx +77 -0
- package/src/input/__tests__/masked-input.test.tsx +53 -0
- package/src/input/__tests__/stateful-container.test.tsx +27 -0
- package/src/input/__tests__/stateful-input.test.tsx +26 -0
- package/src/input/__tests__/utils.test.ts +32 -0
- package/src/input/base-input.tsx +392 -0
- package/src/input/constants.ts +32 -0
- package/src/input/index.ts +23 -0
- package/src/input/input.tsx +144 -0
- package/src/input/masked-input.tsx +113 -0
- package/src/input/stateful-container.ts +57 -0
- package/src/input/stateful-input.tsx +18 -0
- package/src/input/styled-components.ts +535 -0
- package/src/input/types.ts +202 -0
- package/src/input/utils.ts +28 -0
- package/src/layer/__mocks__/popper.js.ts +35 -0
- package/src/layer/__tests__/key-handlers.scenario.tsx +149 -0
- package/src/layer/__tests__/layer-z-index.scenario.tsx +180 -0
- package/src/layer/__tests__/layer.stories.tsx +12 -0
- package/src/layer/__tests__/layer.test.tsx +128 -0
- package/src/layer/__tests__/tether.test.tsx +37 -0
- package/src/layer/__tests__/utils.test.ts +45 -0
- package/src/layer/constants.ts +21 -0
- package/src/layer/index.ts +11 -0
- package/src/layer/layer.tsx +179 -0
- package/src/layer/layers-manager.tsx +235 -0
- package/src/layer/tether.ts +142 -0
- package/src/layer/types.ts +168 -0
- package/src/layer/utils.ts +21 -0
- package/src/layout/README.md +72 -0
- package/src/layout/layout_1.png +0 -0
- package/src/layout/layout_2.png +0 -0
- package/src/layout/layout_3.png +0 -0
- package/src/layout-grid/__tests__/inner.tsx +40 -0
- package/src/layout-grid/__tests__/layout-grid-align.scenario.tsx +148 -0
- package/src/layout-grid/__tests__/layout-grid-compact.scenario.tsx +120 -0
- package/src/layout-grid/__tests__/layout-grid-custom.scenario.tsx +61 -0
- package/src/layout-grid/__tests__/layout-grid-hide.scenario.tsx +24 -0
- package/src/layout-grid/__tests__/layout-grid-order.scenario.tsx +36 -0
- package/src/layout-grid/__tests__/layout-grid-overrides.scenario.tsx +44 -0
- package/src/layout-grid/__tests__/layout-grid-sizing.scenario.tsx +27 -0
- package/src/layout-grid/__tests__/layout-grid-skip.scenario.tsx +66 -0
- package/src/layout-grid/__tests__/layout-grid-unit.scenario.tsx +28 -0
- package/src/layout-grid/__tests__/layout-grid-wrap.scenario.tsx +48 -0
- package/src/layout-grid/__tests__/layout-grid.scenario.tsx +120 -0
- package/src/layout-grid/__tests__/layout-grid.stories.tsx +30 -0
- package/src/layout-grid/cell.tsx +43 -0
- package/src/layout-grid/constants.ts +33 -0
- package/src/layout-grid/grid.tsx +85 -0
- package/src/layout-grid/index.ts +26 -0
- package/src/layout-grid/styled-components.ts +164 -0
- package/src/layout-grid/types.ts +134 -0
- package/src/link/__tests__/link.scenario.tsx +23 -0
- package/src/link/__tests__/link.stories.tsx +10 -0
- package/src/link/index.tsx +55 -0
- package/src/link/styled-components.ts +59 -0
- package/src/list/__tests__/list-heading.scenario.tsx +155 -0
- package/src/list/__tests__/list-item-artwork-min-width.scenario.tsx +62 -0
- package/src/list/__tests__/list-item-artwork-sizes.scenario.tsx +62 -0
- package/src/list/__tests__/list-item-menu-adapter.scenario.tsx +58 -0
- package/src/list/__tests__/list-item-overrides.scenario.tsx +34 -0
- package/src/list/__tests__/list-item-rtl.scenario.tsx +444 -0
- package/src/list/__tests__/list-item.scenario.tsx +473 -0
- package/src/list/__tests__/list-item.test.tsx +73 -0
- package/src/list/__tests__/list.stories.tsx +22 -0
- package/src/list/constants.ts +16 -0
- package/src/list/index.ts +51 -0
- package/src/list/list-heading.tsx +126 -0
- package/src/list/list-item-label.tsx +52 -0
- package/src/list/list-item.tsx +120 -0
- package/src/list/menu-adapter.tsx +47 -0
- package/src/list/styled-components.ts +271 -0
- package/src/list/types.ts +103 -0
- package/src/list/utils.ts +30 -0
- package/src/locale/__tests__/locale-provider.test.tsx +57 -0
- package/src/locale/en_US.ts +38 -0
- package/src/locale/es_AR.ts +145 -0
- package/src/locale/index.tsx +78 -0
- package/src/locale/tr_TR.ts +145 -0
- package/src/locale/types.ts +35 -0
- package/src/map-marker/__tests__/eats-pickup-marker.scenario.tsx +196 -0
- package/src/map-marker/__tests__/fixed-marker-map.scenario.tsx +243 -0
- package/src/map-marker/__tests__/fixed-marker.scenario.tsx +166 -0
- package/src/map-marker/__tests__/floating-marker-map.scenario.tsx +182 -0
- package/src/map-marker/__tests__/floating-marker.scenario.tsx +124 -0
- package/src/map-marker/__tests__/floating-route-marker-map.scenario.tsx +177 -0
- package/src/map-marker/__tests__/floating-route-marker.scenario.tsx +105 -0
- package/src/map-marker/__tests__/location-puck-map.scenario.tsx +150 -0
- package/src/map-marker/__tests__/location-puck.scenario.tsx +76 -0
- package/src/map-marker/__tests__/map-marker.stories.tsx +26 -0
- package/src/map-marker/__tests__/map-style.ts +49 -0
- package/src/map-marker/__tests__/tile-grid.tsx +56 -0
- package/src/map-marker/badge-enhancer.tsx +66 -0
- package/src/map-marker/calculate-offsets.ts +42 -0
- package/src/map-marker/constants.ts +358 -0
- package/src/map-marker/drag-shadow.tsx +32 -0
- package/src/map-marker/fixed-marker.tsx +143 -0
- package/src/map-marker/floating-marker.tsx +104 -0
- package/src/map-marker/floating-route-marker.tsx +115 -0
- package/src/map-marker/index.ts +104 -0
- package/src/map-marker/label-enhancer.tsx +55 -0
- package/src/map-marker/location-puck.tsx +189 -0
- package/src/map-marker/needle.tsx +19 -0
- package/src/map-marker/pin-head.tsx +196 -0
- package/src/map-marker/styled-components.ts +558 -0
- package/src/map-marker/types.ts +238 -0
- package/src/menu/__tests__/maybe-child-menu.test.tsx +54 -0
- package/src/menu/__tests__/menu-child-in-popover.scenario.tsx +124 -0
- package/src/menu/__tests__/menu-child-render-all.scenario.tsx +68 -0
- package/src/menu/__tests__/menu-child.scenario.tsx +120 -0
- package/src/menu/__tests__/menu-dividers.scenario.tsx +43 -0
- package/src/menu/__tests__/menu-empty.scenario.tsx +23 -0
- package/src/menu/__tests__/menu-grouped-items.e2e.ts +58 -0
- package/src/menu/__tests__/menu-grouped-items.scenario.tsx +46 -0
- package/src/menu/__tests__/menu-profile-menu.scenario.tsx +43 -0
- package/src/menu/__tests__/menu-propagation.scenario.tsx +27 -0
- package/src/menu/__tests__/menu-rtl.scenario.tsx +22 -0
- package/src/menu/__tests__/menu-stateful.scenario.tsx +49 -0
- package/src/menu/__tests__/menu-virtualized.scenario.tsx +57 -0
- package/src/menu/__tests__/menu.e2e.ts +199 -0
- package/src/menu/__tests__/menu.scenario.tsx +46 -0
- package/src/menu/__tests__/menu.stories.tsx +30 -0
- package/src/menu/__tests__/menu.test.tsx +65 -0
- package/src/menu/__tests__/option-list.test.tsx +47 -0
- package/src/menu/__tests__/option-profile.test.tsx +77 -0
- package/src/menu/__tests__/stateful-container.test.tsx +249 -0
- package/src/menu/__tests__/stateful-menu.test.tsx +27 -0
- package/src/menu/__tests__/utils.test.ts +259 -0
- package/src/menu/constants.ts +35 -0
- package/src/menu/index.ts +63 -0
- package/src/menu/locale.ts +17 -0
- package/src/menu/maybe-child-menu.tsx +86 -0
- package/src/menu/menu.tsx +154 -0
- package/src/menu/nested-menus.tsx +151 -0
- package/src/menu/option-list.tsx +122 -0
- package/src/menu/option-profile.tsx +105 -0
- package/src/menu/stateful-container.tsx +472 -0
- package/src/menu/stateful-menu.tsx +30 -0
- package/src/menu/styled-components.tsx +251 -0
- package/src/menu/types.ts +324 -0
- package/src/menu/utils.ts +56 -0
- package/src/message-card/__tests__/deliveryHeroItalian.svg +836 -0
- package/src/message-card/__tests__/deliveryHeroItalian@3x.png +0 -0
- package/src/message-card/__tests__/deliveryLargeStrawberries.svg +72 -0
- package/src/message-card/__tests__/deliveryLargeStrawberries@3x.png +0 -0
- package/src/message-card/__tests__/earnerLargeRiderDriver.svg +104 -0
- package/src/message-card/__tests__/earnerLargeRiderDriver@3x.png +0 -0
- package/src/message-card/__tests__/index.d.ts +23 -0
- package/src/message-card/__tests__/message-card-image-positions.scenario.tsx +331 -0
- package/src/message-card/__tests__/message-card-sizes.scenario.tsx +267 -0
- package/src/message-card/__tests__/message-card-trailing-image.scenario.tsx +221 -0
- package/src/message-card/__tests__/message-card.e2e.ts +25 -0
- package/src/message-card/__tests__/message-card.scenario.tsx +181 -0
- package/src/message-card/__tests__/message-card.stories.tsx +16 -0
- package/src/message-card/__tests__/venice.jpg +0 -0
- package/src/message-card/constants.ts +22 -0
- package/src/message-card/index.ts +10 -0
- package/src/message-card/message-card.tsx +186 -0
- package/src/message-card/styled-components.ts +131 -0
- package/src/message-card/types.ts +37 -0
- package/src/message-card/utils.ts +173 -0
- package/src/mobile-header/__tests__/map-san-francisco.png +0 -0
- package/src/mobile-header/__tests__/mobile-header-fixed.scenario.tsx +239 -0
- package/src/mobile-header/__tests__/mobile-header-floating.scenario.tsx +152 -0
- package/src/mobile-header/__tests__/mobile-header.e2e.ts +24 -0
- package/src/mobile-header/__tests__/mobile-header.stories.tsx +12 -0
- package/src/mobile-header/constants.ts +9 -0
- package/src/mobile-header/index.ts +9 -0
- package/src/mobile-header/mobile-header.tsx +141 -0
- package/src/mobile-header/styled-components.ts +66 -0
- package/src/mobile-header/types.ts +38 -0
- package/src/modal/__tests__/modal-rtl.scenario.tsx +19 -0
- package/src/modal/__tests__/modal-select.scenario.tsx +41 -0
- package/src/modal/__tests__/modal-uncloseable.scenario.tsx +13 -0
- package/src/modal/__tests__/modal.e2e.ts +131 -0
- package/src/modal/__tests__/modal.scenario.tsx +51 -0
- package/src/modal/__tests__/modal.stories.tsx +14 -0
- package/src/modal/__tests__/modal.test.tsx +133 -0
- package/src/modal/close-icon.tsx +22 -0
- package/src/modal/constants.ts +28 -0
- package/src/modal/focus-once.ts +22 -0
- package/src/modal/index.ts +21 -0
- package/src/modal/locale.ts +15 -0
- package/src/modal/modal-button.tsx +35 -0
- package/src/modal/modal.tsx +327 -0
- package/src/modal/styled-components.ts +208 -0
- package/src/modal/types.ts +87 -0
- package/src/notification/__tests__/notification.scenario.tsx +31 -0
- package/src/notification/__tests__/notification.stories.tsx +10 -0
- package/src/notification/__tests__/notification.test.tsx +18 -0
- package/src/notification/index.ts +8 -0
- package/src/notification/notification.tsx +35 -0
- package/src/overrides.ts +10 -0
- package/src/page-control/constants.ts +18 -0
- package/src/page-control/index.ts +9 -0
- package/src/page-control/page-control.tsx +106 -0
- package/src/page-control/styled-components.ts +102 -0
- package/src/page-control/types.ts +26 -0
- package/src/pagination/__tests__/pagination-rtl.scenario.tsx +19 -0
- package/src/pagination/__tests__/pagination.e2e.ts +44 -0
- package/src/pagination/__tests__/pagination.scenario.tsx +50 -0
- package/src/pagination/__tests__/pagination.stories.tsx +10 -0
- package/src/pagination/__tests__/pagination.test.tsx +72 -0
- package/src/pagination/__tests__/stateful-container.test.tsx +78 -0
- package/src/pagination/__tests__/utils.test.ts +16 -0
- package/src/pagination/constants.ts +10 -0
- package/src/pagination/index.ts +23 -0
- package/src/pagination/locale.ts +19 -0
- package/src/pagination/pagination.tsx +256 -0
- package/src/pagination/stateful-container.ts +60 -0
- package/src/pagination/stateful-pagination.tsx +40 -0
- package/src/pagination/styled-components.ts +45 -0
- package/src/pagination/types.ts +84 -0
- package/src/pagination/utils.ts +10 -0
- package/src/payment-card/__tests__/payment-card-rtl.scenario.tsx +19 -0
- package/src/payment-card/__tests__/payment-card.e2e.ts +64 -0
- package/src/payment-card/__tests__/payment-card.scenario.tsx +35 -0
- package/src/payment-card/__tests__/payment-card.stories.tsx +12 -0
- package/src/payment-card/__tests__/payment-card.test.ts +35 -0
- package/src/payment-card/__tests__/stateful-payment-card.scenario.tsx +12 -0
- package/src/payment-card/custom-cards.config.ts +24 -0
- package/src/payment-card/icons/amex.tsx +45 -0
- package/src/payment-card/icons/dinersclub.tsx +29 -0
- package/src/payment-card/icons/discover.tsx +60 -0
- package/src/payment-card/icons/elo.tsx +59 -0
- package/src/payment-card/icons/generic.tsx +26 -0
- package/src/payment-card/icons/jcb.tsx +35 -0
- package/src/payment-card/icons/maestro.tsx +29 -0
- package/src/payment-card/icons/mastercard.tsx +33 -0
- package/src/payment-card/icons/uatp.tsx +56 -0
- package/src/payment-card/icons/unionpay.tsx +85 -0
- package/src/payment-card/icons/visa.tsx +27 -0
- package/src/payment-card/index.ts +14 -0
- package/src/payment-card/payment-card.tsx +158 -0
- package/src/payment-card/stateful-payment-card.tsx +19 -0
- package/src/payment-card/styled-components.ts +30 -0
- package/src/payment-card/types.ts +20 -0
- package/src/payment-card/utils.ts +51 -0
- package/src/phone-input/README.md +252 -0
- package/src/phone-input/__tests__/country-select-dropdown.scenario.tsx +25 -0
- package/src/phone-input/__tests__/country-select-small-dropdown.scenario.tsx +12 -0
- package/src/phone-input/__tests__/phone-input-custom-flags.scenario.tsx +40 -0
- package/src/phone-input/__tests__/phone-input-dropdown.e2e.ts +63 -0
- package/src/phone-input/__tests__/phone-input-dropdown.scenario.tsx +28 -0
- package/src/phone-input/__tests__/phone-input-lite.scenario.tsx +59 -0
- package/src/phone-input/__tests__/phone-input-overrides.scenario.tsx +41 -0
- package/src/phone-input/__tests__/phone-input-rtl.scenario.tsx +19 -0
- package/src/phone-input/__tests__/phone-input.e2e.ts +98 -0
- package/src/phone-input/__tests__/phone-input.scenario.tsx +40 -0
- package/src/phone-input/__tests__/phone-input.stories.tsx +22 -0
- package/src/phone-input/__tests__/phone-input.test.tsx +17 -0
- package/src/phone-input/base-country-picker.tsx +243 -0
- package/src/phone-input/constants.ts +320 -0
- package/src/phone-input/country-picker.tsx +117 -0
- package/src/phone-input/country-select-dropdown.tsx +146 -0
- package/src/phone-input/country-select.tsx +90 -0
- package/src/phone-input/default-props.ts +35 -0
- package/src/phone-input/flag.tsx +46 -0
- package/src/phone-input/flags/FlagAD.tsx +20 -0
- package/src/phone-input/flags/FlagAE.tsx +20 -0
- package/src/phone-input/flags/FlagAF.tsx +20 -0
- package/src/phone-input/flags/FlagAG.tsx +20 -0
- package/src/phone-input/flags/FlagAI.tsx +20 -0
- package/src/phone-input/flags/FlagAL.tsx +20 -0
- package/src/phone-input/flags/FlagAM.tsx +20 -0
- package/src/phone-input/flags/FlagAO.tsx +20 -0
- package/src/phone-input/flags/FlagAR.tsx +20 -0
- package/src/phone-input/flags/FlagAS.tsx +20 -0
- package/src/phone-input/flags/FlagAT.tsx +20 -0
- package/src/phone-input/flags/FlagAU.tsx +20 -0
- package/src/phone-input/flags/FlagAW.tsx +20 -0
- package/src/phone-input/flags/FlagAX.tsx +20 -0
- package/src/phone-input/flags/FlagAZ.tsx +20 -0
- package/src/phone-input/flags/FlagBA.tsx +20 -0
- package/src/phone-input/flags/FlagBB.tsx +20 -0
- package/src/phone-input/flags/FlagBD.tsx +20 -0
- package/src/phone-input/flags/FlagBE.tsx +20 -0
- package/src/phone-input/flags/FlagBF.tsx +20 -0
- package/src/phone-input/flags/FlagBG.tsx +20 -0
- package/src/phone-input/flags/FlagBH.tsx +20 -0
- package/src/phone-input/flags/FlagBI.tsx +20 -0
- package/src/phone-input/flags/FlagBJ.tsx +20 -0
- package/src/phone-input/flags/FlagBL.tsx +20 -0
- package/src/phone-input/flags/FlagBM.tsx +20 -0
- package/src/phone-input/flags/FlagBN.tsx +20 -0
- package/src/phone-input/flags/FlagBO.tsx +20 -0
- package/src/phone-input/flags/FlagBR.tsx +20 -0
- package/src/phone-input/flags/FlagBS.tsx +20 -0
- package/src/phone-input/flags/FlagBT.tsx +20 -0
- package/src/phone-input/flags/FlagBV.tsx +20 -0
- package/src/phone-input/flags/FlagBW.tsx +20 -0
- package/src/phone-input/flags/FlagBY.tsx +20 -0
- package/src/phone-input/flags/FlagBZ.tsx +20 -0
- package/src/phone-input/flags/FlagCA.tsx +20 -0
- package/src/phone-input/flags/FlagCC.tsx +20 -0
- package/src/phone-input/flags/FlagCD.tsx +20 -0
- package/src/phone-input/flags/FlagCF.tsx +20 -0
- package/src/phone-input/flags/FlagCG.tsx +20 -0
- package/src/phone-input/flags/FlagCH.tsx +20 -0
- package/src/phone-input/flags/FlagCI.tsx +20 -0
- package/src/phone-input/flags/FlagCK.tsx +20 -0
- package/src/phone-input/flags/FlagCL.tsx +20 -0
- package/src/phone-input/flags/FlagCM.tsx +20 -0
- package/src/phone-input/flags/FlagCN.tsx +20 -0
- package/src/phone-input/flags/FlagCO.tsx +20 -0
- package/src/phone-input/flags/FlagCR.tsx +20 -0
- package/src/phone-input/flags/FlagCU.tsx +20 -0
- package/src/phone-input/flags/FlagCV.tsx +20 -0
- package/src/phone-input/flags/FlagCW.tsx +20 -0
- package/src/phone-input/flags/FlagCX.tsx +20 -0
- package/src/phone-input/flags/FlagCY.tsx +20 -0
- package/src/phone-input/flags/FlagCZ.tsx +20 -0
- package/src/phone-input/flags/FlagDE.tsx +20 -0
- package/src/phone-input/flags/FlagDJ.tsx +20 -0
- package/src/phone-input/flags/FlagDK.tsx +20 -0
- package/src/phone-input/flags/FlagDM.tsx +20 -0
- package/src/phone-input/flags/FlagDO.tsx +20 -0
- package/src/phone-input/flags/FlagDZ.tsx +20 -0
- package/src/phone-input/flags/FlagEC.tsx +20 -0
- package/src/phone-input/flags/FlagEE.tsx +20 -0
- package/src/phone-input/flags/FlagEG.tsx +20 -0
- package/src/phone-input/flags/FlagER.tsx +20 -0
- package/src/phone-input/flags/FlagES.tsx +20 -0
- package/src/phone-input/flags/FlagET.tsx +20 -0
- package/src/phone-input/flags/FlagEU.tsx +20 -0
- package/src/phone-input/flags/FlagFI.tsx +20 -0
- package/src/phone-input/flags/FlagFJ.tsx +20 -0
- package/src/phone-input/flags/FlagFK.tsx +20 -0
- package/src/phone-input/flags/FlagFM.tsx +20 -0
- package/src/phone-input/flags/FlagFO.tsx +20 -0
- package/src/phone-input/flags/FlagFR.tsx +20 -0
- package/src/phone-input/flags/FlagGA.tsx +20 -0
- package/src/phone-input/flags/FlagGB.tsx +20 -0
- package/src/phone-input/flags/FlagGD.tsx +20 -0
- package/src/phone-input/flags/FlagGE.tsx +20 -0
- package/src/phone-input/flags/FlagGF.tsx +20 -0
- package/src/phone-input/flags/FlagGG.tsx +20 -0
- package/src/phone-input/flags/FlagGH.tsx +20 -0
- package/src/phone-input/flags/FlagGI.tsx +20 -0
- package/src/phone-input/flags/FlagGL.tsx +20 -0
- package/src/phone-input/flags/FlagGM.tsx +20 -0
- package/src/phone-input/flags/FlagGN.tsx +20 -0
- package/src/phone-input/flags/FlagGP.tsx +20 -0
- package/src/phone-input/flags/FlagGQ.tsx +20 -0
- package/src/phone-input/flags/FlagGR.tsx +20 -0
- package/src/phone-input/flags/FlagGS.tsx +20 -0
- package/src/phone-input/flags/FlagGT.tsx +20 -0
- package/src/phone-input/flags/FlagGU.tsx +20 -0
- package/src/phone-input/flags/FlagGW.tsx +20 -0
- package/src/phone-input/flags/FlagGY.tsx +20 -0
- package/src/phone-input/flags/FlagHK.tsx +20 -0
- package/src/phone-input/flags/FlagHM.tsx +20 -0
- package/src/phone-input/flags/FlagHN.tsx +20 -0
- package/src/phone-input/flags/FlagHR.tsx +20 -0
- package/src/phone-input/flags/FlagHT.tsx +20 -0
- package/src/phone-input/flags/FlagHU.tsx +20 -0
- package/src/phone-input/flags/FlagID.tsx +20 -0
- package/src/phone-input/flags/FlagIE.tsx +20 -0
- package/src/phone-input/flags/FlagIL.tsx +20 -0
- package/src/phone-input/flags/FlagIM.tsx +20 -0
- package/src/phone-input/flags/FlagIN.tsx +20 -0
- package/src/phone-input/flags/FlagIO.tsx +20 -0
- package/src/phone-input/flags/FlagIQ.tsx +20 -0
- package/src/phone-input/flags/FlagIR.tsx +20 -0
- package/src/phone-input/flags/FlagIS.tsx +20 -0
- package/src/phone-input/flags/FlagIT.tsx +20 -0
- package/src/phone-input/flags/FlagJE.tsx +20 -0
- package/src/phone-input/flags/FlagJM.tsx +20 -0
- package/src/phone-input/flags/FlagJO.tsx +20 -0
- package/src/phone-input/flags/FlagJP.tsx +20 -0
- package/src/phone-input/flags/FlagKE.tsx +20 -0
- package/src/phone-input/flags/FlagKG.tsx +20 -0
- package/src/phone-input/flags/FlagKH.tsx +20 -0
- package/src/phone-input/flags/FlagKI.tsx +20 -0
- package/src/phone-input/flags/FlagKM.tsx +20 -0
- package/src/phone-input/flags/FlagKN.tsx +20 -0
- package/src/phone-input/flags/FlagKP.tsx +20 -0
- package/src/phone-input/flags/FlagKR.tsx +20 -0
- package/src/phone-input/flags/FlagKW.tsx +20 -0
- package/src/phone-input/flags/FlagKY.tsx +20 -0
- package/src/phone-input/flags/FlagKZ.tsx +20 -0
- package/src/phone-input/flags/FlagLA.tsx +20 -0
- package/src/phone-input/flags/FlagLB.tsx +20 -0
- package/src/phone-input/flags/FlagLC.tsx +20 -0
- package/src/phone-input/flags/FlagLI.tsx +20 -0
- package/src/phone-input/flags/FlagLK.tsx +20 -0
- package/src/phone-input/flags/FlagLR.tsx +20 -0
- package/src/phone-input/flags/FlagLS.tsx +20 -0
- package/src/phone-input/flags/FlagLT.tsx +20 -0
- package/src/phone-input/flags/FlagLU.tsx +20 -0
- package/src/phone-input/flags/FlagLV.tsx +20 -0
- package/src/phone-input/flags/FlagLY.tsx +20 -0
- package/src/phone-input/flags/FlagMA.tsx +20 -0
- package/src/phone-input/flags/FlagMC.tsx +20 -0
- package/src/phone-input/flags/FlagMD.tsx +20 -0
- package/src/phone-input/flags/FlagME.tsx +20 -0
- package/src/phone-input/flags/FlagMF.tsx +20 -0
- package/src/phone-input/flags/FlagMG.tsx +20 -0
- package/src/phone-input/flags/FlagMH.tsx +20 -0
- package/src/phone-input/flags/FlagMK.tsx +20 -0
- package/src/phone-input/flags/FlagML.tsx +20 -0
- package/src/phone-input/flags/FlagMM.tsx +20 -0
- package/src/phone-input/flags/FlagMN.tsx +20 -0
- package/src/phone-input/flags/FlagMO.tsx +20 -0
- package/src/phone-input/flags/FlagMP.tsx +20 -0
- package/src/phone-input/flags/FlagMQ.tsx +20 -0
- package/src/phone-input/flags/FlagMR.tsx +20 -0
- package/src/phone-input/flags/FlagMS.tsx +20 -0
- package/src/phone-input/flags/FlagMT.tsx +20 -0
- package/src/phone-input/flags/FlagMU.tsx +20 -0
- package/src/phone-input/flags/FlagMV.tsx +20 -0
- package/src/phone-input/flags/FlagMW.tsx +20 -0
- package/src/phone-input/flags/FlagMX.tsx +20 -0
- package/src/phone-input/flags/FlagMY.tsx +20 -0
- package/src/phone-input/flags/FlagMZ.tsx +20 -0
- package/src/phone-input/flags/FlagNA.tsx +20 -0
- package/src/phone-input/flags/FlagNC.tsx +20 -0
- package/src/phone-input/flags/FlagNE.tsx +20 -0
- package/src/phone-input/flags/FlagNF.tsx +20 -0
- package/src/phone-input/flags/FlagNG.tsx +20 -0
- package/src/phone-input/flags/FlagNI.tsx +20 -0
- package/src/phone-input/flags/FlagNL.tsx +20 -0
- package/src/phone-input/flags/FlagNO.tsx +20 -0
- package/src/phone-input/flags/FlagNP.tsx +20 -0
- package/src/phone-input/flags/FlagNR.tsx +20 -0
- package/src/phone-input/flags/FlagNU.tsx +20 -0
- package/src/phone-input/flags/FlagNZ.tsx +20 -0
- package/src/phone-input/flags/FlagOM.tsx +20 -0
- package/src/phone-input/flags/FlagPA.tsx +20 -0
- package/src/phone-input/flags/FlagPE.tsx +20 -0
- package/src/phone-input/flags/FlagPF.tsx +20 -0
- package/src/phone-input/flags/FlagPG.tsx +20 -0
- package/src/phone-input/flags/FlagPH.tsx +20 -0
- package/src/phone-input/flags/FlagPK.tsx +20 -0
- package/src/phone-input/flags/FlagPL.tsx +20 -0
- package/src/phone-input/flags/FlagPM.tsx +20 -0
- package/src/phone-input/flags/FlagPN.tsx +20 -0
- package/src/phone-input/flags/FlagPR.tsx +20 -0
- package/src/phone-input/flags/FlagPS.tsx +20 -0
- package/src/phone-input/flags/FlagPT.tsx +20 -0
- package/src/phone-input/flags/FlagPW.tsx +20 -0
- package/src/phone-input/flags/FlagPY.tsx +20 -0
- package/src/phone-input/flags/FlagQA.tsx +20 -0
- package/src/phone-input/flags/FlagRE.tsx +20 -0
- package/src/phone-input/flags/FlagRO.tsx +20 -0
- package/src/phone-input/flags/FlagRS.tsx +20 -0
- package/src/phone-input/flags/FlagRU.tsx +20 -0
- package/src/phone-input/flags/FlagRW.tsx +20 -0
- package/src/phone-input/flags/FlagSA.tsx +20 -0
- package/src/phone-input/flags/FlagSB.tsx +20 -0
- package/src/phone-input/flags/FlagSC.tsx +20 -0
- package/src/phone-input/flags/FlagSD.tsx +20 -0
- package/src/phone-input/flags/FlagSE.tsx +20 -0
- package/src/phone-input/flags/FlagSG.tsx +20 -0
- package/src/phone-input/flags/FlagSH.tsx +20 -0
- package/src/phone-input/flags/FlagSI.tsx +20 -0
- package/src/phone-input/flags/FlagSJ.tsx +20 -0
- package/src/phone-input/flags/FlagSK.tsx +20 -0
- package/src/phone-input/flags/FlagSL.tsx +20 -0
- package/src/phone-input/flags/FlagSM.tsx +20 -0
- package/src/phone-input/flags/FlagSN.tsx +20 -0
- package/src/phone-input/flags/FlagSO.tsx +20 -0
- package/src/phone-input/flags/FlagSR.tsx +20 -0
- package/src/phone-input/flags/FlagSS.tsx +20 -0
- package/src/phone-input/flags/FlagST.tsx +20 -0
- package/src/phone-input/flags/FlagSV.tsx +20 -0
- package/src/phone-input/flags/FlagSX.tsx +20 -0
- package/src/phone-input/flags/FlagSY.tsx +20 -0
- package/src/phone-input/flags/FlagSZ.tsx +20 -0
- package/src/phone-input/flags/FlagTC.tsx +20 -0
- package/src/phone-input/flags/FlagTD.tsx +20 -0
- package/src/phone-input/flags/FlagTF.tsx +20 -0
- package/src/phone-input/flags/FlagTG.tsx +20 -0
- package/src/phone-input/flags/FlagTH.tsx +20 -0
- package/src/phone-input/flags/FlagTJ.tsx +20 -0
- package/src/phone-input/flags/FlagTK.tsx +20 -0
- package/src/phone-input/flags/FlagTL.tsx +20 -0
- package/src/phone-input/flags/FlagTM.tsx +20 -0
- package/src/phone-input/flags/FlagTN.tsx +20 -0
- package/src/phone-input/flags/FlagTO.tsx +20 -0
- package/src/phone-input/flags/FlagTR.tsx +20 -0
- package/src/phone-input/flags/FlagTT.tsx +20 -0
- package/src/phone-input/flags/FlagTV.tsx +20 -0
- package/src/phone-input/flags/FlagTW.tsx +20 -0
- package/src/phone-input/flags/FlagTZ.tsx +20 -0
- package/src/phone-input/flags/FlagUA.tsx +20 -0
- package/src/phone-input/flags/FlagUG.tsx +20 -0
- package/src/phone-input/flags/FlagUM.tsx +20 -0
- package/src/phone-input/flags/FlagUS.tsx +20 -0
- package/src/phone-input/flags/FlagUY.tsx +20 -0
- package/src/phone-input/flags/FlagUZ.tsx +20 -0
- package/src/phone-input/flags/FlagVA.tsx +20 -0
- package/src/phone-input/flags/FlagVC.tsx +20 -0
- package/src/phone-input/flags/FlagVE.tsx +20 -0
- package/src/phone-input/flags/FlagVG.tsx +20 -0
- package/src/phone-input/flags/FlagVI.tsx +20 -0
- package/src/phone-input/flags/FlagVN.tsx +20 -0
- package/src/phone-input/flags/FlagVU.tsx +20 -0
- package/src/phone-input/flags/FlagWF.tsx +20 -0
- package/src/phone-input/flags/FlagWS.tsx +20 -0
- package/src/phone-input/flags/FlagXK.tsx +20 -0
- package/src/phone-input/flags/FlagYE.tsx +20 -0
- package/src/phone-input/flags/FlagYT.tsx +20 -0
- package/src/phone-input/flags/FlagZA.tsx +20 -0
- package/src/phone-input/flags/FlagZM.tsx +20 -0
- package/src/phone-input/flags/FlagZW.tsx +20 -0
- package/src/phone-input/flags/index.ts +250 -0
- package/src/phone-input/index.ts +15 -0
- package/src/phone-input/phone-input-lite.tsx +116 -0
- package/src/phone-input/phone-input-next.tsx +120 -0
- package/src/phone-input/phone-input.tsx +17 -0
- package/src/phone-input/stateful-phone-input-container.ts +83 -0
- package/src/phone-input/stateful-phone-input-next.tsx +21 -0
- package/src/phone-input/stateful-phone-input.tsx +21 -0
- package/src/phone-input/styled-components.tsx +164 -0
- package/src/phone-input/types.ts +160 -0
- package/src/phone-input/utils.ts +26 -0
- package/src/pin-code/__tests__/pin-code-mask.scenario.tsx +20 -0
- package/src/pin-code/__tests__/pin-code-overrides.scenario.tsx +47 -0
- package/src/pin-code/__tests__/pin-code-sizes.scenario.tsx +21 -0
- package/src/pin-code/__tests__/pin-code-states.scenario.tsx +22 -0
- package/src/pin-code/__tests__/pin-code.e2e.ts +116 -0
- package/src/pin-code/__tests__/pin-code.scenario.tsx +12 -0
- package/src/pin-code/__tests__/pin-code.stories.tsx +18 -0
- package/src/pin-code/default-props.ts +34 -0
- package/src/pin-code/index.ts +16 -0
- package/src/pin-code/pin-code.tsx +137 -0
- package/src/pin-code/stateful-pin-code-container.ts +61 -0
- package/src/pin-code/stateful-pin-code.tsx +21 -0
- package/src/pin-code/styled-components.ts +43 -0
- package/src/pin-code/types.ts +88 -0
- package/src/popover/__tests__/popover-autofocus.e2e.ts +21 -0
- package/src/popover/__tests__/popover-autofocus.scenario.tsx +27 -0
- package/src/popover/__tests__/popover-click.scenario.tsx +18 -0
- package/src/popover/__tests__/popover-dynamic-triggertype.e2e.ts +36 -0
- package/src/popover/__tests__/popover-dynamic-triggertype.scenario.tsx +40 -0
- package/src/popover/__tests__/popover-focus-loop.e2e.ts +27 -0
- package/src/popover/__tests__/popover-focus-loop.scenario.tsx +36 -0
- package/src/popover/__tests__/popover-hover.scenario.tsx +25 -0
- package/src/popover/__tests__/popover-large-margin.scenario.tsx +43 -0
- package/src/popover/__tests__/popover-position.scenario.tsx +69 -0
- package/src/popover/__tests__/popover-preventScroll-on-focus.e2e.ts +81 -0
- package/src/popover/__tests__/popover-preventScroll-on-focus.scenario.tsx +110 -0
- package/src/popover/__tests__/popover-progress-bar.scenario.tsx +23 -0
- package/src/popover/__tests__/popover-render-all.scenario.tsx +22 -0
- package/src/popover/__tests__/popover-reposition-with-anchor-update.scenario.tsx +32 -0
- package/src/popover/__tests__/popover-reposition.scenario.tsx +51 -0
- package/src/popover/__tests__/popover-scroll.e2e.ts +59 -0
- package/src/popover/__tests__/popover-scroll.scenario.tsx +39 -0
- package/src/popover/__tests__/popover-select.scenario.tsx +44 -0
- package/src/popover/__tests__/popover-unreliable.e2e.ts +69 -0
- package/src/popover/__tests__/popover.e2e.ts +98 -0
- package/src/popover/__tests__/popover.scenario.tsx +18 -0
- package/src/popover/__tests__/popover.stories.tsx +38 -0
- package/src/popover/__tests__/popover.test.tsx +281 -0
- package/src/popover/__tests__/stateful-container.test.tsx +225 -0
- package/src/popover/__tests__/utils.test.ts +150 -0
- package/src/popover/constants.ts +59 -0
- package/src/popover/default-props.ts +27 -0
- package/src/popover/index.ts +28 -0
- package/src/popover/popover.tsx +515 -0
- package/src/popover/stateful-container.ts +223 -0
- package/src/popover/stateful-popover.tsx +38 -0
- package/src/popover/styled-components.ts +140 -0
- package/src/popover/types.ts +201 -0
- package/src/popover/utils.ts +132 -0
- package/src/progress-bar/__tests__/progress-bar.stories.tsx +20 -0
- package/src/progress-bar/__tests__/progressbar-negative.scenario.tsx +22 -0
- package/src/progress-bar/__tests__/progressbar-rounded-animated.scenario.tsx +37 -0
- package/src/progress-bar/__tests__/progressbar-rounded-overrides.scenario.tsx +53 -0
- package/src/progress-bar/__tests__/progressbar-rounded.scenario.tsx +20 -0
- package/src/progress-bar/__tests__/progressbar-rounded.test.tsx +29 -0
- package/src/progress-bar/__tests__/progressbar.e2e.ts +19 -0
- package/src/progress-bar/__tests__/progressbar.scenario.tsx +36 -0
- package/src/progress-bar/__tests__/progressbar.test.tsx +40 -0
- package/src/progress-bar/constants.ts +11 -0
- package/src/progress-bar/index.ts +25 -0
- package/src/progress-bar/progressbar-rounded.tsx +132 -0
- package/src/progress-bar/progressbar.tsx +162 -0
- package/src/progress-bar/styled-components.tsx +384 -0
- package/src/progress-bar/types.ts +80 -0
- package/src/progress-steps/__tests__/numbered-steps-icon-overrides.scenario.tsx +38 -0
- package/src/progress-steps/__tests__/numbered-steps.scenario.tsx +42 -0
- package/src/progress-steps/__tests__/progress-step-overrides.scenario.tsx +31 -0
- package/src/progress-steps/__tests__/progress-steps-isActive.scenario.tsx +26 -0
- package/src/progress-steps/__tests__/progress-steps-number.scenario.tsx +50 -0
- package/src/progress-steps/__tests__/progress-steps-rtl.scenario.tsx +20 -0
- package/src/progress-steps/__tests__/progress-steps.e2e.ts +50 -0
- package/src/progress-steps/__tests__/progress-steps.scenario.tsx +50 -0
- package/src/progress-steps/__tests__/progress-steps.stories.tsx +20 -0
- package/src/progress-steps/__tests__/progress-steps.test.tsx +50 -0
- package/src/progress-steps/constants.ts +10 -0
- package/src/progress-steps/index.ts +13 -0
- package/src/progress-steps/numbered-step.tsx +86 -0
- package/src/progress-steps/progress-steps.tsx +72 -0
- package/src/progress-steps/step.tsx +90 -0
- package/src/progress-steps/styled-components.ts +391 -0
- package/src/progress-steps/types.ts +105 -0
- package/src/radio/__tests__/radio-rtl.scenario.tsx +19 -0
- package/src/radio/__tests__/radio-select.scenario.tsx +33 -0
- package/src/radio/__tests__/radio-states.scenario.tsx +28 -0
- package/src/radio/__tests__/radio.e2e.ts +32 -0
- package/src/radio/__tests__/radio.scenario.tsx +28 -0
- package/src/radio/__tests__/radio.stories.tsx +14 -0
- package/src/radio/__tests__/radio.test.tsx +84 -0
- package/src/radio/__tests__/radiogroup.test.tsx +141 -0
- package/src/radio/__tests__/stateful-radiogroup-container.test.tsx +27 -0
- package/src/radio/__tests__/stateful-radiogroup.test.tsx +32 -0
- package/src/radio/constants.ts +18 -0
- package/src/radio/index.ts +22 -0
- package/src/radio/radio.tsx +177 -0
- package/src/radio/radiogroup.tsx +105 -0
- package/src/radio/stateful-radiogroup-container.ts +67 -0
- package/src/radio/stateful-radiogroup.tsx +26 -0
- package/src/radio/styled-components.ts +258 -0
- package/src/radio/types.ts +196 -0
- package/src/rating/__tests__/emoticon-rating.test.tsx +66 -0
- package/src/rating/__tests__/rating-emoticon.scenario.tsx +14 -0
- package/src/rating/__tests__/rating-size.scenario.tsx +29 -0
- package/src/rating/__tests__/rating-star.scenario.tsx +26 -0
- package/src/rating/__tests__/rating.e2e.ts +46 -0
- package/src/rating/__tests__/rating.stories.tsx +14 -0
- package/src/rating/__tests__/star-rating.test.tsx +69 -0
- package/src/rating/emoticon-rating.tsx +145 -0
- package/src/rating/index.ts +11 -0
- package/src/rating/star-rating.tsx +146 -0
- package/src/rating/styled-components.ts +154 -0
- package/src/rating/svg-icons.ts +72 -0
- package/src/rating/types.ts +55 -0
- package/src/rating/utils.ts +11 -0
- package/src/segmented-control/__tests__/segmented-control.test.tsx +47 -0
- package/src/segmented-control/constants.ts +15 -0
- package/src/segmented-control/index.ts +27 -0
- package/src/segmented-control/segment.ts +13 -0
- package/src/segmented-control/segmented-control.tsx +445 -0
- package/src/segmented-control/stateful-segmented-control.tsx +61 -0
- package/src/segmented-control/styled-components.ts +252 -0
- package/src/segmented-control/types.ts +82 -0
- package/src/segmented-control/utils.ts +18 -0
- package/src/select/__tests__/autosize-input.test.tsx +22 -0
- package/src/select/__tests__/dropdown.test.tsx +88 -0
- package/src/select/__tests__/multi-value.test.tsx +45 -0
- package/src/select/__tests__/select-async-options.scenario.tsx +41 -0
- package/src/select/__tests__/select-backspace-behavior.e2e.ts +39 -0
- package/src/select/__tests__/select-backspace-behavior.scenario.tsx +60 -0
- package/src/select/__tests__/select-calls-provided-blur.e2e.ts +47 -0
- package/src/select/__tests__/select-calls-provided-blur.scenario.tsx +29 -0
- package/src/select/__tests__/select-click-maintains-focus.e2e.ts +38 -0
- package/src/select/__tests__/select-click-maintains-focus.scenario.tsx +26 -0
- package/src/select/__tests__/select-click-triggers-blur.scenario.tsx +47 -0
- package/src/select/__tests__/select-controlref-set-dropdown-open.scenario.tsx +57 -0
- package/src/select/__tests__/select-controlref-set-input-value.scenario.tsx +59 -0
- package/src/select/__tests__/select-controlref.e2e.ts +98 -0
- package/src/select/__tests__/select-controlref.test.tsx +156 -0
- package/src/select/__tests__/select-creatable-multi.scenario.tsx +22 -0
- package/src/select/__tests__/select-creatable.scenario.tsx +29 -0
- package/src/select/__tests__/select-disable-href-anchor.scenario.tsx +25 -0
- package/src/select/__tests__/select-form-control-label-click.e2e.ts +184 -0
- package/src/select/__tests__/select-highlight.scenario.tsx +29 -0
- package/src/select/__tests__/select-icon-overrides.scenario.tsx +87 -0
- package/src/select/__tests__/select-in-flex-container.scenario.tsx +59 -0
- package/src/select/__tests__/select-in-modal.scenario.tsx +63 -0
- package/src/select/__tests__/select-input-ref.e2e.ts +22 -0
- package/src/select/__tests__/select-input-ref.scenario.tsx +42 -0
- package/src/select/__tests__/select-maintains-input-value.e2e.ts +65 -0
- package/src/select/__tests__/select-maintains-input-value.scenario.tsx +98 -0
- package/src/select/__tests__/select-many-options.scenario.tsx +92 -0
- package/src/select/__tests__/select-open.scenario.tsx +35 -0
- package/src/select/__tests__/select-option-group.scenario.tsx +36 -0
- package/src/select/__tests__/select-overridden-icon-container.e2e.ts +26 -0
- package/src/select/__tests__/select-overridden-icon-container.scenario.tsx +63 -0
- package/src/select/__tests__/select-overridden-menu.scenario.tsx +42 -0
- package/src/select/__tests__/select-rtl.scenario.tsx +19 -0
- package/src/select/__tests__/select-search-multi.scenario.tsx +32 -0
- package/src/select/__tests__/select-search-single-fontsize.scenario.tsx +44 -0
- package/src/select/__tests__/select-search-single.scenario.tsx +32 -0
- package/src/select/__tests__/select-searchable-form-control.scenario.tsx +103 -0
- package/src/select/__tests__/select-sizes-selected-value.scenario.tsx +37 -0
- package/src/select/__tests__/select-sizes.scenario.tsx +80 -0
- package/src/select/__tests__/select-states.scenario.tsx +98 -0
- package/src/select/__tests__/select-unmount-blur.e2e.ts +31 -0
- package/src/select/__tests__/select-unmount-blur.scenario.tsx +46 -0
- package/src/select/__tests__/select.e2e.ts +289 -0
- package/src/select/__tests__/select.scenario.tsx +99 -0
- package/src/select/__tests__/select.stories.tsx +68 -0
- package/src/select/__tests__/select.test.tsx +129 -0
- package/src/select/__tests__/stateful-select-container.test.tsx +57 -0
- package/src/select/__tests__/stateful-select.test.tsx +63 -0
- package/src/select/__tests__/value.test.tsx +27 -0
- package/src/select/autosize-input.tsx +87 -0
- package/src/select/constants.ts +18 -0
- package/src/select/default-props.ts +65 -0
- package/src/select/dropdown.tsx +203 -0
- package/src/select/index.ts +44 -0
- package/src/select/locale.ts +21 -0
- package/src/select/multi-select.tsx +16 -0
- package/src/select/multi-value.tsx +37 -0
- package/src/select/select-component.tsx +1118 -0
- package/src/select/select.tsx +16 -0
- package/src/select/single-select.tsx +16 -0
- package/src/select/stateful-select-container.ts +53 -0
- package/src/select/stateful-select.tsx +21 -0
- package/src/select/styled-components.ts +515 -0
- package/src/select/types.ts +315 -0
- package/src/select/utils/default-filter-options.ts +90 -0
- package/src/select/utils/index.ts +47 -0
- package/src/select/value.tsx +20 -0
- package/src/sheet/action-button.tsx +47 -0
- package/src/sheet/index.ts +9 -0
- package/src/sheet/sheet.tsx +163 -0
- package/src/sheet/styled-components.ts +182 -0
- package/src/sheet/types.ts +46 -0
- package/src/side-navigation/README.md +38 -0
- package/src/side-navigation/__tests__/nav-long.scenario.tsx +80 -0
- package/src/side-navigation/__tests__/nav-rtl.scenario.tsx +19 -0
- package/src/side-navigation/__tests__/nav.e2e.ts +28 -0
- package/src/side-navigation/__tests__/nav.scenario.tsx +42 -0
- package/src/side-navigation/__tests__/nav.test.tsx +66 -0
- package/src/side-navigation/__tests__/side-navigation.stories.tsx +12 -0
- package/src/side-navigation/__tests__/stateful-container.test.tsx +27 -0
- package/src/side-navigation/__tests__/stateful-nav.test.tsx +49 -0
- package/src/side-navigation/constants.ts +9 -0
- package/src/side-navigation/index.ts +16 -0
- package/src/side-navigation/nav-item.tsx +78 -0
- package/src/side-navigation/nav.tsx +128 -0
- package/src/side-navigation/side-navigation-next.tsx +346 -0
- package/src/side-navigation/stateful-container.ts +58 -0
- package/src/side-navigation/stateful-nav.tsx +18 -0
- package/src/side-navigation/styled-components.tsx +135 -0
- package/src/side-navigation/types.ts +103 -0
- package/src/skeleton/__tests__/adorable.png +0 -0
- package/src/skeleton/__tests__/skeleton-animation.scenario.tsx +59 -0
- package/src/skeleton/__tests__/skeleton-loading.scenario.tsx +101 -0
- package/src/skeleton/__tests__/skeleton.e2e.ts +37 -0
- package/src/skeleton/__tests__/skeleton.scenario.tsx +57 -0
- package/src/skeleton/__tests__/skeleton.stories.tsx +14 -0
- package/src/skeleton/index.ts +11 -0
- package/src/skeleton/skeleton.tsx +60 -0
- package/src/skeleton/styled-components.ts +92 -0
- package/src/skeleton/types.ts +26 -0
- package/src/slider/__tests__/slider-always-show-label.scenario.tsx +72 -0
- package/src/slider/__tests__/slider-custom-label.scenario.tsx +44 -0
- package/src/slider/__tests__/slider-disabled.scenario.tsx +24 -0
- package/src/slider/__tests__/slider-marks.scenario.tsx +24 -0
- package/src/slider/__tests__/slider-range.scenario.tsx +24 -0
- package/src/slider/__tests__/slider-rtl.scenario.tsx +19 -0
- package/src/slider/__tests__/slider-select-dropdown.scenario.tsx +36 -0
- package/src/slider/__tests__/slider-step.scenario.tsx +24 -0
- package/src/slider/__tests__/slider.e2e.ts +24 -0
- package/src/slider/__tests__/slider.scenario.tsx +22 -0
- package/src/slider/__tests__/slider.stories.tsx +26 -0
- package/src/slider/__tests__/stateful-slider-container.test.tsx +40 -0
- package/src/slider/constants.ts +11 -0
- package/src/slider/index.ts +27 -0
- package/src/slider/slider.tsx +206 -0
- package/src/slider/stateful-slider-container.ts +68 -0
- package/src/slider/stateful-slider.tsx +18 -0
- package/src/slider/styled-components.ts +180 -0
- package/src/slider/types.ts +88 -0
- package/src/snackbar/__tests__/snackbar-async.scenario.tsx +46 -0
- package/src/snackbar/__tests__/snackbar-element-overrides.scenario.tsx +61 -0
- package/src/snackbar/__tests__/snackbar-element-rtl.scenario.tsx +20 -0
- package/src/snackbar/__tests__/snackbar-element.scenario.tsx +86 -0
- package/src/snackbar/__tests__/snackbar-element.test.tsx +19 -0
- package/src/snackbar/__tests__/snackbar-placement.scenario.tsx +70 -0
- package/src/snackbar/__tests__/snackbar-provider-overrides.scenario.tsx +70 -0
- package/src/snackbar/__tests__/snackbar-provider.scenario.tsx +50 -0
- package/src/snackbar/__tests__/snackbar.e2e.ts +107 -0
- package/src/snackbar/__tests__/snackbar.stories.tsx +20 -0
- package/src/snackbar/__tests__/use-snackbar.test.tsx +40 -0
- package/src/snackbar/constants.ts +22 -0
- package/src/snackbar/index.ts +40 -0
- package/src/snackbar/snackbar-context.tsx +240 -0
- package/src/snackbar/snackbar-element.tsx +201 -0
- package/src/snackbar/styled-components.ts +185 -0
- package/src/snackbar/types.ts +65 -0
- package/src/spinner/__tests__/spinner.scenario.tsx +42 -0
- package/src/spinner/__tests__/spinner.stories.tsx +10 -0
- package/src/spinner/constants.ts +11 -0
- package/src/spinner/index.tsx +22 -0
- package/src/spinner/styled-components.ts +77 -0
- package/src/spinner/types.ts +19 -0
- package/src/stepper/__tests__/stepper.e2e.ts +18 -0
- package/src/stepper/__tests__/stepper.scenario.tsx +20 -0
- package/src/stepper/__tests__/stepper.stories.tsx +10 -0
- package/src/stepper/index.ts +8 -0
- package/src/stepper/stepper.tsx +113 -0
- package/src/stepper/styled-components.ts +17 -0
- package/src/stepper/types.ts +25 -0
- package/src/styles/__mocks__/as-primary-export-hoc.ts +10 -0
- package/src/styles/__mocks__/styled.tsx +119 -0
- package/src/styles/__tests__/styled.test.tsx +396 -0
- package/src/styles/__tests__/util.test.ts +31 -0
- package/src/styles/as-primary-export-hoc.tsx +25 -0
- package/src/styles/index.ts +21 -0
- package/src/styles/styled.tsx +128 -0
- package/src/styles/theme-provider.tsx +20 -0
- package/src/styles/types.ts +117 -0
- package/src/styles/util.ts +46 -0
- package/src/switch/__tests__/stateful-switch.browser.test.tsx +84 -0
- package/src/switch/__tests__/switch-auto-focus.scenario.tsx +24 -0
- package/src/switch/__tests__/switch-disabled.scenario.tsx +46 -0
- package/src/switch/__tests__/switch-placement.scenario.tsx +47 -0
- package/src/switch/__tests__/switch-sizes.scenario.tsx +37 -0
- package/src/switch/__tests__/switch-states.scenario.tsx +33 -0
- package/src/switch/__tests__/switch-unlabeled.scenario.tsx +25 -0
- package/src/switch/__tests__/switch.browser.test.tsx +73 -0
- package/src/switch/__tests__/switch.scenario.tsx +32 -0
- package/src/switch/__tests__/switch.stories.tsx +29 -0
- package/src/switch/constants.ts +20 -0
- package/src/switch/index.ts +22 -0
- package/src/switch/stateful-switch-container.ts +131 -0
- package/src/switch/stateful-switch.tsx +24 -0
- package/src/switch/styled-components.ts +247 -0
- package/src/switch/switch.tsx +257 -0
- package/src/switch/types.ts +166 -0
- package/src/system-banner/__tests__/system-banner.test.tsx +51 -0
- package/src/system-banner/index.ts +9 -0
- package/src/system-banner/styled-components.ts +88 -0
- package/src/system-banner/system-banner.tsx +80 -0
- package/src/system-banner/types.ts +24 -0
- package/src/table/__tests__/filter.test.tsx +105 -0
- package/src/table/__tests__/sortable-head-cell.test.tsx +58 -0
- package/src/table/__tests__/table-borderless.scenario.tsx +65 -0
- package/src/table/__tests__/table-cells.scenario.tsx +365 -0
- package/src/table/__tests__/table-few-rows.scenario.tsx +20 -0
- package/src/table/__tests__/table-filter.scenario.tsx +117 -0
- package/src/table/__tests__/table-pagination.scenario.tsx +107 -0
- package/src/table/__tests__/table-rtl.scenario.tsx +23 -0
- package/src/table/__tests__/table-scroll.scenario.tsx +28 -0
- package/src/table/__tests__/table-sortable-fill-click.scenario.tsx +131 -0
- package/src/table/__tests__/table-sortable.scenario.tsx +127 -0
- package/src/table/__tests__/table.e2e.ts +18 -0
- package/src/table/__tests__/table.stories.tsx +24 -0
- package/src/table/__tests__/table.test.tsx +56 -0
- package/src/table/constants.ts +10 -0
- package/src/table/filter.tsx +89 -0
- package/src/table/index.ts +36 -0
- package/src/table/sortable-head-cell.tsx +77 -0
- package/src/table/styled-components.tsx +286 -0
- package/src/table/table.tsx +70 -0
- package/src/table/types.ts +76 -0
- package/src/table-grid/__tests__/shared.ts +135 -0
- package/src/table-grid/__tests__/table-grid-jobs.scenario.tsx +285 -0
- package/src/table-grid/__tests__/table-grid-records.scenario.tsx +113 -0
- package/src/table-grid/__tests__/table-grid-sortable.scenario.tsx +119 -0
- package/src/table-grid/__tests__/table-grid.scenario.tsx +59 -0
- package/src/table-grid/__tests__/table-grid.stories.tsx +16 -0
- package/src/table-grid/index.ts +10 -0
- package/src/table-grid/sortable-head-cell.ts +11 -0
- package/src/table-grid/styled-components.tsx +85 -0
- package/src/table-semantic/__tests__/table-builder.e2e.ts +18 -0
- package/src/table-semantic/__tests__/table-builder.test.tsx +342 -0
- package/src/table-semantic/__tests__/table-semantic-builder-divider.scenario.tsx +71 -0
- package/src/table-semantic/__tests__/table-semantic-builder-icon-overrides.scenario.tsx +40 -0
- package/src/table-semantic/__tests__/table-semantic-builder-size.scenario.tsx +68 -0
- package/src/table-semantic/__tests__/table-semantic-builder.scenario.tsx +181 -0
- package/src/table-semantic/__tests__/table-semantic-compose.scenario.tsx +52 -0
- package/src/table-semantic/__tests__/table-semantic-divider.scenario.tsx +42 -0
- package/src/table-semantic/__tests__/table-semantic-size.scenario.tsx +37 -0
- package/src/table-semantic/__tests__/table-semantic-spacious-sort.scenario.tsx +29 -0
- package/src/table-semantic/__tests__/table-semantic.scenario.tsx +20 -0
- package/src/table-semantic/__tests__/table-semantic.stories.tsx +26 -0
- package/src/table-semantic/__tests__/table.e2e.ts +18 -0
- package/src/table-semantic/__tests__/table.test.tsx +100 -0
- package/src/table-semantic/constants.ts +18 -0
- package/src/table-semantic/index.ts +29 -0
- package/src/table-semantic/styled-components.ts +284 -0
- package/src/table-semantic/table-builder-column.ts +13 -0
- package/src/table-semantic/table-builder.tsx +311 -0
- package/src/table-semantic/table.tsx +158 -0
- package/src/table-semantic/types.ts +80 -0
- package/src/tabs/__tests__/stateful-tabs.test.tsx +76 -0
- package/src/tabs/__tests__/tab.test.tsx +77 -0
- package/src/tabs/__tests__/tabs-controlled.scenario.tsx +42 -0
- package/src/tabs/__tests__/tabs-one-child.scenario.tsx +17 -0
- package/src/tabs/__tests__/tabs.e2e.ts +42 -0
- package/src/tabs/__tests__/tabs.scenario.tsx +19 -0
- package/src/tabs/__tests__/tabs.stories.tsx +14 -0
- package/src/tabs/constants.ts +14 -0
- package/src/tabs/index.ts +27 -0
- package/src/tabs/stateful-tabs.tsx +50 -0
- package/src/tabs/styled-components.ts +95 -0
- package/src/tabs/tab.tsx +106 -0
- package/src/tabs/tabs.tsx +106 -0
- package/src/tabs/types.ts +88 -0
- package/src/tabs-motion/__tests__/tabs-motion-align.scenario.tsx +64 -0
- package/src/tabs-motion/__tests__/tabs-motion-artwork.scenario.tsx +33 -0
- package/src/tabs-motion/__tests__/tabs-motion-conditional.scenario.tsx +79 -0
- package/src/tabs-motion/__tests__/tabs-motion-disabled.scenario.tsx +29 -0
- package/src/tabs-motion/__tests__/tabs-motion-fixed-vertical.scenario.tsx +42 -0
- package/src/tabs-motion/__tests__/tabs-motion-fixed.scenario.tsx +33 -0
- package/src/tabs-motion/__tests__/tabs-motion-focus.scenario.tsx +25 -0
- package/src/tabs-motion/__tests__/tabs-motion-manual.scenario.tsx +33 -0
- package/src/tabs-motion/__tests__/tabs-motion-overrides.scenario.tsx +47 -0
- package/src/tabs-motion/__tests__/tabs-motion-refs.scenario.tsx +37 -0
- package/src/tabs-motion/__tests__/tabs-motion-renderAll.scenario.tsx +39 -0
- package/src/tabs-motion/__tests__/tabs-motion-rtl-artwork.scenario.tsx +38 -0
- package/src/tabs-motion/__tests__/tabs-motion-rtl-vertical.scenario.tsx +45 -0
- package/src/tabs-motion/__tests__/tabs-motion-rtl.scenario.tsx +34 -0
- package/src/tabs-motion/__tests__/tabs-motion-scroll-safe.scenario.tsx +70 -0
- package/src/tabs-motion/__tests__/tabs-motion-scroll-vertical.scenario.tsx +52 -0
- package/src/tabs-motion/__tests__/tabs-motion-scroll.scenario.tsx +39 -0
- package/src/tabs-motion/__tests__/tabs-motion-stateful.scenario.tsx +28 -0
- package/src/tabs-motion/__tests__/tabs-motion-vertical-pageScroll.scenario.tsx +48 -0
- package/src/tabs-motion/__tests__/tabs-motion-vertical.scenario.tsx +41 -0
- package/src/tabs-motion/__tests__/tabs-motion.e2e.ts +269 -0
- package/src/tabs-motion/__tests__/tabs-motion.scenario.tsx +41 -0
- package/src/tabs-motion/constants.ts +20 -0
- package/src/tabs-motion/index.ts +23 -0
- package/src/tabs-motion/stateful-tabs.tsx +54 -0
- package/src/tabs-motion/styled-components.ts +285 -0
- package/src/tabs-motion/tab.ts +14 -0
- package/src/tabs-motion/tabs.tsx +542 -0
- package/src/tabs-motion/types.ts +81 -0
- package/src/tabs-motion/utils.ts +19 -0
- package/src/tag/__tests__/tag-long-text.scenario.tsx +19 -0
- package/src/tag/__tests__/tag-overrides.scenario.tsx +58 -0
- package/src/tag/__tests__/tag-rtl.scenario.tsx +19 -0
- package/src/tag/__tests__/tag-size.scenario.tsx +30 -0
- package/src/tag/__tests__/tag-start-enhancer.scenario.tsx +221 -0
- package/src/tag/__tests__/tag.e2e.ts +23 -0
- package/src/tag/__tests__/tag.scenario.tsx +162 -0
- package/src/tag/__tests__/tag.stories.tsx +18 -0
- package/src/tag/__tests__/tag.test.tsx +66 -0
- package/src/tag/__tests__/utils.test.tsx +33 -0
- package/src/tag/constants.ts +48 -0
- package/src/tag/deprecated-styles.ts +180 -0
- package/src/tag/index.ts +15 -0
- package/src/tag/styled-components.ts +520 -0
- package/src/tag/tag.tsx +183 -0
- package/src/tag/types.ts +75 -0
- package/src/tag/utils.ts +36 -0
- package/src/tag-group/index.ts +16 -0
- package/src/tag-group/styled-components.ts +48 -0
- package/src/tag-group/tag-group.tsx +66 -0
- package/src/tag-group/types.ts +19 -0
- package/src/template-component/__tests__/component.test.tsx +20 -0
- package/src/template-component/__tests__/stateful-component.test.tsx +17 -0
- package/src/template-component/__tests__/stateful-container.test.tsx +20 -0
- package/src/template-component/__tests__/template-component.scenario.tsx +13 -0
- package/src/template-component/__tests__/template-component.stories.tsx +10 -0
- package/src/template-component/component.tsx +47 -0
- package/src/template-component/constants.ts +9 -0
- package/src/template-component/index.ts +15 -0
- package/src/template-component/stateful-component.tsx +23 -0
- package/src/template-component/stateful-container.ts +56 -0
- package/src/template-component/styled-components.ts +17 -0
- package/src/template-component/types.ts +56 -0
- package/src/test/create-mock-theme.ts +57 -0
- package/src/test/integration.ts +139 -0
- package/src/test/test-framework-setup.ts +9 -0
- package/src/test/test-setup.ts +39 -0
- package/src/test/test-utils.tsx +46 -0
- package/src/textarea/__tests__/stateful-textarea.test.tsx +25 -0
- package/src/textarea/__tests__/textarea-resize.scenario.tsx +19 -0
- package/src/textarea/__tests__/textarea.e2e.ts +56 -0
- package/src/textarea/__tests__/textarea.scenario.tsx +24 -0
- package/src/textarea/__tests__/textarea.stories.tsx +12 -0
- package/src/textarea/__tests__/textarea.test.tsx +51 -0
- package/src/textarea/constants.ts +7 -0
- package/src/textarea/index.ts +13 -0
- package/src/textarea/stateful-container.ts +9 -0
- package/src/textarea/stateful-textarea.tsx +19 -0
- package/src/textarea/styled-components.ts +53 -0
- package/src/textarea/textarea.tsx +93 -0
- package/src/textarea/types.ts +62 -0
- package/src/theme.ts +43 -0
- package/src/themes/dark-theme/__tests__/create-dark-theme.test.ts +12 -0
- package/src/themes/dark-theme/borders.ts +33 -0
- package/src/themes/dark-theme/color-component-tokens.ts +482 -0
- package/src/themes/dark-theme/color-foundation-tokens.ts +80 -0
- package/src/themes/dark-theme/color-semantic-tokens.ts +225 -0
- package/src/themes/dark-theme/create-dark-theme.ts +38 -0
- package/src/themes/dark-theme/dark-theme.ts +44 -0
- package/src/themes/dark-theme/primitives.ts +18 -0
- package/src/themes/index.ts +35 -0
- package/src/themes/light-theme/__tests__/create-light-theme.test.ts +12 -0
- package/src/themes/light-theme/color-component-tokens.ts +482 -0
- package/src/themes/light-theme/color-foundation-tokens.ts +80 -0
- package/src/themes/light-theme/color-semantic-tokens.ts +235 -0
- package/src/themes/light-theme/create-light-theme.ts +38 -0
- package/src/themes/light-theme/light-theme.ts +44 -0
- package/src/themes/light-theme/primitives.ts +18 -0
- package/src/themes/move-theme/dark-theme-with-move.ts +13 -0
- package/src/themes/move-theme/light-theme-with-move.ts +13 -0
- package/src/themes/move-theme/typography.ts +56 -0
- package/src/themes/shared/animation.ts +50 -0
- package/src/themes/shared/borders.ts +65 -0
- package/src/themes/shared/breakpoints.ts +15 -0
- package/src/themes/shared/grid.ts +18 -0
- package/src/themes/shared/lighting.ts +27 -0
- package/src/themes/shared/media-query.ts +17 -0
- package/src/themes/shared/sizing.ts +34 -0
- package/src/themes/shared/typography.ts +184 -0
- package/src/themes/types.ts +862 -0
- package/src/themes/utils.ts +28 -0
- package/src/tile/__tests__/tile-group.test.tsx +75 -0
- package/src/tile/__tests__/tile.test.tsx +98 -0
- package/src/tile/constants.ts +28 -0
- package/src/tile/index.ts +10 -0
- package/src/tile/styled-components.ts +212 -0
- package/src/tile/tile-group.tsx +166 -0
- package/src/tile/tile.tsx +122 -0
- package/src/tile/types.ts +57 -0
- package/src/tile/utils.ts +22 -0
- package/src/timepicker/__tests__/time-picker-min-max-diff-day.e2e.ts +95 -0
- package/src/timepicker/__tests__/time-picker-min-max-diff-day.scenario.tsx +66 -0
- package/src/timepicker/__tests__/time-picker.e2e.ts +316 -0
- package/src/timepicker/__tests__/time-picker.scenario.tsx +167 -0
- package/src/timepicker/__tests__/timepicker.stories.tsx +12 -0
- package/src/timepicker/__tests__/timepicker.test.tsx +49 -0
- package/src/timepicker/index.ts +9 -0
- package/src/timepicker/timepicker.tsx +346 -0
- package/src/timepicker/types.ts +62 -0
- package/src/timezonepicker/__tests__/timezone-picker--abbreviations.scenario.tsx +61 -0
- package/src/timezonepicker/__tests__/timezone-picker-additional-timezones.scenario.tsx +33 -0
- package/src/timezonepicker/__tests__/timezone-picker.e2e.ts +98 -0
- package/src/timezonepicker/__tests__/timezone-picker.scenario.tsx +60 -0
- package/src/timezonepicker/__tests__/timezone-picker.test.tsx +64 -0
- package/src/timezonepicker/__tests__/timezonepicker.stories.tsx +16 -0
- package/src/timezonepicker/index.ts +13 -0
- package/src/timezonepicker/timezone-picker.tsx +151 -0
- package/src/timezonepicker/types.ts +62 -0
- package/src/timezonepicker/tzdata.ts +433 -0
- package/src/timezonepicker/update-tzdata.js +73 -0
- package/src/toast/__tests__/toast-application-state.e2e.ts +27 -0
- package/src/toast/__tests__/toast-application-state.scenario.tsx +31 -0
- package/src/toast/__tests__/toast.e2e.ts +102 -0
- package/src/toast/__tests__/toast.scenario.tsx +35 -0
- package/src/toast/__tests__/toast.stories.tsx +16 -0
- package/src/toast/__tests__/toast.test.tsx +117 -0
- package/src/toast/__tests__/toaster-focus.scenario.tsx +39 -0
- package/src/toast/__tests__/toaster.scenario.tsx +42 -0
- package/src/toast/__tests__/toaster.test.tsx +134 -0
- package/src/toast/constants.ts +34 -0
- package/src/toast/index.ts +23 -0
- package/src/toast/locale.ts +15 -0
- package/src/toast/styled-components.ts +205 -0
- package/src/toast/toast.tsx +279 -0
- package/src/toast/toaster.tsx +296 -0
- package/src/toast/types.ts +116 -0
- package/src/tokens/color-primitive-tokens.ts +348 -0
- package/src/tokens/index.ts +20 -0
- package/src/tokens/types.ts +325 -0
- package/src/tooltip/__tests__/stateful-tooltip.test.tsx +47 -0
- package/src/tooltip/__tests__/tooltip-arrow-margin.scenario.tsx +22 -0
- package/src/tooltip/__tests__/tooltip-complex.scenario.tsx +49 -0
- package/src/tooltip/__tests__/tooltip-interactive-element.scenario.tsx +23 -0
- package/src/tooltip/__tests__/tooltip.e2e.ts +26 -0
- package/src/tooltip/__tests__/tooltip.scenario.tsx +17 -0
- package/src/tooltip/__tests__/tooltip.stories.tsx +16 -0
- package/src/tooltip/__tests__/tooltip.test.tsx +54 -0
- package/src/tooltip/constants.ts +7 -0
- package/src/tooltip/default-props.ts +25 -0
- package/src/tooltip/index.ts +20 -0
- package/src/tooltip/stateful-tooltip-container.tsx +22 -0
- package/src/tooltip/stateful-tooltip.tsx +23 -0
- package/src/tooltip/styled-components.ts +60 -0
- package/src/tooltip/tooltip.tsx +39 -0
- package/src/tooltip/types.ts +50 -0
- package/src/tree-view/__tests__/tree-view-icon-overrides.scenario.tsx +41 -0
- package/src/tree-view/__tests__/tree-view-interactable.scenario.tsx +92 -0
- package/src/tree-view/__tests__/tree-view-render-all.scenario.tsx +57 -0
- package/src/tree-view/__tests__/tree-view-rtl.scenario.tsx +19 -0
- package/src/tree-view/__tests__/tree-view-single-expanded.scenario.tsx +305 -0
- package/src/tree-view/__tests__/tree-view.e2e.ts +66 -0
- package/src/tree-view/__tests__/tree-view.scenario.tsx +53 -0
- package/src/tree-view/__tests__/tree-view.stories.tsx +18 -0
- package/src/tree-view/__tests__/tree-view.test.tsx +150 -0
- package/src/tree-view/__tests__/utils.test.ts +219 -0
- package/src/tree-view/index.ts +32 -0
- package/src/tree-view/stateful-container.ts +73 -0
- package/src/tree-view/stateful-tree-view.tsx +19 -0
- package/src/tree-view/styled-components.ts +126 -0
- package/src/tree-view/tree-label-interactable.tsx +34 -0
- package/src/tree-view/tree-label.tsx +80 -0
- package/src/tree-view/tree-node.tsx +126 -0
- package/src/tree-view/tree-view.tsx +175 -0
- package/src/tree-view/types.ts +86 -0
- package/src/tree-view/utils.ts +246 -0
- package/src/types/globals.d.ts +27 -0
- package/src/types/resize-observer-polyfill.d.ts +49 -0
- package/src/typography/__tests__/typography-body.scenario.tsx +35 -0
- package/src/typography/__tests__/typography-display.scenario.tsx +21 -0
- package/src/typography/__tests__/typography-heading.scenario.tsx +32 -0
- package/src/typography/__tests__/typography-mono-styletron.scenario.tsx +54 -0
- package/src/typography/__tests__/typography-mono.scenario.tsx +76 -0
- package/src/typography/__tests__/typography-overrides.scenario.tsx +21 -0
- package/src/typography/__tests__/typography.stories.tsx +20 -0
- package/src/typography/__tests__/typography.test.tsx +214 -0
- package/src/typography/index.tsx +424 -0
- package/src/utils/__mocks__/get-bui-id.ts +7 -0
- package/src/utils/__tests__/deep-merge.test.ts +36 -0
- package/src/utils/create-event.ts +19 -0
- package/src/utils/deep-merge.ts +45 -0
- package/src/utils/deprecated-component.tsx +23 -0
- package/src/utils/focusVisible.ts +178 -0
- package/src/utils/get-shared-styles.ts +39 -0
- package/src/utils/ownerDocument.ts +18 -0
- package/tsconfig.dist.json +19 -0
- package/tsconfig.json +26 -0
- package/vite.config.mjs +33 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": "Graham Murdoch",
|
|
3
|
+
"authorLink": "https://github.com/sandgraham",
|
|
4
|
+
"title": "Color and Typography Updates in v9",
|
|
5
|
+
"tagline": "Everything you need to know about the latest style updates in Base Web",
|
|
6
|
+
"date": "9 September 2019",
|
|
7
|
+
"coverImage": "https://res.cloudinary.com/dawr8pobn/image/upload/v1565816562/baseblack_oodvc1.png",
|
|
8
|
+
"coverImageWidth": 1200,
|
|
9
|
+
"coverImageHeight": 630,
|
|
10
|
+
"keyWords": [
|
|
11
|
+
"Base Web",
|
|
12
|
+
"Design System",
|
|
13
|
+
"React",
|
|
14
|
+
"Migration Guide",
|
|
15
|
+
"Major Version"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import metadata from "./metadata.json";
|
|
2
|
+
import Layout from "../../../components/layout";
|
|
3
|
+
import { BlogImage, Meta, Caption } from "../../../components/blog";
|
|
4
|
+
import { TwitterTweetEmbed } from "react-twitter-embed";
|
|
5
|
+
import Removable from "../../../examples/dnd-list/removable";
|
|
6
|
+
|
|
7
|
+
export default Layout;
|
|
8
|
+
|
|
9
|
+
<Meta data={metadata} />
|
|
10
|
+
|
|
11
|
+
<BlogImage
|
|
12
|
+
src="https://res.cloudinary.com/flycatcher/image/upload/v1572289775/listgif_igl9j7.gif"
|
|
13
|
+
alt="Base Web DnD List component"
|
|
14
|
+
caption="Base Web DnD List component"
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
The drag and drop interaction was invented in the 1970's by [Jef Raskin](https://en.wikipedia.org/wiki/Jef_Raskin) as a part of the Macintosh project. That's 40 years ago! So how come that making things draggable on the web is still so painful? We were recently looking for answers since our component library needs to support a sortable list and slider.
|
|
18
|
+
|
|
19
|
+
## Our Sortable List Component
|
|
20
|
+
|
|
21
|
+
<Removable />
|
|
22
|
+
|
|
23
|
+
## HTML Drag and Drop API
|
|
24
|
+
|
|
25
|
+
There is an official [HTML drag and drop API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API), it was introduced in the HTML5 standard and it comes with eight different events:
|
|
26
|
+
|
|
27
|
+
- drag
|
|
28
|
+
- dragend
|
|
29
|
+
- dragenter
|
|
30
|
+
- dragexit
|
|
31
|
+
- dragleave
|
|
32
|
+
- dragover
|
|
33
|
+
- dragstart
|
|
34
|
+
- drop
|
|
35
|
+
|
|
36
|
+
Here is a little pop quiz for you. What's the difference between `dragexit` and `dragleave`? Not sure? It takes some imagination to implement eight different events for something that could be described by three user actions:
|
|
37
|
+
|
|
38
|
+
- pressing the mouse button
|
|
39
|
+
- moving the mouse
|
|
40
|
+
- releasing the mouse button
|
|
41
|
+
|
|
42
|
+
That is not the only strange thing about this API. Some other "glitches":
|
|
43
|
+
|
|
44
|
+
- **no support for touch devices** (ugh)
|
|
45
|
+
- limited styling options for dragged items
|
|
46
|
+
- the API is wildly inconsistent across browsers
|
|
47
|
+
|
|
48
|
+
You might wonder why this relatively new API is so bad. The answer might surprise you:
|
|
49
|
+
|
|
50
|
+
<TwitterTweetEmbed tweetId={"4075253361"} />
|
|
51
|
+
|
|
52
|
+
Yes, Internet Explorer 6 is the culprit here. If we don't want to settle with no mobile support and other shortcomings, what else we can do?
|
|
53
|
+
|
|
54
|
+
(The dragexit event is fired when an element is no longer the drag operation's immediate selection target. The dragleave event is fired when a dragged element or text selection leaves a valid drop target.)
|
|
55
|
+
|
|
56
|
+
## Tracking Basic Actions
|
|
57
|
+
|
|
58
|
+
Fortunately, there are still good old mouse and touch events:
|
|
59
|
+
|
|
60
|
+
- mousedown (touchstart)
|
|
61
|
+
- mousemove (touchmove)
|
|
62
|
+
- mouseup (touchend, touchcancel)
|
|
63
|
+
|
|
64
|
+
They also nicely translate into our three drag and drop actions.
|
|
65
|
+
|
|
66
|
+
## Mouse/Finger Coordinates
|
|
67
|
+
|
|
68
|
+
Another information we need is the coordinates of the mouse/finger at any given point. That's very straightforward since all mouse/touch events pass them through. Mouse events:
|
|
69
|
+
|
|
70
|
+
- `event.clientX`
|
|
71
|
+
- `event.clientY`
|
|
72
|
+
|
|
73
|
+
Touch events:
|
|
74
|
+
|
|
75
|
+
- `event.touches[0].clientX`
|
|
76
|
+
- `event.touches[0].clientY`
|
|
77
|
+
|
|
78
|
+
## Measuring Elements
|
|
79
|
+
|
|
80
|
+
We need to measure things. There is a great API with a horrible name. Let me introduce you [`Element.getBoundingClientRect`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect). Call it on any element and it returns its dimensions and locations:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
{
|
|
84
|
+
"width": 500,
|
|
85
|
+
"height": 100,
|
|
86
|
+
"top": 674,
|
|
87
|
+
"right": 800,
|
|
88
|
+
"bottom": 774,
|
|
89
|
+
"left": 1300
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Positioning
|
|
94
|
+
|
|
95
|
+
As user "moves" an item around, we need to keep changing its position to actually create the illusion of moving. The first naive solution could look like this:
|
|
96
|
+
|
|
97
|
+
```css
|
|
98
|
+
position: fixed;
|
|
99
|
+
top: 100px;
|
|
100
|
+
left: 200px;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
As user moves the item, we apply position fixed and keep updating its top and left values. This works reasonably well. However, the better solution is using CSS transforms:
|
|
104
|
+
|
|
105
|
+
```css
|
|
106
|
+
transform: translate(10px, 20px);
|
|
107
|
+
transition-duration: 1s;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
It's GPU accelerated, requires less work from the browser and we can also combine it with transition-duration to animate it.
|
|
111
|
+
|
|
112
|
+
## Other DOM APIs
|
|
113
|
+
|
|
114
|
+
There are many other useful DOM APIs to deal with scrolling, container manipulation or optimizing the browser workload:
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
window.getComputedStyle(ELement);
|
|
118
|
+
window.scrollTo(X, Y);
|
|
119
|
+
window.pageXOffset;
|
|
120
|
+
window.pageYOffset;
|
|
121
|
+
window.innerHeight;
|
|
122
|
+
Element.contains();
|
|
123
|
+
Element.scrollTop;
|
|
124
|
+
requestAnimationFrame(() => {});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## ReactDOM.createPortal
|
|
128
|
+
|
|
129
|
+
There is also one very useful React API - [Portals](https://reactjs.org/docs/portals.html).
|
|
130
|
+
|
|
131
|
+
> Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component.
|
|
132
|
+
|
|
133
|
+
Why would we need such a thing? It's the only way to make the positioning of dragged items reliable.
|
|
134
|
+
|
|
135
|
+
```jsx
|
|
136
|
+
render() {
|
|
137
|
+
return ReactDOM.createPortal(
|
|
138
|
+
<li>Dragged</li>,
|
|
139
|
+
document.body
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
In this example, we "portal" the dragged list item to the bottom of document body. This way the item has no parents and there are no inherited CSS properties that could impact its position (like CSS transforms). You can often see this technique being used for modals or notifications.
|
|
145
|
+
|
|
146
|
+
## The Algorithm
|
|
147
|
+
|
|
148
|
+
We have all the tools and APIs we need. Now it's time to put it all into a single algorithm.
|
|
149
|
+
|
|
150
|
+
<BlogImage
|
|
151
|
+
src="https://res.cloudinary.com/flycatcher/image/upload/v1572409269/Screen_Shot_2019-10-29_at_9.20.29_PM_ye0moq.png"
|
|
152
|
+
style={{ width: "50%" }}
|
|
153
|
+
alt="User starts dragging the second item"
|
|
154
|
+
caption="user starts dragging the second item"
|
|
155
|
+
/>
|
|
156
|
+
|
|
157
|
+
User clicks on the second item and starts dragging it. We set its visibility to hidden so it preserves the current space occupied by the item and at the same time we portal it to the root. We give it an initial top and left position and as user keeps moving, we update the translate values.
|
|
158
|
+
|
|
159
|
+
<BlogImage
|
|
160
|
+
src="https://res.cloudinary.com/flycatcher/image/upload/v1572409269/Screen_Shot_2019-10-29_at_9.20.33_PM_gsdj15.png"
|
|
161
|
+
style={{ width: "50%" }}
|
|
162
|
+
alt="User reaches the boundary of the third item"
|
|
163
|
+
caption="User reaches the boundary of the third item"
|
|
164
|
+
/>
|
|
165
|
+
|
|
166
|
+
The user reached the boundary of the third item so we want to move the third item to the second position. All we need to do is applying a negative translate Y value. We should also add the transition property to animate it.
|
|
167
|
+
|
|
168
|
+
So far we didn't change the DOM order of our items. That happens only after the user finishes the drop.
|
|
169
|
+
|
|
170
|
+
There are many ways how you could go about it but this algorithm is pretty straightforward and works.
|
|
171
|
+
|
|
172
|
+
## Accessibility
|
|
173
|
+
|
|
174
|
+
What does it mean? You should be able to control our component only through the keyboard and screen reader. There is a set of keyboard shortcuts we implement:
|
|
175
|
+
|
|
176
|
+
- `tab` and `shift+tab` to focus a item
|
|
177
|
+
- `space` to lift or drop the item
|
|
178
|
+
- `j` or `arrow down` to move the lifted item down
|
|
179
|
+
- `k` or `arrow up` to move the lifted item up
|
|
180
|
+
- `escape` to cancel the lift and return the item to its initial position
|
|
181
|
+
|
|
182
|
+
We also need to provide audible cues through the screen reader. First, we should [describe each item](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Application_Role) so it's clear that you can move it:
|
|
183
|
+
|
|
184
|
+
```html
|
|
185
|
+
<li aria-roledescription="This is a draggable item. Press space to lift.">
|
|
186
|
+
Item 1
|
|
187
|
+
</li>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Then we provide additional messages as the user goes through the interaction:
|
|
191
|
+
|
|
192
|
+
```html
|
|
193
|
+
<div aria-live="assertive" role="log" aria-atomic="true">
|
|
194
|
+
You have lifted item at position 5. Press j to move it down...
|
|
195
|
+
</div>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
This is called [ARIA live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions). Whatever you set its content to gets announced by the screen reader. Check [this article](https://medium.com/salesforce-ux/4-major-patterns-for-accessible-drag-and-drop-1d43f64ebf09) for more details.
|
|
199
|
+
|
|
200
|
+
## Little Things
|
|
201
|
+
|
|
202
|
+
There are some little things that you might now even notice but they make the whole interaction nicer. For example, the drop animation. There is none here:
|
|
203
|
+
|
|
204
|
+
<BlogImage
|
|
205
|
+
src="https://res.cloudinary.com/flycatcher/image/upload/v1572410948/drop1_xpwz2d.gif"
|
|
206
|
+
style={{ width: "50%" }}
|
|
207
|
+
alt="No drop animation."
|
|
208
|
+
caption="No drop animation"
|
|
209
|
+
/>
|
|
210
|
+
|
|
211
|
+
On the other hand, we use
|
|
212
|
+
|
|
213
|
+
```css
|
|
214
|
+
transition: 0.3s cubic-bezier(0.2, 1, 0.1, 1);
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
bellow to make the item fly back which gives user a nice additional feedback:
|
|
218
|
+
|
|
219
|
+
<BlogImage
|
|
220
|
+
src="https://res.cloudinary.com/flycatcher/image/upload/v1572410952/drop2_vamnka.gif"
|
|
221
|
+
style={{ width: "50%" }}
|
|
222
|
+
alt="The drop is animated."
|
|
223
|
+
caption="The drop is animated."
|
|
224
|
+
/>
|
|
225
|
+
|
|
226
|
+
And there are many other small interactions like this to consider.
|
|
227
|
+
|
|
228
|
+
## Testing
|
|
229
|
+
|
|
230
|
+
Any drag and drop library needs to rely on a multiple DOM APIs. If you want to write unit tests, you would have to mock out all of them. What are you even testing at that point? Focusing on end to end tests might be a better solution. With [Playwright](https://playwright.dev) you can write short and descriptive tests. Here we are testing the whole interaction using the mouse:
|
|
231
|
+
|
|
232
|
+
```js
|
|
233
|
+
test("dnd the first item to second position", async () => {
|
|
234
|
+
await page.mouse.move(190, 111);
|
|
235
|
+
await page.mouse.down();
|
|
236
|
+
await page.mouse.move(190, 190);
|
|
237
|
+
await page.mouse.up();
|
|
238
|
+
expect(await getListItems(page)).toEqual([
|
|
239
|
+
"Item 2",
|
|
240
|
+
"Item 1",
|
|
241
|
+
"Item 3",
|
|
242
|
+
"Item 4",
|
|
243
|
+
"Item 5",
|
|
244
|
+
"Item 6",
|
|
245
|
+
]);
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
We just move the mouse around and check the order of DOM elements at the end. The test for keyboard is similar:
|
|
250
|
+
|
|
251
|
+
```js
|
|
252
|
+
test("move the first item to second position", async () => {
|
|
253
|
+
await page.keyboard.press("Tab");
|
|
254
|
+
await page.keyboard.press("Space");
|
|
255
|
+
await page.keyboard.press("ArrowDown");
|
|
256
|
+
await page.keyboard.press("Space");
|
|
257
|
+
expect(await getListItems(page)).toEqual([
|
|
258
|
+
"Item 2",
|
|
259
|
+
"Item 1",
|
|
260
|
+
"Item 3",
|
|
261
|
+
"Item 4",
|
|
262
|
+
"Item 5",
|
|
263
|
+
"Item 6",
|
|
264
|
+
]);
|
|
265
|
+
});
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Gotchas
|
|
269
|
+
|
|
270
|
+
There is a class of bugs that regular tests might not cover. Since we deal with a lot of positioning it's quite easy to misplace some items by a few pixels. We can utilize visual regression testing with [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot). It takes an image (snapshot) of our functioning component, takes another one on the subsequent run and compares them pixel by pixel. If there is any difference, the test fails. Be aware that each OS renders fonts differently. You might need to use docker to keep the tests reliable.
|
|
271
|
+
|
|
272
|
+
### Internet Explorer
|
|
273
|
+
|
|
274
|
+
Frankly, it would be surprising to open IE for the first time and see everything working. Fortunately, the issues are relatively minor:
|
|
275
|
+
|
|
276
|
+
- `transform: translate` doesn't work for table rows
|
|
277
|
+
- `window.scrollBy` doesn't exist
|
|
278
|
+
- `window.scrollY` needs to be replaced by `window.pageYOffset`
|
|
279
|
+
- `window.scroll` needs to be replaced `window.scrollTo`
|
|
280
|
+
|
|
281
|
+
## Safari and Scrolling
|
|
282
|
+
|
|
283
|
+
The gesture for touch scrolling and drag and drop is exactly the same, so we need to disable the touch scrolling. Luckily for us there is a CSS property just for that:
|
|
284
|
+
|
|
285
|
+
```css
|
|
286
|
+
touch-action: none;
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
and it works in all browsers. **Except Safari**. What do you do when CSS fails you? Use more JavaScript! We can `e.preventDefault` all touch events. However, don't forget to make your event listeners **not passive**:
|
|
290
|
+
|
|
291
|
+
```js
|
|
292
|
+
document.addEventListener("touchstart", _, { passive: false });
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
since otherwise the `e.preventDefault()` calls are ignored by default. This also means you can't use React event system at all - use native events only.
|
|
296
|
+
|
|
297
|
+
## Conclusion
|
|
298
|
+
|
|
299
|
+
Building a drag and drop web experience is involved but not impossible. **You should never compromise on mobile support and accessibility**. To ensure that, avoid the HTML5 API and go with mouse/touch events. For positioning, CSS transforms are the right choice. Browsers provide many great APIs like getBoundingClientRect for measuring things. And before you release anything, don't forget to write tests. Playwright makes it easy!
|
|
300
|
+
|
|
301
|
+
I gave a talk about this topic at [React Advanced London 2019](https://www.youtube.com/watch?v=q6TD3PvmQts&feature=youtu.be&t=6770). We published a separate open-source library [react-movable](https://github.com/tajo/react-movable). The Base DnD List uses it internally.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": "Vojtech Miksu",
|
|
3
|
+
"authorLink": "https://twitter.com/vmiksu",
|
|
4
|
+
"title": "Building a Drag and Drop List",
|
|
5
|
+
"tagline": "What goes into building a drag and drop component in 2019?",
|
|
6
|
+
"date": "30 October 2019",
|
|
7
|
+
"coverImage": "https://res.cloudinary.com/flycatcher/image/upload/v1572289775/listgif_igl9j7.gif",
|
|
8
|
+
"coverImageWidth": 600,
|
|
9
|
+
"coverImageHeight": 383,
|
|
10
|
+
"keyWords": ["Drag and Drop", "React", "DnD"]
|
|
11
|
+
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import Layout from "../../../components/layout";
|
|
2
|
+
import { BlogImage, Meta, Caption } from "../../../components/blog";
|
|
3
|
+
import { Block } from "baseui/block";
|
|
4
|
+
import { StatefulInput } from "baseui/input";
|
|
5
|
+
import { StatefulSelect } from "baseui/select";
|
|
6
|
+
import { StatefulPaymentCard } from "baseui/payment-card";
|
|
7
|
+
import { StatefulPhoneInput } from "baseui/phone-input";
|
|
8
|
+
import { FileUploader } from "baseui/file-uploader";
|
|
9
|
+
import architectureDiagram from "../../../public/images/blog/file-uploader/file-uploader-architecture-diagram.png";
|
|
10
|
+
import carouselView from "../../../public/images/blog/file-uploader/carousel-view.png";
|
|
11
|
+
import gridView from "../../../public/images/blog/file-uploader/grid-view.png";
|
|
12
|
+
import listView from "../../../public/images/blog/file-uploader/list-view.png";
|
|
13
|
+
import metadata from "./metadata.json";
|
|
14
|
+
|
|
15
|
+
export default Layout;
|
|
16
|
+
|
|
17
|
+
<Meta data={metadata} />
|
|
18
|
+
|
|
19
|
+
In August 2024, we introduced a new [File Uploader](/components/file-uploader) component to Base Web.
|
|
20
|
+
|
|
21
|
+
<FileUploader />
|
|
22
|
+
<Caption>The new File Uploader component</Caption>
|
|
23
|
+
|
|
24
|
+
## Background
|
|
25
|
+
|
|
26
|
+
In December 2018, the baseweb team implemented the basic [File Uploader](/components/file-uploader) component.
|
|
27
|
+
However, this component lacks [statefulness](https://github.com/uber/baseweb/pull/795).
|
|
28
|
+
Demand at Uber has grown for an advanced component that can handle complex use cases.
|
|
29
|
+
Several teams implemented custom file uploader components, leading to UI/UX inconsistencies.
|
|
30
|
+
Additionally, new product requests required stateful file upload handling on Uber's [Insurance Tech](https://www.uber.com/blog/insuretech-insurance-compliance/) team.
|
|
31
|
+
|
|
32
|
+
This was an opportunity to provide an immediate impact on the insurance team, save engineering time across Uber, and improve UI/UX consistency.
|
|
33
|
+
|
|
34
|
+
## Goals
|
|
35
|
+
|
|
36
|
+
1. Maintain an internal state across file uploads each time the user selects "Browse files"
|
|
37
|
+
|
|
38
|
+
```js
|
|
39
|
+
import type { FileRow } from 'baseui/file-uploader';
|
|
40
|
+
|
|
41
|
+
const [fileRows, setFileRows] = React.useState<Array<FileRow>>([]);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
2. Provide a UI for each uploaded file including the filename, file size in a human-readable format, and one of three states: 1. Success 2. Error (e.g. invalid file type, file too large, etc.) 3. Loading
|
|
45
|
+
<FileUploader
|
|
46
|
+
fileRows={[
|
|
47
|
+
{
|
|
48
|
+
file: new File(["test file 1"], "success.jpeg"),
|
|
49
|
+
id: "0",
|
|
50
|
+
status: "processed",
|
|
51
|
+
errorMessage: null,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
file: new File(["test file 2"], "error.jpeg"),
|
|
55
|
+
id: "1",
|
|
56
|
+
status: "error",
|
|
57
|
+
errorMessage: "file type of img/jpeg is not accepted",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
file: new File(["test file 3"], "loading.jpeg"),
|
|
61
|
+
id: "2",
|
|
62
|
+
status: "added",
|
|
63
|
+
errorMessage: null,
|
|
64
|
+
},
|
|
65
|
+
]}
|
|
66
|
+
/>
|
|
67
|
+
3. Provide a delete operation that removes files from the internal state, represented by a trash can icon
|
|
68
|
+
<FileUploader
|
|
69
|
+
fileRows={[
|
|
70
|
+
{
|
|
71
|
+
file: new File(["test file 1"], "success.jpeg"),
|
|
72
|
+
id: "0",
|
|
73
|
+
status: "processed",
|
|
74
|
+
errorMessage: null,
|
|
75
|
+
},
|
|
76
|
+
]}
|
|
77
|
+
/>
|
|
78
|
+
|
|
79
|
+
## Design considerations
|
|
80
|
+
|
|
81
|
+
### Architecture
|
|
82
|
+
|
|
83
|
+
<BlogImage src={architectureDiagram} />
|
|
84
|
+
|
|
85
|
+
A `processFileOnDrop` function is passed as a prop.
|
|
86
|
+
It is executed on each file upload.
|
|
87
|
+
It is extensible, allowing applications to run synchronous or asynchronous code.
|
|
88
|
+
|
|
89
|
+
### Dropzone
|
|
90
|
+
|
|
91
|
+
The file uploader leverages the [react-dropzone](https://react-dropzone.js.org/) package under the hood to handle file drops directly.
|
|
92
|
+
Serious considerations were made to upgrade this package to the latest version.
|
|
93
|
+
The largest improvement would be including a new `validator` prop.
|
|
94
|
+
This prop runs before the `onDrop` callback, sorting files into two buckets: `acceptedFiles` and `rejectedFiles`.
|
|
95
|
+
Application code could pass a custom validation function to show errors while keeping the `onDrop` callback for file processing.
|
|
96
|
+
|
|
97
|
+
However, there were significant drawbacks to this approach.
|
|
98
|
+
Most notable, the `validator` prop [runs synchronously](https://github.com/react-dropzone/react-dropzone/blob/99b43e802e42f949b9c19aaf74556d611584353d/src/index.js#L582).
|
|
99
|
+
Asynchronous errors due to API upload errors or server-side security checks would not be caught.
|
|
100
|
+
Applications could modify file state in the `onDrop` callback as a workaround, but this violates [separation of concerns](https://en.wikipedia.org/wiki/Separation_of_concerns).
|
|
101
|
+
Application code **AND** library code would be responsible for file state management.
|
|
102
|
+
|
|
103
|
+
### Server-side support
|
|
104
|
+
|
|
105
|
+
Instead of demanding applications to pass a `processFileOnDrop` function prop, another consideration was implementing server-side handling within the component.
|
|
106
|
+
Plenty of third-party options exist such as [filepond](https://pqina.nl/filepond/) and [uppy](https://uppy.io/).
|
|
107
|
+
Each of these libraries has pros and cons. Both provide out-of-the-box support for server-side handling.
|
|
108
|
+
However, introducing server-side handling comes with notable drawbacks:
|
|
109
|
+
|
|
110
|
+
1. Reduced flexibility for applications to handle server-side integrations.
|
|
111
|
+
2. Potential security risks. Applications have to trust the third-party library to handle file uploads securely.
|
|
112
|
+
3. Each component in the Base Web library lives entirely on browser-rendered code. Introducing reusable server code would be a significant deviation from the current paradigm.
|
|
113
|
+
|
|
114
|
+
## Feature improvements
|
|
115
|
+
|
|
116
|
+
### Statefulness
|
|
117
|
+
|
|
118
|
+
As mentioned in the Goals section, the new File Uploader component is stateful.
|
|
119
|
+
It leverages the `useState` hook to maintain an internal state across file uploads.
|
|
120
|
+
|
|
121
|
+
```js
|
|
122
|
+
import React from 'react';
|
|
123
|
+
import { type FileRow, FileUploader } from 'baseui/file-uploader';
|
|
124
|
+
|
|
125
|
+
const myApplicationComponent = () => {
|
|
126
|
+
const [fileRows, setFileRows] = React.useState<Array<FileRow>>([]);
|
|
127
|
+
|
|
128
|
+
return <FileUploader fileRows={fileRows} setFileRows={setFileRows} />
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Error handling
|
|
133
|
+
|
|
134
|
+
Some browser-side errors are handled out of the box using the [FileReader](https://developer.mozilla.org/en-US/docs/Web/API/FileReader) API.
|
|
135
|
+
They can be leveraged with the `accept`, `minSize`, `maxSize`, and `maxFiles` props.
|
|
136
|
+
Applications can use these props for browser-side error handling and `processFileOnDrop` for server-side error handling.
|
|
137
|
+
|
|
138
|
+
<FileUploader
|
|
139
|
+
fileRows={[
|
|
140
|
+
{
|
|
141
|
+
file: new File(["test file 1"], "unaccepted-file-type.jpeg"),
|
|
142
|
+
id: "0",
|
|
143
|
+
status: "error",
|
|
144
|
+
errorMessage: "file type of img/jpeg is not accepted",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
file: new File(["test file 2"], "file-too-small.png"),
|
|
148
|
+
id: "1",
|
|
149
|
+
status: "error",
|
|
150
|
+
errorMessage: "file size must be greater than 20 KB",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
file: new File(["test file 3"], "file-too-big.png"),
|
|
154
|
+
id: "2",
|
|
155
|
+
status: "error",
|
|
156
|
+
errorMessage: "file size must be less than 100 KB",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
file: new File(["test file 4"], "file-count-too-many.png"),
|
|
160
|
+
id: "3",
|
|
161
|
+
status: "error",
|
|
162
|
+
errorMessage: "cannot process more than 3 file(s)",
|
|
163
|
+
},
|
|
164
|
+
]}
|
|
165
|
+
/>
|
|
166
|
+
|
|
167
|
+
### Future considerations
|
|
168
|
+
|
|
169
|
+
Size adjustments and additional layouts were considered for the file uploader component.
|
|
170
|
+
The component can extend to support these use cases in future iterations.
|
|
171
|
+
These include:
|
|
172
|
+
|
|
173
|
+
#### List view
|
|
174
|
+
|
|
175
|
+
<BlogImage
|
|
176
|
+
caption={"Implemented in the initial release with the itemPreview prop"}
|
|
177
|
+
src={listView}
|
|
178
|
+
/>
|
|
179
|
+
|
|
180
|
+
#### Grid view
|
|
181
|
+
|
|
182
|
+
<BlogImage caption={"Not included in the initial release"} src={gridView} />
|
|
183
|
+
|
|
184
|
+
#### Carousel view
|
|
185
|
+
|
|
186
|
+
<BlogImage caption={"Not included in the initial release"} src={carouselView} />
|
|
187
|
+
|
|
188
|
+
## Conclusion
|
|
189
|
+
|
|
190
|
+
### Key learnings
|
|
191
|
+
|
|
192
|
+
There are many takeaways from working on this project. The learnings include but are not limited to:
|
|
193
|
+
|
|
194
|
+
- When faced with a new problem, ask yourself: **"Has this already been solved?"**. If the answer is yes, consider leveraging existing solutions and look to extend them. If the answer is no, take some time to ask around if other teams have faced similar problems. You can multiply your impact by building in public instead of solving the problem in a silo.
|
|
195
|
+
- **Listen for existing problems at your company.** The tech world moves rapidly and stakeholder deadlines can apply time constraints to your work. This pressure makes it easy to stay in your domain of expertise without noticing if other teams have overlapping problems. So how do you notice duplicative solutions? Keep a list of problems you notice in your codebase, team, and organization. Additions to the list should take one or two minutes of your time. Over time you will naturally notice overlapping problems. When a stakeholder asks you to solve a new one and it is already on your list, you suddenly have an opportunity for multiplicative impact!
|
|
196
|
+
- **Just because you notice one solution for two similar problems does not mean it will take half the work.** Complexity grows when the solution space is expanded; prepare to spend more time than you initially thought. For the file uploader, more time was spent on refined UI/UX designs, accessibility requirements, alternative library research, and generating buy-in from the platform team. The good news is that the workload does not scale linearly with the problem space, but it is not as simple as implementing it in a vacuum on the tech stack you are accustomed to.
|
|
197
|
+
|
|
198
|
+
### Summary
|
|
199
|
+
|
|
200
|
+
The new File Uploader component is stateful, extensible, and provides a consistent user experience.
|
|
201
|
+
Application developers can quickly implement file upload functionality by building out file row state binding, props to control errors, and props to control uploads.
|
|
202
|
+
Stay tuned for future updates to the Base Web library.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": "Emerson Pfeiffer",
|
|
3
|
+
"authorLink": "https://github.com/epfeiffe",
|
|
4
|
+
"title": "Introducing the File Uploader Component",
|
|
5
|
+
"tagline": "Adding state to a reusable file uploader component",
|
|
6
|
+
"date": "15 August 2024",
|
|
7
|
+
"coverImage": "/images/blog/file-uploader/file-uploader.gif",
|
|
8
|
+
"coverImageWidth": 960,
|
|
9
|
+
"coverImageHeight": 575,
|
|
10
|
+
"keyWords": ["Base Web", "File Upload", "React", "react-dropzone"]
|
|
11
|
+
}
|