@yahoo/uds 3.123.0 → 3.124.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/client/AnimateHeightChange.cjs +1 -1
- package/dist/components/client/AnimateHeightChange.d.ts +1 -0
- package/dist/components/client/AnimateHeightChange.js +1 -1
- package/dist/components/client/Avatar/Avatar.cjs +1 -1
- package/dist/components/client/Avatar/Avatar.d.ts +1 -0
- package/dist/components/client/Avatar/Avatar.js +1 -1
- package/dist/components/client/Avatar/AvatarIcon.cjs +1 -1
- package/dist/components/client/Avatar/AvatarIcon.d.ts +1 -0
- package/dist/components/client/Avatar/AvatarIcon.js +1 -1
- package/dist/components/client/Avatar/AvatarImage.cjs +1 -1
- package/dist/components/client/Avatar/AvatarImage.d.ts +1 -0
- package/dist/components/client/Avatar/AvatarImage.js +1 -1
- package/dist/components/client/Avatar/AvatarText.cjs +1 -1
- package/dist/components/client/Avatar/AvatarText.d.ts +1 -0
- package/dist/components/client/Avatar/AvatarText.js +1 -1
- package/dist/components/client/Avatar/index.cjs +1 -1
- package/dist/components/client/Avatar/index.d.ts +1 -0
- package/dist/components/client/Avatar/index.js +1 -1
- package/dist/components/client/Avatar/utils.cjs +1 -1
- package/dist/components/client/Avatar/utils.d.ts +1 -0
- package/dist/components/client/Avatar/utils.js +1 -1
- package/dist/components/client/Badge.cjs +1 -1
- package/dist/components/client/Badge.d.ts +1 -0
- package/dist/components/client/Badge.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheet.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheet.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheet.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetContent.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetContent.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetContent.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetDismiss.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetDismiss.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetDismiss.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetHandle.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetHandle.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetHandle.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetHeader.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetHeader.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetHeader.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetProvider.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetProvider.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetProvider.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetTrigger.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetTrigger.d.ts +1 -0
- package/dist/components/client/BottomSheet/BottomSheetTrigger.js +1 -1
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.cjs +1 -1
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.d.ts +1 -0
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.js +1 -1
- package/dist/components/client/BottomSheet/index.cjs +1 -1
- package/dist/components/client/BottomSheet/index.d.ts +1 -0
- package/dist/components/client/BottomSheet/index.js +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetDrag.cjs +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetDrag.d.ts +1 -0
- package/dist/components/client/BottomSheet/useBottomSheetDrag.js +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.cjs +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.ts +1 -0
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.js +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetStore.cjs +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetStore.d.ts +1 -0
- package/dist/components/client/BottomSheet/useBottomSheetStore.js +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.cjs +1 -1
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.d.ts +1 -0
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.js +1 -1
- package/dist/components/client/BottomSheet/useExpansionMargins.cjs +1 -1
- package/dist/components/client/BottomSheet/useExpansionMargins.d.ts +1 -0
- package/dist/components/client/BottomSheet/useExpansionMargins.js +1 -1
- package/dist/components/client/BottomSheet/useViewportHeight.cjs +1 -1
- package/dist/components/client/BottomSheet/useViewportHeight.d.ts +1 -0
- package/dist/components/client/BottomSheet/useViewportHeight.js +1 -1
- package/dist/components/client/BottomSheet/useVirtualKeyboard.cjs +1 -1
- package/dist/components/client/BottomSheet/useVirtualKeyboard.d.ts +1 -0
- package/dist/components/client/BottomSheet/useVirtualKeyboard.js +1 -1
- package/dist/components/client/BottomSheet/utils.cjs +1 -1
- package/dist/components/client/BottomSheet/utils.d.ts +1 -0
- package/dist/components/client/BottomSheet/utils.js +1 -1
- package/dist/components/client/Button.cjs +1 -1
- package/dist/components/client/Button.d.ts +1 -0
- package/dist/components/client/Button.js +1 -1
- package/dist/components/client/Checkbox.cjs +1 -1
- package/dist/components/client/Checkbox.d.ts +1 -0
- package/dist/components/client/Checkbox.js +1 -1
- package/dist/components/client/Chip/Chip.cjs +1 -1
- package/dist/components/client/Chip/Chip.d.ts +1 -0
- package/dist/components/client/Chip/Chip.js +1 -1
- package/dist/components/client/Chip/ChipBase.cjs +1 -1
- package/dist/components/client/Chip/ChipBase.d.ts +1 -0
- package/dist/components/client/Chip/ChipBase.js +1 -1
- package/dist/components/client/Chip/ChipButton.cjs +1 -1
- package/dist/components/client/Chip/ChipButton.d.ts +1 -0
- package/dist/components/client/Chip/ChipButton.js +1 -1
- package/dist/components/client/Chip/ChipDismissible.cjs +1 -1
- package/dist/components/client/Chip/ChipDismissible.d.ts +1 -0
- package/dist/components/client/Chip/ChipDismissible.js +1 -1
- package/dist/components/client/Chip/ChipLink.cjs +1 -1
- package/dist/components/client/Chip/ChipLink.d.ts +1 -0
- package/dist/components/client/Chip/ChipLink.js +1 -1
- package/dist/components/client/Chip/ChipToggle.cjs +1 -1
- package/dist/components/client/Chip/ChipToggle.d.ts +1 -0
- package/dist/components/client/Chip/ChipToggle.js +1 -1
- package/dist/components/client/Chip/index.cjs +1 -1
- package/dist/components/client/Chip/index.d.ts +1 -0
- package/dist/components/client/Chip/index.js +1 -1
- package/dist/components/client/IconButton.cjs +1 -1
- package/dist/components/client/IconButton.d.ts +1 -0
- package/dist/components/client/IconButton.js +1 -1
- package/dist/components/client/Input/Input.cjs +1 -1
- package/dist/components/client/Input/Input.d.ts +1 -0
- package/dist/components/client/Input/Input.js +1 -1
- package/dist/components/client/Input/InputHelpText.cjs +1 -1
- package/dist/components/client/Input/InputHelpText.d.ts +1 -0
- package/dist/components/client/Input/InputHelpText.js +1 -1
- package/dist/components/client/Input/InputHelpTextInternal.cjs +1 -1
- package/dist/components/client/Input/InputHelpTextInternal.d.ts +1 -0
- package/dist/components/client/Input/InputHelpTextInternal.js +1 -1
- package/dist/components/client/Input/index.cjs +1 -1
- package/dist/components/client/Input/index.d.ts +1 -0
- package/dist/components/client/Input/index.js +1 -1
- package/dist/components/client/Menu/Menu.Content.cjs +1 -1
- package/dist/components/client/Menu/Menu.Content.d.ts +1 -0
- package/dist/components/client/Menu/Menu.Content.js +1 -1
- package/dist/components/client/Menu/Menu.Divider.cjs +1 -1
- package/dist/components/client/Menu/Menu.Divider.d.ts +1 -0
- package/dist/components/client/Menu/Menu.Divider.js +1 -1
- package/dist/components/client/Menu/Menu.Item.cjs +1 -1
- package/dist/components/client/Menu/Menu.Item.d.ts +1 -0
- package/dist/components/client/Menu/Menu.Item.js +1 -1
- package/dist/components/client/Menu/Menu.ItemBase.cjs +1 -1
- package/dist/components/client/Menu/Menu.ItemBase.d.ts +1 -0
- package/dist/components/client/Menu/Menu.ItemBase.js +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.cjs +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +2 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.js +1 -1
- package/dist/components/client/Menu/Menu.Provider.cjs +1 -1
- package/dist/components/client/Menu/Menu.Provider.d.ts +1 -0
- package/dist/components/client/Menu/Menu.Provider.js +1 -1
- package/dist/components/client/Menu/Menu.Trigger.cjs +1 -1
- package/dist/components/client/Menu/Menu.Trigger.d.ts +1 -0
- package/dist/components/client/Menu/Menu.Trigger.js +1 -1
- package/dist/components/client/Menu/Menu.cjs +1 -1
- package/dist/components/client/Menu/Menu.d.ts +1 -0
- package/dist/components/client/Menu/Menu.index.cjs +1 -1
- package/dist/components/client/Menu/Menu.index.d.ts +1 -0
- package/dist/components/client/Menu/Menu.index.js +1 -1
- package/dist/components/client/Menu/Menu.js +1 -1
- package/dist/components/client/Menu/index.cjs +1 -1
- package/dist/components/client/Menu/index.d.ts +1 -0
- package/dist/components/client/Menu/index.js +1 -1
- package/dist/components/client/Menu/utils/transformAriakitPlacement.cjs +1 -1
- package/dist/components/client/Menu/utils/transformAriakitPlacement.d.ts +1 -0
- package/dist/components/client/Menu/utils/transformAriakitPlacement.js +1 -1
- package/dist/components/client/Popover/Popover.cjs +1 -1
- package/dist/components/client/Popover/Popover.d.ts +1 -0
- package/dist/components/client/Popover/Popover.js +1 -1
- package/dist/components/client/Popover/PopoverContent.cjs +1 -1
- package/dist/components/client/Popover/PopoverContent.d.ts +1 -0
- package/dist/components/client/Popover/PopoverContent.js +1 -1
- package/dist/components/client/Popover/PopoverContext.cjs +1 -1
- package/dist/components/client/Popover/PopoverContext.d.ts +1 -0
- package/dist/components/client/Popover/PopoverContext.js +1 -1
- package/dist/components/client/Popover/PopoverTrigger.cjs +1 -1
- package/dist/components/client/Popover/PopoverTrigger.d.ts +1 -0
- package/dist/components/client/Popover/PopoverTrigger.js +1 -1
- package/dist/components/client/Popover/UDSPopoverConfigProvider.cjs +1 -1
- package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +1 -1
- package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +2 -1
- package/dist/components/client/Popover/UDSPopoverConfigProvider.js +1 -1
- package/dist/components/client/Popover/index.cjs +1 -1
- package/dist/components/client/Popover/index.d.ts +1 -0
- package/dist/components/client/Popover/index.js +1 -1
- package/dist/components/client/Pressable.cjs +1 -1
- package/dist/components/client/Pressable.d.ts +1 -0
- package/dist/components/client/Pressable.js +1 -1
- package/dist/components/client/Radio/Radio.cjs +1 -1
- package/dist/components/client/Radio/Radio.d.ts +1 -0
- package/dist/components/client/Radio/Radio.js +1 -1
- package/dist/components/client/Radio/RadioGroupProvider.cjs +1 -1
- package/dist/components/client/Radio/RadioGroupProvider.d.ts +1 -0
- package/dist/components/client/Radio/RadioGroupProvider.js +1 -1
- package/dist/components/client/Radio/RadioGroupStore.cjs +1 -1
- package/dist/components/client/Radio/RadioGroupStore.d.ts +1 -0
- package/dist/components/client/Radio/RadioGroupStore.js +1 -1
- package/dist/components/client/Radio/index.cjs +1 -1
- package/dist/components/client/Radio/index.d.ts +1 -0
- package/dist/components/client/Radio/index.js +1 -1
- package/dist/components/client/Radio/useRadioGroup.cjs +1 -1
- package/dist/components/client/Radio/useRadioGroup.d.ts +1 -0
- package/dist/components/client/Radio/useRadioGroup.js +1 -1
- package/dist/components/client/SpringMotionConfig.cjs +1 -1
- package/dist/components/client/SpringMotionConfig.d.ts +1 -0
- package/dist/components/client/SpringMotionConfig.js +1 -1
- package/dist/components/client/Switch.cjs +1 -1
- package/dist/components/client/Switch.d.ts +1 -0
- package/dist/components/client/Switch.js +1 -1
- package/dist/components/client/Toast/Toast.cjs +1 -1
- package/dist/components/client/Toast/Toast.d.ts +1 -0
- package/dist/components/client/Toast/Toast.js +1 -1
- package/dist/components/client/Toast/ToastContainer.cjs +1 -1
- package/dist/components/client/Toast/ToastContainer.d.ts +1 -0
- package/dist/components/client/Toast/ToastContainer.js +1 -1
- package/dist/components/client/Toast/ToastPortal.cjs +1 -1
- package/dist/components/client/Toast/ToastPortal.d.ts +1 -0
- package/dist/components/client/Toast/ToastPortal.js +1 -1
- package/dist/components/client/Toast/UDSToastConfigProvider.cjs +1 -1
- package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +5 -5
- package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +6 -5
- package/dist/components/client/Toast/UDSToastConfigProvider.js +1 -1
- package/dist/components/client/Toast/createToast.cjs +1 -1
- package/dist/components/client/Toast/createToast.d.ts +1 -0
- package/dist/components/client/Toast/createToast.js +1 -1
- package/dist/components/client/Toast/index.cjs +1 -1
- package/dist/components/client/Toast/index.d.ts +1 -0
- package/dist/components/client/Toast/index.js +1 -1
- package/dist/components/client/Tooltip/Tooltip.cjs +1 -1
- package/dist/components/client/Tooltip/Tooltip.d.ts +1 -0
- package/dist/components/client/Tooltip/Tooltip.js +1 -1
- package/dist/components/client/Tooltip/TooltipContent.cjs +1 -1
- package/dist/components/client/Tooltip/TooltipContent.d.ts +1 -0
- package/dist/components/client/Tooltip/TooltipContent.js +1 -1
- package/dist/components/client/Tooltip/TooltipTrigger.cjs +1 -1
- package/dist/components/client/Tooltip/TooltipTrigger.d.ts +1 -0
- package/dist/components/client/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.cjs +1 -1
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.d.ts +1 -0
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.js +1 -1
- package/dist/components/client/Tooltip/index.cjs +1 -1
- package/dist/components/client/Tooltip/index.d.ts +1 -0
- package/dist/components/client/Tooltip/index.js +1 -1
- package/dist/components/client/Tooltip/tooltipContext.cjs +1 -1
- package/dist/components/client/Tooltip/tooltipContext.d.ts +1 -0
- package/dist/components/client/Tooltip/tooltipContext.js +1 -1
- package/dist/components/client/buttonConstants.cjs +1 -1
- package/dist/components/client/buttonConstants.d.ts +1 -0
- package/dist/components/client/buttonConstants.js +1 -1
- package/dist/components/client/index.cjs +1 -1
- package/dist/components/client/index.d.ts +1 -0
- package/dist/components/client/index.js +1 -1
- package/dist/components/client/motionFeatures/domAnimation.cjs +1 -1
- package/dist/components/client/motionFeatures/domAnimation.d.ts +1 -0
- package/dist/components/client/motionFeatures/domAnimation.js +1 -1
- package/dist/components/client/motionFeatures/domMax.cjs +1 -1
- package/dist/components/client/motionFeatures/domMax.d.ts +1 -0
- package/dist/components/client/motionFeatures/domMax.js +1 -1
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.cjs +1 -1
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.d.ts +1 -0
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.js +1 -1
- package/dist/components/client/providers/UDSConfigProvider.cjs +1 -1
- package/dist/components/client/providers/UDSConfigProvider.d.ts +1 -0
- package/dist/components/client/providers/UDSConfigProvider.js +1 -1
- package/dist/components/experimental/client/Accordion.cjs +1 -1
- package/dist/components/experimental/client/Accordion.d.ts +1 -0
- package/dist/components/experimental/client/Accordion.js +1 -1
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.cjs +1 -1
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.d.ts +1 -0
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.js +1 -1
- package/dist/components/experimental/client/Modal.cjs +1 -1
- package/dist/components/experimental/client/Modal.d.ts +1 -0
- package/dist/components/experimental/client/Modal.js +1 -1
- package/dist/components/experimental/client/SegmentedControl.cjs +1 -1
- package/dist/components/experimental/client/SegmentedControl.d.ts +1 -0
- package/dist/components/experimental/client/SegmentedControl.js +1 -1
- package/dist/components/experimental/client/SwitchV2.cjs +1 -1
- package/dist/components/experimental/client/SwitchV2.d.ts +1 -0
- package/dist/components/experimental/client/SwitchV2.js +1 -1
- package/dist/components/experimental/client/Tabs.cjs +1 -1
- package/dist/components/experimental/client/Tabs.d.ts +1 -0
- package/dist/components/experimental/client/Tabs.js +1 -1
- package/dist/components/experimental/client/index.cjs +1 -1
- package/dist/components/experimental/client/index.d.ts +1 -0
- package/dist/components/experimental/client/index.js +1 -1
- package/dist/styles/styler.d.cts +32 -32
- package/dist/styles/styler.d.ts +32 -32
- package/dist/tailwind/dist/commands/css.cjs +17 -3
- package/dist/tailwind/dist/commands/css.d.cts.map +1 -1
- package/dist/tailwind/dist/commands/css.d.ts.map +1 -1
- package/dist/tailwind/dist/commands/css.helpers.cjs +2 -1
- package/dist/tailwind/dist/commands/css.helpers.js +2 -1
- package/dist/tailwind/dist/commands/css.helpers.js.map +1 -1
- package/dist/tailwind/dist/commands/css.js +17 -3
- package/dist/tailwind/dist/commands/css.js.map +1 -1
- package/dist/tailwind/dist/css/generate.cjs +3 -0
- package/dist/tailwind/dist/css/generate.helpers.cjs +14 -6
- package/dist/tailwind/dist/css/generate.helpers.js +15 -7
- package/dist/tailwind/dist/css/generate.helpers.js.map +1 -1
- package/dist/tailwind/dist/css/generate.js +3 -0
- package/dist/tailwind/dist/css/generate.js.map +1 -1
- package/dist/tailwind/dist/css/nodeUtils.cjs +91 -20
- package/dist/tailwind/dist/css/nodeUtils.js +90 -21
- package/dist/tailwind/dist/css/nodeUtils.js.map +1 -1
- package/dist/tailwind/dist/css/postcss.cjs +22 -1
- package/dist/tailwind/dist/css/postcss.helpers.cjs +12 -1
- package/dist/tailwind/dist/css/postcss.helpers.js +11 -1
- package/dist/tailwind/dist/css/postcss.helpers.js.map +1 -1
- package/dist/tailwind/dist/css/postcss.js +22 -2
- package/dist/tailwind/dist/css/postcss.js.map +1 -1
- package/dist/tailwind/dist/css/runner.cjs +171 -20
- package/dist/tailwind/dist/css/runner.helpers.cjs +58 -6
- package/dist/tailwind/dist/css/runner.helpers.js +54 -7
- package/dist/tailwind/dist/css/runner.helpers.js.map +1 -1
- package/dist/tailwind/dist/css/runner.js +172 -20
- package/dist/tailwind/dist/css/runner.js.map +1 -1
- package/dist/tailwind/dist/css/theme.d.cts +11 -0
- package/dist/tailwind/dist/css/theme.d.cts.map +1 -1
- package/dist/tailwind/dist/css/theme.d.ts +11 -0
- package/dist/tailwind/dist/css/theme.d.ts.map +1 -1
- package/dist/tailwind/dist/css/theme.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/ast/expressions.cjs +26 -3
- package/dist/tailwind/dist/purger/optimized/ast/expressions.js +26 -3
- package/dist/tailwind/dist/purger/optimized/ast/expressions.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getFontStyles.d.cts +1 -1
- package/dist/tailwind/dist/tailwind/utils/getFontStyles.d.ts +1 -1
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.cts +4 -4
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.ts +4 -4
- package/dist/uds/generated/componentData.cjs +1202 -1202
- package/dist/uds/generated/componentData.js +1202 -1202
- package/generated/componentData.json +1610 -1610
- package/package.json +1 -1
package/dist/styles/styler.d.ts
CHANGED
|
@@ -17,20 +17,20 @@ declare const getStylesInternal: (props?: ({
|
|
|
17
17
|
avatarTextVariantRoot?: "primary" | "secondary" | "default" | undefined;
|
|
18
18
|
badgeSizeIcon?: "xs" | "sm" | "md" | "lg" | "default" | undefined;
|
|
19
19
|
badgeSizeRoot?: "xs" | "sm" | "md" | "lg" | "default" | undefined;
|
|
20
|
-
badgeVariantIcon?: "
|
|
21
|
-
badgeVariantRoot?: "
|
|
20
|
+
badgeVariantIcon?: "primary" | "secondary" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "default" | undefined;
|
|
21
|
+
badgeVariantRoot?: "primary" | "secondary" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "default" | undefined;
|
|
22
22
|
bottomsheetVariantHandleIndicator?: "default" | undefined;
|
|
23
23
|
bottomsheetVariantHeader?: "default" | undefined;
|
|
24
24
|
bottomsheetVariantRoot?: "default" | undefined;
|
|
25
25
|
buttonSizeIcon?: "xs" | "sm" | "md" | "lg" | "default" | undefined;
|
|
26
26
|
buttonSizeRoot?: "xs" | "sm" | "md" | "lg" | "default" | undefined;
|
|
27
|
-
buttonVariantIcon?: "
|
|
28
|
-
buttonVariantRoot?: "
|
|
27
|
+
buttonVariantIcon?: "primary" | "secondary" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "tertiary" | "default" | "alert-tertiary" | "brand-tertiary" | "contrast-high" | "contrast-low" | "contrast-medium" | "info-tertiary" | "positive-tertiary" | "warning-tertiary" | undefined;
|
|
28
|
+
buttonVariantRoot?: "primary" | "secondary" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "tertiary" | "default" | "alert-tertiary" | "brand-tertiary" | "contrast-high" | "contrast-low" | "contrast-medium" | "info-tertiary" | "positive-tertiary" | "warning-tertiary" | undefined;
|
|
29
29
|
checkboxSizeCheckbox?: "sm" | "md" | "default" | undefined;
|
|
30
30
|
checkboxSizeRoot?: "sm" | "md" | "default" | undefined;
|
|
31
|
-
checkboxVariantCheckbox?: "
|
|
32
|
-
checkboxVariantCheckboxIcon?: "
|
|
33
|
-
checkboxVariantRoot?: "
|
|
31
|
+
checkboxVariantCheckbox?: "primary" | "secondary" | "alert" | "alert-secondary" | "default" | undefined;
|
|
32
|
+
checkboxVariantCheckboxIcon?: "primary" | "secondary" | "alert" | "alert-secondary" | "default" | undefined;
|
|
33
|
+
checkboxVariantRoot?: "primary" | "secondary" | "alert" | "alert-secondary" | "default" | undefined;
|
|
34
34
|
checkboxVariantValueCheckbox?: "checked" | "indeterminate" | "unchecked" | undefined;
|
|
35
35
|
checkboxVariantValueCheckboxIcon?: "checked" | "indeterminate" | "unchecked" | undefined;
|
|
36
36
|
checkboxVariantValueRoot?: "checked" | "indeterminate" | "unchecked" | undefined;
|
|
@@ -117,9 +117,9 @@ declare const getStylesInternal: (props?: ({
|
|
|
117
117
|
popoverVariantSvgBorder?: "default" | undefined;
|
|
118
118
|
radioSizeRadio?: "sm" | "md" | "default" | undefined;
|
|
119
119
|
radioSizeRoot?: "sm" | "md" | "default" | undefined;
|
|
120
|
-
radioVariantRadio?: "
|
|
121
|
-
radioVariantRadioCircle?: "
|
|
122
|
-
radioVariantRoot?: "
|
|
120
|
+
radioVariantRadio?: "primary" | "secondary" | "alert" | "alert-secondary" | "default" | undefined;
|
|
121
|
+
radioVariantRadioCircle?: "primary" | "secondary" | "alert" | "alert-secondary" | "default" | undefined;
|
|
122
|
+
radioVariantRoot?: "primary" | "secondary" | "alert" | "alert-secondary" | "default" | undefined;
|
|
123
123
|
radioVariantValueRadio?: "checked" | "unchecked" | undefined;
|
|
124
124
|
radioVariantValueRadioCircle?: "checked" | "unchecked" | undefined;
|
|
125
125
|
radioVariantValueRoot?: "checked" | "unchecked" | undefined;
|
|
@@ -155,11 +155,11 @@ declare const getStylesInternal: (props?: ({
|
|
|
155
155
|
tooltipVariantIcon?: "default" | undefined;
|
|
156
156
|
tooltipVariantRoot?: "default" | undefined;
|
|
157
157
|
tooltipVariantSvg?: "default" | undefined;
|
|
158
|
-
color?: "
|
|
159
|
-
placeholderColor?: "
|
|
158
|
+
color?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "tertiary" | "muted" | "on-color" | undefined;
|
|
159
|
+
placeholderColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "tertiary" | "muted" | "on-color" | undefined;
|
|
160
160
|
fontFamily?: "display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "title4" | "headline1" | "body1" | "label1" | "label2" | "label3" | "label4" | "caption1" | "caption2" | "legal1" | "ui1" | "ui2" | "ui3" | "ui4" | "ui5" | "ui6" | "display1/emphasized" | "display2/emphasized" | "display3/emphasized" | "title1/emphasized" | "title2/emphasized" | "title3/emphasized" | "title4/emphasized" | "headline1/emphasized" | "body1/emphasized" | "label1/emphasized" | "label2/emphasized" | "label3/emphasized" | "label4/emphasized" | "caption1/emphasized" | "caption2/emphasized" | "legal1/emphasized" | "ui1/emphasized" | "ui2/emphasized" | "ui3/emphasized" | "ui4/emphasized" | "ui5/emphasized" | "ui6/emphasized" | "sans" | "sans-alt" | "serif" | "serif-alt" | "mono" | undefined;
|
|
161
161
|
fontSize?: "display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "title4" | "headline1" | "body1" | "label1" | "label2" | "label3" | "label4" | "caption1" | "caption2" | "legal1" | "ui1" | "ui2" | "ui3" | "ui4" | "ui5" | "ui6" | "display1/emphasized" | "display2/emphasized" | "display3/emphasized" | "title1/emphasized" | "title2/emphasized" | "title3/emphasized" | "title4/emphasized" | "headline1/emphasized" | "body1/emphasized" | "label1/emphasized" | "label2/emphasized" | "label3/emphasized" | "label4/emphasized" | "caption1/emphasized" | "caption2/emphasized" | "legal1/emphasized" | "ui1/emphasized" | "ui2/emphasized" | "ui3/emphasized" | "ui4/emphasized" | "ui5/emphasized" | "ui6/emphasized" | undefined;
|
|
162
|
-
fontWeight?: "black" | "
|
|
162
|
+
fontWeight?: "black" | "thin" | "medium" | "display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "title4" | "headline1" | "body1" | "label1" | "label2" | "label3" | "label4" | "caption1" | "caption2" | "legal1" | "ui1" | "ui2" | "ui3" | "ui4" | "ui5" | "ui6" | "display1/emphasized" | "display2/emphasized" | "display3/emphasized" | "title1/emphasized" | "title2/emphasized" | "title3/emphasized" | "title4/emphasized" | "headline1/emphasized" | "body1/emphasized" | "label1/emphasized" | "label2/emphasized" | "label3/emphasized" | "label4/emphasized" | "caption1/emphasized" | "caption2/emphasized" | "legal1/emphasized" | "ui1/emphasized" | "ui2/emphasized" | "ui3/emphasized" | "ui4/emphasized" | "ui5/emphasized" | "ui6/emphasized" | "bold" | "extralight" | "light" | "regular" | "semibold" | "extrabold" | undefined;
|
|
163
163
|
lineHeight?: "display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "title4" | "headline1" | "body1" | "label1" | "label2" | "label3" | "label4" | "caption1" | "caption2" | "legal1" | "ui1" | "ui2" | "ui3" | "ui4" | "ui5" | "ui6" | "display1/emphasized" | "display2/emphasized" | "display3/emphasized" | "title1/emphasized" | "title2/emphasized" | "title3/emphasized" | "title4/emphasized" | "headline1/emphasized" | "body1/emphasized" | "label1/emphasized" | "label2/emphasized" | "label3/emphasized" | "label4/emphasized" | "caption1/emphasized" | "caption2/emphasized" | "legal1/emphasized" | "ui1/emphasized" | "ui2/emphasized" | "ui3/emphasized" | "ui4/emphasized" | "ui5/emphasized" | "ui6/emphasized" | undefined;
|
|
164
164
|
letterSpacing?: "display1" | "display2" | "display3" | "title1" | "title2" | "title3" | "title4" | "headline1" | "body1" | "label1" | "label2" | "label3" | "label4" | "caption1" | "caption2" | "legal1" | "ui1" | "ui2" | "ui3" | "ui4" | "ui5" | "ui6" | "display1/emphasized" | "display2/emphasized" | "display3/emphasized" | "title1/emphasized" | "title2/emphasized" | "title3/emphasized" | "title4/emphasized" | "headline1/emphasized" | "body1/emphasized" | "label1/emphasized" | "label2/emphasized" | "label3/emphasized" | "label4/emphasized" | "caption1/emphasized" | "caption2/emphasized" | "legal1/emphasized" | "ui1/emphasized" | "ui2/emphasized" | "ui3/emphasized" | "ui4/emphasized" | "ui5/emphasized" | "ui6/emphasized" | undefined;
|
|
165
165
|
textAlign?: "center" | "justify" | "start" | "end" | undefined;
|
|
@@ -180,50 +180,50 @@ declare const getStylesInternal: (props?: ({
|
|
|
180
180
|
offsetTop?: "0" | "1" | "2" | "3" | "4" | "5" | "px" | "0.5" | "1.5" | "2.5" | "3.5" | "4.5" | "5.5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | undefined;
|
|
181
181
|
columnGap?: "0" | "1" | "2" | "3" | "4" | "5" | "px" | "0.5" | "1.5" | "2.5" | "3.5" | "4.5" | "5.5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | undefined;
|
|
182
182
|
rowGap?: "0" | "1" | "2" | "3" | "4" | "5" | "px" | "0.5" | "1.5" | "2.5" | "3.5" | "4.5" | "5.5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | undefined;
|
|
183
|
-
backgroundColor?: "
|
|
184
|
-
borderColor?: "
|
|
185
|
-
borderStartColor?: "
|
|
186
|
-
borderEndColor?: "
|
|
187
|
-
borderBottomColor?: "
|
|
188
|
-
borderTopColor?: "
|
|
183
|
+
backgroundColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | undefined;
|
|
184
|
+
borderColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "tertiary" | "muted" | undefined;
|
|
185
|
+
borderStartColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "tertiary" | "muted" | undefined;
|
|
186
|
+
borderEndColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "tertiary" | "muted" | undefined;
|
|
187
|
+
borderBottomColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "tertiary" | "muted" | undefined;
|
|
188
|
+
borderTopColor?: "primary" | "secondary" | "accent" | "brand" | "alert" | "positive" | "warning" | "info" | "brand-secondary" | "alert-secondary" | "positive-secondary" | "warning-secondary" | "info-secondary" | "white" | "black" | "transparent" | "current" | "always/white" | "always/black" | "always/transparent" | "always/current" | "always/brand" | "always/accent" | "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "tertiary" | "muted" | undefined;
|
|
189
189
|
borderRadius?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
190
190
|
borderTopStartRadius?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
191
191
|
borderTopEndRadius?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
192
192
|
borderBottomStartRadius?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
193
193
|
borderBottomEndRadius?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
194
|
-
borderWidth?: "
|
|
195
|
-
borderVerticalWidth?: "
|
|
196
|
-
borderHorizontalWidth?: "
|
|
197
|
-
borderStartWidth?: "
|
|
198
|
-
borderEndWidth?: "
|
|
199
|
-
borderTopWidth?: "
|
|
200
|
-
borderBottomWidth?: "
|
|
194
|
+
borderWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
195
|
+
borderVerticalWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
196
|
+
borderHorizontalWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
197
|
+
borderStartWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
198
|
+
borderEndWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
199
|
+
borderTopWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
200
|
+
borderBottomWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
201
201
|
avatarSize?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
202
202
|
iconSize?: "xs" | "sm" | "md" | "lg" | undefined;
|
|
203
203
|
alignContent?: "center" | "flex-start" | "flex-end" | "stretch" | "space-between" | "space-around" | undefined;
|
|
204
204
|
alignItems?: "center" | "flex-start" | "flex-end" | "stretch" | "baseline" | undefined;
|
|
205
|
-
alignSelf?: "
|
|
206
|
-
flex?: "
|
|
205
|
+
alignSelf?: "center" | "flex-start" | "flex-end" | "stretch" | "baseline" | "auto" | undefined;
|
|
206
|
+
flex?: "1" | "none" | "auto" | "initial" | undefined;
|
|
207
207
|
flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
|
|
208
208
|
flexGrow?: "0" | "1" | "2" | "3" | undefined;
|
|
209
209
|
flexShrink?: "0" | "1" | undefined;
|
|
210
210
|
flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
|
|
211
211
|
justifyContent?: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | undefined;
|
|
212
212
|
flexBasis?: "min-content" | undefined;
|
|
213
|
-
display?: "flex" | "
|
|
213
|
+
display?: "flex" | "table" | "none" | "block" | "inline-block" | "inline" | "inline-flex" | "inline-table" | "table-caption" | "table-cell" | "table-column" | "table-column-group" | "table-footer-group" | "table-header-group" | "table-row-group" | "table-row" | "flow-root" | "grid" | "contents" | undefined;
|
|
214
214
|
overflow?: "hidden" | "auto" | "clip" | "visible" | "scroll" | undefined;
|
|
215
215
|
overflowX?: "hidden" | "auto" | "clip" | "visible" | "scroll" | undefined;
|
|
216
216
|
overflowY?: "hidden" | "auto" | "clip" | "visible" | "scroll" | undefined;
|
|
217
|
-
position?: "
|
|
217
|
+
position?: "static" | "fixed" | "absolute" | "relative" | "sticky" | undefined;
|
|
218
218
|
contentFit?: "none" | "fill" | "cover" | "contain" | "scale-down" | undefined;
|
|
219
219
|
colorMode?: "light" | "dark" | undefined;
|
|
220
220
|
scaleMode?: "small" | "medium" | "xSmall" | "large" | "xLarge" | "xxLarge" | "xxxLarge" | undefined;
|
|
221
221
|
width?: "full" | "fit" | "screen" | undefined;
|
|
222
222
|
height?: "full" | "fit" | "screen" | undefined;
|
|
223
|
-
dropShadow?: "
|
|
223
|
+
dropShadow?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | undefined;
|
|
224
224
|
insetShadow?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "xs-invert" | "sm-invert" | "md-invert" | "lg-invert" | "xl-invert" | "2xl-invert" | undefined;
|
|
225
225
|
nestedBorderRadiusSize?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
226
|
-
nestedBorderRadiusWidth?: "
|
|
226
|
+
nestedBorderRadiusWidth?: "elevation-0" | "elevation-1" | "elevation-2" | "elevation-3" | "elevation-4" | "elevation-5" | "none" | "thin" | "medium" | "thick" | undefined;
|
|
227
227
|
nestedBorderRadiusSpacing?: "0" | "1" | "2" | "3" | "4" | "5" | "px" | "0.5" | "1.5" | "2.5" | "3.5" | "4.5" | "5.5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | undefined;
|
|
228
228
|
nestedBorderRadius?: boolean | "first" | "last" | undefined;
|
|
229
229
|
} & {
|
|
@@ -24,6 +24,7 @@ const showHelp = () => {
|
|
|
24
24
|
require_print.print(` ${require_colors.cyan("--theme <path>")} Path to uds.theme.ts (default: uds.theme.ts)`);
|
|
25
25
|
require_print.print(` ${require_colors.cyan("--watch, -w")} Watch for file changes and regenerate`);
|
|
26
26
|
require_print.print(` ${require_colors.cyan("--silent, -s")} Suppress output logging`);
|
|
27
|
+
require_print.print(` ${require_colors.cyan("--verbose, -v")} List every scanned file used for purging`);
|
|
27
28
|
require_print.print(` ${require_colors.cyan("--force")} Overwrite existing uds.theme.ts (for init)`);
|
|
28
29
|
require_print.print(` ${require_colors.cyan("--help, -h")} Show this help message`);
|
|
29
30
|
require_print.print("");
|
|
@@ -42,14 +43,27 @@ const showHelp = () => {
|
|
|
42
43
|
export default defineTheme({
|
|
43
44
|
config: './uds.config.ts',
|
|
44
45
|
entry: './src',
|
|
46
|
+
scoped: {
|
|
47
|
+
'@your-org/shared-ui': './packages/shared-ui/uds.config.ts'
|
|
48
|
+
},
|
|
45
49
|
colorModes: ['dark'],
|
|
46
50
|
css: {
|
|
47
51
|
preflight: true,
|
|
48
52
|
fontFaceDeclarations: true,
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
optimization: {
|
|
54
|
+
deduplicateScopedCss: true
|
|
55
|
+
}
|
|
51
56
|
}
|
|
52
|
-
})
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// Expanded form when you need a custom output path:
|
|
60
|
+
// scoped: {
|
|
61
|
+
// '@your-org/shared-ui': {
|
|
62
|
+
// config: './packages/shared-ui/uds.config.ts',
|
|
63
|
+
// entry: './stories',
|
|
64
|
+
// outFile: 'dist/shared-ui.css'
|
|
65
|
+
// }
|
|
66
|
+
// }`));
|
|
53
67
|
require_print.print("");
|
|
54
68
|
};
|
|
55
69
|
const makeCSSCommand = (getContext) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.d.cts","names":[],"sources":["../../src/commands/css.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"css.d.cts","names":[],"sources":["../../src/commands/css.ts"],"mappings":";;;;;KAuEK,OAAA;EACH,QAAA,EAAU,MAAA,SAAe,MAAA;EACzB,YAAA,EAAc,MAAA,SAAe,MAAA;EAC7B,aAAA,EAAe,MAAA,SAAe,uBAAA;AAAA;AAAA,cAG1B,cAAA,GAAkB,UAAA,QAAkB,OAAA,CAAQ,OAAA,MAAW,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.d.ts","names":[],"sources":["../../src/commands/css.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"css.d.ts","names":[],"sources":["../../src/commands/css.ts"],"mappings":";;;;;KAuEK,OAAA;EACH,QAAA,EAAU,MAAA,SAAe,MAAA;EACzB,YAAA,EAAc,MAAA,SAAe,MAAA;EAC7B,aAAA,EAAe,MAAA,SAAe,uBAAA;AAAA;AAAA,cAG1B,cAAA,GAAkB,UAAA,QAAkB,OAAA,CAAQ,OAAA,MAAW,OAAA"}
|
|
@@ -24,7 +24,8 @@ const getCssRunOptions = (workspaceDir, options) => {
|
|
|
24
24
|
entryOption: entryOption(options.entry),
|
|
25
25
|
configOption: stringOption(options.config),
|
|
26
26
|
watch: isTruthyFlag(options.watch) || isTruthyFlag(options.w),
|
|
27
|
-
silent: isTruthyFlag(options.silent) || isTruthyFlag(options.s)
|
|
27
|
+
silent: isTruthyFlag(options.silent) || isTruthyFlag(options.s),
|
|
28
|
+
verbose: isTruthyFlag(options.verbose) || isTruthyFlag(options.v)
|
|
28
29
|
};
|
|
29
30
|
};
|
|
30
31
|
|
|
@@ -23,7 +23,8 @@ const getCssRunOptions = (workspaceDir, options) => {
|
|
|
23
23
|
entryOption: entryOption(options.entry),
|
|
24
24
|
configOption: stringOption(options.config),
|
|
25
25
|
watch: isTruthyFlag(options.watch) || isTruthyFlag(options.w),
|
|
26
|
-
silent: isTruthyFlag(options.silent) || isTruthyFlag(options.s)
|
|
26
|
+
silent: isTruthyFlag(options.silent) || isTruthyFlag(options.s),
|
|
27
|
+
verbose: isTruthyFlag(options.verbose) || isTruthyFlag(options.v)
|
|
27
28
|
};
|
|
28
29
|
};
|
|
29
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.helpers.js","names":[],"sources":["../../src/commands/css.helpers.ts"],"sourcesContent":["import type { EntryValue } from '../utils/entryPoints';\n\ntype CssOptions = Record<string, unknown>;\n\ntype CssInitOptions = {\n force: boolean;\n configPath?: string;\n entry?: EntryValue;\n outputPath?: string;\n};\n\ntype CssRunOptions = {\n workspaceDir: string;\n outFile: string;\n themeConfigPath: string;\n scope?: string;\n entryOption?: EntryValue;\n configOption?: string;\n watch: boolean;\n silent: boolean;\n};\n\nconst isTruthyFlag = (value: unknown): boolean => value === true || value === 'true';\n\nconst stringOption = (value: unknown): string | undefined =>\n typeof value === 'string' ? value : undefined;\n\nconst entryOption = (value: unknown): EntryValue | undefined => {\n if (typeof value === 'string') {\n return value;\n }\n\n if (Array.isArray(value) && value.every((item) => typeof item === 'string')) {\n return value;\n }\n\n return undefined;\n};\n\nconst shouldShowHelp = (options: CssOptions): boolean =>\n isTruthyFlag(options.help) || isTruthyFlag(options.h);\n\nconst isInitCommand = (firstArg: string | undefined): boolean => firstArg === 'init';\n\nconst getCssInitOptions = (options: CssOptions): CssInitOptions => ({\n force: isTruthyFlag(options.force),\n configPath: stringOption(options.config),\n entry: entryOption(options.entry),\n outputPath: stringOption(options.outFile),\n});\n\nconst getCssRunOptions = (workspaceDir: string, options: CssOptions): CssRunOptions => {\n const outFile = stringOption(options.outFile) ?? 'dist/uds.css';\n const themeConfigPath = stringOption(options.theme) ?? 'uds.theme.ts';\n\n return {\n workspaceDir,\n outFile,\n themeConfigPath,\n scope: stringOption(options.scope),\n entryOption: entryOption(options.entry),\n configOption: stringOption(options.config),\n watch: isTruthyFlag(options.watch) || isTruthyFlag(options.w),\n silent: isTruthyFlag(options.silent) || isTruthyFlag(options.s),\n };\n};\n\nexport { getCssInitOptions, getCssRunOptions, isInitCommand, shouldShowHelp };\n"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"css.helpers.js","names":[],"sources":["../../src/commands/css.helpers.ts"],"sourcesContent":["import type { EntryValue } from '../utils/entryPoints';\n\ntype CssOptions = Record<string, unknown>;\n\ntype CssInitOptions = {\n force: boolean;\n configPath?: string;\n entry?: EntryValue;\n outputPath?: string;\n};\n\ntype CssRunOptions = {\n workspaceDir: string;\n outFile: string;\n themeConfigPath: string;\n scope?: string;\n entryOption?: EntryValue;\n configOption?: string;\n watch: boolean;\n silent: boolean;\n verbose: boolean;\n};\n\nconst isTruthyFlag = (value: unknown): boolean => value === true || value === 'true';\n\nconst stringOption = (value: unknown): string | undefined =>\n typeof value === 'string' ? value : undefined;\n\nconst entryOption = (value: unknown): EntryValue | undefined => {\n if (typeof value === 'string') {\n return value;\n }\n\n if (Array.isArray(value) && value.every((item) => typeof item === 'string')) {\n return value;\n }\n\n return undefined;\n};\n\nconst shouldShowHelp = (options: CssOptions): boolean =>\n isTruthyFlag(options.help) || isTruthyFlag(options.h);\n\nconst isInitCommand = (firstArg: string | undefined): boolean => firstArg === 'init';\n\nconst getCssInitOptions = (options: CssOptions): CssInitOptions => ({\n force: isTruthyFlag(options.force),\n configPath: stringOption(options.config),\n entry: entryOption(options.entry),\n outputPath: stringOption(options.outFile),\n});\n\nconst getCssRunOptions = (workspaceDir: string, options: CssOptions): CssRunOptions => {\n const outFile = stringOption(options.outFile) ?? 'dist/uds.css';\n const themeConfigPath = stringOption(options.theme) ?? 'uds.theme.ts';\n\n return {\n workspaceDir,\n outFile,\n themeConfigPath,\n scope: stringOption(options.scope),\n entryOption: entryOption(options.entry),\n configOption: stringOption(options.config),\n watch: isTruthyFlag(options.watch) || isTruthyFlag(options.w),\n silent: isTruthyFlag(options.silent) || isTruthyFlag(options.s),\n verbose: isTruthyFlag(options.verbose) || isTruthyFlag(options.v),\n };\n};\n\nexport { getCssInitOptions, getCssRunOptions, isInitCommand, shouldShowHelp };\n"],"mappings":";;AAuBA,MAAM,gBAAgB,UAA4B,UAAU,QAAQ,UAAU;AAE9E,MAAM,gBAAgB,UACpB,OAAO,UAAU,WAAW,QAAQ;AAEtC,MAAM,eAAe,UAA2C;AAC9D,KAAI,OAAO,UAAU,SACnB,QAAO;AAGT,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,OAAO,SAAS,OAAO,SAAS,SAAS,CACzE,QAAO;;AAMX,MAAM,kBAAkB,YACtB,aAAa,QAAQ,KAAK,IAAI,aAAa,QAAQ,EAAE;AAEvD,MAAM,iBAAiB,aAA0C,aAAa;AAE9E,MAAM,qBAAqB,aAAyC;CAClE,OAAO,aAAa,QAAQ,MAAM;CAClC,YAAY,aAAa,QAAQ,OAAO;CACxC,OAAO,YAAY,QAAQ,MAAM;CACjC,YAAY,aAAa,QAAQ,QAAQ;CAC1C;AAED,MAAM,oBAAoB,cAAsB,YAAuC;AAIrF,QAAO;EACL;EACA,SALc,aAAa,QAAQ,QAAQ,IAAI;EAM/C,iBALsB,aAAa,QAAQ,MAAM,IAAI;EAMrD,OAAO,aAAa,QAAQ,MAAM;EAClC,aAAa,YAAY,QAAQ,MAAM;EACvC,cAAc,aAAa,QAAQ,OAAO;EAC1C,OAAO,aAAa,QAAQ,MAAM,IAAI,aAAa,QAAQ,EAAE;EAC7D,QAAQ,aAAa,QAAQ,OAAO,IAAI,aAAa,QAAQ,EAAE;EAC/D,SAAS,aAAa,QAAQ,QAAQ,IAAI,aAAa,QAAQ,EAAE;EAClE"}
|
|
@@ -24,6 +24,7 @@ const showHelp = () => {
|
|
|
24
24
|
print(` ${cyan("--theme <path>")} Path to uds.theme.ts (default: uds.theme.ts)`);
|
|
25
25
|
print(` ${cyan("--watch, -w")} Watch for file changes and regenerate`);
|
|
26
26
|
print(` ${cyan("--silent, -s")} Suppress output logging`);
|
|
27
|
+
print(` ${cyan("--verbose, -v")} List every scanned file used for purging`);
|
|
27
28
|
print(` ${cyan("--force")} Overwrite existing uds.theme.ts (for init)`);
|
|
28
29
|
print(` ${cyan("--help, -h")} Show this help message`);
|
|
29
30
|
print("");
|
|
@@ -42,14 +43,27 @@ const showHelp = () => {
|
|
|
42
43
|
export default defineTheme({
|
|
43
44
|
config: './uds.config.ts',
|
|
44
45
|
entry: './src',
|
|
46
|
+
scoped: {
|
|
47
|
+
'@your-org/shared-ui': './packages/shared-ui/uds.config.ts'
|
|
48
|
+
},
|
|
45
49
|
colorModes: ['dark'],
|
|
46
50
|
css: {
|
|
47
51
|
preflight: true,
|
|
48
52
|
fontFaceDeclarations: true,
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
optimization: {
|
|
54
|
+
deduplicateScopedCss: true
|
|
55
|
+
}
|
|
51
56
|
}
|
|
52
|
-
})
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// Expanded form when you need a custom output path:
|
|
60
|
+
// scoped: {
|
|
61
|
+
// '@your-org/shared-ui': {
|
|
62
|
+
// config: './packages/shared-ui/uds.config.ts',
|
|
63
|
+
// entry: './stories',
|
|
64
|
+
// outFile: 'dist/shared-ui.css'
|
|
65
|
+
// }
|
|
66
|
+
// }`));
|
|
53
67
|
print("");
|
|
54
68
|
};
|
|
55
69
|
const makeCSSCommand = (getContext) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","names":[],"sources":["../../src/commands/css.ts"],"sourcesContent":["import type { Command, Props } from '@yahoo/uds-cli/lib';\nimport { cyan, gray, green, magenta, print } from '@yahoo/uds-cli/lib';\n\nimport { scaffoldThemeConfig } from '../css/nodeUtils';\nimport { runCssCommand } from '../css/runner';\nimport { getCssInitOptions, getCssRunOptions, isInitCommand, shouldShowHelp } from './css.helpers';\nimport type { SerializedComponentInfo } from './generateComponentData';\n\nconst showHelp = () => {\n print('');\n print(`${green('uds css')} - Generate CSS for app`);\n print('');\n print(`${magenta('Usage:')}`);\n print(` ${cyan('uds css')} [options]`);\n print(` ${cyan('uds css init')} [options]`);\n print('');\n print(`${magenta('Commands:')}`);\n print(` ${cyan('init')} Create a new uds.theme.ts file`);\n print('');\n print(`${magenta('Options:')}`);\n print(` ${cyan('--entry <path>')} Entry directory to scan (default: /src/)`);\n print(` ${cyan('--outFile <path>')} Output CSS file (default: dist/uds.css)`);\n print(` ${cyan('--config <path>')} Path to uds.config.ts for tokens`);\n print(` ${cyan('--theme <path>')} Path to uds.theme.ts (default: uds.theme.ts)`);\n print(` ${cyan('--watch, -w')} Watch for file changes and regenerate`);\n print(` ${cyan('--silent, -s')} Suppress output logging`);\n print(` ${cyan('--force')} Overwrite existing uds.theme.ts (for init)`);\n print(` ${cyan('--help, -h')} Show this help message`);\n print('');\n print(`${magenta('Initialize theme config:')}`);\n print(` ${gray('uds css init')}`);\n print('');\n print(`${magenta('Simple mode')} (no uds.theme.ts):`);\n print(` ${gray('uds css --entry ./src --outFile dist/uds.css')}`);\n print('');\n print(`${magenta('Theme mode')} (with uds.theme.ts):`);\n print(` ${gray('uds css --theme uds.theme.ts --outFile dist/uds.css')}`);\n print('');\n print(`${magenta('Example uds.theme.ts:')}`);\n print(\n gray(` import { defineTheme } from '@yahoo/uds';\n\n export default defineTheme({\n config: './uds.config.ts',\n entry: './src',\n colorModes: ['dark'],\n css: {\n preflight: true,\n fontFaceDeclarations: true,\n
|
|
1
|
+
{"version":3,"file":"css.js","names":[],"sources":["../../src/commands/css.ts"],"sourcesContent":["import type { Command, Props } from '@yahoo/uds-cli/lib';\nimport { cyan, gray, green, magenta, print } from '@yahoo/uds-cli/lib';\n\nimport { scaffoldThemeConfig } from '../css/nodeUtils';\nimport { runCssCommand } from '../css/runner';\nimport { getCssInitOptions, getCssRunOptions, isInitCommand, shouldShowHelp } from './css.helpers';\nimport type { SerializedComponentInfo } from './generateComponentData';\n\nconst showHelp = () => {\n print('');\n print(`${green('uds css')} - Generate CSS for app`);\n print('');\n print(`${magenta('Usage:')}`);\n print(` ${cyan('uds css')} [options]`);\n print(` ${cyan('uds css init')} [options]`);\n print('');\n print(`${magenta('Commands:')}`);\n print(` ${cyan('init')} Create a new uds.theme.ts file`);\n print('');\n print(`${magenta('Options:')}`);\n print(` ${cyan('--entry <path>')} Entry directory to scan (default: /src/)`);\n print(` ${cyan('--outFile <path>')} Output CSS file (default: dist/uds.css)`);\n print(` ${cyan('--config <path>')} Path to uds.config.ts for tokens`);\n print(` ${cyan('--theme <path>')} Path to uds.theme.ts (default: uds.theme.ts)`);\n print(` ${cyan('--watch, -w')} Watch for file changes and regenerate`);\n print(` ${cyan('--silent, -s')} Suppress output logging`);\n print(` ${cyan('--verbose, -v')} List every scanned file used for purging`);\n print(` ${cyan('--force')} Overwrite existing uds.theme.ts (for init)`);\n print(` ${cyan('--help, -h')} Show this help message`);\n print('');\n print(`${magenta('Initialize theme config:')}`);\n print(` ${gray('uds css init')}`);\n print('');\n print(`${magenta('Simple mode')} (no uds.theme.ts):`);\n print(` ${gray('uds css --entry ./src --outFile dist/uds.css')}`);\n print('');\n print(`${magenta('Theme mode')} (with uds.theme.ts):`);\n print(` ${gray('uds css --theme uds.theme.ts --outFile dist/uds.css')}`);\n print('');\n print(`${magenta('Example uds.theme.ts:')}`);\n print(\n gray(` import { defineTheme } from '@yahoo/uds';\n\n export default defineTheme({\n config: './uds.config.ts',\n entry: './src',\n scoped: {\n '@your-org/shared-ui': './packages/shared-ui/uds.config.ts'\n },\n colorModes: ['dark'],\n css: {\n preflight: true,\n fontFaceDeclarations: true,\n optimization: {\n deduplicateScopedCss: true\n }\n }\n });\n\n // Expanded form when you need a custom output path:\n // scoped: {\n // '@your-org/shared-ui': {\n // config: './packages/shared-ui/uds.config.ts',\n // entry: './stories',\n // outFile: 'dist/shared-ui.css'\n // }\n // }`),\n );\n print('');\n};\n\ntype Context = {\n variants: Record<string, Record<string, string>>;\n autoVariants: Record<string, Record<string, string>>;\n componentData: Record<string, SerializedComponentInfo>;\n};\n\nconst makeCSSCommand = (getContext: () => Promise<Context>): Command => ({\n name: 'css',\n description: 'Generate CSS for app',\n tag: 'hidden',\n\n run: async (props: Props) => {\n const { variants, autoVariants, componentData } = await getContext();\n\n if (shouldShowHelp(props.options)) {\n showHelp();\n return;\n }\n\n if (isInitCommand(props.first)) {\n await scaffoldThemeConfig(getCssInitOptions(props.options));\n return;\n }\n\n const cssRunOptions = getCssRunOptions(process.cwd(), props.options);\n\n await runCssCommand(cssRunOptions, { variants, autoVariants, componentData });\n },\n});\n\nexport { makeCSSCommand };\n"],"mappings":";;;;;;;;AAQA,MAAM,iBAAiB;AACrB,OAAM,GAAG;AACT,OAAM,GAAG,MAAM,UAAU,CAAC,yBAAyB;AACnD,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,SAAS,GAAG;AAC7B,OAAM,KAAK,KAAK,UAAU,CAAC,YAAY;AACvC,OAAM,KAAK,KAAK,eAAe,CAAC,YAAY;AAC5C,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,YAAY,GAAG;AAChC,OAAM,KAAK,KAAK,OAAO,CAAC,8CAA8C;AACtE,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,WAAW,GAAG;AAC/B,OAAM,KAAK,KAAK,iBAAiB,CAAC,8CAA8C;AAChF,OAAM,KAAK,KAAK,mBAAmB,CAAC,2CAA2C;AAC/E,OAAM,KAAK,KAAK,kBAAkB,CAAC,qCAAqC;AACxE,OAAM,KAAK,KAAK,iBAAiB,CAAC,kDAAkD;AACpF,OAAM,KAAK,KAAK,cAAc,CAAC,8CAA8C;AAC7E,OAAM,KAAK,KAAK,eAAe,CAAC,+BAA+B;AAC/D,OAAM,KAAK,KAAK,gBAAgB,CAAC,+CAA+C;AAChF,OAAM,KAAK,KAAK,UAAU,CAAC,uDAAuD;AAClF,OAAM,KAAK,KAAK,aAAa,CAAC,gCAAgC;AAC9D,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,2BAA2B,GAAG;AAC/C,OAAM,KAAK,KAAK,eAAe,GAAG;AAClC,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,cAAc,CAAC,qBAAqB;AACrD,OAAM,KAAK,KAAK,+CAA+C,GAAG;AAClE,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,aAAa,CAAC,uBAAuB;AACtD,OAAM,KAAK,KAAK,sDAAsD,GAAG;AACzE,OAAM,GAAG;AACT,OAAM,GAAG,QAAQ,wBAAwB,GAAG;AAC5C,OACE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;QAyBD,CACL;AACD,OAAM,GAAG;;AASX,MAAM,kBAAkB,gBAAiD;CACvE,MAAM;CACN,aAAa;CACb,KAAK;CAEL,KAAK,OAAO,UAAiB;EAC3B,MAAM,EAAE,UAAU,cAAc,kBAAkB,MAAM,YAAY;AAEpE,MAAI,eAAe,MAAM,QAAQ,EAAE;AACjC,aAAU;AACV;;AAGF,MAAI,cAAc,MAAM,MAAM,EAAE;AAC9B,SAAM,oBAAoB,kBAAkB,MAAM,QAAQ,CAAC;AAC3D;;AAKF,QAAM,cAFgB,iBAAiB,QAAQ,KAAK,EAAE,MAAM,QAAQ,EAEjC;GAAE;GAAU;GAAc;GAAe,CAAC;;CAEhF"}
|
|
@@ -109,13 +109,16 @@ const generateSimpleModeCSS = async (options) => {
|
|
|
109
109
|
node_fs.default.writeFileSync(outputPath, cssResult.css);
|
|
110
110
|
const duration = Math.round(performance.now() - startTime);
|
|
111
111
|
if (shouldLogStats) require_generate_helpers.printSimpleModeStats({
|
|
112
|
+
cwd: options.workspaceDir,
|
|
112
113
|
outputPath,
|
|
113
114
|
totalFilesScanned,
|
|
115
|
+
scannedFilePaths: scanResult.filePaths,
|
|
114
116
|
classCount: cssResult.classCount,
|
|
115
117
|
sizeBytes: cssResult.sizeBytes,
|
|
116
118
|
sizeGzipBytes: cssResult.sizeGzipBytes,
|
|
117
119
|
duration,
|
|
118
120
|
scope: options.scope,
|
|
121
|
+
verbose: options.verbose,
|
|
119
122
|
optimizationStats: cssResult.optimizationStats,
|
|
120
123
|
print: require_print.print,
|
|
121
124
|
magenta: require_colors.magenta,
|
|
@@ -8,6 +8,7 @@ const require_plugin = require('../plugin.cjs');
|
|
|
8
8
|
const require_optimizeCSS = require('../utils/optimizeCSS.cjs');
|
|
9
9
|
const require_postcssPreserveVars = require('../utils/postcssPreserveVars.cjs');
|
|
10
10
|
const require_postcss = require('./postcss.cjs');
|
|
11
|
+
const require_runner_helpers = require('./runner.helpers.cjs');
|
|
11
12
|
const require_utils = require('./utils.cjs');
|
|
12
13
|
let node_path = require("node:path");
|
|
13
14
|
node_path = require_runtime.__toESM(node_path);
|
|
@@ -40,7 +41,7 @@ const getCssFeatureFlags = (cssOptions) => {
|
|
|
40
41
|
};
|
|
41
42
|
};
|
|
42
43
|
const getContentGlobs = (contentDir) => {
|
|
43
|
-
return (Array.isArray(contentDir) ? contentDir : [contentDir]).map((dir) => require_entryPoints.hasAllowedEntryFileExtension(dir) ? dir : node_path.default.join(dir, "**/*.{js,jsx,ts,tsx}"));
|
|
44
|
+
return (Array.isArray(contentDir) ? contentDir : [contentDir]).map((dir) => require_entryPoints.hasAllowedEntryFileExtension(dir) ? dir : node_path.default.join(dir, "**/*.{js,jsx,mjs,cjs,ts,tsx}"));
|
|
44
45
|
};
|
|
45
46
|
const getRawContentEntries = (rawContents) => rawContents.map((rawContent) => ({
|
|
46
47
|
raw: rawContent,
|
|
@@ -90,7 +91,7 @@ const buildPostcssPlugins = (options) => {
|
|
|
90
91
|
};
|
|
91
92
|
const applyScopedColorModeFix = async (css, scopeClass) => {
|
|
92
93
|
if (!scopeClass) return css;
|
|
93
|
-
return (await (0, postcss.default)([require_postcss.fixScopedColorModeSelectorsPlugin(scopeClass)]).process(css, { from: void 0 })).css;
|
|
94
|
+
return (await (0, postcss.default)([require_postcss.fixScopedSelfOrParentSelectorsPlugin(scopeClass), require_postcss.fixScopedColorModeSelectorsPlugin(scopeClass)]).process(css, { from: void 0 })).css;
|
|
94
95
|
};
|
|
95
96
|
const optimizeGeneratedCss = async (options) => {
|
|
96
97
|
if (!options.shouldOptimize) return { css: options.css };
|
|
@@ -115,22 +116,29 @@ const optimizeGeneratedCss = async (options) => {
|
|
|
115
116
|
};
|
|
116
117
|
const printSimpleModeStats = (options) => {
|
|
117
118
|
const { print, magenta, cyan, yellow } = options;
|
|
119
|
+
const getDisplayPath = (targetPath) => {
|
|
120
|
+
const relativePath = node_path.default.relative(options.cwd, targetPath);
|
|
121
|
+
return relativePath.length === 0 ? "." : relativePath;
|
|
122
|
+
};
|
|
118
123
|
print("");
|
|
119
|
-
print(`${magenta("Output:")} ${cyan(options.outputPath)}`);
|
|
124
|
+
print(`${magenta("Output:")} ${cyan(getDisplayPath(options.outputPath))}`);
|
|
120
125
|
print(`${magenta("Stats:")}`);
|
|
121
126
|
print(` Files scanned: ${options.totalFilesScanned}`);
|
|
127
|
+
if (options.verbose && options.scannedFilePaths && options.scannedFilePaths.length > 0) [...new Set(options.scannedFilePaths)].sort((left, right) => left.localeCompare(right)).forEach((filePath) => print(` • ${cyan(getDisplayPath(filePath))}`));
|
|
122
128
|
print(` Classes: ${options.classCount}`);
|
|
123
129
|
print(` Size: ${require_utils.formatBytes(options.sizeBytes)} (${require_utils.formatBytes(options.sizeGzipBytes)} gzipped)`);
|
|
124
130
|
const optimizationStats = options.optimizationStats;
|
|
125
131
|
if (optimizationStats) {
|
|
126
|
-
|
|
127
|
-
|
|
132
|
+
if (optimizationStats.originalSizeGzip - options.sizeGzipBytes > 0) {
|
|
133
|
+
if (optimizationStats.fontFacesRemoved > 0) print(` • removed ${optimizationStats.fontFacesRemoved} unused @font-face`);
|
|
134
|
+
if (optimizationStats.emptyRulesRemoved > 0) print(` • removed ${optimizationStats.emptyRulesRemoved} empty rules`);
|
|
135
|
+
}
|
|
128
136
|
if (optimizationStats.validationErrors.length > 0) {
|
|
129
137
|
print(` ${yellow("Validation warnings:")}`);
|
|
130
138
|
optimizationStats.validationErrors.forEach((error) => print(` ${yellow("•")} ${error}`));
|
|
131
139
|
}
|
|
132
140
|
}
|
|
133
|
-
print(` Time: ${options.duration}
|
|
141
|
+
print(` Time: ${require_runner_helpers.formatCssDuration(options.duration)}`);
|
|
134
142
|
if (options.scope) print(` Scope: ${cyan(options.scope)}`);
|
|
135
143
|
};
|
|
136
144
|
|
|
@@ -6,7 +6,8 @@ import { getIconStyles } from "../tailwind/components/getIconStyles.js";
|
|
|
6
6
|
import { tailwindPlugin } from "../plugin.js";
|
|
7
7
|
import { optimizeCSS } from "../utils/optimizeCSS.js";
|
|
8
8
|
import { preserveVars, preserveVarsCleanup } from "../utils/postcssPreserveVars.js";
|
|
9
|
-
import { fixScopedColorModeSelectorsPlugin } from "./postcss.js";
|
|
9
|
+
import { fixScopedColorModeSelectorsPlugin, fixScopedSelfOrParentSelectorsPlugin } from "./postcss.js";
|
|
10
|
+
import { formatCssDuration } from "./runner.helpers.js";
|
|
10
11
|
import { formatBytes } from "./utils.js";
|
|
11
12
|
import path from "node:path";
|
|
12
13
|
import postcss from "postcss";
|
|
@@ -33,7 +34,7 @@ const getCssFeatureFlags = (cssOptions) => {
|
|
|
33
34
|
};
|
|
34
35
|
};
|
|
35
36
|
const getContentGlobs = (contentDir) => {
|
|
36
|
-
return (Array.isArray(contentDir) ? contentDir : [contentDir]).map((dir) => hasAllowedEntryFileExtension(dir) ? dir : path.join(dir, "**/*.{js,jsx,ts,tsx}"));
|
|
37
|
+
return (Array.isArray(contentDir) ? contentDir : [contentDir]).map((dir) => hasAllowedEntryFileExtension(dir) ? dir : path.join(dir, "**/*.{js,jsx,mjs,cjs,ts,tsx}"));
|
|
37
38
|
};
|
|
38
39
|
const getRawContentEntries = (rawContents) => rawContents.map((rawContent) => ({
|
|
39
40
|
raw: rawContent,
|
|
@@ -83,7 +84,7 @@ const buildPostcssPlugins = (options) => {
|
|
|
83
84
|
};
|
|
84
85
|
const applyScopedColorModeFix = async (css, scopeClass) => {
|
|
85
86
|
if (!scopeClass) return css;
|
|
86
|
-
return (await postcss([fixScopedColorModeSelectorsPlugin(scopeClass)]).process(css, { from: void 0 })).css;
|
|
87
|
+
return (await postcss([fixScopedSelfOrParentSelectorsPlugin(scopeClass), fixScopedColorModeSelectorsPlugin(scopeClass)]).process(css, { from: void 0 })).css;
|
|
87
88
|
};
|
|
88
89
|
const optimizeGeneratedCss = async (options) => {
|
|
89
90
|
if (!options.shouldOptimize) return { css: options.css };
|
|
@@ -108,22 +109,29 @@ const optimizeGeneratedCss = async (options) => {
|
|
|
108
109
|
};
|
|
109
110
|
const printSimpleModeStats = (options) => {
|
|
110
111
|
const { print, magenta, cyan, yellow } = options;
|
|
112
|
+
const getDisplayPath = (targetPath) => {
|
|
113
|
+
const relativePath = path.relative(options.cwd, targetPath);
|
|
114
|
+
return relativePath.length === 0 ? "." : relativePath;
|
|
115
|
+
};
|
|
111
116
|
print("");
|
|
112
|
-
print(`${magenta("Output:")} ${cyan(options.outputPath)}`);
|
|
117
|
+
print(`${magenta("Output:")} ${cyan(getDisplayPath(options.outputPath))}`);
|
|
113
118
|
print(`${magenta("Stats:")}`);
|
|
114
119
|
print(` Files scanned: ${options.totalFilesScanned}`);
|
|
120
|
+
if (options.verbose && options.scannedFilePaths && options.scannedFilePaths.length > 0) [...new Set(options.scannedFilePaths)].sort((left, right) => left.localeCompare(right)).forEach((filePath) => print(` • ${cyan(getDisplayPath(filePath))}`));
|
|
115
121
|
print(` Classes: ${options.classCount}`);
|
|
116
122
|
print(` Size: ${formatBytes(options.sizeBytes)} (${formatBytes(options.sizeGzipBytes)} gzipped)`);
|
|
117
123
|
const optimizationStats = options.optimizationStats;
|
|
118
124
|
if (optimizationStats) {
|
|
119
|
-
|
|
120
|
-
|
|
125
|
+
if (optimizationStats.originalSizeGzip - options.sizeGzipBytes > 0) {
|
|
126
|
+
if (optimizationStats.fontFacesRemoved > 0) print(` • removed ${optimizationStats.fontFacesRemoved} unused @font-face`);
|
|
127
|
+
if (optimizationStats.emptyRulesRemoved > 0) print(` • removed ${optimizationStats.emptyRulesRemoved} empty rules`);
|
|
128
|
+
}
|
|
121
129
|
if (optimizationStats.validationErrors.length > 0) {
|
|
122
130
|
print(` ${yellow("Validation warnings:")}`);
|
|
123
131
|
optimizationStats.validationErrors.forEach((error) => print(` ${yellow("•")} ${error}`));
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
|
-
print(` Time: ${options.duration}
|
|
134
|
+
print(` Time: ${formatCssDuration(options.duration)}`);
|
|
127
135
|
if (options.scope) print(` Scope: ${cyan(options.scope)}`);
|
|
128
136
|
};
|
|
129
137
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.helpers.js","names":[],"sources":["../../src/css/generate.helpers.ts"],"sourcesContent":["import path from 'node:path';\n\nimport type { UniversalTokensConfig } from '@yahoo/uds-config';\nimport autoprefixer from 'autoprefixer';\nimport postcss from 'postcss';\n// @ts-expect-error - no types\nimport pruneVar from 'postcss-prune-var';\nimport postcssScope from 'postcss-scope';\nimport tailwindcss from 'tailwindcss';\nimport type { SafelistConfig } from 'tailwindcss/types/config';\n\n// eslint-disable-next-line import/no-relative-packages\nimport { iconPruneVarsSafelist } from '../../../icons/src/safelist';\nimport { getInternalSafelistClasses } from '../purger/optimized/utils/safelist';\nimport { getIconStyles } from '../tailwind/components/getIconStyles';\nimport { tailwindPlugin } from '../tailwind/tailwindPlugin';\nimport { hasAllowedEntryFileExtension } from '../utils/entryPoints';\nimport type { OptimizeCSSOptions } from '../utils/optimizeCSS';\nimport { optimizeCSS } from '../utils/optimizeCSS';\nimport { preserveVars, preserveVarsCleanup } from '../utils/postcssPreserveVars';\nimport { fixScopedColorModeSelectorsPlugin } from './postcss';\nimport type { UDSCSSOptimizationOptions, UDSCSSVarSafelistPattern } from './theme';\nimport { formatBytes } from './utils';\n\ntype CssOptimizationOptions = UDSCSSOptimizationOptions;\n\ntype CssOptionsLike = {\n preflight?: boolean;\n fontFaceDeclarations?: boolean;\n optimization?: CssOptimizationOptions;\n};\n\ntype CssFeatureFlags = {\n enablePreflight: boolean;\n enableFontFaceDeclarations: boolean;\n shouldOptimize: boolean;\n shouldPruneVars: boolean;\n};\n\nconst getPruneVarSafelist = (cssOptions?: CssOptionsLike): UDSCSSVarSafelistPattern[] => {\n const pruneVars = cssOptions?.optimization?.pruneVars;\n const configuredSafelist =\n pruneVars && typeof pruneVars === 'object' ? (pruneVars.safelist ?? []) : [];\n\n return [...iconPruneVarsSafelist, ...configuredSafelist];\n};\n\nconst getCssFeatureFlags = (cssOptions?: CssOptionsLike): CssFeatureFlags => {\n const optimizationConfig = cssOptions?.optimization;\n const shouldOptimize = optimizationConfig?.enabled !== false;\n const pruneVars = optimizationConfig?.pruneVars;\n\n return {\n enablePreflight: cssOptions?.preflight !== false,\n enableFontFaceDeclarations: cssOptions?.fontFaceDeclarations !== false,\n shouldOptimize,\n shouldPruneVars: shouldOptimize && pruneVars !== false,\n };\n};\n\nconst getContentGlobs = (contentDir: string | string[]): string[] => {\n const contentDirs = Array.isArray(contentDir) ? contentDir : [contentDir];\n\n return contentDirs.map((dir) =>\n hasAllowedEntryFileExtension(dir) ? dir : path.join(dir, '**/*.{js,jsx,ts,tsx}'),\n );\n};\n\nconst getRawContentEntries = (rawContents: string[]): Array<{ raw: string; extension: 'html' }> =>\n rawContents.map((rawContent) => ({ raw: rawContent, extension: 'html' }));\n\nconst getInternalSafelistRawContent = (safelist: SafelistConfig[]): string[] => {\n const internalClasses = new Set(getInternalSafelistClasses());\n const matchedInternalClasses = safelist.filter(\n (entry): entry is string => typeof entry === 'string' && internalClasses.has(entry),\n );\n\n if (matchedInternalClasses.length === 0) {\n return [];\n }\n\n return [`<div class=\"${matchedInternalClasses.join(' ')}\"></div>`];\n};\n\nconst getInternalIconModeCss = (scopeClass?: string): string => {\n const iconStyles = getIconStyles();\n\n return Object.entries(iconStyles)\n .map(([selector, declarations]) => {\n const scopedSelector = scopeClass ? `${scopeClass} ${selector}` : selector;\n const declarationString = Object.entries(declarations)\n .map(([property, value]) => `${property}: ${value};`)\n .join(' ');\n\n return `${scopedSelector} { ${declarationString} }`;\n })\n .join(' ');\n};\n\nconst createTailwindPlugin = (options: {\n contentDir: string | string[];\n rawContents?: string[];\n safelist: SafelistConfig[];\n config: UniversalTokensConfig;\n enablePreflight: boolean;\n enableFontFaceDeclarations: boolean;\n}): postcss.AcceptedPlugin => {\n const plugin = tailwindcss({\n content: [\n ...getContentGlobs(options.contentDir),\n ...getRawContentEntries(getInternalSafelistRawContent(options.safelist)),\n ...getRawContentEntries(options.rawContents ?? []),\n ],\n safelist: options.safelist,\n corePlugins: { preflight: options.enablePreflight },\n plugins: [\n tailwindPlugin({\n config: options.config,\n disableFontFaceDeclarations: !options.enableFontFaceDeclarations,\n ignorePluginSafelists: true,\n }),\n ],\n });\n\n return plugin as postcss.AcceptedPlugin;\n};\n\nconst getPruneVarPlugins = (\n safeVarPrefixes: UDSCSSVarSafelistPattern[],\n): postcss.AcceptedPlugin[] => {\n if (safeVarPrefixes.length === 0) {\n return [pruneVar() as postcss.AcceptedPlugin];\n }\n\n return [\n preserveVars({ preserve: safeVarPrefixes }) as postcss.AcceptedPlugin,\n pruneVar() as postcss.AcceptedPlugin,\n preserveVarsCleanup() as postcss.AcceptedPlugin,\n ];\n};\n\nconst buildPostcssPlugins = (options: {\n tailwindPlugin: postcss.AcceptedPlugin;\n shouldPruneVars: boolean;\n safeVarPrefixes: UDSCSSVarSafelistPattern[];\n scopeClass?: string;\n}): postcss.AcceptedPlugin[] => {\n const plugins: postcss.AcceptedPlugin[] = [options.tailwindPlugin, autoprefixer()];\n\n if (options.shouldPruneVars) {\n plugins.push(...getPruneVarPlugins(options.safeVarPrefixes));\n }\n\n if (options.scopeClass) {\n plugins.push(postcssScope(options.scopeClass) as postcss.AcceptedPlugin);\n }\n\n return plugins;\n};\n\nconst applyScopedColorModeFix = async (css: string, scopeClass?: string): Promise<string> => {\n if (!scopeClass) {\n return css;\n }\n\n const fixResult = await postcss([fixScopedColorModeSelectorsPlugin(scopeClass)]).process(css, {\n from: undefined,\n });\n\n return fixResult.css;\n};\n\nconst optimizeGeneratedCss = async (options: {\n css: string;\n shouldOptimize: boolean;\n optimizationConfig?: CssOptimizationOptions;\n referenceCss?: string;\n scopeClass?: string;\n}): Promise<{\n css: string;\n optimizationStats?: {\n originalSize: number;\n originalSizeGzip: number;\n fontFacesRemoved: number;\n emptyRulesRemoved: number;\n validationErrors: string[];\n };\n}> => {\n if (!options.shouldOptimize) {\n return { css: options.css };\n }\n\n const optimizationOptions: OptimizeCSSOptions = {\n removeUnusedFonts: options.optimizationConfig?.removeUnusedFonts,\n removeEmptyRules: options.optimizationConfig?.removeEmptyRules,\n aggregateDuplicateSelectors: options.optimizationConfig?.aggregateDuplicateSelectors,\n referenceCss: options.referenceCss,\n scopeClass: options.scopeClass,\n };\n\n const optimized = await optimizeCSS(options.css, optimizationOptions);\n return {\n css: optimized.css,\n optimizationStats: {\n originalSize: optimized.stats.originalSize,\n originalSizeGzip: optimized.stats.originalSizeGzip,\n fontFacesRemoved: optimized.stats.fontFacesRemoved,\n emptyRulesRemoved: optimized.stats.emptyRulesRemoved,\n validationErrors: optimized.validation.errors,\n },\n };\n};\n\nconst printSimpleModeStats = (options: {\n outputPath: string;\n totalFilesScanned: number;\n classCount: number;\n sizeBytes: number;\n sizeGzipBytes: number;\n duration: number;\n scope?: string;\n optimizationStats?: {\n originalSizeGzip: number;\n fontFacesRemoved: number;\n emptyRulesRemoved: number;\n validationErrors: string[];\n };\n print: (value: string) => void;\n magenta: (value: string) => string;\n cyan: (value: string) => string;\n yellow: (value: string) => string;\n}): void => {\n const { print, magenta, cyan, yellow } = options;\n\n print('');\n print(`${magenta('Output:')} ${cyan(options.outputPath)}`);\n print(`${magenta('Stats:')}`);\n print(` Files scanned: ${options.totalFilesScanned}`);\n print(` Classes: ${options.classCount}`);\n print(\n ` Size: ${formatBytes(options.sizeBytes)} (${formatBytes(options.sizeGzipBytes)} gzipped)`,\n );\n\n const optimizationStats = options.optimizationStats;\n if (optimizationStats) {\n const savedBytesGzip = optimizationStats.originalSizeGzip - options.sizeGzipBytes;\n if (savedBytesGzip > 0) {\n print(\n ` Optimized: saved ${formatBytes(savedBytesGzip)} gzip (${optimizationStats.fontFacesRemoved} unused @font-face, ${optimizationStats.emptyRulesRemoved} empty rules removed)`,\n );\n }\n\n if (optimizationStats.validationErrors.length > 0) {\n print(` ${yellow('Validation warnings:')}`);\n optimizationStats.validationErrors.forEach((error) => print(` ${yellow('•')} ${error}`));\n }\n }\n\n print(` Time: ${options.duration}ms`);\n if (options.scope) {\n print(` Scope: ${cyan(options.scope)}`);\n }\n};\n\nexport {\n applyScopedColorModeFix,\n buildPostcssPlugins,\n createTailwindPlugin,\n getContentGlobs,\n getCssFeatureFlags,\n getInternalIconModeCss,\n getInternalSafelistRawContent,\n getPruneVarSafelist,\n optimizeGeneratedCss,\n printSimpleModeStats,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.helpers.js","names":[],"sources":["../../src/css/generate.helpers.ts"],"sourcesContent":["import path from 'node:path';\n\nimport type { UniversalTokensConfig } from '@yahoo/uds-config';\nimport autoprefixer from 'autoprefixer';\nimport postcss from 'postcss';\n// @ts-expect-error - no types\nimport pruneVar from 'postcss-prune-var';\nimport postcssScope from 'postcss-scope';\nimport tailwindcss from 'tailwindcss';\nimport type { SafelistConfig } from 'tailwindcss/types/config';\n\n// eslint-disable-next-line import/no-relative-packages\nimport { iconPruneVarsSafelist } from '../../../icons/src/safelist';\nimport { getInternalSafelistClasses } from '../purger/optimized/utils/safelist';\nimport { getIconStyles } from '../tailwind/components/getIconStyles';\nimport { tailwindPlugin } from '../tailwind/tailwindPlugin';\nimport { hasAllowedEntryFileExtension } from '../utils/entryPoints';\nimport type { OptimizeCSSOptions } from '../utils/optimizeCSS';\nimport { optimizeCSS } from '../utils/optimizeCSS';\nimport { preserveVars, preserveVarsCleanup } from '../utils/postcssPreserveVars';\nimport { fixScopedColorModeSelectorsPlugin, fixScopedSelfOrParentSelectorsPlugin } from './postcss';\nimport { formatCssDuration } from './runner.helpers';\nimport type { UDSCSSOptimizationOptions, UDSCSSVarSafelistPattern } from './theme';\nimport { formatBytes } from './utils';\n\ntype CssOptimizationOptions = UDSCSSOptimizationOptions;\n\ntype CssOptionsLike = {\n preflight?: boolean;\n fontFaceDeclarations?: boolean;\n optimization?: CssOptimizationOptions;\n};\n\ntype CssFeatureFlags = {\n enablePreflight: boolean;\n enableFontFaceDeclarations: boolean;\n shouldOptimize: boolean;\n shouldPruneVars: boolean;\n};\n\nconst getPruneVarSafelist = (cssOptions?: CssOptionsLike): UDSCSSVarSafelistPattern[] => {\n const pruneVars = cssOptions?.optimization?.pruneVars;\n const configuredSafelist =\n pruneVars && typeof pruneVars === 'object' ? (pruneVars.safelist ?? []) : [];\n\n return [...iconPruneVarsSafelist, ...configuredSafelist];\n};\n\nconst getCssFeatureFlags = (cssOptions?: CssOptionsLike): CssFeatureFlags => {\n const optimizationConfig = cssOptions?.optimization;\n const shouldOptimize = optimizationConfig?.enabled !== false;\n const pruneVars = optimizationConfig?.pruneVars;\n\n return {\n enablePreflight: cssOptions?.preflight !== false,\n enableFontFaceDeclarations: cssOptions?.fontFaceDeclarations !== false,\n shouldOptimize,\n shouldPruneVars: shouldOptimize && pruneVars !== false,\n };\n};\n\nconst getContentGlobs = (contentDir: string | string[]): string[] => {\n const contentDirs = Array.isArray(contentDir) ? contentDir : [contentDir];\n\n return contentDirs.map((dir) =>\n hasAllowedEntryFileExtension(dir) ? dir : path.join(dir, '**/*.{js,jsx,mjs,cjs,ts,tsx}'),\n );\n};\n\nconst getRawContentEntries = (rawContents: string[]): Array<{ raw: string; extension: 'html' }> =>\n rawContents.map((rawContent) => ({ raw: rawContent, extension: 'html' }));\n\nconst getInternalSafelistRawContent = (safelist: SafelistConfig[]): string[] => {\n const internalClasses = new Set(getInternalSafelistClasses());\n const matchedInternalClasses = safelist.filter(\n (entry): entry is string => typeof entry === 'string' && internalClasses.has(entry),\n );\n\n if (matchedInternalClasses.length === 0) {\n return [];\n }\n\n return [`<div class=\"${matchedInternalClasses.join(' ')}\"></div>`];\n};\n\nconst getInternalIconModeCss = (scopeClass?: string): string => {\n const iconStyles = getIconStyles();\n\n return Object.entries(iconStyles)\n .map(([selector, declarations]) => {\n const scopedSelector = scopeClass ? `${scopeClass} ${selector}` : selector;\n const declarationString = Object.entries(declarations)\n .map(([property, value]) => `${property}: ${value};`)\n .join(' ');\n\n return `${scopedSelector} { ${declarationString} }`;\n })\n .join(' ');\n};\n\nconst createTailwindPlugin = (options: {\n contentDir: string | string[];\n rawContents?: string[];\n safelist: SafelistConfig[];\n config: UniversalTokensConfig;\n enablePreflight: boolean;\n enableFontFaceDeclarations: boolean;\n}): postcss.AcceptedPlugin => {\n const plugin = tailwindcss({\n content: [\n ...getContentGlobs(options.contentDir),\n ...getRawContentEntries(getInternalSafelistRawContent(options.safelist)),\n ...getRawContentEntries(options.rawContents ?? []),\n ],\n safelist: options.safelist,\n corePlugins: { preflight: options.enablePreflight },\n plugins: [\n tailwindPlugin({\n config: options.config,\n disableFontFaceDeclarations: !options.enableFontFaceDeclarations,\n ignorePluginSafelists: true,\n }),\n ],\n });\n\n return plugin as postcss.AcceptedPlugin;\n};\n\nconst getPruneVarPlugins = (\n safeVarPrefixes: UDSCSSVarSafelistPattern[],\n): postcss.AcceptedPlugin[] => {\n if (safeVarPrefixes.length === 0) {\n return [pruneVar() as postcss.AcceptedPlugin];\n }\n\n return [\n preserveVars({ preserve: safeVarPrefixes }) as postcss.AcceptedPlugin,\n pruneVar() as postcss.AcceptedPlugin,\n preserveVarsCleanup() as postcss.AcceptedPlugin,\n ];\n};\n\nconst buildPostcssPlugins = (options: {\n tailwindPlugin: postcss.AcceptedPlugin;\n shouldPruneVars: boolean;\n safeVarPrefixes: UDSCSSVarSafelistPattern[];\n scopeClass?: string;\n}): postcss.AcceptedPlugin[] => {\n const plugins: postcss.AcceptedPlugin[] = [options.tailwindPlugin, autoprefixer()];\n\n if (options.shouldPruneVars) {\n plugins.push(...getPruneVarPlugins(options.safeVarPrefixes));\n }\n\n if (options.scopeClass) {\n plugins.push(postcssScope(options.scopeClass) as postcss.AcceptedPlugin);\n }\n\n return plugins;\n};\n\nconst applyScopedColorModeFix = async (css: string, scopeClass?: string): Promise<string> => {\n if (!scopeClass) {\n return css;\n }\n\n const fixResult = await postcss([\n fixScopedSelfOrParentSelectorsPlugin(scopeClass),\n fixScopedColorModeSelectorsPlugin(scopeClass),\n ]).process(css, {\n from: undefined,\n });\n\n return fixResult.css;\n};\n\nconst optimizeGeneratedCss = async (options: {\n css: string;\n shouldOptimize: boolean;\n optimizationConfig?: CssOptimizationOptions;\n referenceCss?: string;\n scopeClass?: string;\n}): Promise<{\n css: string;\n optimizationStats?: {\n originalSize: number;\n originalSizeGzip: number;\n fontFacesRemoved: number;\n emptyRulesRemoved: number;\n validationErrors: string[];\n };\n}> => {\n if (!options.shouldOptimize) {\n return { css: options.css };\n }\n\n const optimizationOptions: OptimizeCSSOptions = {\n removeUnusedFonts: options.optimizationConfig?.removeUnusedFonts,\n removeEmptyRules: options.optimizationConfig?.removeEmptyRules,\n aggregateDuplicateSelectors: options.optimizationConfig?.aggregateDuplicateSelectors,\n referenceCss: options.referenceCss,\n scopeClass: options.scopeClass,\n };\n\n const optimized = await optimizeCSS(options.css, optimizationOptions);\n return {\n css: optimized.css,\n optimizationStats: {\n originalSize: optimized.stats.originalSize,\n originalSizeGzip: optimized.stats.originalSizeGzip,\n fontFacesRemoved: optimized.stats.fontFacesRemoved,\n emptyRulesRemoved: optimized.stats.emptyRulesRemoved,\n validationErrors: optimized.validation.errors,\n },\n };\n};\n\nconst printSimpleModeStats = (options: {\n cwd: string;\n outputPath: string;\n totalFilesScanned: number;\n scannedFilePaths?: string[];\n classCount: number;\n sizeBytes: number;\n sizeGzipBytes: number;\n duration: number;\n scope?: string;\n verbose?: boolean;\n optimizationStats?: {\n originalSizeGzip: number;\n fontFacesRemoved: number;\n emptyRulesRemoved: number;\n validationErrors: string[];\n };\n print: (value: string) => void;\n magenta: (value: string) => string;\n cyan: (value: string) => string;\n yellow: (value: string) => string;\n}): void => {\n const { print, magenta, cyan, yellow } = options;\n const getDisplayPath = (targetPath: string): string => {\n const relativePath = path.relative(options.cwd, targetPath);\n return relativePath.length === 0 ? '.' : relativePath;\n };\n\n print('');\n print(`${magenta('Output:')} ${cyan(getDisplayPath(options.outputPath))}`);\n print(`${magenta('Stats:')}`);\n print(` Files scanned: ${options.totalFilesScanned}`);\n if (options.verbose && options.scannedFilePaths && options.scannedFilePaths.length > 0) {\n [...new Set(options.scannedFilePaths)]\n .sort((left, right) => left.localeCompare(right))\n .forEach((filePath) => print(` • ${cyan(getDisplayPath(filePath))}`));\n }\n print(` Classes: ${options.classCount}`);\n print(\n ` Size: ${formatBytes(options.sizeBytes)} (${formatBytes(options.sizeGzipBytes)} gzipped)`,\n );\n\n const optimizationStats = options.optimizationStats;\n if (optimizationStats) {\n const savedBytesGzip = optimizationStats.originalSizeGzip - options.sizeGzipBytes;\n if (savedBytesGzip > 0) {\n if (optimizationStats.fontFacesRemoved > 0) {\n print(` • removed ${optimizationStats.fontFacesRemoved} unused @font-face`);\n }\n if (optimizationStats.emptyRulesRemoved > 0) {\n print(` • removed ${optimizationStats.emptyRulesRemoved} empty rules`);\n }\n }\n\n if (optimizationStats.validationErrors.length > 0) {\n print(` ${yellow('Validation warnings:')}`);\n optimizationStats.validationErrors.forEach((error) => print(` ${yellow('•')} ${error}`));\n }\n }\n\n print(` Time: ${formatCssDuration(options.duration)}`);\n if (options.scope) {\n print(` Scope: ${cyan(options.scope)}`);\n }\n};\n\nexport {\n applyScopedColorModeFix,\n buildPostcssPlugins,\n createTailwindPlugin,\n getContentGlobs,\n getCssFeatureFlags,\n getInternalIconModeCss,\n getInternalSafelistRawContent,\n getPruneVarSafelist,\n optimizeGeneratedCss,\n printSimpleModeStats,\n};\n"],"mappings":"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"}
|
|
@@ -105,13 +105,16 @@ const generateSimpleModeCSS = async (options) => {
|
|
|
105
105
|
fs.writeFileSync(outputPath, cssResult.css);
|
|
106
106
|
const duration = Math.round(performance.now() - startTime);
|
|
107
107
|
if (shouldLogStats) printSimpleModeStats({
|
|
108
|
+
cwd: options.workspaceDir,
|
|
108
109
|
outputPath,
|
|
109
110
|
totalFilesScanned,
|
|
111
|
+
scannedFilePaths: scanResult.filePaths,
|
|
110
112
|
classCount: cssResult.classCount,
|
|
111
113
|
sizeBytes: cssResult.sizeBytes,
|
|
112
114
|
sizeGzipBytes: cssResult.sizeGzipBytes,
|
|
113
115
|
duration,
|
|
114
116
|
scope: options.scope,
|
|
117
|
+
verbose: options.verbose,
|
|
115
118
|
optimizationStats: cssResult.optimizationStats,
|
|
116
119
|
print,
|
|
117
120
|
magenta,
|