@phcdevworks/spectre-ui 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -0
- package/README.md +32 -2
- package/dist/base.css +18 -0
- package/dist/components.css +149 -0
- package/dist/index.cjs +94 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +221 -0
- package/dist/index.d.cts +46 -2
- package/dist/index.d.ts +46 -2
- package/dist/index.js +90 -5
- package/dist/index.js.map +1 -1
- package/dist/utilities.css +90 -0
- package/package.json +2 -2
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/css-constants.ts","../src/internal/cx.ts","../src/internal/resolve-option.ts","../src/recipes/button.ts","../src/recipes/card.ts","../src/recipes/input.ts","../src/recipes/badge.ts","../src/recipes/iconbox.ts","../src/recipes/testimonial.ts","../src/recipes/pricing-card.ts","../src/recipes/rating.ts","../src/recipes/alert.ts","../src/recipes/avatar.ts","../src/recipes/tag.ts","../src/recipes/spinner.ts","../src/recipes/nav.ts","../src/recipes/toast.ts","../src/recipes/tooltip.ts","../src/recipes/dropdown.ts","../src/recipes/modal.ts","../src/recipes/container.ts","../src/recipes/stack.ts","../src/recipes/section.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export const spectreBaseStylesPath = \"@phcdevworks/spectre-ui/base.css\";\nexport const spectreComponentsStylesPath = \"@phcdevworks/spectre-ui/components.css\";\nexport const spectreUtilitiesStylesPath = \"@phcdevworks/spectre-ui/utilities.css\";\nexport const spectreIndexStylesPath = \"@phcdevworks/spectre-ui/index.css\";\n\nexport const spectreStyles = {\n index: spectreIndexStylesPath,\n base: spectreBaseStylesPath,\n components: spectreComponentsStylesPath,\n utilities: spectreUtilitiesStylesPath,\n};\n","export function cx(...parts: Array<string | false | null | undefined>): string {\n const seen = new Set<string>();\n const classes: string[] = [];\n\n for (const part of parts) {\n if (!part) continue;\n const trimmed = part.trim();\n if (!trimmed) continue;\n\n if (!/\\s/.test(trimmed)) {\n if (!seen.has(trimmed)) {\n seen.add(trimmed);\n classes.push(trimmed);\n }\n continue;\n }\n\n for (const token of trimmed.split(/\\s+/)) {\n if (!token || seen.has(token)) continue;\n seen.add(token);\n classes.push(token);\n }\n }\n\n return classes.join(\" \");\n}\n","type AllowedValues<T extends string> = readonly T[] | Record<T, unknown>;\n\nconst hasOwn = (value: object, key: string): boolean =>\n Object.prototype.hasOwnProperty.call(value, key);\n\nconst isAllowedValue = <T extends string>(value: T, allowed: AllowedValues<T>): boolean =>\n Array.isArray(allowed) ? allowed.includes(value) : hasOwn(allowed, value);\n\nexport function resolveOption<T extends string>(config: {\n name: string;\n value: T | undefined;\n allowed: AllowedValues<T>;\n fallback: T;\n}): T {\n const { name, value, allowed, fallback } = config;\n\n if (value === undefined) return fallback;\n if (isAllowedValue(value, allowed)) return value;\n\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[spectre-ui] Unknown ${name}: ${value}`);\n }\n\n return fallback;\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BUTTON_VARIANTS = {\n primary: true,\n secondary: true,\n ghost: true,\n danger: true,\n success: true,\n cta: true,\n accent: true,\n} as const;\n\nconst BUTTON_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type ButtonVariant = keyof typeof BUTTON_VARIANTS;\nexport type ButtonSize = keyof typeof BUTTON_SIZES;\n\nexport interface ButtonRecipeOptions {\n variant?: ButtonVariant;\n size?: ButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n iconOnly?: boolean;\n pill?: boolean;\n}\n\nexport function getButtonClasses(opts: ButtonRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n fullWidth = false,\n loading = false,\n disabled = false,\n hovered = false,\n focused = false,\n active = false,\n iconOnly = false,\n pill = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"button variant\",\n value: variantInput,\n allowed: BUTTON_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"button size\",\n value: sizeInput,\n allowed: BUTTON_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<ButtonVariant, string> = {\n primary: \"sp-btn--primary\",\n secondary: \"sp-btn--secondary\",\n ghost: \"sp-btn--ghost\",\n danger: \"sp-btn--danger\",\n success: \"sp-btn--success\",\n cta: \"sp-btn--cta\",\n accent: \"sp-btn--accent\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"sp-btn--sm\",\n md: \"sp-btn--md\",\n lg: \"sp-btn--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-btn\",\n variantClass,\n sizeClass,\n fullWidth && \"sp-btn--full\",\n loading && \"sp-btn--loading\",\n disabled && \"sp-btn--disabled\",\n hovered && \"sp-btn--hover is-hover\",\n focused && \"sp-btn--focus is-focus\",\n active && \"sp-btn--active is-active\",\n iconOnly && \"sp-btn--icon\",\n pill && \"sp-btn--pill\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst CARD_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\nexport interface CardRecipeOptions {\n variant?: CardVariant;\n interactive?: boolean;\n padded?: boolean;\n fullHeight?: boolean;\n disabled?: boolean;\n loading?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n}\n\nexport function getCardClasses(opts: CardRecipeOptions = {}): string {\n const {\n variant: variantInput,\n interactive = false,\n padded = false,\n fullHeight = false,\n disabled = false,\n loading = false,\n hovered = false,\n focused = false,\n active = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"card variant\",\n value: variantInput,\n allowed: CARD_VARIANTS,\n fallback: \"elevated\",\n });\n\n const variantMap: Record<CardVariant, string> = {\n elevated: \"sp-card--elevated\",\n flat: \"sp-card--flat\",\n outline: \"sp-card--outline\",\n ghost: \"sp-card--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-card\",\n variantClass,\n interactive && \"sp-card--interactive\",\n padded && \"sp-card--padded\",\n fullHeight && \"sp-card--full\",\n disabled && \"sp-card--disabled\",\n loading && \"sp-card--loading\",\n hovered && \"sp-card--hover is-hover\",\n focused && \"sp-card--focus is-focus\",\n active && \"sp-card--active is-active\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst INPUT_STATES = {\n default: true,\n error: true,\n success: true,\n disabled: true,\n loading: true,\n} as const;\n\nconst INPUT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type InputState = keyof typeof INPUT_STATES;\nexport type InputSize = keyof typeof INPUT_SIZES;\n\nexport interface InputRecipeOptions {\n state?: InputState;\n size?: InputSize;\n fullWidth?: boolean;\n pill?: boolean;\n focused?: boolean;\n hovered?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport function getInputClasses(opts: InputRecipeOptions = {}): string {\n const {\n state: stateInput,\n size: sizeInput,\n fullWidth = false,\n pill = false,\n focused = false,\n hovered = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts;\n\n const state = resolveOption({\n name: \"input state\",\n value: stateInput,\n allowed: INPUT_STATES,\n fallback: \"default\",\n });\n const size = resolveOption({\n name: \"input size\",\n value: sizeInput,\n allowed: INPUT_SIZES,\n fallback: \"md\",\n });\n\n const sizeMap: Record<InputSize, string> = {\n sm: \"sp-input--sm\",\n md: \"sp-input--md\",\n lg: \"sp-input--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-input\",\n sizeClass,\n state === \"error\" && \"sp-input--error\",\n state === \"success\" && \"sp-input--success\",\n // Visual state only; actual disabled attribute is handled by adapters.\n (state === \"disabled\" || disabled) && \"sp-input--disabled\",\n (state === \"loading\" || loading) && \"sp-input--loading\",\n focused && \"sp-input--focus is-focus\",\n hovered && \"sp-input--hover is-hover\",\n active && \"sp-input--active is-active\",\n fullWidth && \"sp-input--full\",\n pill && \"sp-input--pill\",\n );\n}\n\nexport function getInputWrapperClasses(): string {\n return cx(\"sp-input-wrapper\");\n}\n\nexport function getInputLabelClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-label\",\n disabled && \"sp-label--disabled\"\n );\n}\n\nexport function getInputHelperTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-helper-text\",\n disabled && \"sp-helper-text--disabled\"\n );\n}\n\nexport function getInputErrorMessageClasses(): string {\n return cx(\"sp-error-message\");\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BADGE_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n info: true,\n ghost: true,\n outline: true,\n accent: true,\n cta: true,\n} as const;\n\nconst BADGE_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type BadgeVariant = keyof typeof BADGE_VARIANTS;\nexport type BadgeSize = keyof typeof BADGE_SIZES;\n\nexport interface BadgeRecipeOptions {\n variant?: BadgeVariant;\n size?: BadgeSize;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getBadgeClasses(opts: BadgeRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"badge variant\",\n value: variantInput,\n allowed: BADGE_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"badge size\",\n value: sizeInput,\n allowed: BADGE_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<BadgeVariant, string> = {\n primary: \"sp-badge--primary\",\n secondary: \"sp-badge--secondary\",\n success: \"sp-badge--success\",\n warning: \"sp-badge--warning\",\n danger: \"sp-badge--danger\",\n neutral: \"sp-badge--neutral\",\n info: \"sp-badge--info\",\n ghost: \"sp-badge--ghost\",\n outline: \"sp-badge--outline\",\n accent: \"sp-badge--accent\",\n cta: \"sp-badge--cta\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<BadgeSize, string> = {\n sm: \"sp-badge--sm\",\n md: \"sp-badge--md\",\n lg: \"sp-badge--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-badge\",\n variantClass,\n sizeClass,\n interactive && \"sp-badge--interactive\",\n hovered && \"sp-badge--hover is-hover\",\n focused && \"sp-badge--focus is-focus\",\n active && \"sp-badge--active is-active\",\n disabled && \"sp-badge--disabled\",\n loading && \"sp-badge--loading\",\n fullWidth && \"sp-badge--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst ICONBOX_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n ghost: true,\n accent: true,\n cta: true,\n outline: true,\n} as const;\n\nconst ICONBOX_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type IconBoxVariant = keyof typeof ICONBOX_VARIANTS;\nexport type IconBoxSize = keyof typeof ICONBOX_SIZES;\n\nexport interface IconBoxRecipeOptions {\n variant?: IconBoxVariant;\n size?: IconBoxSize;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n pill?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getIconBoxClasses(opts: IconBoxRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"icon box variant\",\n value: variantInput,\n allowed: ICONBOX_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"icon box size\",\n value: sizeInput,\n allowed: ICONBOX_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<IconBoxVariant, string> = {\n primary: \"sp-iconbox--primary\",\n secondary: \"sp-iconbox--secondary\",\n success: \"sp-iconbox--success\",\n warning: \"sp-iconbox--warning\",\n danger: \"sp-iconbox--danger\",\n info: \"sp-iconbox--info\",\n neutral: \"sp-iconbox--neutral\",\n ghost: \"sp-iconbox--ghost\",\n accent: \"sp-iconbox--accent\",\n cta: \"sp-iconbox--cta\",\n outline: \"sp-iconbox--outline\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<IconBoxSize, string> = {\n xs: \"sp-iconbox--xs\",\n sm: \"sp-iconbox--sm\",\n md: \"sp-iconbox--md\",\n lg: \"sp-iconbox--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-iconbox\",\n variantClass,\n sizeClass,\n disabled && \"sp-iconbox--disabled\",\n loading && \"sp-iconbox--loading\",\n interactive && \"sp-iconbox--interactive\",\n hovered && \"sp-iconbox--hover is-hover\",\n focused && \"sp-iconbox--focus is-focus\",\n active && \"sp-iconbox--active is-active\",\n pill && \"sp-iconbox--pill\",\n fullWidth && \"sp-iconbox--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst TESTIMONIAL_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;\n\nexport interface TestimonialRecipeOptions {\n variant?: TestimonialVariant;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n fullHeight?: boolean;\n}\n\nexport function getTestimonialClasses(opts: TestimonialRecipeOptions = {}): string {\n const {\n variant: variantInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"testimonial variant\",\n value: variantInput,\n allowed: TESTIMONIAL_VARIANTS,\n fallback: \"outline\",\n });\n\n const variantMap: Record<TestimonialVariant, string> = {\n elevated: \"sp-testimonial--elevated\",\n flat: \"sp-testimonial--flat\",\n outline: \"sp-testimonial--outline\",\n ghost: \"sp-testimonial--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-testimonial\",\n variantClass,\n disabled && \"sp-testimonial--disabled\",\n loading && \"sp-testimonial--loading\",\n interactive && \"sp-testimonial--interactive\",\n hovered && \"sp-testimonial--hover is-hover\",\n focused && \"sp-testimonial--focus is-focus\",\n active && \"sp-testimonial--active is-active\",\n fullHeight && \"sp-testimonial--full\"\n );\n}\n\nexport function getTestimonialQuoteClasses(): string {\n return cx(\"sp-testimonial-quote\");\n}\n\nexport function getTestimonialAuthorClasses(): string {\n return cx(\"sp-testimonial-author\");\n}\n\nexport function getTestimonialAuthorInfoClasses(): string {\n return cx(\"sp-testimonial-author-info\");\n}\n\nexport function getTestimonialAuthorNameClasses(): string {\n return cx(\"sp-testimonial-author-name\");\n}\n\nexport function getTestimonialAuthorTitleClasses(): string {\n return cx(\"sp-testimonial-author-title\");\n}\n","import { cx } from '../internal/cx'\n\nexport interface PricingCardRecipeOptions {\n featured?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullHeight?: boolean\n}\n\nexport function getPricingCardClasses(opts: PricingCardRecipeOptions = {}): string {\n const {\n featured = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts\n\n return cx(\n 'sp-pricing-card',\n featured && 'sp-pricing-card--featured',\n disabled && 'sp-pricing-card--disabled',\n loading && 'sp-pricing-card--loading',\n interactive && 'sp-pricing-card--interactive',\n hovered && 'sp-pricing-card--hover is-hover',\n focused && 'sp-pricing-card--focus is-focus',\n active && 'sp-pricing-card--active is-active',\n fullHeight && 'sp-pricing-card--full'\n )\n}\n\nexport function getPricingCardBadgeClasses(): string {\n return cx('sp-pricing-card-badge')\n}\n\nexport function getPricingCardPriceContainerClasses(): string {\n return cx('sp-pricing-card-price-container')\n}\n\nexport function getPricingCardPriceClasses(): string {\n return cx('sp-pricing-card-price')\n}\n\nexport function getPricingCardDescriptionClasses(): string {\n return cx('sp-pricing-card-description')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst RATING_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type RatingSize = keyof typeof RATING_SIZES\n\nexport interface RatingRecipeOptions {\n size?: RatingSize\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n pill?: boolean\n fullWidth?: boolean\n}\n\nexport function getRatingClasses(opts: RatingRecipeOptions = {}): string {\n const {\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts\n\n const size = resolveOption({\n name: 'rating size',\n value: sizeInput,\n allowed: RATING_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-rating',\n `sp-rating--${size}`,\n disabled && 'sp-rating--disabled',\n loading && 'sp-rating--loading',\n interactive && 'sp-rating--interactive',\n hovered && 'sp-rating--hover is-hover',\n focused && 'sp-rating--focus is-focus',\n active && 'sp-rating--active is-active',\n pill && 'sp-rating--pill',\n fullWidth && 'sp-rating--full'\n )\n}\n\nexport function getRatingStarsClasses(): string {\n return cx('sp-rating-stars')\n}\n\nexport function getRatingStarClasses(isFilled: boolean = false): string {\n return cx('sp-rating-star', isFilled && 'sp-rating-star--filled')\n}\n\nexport function getRatingTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts\n return cx('sp-rating-text', disabled && 'sp-rating-text--disabled')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst ALERT_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n} as const\n\nconst ALERT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS\nexport type AlertSize = keyof typeof ALERT_SIZES\n\nexport interface AlertRecipeOptions {\n variant?: AlertVariant\n size?: AlertSize\n dismissed?: boolean\n fullWidth?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getAlertClasses(opts: AlertRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissed = false,\n fullWidth = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts\n\n const variant = resolveOption({\n name: 'alert variant',\n value: variantInput,\n allowed: ALERT_VARIANTS,\n fallback: 'info',\n })\n\n const size = resolveOption({\n name: 'alert size',\n value: sizeInput,\n allowed: ALERT_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-alert',\n `sp-alert--${variant}`,\n `sp-alert--${size}`,\n dismissed && 'sp-alert--dismissed',\n fullWidth && 'sp-alert--full',\n interactive && 'sp-alert--interactive',\n hovered && 'sp-alert--hover is-hover',\n focused && 'sp-alert--focus is-focus',\n active && 'sp-alert--active is-active',\n disabled && 'sp-alert--disabled',\n loading && 'sp-alert--loading'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst AVATAR_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n} as const\n\nconst AVATAR_SHAPES = {\n circle: true,\n square: true,\n} as const\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES\nexport type AvatarShape = keyof typeof AVATAR_SHAPES\n\nexport interface AvatarRecipeOptions {\n size?: AvatarSize\n shape?: AvatarShape\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n placeholder?: boolean\n}\n\nexport function getAvatarClasses(opts: AvatarRecipeOptions = {}): string {\n const {\n size: sizeInput,\n shape: shapeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n placeholder = false,\n } = opts\n\n const size = resolveOption({\n name: 'avatar size',\n value: sizeInput,\n allowed: AVATAR_SIZES,\n fallback: 'md',\n })\n\n const shape = resolveOption({\n name: 'avatar shape',\n value: shapeInput,\n allowed: AVATAR_SHAPES,\n fallback: 'circle',\n })\n\n return cx(\n 'sp-avatar',\n `sp-avatar--${size}`,\n `sp-avatar--${shape}`,\n disabled && 'sp-avatar--disabled',\n loading && 'sp-avatar--loading',\n interactive && 'sp-avatar--interactive',\n hovered && 'sp-avatar--hover is-hover',\n focused && 'sp-avatar--focus is-focus',\n active && 'sp-avatar--active is-active',\n fullWidth && 'sp-avatar--full',\n placeholder && 'sp-avatar--placeholder'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TAG_VARIANTS = {\n default: true,\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n outline: true,\n ghost: true,\n} as const\n\nconst TAG_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type TagVariant = keyof typeof TAG_VARIANTS\nexport type TagSize = keyof typeof TAG_SIZES\n\nexport interface TagRecipeOptions {\n variant?: TagVariant\n size?: TagSize\n dismissible?: boolean\n selected?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n}\n\nexport function getTagClasses(opts: TagRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissible = false,\n selected = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n } = opts\n\n const variant = resolveOption({\n name: 'tag variant',\n value: variantInput,\n allowed: TAG_VARIANTS,\n fallback: 'default',\n })\n\n const size =\n sizeInput &&\n resolveOption({\n name: 'tag size',\n value: sizeInput,\n allowed: TAG_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-tag',\n `sp-tag--${variant}`,\n size && `sp-tag--${size}`,\n dismissible && 'sp-tag--dismissible',\n selected && 'sp-tag--selected',\n disabled && 'sp-tag--disabled',\n loading && 'sp-tag--loading',\n interactive && 'sp-tag--interactive',\n hovered && 'sp-tag--hover is-hover',\n focused && 'sp-tag--focus is-focus',\n active && 'sp-tag--active is-active',\n fullWidth && 'sp-tag--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst SPINNER_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n} as const\n\nconst SPINNER_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type SpinnerVariant = keyof typeof SPINNER_VARIANTS\nexport type SpinnerSize = keyof typeof SPINNER_SIZES\n\nexport interface SpinnerRecipeOptions {\n variant?: SpinnerVariant\n size?: SpinnerSize\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getSpinnerClasses(opts: SpinnerRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n } = opts\n\n const variant =\n variantInput &&\n resolveOption({\n name: 'spinner variant',\n value: variantInput,\n allowed: SPINNER_VARIANTS,\n fallback: 'primary',\n })\n\n const size = resolveOption({\n name: 'spinner size',\n value: sizeInput,\n allowed: SPINNER_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-spinner',\n variant && `sp-spinner--${variant}`,\n `sp-spinner--${size}`,\n disabled && 'sp-spinner--disabled',\n loading && 'sp-spinner--loading'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface NavRecipeOptions {\n bordered?: boolean\n sticky?: boolean\n fullWidth?: boolean\n}\n\nexport function getNavClasses(opts: NavRecipeOptions = {}): string {\n const { bordered = false, sticky = false, fullWidth = false } = opts\n\n return cx(\n 'sp-nav',\n bordered && 'sp-nav--bordered',\n sticky && 'sp-nav--sticky',\n fullWidth && 'sp-nav--full'\n )\n}\n\nexport function getNavLinksClasses(): string {\n return cx('sp-nav__links')\n}\n\nexport interface NavLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getNavLinkClasses(opts: NavLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-nav__link',\n active && 'sp-nav__link--active',\n disabled && 'sp-nav__link--disabled',\n hovered && 'sp-nav__link--hover is-hover',\n focused && 'sp-nav__link--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOAST_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n} as const\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastRecipeOptions {\n variant?: ToastVariant\n dismissed?: boolean\n fullWidth?: boolean\n}\n\nexport function getToastClasses(opts: ToastRecipeOptions = {}): string {\n const { variant: variantInput, dismissed = false, fullWidth = false } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx(\n 'sp-toast',\n `sp-toast--${variant}`,\n dismissed && 'sp-toast--dismissed',\n fullWidth && 'sp-toast--full'\n )\n}\n\nexport interface ToastIconRecipeOptions {\n variant?: ToastVariant\n}\n\nexport function getToastIconClasses(\n opts: ToastIconRecipeOptions = {}\n): string {\n const { variant: variantInput } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx('sp-toast__icon', `sp-toast__icon--${variant}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOOLTIP_PLACEMENTS = {\n top: true,\n bottom: true,\n left: true,\n right: true,\n} as const\n\nexport type TooltipPlacement = keyof typeof TOOLTIP_PLACEMENTS\n\nexport interface TooltipRecipeOptions {\n placement?: TooltipPlacement\n visible?: boolean\n}\n\nexport function getTooltipClasses(opts: TooltipRecipeOptions = {}): string {\n const { placement: placementInput, visible = false } = opts\n\n const placement = resolveOption({\n name: 'tooltip placement',\n value: placementInput,\n allowed: TOOLTIP_PLACEMENTS,\n fallback: 'top',\n })\n\n return cx(\n 'sp-tooltip',\n `sp-tooltip--${placement}`,\n visible && 'sp-tooltip--visible'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst DROPDOWN_PLACEMENTS = {\n 'bottom-start': true,\n 'bottom-end': true,\n 'top-start': true,\n 'top-end': true,\n} as const\n\nexport type DropdownPlacement = keyof typeof DROPDOWN_PLACEMENTS\n\nexport interface DropdownRecipeOptions {\n fullWidth?: boolean\n}\n\nexport function getDropdownClasses(opts: DropdownRecipeOptions = {}): string {\n const { fullWidth = false } = opts\n\n return cx('sp-dropdown', fullWidth && 'sp-dropdown--full')\n}\n\nexport interface DropdownMenuRecipeOptions {\n placement?: DropdownPlacement\n open?: boolean\n}\n\nexport function getDropdownMenuClasses(\n opts: DropdownMenuRecipeOptions = {}\n): string {\n const { placement: placementInput, open = false } = opts\n\n const placement = resolveOption({\n name: 'dropdown menu placement',\n value: placementInput,\n allowed: DROPDOWN_PLACEMENTS,\n fallback: 'bottom-start',\n })\n\n return cx(\n 'sp-dropdown__menu',\n `sp-dropdown__menu--${placement}`,\n open && 'sp-dropdown__menu--open'\n )\n}\n\nexport interface DropdownItemRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getDropdownItemClasses(\n opts: DropdownItemRecipeOptions = {}\n): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-dropdown__item',\n active && 'sp-dropdown__item--active',\n disabled && 'sp-dropdown__item--disabled',\n hovered && 'sp-dropdown__item--hover is-hover',\n focused && 'sp-dropdown__item--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface ModalOverlayRecipeOptions {\n open?: boolean\n}\n\nexport function getModalOverlayClasses(\n opts: ModalOverlayRecipeOptions = {}\n): string {\n const { open = false } = opts\n\n return cx('sp-modal-overlay', open && 'sp-modal-overlay--open')\n}\n\nexport interface ModalRecipeOptions {\n open?: boolean\n fullWidth?: boolean\n}\n\nexport function getModalClasses(opts: ModalRecipeOptions = {}): string {\n const { open = false, fullWidth = false } = opts\n\n return cx(\n 'sp-modal',\n open && 'sp-modal--open',\n fullWidth && 'sp-modal--full'\n )\n}\n","export interface ContainerRecipeOptions {}\n\nexport function getContainerClasses(_opts: ContainerRecipeOptions = {}): string {\n return 'sp-container'\n}\n","import { resolveOption } from '../internal/resolve-option'\n\nconst STACK_DIRECTIONS = {\n vertical: true,\n horizontal: true,\n} as const\n\nexport type StackDirection = keyof typeof STACK_DIRECTIONS\n\nexport interface StackRecipeOptions {\n direction?: StackDirection\n}\n\nexport function getStackClasses(opts: StackRecipeOptions = {}): string {\n const { direction: directionInput } = opts\n\n const direction = resolveOption({\n name: 'stack direction',\n value: directionInput,\n allowed: STACK_DIRECTIONS,\n fallback: 'vertical',\n })\n\n return direction === 'horizontal' ? 'sp-hstack' : 'sp-stack'\n}\n","export interface SectionRecipeOptions {}\n\nexport function getSectionClasses(_opts: SectionRecipeOptions = {}): string {\n return 'sp-section'\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/css-constants.ts","../src/internal/cx.ts","../src/internal/resolve-option.ts","../src/recipes/button.ts","../src/recipes/card.ts","../src/recipes/input.ts","../src/recipes/badge.ts","../src/recipes/iconbox.ts","../src/recipes/testimonial.ts","../src/recipes/pricing-card.ts","../src/recipes/rating.ts","../src/recipes/alert.ts","../src/recipes/avatar.ts","../src/recipes/tag.ts","../src/recipes/spinner.ts","../src/recipes/nav.ts","../src/recipes/sidebar.ts","../src/recipes/footer.ts","../src/recipes/toast.ts","../src/recipes/tooltip.ts","../src/recipes/dropdown.ts","../src/recipes/modal.ts","../src/recipes/container.ts","../src/recipes/stack.ts","../src/recipes/section.ts","../src/recipes/grid.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export const spectreBaseStylesPath = \"@phcdevworks/spectre-ui/base.css\";\nexport const spectreComponentsStylesPath = \"@phcdevworks/spectre-ui/components.css\";\nexport const spectreUtilitiesStylesPath = \"@phcdevworks/spectre-ui/utilities.css\";\nexport const spectreIndexStylesPath = \"@phcdevworks/spectre-ui/index.css\";\n\nexport const spectreStyles = {\n index: spectreIndexStylesPath,\n base: spectreBaseStylesPath,\n components: spectreComponentsStylesPath,\n utilities: spectreUtilitiesStylesPath,\n};\n","export function cx(...parts: Array<string | false | null | undefined>): string {\n const seen = new Set<string>();\n const classes: string[] = [];\n\n for (const part of parts) {\n if (!part) continue;\n const trimmed = part.trim();\n if (!trimmed) continue;\n\n if (!/\\s/.test(trimmed)) {\n if (!seen.has(trimmed)) {\n seen.add(trimmed);\n classes.push(trimmed);\n }\n continue;\n }\n\n for (const token of trimmed.split(/\\s+/)) {\n if (!token || seen.has(token)) continue;\n seen.add(token);\n classes.push(token);\n }\n }\n\n return classes.join(\" \");\n}\n","type AllowedValues<T extends string> = readonly T[] | Record<T, unknown>;\n\nconst hasOwn = (value: object, key: string): boolean =>\n Object.prototype.hasOwnProperty.call(value, key);\n\nconst isAllowedValue = <T extends string>(value: T, allowed: AllowedValues<T>): boolean =>\n Array.isArray(allowed) ? allowed.includes(value) : hasOwn(allowed, value);\n\nexport function resolveOption<T extends string>(config: {\n name: string;\n value: T | undefined;\n allowed: AllowedValues<T>;\n fallback: T;\n}): T {\n const { name, value, allowed, fallback } = config;\n\n if (value === undefined) return fallback;\n if (isAllowedValue(value, allowed)) return value;\n\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[spectre-ui] Unknown ${name}: ${value}`);\n }\n\n return fallback;\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BUTTON_VARIANTS = {\n primary: true,\n secondary: true,\n ghost: true,\n danger: true,\n success: true,\n cta: true,\n accent: true,\n} as const;\n\nconst BUTTON_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type ButtonVariant = keyof typeof BUTTON_VARIANTS;\nexport type ButtonSize = keyof typeof BUTTON_SIZES;\n\nexport interface ButtonRecipeOptions {\n variant?: ButtonVariant;\n size?: ButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n iconOnly?: boolean;\n pill?: boolean;\n}\n\nexport function getButtonClasses(opts: ButtonRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n fullWidth = false,\n loading = false,\n disabled = false,\n hovered = false,\n focused = false,\n active = false,\n iconOnly = false,\n pill = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"button variant\",\n value: variantInput,\n allowed: BUTTON_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"button size\",\n value: sizeInput,\n allowed: BUTTON_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<ButtonVariant, string> = {\n primary: \"sp-btn--primary\",\n secondary: \"sp-btn--secondary\",\n ghost: \"sp-btn--ghost\",\n danger: \"sp-btn--danger\",\n success: \"sp-btn--success\",\n cta: \"sp-btn--cta\",\n accent: \"sp-btn--accent\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"sp-btn--sm\",\n md: \"sp-btn--md\",\n lg: \"sp-btn--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-btn\",\n variantClass,\n sizeClass,\n fullWidth && \"sp-btn--full\",\n loading && \"sp-btn--loading\",\n disabled && \"sp-btn--disabled\",\n hovered && \"sp-btn--hover is-hover\",\n focused && \"sp-btn--focus is-focus\",\n active && \"sp-btn--active is-active\",\n iconOnly && \"sp-btn--icon\",\n pill && \"sp-btn--pill\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst CARD_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\nexport interface CardRecipeOptions {\n variant?: CardVariant;\n interactive?: boolean;\n padded?: boolean;\n fullHeight?: boolean;\n disabled?: boolean;\n loading?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n}\n\nexport function getCardClasses(opts: CardRecipeOptions = {}): string {\n const {\n variant: variantInput,\n interactive = false,\n padded = false,\n fullHeight = false,\n disabled = false,\n loading = false,\n hovered = false,\n focused = false,\n active = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"card variant\",\n value: variantInput,\n allowed: CARD_VARIANTS,\n fallback: \"elevated\",\n });\n\n const variantMap: Record<CardVariant, string> = {\n elevated: \"sp-card--elevated\",\n flat: \"sp-card--flat\",\n outline: \"sp-card--outline\",\n ghost: \"sp-card--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-card\",\n variantClass,\n interactive && \"sp-card--interactive\",\n padded && \"sp-card--padded\",\n fullHeight && \"sp-card--full\",\n disabled && \"sp-card--disabled\",\n loading && \"sp-card--loading\",\n hovered && \"sp-card--hover is-hover\",\n focused && \"sp-card--focus is-focus\",\n active && \"sp-card--active is-active\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst INPUT_STATES = {\n default: true,\n error: true,\n success: true,\n disabled: true,\n loading: true,\n} as const;\n\nconst INPUT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type InputState = keyof typeof INPUT_STATES;\nexport type InputSize = keyof typeof INPUT_SIZES;\n\nexport interface InputRecipeOptions {\n state?: InputState;\n size?: InputSize;\n fullWidth?: boolean;\n pill?: boolean;\n focused?: boolean;\n hovered?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport function getInputClasses(opts: InputRecipeOptions = {}): string {\n const {\n state: stateInput,\n size: sizeInput,\n fullWidth = false,\n pill = false,\n focused = false,\n hovered = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts;\n\n const state = resolveOption({\n name: \"input state\",\n value: stateInput,\n allowed: INPUT_STATES,\n fallback: \"default\",\n });\n const size = resolveOption({\n name: \"input size\",\n value: sizeInput,\n allowed: INPUT_SIZES,\n fallback: \"md\",\n });\n\n const sizeMap: Record<InputSize, string> = {\n sm: \"sp-input--sm\",\n md: \"sp-input--md\",\n lg: \"sp-input--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-input\",\n sizeClass,\n state === \"error\" && \"sp-input--error\",\n state === \"success\" && \"sp-input--success\",\n // Visual state only; actual disabled attribute is handled by adapters.\n (state === \"disabled\" || disabled) && \"sp-input--disabled\",\n (state === \"loading\" || loading) && \"sp-input--loading\",\n focused && \"sp-input--focus is-focus\",\n hovered && \"sp-input--hover is-hover\",\n active && \"sp-input--active is-active\",\n fullWidth && \"sp-input--full\",\n pill && \"sp-input--pill\",\n );\n}\n\nexport function getInputWrapperClasses(): string {\n return cx(\"sp-input-wrapper\");\n}\n\nexport function getInputLabelClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-label\",\n disabled && \"sp-label--disabled\"\n );\n}\n\nexport function getInputHelperTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-helper-text\",\n disabled && \"sp-helper-text--disabled\"\n );\n}\n\nexport function getInputErrorMessageClasses(): string {\n return cx(\"sp-error-message\");\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BADGE_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n info: true,\n ghost: true,\n outline: true,\n accent: true,\n cta: true,\n} as const;\n\nconst BADGE_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type BadgeVariant = keyof typeof BADGE_VARIANTS;\nexport type BadgeSize = keyof typeof BADGE_SIZES;\n\nexport interface BadgeRecipeOptions {\n variant?: BadgeVariant;\n size?: BadgeSize;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getBadgeClasses(opts: BadgeRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"badge variant\",\n value: variantInput,\n allowed: BADGE_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"badge size\",\n value: sizeInput,\n allowed: BADGE_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<BadgeVariant, string> = {\n primary: \"sp-badge--primary\",\n secondary: \"sp-badge--secondary\",\n success: \"sp-badge--success\",\n warning: \"sp-badge--warning\",\n danger: \"sp-badge--danger\",\n neutral: \"sp-badge--neutral\",\n info: \"sp-badge--info\",\n ghost: \"sp-badge--ghost\",\n outline: \"sp-badge--outline\",\n accent: \"sp-badge--accent\",\n cta: \"sp-badge--cta\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<BadgeSize, string> = {\n sm: \"sp-badge--sm\",\n md: \"sp-badge--md\",\n lg: \"sp-badge--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-badge\",\n variantClass,\n sizeClass,\n interactive && \"sp-badge--interactive\",\n hovered && \"sp-badge--hover is-hover\",\n focused && \"sp-badge--focus is-focus\",\n active && \"sp-badge--active is-active\",\n disabled && \"sp-badge--disabled\",\n loading && \"sp-badge--loading\",\n fullWidth && \"sp-badge--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst ICONBOX_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n ghost: true,\n accent: true,\n cta: true,\n outline: true,\n} as const;\n\nconst ICONBOX_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type IconBoxVariant = keyof typeof ICONBOX_VARIANTS;\nexport type IconBoxSize = keyof typeof ICONBOX_SIZES;\n\nexport interface IconBoxRecipeOptions {\n variant?: IconBoxVariant;\n size?: IconBoxSize;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n pill?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getIconBoxClasses(opts: IconBoxRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"icon box variant\",\n value: variantInput,\n allowed: ICONBOX_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"icon box size\",\n value: sizeInput,\n allowed: ICONBOX_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<IconBoxVariant, string> = {\n primary: \"sp-iconbox--primary\",\n secondary: \"sp-iconbox--secondary\",\n success: \"sp-iconbox--success\",\n warning: \"sp-iconbox--warning\",\n danger: \"sp-iconbox--danger\",\n info: \"sp-iconbox--info\",\n neutral: \"sp-iconbox--neutral\",\n ghost: \"sp-iconbox--ghost\",\n accent: \"sp-iconbox--accent\",\n cta: \"sp-iconbox--cta\",\n outline: \"sp-iconbox--outline\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<IconBoxSize, string> = {\n xs: \"sp-iconbox--xs\",\n sm: \"sp-iconbox--sm\",\n md: \"sp-iconbox--md\",\n lg: \"sp-iconbox--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-iconbox\",\n variantClass,\n sizeClass,\n disabled && \"sp-iconbox--disabled\",\n loading && \"sp-iconbox--loading\",\n interactive && \"sp-iconbox--interactive\",\n hovered && \"sp-iconbox--hover is-hover\",\n focused && \"sp-iconbox--focus is-focus\",\n active && \"sp-iconbox--active is-active\",\n pill && \"sp-iconbox--pill\",\n fullWidth && \"sp-iconbox--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst TESTIMONIAL_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;\n\nexport interface TestimonialRecipeOptions {\n variant?: TestimonialVariant;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n fullHeight?: boolean;\n}\n\nexport function getTestimonialClasses(opts: TestimonialRecipeOptions = {}): string {\n const {\n variant: variantInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"testimonial variant\",\n value: variantInput,\n allowed: TESTIMONIAL_VARIANTS,\n fallback: \"outline\",\n });\n\n const variantMap: Record<TestimonialVariant, string> = {\n elevated: \"sp-testimonial--elevated\",\n flat: \"sp-testimonial--flat\",\n outline: \"sp-testimonial--outline\",\n ghost: \"sp-testimonial--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-testimonial\",\n variantClass,\n disabled && \"sp-testimonial--disabled\",\n loading && \"sp-testimonial--loading\",\n interactive && \"sp-testimonial--interactive\",\n hovered && \"sp-testimonial--hover is-hover\",\n focused && \"sp-testimonial--focus is-focus\",\n active && \"sp-testimonial--active is-active\",\n fullHeight && \"sp-testimonial--full\"\n );\n}\n\nexport function getTestimonialQuoteClasses(): string {\n return cx(\"sp-testimonial-quote\");\n}\n\nexport function getTestimonialAuthorClasses(): string {\n return cx(\"sp-testimonial-author\");\n}\n\nexport function getTestimonialAuthorInfoClasses(): string {\n return cx(\"sp-testimonial-author-info\");\n}\n\nexport function getTestimonialAuthorNameClasses(): string {\n return cx(\"sp-testimonial-author-name\");\n}\n\nexport function getTestimonialAuthorTitleClasses(): string {\n return cx(\"sp-testimonial-author-title\");\n}\n","import { cx } from '../internal/cx'\n\nexport interface PricingCardRecipeOptions {\n featured?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullHeight?: boolean\n}\n\nexport function getPricingCardClasses(opts: PricingCardRecipeOptions = {}): string {\n const {\n featured = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts\n\n return cx(\n 'sp-pricing-card',\n featured && 'sp-pricing-card--featured',\n disabled && 'sp-pricing-card--disabled',\n loading && 'sp-pricing-card--loading',\n interactive && 'sp-pricing-card--interactive',\n hovered && 'sp-pricing-card--hover is-hover',\n focused && 'sp-pricing-card--focus is-focus',\n active && 'sp-pricing-card--active is-active',\n fullHeight && 'sp-pricing-card--full'\n )\n}\n\nexport function getPricingCardBadgeClasses(): string {\n return cx('sp-pricing-card-badge')\n}\n\nexport function getPricingCardPriceContainerClasses(): string {\n return cx('sp-pricing-card-price-container')\n}\n\nexport function getPricingCardPriceClasses(): string {\n return cx('sp-pricing-card-price')\n}\n\nexport function getPricingCardDescriptionClasses(): string {\n return cx('sp-pricing-card-description')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst RATING_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type RatingSize = keyof typeof RATING_SIZES\n\nexport interface RatingRecipeOptions {\n size?: RatingSize\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n pill?: boolean\n fullWidth?: boolean\n}\n\nexport function getRatingClasses(opts: RatingRecipeOptions = {}): string {\n const {\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts\n\n const size = resolveOption({\n name: 'rating size',\n value: sizeInput,\n allowed: RATING_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-rating',\n `sp-rating--${size}`,\n disabled && 'sp-rating--disabled',\n loading && 'sp-rating--loading',\n interactive && 'sp-rating--interactive',\n hovered && 'sp-rating--hover is-hover',\n focused && 'sp-rating--focus is-focus',\n active && 'sp-rating--active is-active',\n pill && 'sp-rating--pill',\n fullWidth && 'sp-rating--full'\n )\n}\n\nexport function getRatingStarsClasses(): string {\n return cx('sp-rating-stars')\n}\n\nexport function getRatingStarClasses(isFilled: boolean = false): string {\n return cx('sp-rating-star', isFilled && 'sp-rating-star--filled')\n}\n\nexport function getRatingTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts\n return cx('sp-rating-text', disabled && 'sp-rating-text--disabled')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst ALERT_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n} as const\n\nconst ALERT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS\nexport type AlertSize = keyof typeof ALERT_SIZES\n\nexport interface AlertRecipeOptions {\n variant?: AlertVariant\n size?: AlertSize\n dismissed?: boolean\n fullWidth?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getAlertClasses(opts: AlertRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissed = false,\n fullWidth = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts\n\n const variant = resolveOption({\n name: 'alert variant',\n value: variantInput,\n allowed: ALERT_VARIANTS,\n fallback: 'info',\n })\n\n const size = resolveOption({\n name: 'alert size',\n value: sizeInput,\n allowed: ALERT_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-alert',\n `sp-alert--${variant}`,\n `sp-alert--${size}`,\n dismissed && 'sp-alert--dismissed',\n fullWidth && 'sp-alert--full',\n interactive && 'sp-alert--interactive',\n hovered && 'sp-alert--hover is-hover',\n focused && 'sp-alert--focus is-focus',\n active && 'sp-alert--active is-active',\n disabled && 'sp-alert--disabled',\n loading && 'sp-alert--loading'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst AVATAR_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n} as const\n\nconst AVATAR_SHAPES = {\n circle: true,\n square: true,\n} as const\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES\nexport type AvatarShape = keyof typeof AVATAR_SHAPES\n\nexport interface AvatarRecipeOptions {\n size?: AvatarSize\n shape?: AvatarShape\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n placeholder?: boolean\n}\n\nexport function getAvatarClasses(opts: AvatarRecipeOptions = {}): string {\n const {\n size: sizeInput,\n shape: shapeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n placeholder = false,\n } = opts\n\n const size = resolveOption({\n name: 'avatar size',\n value: sizeInput,\n allowed: AVATAR_SIZES,\n fallback: 'md',\n })\n\n const shape = resolveOption({\n name: 'avatar shape',\n value: shapeInput,\n allowed: AVATAR_SHAPES,\n fallback: 'circle',\n })\n\n return cx(\n 'sp-avatar',\n `sp-avatar--${size}`,\n `sp-avatar--${shape}`,\n disabled && 'sp-avatar--disabled',\n loading && 'sp-avatar--loading',\n interactive && 'sp-avatar--interactive',\n hovered && 'sp-avatar--hover is-hover',\n focused && 'sp-avatar--focus is-focus',\n active && 'sp-avatar--active is-active',\n fullWidth && 'sp-avatar--full',\n placeholder && 'sp-avatar--placeholder'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TAG_VARIANTS = {\n default: true,\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n outline: true,\n ghost: true,\n} as const\n\nconst TAG_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type TagVariant = keyof typeof TAG_VARIANTS\nexport type TagSize = keyof typeof TAG_SIZES\n\nexport interface TagRecipeOptions {\n variant?: TagVariant\n size?: TagSize\n dismissible?: boolean\n selected?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n}\n\nexport function getTagClasses(opts: TagRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissible = false,\n selected = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n } = opts\n\n const variant = resolveOption({\n name: 'tag variant',\n value: variantInput,\n allowed: TAG_VARIANTS,\n fallback: 'default',\n })\n\n const size =\n sizeInput &&\n resolveOption({\n name: 'tag size',\n value: sizeInput,\n allowed: TAG_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-tag',\n `sp-tag--${variant}`,\n size && `sp-tag--${size}`,\n dismissible && 'sp-tag--dismissible',\n selected && 'sp-tag--selected',\n disabled && 'sp-tag--disabled',\n loading && 'sp-tag--loading',\n interactive && 'sp-tag--interactive',\n hovered && 'sp-tag--hover is-hover',\n focused && 'sp-tag--focus is-focus',\n active && 'sp-tag--active is-active',\n fullWidth && 'sp-tag--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst SPINNER_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n} as const\n\nconst SPINNER_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type SpinnerVariant = keyof typeof SPINNER_VARIANTS\nexport type SpinnerSize = keyof typeof SPINNER_SIZES\n\nexport interface SpinnerRecipeOptions {\n variant?: SpinnerVariant\n size?: SpinnerSize\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getSpinnerClasses(opts: SpinnerRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n } = opts\n\n const variant =\n variantInput &&\n resolveOption({\n name: 'spinner variant',\n value: variantInput,\n allowed: SPINNER_VARIANTS,\n fallback: 'primary',\n })\n\n const size = resolveOption({\n name: 'spinner size',\n value: sizeInput,\n allowed: SPINNER_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-spinner',\n variant && `sp-spinner--${variant}`,\n `sp-spinner--${size}`,\n disabled && 'sp-spinner--disabled',\n loading && 'sp-spinner--loading'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface NavRecipeOptions {\n bordered?: boolean\n sticky?: boolean\n fullWidth?: boolean\n}\n\nexport function getNavClasses(opts: NavRecipeOptions = {}): string {\n const { bordered = false, sticky = false, fullWidth = false } = opts\n\n return cx(\n 'sp-nav',\n bordered && 'sp-nav--bordered',\n sticky && 'sp-nav--sticky',\n fullWidth && 'sp-nav--full'\n )\n}\n\nexport function getNavLinksClasses(): string {\n return cx('sp-nav__links')\n}\n\nexport interface NavLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getNavLinkClasses(opts: NavLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-nav__link',\n active && 'sp-nav__link--active',\n disabled && 'sp-nav__link--disabled',\n hovered && 'sp-nav__link--hover is-hover',\n focused && 'sp-nav__link--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface SidebarRecipeOptions {\n bordered?: boolean\n}\n\nexport function getSidebarClasses(opts: SidebarRecipeOptions = {}): string {\n const { bordered = false } = opts\n\n return cx('sp-sidebar', bordered && 'sp-sidebar--bordered')\n}\n\nexport interface SidebarLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getSidebarLinkClasses(opts: SidebarLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-sidebar__link',\n active && 'sp-sidebar__link--active',\n disabled && 'sp-sidebar__link--disabled',\n hovered && 'sp-sidebar__link--hover is-hover',\n focused && 'sp-sidebar__link--focus is-focus'\n )\n}\n\nexport function getSidebarBackdropClasses(): string {\n return cx('sp-sidebar-backdrop')\n}\n","import { cx } from '../internal/cx'\n\nexport interface FooterRecipeOptions {\n bordered?: boolean\n fullWidth?: boolean\n}\n\nexport function getFooterClasses(opts: FooterRecipeOptions = {}): string {\n const { bordered = false, fullWidth = false } = opts\n\n return cx('sp-footer', bordered && 'sp-footer--bordered', fullWidth && 'sp-footer--full')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOAST_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n} as const\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastRecipeOptions {\n variant?: ToastVariant\n dismissed?: boolean\n fullWidth?: boolean\n}\n\nexport function getToastClasses(opts: ToastRecipeOptions = {}): string {\n const { variant: variantInput, dismissed = false, fullWidth = false } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx(\n 'sp-toast',\n `sp-toast--${variant}`,\n dismissed && 'sp-toast--dismissed',\n fullWidth && 'sp-toast--full'\n )\n}\n\nexport interface ToastIconRecipeOptions {\n variant?: ToastVariant\n}\n\nexport function getToastIconClasses(\n opts: ToastIconRecipeOptions = {}\n): string {\n const { variant: variantInput } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx('sp-toast__icon', `sp-toast__icon--${variant}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOOLTIP_PLACEMENTS = {\n top: true,\n bottom: true,\n left: true,\n right: true,\n} as const\n\nexport type TooltipPlacement = keyof typeof TOOLTIP_PLACEMENTS\n\nexport interface TooltipRecipeOptions {\n placement?: TooltipPlacement\n visible?: boolean\n}\n\nexport function getTooltipClasses(opts: TooltipRecipeOptions = {}): string {\n const { placement: placementInput, visible = false } = opts\n\n const placement = resolveOption({\n name: 'tooltip placement',\n value: placementInput,\n allowed: TOOLTIP_PLACEMENTS,\n fallback: 'top',\n })\n\n return cx(\n 'sp-tooltip',\n `sp-tooltip--${placement}`,\n visible && 'sp-tooltip--visible'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst DROPDOWN_PLACEMENTS = {\n 'bottom-start': true,\n 'bottom-end': true,\n 'top-start': true,\n 'top-end': true,\n} as const\n\nexport type DropdownPlacement = keyof typeof DROPDOWN_PLACEMENTS\n\nexport interface DropdownRecipeOptions {\n fullWidth?: boolean\n}\n\nexport function getDropdownClasses(opts: DropdownRecipeOptions = {}): string {\n const { fullWidth = false } = opts\n\n return cx('sp-dropdown', fullWidth && 'sp-dropdown--full')\n}\n\nexport interface DropdownMenuRecipeOptions {\n placement?: DropdownPlacement\n open?: boolean\n}\n\nexport function getDropdownMenuClasses(\n opts: DropdownMenuRecipeOptions = {}\n): string {\n const { placement: placementInput, open = false } = opts\n\n const placement = resolveOption({\n name: 'dropdown menu placement',\n value: placementInput,\n allowed: DROPDOWN_PLACEMENTS,\n fallback: 'bottom-start',\n })\n\n return cx(\n 'sp-dropdown__menu',\n `sp-dropdown__menu--${placement}`,\n open && 'sp-dropdown__menu--open'\n )\n}\n\nexport interface DropdownItemRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getDropdownItemClasses(\n opts: DropdownItemRecipeOptions = {}\n): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-dropdown__item',\n active && 'sp-dropdown__item--active',\n disabled && 'sp-dropdown__item--disabled',\n hovered && 'sp-dropdown__item--hover is-hover',\n focused && 'sp-dropdown__item--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface ModalOverlayRecipeOptions {\n open?: boolean\n}\n\nexport function getModalOverlayClasses(\n opts: ModalOverlayRecipeOptions = {}\n): string {\n const { open = false } = opts\n\n return cx('sp-modal-overlay', open && 'sp-modal-overlay--open')\n}\n\nexport interface ModalRecipeOptions {\n open?: boolean\n fullWidth?: boolean\n}\n\nexport function getModalClasses(opts: ModalRecipeOptions = {}): string {\n const { open = false, fullWidth = false } = opts\n\n return cx(\n 'sp-modal',\n open && 'sp-modal--open',\n fullWidth && 'sp-modal--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst CONTAINER_MAX_WIDTHS = {\n none: true,\n prose: true,\n} as const\n\nexport type ContainerMaxWidth = Exclude<keyof typeof CONTAINER_MAX_WIDTHS, 'none'>\n\nexport interface ContainerRecipeOptions {\n maxWidth?: ContainerMaxWidth\n}\n\nexport function getContainerClasses(opts: ContainerRecipeOptions = {}): string {\n const { maxWidth: maxWidthInput } = opts\n\n const maxWidth = resolveOption({\n name: 'container maxWidth',\n value: maxWidthInput,\n allowed: CONTAINER_MAX_WIDTHS,\n fallback: 'none',\n })\n\n return cx('sp-container', maxWidth !== 'none' && `sp-container--max-width-${maxWidth}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst STACK_DIRECTIONS = {\n vertical: true,\n horizontal: true,\n} as const\n\nconst STACK_BASES = {\n none: true,\n sidebar: true,\n} as const\n\nexport type StackDirection = keyof typeof STACK_DIRECTIONS\nexport type StackBasis = Exclude<keyof typeof STACK_BASES, 'none'>\n\nexport interface StackRecipeOptions {\n direction?: StackDirection\n basis?: StackBasis\n}\n\nexport function getStackClasses(opts: StackRecipeOptions = {}): string {\n const { direction: directionInput, basis: basisInput } = opts\n\n const direction = resolveOption({\n name: 'stack direction',\n value: directionInput,\n allowed: STACK_DIRECTIONS,\n fallback: 'vertical',\n })\n\n const basis = resolveOption({\n name: 'stack basis',\n value: basisInput,\n allowed: STACK_BASES,\n fallback: 'none',\n })\n\n return cx(\n direction === 'horizontal' ? 'sp-hstack' : 'sp-stack',\n basis !== 'none' && `sp-stack--basis-${basis}`\n )\n}\n","export interface SectionRecipeOptions {}\n\nexport function getSectionClasses(_opts: SectionRecipeOptions = {}): string {\n return 'sp-section'\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst GRID_COLUMNS = {\n '1': true,\n '2': true,\n '3': true,\n '4': true,\n '6': true,\n '12': true,\n} as const\n\nconst GRID_GAPS = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type GridColumns = 1 | 2 | 3 | 4 | 6 | 12\nexport type GridGap = keyof typeof GRID_GAPS\n\nexport interface GridRecipeOptions {\n columns?: GridColumns\n gap?: GridGap\n}\n\nexport function getGridClasses(opts: GridRecipeOptions = {}): string {\n const { columns: columnsInput, gap: gapInput } = opts\n\n const columns = resolveOption({\n name: 'grid columns',\n value: columnsInput === undefined ? undefined : String(columnsInput),\n allowed: GRID_COLUMNS,\n fallback: '1',\n })\n\n const gap = resolveOption({\n name: 'grid gap',\n value: gapInput,\n allowed: GRID_GAPS,\n fallback: 'md',\n })\n\n return cx('sp-grid', `sp-grid--gap-${gap}`, `sp-grid-cols-${columns}`)\n}\n"]}
|
package/dist/index.css
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
--sp-surface-overlay: rgba(0, 0, 0, 0.6);
|
|
10
10
|
--sp-surface-subtle: #eef1f6;
|
|
11
11
|
--sp-surface-hero: linear-gradient(135deg, #5b6ee1 0%, #6f3fd7 100%);
|
|
12
|
+
--sp-surface-hover: #eef1f6;
|
|
13
|
+
--sp-surface-selected: #f0f9ff;
|
|
14
|
+
--sp-surface-active: #d9dfeb;
|
|
15
|
+
--sp-surface-divider: #d9dfeb;
|
|
12
16
|
--sp-text-on-page-default: #141b24;
|
|
13
17
|
--sp-text-on-page-muted: #4b576a;
|
|
14
18
|
--sp-text-on-page-subtle: #657287;
|
|
@@ -76,6 +80,10 @@
|
|
|
76
80
|
--sp-dropdown-item-hover: #eef1f6;
|
|
77
81
|
--sp-dropdown-item-active: #f0f9ff;
|
|
78
82
|
--sp-dropdown-item-text: #141b24;
|
|
83
|
+
--sp-link-default: #1f57db;
|
|
84
|
+
--sp-link-hover: #1946b4;
|
|
85
|
+
--sp-link-active: #173b8f;
|
|
86
|
+
--sp-link-visited: #5d28b8;
|
|
79
87
|
--sp-color-brand-50: #eef4ff;
|
|
80
88
|
--sp-color-brand-100: #d9e7ff;
|
|
81
89
|
--sp-color-brand-200: #b9d2ff;
|
|
@@ -188,6 +196,8 @@
|
|
|
188
196
|
--sp-layout-container-padding-inline-md: 1.5rem;
|
|
189
197
|
--sp-layout-container-padding-inline-lg: 2rem;
|
|
190
198
|
--sp-layout-container-max-width: 72rem;
|
|
199
|
+
--sp-layout-container-max-width-prose: 65ch;
|
|
200
|
+
--sp-layout-sidebar-width: 16rem;
|
|
191
201
|
--sp-border-width-none: 0;
|
|
192
202
|
--sp-border-width-base: 1px;
|
|
193
203
|
--sp-border-width-thick: 2px;
|
|
@@ -428,6 +438,10 @@
|
|
|
428
438
|
--sp-surface-overlay: rgba(0, 0, 0, 0.6);
|
|
429
439
|
--sp-surface-subtle: #222b38;
|
|
430
440
|
--sp-surface-hero: linear-gradient(135deg, #5d28b8 0%, #401f75 100%);
|
|
441
|
+
--sp-surface-hover: #374253;
|
|
442
|
+
--sp-surface-selected: #082f49;
|
|
443
|
+
--sp-surface-active: #4b576a;
|
|
444
|
+
--sp-surface-divider: #374253;
|
|
431
445
|
--sp-text-on-page-default: #f7f8fb;
|
|
432
446
|
--sp-text-on-page-muted: #b7c1d4;
|
|
433
447
|
--sp-text-on-page-subtle: #8a96ad;
|
|
@@ -495,6 +509,10 @@
|
|
|
495
509
|
--sp-dropdown-item-hover: #374253;
|
|
496
510
|
--sp-dropdown-item-active: #082f49;
|
|
497
511
|
--sp-dropdown-item-text: #eef1f6;
|
|
512
|
+
--sp-link-default: #1f57db;
|
|
513
|
+
--sp-link-hover: #1946b4;
|
|
514
|
+
--sp-link-active: #173b8f;
|
|
515
|
+
--sp-link-visited: #5d28b8;
|
|
498
516
|
}
|
|
499
517
|
@layer base {
|
|
500
518
|
|
|
@@ -879,6 +897,23 @@
|
|
|
879
897
|
--sp-component-nav-link-active: var(--sp-nav-link-active);
|
|
880
898
|
--sp-component-nav-border: var(--sp-nav-border);
|
|
881
899
|
|
|
900
|
+
/* sidebar roles (reuses nav roles - vertical counterpart to the top-bar nav) */
|
|
901
|
+
--sp-component-sidebar-bg: var(--sp-nav-bg);
|
|
902
|
+
--sp-component-sidebar-text: var(--sp-nav-text);
|
|
903
|
+
--sp-component-sidebar-link: var(--sp-nav-link);
|
|
904
|
+
--sp-component-sidebar-link-hover: var(--sp-nav-link-hover);
|
|
905
|
+
--sp-component-sidebar-link-active: var(--sp-nav-link-active);
|
|
906
|
+
--sp-component-sidebar-border: var(--sp-nav-border);
|
|
907
|
+
--sp-component-sidebar-width: var(--sp-layout-sidebar-width);
|
|
908
|
+
--sp-component-sidebar-z-index: var(--sp-z-index-fixed);
|
|
909
|
+
--sp-component-sidebar-backdrop: var(--sp-surface-overlay);
|
|
910
|
+
--sp-component-sidebar-backdrop-z-index: var(--sp-z-index-overlay);
|
|
911
|
+
|
|
912
|
+
/* footer roles (reuses nav roles - bottom-bar counterpart to the top-bar nav) */
|
|
913
|
+
--sp-component-footer-bg: var(--sp-nav-bg);
|
|
914
|
+
--sp-component-footer-text: var(--sp-nav-text);
|
|
915
|
+
--sp-component-footer-border: var(--sp-nav-border);
|
|
916
|
+
|
|
882
917
|
/* toast roles */
|
|
883
918
|
--sp-component-toast-radius: var(--sp-radius-lg);
|
|
884
919
|
--sp-component-toast-padding-x: var(--sp-space-16);
|
|
@@ -2792,6 +2827,120 @@
|
|
|
2792
2827
|
opacity: var(--sp-opacity-disabled);
|
|
2793
2828
|
}
|
|
2794
2829
|
|
|
2830
|
+
/* SIDEBAR -------------------------------------------------------------- */
|
|
2831
|
+
.sp-sidebar {
|
|
2832
|
+
display: flex;
|
|
2833
|
+
flex-direction: column;
|
|
2834
|
+
gap: var(--sp-space-16);
|
|
2835
|
+
width: var(--sp-component-sidebar-width);
|
|
2836
|
+
padding: var(--sp-space-16);
|
|
2837
|
+
background-color: var(--sp-component-sidebar-bg);
|
|
2838
|
+
color: var(--sp-component-sidebar-text);
|
|
2839
|
+
font-family: var(--sp-font-family-sans);
|
|
2840
|
+
position: fixed;
|
|
2841
|
+
top: 0;
|
|
2842
|
+
left: 0;
|
|
2843
|
+
height: 100%;
|
|
2844
|
+
transform: translateX(-100%);
|
|
2845
|
+
z-index: var(--sp-component-sidebar-z-index);
|
|
2846
|
+
transition:
|
|
2847
|
+
background-color var(--sp-duration-fast) var(--sp-easing-out),
|
|
2848
|
+
color var(--sp-duration-fast) var(--sp-easing-out),
|
|
2849
|
+
border-color var(--sp-duration-fast) var(--sp-easing-out),
|
|
2850
|
+
transform var(--sp-duration-fast) var(--sp-easing-out);
|
|
2851
|
+
}
|
|
2852
|
+
|
|
2853
|
+
.sp-sidebar--bordered {
|
|
2854
|
+
border-right: var(--sp-component-border-width) solid var(--sp-component-sidebar-border);
|
|
2855
|
+
}
|
|
2856
|
+
|
|
2857
|
+
.sp-sidebar__link {
|
|
2858
|
+
color: var(--sp-component-sidebar-link);
|
|
2859
|
+
font-size: var(--sp-font-sm-size);
|
|
2860
|
+
line-height: var(--sp-font-sm-line-height);
|
|
2861
|
+
font-weight: var(--sp-font-sm-weight);
|
|
2862
|
+
text-decoration: none;
|
|
2863
|
+
transition: color var(--sp-duration-fast) var(--sp-easing-out);
|
|
2864
|
+
}
|
|
2865
|
+
|
|
2866
|
+
.sp-sidebar__link:hover,
|
|
2867
|
+
.sp-sidebar__link--hover,
|
|
2868
|
+
.sp-sidebar__link.is-hover {
|
|
2869
|
+
color: var(--sp-component-sidebar-link-hover);
|
|
2870
|
+
}
|
|
2871
|
+
|
|
2872
|
+
.sp-sidebar__link:focus-visible,
|
|
2873
|
+
.sp-sidebar__link--focus,
|
|
2874
|
+
.sp-sidebar__link.is-focus {
|
|
2875
|
+
outline: none;
|
|
2876
|
+
box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
|
|
2877
|
+
}
|
|
2878
|
+
|
|
2879
|
+
.sp-sidebar__link--active,
|
|
2880
|
+
.sp-sidebar__link.is-active {
|
|
2881
|
+
color: var(--sp-component-sidebar-link-active);
|
|
2882
|
+
}
|
|
2883
|
+
|
|
2884
|
+
.sp-sidebar__link--disabled,
|
|
2885
|
+
.sp-sidebar__link[aria-disabled="true"] {
|
|
2886
|
+
pointer-events: none;
|
|
2887
|
+
opacity: var(--sp-opacity-disabled);
|
|
2888
|
+
}
|
|
2889
|
+
|
|
2890
|
+
.sp-sidebar-backdrop {
|
|
2891
|
+
display: none;
|
|
2892
|
+
position: fixed;
|
|
2893
|
+
inset: 0;
|
|
2894
|
+
background-color: var(--sp-component-sidebar-backdrop);
|
|
2895
|
+
z-index: var(--sp-component-sidebar-backdrop-z-index);
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2898
|
+
[data-sidebar-open="true"] .sp-sidebar {
|
|
2899
|
+
transform: translateX(0);
|
|
2900
|
+
}
|
|
2901
|
+
|
|
2902
|
+
[data-sidebar-open="true"] .sp-sidebar-backdrop {
|
|
2903
|
+
display: block;
|
|
2904
|
+
}
|
|
2905
|
+
|
|
2906
|
+
/* Above breakpoints.md, the sidebar docks inline instead of as an off-canvas
|
|
2907
|
+
drawer - see Grid's @media literal convention for why this is a literal. */
|
|
2908
|
+
@media (min-width: 768px) {
|
|
2909
|
+
.sp-sidebar {
|
|
2910
|
+
position: static;
|
|
2911
|
+
height: auto;
|
|
2912
|
+
transform: none;
|
|
2913
|
+
}
|
|
2914
|
+
|
|
2915
|
+
.sp-sidebar-backdrop {
|
|
2916
|
+
display: none;
|
|
2917
|
+
}
|
|
2918
|
+
}
|
|
2919
|
+
|
|
2920
|
+
/* FOOTER ----------------------------------------------------------------- */
|
|
2921
|
+
.sp-footer {
|
|
2922
|
+
display: flex;
|
|
2923
|
+
align-items: center;
|
|
2924
|
+
justify-content: space-between;
|
|
2925
|
+
gap: var(--sp-space-16);
|
|
2926
|
+
padding: var(--sp-space-12) var(--sp-space-16);
|
|
2927
|
+
background-color: var(--sp-component-footer-bg);
|
|
2928
|
+
color: var(--sp-component-footer-text);
|
|
2929
|
+
font-family: var(--sp-font-family-sans);
|
|
2930
|
+
transition:
|
|
2931
|
+
background-color var(--sp-duration-fast) var(--sp-easing-out),
|
|
2932
|
+
color var(--sp-duration-fast) var(--sp-easing-out),
|
|
2933
|
+
border-color var(--sp-duration-fast) var(--sp-easing-out);
|
|
2934
|
+
}
|
|
2935
|
+
|
|
2936
|
+
.sp-footer--bordered {
|
|
2937
|
+
border-top: var(--sp-component-border-width) solid var(--sp-component-footer-border);
|
|
2938
|
+
}
|
|
2939
|
+
|
|
2940
|
+
.sp-footer--full {
|
|
2941
|
+
width: 100%;
|
|
2942
|
+
}
|
|
2943
|
+
|
|
2795
2944
|
/* TOASTS ----------------------------------------------------------------- */
|
|
2796
2945
|
.sp-toast {
|
|
2797
2946
|
display: flex;
|
|
@@ -3068,6 +3217,10 @@
|
|
|
3068
3217
|
gap: var(--sp-layout-stack-gap-md);
|
|
3069
3218
|
}
|
|
3070
3219
|
|
|
3220
|
+
.sp-stack--basis-sidebar {
|
|
3221
|
+
flex: 0 0 var(--sp-layout-sidebar-width);
|
|
3222
|
+
}
|
|
3223
|
+
|
|
3071
3224
|
.sp-container {
|
|
3072
3225
|
width: 100%;
|
|
3073
3226
|
margin-left: auto;
|
|
@@ -3077,11 +3230,79 @@
|
|
|
3077
3230
|
max-width: var(--sp-layout-container-max-width);
|
|
3078
3231
|
}
|
|
3079
3232
|
|
|
3233
|
+
.sp-container--max-width-prose {
|
|
3234
|
+
max-width: var(--sp-layout-container-max-width-prose);
|
|
3235
|
+
}
|
|
3236
|
+
|
|
3080
3237
|
.sp-section {
|
|
3081
3238
|
padding-top: var(--sp-layout-section-padding-md);
|
|
3082
3239
|
padding-bottom: var(--sp-layout-section-padding-md);
|
|
3083
3240
|
}
|
|
3084
3241
|
|
|
3242
|
+
.sp-grid {
|
|
3243
|
+
display: grid;
|
|
3244
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
3245
|
+
}
|
|
3246
|
+
|
|
3247
|
+
.sp-grid--gap-sm {
|
|
3248
|
+
gap: var(--sp-layout-stack-gap-sm);
|
|
3249
|
+
}
|
|
3250
|
+
|
|
3251
|
+
.sp-grid--gap-md {
|
|
3252
|
+
gap: var(--sp-layout-stack-gap-md);
|
|
3253
|
+
}
|
|
3254
|
+
|
|
3255
|
+
.sp-grid--gap-lg {
|
|
3256
|
+
gap: var(--sp-layout-stack-gap-lg);
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
.sp-grid-cols-1 {
|
|
3260
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
3261
|
+
}
|
|
3262
|
+
|
|
3263
|
+
/* min-width values match the published --sp-breakpoint-md / --sp-breakpoint-lg
|
|
3264
|
+
token values; CSS does not allow var() inside @media feature queries. */
|
|
3265
|
+
@media (min-width: 768px) {
|
|
3266
|
+
.sp-grid-cols-2 {
|
|
3267
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
3268
|
+
}
|
|
3269
|
+
|
|
3270
|
+
.sp-grid-cols-3,
|
|
3271
|
+
.sp-grid-cols-4 {
|
|
3272
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3273
|
+
}
|
|
3274
|
+
|
|
3275
|
+
.sp-grid-cols-6 {
|
|
3276
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3277
|
+
}
|
|
3278
|
+
|
|
3279
|
+
.sp-grid-cols-12 {
|
|
3280
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3281
|
+
}
|
|
3282
|
+
}
|
|
3283
|
+
|
|
3284
|
+
@media (min-width: 1024px) {
|
|
3285
|
+
.sp-grid-cols-2 {
|
|
3286
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3287
|
+
}
|
|
3288
|
+
|
|
3289
|
+
.sp-grid-cols-3 {
|
|
3290
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3291
|
+
}
|
|
3292
|
+
|
|
3293
|
+
.sp-grid-cols-4 {
|
|
3294
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
.sp-grid-cols-6 {
|
|
3298
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3299
|
+
}
|
|
3300
|
+
|
|
3301
|
+
.sp-grid-cols-12 {
|
|
3302
|
+
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
3303
|
+
}
|
|
3304
|
+
}
|
|
3305
|
+
|
|
3085
3306
|
.sp-shadow-soft {
|
|
3086
3307
|
box-shadow: var(--sp-shadow-md);
|
|
3087
3308
|
}
|