@yahoo/uds 3.133.0-beta.2 → 3.133.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +12 -22
- package/dist/_virtual/_rolldown/runtime.js +6 -11
- package/dist/automated-config/dist/generated/autoVariants.cjs +1 -3
- package/dist/automated-config/dist/generated/autoVariants.js +1 -2
- package/dist/automated-config/dist/generated/generatedConfigs.cjs +1 -3
- package/dist/automated-config/dist/generated/generatedConfigs.js +1 -2
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +1 -3
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +1 -2
- package/dist/automated-config/dist/mapTextVariantFixtureToValue.cjs +3 -5
- package/dist/automated-config/dist/mapTextVariantFixtureToValue.js +1 -3
- package/dist/automated-config/dist/properties.cjs +7 -10
- package/dist/automated-config/dist/properties.d.cts +1 -1
- package/dist/automated-config/dist/properties.d.ts +1 -1
- package/dist/automated-config/dist/properties.js +2 -5
- package/dist/automated-config/dist/utils/assertUnreachable.cjs +1 -3
- package/dist/automated-config/dist/utils/assertUnreachable.js +1 -2
- package/dist/automated-config/dist/utils/buildConfigSchema.cjs +4 -6
- package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +1 -1
- package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +1 -1
- package/dist/automated-config/dist/utils/buildConfigSchema.js +1 -3
- package/dist/automated-config/dist/utils/cartesianProduct.cjs +1 -3
- package/dist/automated-config/dist/utils/cartesianProduct.js +1 -2
- package/dist/automated-config/dist/utils/coalesceConfigVariant.cjs +3 -5
- package/dist/automated-config/dist/utils/coalesceConfigVariant.js +1 -3
- package/dist/automated-config/dist/utils/defaults.cjs +1 -3
- package/dist/automated-config/dist/utils/defaults.js +1 -2
- package/dist/automated-config/dist/utils/generateDefaultClassName.cjs +1 -3
- package/dist/automated-config/dist/utils/generateDefaultClassName.js +1 -2
- package/dist/automated-config/dist/utils/generateKeyFromFlatConfigPath.cjs +1 -3
- package/dist/automated-config/dist/utils/generateKeyFromFlatConfigPath.js +1 -2
- package/dist/automated-config/dist/utils/generateSchemaKey.cjs +1 -3
- package/dist/automated-config/dist/utils/generateSchemaKey.js +1 -2
- package/dist/automated-config/dist/utils/getConfigComponentVariant.cjs +2 -4
- package/dist/automated-config/dist/utils/getConfigComponentVariant.js +1 -3
- package/dist/automated-config/dist/utils/getConfigVariantComponentStatesMatrix.cjs +5 -7
- package/dist/automated-config/dist/utils/getConfigVariantComponentStatesMatrix.js +1 -3
- package/dist/automated-config/dist/utils/getConfigVariantProperties.cjs +3 -5
- package/dist/automated-config/dist/utils/getConfigVariantProperties.js +1 -3
- package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.cjs +3 -5
- package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.js +1 -3
- package/dist/automated-config/dist/utils/getConfigVariants.cjs +4 -6
- package/dist/automated-config/dist/utils/getConfigVariants.js +1 -3
- package/dist/automated-config/dist/utils/index.cjs +17 -19
- package/dist/automated-config/dist/utils/index.js +11 -13
- package/dist/automated-config/dist/utils/mapColorFixtureToValue.cjs +4 -6
- package/dist/automated-config/dist/utils/mapColorFixtureToValue.js +3 -5
- package/dist/automated-config/dist/utils/mapValues.cjs +1 -3
- package/dist/automated-config/dist/utils/mapValues.js +1 -2
- package/dist/automated-config/dist/utils/subcomponents.cjs +1 -3
- package/dist/automated-config/dist/utils/subcomponents.js +1 -2
- package/dist/automated-config/dist/utils/variantConfigGuards.cjs +1 -3
- package/dist/automated-config/dist/utils/variantConfigGuards.js +1 -2
- package/dist/cli/commands/sync.cjs +16 -18
- package/dist/cli/commands/sync.js +1 -3
- package/dist/cli/commands/utils/sortKeys.cjs +2 -4
- package/dist/cli/commands/utils/sortKeys.js +1 -2
- package/dist/cli/commands/version.cjs +5 -7
- package/dist/cli/commands/version.js +1 -3
- package/dist/cli/dist/cli.cjs +8 -10
- package/dist/cli/dist/cli.js +1 -3
- package/dist/cli/dist/commands/codemod/codemod.cjs +6 -8
- package/dist/cli/dist/commands/codemod/codemod.js +1 -3
- package/dist/cli/dist/commands/editor-rules.cjs +6 -8
- package/dist/cli/dist/commands/editor-rules.js +1 -3
- package/dist/cli/dist/lib/args.cjs +1 -3
- package/dist/cli/dist/lib/args.js +1 -2
- package/dist/cli/dist/lib/box.cjs +3 -5
- package/dist/cli/dist/lib/box.js +1 -3
- package/dist/cli/dist/lib/colors.cjs +1 -3
- package/dist/cli/dist/lib/colors.js +1 -2
- package/dist/cli/dist/lib/print.cjs +1 -3
- package/dist/cli/dist/lib/print.js +1 -2
- package/dist/cli/dist/utils/analytics.cjs +2 -4
- package/dist/cli/dist/utils/analytics.js +1 -3
- package/dist/cli/dist/utils/getCommandHelp.cjs +3 -5
- package/dist/cli/dist/utils/getCommandHelp.js +1 -3
- package/dist/cli/dist/utils/getDirChoices.cjs +3 -5
- package/dist/cli/dist/utils/getDirChoices.js +1 -3
- package/dist/cli/dist/utils/rules/config.cjs +2 -4
- package/dist/cli/dist/utils/rules/config.js +1 -3
- package/dist/cli/runner.cjs +13 -15
- package/dist/cli/runner.js +1 -3
- package/dist/components/Banner/Banner.cjs +9 -11
- package/dist/components/Banner/Banner.d.cts +3 -4
- package/dist/components/Banner/Banner.d.ts +3 -4
- package/dist/components/Banner/Banner.js +3 -5
- package/dist/components/Banner/BannerContent.cjs +4 -6
- package/dist/components/Banner/BannerContent.d.cts +2 -2
- package/dist/components/Banner/BannerContent.d.ts +2 -2
- package/dist/components/Banner/BannerContent.js +1 -3
- package/dist/components/Banner/BannerDescription.cjs +5 -7
- package/dist/components/Banner/BannerDescription.d.cts +2 -2
- package/dist/components/Banner/BannerDescription.d.ts +2 -2
- package/dist/components/Banner/BannerDescription.js +1 -3
- package/dist/components/Banner/BannerTitle.cjs +5 -7
- package/dist/components/Banner/BannerTitle.d.cts +2 -2
- package/dist/components/Banner/BannerTitle.d.ts +2 -2
- package/dist/components/Banner/BannerTitle.js +1 -3
- package/dist/components/Banner/index.cjs +6 -7
- package/dist/components/Banner/index.js +1 -2
- package/dist/components/Banner/utils.cjs +3 -5
- package/dist/components/Banner/utils.d.cts +1 -1
- package/dist/components/Banner/utils.d.ts +1 -1
- package/dist/components/Banner/utils.js +1 -3
- package/dist/components/Box.cjs +5 -7
- package/dist/components/Box.d.cts +3 -4
- package/dist/components/Box.d.ts +3 -4
- package/dist/components/Box.js +1 -3
- package/dist/components/Divider/Divider.cjs +4 -6
- package/dist/components/Divider/Divider.d.cts +2 -2
- package/dist/components/Divider/Divider.d.ts +2 -2
- package/dist/components/Divider/Divider.js +1 -3
- package/dist/components/Divider/DividerCore.cjs +8 -10
- package/dist/components/Divider/DividerCore.d.cts +4 -5
- package/dist/components/Divider/DividerCore.d.ts +4 -5
- package/dist/components/Divider/DividerCore.js +2 -4
- package/dist/components/Divider/DividerInternal.cjs +5 -7
- package/dist/components/Divider/DividerInternal.d.cts +3 -4
- package/dist/components/Divider/DividerInternal.d.ts +3 -4
- package/dist/components/Divider/DividerInternal.js +1 -3
- package/dist/components/Divider/index.cjs +3 -4
- package/dist/components/Divider/index.js +1 -2
- package/dist/components/FormLabel.cjs +5 -7
- package/dist/components/FormLabel.d.cts +3 -4
- package/dist/components/FormLabel.d.ts +3 -4
- package/dist/components/FormLabel.js +1 -3
- package/dist/components/HStack.cjs +5 -7
- package/dist/components/HStack.d.cts +3 -4
- package/dist/components/HStack.d.ts +3 -4
- package/dist/components/HStack.js +1 -3
- package/dist/components/Icon.cjs +11 -22
- package/dist/components/Icon.d.cts +3 -3
- package/dist/components/Icon.d.ts +3 -3
- package/dist/components/Icon.js +8 -19
- package/dist/components/IconSlot.cjs +11 -32
- package/dist/components/IconSlot.d.cts +2 -4
- package/dist/components/IconSlot.d.ts +2 -4
- package/dist/components/IconSlot.js +7 -29
- package/dist/components/Image.cjs +4 -6
- package/dist/components/Image.d.cts +3 -4
- package/dist/components/Image.d.ts +3 -4
- package/dist/components/Image.js +1 -3
- package/dist/components/Link.cjs +5 -7
- package/dist/components/Link.d.cts +3 -4
- package/dist/components/Link.d.ts +3 -4
- package/dist/components/Link.js +1 -3
- package/dist/components/Scrim.cjs +5 -7
- package/dist/components/Scrim.d.cts +2 -2
- package/dist/components/Scrim.d.ts +2 -2
- package/dist/components/Scrim.js +1 -3
- package/dist/components/SvgFloatingOverlay.cjs +5 -7
- package/dist/components/SvgFloatingOverlay.d.cts +2 -2
- package/dist/components/SvgFloatingOverlay.d.ts +2 -2
- package/dist/components/SvgFloatingOverlay.js +1 -3
- package/dist/components/Text.cjs +5 -7
- package/dist/components/Text.d.cts +3 -4
- package/dist/components/Text.d.ts +3 -4
- package/dist/components/Text.js +1 -3
- package/dist/components/VStack.cjs +5 -7
- package/dist/components/VStack.d.cts +3 -4
- package/dist/components/VStack.d.ts +3 -4
- package/dist/components/VStack.js +1 -3
- package/dist/components/client/AnimateHeightChange.cjs +4 -6
- package/dist/components/client/AnimateHeightChange.d.cts +2 -2
- package/dist/components/client/AnimateHeightChange.d.ts +2 -2
- package/dist/components/client/AnimateHeightChange.js +1 -3
- package/dist/components/{Avatar → client/Avatar}/Avatar.cjs +8 -25
- package/dist/components/{Avatar → client/Avatar}/Avatar.d.cts +5 -5
- package/dist/components/{Avatar → client/Avatar}/Avatar.d.ts +6 -5
- package/dist/components/{Avatar → client/Avatar}/Avatar.js +6 -23
- package/dist/components/{Avatar → client/Avatar}/AvatarIcon.cjs +14 -15
- package/dist/components/{Avatar → client/Avatar}/AvatarIcon.d.cts +5 -7
- package/dist/components/{Avatar → client/Avatar}/AvatarIcon.d.ts +6 -7
- package/dist/components/{Avatar → client/Avatar}/AvatarIcon.js +10 -11
- package/dist/components/client/Avatar/AvatarImage.cjs +61 -42
- package/dist/components/client/Avatar/AvatarImage.d.cts +17 -4
- package/dist/components/client/Avatar/AvatarImage.d.ts +17 -4
- package/dist/components/client/Avatar/AvatarImage.js +58 -39
- package/dist/components/{Avatar → client/Avatar}/AvatarText.cjs +13 -15
- package/dist/components/{Avatar → client/Avatar}/AvatarText.d.cts +5 -7
- package/dist/components/{Avatar → client/Avatar}/AvatarText.d.ts +6 -7
- package/dist/components/{Avatar → client/Avatar}/AvatarText.js +8 -10
- package/dist/components/client/Avatar/index.cjs +9 -4
- package/dist/components/client/Avatar/index.d.cts +5 -3
- package/dist/components/client/Avatar/index.d.ts +5 -3
- package/dist/components/client/Avatar/index.js +4 -2
- package/dist/components/{Avatar → client/Avatar}/utils.cjs +7 -8
- package/dist/components/{Avatar → client/Avatar}/utils.d.cts +3 -4
- package/dist/components/{Avatar → client/Avatar}/utils.d.ts +4 -4
- package/dist/components/{Avatar → client/Avatar}/utils.js +4 -5
- package/dist/components/client/Badge.cjs +6 -8
- package/dist/components/client/Badge.d.cts +1 -2
- package/dist/components/client/Badge.d.ts +1 -2
- package/dist/components/client/Badge.js +2 -4
- package/dist/components/client/BottomSheet/BottomSheet.cjs +15 -17
- package/dist/components/client/BottomSheet/BottomSheet.d.cts +3 -3
- package/dist/components/client/BottomSheet/BottomSheet.d.ts +3 -3
- package/dist/components/client/BottomSheet/BottomSheet.js +1 -3
- package/dist/components/client/BottomSheet/BottomSheetContent.cjs +7 -9
- package/dist/components/client/BottomSheet/BottomSheetContent.d.cts +3 -3
- package/dist/components/client/BottomSheet/BottomSheetContent.d.ts +3 -3
- package/dist/components/client/BottomSheet/BottomSheetContent.js +1 -3
- package/dist/components/client/BottomSheet/BottomSheetDismiss.cjs +3 -5
- package/dist/components/client/BottomSheet/BottomSheetDismiss.d.cts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetDismiss.d.ts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetDismiss.js +1 -3
- package/dist/components/client/BottomSheet/BottomSheetHandle.cjs +5 -7
- package/dist/components/client/BottomSheet/BottomSheetHandle.d.cts +3 -3
- package/dist/components/client/BottomSheet/BottomSheetHandle.d.ts +3 -3
- package/dist/components/client/BottomSheet/BottomSheetHandle.js +1 -3
- package/dist/components/client/BottomSheet/BottomSheetHeader.cjs +6 -8
- package/dist/components/client/BottomSheet/BottomSheetHeader.d.cts +3 -3
- package/dist/components/client/BottomSheet/BottomSheetHeader.d.ts +3 -3
- package/dist/components/client/BottomSheet/BottomSheetHeader.js +2 -4
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.cjs +3 -5
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.d.cts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.d.ts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetInternalContext.js +1 -3
- package/dist/components/client/BottomSheet/BottomSheetProvider.cjs +5 -7
- package/dist/components/client/BottomSheet/BottomSheetProvider.d.cts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetProvider.d.ts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetProvider.js +1 -3
- package/dist/components/client/BottomSheet/BottomSheetTrigger.cjs +3 -5
- package/dist/components/client/BottomSheet/BottomSheetTrigger.d.cts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetTrigger.d.ts +2 -2
- package/dist/components/client/BottomSheet/BottomSheetTrigger.js +1 -3
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.cjs +3 -5
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.d.cts +2 -2
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.d.ts +2 -2
- package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.js +1 -3
- package/dist/components/client/BottomSheet/index.cjs +10 -11
- package/dist/components/client/BottomSheet/index.js +1 -2
- package/dist/components/client/BottomSheet/useBottomSheetDrag.cjs +5 -7
- package/dist/components/client/BottomSheet/useBottomSheetDrag.js +1 -3
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.cjs +5 -7
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.cts +1 -2
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.ts +1 -2
- package/dist/components/client/BottomSheet/useBottomSheetSnapModel.js +1 -3
- package/dist/components/client/BottomSheet/useBottomSheetStore.cjs +4 -6
- package/dist/components/client/BottomSheet/useBottomSheetStore.d.cts +2 -2
- package/dist/components/client/BottomSheet/useBottomSheetStore.d.ts +2 -2
- package/dist/components/client/BottomSheet/useBottomSheetStore.js +1 -3
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.cjs +3 -5
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.d.cts +2 -2
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.d.ts +2 -2
- package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.js +1 -3
- package/dist/components/client/BottomSheet/useExpansionMargins.cjs +3 -5
- package/dist/components/client/BottomSheet/useExpansionMargins.js +1 -3
- package/dist/components/client/BottomSheet/useViewportHeight.cjs +4 -6
- package/dist/components/client/BottomSheet/useViewportHeight.js +1 -3
- package/dist/components/client/BottomSheet/useVirtualKeyboard.cjs +4 -6
- package/dist/components/client/BottomSheet/useVirtualKeyboard.js +1 -3
- package/dist/components/client/BottomSheet/utils.cjs +4 -6
- package/dist/components/client/BottomSheet/utils.d.cts +1 -1
- package/dist/components/client/BottomSheet/utils.d.ts +1 -1
- package/dist/components/client/BottomSheet/utils.js +1 -3
- package/dist/components/client/Button.cjs +15 -17
- package/dist/components/client/Button.d.cts +1 -2
- package/dist/components/client/Button.d.ts +1 -2
- package/dist/components/client/Button.js +6 -8
- package/dist/components/client/Checkbox.cjs +9 -11
- package/dist/components/client/Checkbox.d.cts +1 -2
- package/dist/components/client/Checkbox.d.ts +1 -2
- package/dist/components/client/Checkbox.js +3 -5
- package/dist/components/client/Chip/Chip.cjs +7 -9
- package/dist/components/client/Chip/Chip.d.cts +0 -1
- package/dist/components/client/Chip/Chip.d.ts +0 -1
- package/dist/components/client/Chip/Chip.js +2 -4
- package/dist/components/client/Chip/ChipBase.cjs +7 -9
- package/dist/components/client/Chip/ChipBase.d.cts +1 -2
- package/dist/components/client/Chip/ChipBase.d.ts +1 -2
- package/dist/components/client/Chip/ChipBase.js +2 -4
- package/dist/components/client/Chip/ChipButton.cjs +6 -8
- package/dist/components/client/Chip/ChipButton.d.cts +1 -2
- package/dist/components/client/Chip/ChipButton.d.ts +1 -2
- package/dist/components/client/Chip/ChipButton.js +2 -4
- package/dist/components/client/Chip/ChipDismissible.cjs +9 -11
- package/dist/components/client/Chip/ChipDismissible.d.cts +1 -2
- package/dist/components/client/Chip/ChipDismissible.d.ts +1 -2
- package/dist/components/client/Chip/ChipDismissible.js +3 -5
- package/dist/components/client/Chip/ChipLink.cjs +6 -8
- package/dist/components/client/Chip/ChipLink.d.cts +1 -2
- package/dist/components/client/Chip/ChipLink.d.ts +1 -2
- package/dist/components/client/Chip/ChipLink.js +2 -4
- package/dist/components/client/Chip/ChipToggle.cjs +7 -10
- package/dist/components/client/Chip/ChipToggle.d.cts +1 -2
- package/dist/components/client/Chip/ChipToggle.d.ts +1 -2
- package/dist/components/client/Chip/ChipToggle.js +3 -6
- package/dist/components/client/Chip/index.cjs +7 -8
- package/dist/components/client/Chip/index.js +1 -2
- package/dist/components/client/IconButton.cjs +14 -21
- package/dist/components/client/IconButton.d.cts +2 -3
- package/dist/components/client/IconButton.d.ts +2 -3
- package/dist/components/client/IconButton.js +6 -13
- package/dist/components/client/Input/Input.cjs +18 -16
- package/dist/components/client/Input/Input.d.cts +3 -4
- package/dist/components/client/Input/Input.d.ts +3 -4
- package/dist/components/client/Input/Input.js +11 -9
- package/dist/components/client/Input/InputHelpText.cjs +6 -8
- package/dist/components/client/Input/InputHelpText.d.cts +2 -2
- package/dist/components/client/Input/InputHelpText.d.ts +2 -2
- package/dist/components/client/Input/InputHelpText.js +1 -3
- package/dist/components/client/Input/InputHelpTextInternal.cjs +6 -8
- package/dist/components/client/Input/InputHelpTextInternal.d.cts +3 -4
- package/dist/components/client/Input/InputHelpTextInternal.d.ts +3 -4
- package/dist/components/client/Input/InputHelpTextInternal.js +1 -3
- package/dist/components/client/Input/index.cjs +4 -5
- package/dist/components/client/Input/index.js +1 -2
- package/dist/components/client/Menu/Menu.Content.cjs +5 -7
- package/dist/components/client/Menu/Menu.Content.d.cts +3 -4
- package/dist/components/client/Menu/Menu.Content.d.ts +3 -4
- package/dist/components/client/Menu/Menu.Content.js +1 -3
- package/dist/components/client/Menu/Menu.Divider.cjs +5 -7
- package/dist/components/client/Menu/Menu.Divider.d.cts +2 -2
- package/dist/components/client/Menu/Menu.Divider.d.ts +2 -2
- package/dist/components/client/Menu/Menu.Divider.js +1 -3
- package/dist/components/client/Menu/Menu.Item.cjs +5 -7
- package/dist/components/client/Menu/Menu.Item.d.cts +3 -4
- package/dist/components/client/Menu/Menu.Item.d.ts +3 -4
- package/dist/components/client/Menu/Menu.Item.js +1 -3
- package/dist/components/client/Menu/Menu.ItemBase.cjs +7 -9
- package/dist/components/client/Menu/Menu.ItemBase.d.cts +3 -4
- package/dist/components/client/Menu/Menu.ItemBase.d.ts +3 -4
- package/dist/components/client/Menu/Menu.ItemBase.js +2 -4
- package/dist/components/client/Menu/Menu.ItemCheckbox.cjs +6 -8
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +3 -4
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +3 -4
- package/dist/components/client/Menu/Menu.ItemCheckbox.js +2 -4
- package/dist/components/client/Menu/Menu.Provider.cjs +6 -8
- package/dist/components/client/Menu/Menu.Provider.d.cts +2 -2
- package/dist/components/client/Menu/Menu.Provider.d.ts +2 -2
- package/dist/components/client/Menu/Menu.Provider.js +1 -3
- package/dist/components/client/Menu/Menu.Trigger.cjs +5 -7
- package/dist/components/client/Menu/Menu.Trigger.d.cts +2 -2
- package/dist/components/client/Menu/Menu.Trigger.d.ts +2 -2
- package/dist/components/client/Menu/Menu.Trigger.js +1 -3
- package/dist/components/client/Menu/Menu.cjs +8 -9
- package/dist/components/client/Menu/Menu.index.cjs +29 -31
- package/dist/components/client/Menu/Menu.index.js +1 -3
- package/dist/components/client/Menu/Menu.js +1 -2
- package/dist/components/client/Menu/index.cjs +8 -9
- package/dist/components/client/Menu/index.d.cts +0 -1
- package/dist/components/client/Menu/index.d.ts +0 -1
- package/dist/components/client/Menu/index.js +1 -2
- package/dist/components/client/Menu/utils/transformAriakitPlacement.cjs +2 -4
- package/dist/components/client/Menu/utils/transformAriakitPlacement.js +1 -2
- package/dist/components/client/Popover/Popover.cjs +5 -7
- package/dist/components/client/Popover/Popover.d.cts +3 -3
- package/dist/components/client/Popover/Popover.d.ts +3 -3
- package/dist/components/client/Popover/Popover.js +1 -3
- package/dist/components/client/Popover/PopoverContent.cjs +15 -17
- package/dist/components/client/Popover/PopoverContent.d.cts +3 -4
- package/dist/components/client/Popover/PopoverContent.d.ts +3 -4
- package/dist/components/client/Popover/PopoverContent.js +4 -6
- package/dist/components/client/Popover/PopoverContext.cjs +4 -7
- package/dist/components/client/Popover/PopoverContext.d.cts +2 -2
- package/dist/components/client/Popover/PopoverContext.d.ts +2 -2
- package/dist/components/client/Popover/PopoverContext.js +1 -3
- package/dist/components/client/Popover/PopoverTrigger.cjs +4 -6
- package/dist/components/client/Popover/PopoverTrigger.d.cts +3 -3
- package/dist/components/client/Popover/PopoverTrigger.d.ts +3 -3
- package/dist/components/client/Popover/PopoverTrigger.js +1 -3
- package/dist/components/client/Popover/UDSPopoverConfigProvider.cjs +3 -5
- package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +3 -3
- package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +3 -3
- package/dist/components/client/Popover/UDSPopoverConfigProvider.js +1 -3
- package/dist/components/client/Popover/index.cjs +6 -7
- package/dist/components/client/Popover/index.d.cts +1 -1
- package/dist/components/client/Popover/index.d.ts +1 -1
- package/dist/components/client/Popover/index.js +1 -2
- package/dist/components/client/Pressable.cjs +5 -7
- package/dist/components/client/Pressable.d.cts +3 -4
- package/dist/components/client/Pressable.d.ts +3 -4
- package/dist/components/client/Pressable.js +1 -3
- package/dist/components/client/Radio/Radio.cjs +8 -10
- package/dist/components/client/Radio/Radio.d.cts +1 -2
- package/dist/components/client/Radio/Radio.d.ts +1 -2
- package/dist/components/client/Radio/Radio.js +2 -4
- package/dist/components/client/Radio/RadioGroupProvider.cjs +6 -8
- package/dist/components/client/Radio/RadioGroupProvider.d.cts +1 -2
- package/dist/components/client/Radio/RadioGroupProvider.d.ts +1 -2
- package/dist/components/client/Radio/RadioGroupProvider.js +2 -4
- package/dist/components/client/Radio/RadioGroupStore.cjs +3 -5
- package/dist/components/client/Radio/RadioGroupStore.d.cts +2 -2
- package/dist/components/client/Radio/RadioGroupStore.d.ts +2 -2
- package/dist/components/client/Radio/RadioGroupStore.js +1 -3
- package/dist/components/client/Radio/index.cjs +4 -5
- package/dist/components/client/Radio/index.js +1 -2
- package/dist/components/client/Radio/useRadioGroup.cjs +4 -6
- package/dist/components/client/Radio/useRadioGroup.js +1 -3
- package/dist/components/client/SpringMotionConfig.cjs +6 -8
- package/dist/components/client/SpringMotionConfig.d.cts +1 -2
- package/dist/components/client/SpringMotionConfig.d.ts +1 -2
- package/dist/components/client/SpringMotionConfig.js +1 -3
- package/dist/components/client/Switch.cjs +8 -10
- package/dist/components/client/Switch.d.cts +1 -2
- package/dist/components/client/Switch.d.ts +1 -2
- package/dist/components/client/Switch.js +3 -5
- package/dist/components/client/Tabs/Tab.cjs +7 -9
- package/dist/components/client/Tabs/Tab.d.cts +3 -3
- package/dist/components/client/Tabs/Tab.d.ts +3 -3
- package/dist/components/client/Tabs/Tab.js +1 -3
- package/dist/components/client/Tabs/TabList.cjs +5 -7
- package/dist/components/client/Tabs/TabList.d.cts +3 -3
- package/dist/components/client/Tabs/TabList.d.ts +3 -3
- package/dist/components/client/Tabs/TabList.js +1 -3
- package/dist/components/client/Tabs/TabPanel.cjs +3 -5
- package/dist/components/client/Tabs/TabPanel.d.cts +3 -3
- package/dist/components/client/Tabs/TabPanel.d.ts +3 -3
- package/dist/components/client/Tabs/TabPanel.js +1 -3
- package/dist/components/client/Tabs/Tabs.cjs +4 -6
- package/dist/components/client/Tabs/Tabs.d.cts +3 -3
- package/dist/components/client/Tabs/Tabs.d.ts +3 -3
- package/dist/components/client/Tabs/Tabs.js +1 -3
- package/dist/components/client/Tabs/index.cjs +6 -7
- package/dist/components/client/Tabs/index.js +1 -2
- package/dist/components/client/Tabs/tabsContext.cjs +3 -5
- package/dist/components/client/Tabs/tabsContext.d.cts +3 -3
- package/dist/components/client/Tabs/tabsContext.d.ts +3 -3
- package/dist/components/client/Tabs/tabsContext.js +1 -3
- package/dist/components/client/Toast/Toast.cjs +10 -12
- package/dist/components/client/Toast/Toast.d.cts +3 -4
- package/dist/components/client/Toast/Toast.d.ts +3 -4
- package/dist/components/client/Toast/Toast.js +2 -4
- package/dist/components/client/Toast/ToastContainer.cjs +7 -9
- package/dist/components/client/Toast/ToastContainer.d.cts +3 -4
- package/dist/components/client/Toast/ToastContainer.d.ts +3 -4
- package/dist/components/client/Toast/ToastContainer.js +1 -3
- package/dist/components/client/Toast/ToastPortal.cjs +6 -8
- package/dist/components/client/Toast/ToastPortal.d.cts +2 -2
- package/dist/components/client/Toast/ToastPortal.d.ts +2 -2
- package/dist/components/client/Toast/ToastPortal.js +1 -3
- package/dist/components/client/Toast/UDSToastConfigProvider.cjs +3 -5
- package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +3 -4
- package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +3 -4
- package/dist/components/client/Toast/UDSToastConfigProvider.js +1 -3
- package/dist/components/client/Toast/createToast.cjs +7 -9
- package/dist/components/client/Toast/createToast.d.cts +1 -2
- package/dist/components/client/Toast/createToast.d.ts +1 -2
- package/dist/components/client/Toast/createToast.js +1 -3
- package/dist/components/client/Toast/index.cjs +7 -8
- package/dist/components/client/Toast/index.js +1 -2
- package/dist/components/client/Tooltip/Tooltip.cjs +5 -7
- package/dist/components/client/Tooltip/Tooltip.d.cts +3 -3
- package/dist/components/client/Tooltip/Tooltip.d.ts +3 -3
- package/dist/components/client/Tooltip/Tooltip.js +1 -3
- package/dist/components/client/Tooltip/TooltipContent.cjs +14 -16
- package/dist/components/client/Tooltip/TooltipContent.d.cts +4 -4
- package/dist/components/client/Tooltip/TooltipContent.d.ts +4 -4
- package/dist/components/client/Tooltip/TooltipContent.js +2 -4
- package/dist/components/client/Tooltip/TooltipTrigger.cjs +3 -5
- package/dist/components/client/Tooltip/TooltipTrigger.d.cts +3 -3
- package/dist/components/client/Tooltip/TooltipTrigger.d.ts +3 -3
- package/dist/components/client/Tooltip/TooltipTrigger.js +1 -3
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.cjs +3 -5
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.d.cts +3 -3
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.d.ts +3 -3
- package/dist/components/client/Tooltip/UDSTooltipConfigProvider.js +1 -3
- package/dist/components/client/Tooltip/index.cjs +6 -7
- package/dist/components/client/Tooltip/index.d.cts +1 -1
- package/dist/components/client/Tooltip/index.d.ts +1 -1
- package/dist/components/client/Tooltip/index.js +1 -2
- package/dist/components/client/Tooltip/tooltipContext.cjs +4 -7
- package/dist/components/client/Tooltip/tooltipContext.d.cts +2 -2
- package/dist/components/client/Tooltip/tooltipContext.d.ts +2 -2
- package/dist/components/client/Tooltip/tooltipContext.js +1 -3
- package/dist/components/client/buttonConstants.cjs +2 -4
- package/dist/components/client/buttonConstants.d.cts +1 -3
- package/dist/components/client/buttonConstants.d.ts +1 -3
- package/dist/components/client/buttonConstants.js +1 -2
- package/dist/components/client/index.cjs +58 -53
- package/dist/components/client/index.d.cts +6 -14
- package/dist/components/client/index.d.ts +6 -14
- package/dist/components/client/index.js +5 -3
- package/dist/components/client/motionFeatures/domAnimation.cjs +8 -9
- package/dist/components/client/motionFeatures/domAnimation.js +1 -2
- package/dist/components/client/motionFeatures/domMax.cjs +8 -9
- package/dist/components/client/motionFeatures/domMax.js +1 -2
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.cjs +3 -5
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.d.cts +3 -3
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.d.ts +3 -3
- package/dist/components/client/providers/UDSBreakpointsConfigProvider.js +1 -3
- package/dist/components/client/providers/UDSConfigProvider.cjs +8 -10
- package/dist/components/client/providers/UDSConfigProvider.d.cts +2 -2
- package/dist/components/client/providers/UDSConfigProvider.d.ts +2 -2
- package/dist/components/client/providers/UDSConfigProvider.js +1 -3
- package/dist/components/experimental/Spinner.cjs +5 -7
- package/dist/components/experimental/Spinner.d.cts +2 -2
- package/dist/components/experimental/Spinner.d.ts +2 -2
- package/dist/components/experimental/Spinner.js +1 -3
- package/dist/components/experimental/Table.cjs +6 -8
- package/dist/components/experimental/Table.d.cts +4 -6
- package/dist/components/experimental/Table.d.ts +4 -6
- package/dist/components/experimental/Table.js +3 -5
- package/dist/components/experimental/Table.mocks.cjs +3 -5
- package/dist/components/experimental/Table.mocks.js +1 -3
- package/dist/components/experimental/client/Accordion.cjs +10 -12
- package/dist/components/experimental/client/Accordion.d.cts +2 -3
- package/dist/components/experimental/client/Accordion.d.ts +2 -3
- package/dist/components/experimental/client/Accordion.js +2 -4
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.cjs +3 -5
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.d.cts +2 -2
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.d.ts +2 -2
- package/dist/components/experimental/client/AvoidMotionLibraryProvider.js +1 -3
- package/dist/components/experimental/client/Modal.cjs +8 -10
- package/dist/components/experimental/client/Modal.d.cts +3 -3
- package/dist/components/experimental/client/Modal.d.ts +3 -3
- package/dist/components/experimental/client/Modal.js +1 -3
- package/dist/components/experimental/client/SegmentedControl.cjs +9 -12
- package/dist/components/experimental/client/SegmentedControl.d.cts +2 -3
- package/dist/components/experimental/client/SegmentedControl.d.ts +2 -3
- package/dist/components/experimental/client/SegmentedControl.js +4 -7
- package/dist/components/experimental/client/SwitchV2.cjs +9 -11
- package/dist/components/experimental/client/SwitchV2.d.cts +1 -2
- package/dist/components/experimental/client/SwitchV2.d.ts +1 -2
- package/dist/components/experimental/client/SwitchV2.js +3 -5
- package/dist/components/experimental/client/index.cjs +7 -8
- package/dist/components/experimental/client/index.js +1 -2
- package/dist/components/experimental/index.cjs +15 -17
- package/dist/components/experimental/index.d.cts +0 -1
- package/dist/components/experimental/index.d.ts +0 -1
- package/dist/components/experimental/index.js +1 -3
- package/dist/components/index.cjs +80 -85
- package/dist/components/index.d.cts +7 -13
- package/dist/components/index.d.ts +7 -13
- package/dist/components/index.js +8 -12
- package/dist/config/dist/index.cjs +2 -5
- package/dist/config/dist/index.d.cts +1 -1
- package/dist/config/dist/index.d.ts +1 -1
- package/dist/config/dist/index.js +2 -4
- package/dist/css-tokens/dist/index.cjs +37 -39
- package/dist/css-tokens/dist/index.d.cts +1 -1
- package/dist/css-tokens/dist/index.d.ts +1 -1
- package/dist/css-tokens/dist/index.js +35 -37
- package/dist/defaultTokensConfig.cjs +4 -6
- package/dist/defaultTokensConfig.d.cts +0 -2
- package/dist/defaultTokensConfig.d.ts +0 -2
- package/dist/defaultTokensConfig.js +1 -3
- package/dist/fixtures/dist/index.cjs +1 -3
- package/dist/fixtures/dist/index.d.cts +1 -1
- package/dist/fixtures/dist/index.d.ts +1 -1
- package/dist/fixtures/dist/index.js +1 -2
- package/dist/fixtures/index.cjs +4 -6
- package/dist/fixtures/index.d.cts +1 -1
- package/dist/fixtures/index.d.ts +1 -1
- package/dist/fixtures/index.js +1 -3
- package/dist/fixtures/src/arbitrary.cjs +7 -10
- package/dist/fixtures/src/arbitrary.js +1 -3
- package/dist/fixtures/src/util.cjs +2 -4
- package/dist/fixtures/src/util.js +1 -3
- package/dist/flags.cjs +6 -4
- package/dist/flags.js +5 -2
- package/dist/fonts/dist/index.cjs +22 -14
- package/dist/fonts/dist/index.d.cts +1 -1
- package/dist/fonts/dist/index.d.ts +1 -1
- package/dist/fonts/dist/index.js +22 -13
- package/dist/hooks/useForkRef.cjs +3 -5
- package/dist/hooks/useForkRef.js +1 -3
- package/dist/hooks/useRtl.cjs +3 -5
- package/dist/hooks/useRtl.js +1 -3
- package/dist/hooks/useSvgFloatingContent.cjs +6 -8
- package/dist/hooks/useSvgFloatingContent.js +1 -3
- package/dist/icons/dist/types.d.cts +30 -0
- package/dist/icons/dist/types.d.ts +30 -0
- package/dist/index.cjs +105 -108
- package/dist/index.d.cts +8 -14
- package/dist/index.d.ts +8 -14
- package/dist/index.js +8 -10
- package/dist/modes/dist/index.cjs +1 -3
- package/dist/modes/dist/index.d.cts +1 -1
- package/dist/modes/dist/index.d.ts +1 -1
- package/dist/modes/dist/index.js +1 -2
- package/dist/motion-tokens/dist/index.cjs +1 -3
- package/dist/motion-tokens/dist/index.d.cts +1 -1
- package/dist/motion-tokens/dist/index.d.ts +1 -1
- package/dist/motion-tokens/dist/index.js +1 -2
- package/dist/palette/dist/index.cjs +13 -3
- package/dist/palette/dist/index.js +13 -2
- package/dist/providers/ColorModeProvider.cjs +4 -6
- package/dist/providers/ColorModeProvider.d.cts +5 -6
- package/dist/providers/ColorModeProvider.d.ts +5 -6
- package/dist/providers/ColorModeProvider.js +1 -3
- package/dist/providers/ScaleModeProvider.cjs +4 -6
- package/dist/providers/ScaleModeProvider.d.cts +5 -6
- package/dist/providers/ScaleModeProvider.d.ts +5 -6
- package/dist/providers/ScaleModeProvider.js +1 -3
- package/dist/providers/ThemeProvider.cjs +5 -7
- package/dist/providers/ThemeProvider.d.cts +3 -4
- package/dist/providers/ThemeProvider.d.ts +3 -4
- package/dist/providers/ThemeProvider.js +1 -3
- package/dist/runtime/bottomSheetConfig.cjs +2 -4
- package/dist/runtime/bottomSheetConfig.d.cts +1 -1
- package/dist/runtime/bottomSheetConfig.d.ts +1 -1
- package/dist/runtime/bottomSheetConfig.js +1 -2
- package/dist/runtime/breakpointsConfig.cjs +4 -6
- package/dist/runtime/breakpointsConfig.d.cts +1 -3
- package/dist/runtime/breakpointsConfig.d.ts +1 -3
- package/dist/runtime/breakpointsConfig.js +1 -3
- package/dist/runtime/index.cjs +8 -9
- package/dist/runtime/index.js +1 -2
- package/dist/runtime/popoverConfig.cjs +3 -5
- package/dist/runtime/popoverConfig.d.cts +1 -2
- package/dist/runtime/popoverConfig.d.ts +1 -2
- package/dist/runtime/popoverConfig.js +1 -3
- package/dist/runtime/toastConfig.cjs +2 -4
- package/dist/runtime/toastConfig.d.cts +1 -3
- package/dist/runtime/toastConfig.d.ts +1 -3
- package/dist/runtime/toastConfig.js +1 -2
- package/dist/runtime/tooltipConfig.cjs +3 -5
- package/dist/runtime/tooltipConfig.d.cts +1 -2
- package/dist/runtime/tooltipConfig.d.ts +1 -2
- package/dist/runtime/tooltipConfig.js +1 -3
- package/dist/runtime/udsConfig.cjs +7 -9
- package/dist/runtime/udsConfig.d.cts +0 -1
- package/dist/runtime/udsConfig.d.ts +0 -1
- package/dist/runtime/udsConfig.js +1 -3
- package/dist/styles/styler.cjs +6 -8
- package/dist/styles/styler.d.cts +37 -37
- package/dist/styles/styler.d.ts +37 -37
- package/dist/styles/styler.js +1 -3
- package/dist/styles/stylerTypes.d.cts +1 -2
- package/dist/styles/stylerTypes.d.ts +1 -2
- package/dist/styles/variants.cjs +4 -6
- package/dist/styles/variants.js +1 -3
- package/dist/tailwind/dist/_virtual/_rolldown/runtime.cjs +7 -13
- package/dist/tailwind/dist/_virtual/_rolldown/runtime.js +1 -2
- package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.cjs +1 -3
- package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js +1 -1
- package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.cjs +1 -3
- package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js +1 -1
- package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/mapTextVariantFixtureToValue.cjs +3 -5
- package/dist/tailwind/dist/automated-config/dist/mapTextVariantFixtureToValue.js +1 -2
- package/dist/tailwind/dist/automated-config/dist/mapTextVariantFixtureToValue.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/properties.cjs +7 -10
- package/dist/tailwind/dist/automated-config/dist/properties.js +2 -4
- package/dist/tailwind/dist/automated-config/dist/properties.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/assertUnreachable.cjs +1 -3
- package/dist/tailwind/dist/automated-config/dist/utils/assertUnreachable.js +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/assertUnreachable.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/generateDefaultClassName.cjs +1 -3
- package/dist/tailwind/dist/automated-config/dist/utils/generateDefaultClassName.js +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/generateDefaultClassName.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/generateSchemaKey.cjs +1 -3
- package/dist/tailwind/dist/automated-config/dist/utils/generateSchemaKey.js +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/generateSchemaKey.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/index.cjs +7 -9
- package/dist/tailwind/dist/automated-config/dist/utils/index.js +1 -2
- package/dist/tailwind/dist/automated-config/dist/utils/index.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/mapColorFixtureToValue.cjs +4 -6
- package/dist/tailwind/dist/automated-config/dist/utils/mapColorFixtureToValue.js +3 -4
- package/dist/tailwind/dist/automated-config/dist/utils/mapColorFixtureToValue.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/variantConfigGuards.cjs +1 -3
- package/dist/tailwind/dist/automated-config/dist/utils/variantConfigGuards.js +1 -1
- package/dist/tailwind/dist/automated-config/dist/utils/variantConfigGuards.js.map +1 -1
- package/dist/tailwind/dist/cli/dist/lib/colors.cjs +1 -3
- package/dist/tailwind/dist/cli/dist/lib/colors.js +1 -1
- package/dist/tailwind/dist/cli/dist/lib/colors.js.map +1 -1
- package/dist/tailwind/dist/cli/dist/lib/logger.cjs +18 -6
- package/dist/tailwind/dist/cli/dist/lib/logger.js +15 -2
- package/dist/tailwind/dist/cli/dist/lib/logger.js.map +1 -1
- package/dist/tailwind/dist/cli/dist/lib/print.cjs +1 -3
- package/dist/tailwind/dist/cli/dist/lib/print.js +1 -1
- package/dist/tailwind/dist/cli/dist/lib/print.js.map +1 -1
- package/dist/tailwind/dist/cli/dist/lib/spinner.cjs +1 -3
- package/dist/tailwind/dist/cli/dist/lib/spinner.js +1 -1
- package/dist/tailwind/dist/cli/dist/lib/spinner.js.map +1 -1
- package/dist/tailwind/dist/cli.cjs +6 -7
- package/dist/tailwind/dist/cli.js +1 -2
- package/dist/tailwind/dist/commands/css.cjs +6 -8
- package/dist/tailwind/dist/commands/css.helpers.cjs +1 -3
- package/dist/tailwind/dist/commands/css.helpers.js +1 -1
- package/dist/tailwind/dist/commands/css.helpers.js.map +1 -1
- package/dist/tailwind/dist/commands/css.js +1 -2
- package/dist/tailwind/dist/commands/css.js.map +1 -1
- package/dist/tailwind/dist/commands/generateComponentData.cjs +4 -6
- package/dist/tailwind/dist/commands/generateComponentData.js +1 -2
- package/dist/tailwind/dist/commands/generateComponentData.js.map +1 -1
- package/dist/tailwind/dist/commands/generatePurgeCSSData.cjs +6 -8
- package/dist/tailwind/dist/commands/generatePurgeCSSData.js +1 -2
- package/dist/tailwind/dist/commands/generatePurgeCSSData.js.map +1 -1
- package/dist/tailwind/dist/commands/purge.cjs +5 -7
- package/dist/tailwind/dist/commands/purge.js +1 -2
- package/dist/tailwind/dist/commands/purge.js.map +1 -1
- package/dist/tailwind/dist/config/dist/index.cjs +2 -5
- package/dist/tailwind/dist/config/dist/index.d.cts +0 -1
- package/dist/tailwind/dist/config/dist/index.d.cts.map +1 -1
- package/dist/tailwind/dist/config/dist/index.d.ts +0 -1
- package/dist/tailwind/dist/config/dist/index.d.ts.map +1 -1
- package/dist/tailwind/dist/config/dist/index.js +2 -3
- package/dist/tailwind/dist/config/dist/index.js.map +1 -1
- package/dist/tailwind/dist/css/generate.cjs +14 -16
- package/dist/tailwind/dist/css/generate.d.ts +0 -1
- package/dist/tailwind/dist/css/generate.d.ts.map +1 -1
- package/dist/tailwind/dist/css/generate.helpers.cjs +18 -20
- package/dist/tailwind/dist/css/generate.helpers.js +1 -2
- package/dist/tailwind/dist/css/generate.helpers.js.map +1 -1
- package/dist/tailwind/dist/css/generate.js +1 -2
- package/dist/tailwind/dist/css/generate.js.map +1 -1
- package/dist/tailwind/dist/css/nodeUtils.cjs +9 -11
- package/dist/tailwind/dist/css/nodeUtils.js +1 -2
- package/dist/tailwind/dist/css/nodeUtils.js.map +1 -1
- package/dist/tailwind/dist/css/postcss.cjs +2 -4
- package/dist/tailwind/dist/css/postcss.helpers.cjs +1 -3
- package/dist/tailwind/dist/css/postcss.helpers.js +1 -1
- package/dist/tailwind/dist/css/postcss.helpers.js.map +1 -1
- package/dist/tailwind/dist/css/postcss.js +1 -2
- package/dist/tailwind/dist/css/postcss.js.map +1 -1
- package/dist/tailwind/dist/css/runner.cjs +16 -18
- package/dist/tailwind/dist/css/runner.helpers.cjs +3 -5
- package/dist/tailwind/dist/css/runner.helpers.js +1 -2
- package/dist/tailwind/dist/css/runner.helpers.js.map +1 -1
- package/dist/tailwind/dist/css/runner.js +3 -4
- package/dist/tailwind/dist/css/runner.js.map +1 -1
- package/dist/tailwind/dist/css/theme.cjs +1 -3
- package/dist/tailwind/dist/css/theme.js +1 -1
- package/dist/tailwind/dist/css/utils.cjs +3 -5
- package/dist/tailwind/dist/css/utils.js +1 -2
- package/dist/tailwind/dist/css/utils.js.map +1 -1
- package/dist/tailwind/dist/css-tokens/dist/index.cjs +37 -41
- package/dist/tailwind/dist/css-tokens/dist/index.js +36 -38
- package/dist/tailwind/dist/css-tokens/dist/index.js.map +1 -1
- package/dist/tailwind/dist/fixtures/dist/index.cjs +16 -20
- package/dist/tailwind/dist/fixtures/dist/index.js +16 -18
- package/dist/tailwind/dist/fixtures/dist/index.js.map +1 -1
- package/dist/tailwind/dist/fonts/dist/index.cjs +22 -14
- package/dist/tailwind/dist/fonts/dist/index.d.cts.map +1 -1
- package/dist/tailwind/dist/fonts/dist/index.d.ts.map +1 -1
- package/dist/tailwind/dist/fonts/dist/index.js +22 -12
- package/dist/tailwind/dist/fonts/dist/index.js.map +1 -1
- package/dist/tailwind/dist/icons/src/safelist.cjs +1 -3
- package/dist/tailwind/dist/icons/src/safelist.js +1 -1
- package/dist/tailwind/dist/index.cjs +5 -6
- package/dist/tailwind/dist/index.js +1 -2
- package/dist/tailwind/dist/modes/dist/index.cjs +1 -3
- package/dist/tailwind/dist/modes/dist/index.js +1 -1
- package/dist/tailwind/dist/modes/dist/index.js.map +1 -1
- package/dist/tailwind/dist/motion-tokens/dist/index.cjs +1 -3
- package/dist/tailwind/dist/motion-tokens/dist/index.js +1 -1
- package/dist/tailwind/dist/motion-tokens/dist/index.js.map +1 -1
- package/dist/tailwind/dist/palette/dist/index.cjs +13 -3
- package/dist/tailwind/dist/palette/dist/index.js +13 -1
- package/dist/tailwind/dist/palette/dist/index.js.map +1 -1
- package/dist/tailwind/dist/plugin.cjs +22 -24
- package/dist/tailwind/dist/plugin.d.cts +3 -3
- package/dist/tailwind/dist/plugin.d.cts.map +1 -1
- package/dist/tailwind/dist/plugin.d.ts +3 -3
- package/dist/tailwind/dist/plugin.d.ts.map +1 -1
- package/dist/tailwind/dist/plugin.js +1 -2
- package/dist/tailwind/dist/plugin.js.map +1 -1
- package/dist/tailwind/dist/purger/legacy/index.d.cts +2 -0
- package/dist/tailwind/dist/purger/legacy/purgeCSS.cjs +10 -12
- package/dist/tailwind/dist/purger/legacy/purgeCSS.js +2 -3
- package/dist/tailwind/dist/purger/legacy/purgeCSS.js.map +1 -1
- package/dist/tailwind/dist/purger/legacy/purgeFromCode.cjs +4 -6
- package/dist/tailwind/dist/purger/legacy/purgeFromCode.d.cts +1 -1
- package/dist/tailwind/dist/purger/legacy/purgeFromCode.js +1 -2
- package/dist/tailwind/dist/purger/legacy/purgeFromCode.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/ast/expressions.cjs +4 -6
- package/dist/tailwind/dist/purger/optimized/ast/expressions.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/ast/expressions.js +1 -2
- package/dist/tailwind/dist/purger/optimized/ast/expressions.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/ast/index.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/ast/index.d.ts +1 -4
- package/dist/tailwind/dist/purger/optimized/ast/jsx.cjs +2 -4
- package/dist/tailwind/dist/purger/optimized/ast/jsx.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/ast/jsx.d.ts +0 -1
- package/dist/tailwind/dist/purger/optimized/ast/jsx.js +2 -3
- package/dist/tailwind/dist/purger/optimized/ast/jsx.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/ast/props.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/ast/props.d.ts +1 -1
- package/dist/tailwind/dist/purger/optimized/ast/spread.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/ast/spread.d.ts +0 -1
- package/dist/tailwind/dist/purger/optimized/index.d.cts +3 -0
- package/dist/tailwind/dist/purger/optimized/index.d.ts +1 -4
- package/dist/tailwind/dist/purger/optimized/purge.cjs +8 -10
- package/dist/tailwind/dist/purger/optimized/purge.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/purge.d.ts +1 -1
- package/dist/tailwind/dist/purger/optimized/purge.js +1 -2
- package/dist/tailwind/dist/purger/optimized/purge.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/purgeFromCode.cjs +4 -6
- package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.cts +1 -1
- package/dist/tailwind/dist/purger/optimized/purgeFromCode.js +1 -2
- package/dist/tailwind/dist/purger/optimized/purgeFromCode.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/types.d.ts +0 -1
- package/dist/tailwind/dist/purger/optimized/types.d.ts.map +1 -1
- package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.cjs +7 -9
- package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.js +1 -2
- package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/utils/files.cjs +4 -6
- package/dist/tailwind/dist/purger/optimized/utils/files.d.cts +2 -0
- package/dist/tailwind/dist/purger/optimized/utils/files.js +1 -2
- package/dist/tailwind/dist/purger/optimized/utils/files.js.map +1 -1
- package/dist/tailwind/dist/purger/optimized/utils/safelist.cjs +4 -6
- package/dist/tailwind/dist/purger/optimized/utils/safelist.js +1 -2
- package/dist/tailwind/dist/purger/optimized/utils/safelist.js.map +1 -1
- package/dist/tailwind/dist/purger.cjs +4 -5
- package/dist/tailwind/dist/purger.d.ts +0 -2
- package/dist/tailwind/dist/purger.js +1 -2
- package/dist/tailwind/dist/runtimeConfig/hookMetadata.cjs +1 -3
- package/dist/tailwind/dist/runtimeConfig/hookMetadata.js +1 -1
- package/dist/tailwind/dist/runtimeConfig/hookMetadata.js.map +1 -1
- package/dist/tailwind/dist/tailwind/base/addColorModeVars.cjs +6 -8
- package/dist/tailwind/dist/tailwind/base/addColorModeVars.js +1 -2
- package/dist/tailwind/dist/tailwind/base/addColorModeVars.js.map +1 -1
- package/dist/tailwind/dist/tailwind/base/addColorModeVarsV2.cjs +6 -8
- package/dist/tailwind/dist/tailwind/base/addColorModeVarsV2.js +1 -2
- package/dist/tailwind/dist/tailwind/base/addColorModeVarsV2.js.map +1 -1
- package/dist/tailwind/dist/tailwind/base/addFontFaceDeclarations.cjs +2 -4
- package/dist/tailwind/dist/tailwind/base/addFontFaceDeclarations.js +1 -2
- package/dist/tailwind/dist/tailwind/base/addFontFaceDeclarations.js.map +1 -1
- package/dist/tailwind/dist/tailwind/base/addFontVars.cjs +2 -4
- package/dist/tailwind/dist/tailwind/base/addFontVars.js +1 -2
- package/dist/tailwind/dist/tailwind/base/addFontVars.js.map +1 -1
- package/dist/tailwind/dist/tailwind/base/addMotionVars.cjs +2 -4
- package/dist/tailwind/dist/tailwind/base/addMotionVars.js +1 -2
- package/dist/tailwind/dist/tailwind/base/addMotionVars.js.map +1 -1
- package/dist/tailwind/dist/tailwind/base/addScaleModeVars.cjs +4 -6
- package/dist/tailwind/dist/tailwind/base/addScaleModeVars.js +1 -2
- package/dist/tailwind/dist/tailwind/base/addScaleModeVars.js.map +1 -1
- package/dist/tailwind/dist/tailwind/components/getFocusRingStyles.cjs +3 -4
- package/dist/tailwind/dist/tailwind/components/getFocusRingStyles.js +2 -2
- package/dist/tailwind/dist/tailwind/components/getFocusRingStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/components/getGroupedTextStyles.cjs +10 -6
- package/dist/tailwind/dist/tailwind/components/getGroupedTextStyles.js +7 -2
- package/dist/tailwind/dist/tailwind/components/getGroupedTextStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/components/getHitTargetStyles.cjs +1 -3
- package/dist/tailwind/dist/tailwind/components/getHitTargetStyles.js +1 -1
- package/dist/tailwind/dist/tailwind/components/getIconStyles.cjs +1 -3
- package/dist/tailwind/dist/tailwind/components/getIconStyles.js +1 -1
- package/dist/tailwind/dist/tailwind/components/getInputStyles.cjs +1 -3
- package/dist/tailwind/dist/tailwind/components/getInputStyles.js +1 -1
- package/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.cjs +7 -9
- package/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.js +1 -2
- package/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.cjs +1 -3
- package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.d.cts +1 -1
- package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.d.ts +1 -1
- package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.js +1 -1
- package/dist/tailwind/dist/tailwind/plugins/a11y.cjs +21 -7
- package/dist/tailwind/dist/tailwind/plugins/a11y.js +17 -2
- package/dist/tailwind/dist/tailwind/plugins/a11y.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/blurBgFallback.cjs +4 -6
- package/dist/tailwind/dist/tailwind/plugins/blurBgFallback.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/blurBgFallback.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/borderRadius.cjs +7 -9
- package/dist/tailwind/dist/tailwind/plugins/borderRadius.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/borderRadius.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/borderWidth.cjs +7 -9
- package/dist/tailwind/dist/tailwind/plugins/borderWidth.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/borderWidth.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/breakpoints.cjs +7 -9
- package/dist/tailwind/dist/tailwind/plugins/breakpoints.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/breakpoints.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/colors.cjs +73 -15
- package/dist/tailwind/dist/tailwind/plugins/colors.js +62 -3
- package/dist/tailwind/dist/tailwind/plugins/colors.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/components.cjs +6 -8
- package/dist/tailwind/dist/tailwind/plugins/components.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/components.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/elevation.cjs +9 -11
- package/dist/tailwind/dist/tailwind/plugins/elevation.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/elevation.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/getTailwindAsUdsColors.cjs +3 -5
- package/dist/tailwind/dist/tailwind/plugins/getTailwindAsUdsColors.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/getTailwindAsUdsColors.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/icons.cjs +4 -6
- package/dist/tailwind/dist/tailwind/plugins/icons.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/icons.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/input.cjs +4 -6
- package/dist/tailwind/dist/tailwind/plugins/input.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/input.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/motion.cjs +4 -6
- package/dist/tailwind/dist/tailwind/plugins/motion.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/motion.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/nestedBorderRadius.cjs +6 -8
- package/dist/tailwind/dist/tailwind/plugins/nestedBorderRadius.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/nestedBorderRadius.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/scaleMode.cjs +5 -7
- package/dist/tailwind/dist/tailwind/plugins/scaleMode.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/scaleMode.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/shadows.cjs +6 -8
- package/dist/tailwind/dist/tailwind/plugins/shadows.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/shadows.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/sizing.cjs +5 -7
- package/dist/tailwind/dist/tailwind/plugins/sizing.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/sizing.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/spacing.cjs +3 -5
- package/dist/tailwind/dist/tailwind/plugins/spacing.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/spacing.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/typography.cjs +14 -16
- package/dist/tailwind/dist/tailwind/plugins/typography.js +1 -2
- package/dist/tailwind/dist/tailwind/plugins/typography.js.map +1 -1
- package/dist/tailwind/dist/tailwind/theme/getFontFamilyTheme.cjs +4 -6
- package/dist/tailwind/dist/tailwind/theme/getFontFamilyTheme.js +1 -2
- package/dist/tailwind/dist/tailwind/theme/getFontFamilyTheme.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.cjs +4 -6
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.d.cts +3 -3
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.d.cts.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.d.ts +3 -3
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.d.ts.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.cjs +8 -10
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.cts +0 -1
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.cts.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.ts +0 -1
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.ts.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getColorModeStyles.cjs +1 -3
- package/dist/tailwind/dist/tailwind/utils/getColorModeStyles.js +1 -1
- package/dist/tailwind/dist/tailwind/utils/getColorModeStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getElevationStyles.cjs +5 -7
- package/dist/tailwind/dist/tailwind/utils/getElevationStyles.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/getElevationStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getFontFaceDeclarations.cjs +2 -4
- package/dist/tailwind/dist/tailwind/utils/getFontFaceDeclarations.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/getFontFaceDeclarations.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getFontStyles.cjs +5 -7
- 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/getFontStyles.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/getFontStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getMotionStyles.cjs +5 -7
- package/dist/tailwind/dist/tailwind/utils/getMotionStyles.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/getMotionStyles.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getNestedBorderRadiusUtilities.cjs +1 -3
- package/dist/tailwind/dist/tailwind/utils/getNestedBorderRadiusUtilities.js +1 -1
- package/dist/tailwind/dist/tailwind/utils/getScaleModeStyles.cjs +1 -3
- package/dist/tailwind/dist/tailwind/utils/getScaleModeStyles.js +1 -1
- package/dist/tailwind/dist/tailwind/utils/getShadowPresetValues.cjs +3 -5
- package/dist/tailwind/dist/tailwind/utils/getShadowPresetValues.js +1 -2
- package/dist/tailwind/dist/tailwind/utils/getShadowPresetValues.js.map +1 -1
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.cjs +6 -8
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.cts +4 -4
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.ts +4 -4
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.js +4 -5
- package/dist/tailwind/dist/tailwind/utils/getShadowStyles.js.map +1 -1
- package/dist/tailwind/dist/types/dist/index.d.cts.map +1 -1
- package/dist/tailwind/dist/types/dist/index.d.ts.map +1 -1
- package/dist/tailwind/dist/utils/assertUnreachable.cjs +1 -3
- package/dist/tailwind/dist/utils/assertUnreachable.js +1 -1
- package/dist/tailwind/dist/utils/entries.cjs +1 -3
- package/dist/tailwind/dist/utils/entries.js +1 -1
- package/dist/tailwind/dist/utils/entryPoints.cjs +4 -6
- package/dist/tailwind/dist/utils/entryPoints.js +1 -2
- package/dist/tailwind/dist/utils/entryPoints.js.map +1 -1
- package/dist/tailwind/dist/utils/fromEntries.cjs +1 -3
- package/dist/tailwind/dist/utils/fromEntries.js +1 -1
- package/dist/tailwind/dist/utils/generatePurgeCSSData.cjs +11 -15
- package/dist/tailwind/dist/utils/generatePurgeCSSData.js +2 -5
- package/dist/tailwind/dist/utils/generatePurgeCSSData.js.map +1 -1
- package/dist/tailwind/dist/utils/mapValues.cjs +1 -3
- package/dist/tailwind/dist/utils/mapValues.js +1 -1
- package/dist/tailwind/dist/utils/opacity.cjs +3 -5
- package/dist/tailwind/dist/utils/opacity.js +1 -2
- package/dist/tailwind/dist/utils/opacity.js.map +1 -1
- package/dist/tailwind/dist/utils/optimizeCSS.cjs +3 -5
- package/dist/tailwind/dist/utils/optimizeCSS.js +1 -2
- package/dist/tailwind/dist/utils/optimizeCSS.js.map +1 -1
- package/dist/tailwind/dist/utils/parseTokens.cjs +7 -9
- package/dist/tailwind/dist/utils/parseTokens.js +3 -4
- package/dist/tailwind/dist/utils/parseTokens.js.map +1 -1
- package/dist/tailwind/dist/utils/postcssPreserveVars.cjs +1 -3
- package/dist/tailwind/dist/utils/postcssPreserveVars.js +1 -1
- package/dist/tailwind/dist/utils/tsMorph.cjs +4 -6
- package/dist/tailwind/dist/utils/tsMorph.js +1 -2
- package/dist/tailwind/dist/utils/tsMorph.js.map +1 -1
- package/dist/tailwind/dist/utils.cjs +12 -13
- package/dist/tailwind/dist/utils.js +1 -2
- package/dist/tailwind/plugin.cjs +5 -6
- package/dist/tailwind/plugin.js +1 -2
- package/dist/tailwind/purger.cjs +3 -4
- package/dist/tailwind/purger.js +1 -2
- package/dist/tailwind/utils.cjs +12 -13
- package/dist/tailwind/utils.d.cts +0 -1
- package/dist/tailwind/utils.d.ts +0 -1
- package/dist/tailwind/utils.js +1 -2
- package/dist/tokens/automation/configs/index.cjs +3 -4
- package/dist/tokens/automation/configs/index.js +1 -2
- package/dist/tokens/automation/index.cjs +16 -17
- package/dist/tokens/automation/index.js +1 -2
- package/dist/tokens/automation/properties.cjs +3 -4
- package/dist/tokens/automation/properties.js +1 -2
- package/dist/tokens/configs/borderRadius.cjs +2 -4
- package/dist/tokens/configs/borderRadius.d.cts +1 -3
- package/dist/tokens/configs/borderRadius.d.ts +1 -3
- package/dist/tokens/configs/borderRadius.js +1 -2
- package/dist/tokens/configs/borderWidth.cjs +2 -4
- package/dist/tokens/configs/borderWidth.d.cts +1 -3
- package/dist/tokens/configs/borderWidth.d.ts +1 -3
- package/dist/tokens/configs/borderWidth.js +1 -2
- package/dist/tokens/configs/font.cjs +2 -4
- package/dist/tokens/configs/font.d.cts +1 -3
- package/dist/tokens/configs/font.d.ts +1 -3
- package/dist/tokens/configs/font.js +1 -2
- package/dist/tokens/configs/motion.cjs +3 -4
- package/dist/tokens/configs/motion.js +1 -2
- package/dist/tokens/configs/palette/alwaysPalette.cjs +3 -4
- package/dist/tokens/configs/palette/alwaysPalette.js +1 -2
- package/dist/tokens/configs/palette/index.cjs +3 -4
- package/dist/tokens/configs/palette/index.js +1 -2
- package/dist/tokens/configs/scaleMode.cjs +5 -7
- package/dist/tokens/configs/scaleMode.d.cts +1 -3
- package/dist/tokens/configs/scaleMode.d.ts +1 -3
- package/dist/tokens/configs/scaleMode.js +1 -3
- package/dist/tokens/configs/shadow.cjs +2 -4
- package/dist/tokens/configs/shadow.d.cts +1 -3
- package/dist/tokens/configs/shadow.d.ts +1 -3
- package/dist/tokens/configs/shadow.js +1 -2
- package/dist/tokens/configs/sizes.cjs +3 -5
- package/dist/tokens/configs/sizes.d.cts +1 -3
- package/dist/tokens/configs/sizes.d.ts +1 -3
- package/dist/tokens/configs/sizes.js +1 -3
- package/dist/tokens/configs/typography.cjs +2 -4
- package/dist/tokens/configs/typography.d.cts +1 -3
- package/dist/tokens/configs/typography.d.ts +1 -3
- package/dist/tokens/configs/typography.js +1 -2
- package/dist/tokens/consts/cssTokens.cjs +3 -4
- package/dist/tokens/consts/cssTokens.js +1 -2
- package/dist/tokens/consts/defaultModes.cjs +3 -4
- package/dist/tokens/consts/defaultModes.js +1 -2
- package/dist/tokens/consts/fontDeclarationsMap.cjs +3 -4
- package/dist/tokens/consts/fontDeclarationsMap.js +1 -2
- package/dist/tokens/index.cjs +28 -29
- package/dist/tokens/index.d.cts +2 -6
- package/dist/tokens/index.d.ts +2 -6
- package/dist/tokens/index.js +1 -2
- package/dist/tokens/parseButtonVariants.cjs +2 -4
- package/dist/tokens/parseButtonVariants.d.cts +1 -3
- package/dist/tokens/parseButtonVariants.d.ts +1 -3
- package/dist/tokens/parseButtonVariants.js +1 -2
- package/dist/tokens/parseTokens.cjs +3 -4
- package/dist/tokens/parseTokens.d.cts +0 -1
- package/dist/tokens/parseTokens.d.ts +0 -1
- package/dist/tokens/parseTokens.js +1 -2
- package/dist/tokens/types.d.cts +7 -7
- package/dist/tokens/types.d.ts +7 -7
- package/dist/tokens/utils/entries.cjs +2 -4
- package/dist/tokens/utils/entries.js +1 -2
- package/dist/tokens/utils/fromEntries.cjs +2 -4
- package/dist/tokens/utils/fromEntries.js +1 -2
- package/dist/tokens/utils/getFontUrls.cjs +4 -6
- package/dist/tokens/utils/getFontUrls.d.cts +0 -3
- package/dist/tokens/utils/getFontUrls.d.ts +0 -3
- package/dist/tokens/utils/getFontUrls.js +1 -3
- package/dist/tokens/utils/mapValues.cjs +2 -4
- package/dist/tokens/utils/mapValues.js +1 -2
- package/dist/tokens/utils/spectrum.cjs +2 -4
- package/dist/tokens/utils/spectrum.d.cts +1 -3
- package/dist/tokens/utils/spectrum.d.ts +1 -3
- package/dist/tokens/utils/spectrum.js +1 -2
- package/dist/types/{src → dist}/index.d.cts +23 -35
- package/dist/types/{src → dist}/index.d.ts +23 -35
- package/dist/uds/generated/componentData.cjs +2040 -2062
- package/dist/uds/generated/componentData.js +1514 -1529
- package/dist/uds/generated/tailwindPurge.cjs +105 -131
- package/dist/uds/generated/tailwindPurge.js +105 -130
- package/dist/uds/package.cjs +7 -9
- package/dist/uds/package.js +2 -3
- package/dist/utils/assertUnreachable.cjs +2 -4
- package/dist/utils/assertUnreachable.js +1 -2
- package/dist/utils/composeRefs.cjs +2 -4
- package/dist/utils/composeRefs.js +1 -2
- package/dist/utils/createSlot.cjs +4 -6
- package/dist/utils/createSlot.js +1 -3
- package/dist/utils/entries.cjs +2 -4
- package/dist/utils/entries.js +1 -2
- package/dist/utils/falsyToString.cjs +2 -4
- package/dist/utils/falsyToString.js +1 -2
- package/dist/utils/fromEntries.cjs +2 -4
- package/dist/utils/fromEntries.js +1 -2
- package/dist/utils/getUnscaledAnchorRect.cjs +2 -4
- package/dist/utils/getUnscaledAnchorRect.js +1 -2
- package/dist/utils/intersperse.cjs +4 -6
- package/dist/utils/intersperse.d.cts +2 -2
- package/dist/utils/intersperse.d.ts +2 -2
- package/dist/utils/intersperse.js +1 -3
- package/dist/utils/isElevationAlias.cjs +3 -5
- package/dist/utils/isElevationAlias.d.cts +1 -1
- package/dist/utils/isElevationAlias.d.ts +1 -1
- package/dist/utils/isElevationAlias.js +1 -3
- package/dist/utils/mapValues.cjs +2 -4
- package/dist/utils/mapValues.js +1 -2
- package/dist/utils/mergeSlotProps.cjs +3 -5
- package/dist/utils/mergeSlotProps.js +1 -3
- package/dist/utils/parseShadow.cjs +2 -4
- package/dist/utils/parseShadow.js +1 -2
- package/dist/utils/svgFloatingContentUtils.cjs +4 -8
- package/dist/utils/svgFloatingContentUtils.js +3 -6
- package/generated/componentData.json +2047 -2055
- package/generated/tailwindPurge.ts +3 -3
- package/package.json +2 -2
- package/dist/components/Avatar/AvatarImage.types.cjs +0 -1
- package/dist/components/Avatar/AvatarImage.types.d.cts +0 -19
- package/dist/components/Avatar/AvatarImage.types.d.ts +0 -19
- package/dist/components/Avatar/AvatarImage.types.js +0 -1
- package/dist/components/Avatar/AvatarImageNoFallback.cjs +0 -53
- package/dist/components/Avatar/AvatarImageNoFallback.d.cts +0 -18
- package/dist/components/Avatar/AvatarImageNoFallback.d.ts +0 -18
- package/dist/components/Avatar/AvatarImageNoFallback.js +0 -51
- package/dist/components/Avatar/index.cjs +0 -11
- package/dist/components/Avatar/index.d.cts +0 -6
- package/dist/components/Avatar/index.d.ts +0 -6
- package/dist/components/Avatar/index.js +0 -7
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
|
-
const require_runtime = require(
|
|
3
|
-
const require_colors = require(
|
|
4
|
-
const require_print = require(
|
|
5
|
-
const require_spinner = require(
|
|
6
|
-
const require_entryPoints = require(
|
|
7
|
-
const require_nodeUtils = require(
|
|
8
|
-
const require_index = require(
|
|
9
|
-
const require_safelist = require(
|
|
10
|
-
const require_utils = require(
|
|
11
|
-
const require_generate_helpers = require(
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_colors = require("../cli/dist/lib/colors.cjs");
|
|
4
|
+
const require_print = require("../cli/dist/lib/print.cjs");
|
|
5
|
+
const require_spinner = require("../cli/dist/lib/spinner.cjs");
|
|
6
|
+
const require_entryPoints = require("../utils/entryPoints.cjs");
|
|
7
|
+
const require_nodeUtils = require("./nodeUtils.cjs");
|
|
8
|
+
const require_index = require("../config/dist/index.cjs");
|
|
9
|
+
const require_safelist = require("../purger/optimized/utils/safelist.cjs");
|
|
10
|
+
const require_utils = require("./utils.cjs");
|
|
11
|
+
const require_generate_helpers = require("./generate.helpers.cjs");
|
|
12
12
|
let node_fs = require("node:fs");
|
|
13
|
-
node_fs = require_runtime.__toESM(node_fs);
|
|
13
|
+
node_fs = require_runtime.__toESM(node_fs, 1);
|
|
14
14
|
let node_path = require("node:path");
|
|
15
|
-
node_path = require_runtime.__toESM(node_path);
|
|
15
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
16
16
|
let node_zlib = require("node:zlib");
|
|
17
17
|
let postcss = require("postcss");
|
|
18
|
-
postcss = require_runtime.__toESM(postcss);
|
|
19
|
-
|
|
18
|
+
postcss = require_runtime.__toESM(postcss, 1);
|
|
20
19
|
//#region src/css/generate.ts
|
|
21
20
|
const normalizeScope = (scope) => {
|
|
22
21
|
const trimmedScope = scope?.trim();
|
|
@@ -131,7 +130,6 @@ const generateSimpleModeCSS = async (options) => {
|
|
|
131
130
|
packageDirs
|
|
132
131
|
};
|
|
133
132
|
};
|
|
134
|
-
|
|
135
133
|
//#endregion
|
|
136
134
|
exports.generateCSS = generateCSS;
|
|
137
|
-
exports.generateSimpleModeCSS = generateSimpleModeCSS;
|
|
135
|
+
exports.generateSimpleModeCSS = generateSimpleModeCSS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","names":[],"sources":["../../src/css/generate.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","names":[],"sources":["../../src/css/generate.ts"],"mappings":";;;;;;;;UAwDU,aAAA;;EAER,KAAA;;EAEA,QAAA,GAAW,cAAA;;EAEX,YAAA,GAAe,yBAAA;;EAEf,SAAA;;EAEA,oBAAA;;EAEA,aAAA;AAAA"}
|
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
|
-
const require_runtime = require(
|
|
3
|
-
const require_entryPoints = require(
|
|
4
|
-
const require_safelist = require(
|
|
5
|
-
const require_safelist$1 = require(
|
|
6
|
-
const require_getIconStyles = require(
|
|
7
|
-
const require_plugin = require(
|
|
8
|
-
const require_optimizeCSS = require(
|
|
9
|
-
const require_postcssPreserveVars = require(
|
|
10
|
-
const require_postcss = require(
|
|
11
|
-
const require_runner_helpers = require(
|
|
12
|
-
const require_utils = require(
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_entryPoints = require("../utils/entryPoints.cjs");
|
|
4
|
+
const require_safelist = require("../purger/optimized/utils/safelist.cjs");
|
|
5
|
+
const require_safelist$1 = require("../icons/src/safelist.cjs");
|
|
6
|
+
const require_getIconStyles = require("../tailwind/components/getIconStyles.cjs");
|
|
7
|
+
const require_plugin = require("../plugin.cjs");
|
|
8
|
+
const require_optimizeCSS = require("../utils/optimizeCSS.cjs");
|
|
9
|
+
const require_postcssPreserveVars = require("../utils/postcssPreserveVars.cjs");
|
|
10
|
+
const require_postcss = require("./postcss.cjs");
|
|
11
|
+
const require_runner_helpers = require("./runner.helpers.cjs");
|
|
12
|
+
const require_utils = require("./utils.cjs");
|
|
13
13
|
let node_path = require("node:path");
|
|
14
|
-
node_path = require_runtime.__toESM(node_path);
|
|
14
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
15
15
|
let postcss = require("postcss");
|
|
16
|
-
postcss = require_runtime.__toESM(postcss);
|
|
16
|
+
postcss = require_runtime.__toESM(postcss, 1);
|
|
17
17
|
let autoprefixer = require("autoprefixer");
|
|
18
|
-
autoprefixer = require_runtime.__toESM(autoprefixer);
|
|
18
|
+
autoprefixer = require_runtime.__toESM(autoprefixer, 1);
|
|
19
19
|
let postcss_prune_var = require("postcss-prune-var");
|
|
20
|
-
postcss_prune_var = require_runtime.__toESM(postcss_prune_var);
|
|
20
|
+
postcss_prune_var = require_runtime.__toESM(postcss_prune_var, 1);
|
|
21
21
|
let postcss_scope = require("postcss-scope");
|
|
22
|
-
postcss_scope = require_runtime.__toESM(postcss_scope);
|
|
22
|
+
postcss_scope = require_runtime.__toESM(postcss_scope, 1);
|
|
23
23
|
let tailwindcss = require("tailwindcss");
|
|
24
|
-
tailwindcss = require_runtime.__toESM(tailwindcss);
|
|
25
|
-
|
|
24
|
+
tailwindcss = require_runtime.__toESM(tailwindcss, 1);
|
|
26
25
|
//#region src/css/generate.helpers.ts
|
|
27
26
|
const getPruneVarSafelist = (cssOptions) => {
|
|
28
27
|
const pruneVars = cssOptions?.optimization?.pruneVars;
|
|
@@ -141,7 +140,6 @@ const printSimpleModeStats = (options) => {
|
|
|
141
140
|
print(` Time: ${require_runner_helpers.formatCssDuration(options.duration)}`);
|
|
142
141
|
if (options.scope) print(` Scope: ${cyan(options.scope)}`);
|
|
143
142
|
};
|
|
144
|
-
|
|
145
143
|
//#endregion
|
|
146
144
|
exports.applyScopedColorModeFix = applyScopedColorModeFix;
|
|
147
145
|
exports.buildPostcssPlugins = buildPostcssPlugins;
|
|
@@ -150,4 +148,4 @@ exports.getCssFeatureFlags = getCssFeatureFlags;
|
|
|
150
148
|
exports.getInternalIconModeCss = getInternalIconModeCss;
|
|
151
149
|
exports.getPruneVarSafelist = getPruneVarSafelist;
|
|
152
150
|
exports.optimizeGeneratedCss = optimizeGeneratedCss;
|
|
153
|
-
exports.printSimpleModeStats = printSimpleModeStats;
|
|
151
|
+
exports.printSimpleModeStats = printSimpleModeStats;
|
|
@@ -15,7 +15,6 @@ import autoprefixer from "autoprefixer";
|
|
|
15
15
|
import pruneVar from "postcss-prune-var";
|
|
16
16
|
import postcssScope from "postcss-scope";
|
|
17
17
|
import tailwindcss from "tailwindcss";
|
|
18
|
-
|
|
19
18
|
//#region src/css/generate.helpers.ts
|
|
20
19
|
const getPruneVarSafelist = (cssOptions) => {
|
|
21
20
|
const pruneVars = cssOptions?.optimization?.pruneVars;
|
|
@@ -134,7 +133,7 @@ const printSimpleModeStats = (options) => {
|
|
|
134
133
|
print(` Time: ${formatCssDuration(options.duration)}`);
|
|
135
134
|
if (options.scope) print(` Scope: ${cyan(options.scope)}`);
|
|
136
135
|
};
|
|
137
|
-
|
|
138
136
|
//#endregion
|
|
139
137
|
export { applyScopedColorModeFix, buildPostcssPlugins, createTailwindPlugin, getCssFeatureFlags, getInternalIconModeCss, getPruneVarSafelist, optimizeGeneratedCss, printSimpleModeStats };
|
|
138
|
+
|
|
140
139
|
//# sourceMappingURL=generate.helpers.js.map
|
|
@@ -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, 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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"}
|
|
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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"}
|
|
@@ -12,7 +12,6 @@ import fs from "node:fs";
|
|
|
12
12
|
import path from "node:path";
|
|
13
13
|
import { gzipSync } from "node:zlib";
|
|
14
14
|
import postcss from "postcss";
|
|
15
|
-
|
|
16
15
|
//#region src/css/generate.ts
|
|
17
16
|
const normalizeScope = (scope) => {
|
|
18
17
|
const trimmedScope = scope?.trim();
|
|
@@ -127,7 +126,7 @@ const generateSimpleModeCSS = async (options) => {
|
|
|
127
126
|
packageDirs
|
|
128
127
|
};
|
|
129
128
|
};
|
|
130
|
-
|
|
131
129
|
//#endregion
|
|
132
130
|
export { generateCSS, generateSimpleModeCSS };
|
|
131
|
+
|
|
133
132
|
//# sourceMappingURL=generate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","names":[],"sources":["../../src/css/generate.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { gzipSync } from 'node:zlib';\n\nimport { cyan, magenta, print, spinStop, yellow } from '@yahoo/uds-cli/lib';\nimport type { UniversalTokensConfig } from '@yahoo/uds-config';\nimport { defaultTokensConfig } from '@yahoo/uds-config';\nimport postcss from 'postcss';\nimport type { SafelistConfig } from 'tailwindcss/types/config';\n\nimport type { SerializedComponentInfo } from '../commands/generateComponentData';\nimport {\n deduplicateSafelist,\n getInternalSafelistClasses,\n getThemeAndScaleClasses,\n} from '../purger/optimized';\nimport type { EntryValue } from '../utils/entryPoints';\nimport { resolveEntryPaths } from '../utils/entryPoints';\nimport {\n applyScopedColorModeFix,\n buildPostcssPlugins,\n createTailwindPlugin,\n getCssFeatureFlags,\n getInternalIconModeCss,\n optimizeGeneratedCss,\n printSimpleModeStats,\n} from './generate.helpers';\nimport { loadConfigFile, scanDirectoriesForSafelist } from './nodeUtils';\nimport type { UDSCSSOptimizationOptions, UDSCSSVarSafelistPattern } from './theme';\nimport {\n extractRuntimeConfigValues,\n extractVariantDefaults,\n getConfigurableCssVariables,\n getMotionVarPrefixes,\n} from './utils';\n\n/**\n * Result from generating CSS\n */\ninterface CSSResult {\n css: string;\n sizeBytes: number;\n sizeGzipBytes: number;\n classCount: number;\n optimizationStats?: {\n originalSize: number;\n originalSizeGzip: number;\n fontFacesRemoved: number;\n emptyRulesRemoved: number;\n validationErrors: string[];\n };\n}\n\n/**\n * CSS generation options for uds.theme.ts\n */\ninterface UDSCSSOptions {\n /** CSS scope wrapper class (optional) */\n scope?: string;\n /** Safelist of CSS classes to always include */\n safelist?: SafelistConfig[];\n /** CSS optimization settings */\n optimization?: UDSCSSOptimizationOptions;\n /** Include Tailwind preflight/reset styles (default: true) */\n preflight?: boolean;\n /** Include @font-face declarations (default: true) */\n fontFaceDeclarations?: boolean;\n /** Debounce delay (ms) for watch mode regenerations */\n watchDebounce?: number;\n}\n\n/**\n * Options for generateCSS function\n */\ninterface GenerateCSSOptions {\n /** CSS scope wrapper class */\n scope?: string;\n /** Directory to scan for arbitrary Tailwind classes (className props) */\n contentDir?: string | string[];\n /** CSS generation options from theme config */\n cssOptions?: UDSCSSOptions;\n /** Reference CSS to deduplicate font-faces against (for scoped CSS) */\n referenceCss?: string;\n /** CSS variable prefixes or patterns to preserve during pruning */\n safeVarPrefixes?: UDSCSSVarSafelistPattern[];\n}\n\nconst normalizeScope = (scope?: string): string | undefined => {\n const trimmedScope = scope?.trim();\n return trimmedScope ? trimmedScope : undefined;\n};\n\nconst getArbitrarySafelistRawContent = (safelist: SafelistConfig[]): string[] => {\n const arbitraryClasses = safelist.filter(\n (entry): entry is string => typeof entry === 'string' && entry.includes('['),\n );\n\n if (arbitraryClasses.length === 0) {\n return [];\n }\n\n return [`<div class=\"${arbitraryClasses.join(' ')}\"></div>`];\n};\n\n/**\n * Generate CSS from a safelist using Tailwind + PostCSS\n * @param safelist - UDS component classes to include\n * @param config - Token configuration\n * @param options - Additional options\n */\nconst generateCSS = async (\n safelist: SafelistConfig[],\n config: UniversalTokensConfig,\n options?: GenerateCSSOptions,\n): Promise<CSSResult> => {\n // Do we need base?\n const sourceCSS = '@tailwind base; @tailwind components; @tailwind utilities';\n\n const contentDir = options?.contentDir ?? path.join(process.cwd(), 'src');\n const cssFlags = getCssFeatureFlags(options?.cssOptions);\n const optimizationConfig = options?.cssOptions?.optimization;\n const scopeClass = normalizeScope(options?.scope) ?? normalizeScope(options?.cssOptions?.scope);\n const twPlugin = createTailwindPlugin({\n contentDir,\n rawContents: getArbitrarySafelistRawContent(safelist),\n safelist,\n config,\n enablePreflight: cssFlags.enablePreflight,\n enableFontFaceDeclarations: cssFlags.enableFontFaceDeclarations,\n });\n const plugins = buildPostcssPlugins({\n tailwindPlugin: twPlugin,\n shouldPruneVars: cssFlags.shouldPruneVars,\n safeVarPrefixes: options?.safeVarPrefixes ?? [],\n scopeClass,\n });\n\n const result = await postcss(plugins).process(sourceCSS, { from: undefined });\n let css = await applyScopedColorModeFix(result.css, scopeClass);\n if (!css.includes('uds-light-mode-icon') || !css.includes('uds-dark-mode-icon')) {\n css = `${css} ${getInternalIconModeCss(scopeClass)}`.trim();\n }\n const optimizedCss = await optimizeGeneratedCss({\n css,\n shouldOptimize: cssFlags.shouldOptimize,\n optimizationConfig,\n referenceCss: options?.referenceCss,\n scopeClass,\n });\n css = optimizedCss.css;\n\n const sizeBytes = Buffer.byteLength(css, 'utf8');\n const sizeGzipBytes = gzipSync(css).length;\n\n return {\n css,\n sizeBytes,\n sizeGzipBytes,\n classCount: safelist.length,\n optimizationStats: optimizedCss.optimizationStats,\n };\n};\n\n/**\n * Generate CSS in simple mode (no uds.theme.ts)\n */\nconst generateSimpleModeCSS = async (options: {\n workspaceDir: string;\n entry: EntryValue;\n outFile: string;\n variants: Record<string, Record<string, string>>;\n autoVariants: Record<string, Record<string, string>>;\n componentData: Record<string, SerializedComponentInfo>;\n scope?: string;\n configPath?: string;\n isWatch?: boolean;\n silent?: boolean;\n verbose?: boolean;\n}): Promise<{ success: boolean; outputPath: string; packageDirs?: string[] }> => {\n const isWatch = options.isWatch === true;\n const isSilent = options.silent === true;\n const shouldLogStats = !isSilent && !isWatch;\n const startTime = performance.now();\n const colorModes: ('dark' | 'light')[] = ['dark']; // Light mode is already in :root\n\n // Load config if provided, otherwise use default\n let tokensConfig: UniversalTokensConfig = defaultTokensConfig;\n if (options.configPath) {\n const loadedConfig = await loadConfigFile<UniversalTokensConfig>(options.configPath);\n if (loadedConfig) {\n tokensConfig = loadedConfig;\n } else if (shouldLogStats) {\n spinStop('⚠️', `Config file not found: ${options.configPath}, using defaults`);\n }\n }\n\n // Extract variant defaults from config for auto-variant class generation\n const variantDefaults = extractVariantDefaults(tokensConfig);\n const runtimeConfigValues = extractRuntimeConfigValues(tokensConfig);\n\n const resolvedEntries = resolveEntryPaths(options.entry, options.workspaceDir);\n const entryDirs = resolvedEntries.map((entry) => entry.absolutePath);\n const scanResult = await scanDirectoriesForSafelist(\n entryDirs,\n colorModes,\n options.variants,\n options.autoVariants,\n options.componentData,\n variantDefaults,\n runtimeConfigValues,\n );\n\n const totalFilesScanned = scanResult.filesScanned;\n const allClasses: string[] = [...scanResult.safelist];\n const allComponents = new Set<string>(scanResult.components);\n const packageDirs: string[] = [\n ...new Set(\n resolvedEntries.map((entry) =>\n entry.kind === 'directory' ? entry.absolutePath : entry.watchDirectory,\n ),\n ),\n ];\n\n // Add color mode classes\n const fullSafelist = [\n ...allClasses,\n ...getThemeAndScaleClasses(colorModes),\n ...getInternalSafelistClasses(),\n ];\n const finalSafelist = deduplicateSafelist(fullSafelist);\n\n // Generate CSS (Tailwind will scan entry dir for arbitrary classes on className props)\n const cssResult = await generateCSS(finalSafelist, tokensConfig, {\n scope: options.scope,\n contentDir: entryDirs,\n safeVarPrefixes: [\n ...getMotionVarPrefixes(options.componentData, [...allComponents]),\n ...getConfigurableCssVariables(),\n ],\n });\n\n // Write output\n const outputPath = path.isAbsolute(options.outFile)\n ? options.outFile\n : path.join(options.workspaceDir, options.outFile);\n const outputDir = path.dirname(outputPath);\n\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n\n fs.writeFileSync(outputPath, cssResult.css);\n\n const duration = Math.round(performance.now() - startTime);\n\n if (shouldLogStats) {\n printSimpleModeStats({\n cwd: options.workspaceDir,\n outputPath,\n totalFilesScanned,\n scannedFilePaths: scanResult.filePaths,\n classCount: cssResult.classCount,\n sizeBytes: cssResult.sizeBytes,\n sizeGzipBytes: cssResult.sizeGzipBytes,\n duration,\n scope: options.scope,\n verbose: options.verbose,\n optimizationStats: cssResult.optimizationStats,\n print,\n magenta,\n cyan,\n yellow,\n });\n }\n\n return { success: true, outputPath, packageDirs };\n};\n\nexport { generateCSS, generateSimpleModeCSS };\nexport type { UDSCSSOptions };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","names":[],"sources":["../../src/css/generate.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { gzipSync } from 'node:zlib';\n\nimport { cyan, magenta, print, spinStop, yellow } from '@yahoo/uds-cli/lib';\nimport type { UniversalTokensConfig } from '@yahoo/uds-config';\nimport { defaultTokensConfig } from '@yahoo/uds-config';\nimport postcss from 'postcss';\nimport type { SafelistConfig } from 'tailwindcss/types/config';\n\nimport type { SerializedComponentInfo } from '../commands/generateComponentData';\nimport {\n deduplicateSafelist,\n getInternalSafelistClasses,\n getThemeAndScaleClasses,\n} from '../purger/optimized';\nimport type { EntryValue } from '../utils/entryPoints';\nimport { resolveEntryPaths } from '../utils/entryPoints';\nimport {\n applyScopedColorModeFix,\n buildPostcssPlugins,\n createTailwindPlugin,\n getCssFeatureFlags,\n getInternalIconModeCss,\n optimizeGeneratedCss,\n printSimpleModeStats,\n} from './generate.helpers';\nimport { loadConfigFile, scanDirectoriesForSafelist } from './nodeUtils';\nimport type { UDSCSSOptimizationOptions, UDSCSSVarSafelistPattern } from './theme';\nimport {\n extractRuntimeConfigValues,\n extractVariantDefaults,\n getConfigurableCssVariables,\n getMotionVarPrefixes,\n} from './utils';\n\n/**\n * Result from generating CSS\n */\ninterface CSSResult {\n css: string;\n sizeBytes: number;\n sizeGzipBytes: number;\n classCount: number;\n optimizationStats?: {\n originalSize: number;\n originalSizeGzip: number;\n fontFacesRemoved: number;\n emptyRulesRemoved: number;\n validationErrors: string[];\n };\n}\n\n/**\n * CSS generation options for uds.theme.ts\n */\ninterface UDSCSSOptions {\n /** CSS scope wrapper class (optional) */\n scope?: string;\n /** Safelist of CSS classes to always include */\n safelist?: SafelistConfig[];\n /** CSS optimization settings */\n optimization?: UDSCSSOptimizationOptions;\n /** Include Tailwind preflight/reset styles (default: true) */\n preflight?: boolean;\n /** Include @font-face declarations (default: true) */\n fontFaceDeclarations?: boolean;\n /** Debounce delay (ms) for watch mode regenerations */\n watchDebounce?: number;\n}\n\n/**\n * Options for generateCSS function\n */\ninterface GenerateCSSOptions {\n /** CSS scope wrapper class */\n scope?: string;\n /** Directory to scan for arbitrary Tailwind classes (className props) */\n contentDir?: string | string[];\n /** CSS generation options from theme config */\n cssOptions?: UDSCSSOptions;\n /** Reference CSS to deduplicate font-faces against (for scoped CSS) */\n referenceCss?: string;\n /** CSS variable prefixes or patterns to preserve during pruning */\n safeVarPrefixes?: UDSCSSVarSafelistPattern[];\n}\n\nconst normalizeScope = (scope?: string): string | undefined => {\n const trimmedScope = scope?.trim();\n return trimmedScope ? trimmedScope : undefined;\n};\n\nconst getArbitrarySafelistRawContent = (safelist: SafelistConfig[]): string[] => {\n const arbitraryClasses = safelist.filter(\n (entry): entry is string => typeof entry === 'string' && entry.includes('['),\n );\n\n if (arbitraryClasses.length === 0) {\n return [];\n }\n\n return [`<div class=\"${arbitraryClasses.join(' ')}\"></div>`];\n};\n\n/**\n * Generate CSS from a safelist using Tailwind + PostCSS\n * @param safelist - UDS component classes to include\n * @param config - Token configuration\n * @param options - Additional options\n */\nconst generateCSS = async (\n safelist: SafelistConfig[],\n config: UniversalTokensConfig,\n options?: GenerateCSSOptions,\n): Promise<CSSResult> => {\n // Do we need base?\n const sourceCSS = '@tailwind base; @tailwind components; @tailwind utilities';\n\n const contentDir = options?.contentDir ?? path.join(process.cwd(), 'src');\n const cssFlags = getCssFeatureFlags(options?.cssOptions);\n const optimizationConfig = options?.cssOptions?.optimization;\n const scopeClass = normalizeScope(options?.scope) ?? normalizeScope(options?.cssOptions?.scope);\n const twPlugin = createTailwindPlugin({\n contentDir,\n rawContents: getArbitrarySafelistRawContent(safelist),\n safelist,\n config,\n enablePreflight: cssFlags.enablePreflight,\n enableFontFaceDeclarations: cssFlags.enableFontFaceDeclarations,\n });\n const plugins = buildPostcssPlugins({\n tailwindPlugin: twPlugin,\n shouldPruneVars: cssFlags.shouldPruneVars,\n safeVarPrefixes: options?.safeVarPrefixes ?? [],\n scopeClass,\n });\n\n const result = await postcss(plugins).process(sourceCSS, { from: undefined });\n let css = await applyScopedColorModeFix(result.css, scopeClass);\n if (!css.includes('uds-light-mode-icon') || !css.includes('uds-dark-mode-icon')) {\n css = `${css} ${getInternalIconModeCss(scopeClass)}`.trim();\n }\n const optimizedCss = await optimizeGeneratedCss({\n css,\n shouldOptimize: cssFlags.shouldOptimize,\n optimizationConfig,\n referenceCss: options?.referenceCss,\n scopeClass,\n });\n css = optimizedCss.css;\n\n const sizeBytes = Buffer.byteLength(css, 'utf8');\n const sizeGzipBytes = gzipSync(css).length;\n\n return {\n css,\n sizeBytes,\n sizeGzipBytes,\n classCount: safelist.length,\n optimizationStats: optimizedCss.optimizationStats,\n };\n};\n\n/**\n * Generate CSS in simple mode (no uds.theme.ts)\n */\nconst generateSimpleModeCSS = async (options: {\n workspaceDir: string;\n entry: EntryValue;\n outFile: string;\n variants: Record<string, Record<string, string>>;\n autoVariants: Record<string, Record<string, string>>;\n componentData: Record<string, SerializedComponentInfo>;\n scope?: string;\n configPath?: string;\n isWatch?: boolean;\n silent?: boolean;\n verbose?: boolean;\n}): Promise<{ success: boolean; outputPath: string; packageDirs?: string[] }> => {\n const isWatch = options.isWatch === true;\n const isSilent = options.silent === true;\n const shouldLogStats = !isSilent && !isWatch;\n const startTime = performance.now();\n const colorModes: ('dark' | 'light')[] = ['dark']; // Light mode is already in :root\n\n // Load config if provided, otherwise use default\n let tokensConfig: UniversalTokensConfig = defaultTokensConfig;\n if (options.configPath) {\n const loadedConfig = await loadConfigFile<UniversalTokensConfig>(options.configPath);\n if (loadedConfig) {\n tokensConfig = loadedConfig;\n } else if (shouldLogStats) {\n spinStop('⚠️', `Config file not found: ${options.configPath}, using defaults`);\n }\n }\n\n // Extract variant defaults from config for auto-variant class generation\n const variantDefaults = extractVariantDefaults(tokensConfig);\n const runtimeConfigValues = extractRuntimeConfigValues(tokensConfig);\n\n const resolvedEntries = resolveEntryPaths(options.entry, options.workspaceDir);\n const entryDirs = resolvedEntries.map((entry) => entry.absolutePath);\n const scanResult = await scanDirectoriesForSafelist(\n entryDirs,\n colorModes,\n options.variants,\n options.autoVariants,\n options.componentData,\n variantDefaults,\n runtimeConfigValues,\n );\n\n const totalFilesScanned = scanResult.filesScanned;\n const allClasses: string[] = [...scanResult.safelist];\n const allComponents = new Set<string>(scanResult.components);\n const packageDirs: string[] = [\n ...new Set(\n resolvedEntries.map((entry) =>\n entry.kind === 'directory' ? entry.absolutePath : entry.watchDirectory,\n ),\n ),\n ];\n\n // Add color mode classes\n const fullSafelist = [\n ...allClasses,\n ...getThemeAndScaleClasses(colorModes),\n ...getInternalSafelistClasses(),\n ];\n const finalSafelist = deduplicateSafelist(fullSafelist);\n\n // Generate CSS (Tailwind will scan entry dir for arbitrary classes on className props)\n const cssResult = await generateCSS(finalSafelist, tokensConfig, {\n scope: options.scope,\n contentDir: entryDirs,\n safeVarPrefixes: [\n ...getMotionVarPrefixes(options.componentData, [...allComponents]),\n ...getConfigurableCssVariables(),\n ],\n });\n\n // Write output\n const outputPath = path.isAbsolute(options.outFile)\n ? options.outFile\n : path.join(options.workspaceDir, options.outFile);\n const outputDir = path.dirname(outputPath);\n\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n\n fs.writeFileSync(outputPath, cssResult.css);\n\n const duration = Math.round(performance.now() - startTime);\n\n if (shouldLogStats) {\n printSimpleModeStats({\n cwd: options.workspaceDir,\n outputPath,\n totalFilesScanned,\n scannedFilePaths: scanResult.filePaths,\n classCount: cssResult.classCount,\n sizeBytes: cssResult.sizeBytes,\n sizeGzipBytes: cssResult.sizeGzipBytes,\n duration,\n scope: options.scope,\n verbose: options.verbose,\n optimizationStats: cssResult.optimizationStats,\n print,\n magenta,\n cyan,\n yellow,\n });\n }\n\n return { success: true, outputPath, packageDirs };\n};\n\nexport { generateCSS, generateSimpleModeCSS };\nexport type { UDSCSSOptions };\n"],"mappings":"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"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
|
-
const require_runtime = require(
|
|
3
|
-
const require_colors = require(
|
|
4
|
-
const require_print = require(
|
|
5
|
-
const require_purgeFromCode = require(
|
|
6
|
-
const require_entryPoints = require(
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_colors = require("../cli/dist/lib/colors.cjs");
|
|
4
|
+
const require_print = require("../cli/dist/lib/print.cjs");
|
|
5
|
+
const require_purgeFromCode = require("../purger/optimized/purgeFromCode.cjs");
|
|
6
|
+
const require_entryPoints = require("../utils/entryPoints.cjs");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
|
-
node_fs = require_runtime.__toESM(node_fs);
|
|
8
|
+
node_fs = require_runtime.__toESM(node_fs, 1);
|
|
9
9
|
let node_module = require("node:module");
|
|
10
10
|
let node_path = require("node:path");
|
|
11
|
-
node_path = require_runtime.__toESM(node_path);
|
|
11
|
+
node_path = require_runtime.__toESM(node_path, 1);
|
|
12
12
|
let fast_glob = require("fast-glob");
|
|
13
|
-
fast_glob = require_runtime.__toESM(fast_glob);
|
|
14
|
-
|
|
13
|
+
fast_glob = require_runtime.__toESM(fast_glob, 1);
|
|
15
14
|
//#region src/css/nodeUtils.ts
|
|
16
15
|
const loadConfigFile = async (configPath) => {
|
|
17
16
|
const absolutePath = node_path.default.isAbsolute(configPath) ? configPath : node_path.default.join(process.cwd(), configPath);
|
|
@@ -246,7 +245,6 @@ export default defineTheme({
|
|
|
246
245
|
require_print.print(` 2. Run ${require_colors.cyan("uds css")} to generate CSS`);
|
|
247
246
|
require_print.print("");
|
|
248
247
|
};
|
|
249
|
-
|
|
250
248
|
//#endregion
|
|
251
249
|
exports.findPackageRoot = findPackageRoot;
|
|
252
250
|
exports.findPackageSourceDir = findPackageSourceDir;
|
|
@@ -254,4 +252,4 @@ exports.getPackageUdsScope = getPackageUdsScope;
|
|
|
254
252
|
exports.loadConfigFile = loadConfigFile;
|
|
255
253
|
exports.scaffoldThemeConfig = scaffoldThemeConfig;
|
|
256
254
|
exports.scanDirectoriesForSafelist = scanDirectoriesForSafelist;
|
|
257
|
-
exports.scanDirectoryForSafelist = scanDirectoryForSafelist;
|
|
255
|
+
exports.scanDirectoryForSafelist = scanDirectoryForSafelist;
|
|
@@ -7,7 +7,6 @@ import fs from "node:fs";
|
|
|
7
7
|
import { createRequire } from "node:module";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import fg from "fast-glob";
|
|
10
|
-
|
|
11
10
|
//#region src/css/nodeUtils.ts
|
|
12
11
|
const loadConfigFile = async (configPath) => {
|
|
13
12
|
const absolutePath = path.isAbsolute(configPath) ? configPath : path.join(process.cwd(), configPath);
|
|
@@ -242,7 +241,7 @@ export default defineTheme({
|
|
|
242
241
|
print(` 2. Run ${cyan("uds css")} to generate CSS`);
|
|
243
242
|
print("");
|
|
244
243
|
};
|
|
245
|
-
|
|
246
244
|
//#endregion
|
|
247
245
|
export { findPackageRoot, findPackageSourceDir, getPackageUdsScope, loadConfigFile, scaffoldThemeConfig, scanDirectoriesForSafelist, scanDirectoryForSafelist };
|
|
246
|
+
|
|
248
247
|
//# sourceMappingURL=nodeUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeUtils.js","names":[],"sources":["../../src/css/nodeUtils.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { cyan, green, magenta, print, red } from '@yahoo/uds-cli/lib';\nimport fg from 'fast-glob';\n\nimport type { SerializedComponentInfo } from '../commands/generateComponentData';\nimport type { RuntimeConfigValues, VariantDefaults } from '../purger/optimized/purgeFromCode';\nimport { purgeFromCodeOptimized } from '../purger/optimized/purgeFromCode';\nimport type { EntryValue } from '../utils/entryPoints';\nimport { formatEntryValue } from '../utils/entryPoints';\n\ntype SafelistScanResult = {\n safelist: string[];\n components: string[];\n filesScanned: number;\n filesWithComponents: number;\n filePaths: string[];\n};\n\nconst loadConfigFile = async <T>(configPath: string): Promise<T | null> => {\n const absolutePath = path.isAbsolute(configPath)\n ? configPath\n : path.join(process.cwd(), configPath);\n\n if (!fs.existsSync(absolutePath)) {\n return null;\n }\n\n try {\n const module = await import(absolutePath);\n return module.default ?? module.config ?? module;\n } catch (error) {\n throw new Error(\n `Failed to load config file: ${absolutePath}\\n${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n};\n\nconst scanDirectoryForSafelist = async (\n dir: string,\n colorModes: ('dark' | 'light')[],\n variants: Record<string, Record<string, string>>,\n autoVariants: Record<string, Record<string, string>>,\n componentData: Record<string, SerializedComponentInfo>,\n variantDefaults?: VariantDefaults,\n runtimeConfigValues?: RuntimeConfigValues,\n includeAllClassNamePrimitives = false,\n): Promise<SafelistScanResult> => {\n const files = (\n await fg('**/*.{js,jsx,mjs,cjs,ts,tsx}', {\n cwd: dir,\n absolute: true,\n ignore: ['**/node_modules/**'],\n })\n ).sort((left, right) => left.localeCompare(right));\n\n const results = await Promise.all(\n files.map(async (filePath) => {\n const code = fs.readFileSync(filePath, 'utf-8');\n return purgeFromCodeOptimized(code, {\n colorModes,\n variantDefaults,\n runtimeConfigValues,\n variants,\n autoVariants,\n componentData,\n includeAllClassNamePrimitives,\n filePath,\n });\n }),\n );\n\n const allClasses = results.flatMap((result) => result.safelist);\n const allComponents = new Set(results.flatMap((result) => result.components));\n const filesWithComponents = results.filter((result) => result.components.length > 0).length;\n\n return {\n safelist: allClasses,\n components: [...allComponents],\n filesScanned: files.length,\n filesWithComponents,\n filePaths: files,\n };\n};\n\nconst scanFileForSafelist = async (\n filePath: string,\n colorModes: ('dark' | 'light')[],\n variants: Record<string, Record<string, string>>,\n autoVariants: Record<string, Record<string, string>>,\n componentData: Record<string, SerializedComponentInfo>,\n variantDefaults?: VariantDefaults,\n runtimeConfigValues?: RuntimeConfigValues,\n includeAllClassNamePrimitives = false,\n): Promise<SafelistScanResult> => {\n const code = fs.readFileSync(filePath, 'utf-8');\n const result = await purgeFromCodeOptimized(code, {\n colorModes,\n variantDefaults,\n runtimeConfigValues,\n variants,\n autoVariants,\n componentData,\n includeAllClassNamePrimitives,\n });\n\n return {\n safelist: result.safelist,\n components: result.components,\n filesScanned: 1,\n filesWithComponents: result.components.length > 0 ? 1 : 0,\n filePaths: [filePath],\n };\n};\n\nconst scanDirectoriesForSafelist = async (\n dirs: string[],\n colorModes: ('dark' | 'light')[],\n variants: Record<string, Record<string, string>>,\n autoVariants: Record<string, Record<string, string>>,\n componentData: Record<string, SerializedComponentInfo>,\n variantDefaults?: VariantDefaults,\n runtimeConfigValues?: RuntimeConfigValues,\n includeAllClassNamePrimitives = false,\n): Promise<SafelistScanResult> => {\n const results = await Promise.all(\n dirs.map((dir) => {\n if (fs.existsSync(dir) && fs.statSync(dir).isFile()) {\n return scanFileForSafelist(\n dir,\n colorModes,\n variants,\n autoVariants,\n componentData,\n variantDefaults,\n runtimeConfigValues,\n includeAllClassNamePrimitives,\n );\n }\n\n return scanDirectoryForSafelist(\n dir,\n colorModes,\n variants,\n autoVariants,\n componentData,\n variantDefaults,\n runtimeConfigValues,\n includeAllClassNamePrimitives,\n );\n }),\n );\n\n return {\n safelist: results.flatMap((result) => result.safelist),\n components: [...new Set(results.flatMap((result) => result.components))],\n filesScanned: results.reduce((total, result) => total + result.filesScanned, 0),\n filesWithComponents: results.reduce((total, result) => total + result.filesWithComponents, 0),\n filePaths: results\n .flatMap((result) => result.filePaths)\n .sort((left, right) => left.localeCompare(right)),\n };\n};\n\nconst findMonorepoRoot = (startDir: string): string | null => {\n const findUp = (currentDir: string): string | null => {\n if (fs.existsSync(path.join(currentDir, 'packages'))) {\n return currentDir;\n }\n\n const parentDir = path.dirname(currentDir);\n return parentDir === currentDir ? null : findUp(parentDir);\n };\n\n return findUp(startDir);\n};\n\nconst readPackageName = (packageJsonPath: string): string | null => {\n try {\n const pkgJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as { name?: string };\n return typeof pkgJson.name === 'string' ? pkgJson.name : null;\n } catch {\n return null;\n }\n};\n\nconst findPackageRootFromResolvedEntry = (\n resolvedEntryPath: string,\n packageName: string,\n): string | null => {\n let currentPath = fs.statSync(resolvedEntryPath).isDirectory()\n ? resolvedEntryPath\n : path.dirname(resolvedEntryPath);\n\n while (true) {\n const packageJsonPath = path.join(currentPath, 'package.json');\n if (fs.existsSync(packageJsonPath) && readPackageName(packageJsonPath) === packageName) {\n return currentPath;\n }\n\n const parentPath = path.dirname(currentPath);\n if (parentPath === currentPath) {\n return null;\n }\n\n currentPath = parentPath;\n }\n};\n\nconst findPackageRootInNodeModules = (startDir: string, packageName: string): string | null => {\n let currentDir = startDir;\n\n while (true) {\n const packageJsonPath = path.join(currentDir, 'node_modules', packageName, 'package.json');\n if (fs.existsSync(packageJsonPath)) {\n return path.dirname(packageJsonPath);\n }\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return null;\n }\n\n currentDir = parentDir;\n }\n};\n\nconst resolvePackageRoot = (workspaceDir: string, packageName: string): string | null => {\n const requireFromWorkspace = createRequire(path.join(workspaceDir, 'package.json'));\n\n try {\n const resolvedPackageJson = requireFromWorkspace.resolve(\n path.join(packageName, 'package.json'),\n );\n return path.dirname(resolvedPackageJson);\n } catch {\n try {\n const resolvedPackageEntry = requireFromWorkspace.resolve(packageName);\n const packageRoot = findPackageRootFromResolvedEntry(resolvedPackageEntry, packageName);\n if (packageRoot) {\n return packageRoot;\n }\n } catch {\n // Fall through to explicit node_modules lookup below.\n }\n\n return findPackageRootInNodeModules(workspaceDir, packageName);\n }\n};\n\ntype PackageJsonShape = {\n uds?: {\n scope?: string;\n };\n};\n\nconst findPackageRootInMonorepo = (monorepoRoot: string, packageName: string): string | null => {\n const packageJsonPaths = fg.sync('packages/**/package.json', {\n cwd: monorepoRoot,\n absolute: true,\n ignore: ['**/node_modules/**', '**/dist/**'],\n });\n\n const matchingPath = packageJsonPaths.find((pkgJsonPath) => {\n return readPackageName(pkgJsonPath) === packageName;\n });\n\n return matchingPath ? path.dirname(matchingPath) : null;\n};\n\nconst findPackageRoot = (packageName: string): string | null => {\n const workspaceDir = process.cwd();\n const monorepoRoot = findMonorepoRoot(workspaceDir);\n\n let packageRoot = resolvePackageRoot(workspaceDir, packageName);\n if (!packageRoot && monorepoRoot) {\n packageRoot = findPackageRootInMonorepo(monorepoRoot, packageName);\n }\n\n return packageRoot;\n};\n\nconst buildPackageSourceCandidates = (\n workspaceDir: string,\n packageName: string,\n packageRoot: string | null,\n): string[] => {\n return [\n packageRoot ? path.join(packageRoot, 'src') : null,\n packageRoot ? path.join(packageRoot, 'lib') : null,\n packageRoot ? path.join(packageRoot, 'dist') : null,\n packageRoot,\n path.join(workspaceDir, 'node_modules', packageName, 'src'),\n path.join(workspaceDir, 'node_modules', packageName, 'lib'),\n path.join(workspaceDir, 'node_modules', packageName, 'dist'),\n path.join(workspaceDir, 'node_modules', packageName),\n ].filter(Boolean) as string[];\n};\n\nconst getFirstExistingPath = (candidates: string[]): string | null =>\n candidates.find((candidate) => fs.existsSync(candidate)) ?? null;\n\nconst findPackageSourceDir = (packageName: string): string | null => {\n const workspaceDir = process.cwd();\n const packageRoot = findPackageRoot(packageName);\n\n return getFirstExistingPath(buildPackageSourceCandidates(workspaceDir, packageName, packageRoot));\n};\n\nconst getPackageUdsScope = (packageName: string): string | null => {\n const packageRoot = findPackageRoot(packageName);\n if (!packageRoot) {\n return null;\n }\n\n const packageJsonPath = path.join(packageRoot, 'package.json');\n if (!fs.existsSync(packageJsonPath)) {\n return null;\n }\n\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as PackageJsonShape;\n const scope = packageJson.uds?.scope;\n return typeof scope === 'string' && scope.trim().length > 0 ? scope.trim() : null;\n } catch {\n return null;\n }\n};\n\nconst scaffoldThemeConfig = async (options: {\n outputPath?: string;\n configPath?: string;\n entry?: EntryValue;\n force?: boolean;\n}): Promise<void> => {\n const workspaceDir = process.cwd();\n const outputPath = options.outputPath ?? 'uds.theme.ts';\n const absoluteOutputPath = path.isAbsolute(outputPath)\n ? outputPath\n : path.join(workspaceDir, outputPath);\n\n if (fs.existsSync(absoluteOutputPath) && !options.force) {\n print(red(`Error: ${outputPath} already exists. Use --force to overwrite.`));\n process.exitCode = 1;\n return;\n }\n\n const configPath = options.configPath ?? './uds.config.ts';\n const entry = options.entry ?? './src';\n const serializedEntry = formatEntryValue(entry);\n\n const template = `import { defineTheme } from '@yahoo/uds';\n\n/**\n * UDS Theme Configuration\n * \n * This file configures CSS generation for your app and shared packages.\n * Run \\`uds css\\` to generate optimized CSS.\n */\nexport default defineTheme({\n // Path to your uds.config.ts file\n config: '${configPath}',\n\n // Entry directory or .tsx file path for scanning your app code\n entry: ${serializedEntry},\n\n // Color modes to include (light mode is always in :root)\n colorModes: ['dark'],\n\n // Packages that inherit your app's theme (merged into main uds.css)\n // inherit: ['@your-org/shared-ui'],\n\n // Packages that generate separate scoped CSS outputs.\n // Scope class is discovered from each package.json uds.scope.\n // When entry is omitted, the package is scanned the same way as inherit.\n // scoped: {\n // '@your-org/shared-ui': './packages/shared-ui/uds.config.ts'\n // }\n //\n // Or use the expanded form for custom output paths:\n // scoped: {\n // '@your-org/shared-ui': {\n // config: './packages/shared-ui/uds.config.ts',\n // entry: './src',\n // // outFile defaults to dist/shared-ui.css\n // outFile: 'dist/shared-ui.css'\n // },\n // },\n\n // CSS generation options (all optional)\n // css: {\n // safelist: [],\n // preflight: true,\n // fontFaceDeclarations: true,\n // optimization: {\n // removeUnusedFonts: false,\n // removeEmptyRules: true,\n // deduplicateScopedCss: true\n // }\n // }\n});\n`;\n\n fs.writeFileSync(absoluteOutputPath, template);\n\n print('');\n print(green('✅ Created uds.theme.ts'));\n print('');\n print(`${magenta('Next steps:')}`);\n print(` 1. Review and customize ${cyan(outputPath)}`);\n print(` 2. Run ${cyan('uds css')} to generate CSS`);\n print('');\n};\n\nexport {\n findPackageRoot,\n findPackageSourceDir,\n getPackageUdsScope,\n loadConfigFile,\n scaffoldThemeConfig,\n scanDirectoriesForSafelist,\n scanDirectoryForSafelist,\n};\nexport type { SafelistScanResult };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodeUtils.js","names":[],"sources":["../../src/css/nodeUtils.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { cyan, green, magenta, print, red } from '@yahoo/uds-cli/lib';\nimport fg from 'fast-glob';\n\nimport type { SerializedComponentInfo } from '../commands/generateComponentData';\nimport type { RuntimeConfigValues, VariantDefaults } from '../purger/optimized/purgeFromCode';\nimport { purgeFromCodeOptimized } from '../purger/optimized/purgeFromCode';\nimport type { EntryValue } from '../utils/entryPoints';\nimport { formatEntryValue } from '../utils/entryPoints';\n\ntype SafelistScanResult = {\n safelist: string[];\n components: string[];\n filesScanned: number;\n filesWithComponents: number;\n filePaths: string[];\n};\n\nconst loadConfigFile = async <T>(configPath: string): Promise<T | null> => {\n const absolutePath = path.isAbsolute(configPath)\n ? configPath\n : path.join(process.cwd(), configPath);\n\n if (!fs.existsSync(absolutePath)) {\n return null;\n }\n\n try {\n const module = await import(absolutePath);\n return module.default ?? module.config ?? module;\n } catch (error) {\n throw new Error(\n `Failed to load config file: ${absolutePath}\\n${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n};\n\nconst scanDirectoryForSafelist = async (\n dir: string,\n colorModes: ('dark' | 'light')[],\n variants: Record<string, Record<string, string>>,\n autoVariants: Record<string, Record<string, string>>,\n componentData: Record<string, SerializedComponentInfo>,\n variantDefaults?: VariantDefaults,\n runtimeConfigValues?: RuntimeConfigValues,\n includeAllClassNamePrimitives = false,\n): Promise<SafelistScanResult> => {\n const files = (\n await fg('**/*.{js,jsx,mjs,cjs,ts,tsx}', {\n cwd: dir,\n absolute: true,\n ignore: ['**/node_modules/**'],\n })\n ).sort((left, right) => left.localeCompare(right));\n\n const results = await Promise.all(\n files.map(async (filePath) => {\n const code = fs.readFileSync(filePath, 'utf-8');\n return purgeFromCodeOptimized(code, {\n colorModes,\n variantDefaults,\n runtimeConfigValues,\n variants,\n autoVariants,\n componentData,\n includeAllClassNamePrimitives,\n filePath,\n });\n }),\n );\n\n const allClasses = results.flatMap((result) => result.safelist);\n const allComponents = new Set(results.flatMap((result) => result.components));\n const filesWithComponents = results.filter((result) => result.components.length > 0).length;\n\n return {\n safelist: allClasses,\n components: [...allComponents],\n filesScanned: files.length,\n filesWithComponents,\n filePaths: files,\n };\n};\n\nconst scanFileForSafelist = async (\n filePath: string,\n colorModes: ('dark' | 'light')[],\n variants: Record<string, Record<string, string>>,\n autoVariants: Record<string, Record<string, string>>,\n componentData: Record<string, SerializedComponentInfo>,\n variantDefaults?: VariantDefaults,\n runtimeConfigValues?: RuntimeConfigValues,\n includeAllClassNamePrimitives = false,\n): Promise<SafelistScanResult> => {\n const code = fs.readFileSync(filePath, 'utf-8');\n const result = await purgeFromCodeOptimized(code, {\n colorModes,\n variantDefaults,\n runtimeConfigValues,\n variants,\n autoVariants,\n componentData,\n includeAllClassNamePrimitives,\n });\n\n return {\n safelist: result.safelist,\n components: result.components,\n filesScanned: 1,\n filesWithComponents: result.components.length > 0 ? 1 : 0,\n filePaths: [filePath],\n };\n};\n\nconst scanDirectoriesForSafelist = async (\n dirs: string[],\n colorModes: ('dark' | 'light')[],\n variants: Record<string, Record<string, string>>,\n autoVariants: Record<string, Record<string, string>>,\n componentData: Record<string, SerializedComponentInfo>,\n variantDefaults?: VariantDefaults,\n runtimeConfigValues?: RuntimeConfigValues,\n includeAllClassNamePrimitives = false,\n): Promise<SafelistScanResult> => {\n const results = await Promise.all(\n dirs.map((dir) => {\n if (fs.existsSync(dir) && fs.statSync(dir).isFile()) {\n return scanFileForSafelist(\n dir,\n colorModes,\n variants,\n autoVariants,\n componentData,\n variantDefaults,\n runtimeConfigValues,\n includeAllClassNamePrimitives,\n );\n }\n\n return scanDirectoryForSafelist(\n dir,\n colorModes,\n variants,\n autoVariants,\n componentData,\n variantDefaults,\n runtimeConfigValues,\n includeAllClassNamePrimitives,\n );\n }),\n );\n\n return {\n safelist: results.flatMap((result) => result.safelist),\n components: [...new Set(results.flatMap((result) => result.components))],\n filesScanned: results.reduce((total, result) => total + result.filesScanned, 0),\n filesWithComponents: results.reduce((total, result) => total + result.filesWithComponents, 0),\n filePaths: results\n .flatMap((result) => result.filePaths)\n .sort((left, right) => left.localeCompare(right)),\n };\n};\n\nconst findMonorepoRoot = (startDir: string): string | null => {\n const findUp = (currentDir: string): string | null => {\n if (fs.existsSync(path.join(currentDir, 'packages'))) {\n return currentDir;\n }\n\n const parentDir = path.dirname(currentDir);\n return parentDir === currentDir ? null : findUp(parentDir);\n };\n\n return findUp(startDir);\n};\n\nconst readPackageName = (packageJsonPath: string): string | null => {\n try {\n const pkgJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as { name?: string };\n return typeof pkgJson.name === 'string' ? pkgJson.name : null;\n } catch {\n return null;\n }\n};\n\nconst findPackageRootFromResolvedEntry = (\n resolvedEntryPath: string,\n packageName: string,\n): string | null => {\n let currentPath = fs.statSync(resolvedEntryPath).isDirectory()\n ? resolvedEntryPath\n : path.dirname(resolvedEntryPath);\n\n while (true) {\n const packageJsonPath = path.join(currentPath, 'package.json');\n if (fs.existsSync(packageJsonPath) && readPackageName(packageJsonPath) === packageName) {\n return currentPath;\n }\n\n const parentPath = path.dirname(currentPath);\n if (parentPath === currentPath) {\n return null;\n }\n\n currentPath = parentPath;\n }\n};\n\nconst findPackageRootInNodeModules = (startDir: string, packageName: string): string | null => {\n let currentDir = startDir;\n\n while (true) {\n const packageJsonPath = path.join(currentDir, 'node_modules', packageName, 'package.json');\n if (fs.existsSync(packageJsonPath)) {\n return path.dirname(packageJsonPath);\n }\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return null;\n }\n\n currentDir = parentDir;\n }\n};\n\nconst resolvePackageRoot = (workspaceDir: string, packageName: string): string | null => {\n const requireFromWorkspace = createRequire(path.join(workspaceDir, 'package.json'));\n\n try {\n const resolvedPackageJson = requireFromWorkspace.resolve(\n path.join(packageName, 'package.json'),\n );\n return path.dirname(resolvedPackageJson);\n } catch {\n try {\n const resolvedPackageEntry = requireFromWorkspace.resolve(packageName);\n const packageRoot = findPackageRootFromResolvedEntry(resolvedPackageEntry, packageName);\n if (packageRoot) {\n return packageRoot;\n }\n } catch {\n // Fall through to explicit node_modules lookup below.\n }\n\n return findPackageRootInNodeModules(workspaceDir, packageName);\n }\n};\n\ntype PackageJsonShape = {\n uds?: {\n scope?: string;\n };\n};\n\nconst findPackageRootInMonorepo = (monorepoRoot: string, packageName: string): string | null => {\n const packageJsonPaths = fg.sync('packages/**/package.json', {\n cwd: monorepoRoot,\n absolute: true,\n ignore: ['**/node_modules/**', '**/dist/**'],\n });\n\n const matchingPath = packageJsonPaths.find((pkgJsonPath) => {\n return readPackageName(pkgJsonPath) === packageName;\n });\n\n return matchingPath ? path.dirname(matchingPath) : null;\n};\n\nconst findPackageRoot = (packageName: string): string | null => {\n const workspaceDir = process.cwd();\n const monorepoRoot = findMonorepoRoot(workspaceDir);\n\n let packageRoot = resolvePackageRoot(workspaceDir, packageName);\n if (!packageRoot && monorepoRoot) {\n packageRoot = findPackageRootInMonorepo(monorepoRoot, packageName);\n }\n\n return packageRoot;\n};\n\nconst buildPackageSourceCandidates = (\n workspaceDir: string,\n packageName: string,\n packageRoot: string | null,\n): string[] => {\n return [\n packageRoot ? path.join(packageRoot, 'src') : null,\n packageRoot ? path.join(packageRoot, 'lib') : null,\n packageRoot ? path.join(packageRoot, 'dist') : null,\n packageRoot,\n path.join(workspaceDir, 'node_modules', packageName, 'src'),\n path.join(workspaceDir, 'node_modules', packageName, 'lib'),\n path.join(workspaceDir, 'node_modules', packageName, 'dist'),\n path.join(workspaceDir, 'node_modules', packageName),\n ].filter(Boolean) as string[];\n};\n\nconst getFirstExistingPath = (candidates: string[]): string | null =>\n candidates.find((candidate) => fs.existsSync(candidate)) ?? null;\n\nconst findPackageSourceDir = (packageName: string): string | null => {\n const workspaceDir = process.cwd();\n const packageRoot = findPackageRoot(packageName);\n\n return getFirstExistingPath(buildPackageSourceCandidates(workspaceDir, packageName, packageRoot));\n};\n\nconst getPackageUdsScope = (packageName: string): string | null => {\n const packageRoot = findPackageRoot(packageName);\n if (!packageRoot) {\n return null;\n }\n\n const packageJsonPath = path.join(packageRoot, 'package.json');\n if (!fs.existsSync(packageJsonPath)) {\n return null;\n }\n\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as PackageJsonShape;\n const scope = packageJson.uds?.scope;\n return typeof scope === 'string' && scope.trim().length > 0 ? scope.trim() : null;\n } catch {\n return null;\n }\n};\n\nconst scaffoldThemeConfig = async (options: {\n outputPath?: string;\n configPath?: string;\n entry?: EntryValue;\n force?: boolean;\n}): Promise<void> => {\n const workspaceDir = process.cwd();\n const outputPath = options.outputPath ?? 'uds.theme.ts';\n const absoluteOutputPath = path.isAbsolute(outputPath)\n ? outputPath\n : path.join(workspaceDir, outputPath);\n\n if (fs.existsSync(absoluteOutputPath) && !options.force) {\n print(red(`Error: ${outputPath} already exists. Use --force to overwrite.`));\n process.exitCode = 1;\n return;\n }\n\n const configPath = options.configPath ?? './uds.config.ts';\n const entry = options.entry ?? './src';\n const serializedEntry = formatEntryValue(entry);\n\n const template = `import { defineTheme } from '@yahoo/uds';\n\n/**\n * UDS Theme Configuration\n * \n * This file configures CSS generation for your app and shared packages.\n * Run \\`uds css\\` to generate optimized CSS.\n */\nexport default defineTheme({\n // Path to your uds.config.ts file\n config: '${configPath}',\n\n // Entry directory or .tsx file path for scanning your app code\n entry: ${serializedEntry},\n\n // Color modes to include (light mode is always in :root)\n colorModes: ['dark'],\n\n // Packages that inherit your app's theme (merged into main uds.css)\n // inherit: ['@your-org/shared-ui'],\n\n // Packages that generate separate scoped CSS outputs.\n // Scope class is discovered from each package.json uds.scope.\n // When entry is omitted, the package is scanned the same way as inherit.\n // scoped: {\n // '@your-org/shared-ui': './packages/shared-ui/uds.config.ts'\n // }\n //\n // Or use the expanded form for custom output paths:\n // scoped: {\n // '@your-org/shared-ui': {\n // config: './packages/shared-ui/uds.config.ts',\n // entry: './src',\n // // outFile defaults to dist/shared-ui.css\n // outFile: 'dist/shared-ui.css'\n // },\n // },\n\n // CSS generation options (all optional)\n // css: {\n // safelist: [],\n // preflight: true,\n // fontFaceDeclarations: true,\n // optimization: {\n // removeUnusedFonts: false,\n // removeEmptyRules: true,\n // deduplicateScopedCss: true\n // }\n // }\n});\n`;\n\n fs.writeFileSync(absoluteOutputPath, template);\n\n print('');\n print(green('✅ Created uds.theme.ts'));\n print('');\n print(`${magenta('Next steps:')}`);\n print(` 1. Review and customize ${cyan(outputPath)}`);\n print(` 2. Run ${cyan('uds css')} to generate CSS`);\n print('');\n};\n\nexport {\n findPackageRoot,\n findPackageSourceDir,\n getPackageUdsScope,\n loadConfigFile,\n scaffoldThemeConfig,\n scanDirectoriesForSafelist,\n scanDirectoryForSafelist,\n};\nexport type { SafelistScanResult };\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
|
-
const require_postcss_helpers = require(
|
|
3
|
-
|
|
2
|
+
const require_postcss_helpers = require("./postcss.helpers.cjs");
|
|
4
3
|
//#region src/css/postcss.ts
|
|
5
4
|
const fixScopedSelfOrParentSelectorsPlugin = (scopeClass) => {
|
|
6
5
|
return {
|
|
@@ -49,7 +48,6 @@ const fixScopedColorModeSelectorsPlugin = (scopeClass) => {
|
|
|
49
48
|
}
|
|
50
49
|
};
|
|
51
50
|
};
|
|
52
|
-
|
|
53
51
|
//#endregion
|
|
54
52
|
exports.fixScopedColorModeSelectorsPlugin = fixScopedColorModeSelectorsPlugin;
|
|
55
|
-
exports.fixScopedSelfOrParentSelectorsPlugin = fixScopedSelfOrParentSelectorsPlugin;
|
|
53
|
+
exports.fixScopedSelfOrParentSelectorsPlugin = fixScopedSelfOrParentSelectorsPlugin;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
|
-
|
|
3
2
|
//#region src/css/postcss.helpers.ts
|
|
4
3
|
const COLOR_MODE_RE = /^(\.(uds-color-mode-(?:dark|light)))(\s+.+)?$/;
|
|
5
4
|
const escapeForRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
@@ -33,7 +32,6 @@ const getScopedSelfOrParentAlternativeSelector = (selector, scopeClass) => {
|
|
|
33
32
|
if (/^\.uds-color-mode-(?:dark|light)(?:$|[.#[:])/.test(scopedTarget)) return null;
|
|
34
33
|
return `${scopeClass}${scopedTarget}${targetMatch[2]}`;
|
|
35
34
|
};
|
|
36
|
-
|
|
37
35
|
//#endregion
|
|
38
36
|
exports.buildScopedColorModeSelectorList = buildScopedColorModeSelectorList;
|
|
39
|
-
exports.getScopedSelfOrParentAlternativeSelector = getScopedSelfOrParentAlternativeSelector;
|
|
37
|
+
exports.getScopedSelfOrParentAlternativeSelector = getScopedSelfOrParentAlternativeSelector;
|
|
@@ -32,7 +32,7 @@ const getScopedSelfOrParentAlternativeSelector = (selector, scopeClass) => {
|
|
|
32
32
|
if (/^\.uds-color-mode-(?:dark|light)(?:$|[.#[:])/.test(scopedTarget)) return null;
|
|
33
33
|
return `${scopeClass}${scopedTarget}${targetMatch[2]}`;
|
|
34
34
|
};
|
|
35
|
-
|
|
36
35
|
//#endregion
|
|
37
36
|
export { buildScopedColorModeSelectorList, getScopedSelfOrParentAlternativeSelector };
|
|
37
|
+
|
|
38
38
|
//# sourceMappingURL=postcss.helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postcss.helpers.js","names":[],"sources":["../../src/css/postcss.helpers.ts"],"sourcesContent":["const COLOR_MODE_RE = /^(\\.(uds-color-mode-(?:dark|light)))(\\s+.+)?$/;\n\nconst escapeForRegExp = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\ntype ScopedColorModeSelectorVariant = 'descendant' | 'same-element';\n\nconst SCOPED_SELF_OR_PARENT_RE = /^(\\.[^\\s>+~]+)(.*)$/;\n\nconst getScopedColorModeAlternativeSelector = (\n selector: string,\n scopeClass: string,\n variant: ScopedColorModeSelectorVariant = 'descendant',\n): string | null => {\n const scopeMatch = selector.match(new RegExp(`^(${escapeForRegExp(scopeClass)})\\\\s+(.+)$`));\n\n if (!scopeMatch) {\n return null;\n }\n\n const afterScope = scopeMatch[2];\n const colorModeMatch = afterScope.match(COLOR_MODE_RE);\n if (!colorModeMatch) {\n return null;\n }\n\n const colorModeClass = colorModeMatch[1];\n const rest = colorModeMatch[3] ?? '';\n return variant === 'same-element'\n ? `${colorModeClass}${scopeClass}${rest}`\n : `${colorModeClass} ${scopeClass}${rest}`;\n};\n\nconst buildScopedColorModeSelectorList = (ruleSelector: string, scopeClass: string): string => {\n const selectors = ruleSelector.split(',').map((value) => value.trim());\n const nextSelectors = selectors.reduce<string[]>((acc, selector) => {\n const altSelectors = [\n getScopedColorModeAlternativeSelector(selector, scopeClass),\n getScopedColorModeAlternativeSelector(selector, scopeClass, 'same-element'),\n ].filter((value): value is string => Boolean(value));\n const nextAltSelectors = altSelectors.filter(\n (altSelector) => !selectors.includes(altSelector) && !acc.includes(altSelector),\n );\n\n return [...acc, selector, ...nextAltSelectors];\n }, []);\n\n return nextSelectors.join(', ');\n};\n\nconst getScopedSelfOrParentAlternativeSelector = (\n selector: string,\n scopeClass: string,\n): string | null => {\n const scopeMatch = selector.match(new RegExp(`^(${escapeForRegExp(scopeClass)})\\\\s+(.+)$`));\n\n if (!scopeMatch) {\n return null;\n }\n\n const afterScope = scopeMatch[2];\n const targetMatch = afterScope.match(SCOPED_SELF_OR_PARENT_RE);\n if (!targetMatch) {\n return null;\n }\n\n const scopedTarget = targetMatch[1];\n if (/^\\.uds-color-mode-(?:dark|light)(?:$|[.#[:])/.test(scopedTarget)) {\n return null;\n }\n\n return `${scopeClass}${scopedTarget}${targetMatch[2]}`;\n};\n\nconst buildScopedSelfOrParentSelectorList = (ruleSelector: string, scopeClass: string): string => {\n const selectors = ruleSelector.split(',').map((value) => value.trim());\n const nextSelectors = selectors.reduce<string[]>((acc, selector) => {\n const sameElementSelector = getScopedSelfOrParentAlternativeSelector(selector, scopeClass);\n const nextAltSelectors: string[] = [];\n\n if (\n sameElementSelector &&\n !selectors.includes(sameElementSelector) &&\n !acc.includes(sameElementSelector)\n ) {\n nextAltSelectors.push(sameElementSelector);\n }\n\n return [...acc, selector, ...nextAltSelectors];\n }, []);\n\n return nextSelectors.join(', ');\n};\n\nexport {\n buildScopedColorModeSelectorList,\n buildScopedSelfOrParentSelectorList,\n getScopedColorModeAlternativeSelector,\n getScopedSelfOrParentAlternativeSelector,\n};\n"],"mappings":";;AAAA,MAAM,gBAAgB;AAEtB,MAAM,mBAAmB,UAA0B,MAAM,QAAQ,uBAAuB,OAAO;AAI/F,MAAM,2BAA2B;AAEjC,MAAM,yCACJ,UACA,YACA,UAA0C,iBACxB;CAClB,MAAM,aAAa,SAAS,MAAM,IAAI,OAAO,KAAK,gBAAgB,WAAW,CAAC,YAAY,CAAC;AAE3F,KAAI,CAAC,WACH,QAAO;CAIT,MAAM,iBADa,WAAW,GACI,MAAM,cAAc;AACtD,KAAI,CAAC,eACH,QAAO;CAGT,MAAM,iBAAiB,eAAe;CACtC,MAAM,OAAO,eAAe,MAAM;AAClC,QAAO,YAAY,iBACf,GAAG,iBAAiB,aAAa,SACjC,GAAG,eAAe,GAAG,aAAa;;AAGxC,MAAM,oCAAoC,cAAsB,eAA+B;CAC7F,MAAM,YAAY,aAAa,MAAM,IAAI,CAAC,KAAK,UAAU,MAAM,MAAM,CAAC;AAatE,QAZsB,UAAU,QAAkB,KAAK,aAAa;EAKlE,MAAM,mBAJe,CACnB,sCAAsC,UAAU,WAAW,EAC3D,sCAAsC,UAAU,YAAY,eAAe,CAC5E,CAAC,QAAQ,UAA2B,QAAQ,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"postcss.helpers.js","names":[],"sources":["../../src/css/postcss.helpers.ts"],"sourcesContent":["const COLOR_MODE_RE = /^(\\.(uds-color-mode-(?:dark|light)))(\\s+.+)?$/;\n\nconst escapeForRegExp = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\ntype ScopedColorModeSelectorVariant = 'descendant' | 'same-element';\n\nconst SCOPED_SELF_OR_PARENT_RE = /^(\\.[^\\s>+~]+)(.*)$/;\n\nconst getScopedColorModeAlternativeSelector = (\n selector: string,\n scopeClass: string,\n variant: ScopedColorModeSelectorVariant = 'descendant',\n): string | null => {\n const scopeMatch = selector.match(new RegExp(`^(${escapeForRegExp(scopeClass)})\\\\s+(.+)$`));\n\n if (!scopeMatch) {\n return null;\n }\n\n const afterScope = scopeMatch[2];\n const colorModeMatch = afterScope.match(COLOR_MODE_RE);\n if (!colorModeMatch) {\n return null;\n }\n\n const colorModeClass = colorModeMatch[1];\n const rest = colorModeMatch[3] ?? '';\n return variant === 'same-element'\n ? `${colorModeClass}${scopeClass}${rest}`\n : `${colorModeClass} ${scopeClass}${rest}`;\n};\n\nconst buildScopedColorModeSelectorList = (ruleSelector: string, scopeClass: string): string => {\n const selectors = ruleSelector.split(',').map((value) => value.trim());\n const nextSelectors = selectors.reduce<string[]>((acc, selector) => {\n const altSelectors = [\n getScopedColorModeAlternativeSelector(selector, scopeClass),\n getScopedColorModeAlternativeSelector(selector, scopeClass, 'same-element'),\n ].filter((value): value is string => Boolean(value));\n const nextAltSelectors = altSelectors.filter(\n (altSelector) => !selectors.includes(altSelector) && !acc.includes(altSelector),\n );\n\n return [...acc, selector, ...nextAltSelectors];\n }, []);\n\n return nextSelectors.join(', ');\n};\n\nconst getScopedSelfOrParentAlternativeSelector = (\n selector: string,\n scopeClass: string,\n): string | null => {\n const scopeMatch = selector.match(new RegExp(`^(${escapeForRegExp(scopeClass)})\\\\s+(.+)$`));\n\n if (!scopeMatch) {\n return null;\n }\n\n const afterScope = scopeMatch[2];\n const targetMatch = afterScope.match(SCOPED_SELF_OR_PARENT_RE);\n if (!targetMatch) {\n return null;\n }\n\n const scopedTarget = targetMatch[1];\n if (/^\\.uds-color-mode-(?:dark|light)(?:$|[.#[:])/.test(scopedTarget)) {\n return null;\n }\n\n return `${scopeClass}${scopedTarget}${targetMatch[2]}`;\n};\n\nconst buildScopedSelfOrParentSelectorList = (ruleSelector: string, scopeClass: string): string => {\n const selectors = ruleSelector.split(',').map((value) => value.trim());\n const nextSelectors = selectors.reduce<string[]>((acc, selector) => {\n const sameElementSelector = getScopedSelfOrParentAlternativeSelector(selector, scopeClass);\n const nextAltSelectors: string[] = [];\n\n if (\n sameElementSelector &&\n !selectors.includes(sameElementSelector) &&\n !acc.includes(sameElementSelector)\n ) {\n nextAltSelectors.push(sameElementSelector);\n }\n\n return [...acc, selector, ...nextAltSelectors];\n }, []);\n\n return nextSelectors.join(', ');\n};\n\nexport {\n buildScopedColorModeSelectorList,\n buildScopedSelfOrParentSelectorList,\n getScopedColorModeAlternativeSelector,\n getScopedSelfOrParentAlternativeSelector,\n};\n"],"mappings":";;AAAA,MAAM,gBAAgB;AAEtB,MAAM,mBAAmB,UAA0B,MAAM,QAAQ,uBAAuB,OAAO;AAI/F,MAAM,2BAA2B;AAEjC,MAAM,yCACJ,UACA,YACA,UAA0C,iBACxB;CAClB,MAAM,aAAa,SAAS,MAAM,IAAI,OAAO,KAAK,gBAAgB,WAAW,CAAC,YAAY,CAAC;AAE3F,KAAI,CAAC,WACH,QAAO;CAIT,MAAM,iBADa,WAAW,GACI,MAAM,cAAc;AACtD,KAAI,CAAC,eACH,QAAO;CAGT,MAAM,iBAAiB,eAAe;CACtC,MAAM,OAAO,eAAe,MAAM;AAClC,QAAO,YAAY,iBACf,GAAG,iBAAiB,aAAa,SACjC,GAAG,eAAe,GAAG,aAAa;;AAGxC,MAAM,oCAAoC,cAAsB,eAA+B;CAC7F,MAAM,YAAY,aAAa,MAAM,IAAI,CAAC,KAAK,UAAU,MAAM,MAAM,CAAC;AAatE,QAZsB,UAAU,QAAkB,KAAK,aAAa;EAKlE,MAAM,mBAJe,CACnB,sCAAsC,UAAU,WAAW,EAC3D,sCAAsC,UAAU,YAAY,eAAe,CAC5E,CAAC,QAAQ,UAA2B,QAAQ,MAAM,CACd,CAAC,QACnC,gBAAgB,CAAC,UAAU,SAAS,YAAY,IAAI,CAAC,IAAI,SAAS,YAAY,CAChF;AAED,SAAO;GAAC,GAAG;GAAK;GAAU,GAAG;GAAiB;IAC7C,EAAE,CAEe,CAAC,KAAK,KAAK;;AAGjC,MAAM,4CACJ,UACA,eACkB;CAClB,MAAM,aAAa,SAAS,MAAM,IAAI,OAAO,KAAK,gBAAgB,WAAW,CAAC,YAAY,CAAC;AAE3F,KAAI,CAAC,WACH,QAAO;CAIT,MAAM,cADa,WAAW,GACC,MAAM,yBAAyB;AAC9D,KAAI,CAAC,YACH,QAAO;CAGT,MAAM,eAAe,YAAY;AACjC,KAAI,+CAA+C,KAAK,aAAa,CACnE,QAAO;AAGT,QAAO,GAAG,aAAa,eAAe,YAAY"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
2
|
import { buildScopedColorModeSelectorList, getScopedSelfOrParentAlternativeSelector } from "./postcss.helpers.js";
|
|
3
|
-
|
|
4
3
|
//#region src/css/postcss.ts
|
|
5
4
|
const fixScopedSelfOrParentSelectorsPlugin = (scopeClass) => {
|
|
6
5
|
return {
|
|
@@ -49,7 +48,7 @@ const fixScopedColorModeSelectorsPlugin = (scopeClass) => {
|
|
|
49
48
|
}
|
|
50
49
|
};
|
|
51
50
|
};
|
|
52
|
-
|
|
53
51
|
//#endregion
|
|
54
52
|
export { fixScopedColorModeSelectorsPlugin, fixScopedSelfOrParentSelectorsPlugin };
|
|
53
|
+
|
|
55
54
|
//# sourceMappingURL=postcss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postcss.js","names":[],"sources":["../../src/css/postcss.ts"],"sourcesContent":["import type postcss from 'postcss';\n\nimport {\n buildScopedColorModeSelectorList,\n getScopedSelfOrParentAlternativeSelector,\n} from './postcss.helpers';\n\nconst fixScopedSelfOrParentSelectorsPlugin = (scopeClass: string): postcss.Plugin => {\n return {\n postcssPlugin: 'fix-scoped-self-or-parent-selectors',\n Once(root) {\n root.walkRules((rule) => {\n if (!rule.selector.includes(scopeClass)) {\n return;\n }\n\n const nextSelectors = rule.selectors.reduce<string[]>((acc, selector) => {\n const sameElementSelector = getScopedSelfOrParentAlternativeSelector(\n selector,\n scopeClass,\n );\n\n if (sameElementSelector && !rule.selectors.includes(sameElementSelector)) {\n return [...acc, selector, sameElementSelector];\n }\n\n return [...acc, selector];\n }, []);\n\n if (nextSelectors.length !== rule.selectors.length) {\n rule.selectors = nextSelectors;\n }\n });\n },\n };\n};\n\n/**\n * PostCSS plugin to fix color mode selectors for scoped CSS.\n *\n * postcss-scope converts selectors like:\n * `.uds-color-mode-dark .foo` → `.scope .uds-color-mode-dark .foo`\n *\n * But the color mode class is typically on <html> or <body>, which is an\n * ANCESTOR of the scope, not a descendant. This plugin adds alternative\n * selectors so color modes work correctly:\n *\n * `.scope .uds-color-mode-dark .foo` → `.scope .uds-color-mode-dark .foo, .uds-color-mode-dark .scope .foo, .uds-color-mode-dark.scope .foo`\n *\n * This ensures styles apply whether the color mode class is inside or outside the scope.\n */\nconst fixScopedColorModeSelectorsPlugin = (scopeClass: string): postcss.Plugin => {\n const colorModePattern = /\\.(uds-color-mode-(?:dark|light))/;\n\n return {\n postcssPlugin: 'fix-scoped-color-mode-selectors',\n // Use Once to process all rules after parsing is complete\n Once(root) {\n root.walkRules((rule) => {\n // Skip if selector doesn't contain both scope and color mode\n if (!rule.selector.includes(scopeClass) || !colorModePattern.test(rule.selector)) {\n return;\n }\n\n const nextSelector = buildScopedColorModeSelectorList(rule.selector, scopeClass);\n if (nextSelector !== rule.selector) {\n rule.selector = nextSelector;\n }\n });\n },\n };\n};\nexport { fixScopedColorModeSelectorsPlugin, fixScopedSelfOrParentSelectorsPlugin };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"postcss.js","names":[],"sources":["../../src/css/postcss.ts"],"sourcesContent":["import type postcss from 'postcss';\n\nimport {\n buildScopedColorModeSelectorList,\n getScopedSelfOrParentAlternativeSelector,\n} from './postcss.helpers';\n\nconst fixScopedSelfOrParentSelectorsPlugin = (scopeClass: string): postcss.Plugin => {\n return {\n postcssPlugin: 'fix-scoped-self-or-parent-selectors',\n Once(root) {\n root.walkRules((rule) => {\n if (!rule.selector.includes(scopeClass)) {\n return;\n }\n\n const nextSelectors = rule.selectors.reduce<string[]>((acc, selector) => {\n const sameElementSelector = getScopedSelfOrParentAlternativeSelector(\n selector,\n scopeClass,\n );\n\n if (sameElementSelector && !rule.selectors.includes(sameElementSelector)) {\n return [...acc, selector, sameElementSelector];\n }\n\n return [...acc, selector];\n }, []);\n\n if (nextSelectors.length !== rule.selectors.length) {\n rule.selectors = nextSelectors;\n }\n });\n },\n };\n};\n\n/**\n * PostCSS plugin to fix color mode selectors for scoped CSS.\n *\n * postcss-scope converts selectors like:\n * `.uds-color-mode-dark .foo` → `.scope .uds-color-mode-dark .foo`\n *\n * But the color mode class is typically on <html> or <body>, which is an\n * ANCESTOR of the scope, not a descendant. This plugin adds alternative\n * selectors so color modes work correctly:\n *\n * `.scope .uds-color-mode-dark .foo` → `.scope .uds-color-mode-dark .foo, .uds-color-mode-dark .scope .foo, .uds-color-mode-dark.scope .foo`\n *\n * This ensures styles apply whether the color mode class is inside or outside the scope.\n */\nconst fixScopedColorModeSelectorsPlugin = (scopeClass: string): postcss.Plugin => {\n const colorModePattern = /\\.(uds-color-mode-(?:dark|light))/;\n\n return {\n postcssPlugin: 'fix-scoped-color-mode-selectors',\n // Use Once to process all rules after parsing is complete\n Once(root) {\n root.walkRules((rule) => {\n // Skip if selector doesn't contain both scope and color mode\n if (!rule.selector.includes(scopeClass) || !colorModePattern.test(rule.selector)) {\n return;\n }\n\n const nextSelector = buildScopedColorModeSelectorList(rule.selector, scopeClass);\n if (nextSelector !== rule.selector) {\n rule.selector = nextSelector;\n }\n });\n },\n };\n};\nexport { fixScopedColorModeSelectorsPlugin, fixScopedSelfOrParentSelectorsPlugin };\n"],"mappings":";;;AAOA,MAAM,wCAAwC,eAAuC;AACnF,QAAO;EACL,eAAe;EACf,KAAK,MAAM;AACT,QAAK,WAAW,SAAS;AACvB,QAAI,CAAC,KAAK,SAAS,SAAS,WAAW,CACrC;IAGF,MAAM,gBAAgB,KAAK,UAAU,QAAkB,KAAK,aAAa;KACvE,MAAM,sBAAsB,yCAC1B,UACA,WACD;AAED,SAAI,uBAAuB,CAAC,KAAK,UAAU,SAAS,oBAAoB,CACtE,QAAO;MAAC,GAAG;MAAK;MAAU;MAAoB;AAGhD,YAAO,CAAC,GAAG,KAAK,SAAS;OACxB,EAAE,CAAC;AAEN,QAAI,cAAc,WAAW,KAAK,UAAU,OAC1C,MAAK,YAAY;KAEnB;;EAEL;;;;;;;;;;;;;;;;AAiBH,MAAM,qCAAqC,eAAuC;CAChF,MAAM,mBAAmB;AAEzB,QAAO;EACL,eAAe;EAEf,KAAK,MAAM;AACT,QAAK,WAAW,SAAS;AAEvB,QAAI,CAAC,KAAK,SAAS,SAAS,WAAW,IAAI,CAAC,iBAAiB,KAAK,KAAK,SAAS,CAC9E;IAGF,MAAM,eAAe,iCAAiC,KAAK,UAAU,WAAW;AAChF,QAAI,iBAAiB,KAAK,SACxB,MAAK,WAAW;KAElB;;EAEL"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
/*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
|
|
2
|
-
const require_runtime = require(
|
|
3
|
-
const require_colors = require(
|
|
4
|
-
const require_print = require(
|
|
5
|
-
const require_spinner = require(
|
|
6
|
-
const require_logger = require(
|
|
7
|
-
const require_entryPoints = require(
|
|
8
|
-
const require_nodeUtils = require(
|
|
9
|
-
const require_index = require(
|
|
10
|
-
const require_safelist = require(
|
|
11
|
-
const require_runner_helpers = require(
|
|
12
|
-
const require_utils = require(
|
|
13
|
-
const require_generate_helpers = require(
|
|
14
|
-
const require_generate = require(
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_colors = require("../cli/dist/lib/colors.cjs");
|
|
4
|
+
const require_print = require("../cli/dist/lib/print.cjs");
|
|
5
|
+
const require_spinner = require("../cli/dist/lib/spinner.cjs");
|
|
6
|
+
const require_logger = require("../cli/dist/lib/logger.cjs");
|
|
7
|
+
const require_entryPoints = require("../utils/entryPoints.cjs");
|
|
8
|
+
const require_nodeUtils = require("./nodeUtils.cjs");
|
|
9
|
+
const require_index = require("../config/dist/index.cjs");
|
|
10
|
+
const require_safelist = require("../purger/optimized/utils/safelist.cjs");
|
|
11
|
+
const require_runner_helpers = require("./runner.helpers.cjs");
|
|
12
|
+
const require_utils = require("./utils.cjs");
|
|
13
|
+
const require_generate_helpers = require("./generate.helpers.cjs");
|
|
14
|
+
const require_generate = require("./generate.cjs");
|
|
15
15
|
let node_fs = require("node:fs");
|
|
16
|
-
node_fs = require_runtime.__toESM(node_fs);
|
|
17
|
-
|
|
16
|
+
node_fs = require_runtime.__toESM(node_fs, 1);
|
|
18
17
|
//#region src/css/runner.ts
|
|
19
18
|
const getScopedPackageOutputPath = (packageName, outFile) => {
|
|
20
19
|
if (typeof outFile === "string" && outFile.trim().length > 0) return outFile;
|
|
@@ -136,7 +135,7 @@ const runCssCommand = async (options, context) => {
|
|
|
136
135
|
await runThemeMode(options, context);
|
|
137
136
|
};
|
|
138
137
|
const runSimpleMode = async (options, context) => {
|
|
139
|
-
const entry = options.entryOption ??
|
|
138
|
+
const entry = options.entryOption ?? "./src";
|
|
140
139
|
const configPath = typeof options.configOption === "string" ? options.configOption : void 0;
|
|
141
140
|
if (!options.watch && !options.silent) require_spinner.spinStart("Generating CSS...");
|
|
142
141
|
try {
|
|
@@ -467,6 +466,5 @@ const runThemeMode = async (options, context) => {
|
|
|
467
466
|
process.exitCode = 1;
|
|
468
467
|
}
|
|
469
468
|
};
|
|
470
|
-
|
|
471
469
|
//#endregion
|
|
472
|
-
exports.runCssCommand = runCssCommand;
|
|
470
|
+
exports.runCssCommand = runCssCommand;
|