@atom-learning/components 6.0.0-beta.8 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/Accordion.d.ts +2 -6
- package/dist/components/accordion/Accordion.js +1 -1
- package/dist/components/accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/AccordionContent.d.ts +2 -2
- package/dist/components/accordion/AccordionItem.d.ts +2 -2
- package/dist/components/accordion/AccordionTrigger.d.ts +3 -3
- package/dist/components/action-icon/ActionIcon.d.ts +2 -3
- package/dist/components/action-icon/ActionIcon.js +1 -1
- package/dist/components/action-icon/ActionIcon.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog.d.ts +3 -3
- package/dist/components/alert-dialog/AlertDialogContent.d.ts +3 -3
- package/dist/components/avatar/Avatar.d.ts +6 -6
- package/dist/components/avatar/Avatar.js +1 -1
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarImage.js +1 -1
- package/dist/components/avatar/AvatarImage.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +10 -10
- package/dist/components/badge/Badge.js +1 -1
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/BadgeText.d.ts +7 -7
- package/dist/components/banner/BannerContainer.d.ts +3 -3
- package/dist/components/banner/BannerContainer.js +1 -1
- package/dist/components/banner/BannerContainer.js.map +1 -1
- package/dist/components/banner/BannerContext.d.ts +4 -1
- package/dist/components/banner/BannerContext.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegular.d.ts +3 -3
- package/dist/components/banner/banner-regular/BannerRegularActions.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularActions.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularContent.d.ts +2 -2
- package/dist/components/banner/banner-regular/BannerRegularContent.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularContent.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularDismiss.d.ts +4 -5
- package/dist/components/banner/banner-regular/BannerRegularHeading.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularHeading.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularImage.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularImage.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularText.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularText.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlim.d.ts +4 -4
- package/dist/components/banner/banner-slim/BannerSlimActions.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimActions.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlimContainer.d.ts +5 -5
- package/dist/components/banner/banner-slim/BannerSlimContainer.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimContainer.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlimContent.d.ts +3 -3
- package/dist/components/banner/banner-slim/BannerSlimDismiss.d.ts +4 -5
- package/dist/components/banner/banner-slim/BannerSlimDismiss.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimDismiss.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlimImage.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimImage.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlimText.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimText.js.map +1 -1
- package/dist/components/box/Box.d.ts +2 -2
- package/dist/components/button/Button.d.ts +2 -3
- package/dist/components/button/Button.js +1 -1
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/calendar/Calendar.js +1 -1
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/Day.d.ts +5 -5
- package/dist/components/calendar/Day.js +1 -1
- package/dist/components/calendar/Day.js.map +1 -1
- package/dist/components/carousel/Carousel.d.ts +12 -17
- package/dist/components/carousel/CarouselArrows.d.ts +6 -6
- package/dist/components/carousel/CarouselArrows.js +1 -1
- package/dist/components/carousel/CarouselArrows.js.map +1 -1
- package/dist/components/carousel/CarouselPagination.d.ts +2 -2
- package/dist/components/carousel/CarouselSlide.d.ts +1 -0
- package/dist/components/carousel/CarouselSlide.js.map +1 -1
- package/dist/components/carousel/CarouselSlider.d.ts +7 -11
- package/dist/components/carousel/CarouselSlider.js +1 -1
- package/dist/components/carousel/CarouselSlider.js.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts +4 -4
- package/dist/components/checkbox/Checkbox.js +1 -1
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroup.d.ts +6 -6
- package/dist/components/checkbox-group/CheckboxGroupItem.js +1 -1
- package/dist/components/checkbox-group/CheckboxGroupItem.js.map +1 -1
- package/dist/components/checkbox-tree/CheckboxTree.d.ts +4 -4
- package/dist/components/chip/Chip.d.ts +11 -11
- package/dist/components/chip/Chip.js +1 -1
- package/dist/components/chip/Chip.js.map +1 -1
- package/dist/components/chip/ChipGroup.d.ts +1 -3
- package/dist/components/chip/ChipGroup.js.map +1 -1
- package/dist/components/chip-dismissible-group/ChipDismissibleGroupItem.d.ts +4 -4
- package/dist/components/chip-toggle-group/ChipToggleGroupItem.d.ts +4 -4
- package/dist/components/chip-toggle-group/ChipToggleGroupItem.js +1 -1
- package/dist/components/chip-toggle-group/ChipToggleGroupItem.js.map +1 -1
- package/dist/components/chip-toggle-group/ChipToggleGroupRoot.d.ts +2 -6
- package/dist/components/combobox/Combobox.d.ts +10 -10
- package/dist/components/combobox/ComboboxInput.d.ts +8 -8
- package/dist/components/combobox/ComboboxInput.js.map +1 -1
- package/dist/components/combobox/ComboboxList.d.ts +2 -2
- package/dist/components/combobox/ComboboxOption.d.ts +2 -2
- package/dist/components/combobox/ComboboxPopover.d.ts +2 -2
- package/dist/components/data-table/DataTable.d.ts +54 -35
- package/dist/components/data-table/DataTable.types.d.ts +1 -0
- package/dist/components/data-table/DataTable.types.js.map +1 -1
- package/dist/components/data-table/DataTableBulkActionsFloating.d.ts +15 -3
- package/dist/components/data-table/DataTableBulkActionsFloating.js +1 -1
- package/dist/components/data-table/DataTableBulkActionsFloating.js.map +1 -1
- package/dist/components/data-table/DataTableContext.js +1 -1
- package/dist/components/data-table/DataTableContext.js.map +1 -1
- package/dist/components/data-table/DataTableHead.js +1 -1
- package/dist/components/data-table/DataTableHead.js.map +1 -1
- package/dist/components/data-table/DataTableHeaderCell.js +1 -1
- package/dist/components/data-table/DataTableHeaderCell.js.map +1 -1
- package/dist/components/data-table/DataTableLoading.d.ts +13 -4
- package/dist/components/data-table/DataTableMetaData.d.ts +2 -1
- package/dist/components/data-table/DataTableMetaData.js +1 -1
- package/dist/components/data-table/DataTableMetaData.js.map +1 -1
- package/dist/components/data-table/DataTableRow.js +1 -1
- package/dist/components/data-table/DataTableRow.js.map +1 -1
- package/dist/components/data-table/DataTableRowSelectionCheckbox.js +1 -1
- package/dist/components/data-table/DataTableRowSelectionCheckbox.js.map +1 -1
- package/dist/components/data-table/DataTableSelectAllRowsCheckbox.js +1 -1
- package/dist/components/data-table/DataTableSelectAllRowsCheckbox.js.map +1 -1
- package/dist/components/data-table/DataTableTable.d.ts +1 -1
- package/dist/components/data-table/DataTableTable.js +1 -1
- package/dist/components/data-table/DataTableTable.js.map +1 -1
- package/dist/components/data-table/getNewAsyncData.js +1 -1
- package/dist/components/data-table/getNewAsyncData.js.map +1 -1
- package/dist/components/data-table/pagination/Pagination.d.ts +2 -2
- package/dist/components/data-table/pagination/Pagination.js +1 -1
- package/dist/components/data-table/pagination/Pagination.js.map +1 -1
- package/dist/components/dialog/Dialog.d.ts +4 -4
- package/dist/components/dialog/DialogBackground.d.ts +2 -2
- package/dist/components/dialog/DialogContent.d.ts +2 -2
- package/dist/components/dialog/DialogContent.js +1 -1
- package/dist/components/dialog/DialogContent.js.map +1 -1
- package/dist/components/divider/Divider.d.ts +4 -4
- package/dist/components/divider/Divider.js +1 -1
- package/dist/components/divider/Divider.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +6 -6
- package/dist/components/drawer/DrawerContent.d.ts +4 -4
- package/dist/components/drawer/DrawerFooter.d.ts +2 -2
- package/dist/components/drawer/DrawerHeader.d.ts +2 -2
- package/dist/components/drawer/DrawerMain.d.ts +2 -2
- package/dist/components/drawer/DrawerOverlay.d.ts +2 -2
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +8 -8
- package/dist/components/dropdown-menu/DropdownMenuContent.d.ts +2 -2
- package/dist/components/dropdown-menu/DropdownMenuItem.d.ts +2 -2
- package/dist/components/dropdown-menu/DropdownMenuSeparator.d.ts +2 -2
- package/dist/components/dropdown-menu/DropdownMenuTrigger.d.ts +2 -2
- package/dist/components/empty-state/EmptyState.d.ts +17 -17
- package/dist/components/empty-state/EmptyState.js +1 -1
- package/dist/components/empty-state/EmptyState.js.map +1 -1
- package/dist/components/empty-state/EmptyStateBody.d.ts +6 -6
- package/dist/components/empty-state/EmptyStateBody.js +1 -1
- package/dist/components/empty-state/EmptyStateBody.js.map +1 -1
- package/dist/components/empty-state/EmptyStateImage.d.ts +6 -6
- package/dist/components/empty-state/EmptyStateImage.js +1 -1
- package/dist/components/empty-state/EmptyStateImage.js.map +1 -1
- package/dist/components/empty-state/EmptyStateTitle.d.ts +2 -2
- package/dist/components/empty-state/EmptyStateTitle.js +1 -1
- package/dist/components/empty-state/EmptyStateTitle.js.map +1 -1
- package/dist/components/field-wrapper/InlineFieldWrapper.js +1 -1
- package/dist/components/field-wrapper/InlineFieldWrapper.js.map +1 -1
- package/dist/components/flex/Flex.d.ts +2 -2
- package/dist/components/flex/Flex.js +1 -1
- package/dist/components/flex/Flex.js.map +1 -1
- package/dist/components/form/Form.d.ts +3 -3
- package/dist/components/form/Form.js +1 -1
- package/dist/components/form/Form.js.map +1 -1
- package/dist/components/grid/Grid.d.ts +2 -4
- package/dist/components/grid/Grid.js +1 -1
- package/dist/components/grid/Grid.js.map +1 -1
- package/dist/components/heading/Heading.d.ts +2 -2
- package/dist/components/heading/Heading.js +1 -1
- package/dist/components/heading/Heading.js.map +1 -1
- package/dist/components/icon/Icon.d.ts +2 -2
- package/dist/components/icon/Icon.js +1 -1
- package/dist/components/icon/Icon.js.map +1 -1
- package/dist/components/image/Image.d.ts +5 -8
- package/dist/components/image/Image.js +1 -1
- package/dist/components/image/Image.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/inline-message/InlineMessage.d.ts +4 -4
- package/dist/components/input/Input.d.ts +15 -25
- package/dist/components/input/Input.js +1 -1
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/keyboard-shortcut/KeyboardShortcut.d.ts +6 -6
- package/dist/components/keyboard-shortcut/index.d.ts +6 -6
- package/dist/components/label/Label.d.ts +7 -7
- package/dist/components/label/Label.js +1 -1
- package/dist/components/label/Label.js.map +1 -1
- package/dist/components/link/Link.d.ts +3 -5
- package/dist/components/link/Link.js +1 -1
- package/dist/components/link/Link.js.map +1 -1
- package/dist/components/list/List.d.ts +8 -8
- package/dist/components/list/List.js +1 -1
- package/dist/components/list/List.js.map +1 -1
- package/dist/components/loader/Loader.d.ts +2 -2
- package/dist/components/loader/Loader.js +1 -1
- package/dist/components/loader/Loader.js.map +1 -1
- package/dist/components/markdown-content/MarkdownContent.d.ts +3 -3
- package/dist/components/markdown-content/MarkdownContent.js +1 -1
- package/dist/components/markdown-content/MarkdownContent.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownCode.js +1 -1
- package/dist/components/markdown-content/components/MarkdownCode.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownEmphasis.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownImage.js +1 -1
- package/dist/components/markdown-content/components/MarkdownImage.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownLink.js +1 -1
- package/dist/components/markdown-content/components/MarkdownLink.js.map +1 -1
- package/dist/components/navigation/NavigationMenu.d.ts +25 -25
- package/dist/components/navigation/NavigationMenu.js +1 -1
- package/dist/components/navigation/NavigationMenu.js.map +1 -1
- package/dist/components/navigation/NavigationMenu.styles.js +1 -1
- package/dist/components/navigation/NavigationMenu.styles.js.map +1 -1
- package/dist/components/navigation/NavigationMenuDropdownContent.d.ts +2 -2
- package/dist/components/navigation/NavigationMenuDropdownContent.js +1 -1
- package/dist/components/navigation/NavigationMenuDropdownContent.js.map +1 -1
- package/dist/components/navigation/NavigationMenuDropdownItem.d.ts +12 -12
- package/dist/components/navigation/NavigationMenuDropdownTrigger.d.ts +3 -3
- package/dist/components/navigation/NavigationMenuLink.d.ts +6 -6
- package/dist/components/navigation/NavigationMenuLink.js +1 -1
- package/dist/components/navigation/NavigationMenuLink.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVertical.d.ts +22 -24
- package/dist/components/navigation-menu-vertical/NavigationMenuVertical.styles.js +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVertical.styles.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionTrigger.d.ts +3 -3
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalIcon.d.ts +4 -4
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalLink.d.ts +4 -6
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalLink.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalList.d.ts +2 -2
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalList.js +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalList.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalText.d.ts +7 -7
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalText.js +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalText.js.map +1 -1
- package/dist/components/notification-badge/NotificationBadge.js +1 -1
- package/dist/components/notification-badge/NotificationBadge.js.map +1 -1
- package/dist/components/number-input/NumberInput.d.ts +1 -0
- package/dist/components/number-input/NumberInput.js +1 -1
- package/dist/components/number-input/NumberInput.js.map +1 -1
- package/dist/components/number-input/NumberInputStepper.d.ts +6 -6
- package/dist/components/number-input/NumberInputStepper.js +1 -1
- package/dist/components/number-input/NumberInputStepper.js.map +1 -1
- package/dist/components/pagination/PaginationNextButton.d.ts +4 -5
- package/dist/components/pagination/PaginationPage.js +1 -1
- package/dist/components/pagination/PaginationPage.js.map +1 -1
- package/dist/components/pagination/PaginationPopover.js +1 -1
- package/dist/components/pagination/PaginationPopover.js.map +1 -1
- package/dist/components/pagination/PaginationPreviousButton.d.ts +4 -5
- package/dist/components/popover/Popover.d.ts +4 -3
- package/dist/components/popover/Popover.js +1 -1
- package/dist/components/popover/Popover.js.map +1 -1
- package/dist/components/popover/PopoverContent.d.ts +3 -3
- package/dist/components/popover/PopoverContent.js +1 -1
- package/dist/components/popover/PopoverContent.js.map +1 -1
- package/dist/components/progress-bar/ProgressBar.d.ts +2 -2
- package/dist/components/progress-bar/ProgressBar.js +1 -1
- package/dist/components/progress-bar/ProgressBar.js.map +1 -1
- package/dist/components/radio-button/RadioButton.d.ts +2 -2
- package/dist/components/radio-button/RadioButton.js +1 -1
- package/dist/components/radio-button/RadioButton.js.map +1 -1
- package/dist/components/radio-button/RadioButtonGroup.d.ts +3 -3
- package/dist/components/radio-button-field/RadioButtonField.d.ts +2 -2
- package/dist/components/radio-button-field/RadioButtonField.js +1 -1
- package/dist/components/radio-button-field/RadioButtonField.js.map +1 -1
- package/dist/components/radio-card/RadioCard.d.ts +5 -5
- package/dist/components/radio-card/RadioCard.js +1 -1
- package/dist/components/radio-card/RadioCard.js.map +1 -1
- package/dist/components/section-message/SectionMessage.d.ts +14 -12
- package/dist/components/section-message/SectionMessage.js +1 -1
- package/dist/components/section-message/SectionMessage.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.d.ts +20 -20
- package/dist/components/segmented-control/SegmentedControlContent.d.ts +2 -2
- package/dist/components/segmented-control/SegmentedControlDescription.d.ts +6 -6
- package/dist/components/segmented-control/SegmentedControlDescription.js +1 -1
- package/dist/components/segmented-control/SegmentedControlDescription.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlHeading.d.ts +6 -6
- package/dist/components/segmented-control/SegmentedControlHeading.js +1 -1
- package/dist/components/segmented-control/SegmentedControlHeading.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlItem.d.ts +4 -4
- package/dist/components/segmented-control/SegmentedControlItem.js +1 -1
- package/dist/components/segmented-control/SegmentedControlItem.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlItemList.js +1 -1
- package/dist/components/segmented-control/SegmentedControlItemList.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlRoot.d.ts +3 -3
- package/dist/components/segmented-control/SegmentedControlRoot.js +1 -1
- package/dist/components/segmented-control/SegmentedControlRoot.js.map +1 -1
- package/dist/components/select/Select.d.ts +3 -3
- package/dist/components/select/Select.js +1 -1
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/side-bar/SideBar.d.ts +25 -28
- package/dist/components/side-bar/SideBarComponents.d.ts +22 -25
- package/dist/components/skeleton-loader/Skeleton.d.ts +5 -0
- package/dist/components/skeleton-loader/Skeleton.js +2 -0
- package/dist/components/skeleton-loader/Skeleton.js.map +1 -0
- package/dist/components/skeleton-loader/SkeletonButton.d.ts +5 -0
- package/dist/components/skeleton-loader/SkeletonButton.js +2 -0
- package/dist/components/skeleton-loader/SkeletonButton.js.map +1 -0
- package/dist/components/skeleton-loader/SkeletonCard.d.ts +5 -0
- package/dist/components/skeleton-loader/SkeletonCard.js +2 -0
- package/dist/components/skeleton-loader/SkeletonCard.js.map +1 -0
- package/dist/components/skeleton-loader/SkeletonDoughnutChart.d.ts +4 -0
- package/dist/components/skeleton-loader/SkeletonDoughnutChart.js +2 -0
- package/dist/components/skeleton-loader/SkeletonDoughnutChart.js.map +1 -0
- package/dist/components/skeleton-loader/SkeletonHeading.d.ts +5 -0
- package/dist/components/skeleton-loader/SkeletonHeading.js +2 -0
- package/dist/components/skeleton-loader/SkeletonHeading.js.map +1 -0
- package/dist/components/skeleton-loader/SkeletonTable.d.ts +7 -0
- package/dist/components/skeleton-loader/SkeletonTable.js +2 -0
- package/dist/components/skeleton-loader/SkeletonTable.js.map +1 -0
- package/dist/components/skeleton-loader/SkeletonTabs.d.ts +6 -0
- package/dist/components/skeleton-loader/SkeletonTabs.js +2 -0
- package/dist/components/skeleton-loader/SkeletonTabs.js.map +1 -0
- package/dist/components/skeleton-loader/index.d.ts +7 -0
- package/dist/components/skeleton-loader/index.js +2 -0
- package/dist/components/skeleton-loader/index.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +6 -6
- package/dist/components/slider/Slider.js +1 -1
- package/dist/components/slider/Slider.js.map +1 -1
- package/dist/components/slider/SliderSteps.js +1 -1
- package/dist/components/slider/SliderSteps.js.map +1 -1
- package/dist/components/slider/SliderValue.js +1 -1
- package/dist/components/slider/SliderValue.js.map +1 -1
- package/dist/components/sortable/Handle.d.ts +5 -6
- package/dist/components/spacer/Spacer.d.ts +2 -2
- package/dist/components/stepper/StepperStepBullet.d.ts +4 -4
- package/dist/components/stepper/StepperStepBullet.js +1 -1
- package/dist/components/stepper/StepperStepBullet.js.map +1 -1
- package/dist/components/stepper/StepperStepContainer.d.ts +7 -7
- package/dist/components/stepper/StepperStepLabel.d.ts +8 -8
- package/dist/components/stepper/StepperSteps.js +1 -1
- package/dist/components/stepper/StepperSteps.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +3 -3
- package/dist/components/switch/Switch.js +1 -1
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/table/Table.d.ts +22 -22
- package/dist/components/table/Table.js +1 -1
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/TableBody.d.ts +3 -3
- package/dist/components/table/TableCell.d.ts +2 -2
- package/dist/components/table/TableCell.js +1 -1
- package/dist/components/table/TableCell.js.map +1 -1
- package/dist/components/table/TableFooter.d.ts +2 -2
- package/dist/components/table/TableFooterCell.d.ts +2 -2
- package/dist/components/table/TableHeader.d.ts +4 -4
- package/dist/components/table/TableHeaderCell.d.ts +2 -2
- package/dist/components/table/TableRow.d.ts +2 -2
- package/dist/components/table/TableStickyColumnsContainer.js +1 -1
- package/dist/components/table/TableStickyColumnsContainer.js.map +1 -1
- package/dist/components/table/useStickyColumnsCss.d.ts +3 -8
- package/dist/components/table/useStickyColumnsCss.js +1 -1
- package/dist/components/table/useStickyColumnsCss.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +8 -8
- package/dist/components/tabs/TabsContent.d.ts +2 -2
- package/dist/components/tabs/TabsTrigger.d.ts +2 -2
- package/dist/components/tabs/TabsTrigger.js +1 -1
- package/dist/components/tabs/TabsTrigger.js.map +1 -1
- package/dist/components/tabs/TabsTriggerList.d.ts +2 -2
- package/dist/components/text/Text.d.ts +4 -19
- package/dist/components/text/Text.js +1 -1
- package/dist/components/text/Text.js.map +1 -1
- package/dist/components/textarea/Textarea.d.ts +8 -8
- package/dist/components/textarea/Textarea.js +1 -1
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/tile/Tile.d.ts +2 -2
- package/dist/components/tile/Tile.js +1 -1
- package/dist/components/tile/Tile.js.map +1 -1
- package/dist/components/tile/TileGroup.d.ts +2 -2
- package/dist/components/tile-interactive/TileInteractive.d.ts +5 -7
- package/dist/components/tile-interactive/TileInteractive.js +1 -1
- package/dist/components/tile-interactive/TileInteractive.js.map +1 -1
- package/dist/components/tile-toggle-group/TileToggleGroupItem.d.ts +5 -7
- package/dist/components/tile-toggle-group/TileToggleGroupItem.js +1 -1
- package/dist/components/tile-toggle-group/TileToggleGroupItem.js.map +1 -1
- package/dist/components/tile-toggle-group/TileToggleGroupRoot.d.ts +6 -6
- package/dist/components/tile-toggle-group/TileToggleGroupRoot.js +1 -1
- package/dist/components/tile-toggle-group/TileToggleGroupRoot.js.map +1 -1
- package/dist/components/toast/Toast.d.ts +4 -4
- package/dist/components/toast/Toast.js +1 -1
- package/dist/components/toast/Toast.js.map +1 -1
- package/dist/components/toast/ToastProvider.js +1 -1
- package/dist/components/toast/ToastProvider.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupButton.d.ts +5 -12
- package/dist/components/toggle-group/ToggleGroupButton.js +1 -1
- package/dist/components/toggle-group/ToggleGroupButton.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupItem.d.ts +5 -3
- package/dist/components/toggle-group/ToggleGroupItem.js +1 -1
- package/dist/components/toggle-group/ToggleGroupItem.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupRoot.d.ts +18 -42
- package/dist/components/toggle-group/index.d.ts +16 -40
- package/dist/components/tooltip/Tooltip.d.ts +3 -3
- package/dist/components/tooltip/TooltipContent.d.ts +3 -3
- package/dist/components/top-bar/TopBar.d.ts +29 -20
- package/dist/components/top-bar/TopBar.js +1 -1
- package/dist/components/top-bar/TopBar.js.map +1 -1
- package/dist/components/top-bar/TopBarBrand.d.ts +8 -8
- package/dist/components/tree/Tree.d.ts +19 -19
- package/dist/components/tree/TreeCollapsible.d.ts +2 -2
- package/dist/components/tree/TreeCollapsibleContent.d.ts +2 -2
- package/dist/components/tree/TreeIcon.d.ts +4 -4
- package/dist/components/tree/TreeItemContent.d.ts +2 -2
- package/dist/components/tree/TreeList.js +1 -1
- package/dist/components/tree/TreeList.js.map +1 -1
- package/dist/components/tree/TreeListItem.d.ts +2 -2
- package/dist/components/tree/TreeText.js +1 -1
- package/dist/components/tree/TreeText.js.map +1 -1
- package/dist/components/video/Video.js +1 -1
- package/dist/components/video/Video.js.map +1 -1
- package/dist/docgen.json +1 -1
- package/dist/experiments/color-scheme/ColorScheme.config.js +1 -1
- package/dist/experiments/color-scheme/ColorScheme.config.js.map +1 -1
- package/dist/experiments/color-scheme/ColorScheme.js +1 -1
- package/dist/experiments/color-scheme/ColorScheme.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/styled.d.ts +16 -7
- package/dist/styled.js +1 -1
- package/dist/styled.js.map +1 -1
- package/dist/utilities/no-overflow-wrapper/NoOverflowWrapper.d.ts +2 -2
- package/package.json +32 -13
- package/scripts/generate-responsive-variant-classes.mjs +399 -0
- package/scripts/vite-plugin-tailwind-responsive-variant-classes.mjs +93 -0
- package/src/index.css +55 -5
- package/src/responsive-variant-classes.css +15 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
import fs from 'node:fs'
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import { fileURLToPath } from 'node:url'
|
|
4
|
+
import g from 'glob'
|
|
5
|
+
import { Project, SyntaxKind } from 'ts-morph'
|
|
6
|
+
|
|
7
|
+
const { glob } = g
|
|
8
|
+
|
|
9
|
+
function extractArrayElements(node) {
|
|
10
|
+
if (node.getKind() !== SyntaxKind.ArrayLiteralExpression) return []
|
|
11
|
+
|
|
12
|
+
return node
|
|
13
|
+
.getElements()
|
|
14
|
+
.map((element) => {
|
|
15
|
+
if (element.getKind() === SyntaxKind.StringLiteral) {
|
|
16
|
+
try {
|
|
17
|
+
// Try to get the literal value first (handles escaped characters correctly)
|
|
18
|
+
return element.getLiteralValue()
|
|
19
|
+
} catch {
|
|
20
|
+
// Fallback: if getLiteralValue() fails, try to extract from text
|
|
21
|
+
// This can happen with malformed strings or edge cases
|
|
22
|
+
let text = element.getText().trim()
|
|
23
|
+
// Remove surrounding quotes
|
|
24
|
+
const quoteMatch = text.match(/^(['"`])([\s\S]*)\1$/)
|
|
25
|
+
if (quoteMatch) {
|
|
26
|
+
return quoteMatch[2]
|
|
27
|
+
}
|
|
28
|
+
// Remove quotes from start/end if not matched
|
|
29
|
+
return text.replace(/^['"`]+|['"`]+$/g, '').trim()
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Fallback for non-string-literal elements (template literals, etc.)
|
|
33
|
+
let text = element.getText().trim()
|
|
34
|
+
// Remove surrounding quotes (handles single, double, or backtick quotes at start/end)
|
|
35
|
+
const quoteMatch = text.match(/^(['"`])([\s\S]*)\1$/)
|
|
36
|
+
if (quoteMatch) {
|
|
37
|
+
text = quoteMatch[2]
|
|
38
|
+
} else {
|
|
39
|
+
// If no matching quotes, try removing any quotes from start/end separately
|
|
40
|
+
text = text.replace(/^['"`]+|['"`]+$/g, '')
|
|
41
|
+
}
|
|
42
|
+
return text.trim()
|
|
43
|
+
})
|
|
44
|
+
.filter(Boolean)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function getPropertyValue(obj, propName) {
|
|
48
|
+
const prop = obj
|
|
49
|
+
.getProperties()
|
|
50
|
+
.find(
|
|
51
|
+
(p) =>
|
|
52
|
+
p.getKind() === SyntaxKind.PropertyAssignment &&
|
|
53
|
+
p
|
|
54
|
+
.asKindOrThrow(SyntaxKind.PropertyAssignment)
|
|
55
|
+
.getNameNode()
|
|
56
|
+
.getText()
|
|
57
|
+
.replace(/['"]/g, '') === propName
|
|
58
|
+
)
|
|
59
|
+
return prop?.asKindOrThrow(SyntaxKind.PropertyAssignment).getInitializer()
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function isEnabledResponsiveVariants(args) {
|
|
63
|
+
if (args.length < 3) return false
|
|
64
|
+
const optionsArg = args[2]
|
|
65
|
+
if (optionsArg.getKind() !== SyntaxKind.ObjectLiteralExpression) return false
|
|
66
|
+
|
|
67
|
+
const enabledProp = getPropertyValue(
|
|
68
|
+
optionsArg.asKindOrThrow(SyntaxKind.ObjectLiteralExpression),
|
|
69
|
+
'enabledResponsiveVariants'
|
|
70
|
+
)
|
|
71
|
+
return enabledProp?.getKind() === SyntaxKind.TrueKeyword
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function extractClasses(optionValue) {
|
|
75
|
+
if (optionValue.getKind() === SyntaxKind.ArrayLiteralExpression) {
|
|
76
|
+
return extractArrayElements(optionValue)
|
|
77
|
+
}
|
|
78
|
+
if (optionValue.getKind() === SyntaxKind.StringLiteral) {
|
|
79
|
+
return [optionValue.getLiteralValue()]
|
|
80
|
+
}
|
|
81
|
+
// Handle template literals or other string-like expressions
|
|
82
|
+
if (optionValue.getKind() === SyntaxKind.TemplateExpression) {
|
|
83
|
+
// For template literals, try to get the text and clean it up
|
|
84
|
+
const text = optionValue.getText().trim()
|
|
85
|
+
// Remove backticks if present
|
|
86
|
+
return [text.replace(/^`|`$/g, '')]
|
|
87
|
+
}
|
|
88
|
+
// Fallback: try to extract as text if it looks like a string
|
|
89
|
+
const text = optionValue.getText().trim()
|
|
90
|
+
if (
|
|
91
|
+
(text.startsWith("'") && text.endsWith("'")) ||
|
|
92
|
+
(text.startsWith('"') && text.endsWith('"')) ||
|
|
93
|
+
(text.startsWith('`') && text.endsWith('`'))
|
|
94
|
+
) {
|
|
95
|
+
// Remove surrounding quotes
|
|
96
|
+
return [text.slice(1, -1)]
|
|
97
|
+
}
|
|
98
|
+
return []
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function extractVariantsFromAST(sourceFile) {
|
|
102
|
+
const variants = {}
|
|
103
|
+
|
|
104
|
+
for (const call of sourceFile.getDescendantsOfKind(
|
|
105
|
+
SyntaxKind.CallExpression
|
|
106
|
+
)) {
|
|
107
|
+
const expression = call.getExpression()
|
|
108
|
+
// Check if the expression is 'styled' (trim to handle any whitespace edge cases)
|
|
109
|
+
const expressionText = expression.getText().trim()
|
|
110
|
+
if (expressionText !== 'styled') continue
|
|
111
|
+
|
|
112
|
+
const args = call.getArguments()
|
|
113
|
+
if (args.length < 2) continue
|
|
114
|
+
|
|
115
|
+
const configArg = args[1]
|
|
116
|
+
if (configArg.getKind() !== SyntaxKind.ObjectLiteralExpression) continue
|
|
117
|
+
|
|
118
|
+
if (!isEnabledResponsiveVariants(args)) continue
|
|
119
|
+
|
|
120
|
+
const configObj = configArg.asKindOrThrow(
|
|
121
|
+
SyntaxKind.ObjectLiteralExpression
|
|
122
|
+
)
|
|
123
|
+
const variantsValue = getPropertyValue(configObj, 'variants')
|
|
124
|
+
|
|
125
|
+
if (
|
|
126
|
+
!variantsValue ||
|
|
127
|
+
variantsValue.getKind() !== SyntaxKind.ObjectLiteralExpression
|
|
128
|
+
) {
|
|
129
|
+
continue
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const variantsObj = variantsValue.asKindOrThrow(
|
|
133
|
+
SyntaxKind.ObjectLiteralExpression
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
for (const variantProp of variantsObj.getProperties()) {
|
|
137
|
+
if (variantProp.getKind() !== SyntaxKind.PropertyAssignment) continue
|
|
138
|
+
|
|
139
|
+
const variant = variantProp.asKindOrThrow(SyntaxKind.PropertyAssignment)
|
|
140
|
+
const variantKey = variant.getNameNode().getText().replace(/['"]/g, '')
|
|
141
|
+
const variantValue = variant.getInitializer()
|
|
142
|
+
|
|
143
|
+
if (
|
|
144
|
+
!variantValue ||
|
|
145
|
+
variantValue.getKind() !== SyntaxKind.ObjectLiteralExpression
|
|
146
|
+
) {
|
|
147
|
+
continue
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const variantOptionsObj = variantValue.asKindOrThrow(
|
|
151
|
+
SyntaxKind.ObjectLiteralExpression
|
|
152
|
+
)
|
|
153
|
+
const options = {}
|
|
154
|
+
|
|
155
|
+
for (const optionProp of variantOptionsObj.getProperties()) {
|
|
156
|
+
if (optionProp.getKind() !== SyntaxKind.PropertyAssignment) continue
|
|
157
|
+
|
|
158
|
+
const option = optionProp.asKindOrThrow(SyntaxKind.PropertyAssignment)
|
|
159
|
+
const optionKey = option.getNameNode().getText().replace(/['"]/g, '')
|
|
160
|
+
const optionValue = option.getInitializer()
|
|
161
|
+
|
|
162
|
+
if (!optionValue) continue
|
|
163
|
+
|
|
164
|
+
const classes = extractClasses(optionValue)
|
|
165
|
+
if (classes.length > 0) {
|
|
166
|
+
options[optionKey] = classes
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (Object.keys(options).length > 0) {
|
|
171
|
+
// Merge variants if the same variant key already exists (from another styled() call)
|
|
172
|
+
if (variants[variantKey]) {
|
|
173
|
+
const existing = variants[variantKey]
|
|
174
|
+
const merged = { ...existing }
|
|
175
|
+
for (const [optionKey, optionValue] of Object.entries(options)) {
|
|
176
|
+
if (Array.isArray(optionValue)) {
|
|
177
|
+
// Merge arrays and deduplicate
|
|
178
|
+
const existingClasses = Array.isArray(merged[optionKey])
|
|
179
|
+
? merged[optionKey]
|
|
180
|
+
: []
|
|
181
|
+
merged[optionKey] = [
|
|
182
|
+
...new Set([...existingClasses, ...optionValue])
|
|
183
|
+
]
|
|
184
|
+
} else {
|
|
185
|
+
merged[optionKey] = optionValue
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
variants[variantKey] = merged
|
|
189
|
+
} else {
|
|
190
|
+
variants[variantKey] = options
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return Object.keys(variants).length > 0 ? variants : null
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function generateResponsiveVariantClasses(variants) {
|
|
200
|
+
const breakpoints = ['sm', 'md', 'lg', 'xl']
|
|
201
|
+
const classes = new Set()
|
|
202
|
+
|
|
203
|
+
for (const variantOptions of Object.values(variants)) {
|
|
204
|
+
for (const classList of Object.values(variantOptions)) {
|
|
205
|
+
if (Array.isArray(classList)) {
|
|
206
|
+
for (const cls of classList) {
|
|
207
|
+
const trimmed = typeof cls === 'string' ? cls.trim() : ''
|
|
208
|
+
if (trimmed) {
|
|
209
|
+
classes.add(trimmed)
|
|
210
|
+
for (const bp of breakpoints) {
|
|
211
|
+
classes.add(`${bp}:${trimmed}`)
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return Array.from(classes).sort()
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function extractUniqueClasses(allClasses) {
|
|
223
|
+
const uniqueClasses = new Set()
|
|
224
|
+
|
|
225
|
+
for (const cls of allClasses) {
|
|
226
|
+
const match = cls.match(/^(sm|md|lg|xl):(.+)$/)
|
|
227
|
+
uniqueClasses.add(match ? match[2] : cls)
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
return Array.from(uniqueClasses).sort()
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Generate CSS file content with @source inline() patterns
|
|
235
|
+
*/
|
|
236
|
+
function generateCSSFileContent(allClasses) {
|
|
237
|
+
const uniqueClasses = extractUniqueClasses(allClasses)
|
|
238
|
+
const breakpointPrefix = `{,sm:,md:,lg:,xl:}`
|
|
239
|
+
const classPattern = `{${uniqueClasses.join(',')}}`
|
|
240
|
+
const pattern = `@source inline('${breakpointPrefix}${classPattern}');`
|
|
241
|
+
|
|
242
|
+
return `/**
|
|
243
|
+
* Tailwind Responsive Variant Classes Safelist (CSS Format)
|
|
244
|
+
*
|
|
245
|
+
* ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY ⚠️
|
|
246
|
+
*
|
|
247
|
+
* This file is automatically generated by the build script: scripts/generate-responsive-variant-classes.mjs
|
|
248
|
+
* Run \`yarn build:responsive-variant-classes\` to regenerate this file.
|
|
249
|
+
*
|
|
250
|
+
* This file ensures Tailwind includes dynamically generated responsive classes
|
|
251
|
+
* when using responsive variants like: gap={{ '@initial': 1, '@sm': 3 }}
|
|
252
|
+
*
|
|
253
|
+
* Uses Tailwind v4's @source inline() pattern syntax for efficient class detection.
|
|
254
|
+
*/
|
|
255
|
+
|
|
256
|
+
${pattern}
|
|
257
|
+
`
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Main function to generate responsive variant classes safelist
|
|
262
|
+
*
|
|
263
|
+
* @param {Object} options - Generation options
|
|
264
|
+
* @param {string} [options.cwd] - Working directory
|
|
265
|
+
* @param {string|string[]} [options.input] - Input glob pattern(s). Can be a string or array of strings
|
|
266
|
+
* @param {string} [options.outputPath] - Output file path relative to cwd
|
|
267
|
+
*/
|
|
268
|
+
async function generateResponsiveVariantClassesSafelist(options = {}) {
|
|
269
|
+
const {
|
|
270
|
+
cwd = process.cwd(),
|
|
271
|
+
input = 'src/**/*.{ts,tsx}',
|
|
272
|
+
outputPath = 'src/responsive-variant-classes.css'
|
|
273
|
+
} = options
|
|
274
|
+
try {
|
|
275
|
+
console.log('🔍 Scanning component files for styled() variants...\n')
|
|
276
|
+
|
|
277
|
+
const project = new Project({
|
|
278
|
+
tsConfigFilePath: path.resolve(cwd, 'tsconfig.json'),
|
|
279
|
+
skipAddingFilesFromTsConfig: true
|
|
280
|
+
})
|
|
281
|
+
|
|
282
|
+
const patterns = Array.isArray(input) ? input : [input]
|
|
283
|
+
const ignorePatterns = [
|
|
284
|
+
'**/*.test.tsx',
|
|
285
|
+
'**/*.test.ts',
|
|
286
|
+
'**/__snapshots__/**',
|
|
287
|
+
'**/node_modules/**',
|
|
288
|
+
'**/responsive-variant-classes.css'
|
|
289
|
+
]
|
|
290
|
+
|
|
291
|
+
const files = new Set()
|
|
292
|
+
for (const pattern of patterns) {
|
|
293
|
+
const matches = glob.sync(pattern, { cwd, ignore: ignorePatterns })
|
|
294
|
+
matches.forEach((file) => files.add(file))
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
const fileArray = Array.from(files)
|
|
298
|
+
console.log(`Found ${fileArray.length} component files to scan\n`)
|
|
299
|
+
|
|
300
|
+
const allVariants = {}
|
|
301
|
+
let processedFiles = 0
|
|
302
|
+
|
|
303
|
+
for (const filePath of fileArray) {
|
|
304
|
+
try {
|
|
305
|
+
const fullPath = path.isAbsolute(filePath)
|
|
306
|
+
? filePath
|
|
307
|
+
: path.resolve(cwd, filePath)
|
|
308
|
+
|
|
309
|
+
if (!fs.readFileSync(fullPath, 'utf-8').includes('styled(')) continue
|
|
310
|
+
|
|
311
|
+
const sourceFile = project.addSourceFileAtPath(fullPath)
|
|
312
|
+
const variants = extractVariantsFromAST(sourceFile)
|
|
313
|
+
|
|
314
|
+
if (variants) {
|
|
315
|
+
console.log(` ✓ ${path.relative(cwd, fullPath)}`)
|
|
316
|
+
for (const [key, value] of Object.entries(variants)) {
|
|
317
|
+
// Merge variant options, combining arrays instead of overwriting
|
|
318
|
+
if (allVariants[key]) {
|
|
319
|
+
const merged = { ...allVariants[key] }
|
|
320
|
+
for (const [optionKey, optionValue] of Object.entries(value)) {
|
|
321
|
+
if (Array.isArray(optionValue)) {
|
|
322
|
+
// Merge arrays and deduplicate
|
|
323
|
+
const existing = Array.isArray(merged[optionKey])
|
|
324
|
+
? merged[optionKey]
|
|
325
|
+
: []
|
|
326
|
+
merged[optionKey] = [
|
|
327
|
+
...new Set([...existing, ...optionValue])
|
|
328
|
+
]
|
|
329
|
+
} else {
|
|
330
|
+
merged[optionKey] = optionValue
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
allVariants[key] = merged
|
|
334
|
+
} else {
|
|
335
|
+
allVariants[key] = value
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
processedFiles++
|
|
339
|
+
}
|
|
340
|
+
} catch (error) {
|
|
341
|
+
console.warn(` ⚠️ Error processing ${filePath}:`, error.message)
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
if (Object.keys(allVariants).length === 0) {
|
|
346
|
+
console.log('\n⚠️ No variants found in component files')
|
|
347
|
+
return
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
console.log(`\n📦 Extracted variants from ${processedFiles} files`)
|
|
351
|
+
console.log(
|
|
352
|
+
` Found ${Object.keys(allVariants).length} unique variant keys\n`
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
// Generate all responsive classes
|
|
356
|
+
const allClasses = generateResponsiveVariantClasses(allVariants)
|
|
357
|
+
|
|
358
|
+
console.log(
|
|
359
|
+
`✨ Generated ${allClasses.length} responsive variant class combinations\n`
|
|
360
|
+
)
|
|
361
|
+
|
|
362
|
+
// Generate and write the CSS file
|
|
363
|
+
const cssContent = generateCSSFileContent(allClasses)
|
|
364
|
+
const cssOutputPath = path.resolve(cwd, outputPath)
|
|
365
|
+
fs.writeFileSync(cssOutputPath, cssContent, 'utf-8')
|
|
366
|
+
|
|
367
|
+
console.log(`✅ Generated ${path.relative(cwd, cssOutputPath)}`)
|
|
368
|
+
console.log(` Contains ${allClasses.length} variant class combinations\n`)
|
|
369
|
+
} catch (error) {
|
|
370
|
+
console.error('❌ Error generating responsive variant classes:', error)
|
|
371
|
+
process.exit(1)
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// Export the function for use in other modules
|
|
376
|
+
export { generateResponsiveVariantClassesSafelist }
|
|
377
|
+
|
|
378
|
+
// Export internal functions for testing
|
|
379
|
+
export {
|
|
380
|
+
extractArrayElements,
|
|
381
|
+
extractClasses,
|
|
382
|
+
extractVariantsFromAST,
|
|
383
|
+
generateResponsiveVariantClasses,
|
|
384
|
+
generateCSSFileContent
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
// Run the script if this file is executed directly (not imported)
|
|
388
|
+
// Only execute if import.meta.url is available (skip in Jest/test environments where it may be undefined)
|
|
389
|
+
try {
|
|
390
|
+
if (import.meta.url) {
|
|
391
|
+
const currentFileUrl = fileURLToPath(import.meta.url)
|
|
392
|
+
if (process.argv[1] === currentFileUrl) {
|
|
393
|
+
generateResponsiveVariantClassesSafelist()
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
} catch {
|
|
397
|
+
// Ignore errors in test environments where import.meta.url might not work correctly
|
|
398
|
+
// This allows the module to be imported in tests without errors
|
|
399
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import path from 'path'
|
|
2
|
+
import { minimatch } from 'minimatch'
|
|
3
|
+
|
|
4
|
+
import { generateResponsiveVariantClassesSafelist } from './generate-responsive-variant-classes.mjs'
|
|
5
|
+
|
|
6
|
+
export function tailwindResponsiveVariantClasses(options = {}) {
|
|
7
|
+
const {
|
|
8
|
+
input = ['src/**/*.{ts,tsx}'],
|
|
9
|
+
cwd = process.cwd(),
|
|
10
|
+
outputPath = 'src/responsive-variant-classes.css'
|
|
11
|
+
} = options
|
|
12
|
+
|
|
13
|
+
let isGenerating = false
|
|
14
|
+
let generateTimeout = null
|
|
15
|
+
|
|
16
|
+
// Normalize input to always be an array
|
|
17
|
+
const patterns = Array.isArray(input) ? input : [input]
|
|
18
|
+
|
|
19
|
+
const matchesPattern = (filePath) => {
|
|
20
|
+
const relativePath = path.relative(cwd, filePath).replace(/\\/g, '/')
|
|
21
|
+
return patterns.some(
|
|
22
|
+
(pattern) =>
|
|
23
|
+
typeof pattern === 'string' && minimatch(relativePath, pattern)
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async function generateResponsiveClasses() {
|
|
28
|
+
if (isGenerating) return Promise.resolve()
|
|
29
|
+
|
|
30
|
+
isGenerating = true
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
await generateResponsiveVariantClassesSafelist({
|
|
34
|
+
cwd,
|
|
35
|
+
input,
|
|
36
|
+
outputPath
|
|
37
|
+
})
|
|
38
|
+
console.log('[responsive-classes] ✓ Generated responsive variant classes')
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error(
|
|
41
|
+
'[responsive-classes] Error generating classes:',
|
|
42
|
+
error.message
|
|
43
|
+
)
|
|
44
|
+
throw error
|
|
45
|
+
} finally {
|
|
46
|
+
isGenerating = false
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function debouncedGenerate() {
|
|
51
|
+
if (generateTimeout) clearTimeout(generateTimeout)
|
|
52
|
+
generateTimeout = setTimeout(() => {
|
|
53
|
+
generateResponsiveClasses().catch((error) => {
|
|
54
|
+
console.warn('[responsive-classes] Generation failed:', error.message)
|
|
55
|
+
})
|
|
56
|
+
}, 500)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
name: 'vite-plugin-responsive-classes',
|
|
61
|
+
enforce: 'pre',
|
|
62
|
+
|
|
63
|
+
async configResolved() {
|
|
64
|
+
try {
|
|
65
|
+
await generateResponsiveClasses()
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.warn(
|
|
68
|
+
'[responsive-classes] Initial generation failed:',
|
|
69
|
+
error.message
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
configureServer(server) {
|
|
75
|
+
const handleFileChange = (file) => {
|
|
76
|
+
if (matchesPattern(file)) {
|
|
77
|
+
debouncedGenerate()
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
server.watcher.on('change', handleFileChange)
|
|
82
|
+
server.watcher.on('add', handleFileChange)
|
|
83
|
+
server.watcher.on('unlink', handleFileChange)
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
handleHotUpdate({ file }) {
|
|
87
|
+
if (matchesPattern(file)) {
|
|
88
|
+
debouncedGenerate()
|
|
89
|
+
return []
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
package/src/index.css
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
@import '
|
|
2
|
-
|
|
3
|
-
@import '@atom-learning/theme/lib/theme-atom.css';
|
|
4
|
-
|
|
5
|
-
@source '../src/';
|
|
1
|
+
@import './responsive-variant-classes.css';
|
|
6
2
|
|
|
7
3
|
@theme {
|
|
8
4
|
--default-font-family: var(--font-body);
|
|
@@ -10,6 +6,23 @@
|
|
|
10
6
|
|
|
11
7
|
--bg-chevron: url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20stroke%3D%22%23757575%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%20color%3D%22%23757575%22%3E%3Cpolyline%20points%3D%226%2010%2012%2016%2018%2010%22%2F%3E%3C%2Fsvg%3E);
|
|
12
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Font Feature Settings for Inter
|
|
11
|
+
*
|
|
12
|
+
* https://rsms.me/inter/#feature-examples
|
|
13
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings
|
|
14
|
+
*
|
|
15
|
+
* These font-settings apply various character variants and stylistic alternatives
|
|
16
|
+
* to improve the readability of text.
|
|
17
|
+
*
|
|
18
|
+
* This will usually be applied across all app UI when used by a student.
|
|
19
|
+
*/
|
|
20
|
+
--readability-features: 'cv02, cv04, cv05, cv08, cv11, ss03';
|
|
21
|
+
--readability-number-features: 'cv02, cv04, tnum';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Animations
|
|
25
|
+
*/
|
|
13
26
|
--animate-accordion-open: accordion-open 300ms ease-out;
|
|
14
27
|
--animate-accordion-close: accordion-close 300ms ease-out;
|
|
15
28
|
|
|
@@ -93,6 +106,20 @@
|
|
|
93
106
|
translate: -50% 50vh;
|
|
94
107
|
}
|
|
95
108
|
}
|
|
109
|
+
|
|
110
|
+
--animate-shimmer: shimmer 2000ms ease-in-out 500ms infinite;
|
|
111
|
+
|
|
112
|
+
@keyframes shimmer {
|
|
113
|
+
0% {
|
|
114
|
+
opacity: 1
|
|
115
|
+
}
|
|
116
|
+
50% {
|
|
117
|
+
opacity: 0.4
|
|
118
|
+
}
|
|
119
|
+
100% {
|
|
120
|
+
opacity: 1
|
|
121
|
+
}
|
|
122
|
+
}
|
|
96
123
|
}
|
|
97
124
|
|
|
98
125
|
@utility animation-delay-* {
|
|
@@ -131,3 +158,26 @@
|
|
|
131
158
|
display: table;
|
|
132
159
|
}
|
|
133
160
|
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Font Feature Settings for Inter
|
|
164
|
+
*/
|
|
165
|
+
@utility readability-features {
|
|
166
|
+
font-feature-settings: var(--readability-features);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@utility readability-number-features {
|
|
170
|
+
font-feature-settings: var(--readability-number-features);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
@custom-variant supports-color-mix {
|
|
174
|
+
@supports (background-color: color-mix(in hsl, white 50%, transparent)) {
|
|
175
|
+
@slot;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@custom-variant supports-svh {
|
|
180
|
+
@supports (height: 100svh) {
|
|
181
|
+
@slot;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tailwind Responsive Variant Classes Safelist (CSS Format)
|
|
3
|
+
*
|
|
4
|
+
* ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY ⚠️
|
|
5
|
+
*
|
|
6
|
+
* This file is automatically generated by the build script: scripts/generate-responsive-variant-classes.mjs
|
|
7
|
+
* Run `yarn build:responsive-variant-classes` to regenerate this file.
|
|
8
|
+
*
|
|
9
|
+
* This file ensures Tailwind includes dynamically generated responsive classes
|
|
10
|
+
* when using responsive variants like: gap={{ '@initial': 1, '@sm': 3 }}
|
|
11
|
+
*
|
|
12
|
+
* Uses Tailwind v4's @source inline() pattern syntax for efficient class detection.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
@source inline('{,sm:,md:,lg:,xl:}{*:not-last:mr-2,*:not-last:mr-3,-mt-1,[&_svg]:size-4,[&_svg]:size-5,[&_svg]:size-[22px],[--active:rgba(255,255,255,0.75)],[--active:var(--color-danger-dark)],[--active:var(--color-primary-1000)],[--active:var(--color-primary-1100)],[--active:var(--color-primary-1200)],[--active:var(--color-success-dark)],[--active:var(--color-warning-dark)],[--active:var(--color-white)],[--banner-heading-color:var(--color-foreground-7-plus)],[--banner-text-color:var(--color-grey-100)],[--base:var(--color-danger)],[--base:var(--color-grey-700)],[--base:var(--color-primary-1000)],[--base:var(--color-primary-800)],[--base:var(--color-success)],[--base:var(--color-warning)],[--base:var(--color-white)],[--base:white],[--interact:rgba(255,255,255,0.9)],[--interact:var(--color-danger-mid)],[--interact:var(--color-primary-1100)],[--interact:var(--color-primary-900)],[--interact:var(--color-success-mid)],[--interact:var(--color-warning-mid)],[--interact:var(--color-white)],[--solid-active:var(--color-grey-200)],[--solid-base:var(--color-white)],[--solid-interact:var(--color-grey-100)],[--solid-text:var(--color-grey-1200)],[--text:var(--color-grey-800)],[--text:var(--color-primary-800)],[align-items:first baseline],[align-items:inherit],[align-items:initial],[align-items:last baseline],[align-items:normal],[align-items:revert-layer],[align-items:revert],[align-items:safe],[align-items:self-end],[align-items:self-start],[align-items:unsafe],[align-items:unset],[flex-wrap:inherit],[flex-wrap:initial],[flex-wrap:revert-layer],[flex-wrap:revert],[flex-wrap:unset],[justify-content:inherit],[justify-content:initial],[justify-content:left],[justify-content:revert-layer],[justify-content:revert],[justify-content:right],[justify-content:safe],[justify-content:unsafe],[justify-content:unset],absolute,after:hidden!,before:hidden!,bg-(--background-bold),bg-(--background-subtle),bg-(--base),bg-(--base-1),bg-(--base-11),bg-(--base-3),bg-(--solid-base,var(--base)),bg-[unset],bg-grey-100,bg-grey-400,bg-position-[right_--spacing(2)_top_50%,0_0],bg-position-[right_--spacing(3)_top_50%,0_0],bg-size-[18px_auto,100%],bg-size-[20px_auto,100%],bg-transparent,bg-white,block,border,border-(--base-3),border-b,border-b-(--border-bottom),border-current,border-grey-700,border-none,border-white,capsize-[0.1309],capsize-[0.2078],capsize-[0.2709],capsize-[0.3336],capsize-[0.3506],capsize-[0.3864],capsize-[0.3983],capsize-[0.4056],capsize-[0.4364],capsize-after-[0.2405],capsize-after-[0.2634],capsize-after-[0.26],capsize-after-[0.2],capsize-before-[0.1405],capsize-before-[0.16],capsize-before-[0.1],capsize-before-[0.2114],cursor-not-allowed opacity-60 pointer-events-none,cursor-pointer,data-[state=inactive]:hover:bg-marsh-300,data-[state=inactive]:hover:bg-primary-300,direction-[inherit],direction-[initial],direction-[revert-layer],direction-[revert],direction-[unset],disabled:cursor-not-allowed,disabled:opacity-30,flex-1,flex-[unset],flex-col,flex-col-reverse,flex-nowrap,flex-row,flex-row-reverse,flex-wrap,flex-wrap-reverse,focus-visible:border-marsh-800,focus-visible:border-primary-800,focus:border-primary-800,focus:outline-2,focus:outline-blue-800,focus:outline-none,focus:outline-offset-1,focus:outline-solid,focus:z-1,font-body,font-bold,font-display,font-medium,font-mono,font-normal,font-semibold,gap-0.5,gap-1,gap-10,gap-12,gap-16,gap-2,gap-20,gap-3,gap-4,gap-6,gap-8,h-1,h-10,h-12,h-16,h-2,h-24,h-8,h-full,h-px,h-screen,hidden,items-baseline,items-center,items-end,items-start,items-stretch,justify-around,justify-between,justify-center,justify-end,justify-evenly,justify-normal,justify-start,justify-stretch,leading-[1.08],leading-[1.12],leading-[1.14],leading-[1.28],leading-[1.40],leading-[1.42],leading-[1.52],leading-[1.53],leading-[1.6],leading-none,leading-normal,max-h-12,max-h-18,max-h-8,max-h-[142px],max-h-[213px],max-h-[90vh],max-h-screen,max-w-14,max-w-21,max-w-[126px],max-w-[190px],max-w-[285px],max-w-[90vw],max-w-full,max-w-screen,mb-3,mb-4,mb-6,min-h-10,min-h-12,min-h-8,not-disabled:active:bg-(--active),not-disabled:active:bg-(--solid-active,var(--active)),not-disabled:active:text-(--active),not-disabled:focus:bg-(--interact),not-disabled:focus:bg-(--solid-interact,var(--interact)),not-disabled:focus:no-underline,not-disabled:focus:text-(--interact),not-disabled:focus:text-(--solid-text,white),not-disabled:focus:text-(--text,white),not-disabled:hover:bg-(--interact),not-disabled:hover:bg-(--solid-interact,var(--interact)),not-disabled:hover:no-underline,not-disabled:hover:text-(--interact),not-disabled:hover:text-(--solid-text,white),not-disabled:hover:text-(--text,white),p-10,p-2,p-3,p-4,p-6,p-8,pl-2,pl-3,pr-10,pr-8,px-1,px-2,px-4,px-6,px-8,py-0,py-0.5,py-1,py-4,py-6,right-4,rounded-full,rounded-lg,rounded-md,rounded-none,rounded-sm,shadow-[0px_4px_4px_-2px_rgba(31,31,31,0.1)],size-1.5,size-10,size-12,size-3,size-4,size-6,size-8,size-auto,static,stroke-2,stroke-[1.5],stroke-[1.75],supports-color-mix:backdrop-blur-sm,supports-color-mix:bg-[color-mix(in_hsl,(--base-1)_70%,transparent)],supports-svh:h-auto,supports-svh:h-svh,supports-svh:max-h-[90vh],supports-svh:max-h-svh,text-(--base),text-(--foreground-7-plus),text-(--solid-text,white),text-(--text,white),text-(--text-bold),text-(--text-on-white),text-(--text-subtle),text-2xl,text-3xl,text-4xl,text-danger,text-grey-800,text-info,text-lg,text-md,text-primary-800,text-sm,text-success,text-warning,text-white!,text-xl,text-xs,top-0,top-2,top-4,tracking-[0.01em],w-120,w-150,w-200,w-275,w-95,w-[unset]!,w-auto,w-full,w-max,w-px,w-screen}');
|