@revealui/presentation 0.2.0 → 0.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.
Files changed (130) hide show
  1. package/README.md +146 -42
  2. package/dist/Box-DC3F8eRf.js +430 -0
  3. package/dist/Box-DC3F8eRf.js.map +1 -0
  4. package/dist/Text-jQVi12Hi.js +218 -0
  5. package/dist/Text-jQVi12Hi.js.map +1 -0
  6. package/dist/client.d.ts +3 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +134 -2803
  9. package/dist/client.js.map +1 -1
  10. package/dist/components/BuiltWithRevealUI.d.ts +12 -0
  11. package/dist/components/BuiltWithRevealUI.d.ts.map +1 -0
  12. package/dist/components/Button.d.ts +2 -1
  13. package/dist/components/Button.d.ts.map +1 -1
  14. package/dist/components/Card.d.ts +18 -6
  15. package/dist/components/Card.d.ts.map +1 -1
  16. package/dist/components/Checkbox.d.ts +6 -3
  17. package/dist/components/Checkbox.d.ts.map +1 -1
  18. package/dist/components/FormLabel.d.ts +5 -1
  19. package/dist/components/FormLabel.d.ts.map +1 -1
  20. package/dist/components/Input.d.ts +4 -2
  21. package/dist/components/Input.d.ts.map +1 -1
  22. package/dist/components/Label.d.ts +7 -2
  23. package/dist/components/Label.d.ts.map +1 -1
  24. package/dist/components/Pagination.d.ts +12 -23
  25. package/dist/components/Pagination.d.ts.map +1 -1
  26. package/dist/components/Select.d.ts +36 -13
  27. package/dist/components/Select.d.ts.map +1 -1
  28. package/dist/components/Textarea.d.ts +4 -2
  29. package/dist/components/Textarea.d.ts.map +1 -1
  30. package/dist/components/accordion.d.ts.map +1 -1
  31. package/dist/components/alert.d.ts.map +1 -1
  32. package/dist/components/auth-layout.d.ts +7 -2
  33. package/dist/components/auth-layout.d.ts.map +1 -1
  34. package/dist/components/avatar-group.d.ts.map +1 -1
  35. package/dist/components/avatar.d.ts +6 -5
  36. package/dist/components/avatar.d.ts.map +1 -1
  37. package/dist/components/badge.d.ts +5 -5
  38. package/dist/components/badge.d.ts.map +1 -1
  39. package/dist/components/breadcrumb.d.ts.map +1 -1
  40. package/dist/components/button-headless.d.ts +2 -1
  41. package/dist/components/button-headless.d.ts.map +1 -1
  42. package/dist/components/callout.d.ts.map +1 -1
  43. package/dist/components/checkbox-headless.d.ts.map +1 -1
  44. package/dist/components/code-block.d.ts.map +1 -1
  45. package/dist/components/combobox.d.ts.map +1 -1
  46. package/dist/components/dialog.d.ts.map +1 -1
  47. package/dist/components/drawer.d.ts.map +1 -1
  48. package/dist/components/dropdown.d.ts.map +1 -1
  49. package/dist/components/empty-state.d.ts.map +1 -1
  50. package/dist/components/fieldset.d.ts.map +1 -1
  51. package/dist/components/heading.d.ts.map +1 -1
  52. package/dist/components/index.d.ts +19 -1
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/input-headless.d.ts +5 -3
  55. package/dist/components/input-headless.d.ts.map +1 -1
  56. package/dist/components/kbd.d.ts.map +1 -1
  57. package/dist/components/link.d.ts +3 -2
  58. package/dist/components/link.d.ts.map +1 -1
  59. package/dist/components/listbox.d.ts.map +1 -1
  60. package/dist/components/navbar.d.ts +5 -5
  61. package/dist/components/navbar.d.ts.map +1 -1
  62. package/dist/components/pricing-table.d.ts +23 -0
  63. package/dist/components/pricing-table.d.ts.map +1 -0
  64. package/dist/components/progress.d.ts.map +1 -1
  65. package/dist/components/radio.d.ts.map +1 -1
  66. package/dist/components/rating.d.ts.map +1 -1
  67. package/dist/components/select-headless.d.ts +5 -2
  68. package/dist/components/select-headless.d.ts.map +1 -1
  69. package/dist/components/sidebar-layout.d.ts.map +1 -1
  70. package/dist/components/sidebar.d.ts +5 -5
  71. package/dist/components/sidebar.d.ts.map +1 -1
  72. package/dist/components/skeleton.d.ts.map +1 -1
  73. package/dist/components/slider.d.ts.map +1 -1
  74. package/dist/components/stacked-layout.d.ts.map +1 -1
  75. package/dist/components/stat.d.ts.map +1 -1
  76. package/dist/components/stepper.d.ts.map +1 -1
  77. package/dist/components/switch.d.ts.map +1 -1
  78. package/dist/components/table.d.ts.map +1 -1
  79. package/dist/components/tabs.d.ts.map +1 -1
  80. package/dist/components/text.d.ts.map +1 -1
  81. package/dist/components/textarea-headless.d.ts +5 -2
  82. package/dist/components/textarea-headless.d.ts.map +1 -1
  83. package/dist/components/timeline.d.ts.map +1 -1
  84. package/dist/components/toast.d.ts.map +1 -1
  85. package/dist/components/tooltip.d.ts +7 -5
  86. package/dist/components/tooltip.d.ts.map +1 -1
  87. package/dist/hooks/index.d.ts.map +1 -1
  88. package/dist/hooks/use-click-outside.d.ts.map +1 -1
  89. package/dist/hooks/use-close-context.d.ts.map +1 -1
  90. package/dist/hooks/use-controllable-state.d.ts.map +1 -1
  91. package/dist/hooks/use-data-interactive.d.ts.map +1 -1
  92. package/dist/hooks/use-field-context.d.ts.map +1 -1
  93. package/dist/hooks/use-focus-trap.d.ts.map +1 -1
  94. package/dist/hooks/use-layout-animation.d.ts.map +1 -1
  95. package/dist/hooks/use-popover.d.ts.map +1 -1
  96. package/dist/hooks/use-roving-tabindex.d.ts.map +1 -1
  97. package/dist/hooks/use-toggle.d.ts.map +1 -1
  98. package/dist/hooks/use-transition.d.ts.map +1 -1
  99. package/dist/hooks/use-type-ahead.d.ts.map +1 -1
  100. package/dist/index.d.ts +1 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +206 -65
  103. package/dist/index.js.map +1 -1
  104. package/dist/primitives/Box.d.ts +3 -1
  105. package/dist/primitives/Box.d.ts.map +1 -1
  106. package/dist/primitives/Flex.d.ts +3 -1
  107. package/dist/primitives/Flex.d.ts.map +1 -1
  108. package/dist/primitives/Grid.d.ts +3 -1
  109. package/dist/primitives/Grid.d.ts.map +1 -1
  110. package/dist/primitives/Heading.d.ts +3 -1
  111. package/dist/primitives/Heading.d.ts.map +1 -1
  112. package/dist/primitives/Slot.d.ts +3 -1
  113. package/dist/primitives/Slot.d.ts.map +1 -1
  114. package/dist/primitives/Text.d.ts +3 -1
  115. package/dist/primitives/Text.d.ts.map +1 -1
  116. package/dist/primitives/index.d.ts.map +1 -1
  117. package/dist/server.d.ts +2 -1
  118. package/dist/server.d.ts.map +1 -1
  119. package/dist/server.js +14 -13
  120. package/dist/tooltip-DQYjYWbe.js +5085 -0
  121. package/dist/tooltip-DQYjYWbe.js.map +1 -0
  122. package/dist/utils/cn.d.ts.map +1 -1
  123. package/dist/utils/index.d.ts.map +1 -1
  124. package/package.json +7 -4
  125. package/dist/Box-DDhRNK02.js +0 -45
  126. package/dist/Box-DDhRNK02.js.map +0 -1
  127. package/dist/Text-BIym7IhD.js +0 -425
  128. package/dist/Text-BIym7IhD.js.map +0 -1
  129. package/dist/tooltip-oH4lAnkn.js +0 -2277
  130. package/dist/tooltip-oH4lAnkn.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box-DC3F8eRf.js","sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../src/utils/cn.ts","../src/primitives/Slot.tsx","../src/components/Button.tsx","../src/components/Pagination.tsx","../src/components/pricing-table.tsx","../src/primitives/Box.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","/**\n * Utility function for conditionally joining classNames together\n * Similar to clsx/classnames but simpler for Tailwind CSS usage\n */\ntype ClassValue = string | number | boolean | undefined | null | { [key: string]: boolean };\n\nexport function cn(...inputs: ClassValue[]): string {\n const classes: string[] = [];\n\n for (const input of inputs.flat()) {\n if (!input) continue;\n\n if (typeof input === 'string' || typeof input === 'number') {\n classes.push(String(input));\n continue;\n }\n\n if (typeof input === 'object') {\n for (const [key, value] of Object.entries(input)) {\n if (value) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ').trim();\n}\n","import React, { type Ref } from 'react';\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n asChild?: boolean;\n ref?: React.Ref<HTMLElement>;\n}\n\n/**\n * Slot component for polymorphic composition\n * Allows components to merge props with child elements\n */\nfunction Slot({ children, asChild, ref, ...slotProps }: SlotProps) {\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...slotProps,\n ...(children.props as Record<string, unknown>),\n ref,\n } as unknown as React.HTMLAttributes<HTMLElement>);\n }\n\n return (\n <div {...slotProps} ref={ref as Ref<HTMLDivElement>}>\n {children}\n </div>\n );\n}\n\nexport { Slot };\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport type React from 'react';\nimport { Slot } from '../primitives/Slot.js';\nimport { cn } from '../utils/cn.js';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n defaultVariants: {\n size: 'default',\n variant: 'default',\n },\n variants: {\n size: {\n clear: '',\n default: 'h-10 px-4 py-2',\n icon: 'size-10',\n lg: 'h-11 rounded px-8',\n sm: 'h-9 rounded px-3',\n },\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n ghost: 'hover:bg-card hover:text-accent-foreground',\n link: 'text-primary items-start justify-start underline-offset-4 hover:underline',\n outline: 'border border-border bg-background hover:bg-card hover:text-accent-foreground',\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n },\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n ref?: React.Ref<HTMLButtonElement>;\n}\n\nfunction Button({ asChild = false, className, size, variant, ref, ...props }: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n return <Comp className={cn(buttonVariants({ className, size, variant }))} ref={ref} {...props} />;\n}\n\nexport { Button, buttonVariants };\n","import type * as React from 'react';\nimport { cn } from '../utils/cn.js';\nimport type { ButtonProps } from './Button.js';\nimport { buttonVariants } from './Button.js';\n\nconst ChevronLeft = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className={cn('size-6', className)}\n >\n <title>Previous page</title>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n </svg>\n );\n};\n\nconst ChevronRight = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className={cn('size-6', className)}\n >\n <title>Next page</title>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\n </svg>\n );\n};\n\nconst MoreHorizontal = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 6\"\n className={cn('size-6', className)}\n >\n <title>More pages</title>\n <circle cx=\"6\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"18\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport type PaginationProps = React.ComponentProps<'nav'>;\n\nconst Pagination = ({ className, ...props }: PaginationProps) => (\n <nav\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n);\n\nfunction PaginationContent({\n className,\n ref,\n ...props\n}: React.ComponentProps<'ul'> & { ref?: React.Ref<HTMLUListElement> }) {\n return <ul className={cn('flex flex-row items-center gap-1', className)} ref={ref} {...props} />;\n}\n\nfunction PaginationItem({\n className,\n ref,\n ...props\n}: React.ComponentProps<'li'> & { ref?: React.Ref<HTMLLIElement> }) {\n return <li className={cn('', className)} ref={ref} {...props} />;\n}\n\nexport interface PaginationLinkProps\n extends Pick<ButtonProps, 'size'>,\n React.ComponentProps<'button'> {\n isActive?: boolean;\n}\n\nconst PaginationLink = ({\n className,\n isActive,\n size = 'icon',\n disabled,\n ...props\n}: PaginationLinkProps) => (\n <button\n aria-current={isActive ? 'page' : undefined}\n aria-disabled={disabled ? true : undefined}\n disabled={disabled}\n className={cn(\n buttonVariants({\n size,\n variant: isActive ? 'outline' : 'ghost',\n }),\n className,\n )}\n {...props}\n />\n);\n\nexport type PaginationPreviousProps = React.ComponentProps<typeof PaginationLink>;\n\nconst PaginationPrevious = ({ className, ...props }: PaginationPreviousProps) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn('gap-1 pl-2.5', className)}\n size=\"default\"\n {...props}\n >\n <ChevronLeft className=\"size-4\" />\n <span>Previous</span>\n </PaginationLink>\n);\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink>;\n\nconst PaginationNext = ({ className, ...props }: PaginationNextProps) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn('gap-1 pr-2.5', className)}\n size=\"default\"\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"size-4\" />\n </PaginationLink>\n);\n\nexport type PaginationEllipsisProps = React.ComponentProps<'span'>;\n\nconst PaginationEllipsis = ({ className, ...props }: PaginationEllipsisProps) => (\n <span\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n);\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","import { cn } from '../utils/cn.js';\n\n// =============================================================================\n// Types (mirrors @revealui/contracts/pricing — no import to avoid coupling)\n// =============================================================================\n\nexport interface PricingTier {\n id: string;\n name: string;\n price?: string;\n period?: string;\n description: string;\n features: string[];\n cta: string;\n ctaHref: string;\n highlighted: boolean;\n}\n\nexport interface PricingTableProps {\n tiers: PricingTier[];\n /** Highlights the active plan tier */\n currentTier?: string;\n /** Compact (horizontal row) vs full (grid) layout */\n compact?: boolean;\n /** Callback when a tier is selected */\n onSelectTier?: (id: string) => void;\n className?: string;\n}\n\n// =============================================================================\n// Check Icon (inline SVG — no external deps)\n// =============================================================================\n\nfunction CheckIcon() {\n return (\n <svg\n className=\"h-4 w-4 shrink-0 text-blue-600 mt-0.5\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n}\n\n// =============================================================================\n// PricingTable\n// =============================================================================\n\nexport function PricingTable({\n tiers,\n currentTier,\n compact = false,\n onSelectTier,\n className,\n}: PricingTableProps) {\n if (compact) {\n return (\n <div className={cn('flex flex-col gap-4 sm:flex-row', className)}>\n {tiers.map((tier) => (\n <PricingCardCompact\n key={tier.id}\n tier={tier}\n isCurrent={tier.id === currentTier}\n onSelect={onSelectTier}\n />\n ))}\n </div>\n );\n }\n\n return (\n <div\n className={cn(\n 'grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-4',\n tiers.length === 3 && 'lg:grid-cols-3',\n tiers.length === 2 && 'lg:grid-cols-2 max-w-3xl mx-auto',\n className,\n )}\n >\n {tiers.map((tier) => (\n <PricingCardFull\n key={tier.id}\n tier={tier}\n isCurrent={tier.id === currentTier}\n onSelect={onSelectTier}\n />\n ))}\n </div>\n );\n}\n\n// =============================================================================\n// Full Card (marketing grid layout)\n// =============================================================================\n\nfunction PricingCardFull({\n tier,\n isCurrent,\n onSelect,\n}: {\n tier: PricingTier;\n isCurrent: boolean;\n onSelect?: (id: string) => void;\n}) {\n const isHighlighted = tier.highlighted && !isCurrent;\n\n return (\n <div\n className={cn(\n 'relative rounded-2xl bg-white p-8 shadow-lg dark:bg-zinc-900',\n isHighlighted\n ? 'ring-2 ring-blue-600'\n : isCurrent\n ? 'ring-2 ring-emerald-500'\n : 'ring-1 ring-zinc-200 dark:ring-zinc-800',\n )}\n >\n {isHighlighted && (\n <div className=\"absolute -top-4 left-0 right-0 mx-auto w-32 rounded-full bg-gradient-to-r from-blue-600 to-indigo-600 px-3 py-1.5 text-sm font-semibold text-white text-center shadow-lg\">\n Most Popular\n </div>\n )}\n {isCurrent && (\n <div className=\"absolute -top-4 left-0 right-0 mx-auto w-32 rounded-full bg-emerald-600 px-3 py-1.5 text-sm font-semibold text-white text-center shadow-lg\">\n Current Plan\n </div>\n )}\n\n <div className=\"mb-8\">\n <h3 className=\"text-xl font-bold tracking-tight text-zinc-900 dark:text-white\">\n {tier.name}\n </h3>\n <p className=\"mt-2 text-sm text-zinc-600 dark:text-zinc-400\">{tier.description}</p>\n <p className=\"mt-6 flex items-baseline gap-x-1\">\n <span className=\"text-4xl font-bold tracking-tight text-zinc-900 dark:text-white\">\n {tier.price ?? '—'}\n </span>\n {tier.period && (\n <span className=\"text-sm text-zinc-600 dark:text-zinc-400\">{tier.period}</span>\n )}\n </p>\n </div>\n\n <ul className=\"mb-8 space-y-3\">\n {tier.features.map((feature) => (\n <li key={feature} className=\"flex items-start gap-x-3\">\n <CheckIcon />\n <span className=\"text-sm text-zinc-600 dark:text-zinc-400\">{feature}</span>\n </li>\n ))}\n </ul>\n\n {onSelect ? (\n <button\n type=\"button\"\n onClick={() => onSelect(tier.id)}\n disabled={isCurrent}\n className={cn(\n 'block w-full rounded-md px-6 py-3 text-center text-sm font-semibold transition-colors',\n isCurrent\n ? 'cursor-default bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-400'\n : isHighlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500 shadow-sm'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {isCurrent ? 'Current Plan' : tier.cta}\n </button>\n ) : (\n <a\n href={tier.ctaHref}\n className={cn(\n 'block w-full rounded-md px-6 py-3 text-center text-sm font-semibold transition-colors',\n isHighlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500 shadow-sm'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {tier.cta}\n </a>\n )}\n </div>\n );\n}\n\n// =============================================================================\n// Compact Card (embeddable in dialogs/prompts)\n// =============================================================================\n\nfunction PricingCardCompact({\n tier,\n isCurrent,\n onSelect,\n}: {\n tier: PricingTier;\n isCurrent: boolean;\n onSelect?: (id: string) => void;\n}) {\n return (\n <div\n className={cn(\n 'flex-1 rounded-xl p-5 shadow-sm dark:bg-zinc-900',\n isCurrent\n ? 'ring-2 ring-emerald-500 bg-emerald-50/50 dark:bg-emerald-900/10'\n : tier.highlighted\n ? 'ring-2 ring-blue-600 bg-blue-50/50 dark:bg-blue-900/10'\n : 'ring-1 ring-zinc-200 bg-white dark:ring-zinc-800',\n )}\n >\n <div className=\"flex items-baseline justify-between gap-2\">\n <h4 className=\"text-sm font-bold text-zinc-900 dark:text-white\">{tier.name}</h4>\n {isCurrent && (\n <span className=\"rounded-full bg-emerald-100 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400\">\n Current\n </span>\n )}\n </div>\n <p className=\"mt-1 flex items-baseline gap-x-1\">\n <span className=\"text-2xl font-bold text-zinc-900 dark:text-white\">\n {tier.price ?? '—'}\n </span>\n {tier.period && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">{tier.period}</span>\n )}\n </p>\n <p className=\"mt-1 text-xs text-zinc-500 dark:text-zinc-400 line-clamp-2\">\n {tier.description}\n </p>\n\n {onSelect ? (\n <button\n type=\"button\"\n onClick={() => onSelect(tier.id)}\n disabled={isCurrent}\n className={cn(\n 'mt-3 block w-full rounded-md px-3 py-2 text-center text-xs font-semibold transition-colors',\n isCurrent\n ? 'cursor-default bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-400'\n : tier.highlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {isCurrent ? 'Current' : tier.cta}\n </button>\n ) : (\n <a\n href={tier.ctaHref}\n className={cn(\n 'mt-3 block w-full rounded-md px-3 py-2 text-center text-xs font-semibold transition-colors',\n tier.highlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {tier.cta}\n </a>\n )}\n </div>\n );\n}\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: 'div' | 'span' | 'section' | 'article' | 'header' | 'footer' | 'main' | 'aside' | 'nav';\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * Box primitive - Basic container component\n */\nfunction Box({ as: Component = 'div', className, ref, ...props }: BoxProps) {\n return <Component ref={ref} className={cn(className)} {...props} />;\n}\n\nexport { Box };\n"],"names":["param"],"mappings":";;AAAA,SAAS,EAAE,GAAE;AAAC,MAAI,GAAE,GAAE,IAAE;AAAG,MAAG,YAAU,OAAO,KAAG,YAAU,OAAO,EAAE,MAAG;AAAA,WAAU,YAAU,OAAO,EAAE,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,QAAI,IAAE,EAAE;AAAO,SAAI,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,CAAC,MAAI,IAAE,EAAE,EAAE,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAA,EAAE,MAAM,MAAI,KAAK,EAAE,GAAE,CAAC,MAAI,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;AAAQ,SAAS,OAAM;AAAC,WAAQ,GAAE,GAAE,IAAE,GAAE,IAAE,IAAG,IAAE,UAAU,QAAO,IAAE,GAAE,IAAI,EAAC,IAAE,UAAU,CAAC,OAAK,IAAE,EAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;ACe/W,MAAM,gBAAgB,CAAC,UAAQ,OAAO,UAAU,YAAY,GAAG,KAAK,KAAK,UAAU,IAAI,MAAM;AACtF,MAAM,KAAK;AACN,MAAC,MAAM,CAAC,MAAM,WAAS,CAAC,UAAQ;AACpC,MAAI;AACJ,OAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,aAAa,KAAM,QAAO,GAAG,MAAM,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,OAAO,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,SAAS;AACvN,QAAM,EAAE,UAAU,gBAAe,IAAK;AACtC,QAAM,uBAAuB,OAAO,KAAK,QAAQ,EAAE,IAAI,CAAC,YAAU;AAC9D,UAAM,cAAc,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,OAAO;AAC/E,UAAM,qBAAqB,oBAAoB,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,OAAO;AACpH,QAAI,gBAAgB,KAAM,QAAO;AACjC,UAAM,aAAa,cAAc,WAAW,KAAK,cAAc,kBAAkB;AACjF,WAAO,SAAS,OAAO,EAAE,UAAU;AAAA,EACvC,CAAC;AACD,QAAM,wBAAwB,SAAS,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK,UAAQ;AAC9E,QAAI,CAAC,KAAK,KAAK,IAAI;AACnB,QAAI,UAAU,QAAW;AACrB,aAAO;AAAA,IACX;AACA,QAAI,GAAG,IAAI;AACX,WAAO;AAAA,EACX,GAAG,CAAA,CAAE;AACL,QAAM,+BAA+B,WAAW,QAAQ,WAAW,SAAS,UAAU,2BAA2B,OAAO,sBAAsB,QAAQ,6BAA6B,SAAS,SAAS,yBAAyB,OAAO,CAAC,KAAK,UAAQ;AAC/O,QAAI,EAAE,OAAO,SAAS,WAAW,aAAa,GAAG,uBAAsB,IAAK;AAC5E,WAAO,OAAO,QAAQ,sBAAsB,EAAE,MAAM,CAACA,WAAQ;AACzD,UAAI,CAAC,KAAK,KAAK,IAAIA;AACnB,aAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS;AAAA,QACzC,GAAG;AAAA,QACH,GAAG;AAAA,MACvB,EAAkB,GAAG,CAAC,IAAK;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,MACvB,EAAmB,GAAG,MAAM;AAAA,IAChB,CAAC,IAAI;AAAA,MACD,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IAChB,IAAgB;AAAA,EACR,GAAG,CAAA,CAAE;AACL,SAAO,GAAG,MAAM,sBAAsB,8BAA8B,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,OAAO,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,SAAS;AAChM;AChDG,SAAS,MAAM,QAA8B;AAClD,QAAM,UAAoB,CAAA;AAE1B,aAAW,SAAS,OAAO,QAAQ;AACjC,QAAI,CAAC,MAAO;AAEZ,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAC1D,cAAQ,KAAK,OAAO,KAAK,CAAC;AAC1B;AAAA,IACF;AAEA,QAAI,OAAO,UAAU,UAAU;AAC7B,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,YAAI,OAAO;AACT,kBAAQ,KAAK,GAAG;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,KAAK,GAAG,EAAE,KAAA;AAC3B;ACfA,SAAS,KAAK,EAAE,UAAU,SAAS,KAAK,GAAG,aAAwB;AACjE,MAAI,WAAW,MAAM,eAAe,QAAQ,GAAG;AAC7C,WAAO,MAAM,aAAa,UAAU;AAAA,MAClC,GAAG;AAAA,MACH,GAAI,SAAS;AAAA,MACb;AAAA,IAAA,CAC+C;AAAA,EACnD;AAEA,SACE,oBAAC,OAAA,EAAK,GAAG,WAAW,KACjB,UACH;AAEJ;ACrBA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEX,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,QACb,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;AASA,SAAS,OAAO,EAAE,UAAU,OAAO,WAAW,MAAM,SAAS,KAAK,GAAG,SAAsB;AACzF,QAAM,OAAO,UAAU,OAAO;AAC9B,SAAO,oBAAC,MAAA,EAAK,WAAW,GAAG,eAAe,EAAE,WAAW,MAAM,QAAA,CAAS,CAAC,GAAG,KAAW,GAAG,MAAA,CAAO;AACjG;ACtCA,MAAM,cAAc,CAAC,EAAE,gBAAwC;AAC7D,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAO;AAAA,MACP,WAAW,GAAG,UAAU,SAAS;AAAA,MAEjC,UAAA;AAAA,QAAA,oBAAC,WAAM,UAAA,gBAAA,CAAa;AAAA,4BACnB,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,GAAE,8BAAA,CAA8B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzF;AAEA,MAAM,eAAe,CAAC,EAAE,gBAAwC;AAC9D,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAO;AAAA,MACP,WAAW,GAAG,UAAU,SAAS;AAAA,MAEjC,UAAA;AAAA,QAAA,oBAAC,WAAM,UAAA,YAAA,CAAS;AAAA,4BACf,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,GAAE,4BAAA,CAA4B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvF;AAEA,MAAM,iBAAiB,CAAC,EAAE,gBAAwC;AAChE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,WAAW,GAAG,UAAU,SAAS;AAAA,MAEjC,UAAA;AAAA,QAAA,oBAAC,WAAM,UAAA,aAAA,CAAU;AAAA,QACjB,oBAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,eAAA,CAAe;AAAA,QAChD,oBAAC,YAAO,IAAG,MAAK,IAAG,KAAI,GAAE,KAAI,MAAK,eAAA,CAAe;AAAA,QACjD,oBAAC,YAAO,IAAG,MAAK,IAAG,KAAI,GAAE,KAAI,MAAK,eAAA,CAAe;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvD;AAIA,MAAM,aAAa,CAAC,EAAE,WAAW,GAAG,YAClC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,cAAW;AAAA,IACX,WAAW,GAAG,sCAAsC,SAAS;AAAA,IAC5D,GAAG;AAAA,EAAA;AACN;AAGF,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAuE;AACrE,SAAO,oBAAC,QAAG,WAAW,GAAG,oCAAoC,SAAS,GAAG,KAAW,GAAG,OAAO;AAChG;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoE;AAClE,SAAO,oBAAC,QAAG,WAAW,GAAG,IAAI,SAAS,GAAG,KAAW,GAAG,OAAO;AAChE;AAQA,MAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,gBAAc,WAAW,SAAS;AAAA,IAClC,iBAAe,WAAW,OAAO;AAAA,IACjC;AAAA,IACA,WAAW;AAAA,MACT,eAAe;AAAA,QACb;AAAA,QACA,SAAS,WAAW,YAAY;AAAA,MAAA,CACjC;AAAA,MACD;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,EAAA;AACN;AAKF,MAAM,qBAAqB,CAAC,EAAE,WAAW,GAAG,YAC1C;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,cAAW;AAAA,IACX,WAAW,GAAG,gBAAgB,SAAS;AAAA,IACvC,MAAK;AAAA,IACJ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA,oBAAC,aAAA,EAAY,WAAU,SAAA,CAAS;AAAA,MAChC,oBAAC,UAAK,UAAA,WAAA,CAAQ;AAAA,IAAA;AAAA,EAAA;AAChB;AAKF,MAAM,iBAAiB,CAAC,EAAE,WAAW,GAAG,YACtC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,cAAW;AAAA,IACX,WAAW,GAAG,gBAAgB,SAAS;AAAA,IACvC,MAAK;AAAA,IACJ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA,oBAAC,UAAK,UAAA,OAAA,CAAI;AAAA,MACV,oBAAC,cAAA,EAAa,WAAU,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AACnC;AAKF,MAAM,qBAAqB,CAAC,EAAE,WAAW,GAAG,YAC1C;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAW;AAAA,IACX,WAAW,GAAG,4CAA4C,SAAS;AAAA,IAClE,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA,oBAAC,gBAAA,EAAe,WAAU,SAAA,CAAS;AAAA,MACnC,oBAAC,QAAA,EAAK,WAAU,WAAU,UAAA,aAAA,CAAU;AAAA,IAAA;AAAA,EAAA;AACtC;AChHF,SAAS,YAAY;AACnB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,eAAY;AAAA,MAEZ,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,GAAE;AAAA,UACF,UAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IACX;AAAA,EAAA;AAGN;AAMO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AACF,GAAsB;AACpB,MAAI,SAAS;AACX,WACE,oBAAC,OAAA,EAAI,WAAW,GAAG,mCAAmC,SAAS,GAC5D,UAAA,MAAM,IAAI,CAAC,SACV;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC;AAAA,QACA,WAAW,KAAK,OAAO;AAAA,QACvB,UAAU;AAAA,MAAA;AAAA,MAHL,KAAK;AAAA,IAAA,CAKb,GACH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,MAAM,WAAW,KAAK;AAAA,QACtB,MAAM,WAAW,KAAK;AAAA,QACtB;AAAA,MAAA;AAAA,MAGD,UAAA,MAAM,IAAI,CAAC,SACV;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA,WAAW,KAAK,OAAO;AAAA,UACvB,UAAU;AAAA,QAAA;AAAA,QAHL,KAAK;AAAA,MAAA,CAKb;AAAA,IAAA;AAAA,EAAA;AAGP;AAMA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,gBAAgB,KAAK,eAAe,CAAC;AAE3C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,gBACI,yBACA,YACE,4BACA;AAAA,MAAA;AAAA,MAGP,UAAA;AAAA,QAAA,iBACC,oBAAC,OAAA,EAAI,WAAU,4KAA2K,UAAA,gBAE1L;AAAA,QAED,aACC,oBAAC,OAAA,EAAI,WAAU,8IAA6I,UAAA,gBAE5J;AAAA,QAGF,qBAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,UAAA,oBAAC,MAAA,EAAG,WAAU,kEACX,UAAA,KAAK,MACR;AAAA,UACA,oBAAC,KAAA,EAAE,WAAU,iDAAiD,eAAK,aAAY;AAAA,UAC/E,qBAAC,KAAA,EAAE,WAAU,oCACX,UAAA;AAAA,YAAA,oBAAC,QAAA,EAAK,WAAU,mEACb,UAAA,KAAK,SAAS,KACjB;AAAA,YACC,KAAK,UACJ,oBAAC,UAAK,WAAU,4CAA4C,eAAK,OAAA,CAAO;AAAA,UAAA,EAAA,CAE5E;AAAA,QAAA,GACF;AAAA,QAEA,oBAAC,MAAA,EAAG,WAAU,kBACX,UAAA,KAAK,SAAS,IAAI,CAAC,YAClB,qBAAC,MAAA,EAAiB,WAAU,4BAC1B,UAAA;AAAA,UAAA,oBAAC,WAAA,EAAU;AAAA,UACX,oBAAC,QAAA,EAAK,WAAU,4CAA4C,UAAA,QAAA,CAAQ;AAAA,QAAA,KAF7D,OAGT,CACD,GACH;AAAA,QAEC,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAM,SAAS,KAAK,EAAE;AAAA,YAC/B,UAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA,cACA,YACI,+FACA,gBACE,uDACA;AAAA,YAAA;AAAA,YAGP,UAAA,YAAY,iBAAiB,KAAK;AAAA,UAAA;AAAA,QAAA,IAGrC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,KAAK;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,gBACI,uDACA;AAAA,YAAA;AAAA,YAGL,UAAA,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACR;AAAA,IAAA;AAAA,EAAA;AAIR;AAMA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,YACI,oEACA,KAAK,cACH,2DACA;AAAA,MAAA;AAAA,MAGR,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,UAAA,oBAAC,MAAA,EAAG,WAAU,mDAAmD,UAAA,KAAK,MAAK;AAAA,UAC1E,aACC,oBAAC,QAAA,EAAK,WAAU,6HAA4H,UAAA,UAAA,CAE5I;AAAA,QAAA,GAEJ;AAAA,QACA,qBAAC,KAAA,EAAE,WAAU,oCACX,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,WAAU,oDACb,UAAA,KAAK,SAAS,KACjB;AAAA,UACC,KAAK,UACJ,oBAAC,UAAK,WAAU,4CAA4C,eAAK,OAAA,CAAO;AAAA,QAAA,GAE5E;AAAA,QACA,oBAAC,KAAA,EAAE,WAAU,8DACV,eAAK,aACR;AAAA,QAEC,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAM,SAAS,KAAK,EAAE;AAAA,YAC/B,UAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA,cACA,YACI,+FACA,KAAK,cACH,6CACA;AAAA,YAAA;AAAA,YAGP,UAAA,YAAY,YAAY,KAAK;AAAA,UAAA;AAAA,QAAA,IAGhC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,KAAK;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,KAAK,cACD,6CACA;AAAA,YAAA;AAAA,YAGL,UAAA,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACR;AAAA,IAAA;AAAA,EAAA;AAIR;AC/PA,SAAS,IAAI,EAAE,IAAI,YAAY,OAAO,WAAW,KAAK,GAAG,SAAmB;AAC1E,SAAO,oBAAC,aAAU,KAAU,WAAW,GAAG,SAAS,GAAI,GAAG,OAAO;AACnE;","x_google_ignoreList":[0,1]}
@@ -0,0 +1,218 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { j as cn } from "./Box-DC3F8eRf.js";
3
+ function AuthLayout({ children, header, footer }) {
4
+ return /* @__PURE__ */ jsx("main", { className: "flex min-h-dvh flex-col p-2", children: /* @__PURE__ */ jsxs("div", { className: "flex grow flex-col items-center justify-center gap-6 p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10", children: [
5
+ header,
6
+ children,
7
+ footer
8
+ ] }) });
9
+ }
10
+ function Card({
11
+ className,
12
+ ref,
13
+ ...props
14
+ }) {
15
+ return /* @__PURE__ */ jsx(
16
+ "div",
17
+ {
18
+ className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className),
19
+ ref,
20
+ ...props
21
+ }
22
+ );
23
+ }
24
+ function CardHeader({
25
+ className,
26
+ ref,
27
+ ...props
28
+ }) {
29
+ return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-1.5 p-6", className), ref, ...props });
30
+ }
31
+ function CardTitle({
32
+ className,
33
+ ref,
34
+ ...props
35
+ }) {
36
+ return /* @__PURE__ */ jsx(
37
+ "h3",
38
+ {
39
+ className: cn("text-2xl font-semibold leading-none tracking-tight", className),
40
+ ref,
41
+ ...props
42
+ }
43
+ );
44
+ }
45
+ function CardDescription({
46
+ className,
47
+ ref,
48
+ ...props
49
+ }) {
50
+ return /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground", className), ref, ...props });
51
+ }
52
+ function CardContent({
53
+ className,
54
+ ref,
55
+ ...props
56
+ }) {
57
+ return /* @__PURE__ */ jsx("div", { className: cn("p-6 pt-0", className), ref, ...props });
58
+ }
59
+ function CardFooter({
60
+ className,
61
+ ref,
62
+ ...props
63
+ }) {
64
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center p-6 pt-0", className), ref, ...props });
65
+ }
66
+ function Label({ className, ref, ...props }) {
67
+ return (
68
+ // biome-ignore lint/a11y/noLabelWithoutControl: label associations are provided by consumers.
69
+ /* @__PURE__ */ jsx(
70
+ "label",
71
+ {
72
+ ref,
73
+ className: cn(
74
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
75
+ className
76
+ ),
77
+ ...props
78
+ }
79
+ )
80
+ );
81
+ }
82
+ Label.displayName = "Label";
83
+ function FormLabel({ required, className, children, ref, ...props }) {
84
+ return /* @__PURE__ */ jsxs(Label, { ref, className: cn(className), ...props, children: [
85
+ children,
86
+ required && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
87
+ ] });
88
+ }
89
+ FormLabel.displayName = "FormLabel";
90
+ function Input({ type, className, ref, ...props }) {
91
+ return /* @__PURE__ */ jsx(
92
+ "input",
93
+ {
94
+ className: cn(
95
+ "flex h-10 w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
96
+ className
97
+ ),
98
+ ref,
99
+ type,
100
+ ...props
101
+ }
102
+ );
103
+ }
104
+ function Textarea({ className, ref, ...props }) {
105
+ return /* @__PURE__ */ jsx(
106
+ "textarea",
107
+ {
108
+ className: cn(
109
+ "flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
110
+ className
111
+ ),
112
+ ref,
113
+ ...props
114
+ }
115
+ );
116
+ }
117
+ function Flex({
118
+ direction = "row",
119
+ align,
120
+ justify,
121
+ wrap,
122
+ gap,
123
+ className,
124
+ style,
125
+ ref,
126
+ ...props
127
+ }) {
128
+ const flexClasses = cn(
129
+ "flex",
130
+ direction && `flex-${direction}`,
131
+ align && `items-${align === "start" ? "start" : align === "end" ? "end" : align}`,
132
+ justify && `justify-${justify === "start" ? "start" : justify === "end" ? "end" : justify === "between" ? "between" : justify === "around" ? "around" : justify === "evenly" ? "evenly" : "center"}`,
133
+ wrap === true && "flex-wrap",
134
+ wrap === "wrap" && "flex-wrap",
135
+ wrap === "nowrap" && "flex-nowrap",
136
+ wrap === "wrap-reverse" && "flex-wrap-reverse",
137
+ className
138
+ );
139
+ const flexStyle = {
140
+ ...style,
141
+ ...gap && { gap: typeof gap === "number" ? `${gap}px` : gap }
142
+ };
143
+ return /* @__PURE__ */ jsx("div", { ref, className: flexClasses, style: flexStyle, ...props });
144
+ }
145
+ function Grid({ cols, rows, gap, className, style, ref, ...props }) {
146
+ const gridStyle = {
147
+ ...style,
148
+ ...cols && {
149
+ gridTemplateColumns: typeof cols === "number" ? `repeat(${cols}, 1fr)` : cols
150
+ },
151
+ ...rows && {
152
+ gridTemplateRows: typeof rows === "number" ? `repeat(${rows}, 1fr)` : rows
153
+ },
154
+ ...gap && { gap: typeof gap === "number" ? `${gap}px` : gap }
155
+ };
156
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("grid", className), style: gridStyle, ...props });
157
+ }
158
+ function Heading({ as, size = "base", className, children, ref, ...props }) {
159
+ const Component = as || "h2";
160
+ const headingClasses = cn(
161
+ size === "sm" && "text-sm",
162
+ size === "base" && "text-base",
163
+ size === "lg" && "text-lg",
164
+ size === "xl" && "text-xl",
165
+ size === "2xl" && "text-2xl",
166
+ size === "3xl" && "text-3xl",
167
+ size === "4xl" && "text-4xl",
168
+ "font-semibold",
169
+ className
170
+ );
171
+ return /* @__PURE__ */ jsx(Component, { ref, className: headingClasses, ...props, children });
172
+ }
173
+ function Text({
174
+ as: Component = "p",
175
+ size = "base",
176
+ weight = "normal",
177
+ color = "default",
178
+ className,
179
+ ref,
180
+ ...props
181
+ }) {
182
+ const textClasses = cn(
183
+ size === "xs" && "text-xs",
184
+ size === "sm" && "text-sm",
185
+ size === "base" && "text-base",
186
+ size === "lg" && "text-lg",
187
+ size === "xl" && "text-xl",
188
+ size === "2xl" && "text-2xl",
189
+ weight === "normal" && "font-normal",
190
+ weight === "medium" && "font-medium",
191
+ weight === "semibold" && "font-semibold",
192
+ weight === "bold" && "font-bold",
193
+ color === "muted" && "text-muted-foreground",
194
+ color === "primary" && "text-primary",
195
+ color === "secondary" && "text-secondary-foreground",
196
+ color === "destructive" && "text-destructive",
197
+ className
198
+ );
199
+ return /* @__PURE__ */ jsx(Component, { ref, className: textClasses, ...props });
200
+ }
201
+ export {
202
+ AuthLayout as A,
203
+ Card as C,
204
+ Flex as F,
205
+ Grid as G,
206
+ Heading as H,
207
+ Input as I,
208
+ Label as L,
209
+ Text as T,
210
+ CardContent as a,
211
+ CardDescription as b,
212
+ CardFooter as c,
213
+ CardHeader as d,
214
+ CardTitle as e,
215
+ FormLabel as f,
216
+ Textarea as g
217
+ };
218
+ //# sourceMappingURL=Text-jQVi12Hi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text-jQVi12Hi.js","sources":["../src/components/auth-layout.tsx","../src/components/Card.tsx","../src/components/Label.tsx","../src/components/FormLabel.tsx","../src/components/Input.tsx","../src/components/Textarea.tsx","../src/primitives/Flex.tsx","../src/primitives/Grid.tsx","../src/primitives/Heading.tsx","../src/primitives/Text.tsx"],"sourcesContent":["import type React from 'react';\n\nexport interface AuthLayoutProps {\n children: React.ReactNode;\n /** Optional branding slot rendered above the auth form */\n header?: React.ReactNode;\n /** Optional branding slot rendered below the auth form */\n footer?: React.ReactNode;\n}\n\nexport function AuthLayout({ children, header, footer }: AuthLayoutProps) {\n return (\n <main className=\"flex min-h-dvh flex-col p-2\">\n <div className=\"flex grow flex-col items-center justify-center gap-6 p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10\">\n {header}\n {children}\n {footer}\n </div>\n </main>\n );\n}\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nfunction Card({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return (\n <div\n className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)}\n ref={ref}\n {...props}\n />\n );\n}\n\nfunction CardHeader({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return <div className={cn('flex flex-col space-y-1.5 p-6', className)} ref={ref} {...props} />;\n}\n\nfunction CardTitle({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLHeadingElement> & { ref?: React.Ref<HTMLParagraphElement> }) {\n return (\n <h3\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n ref={ref}\n {...props}\n />\n );\n}\n\nfunction CardDescription({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement> & { ref?: React.Ref<HTMLParagraphElement> }) {\n return <p className={cn('text-sm text-muted-foreground', className)} ref={ref} {...props} />;\n}\n\nfunction CardContent({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return <div className={cn('p-6 pt-0', className)} ref={ref} {...props} />;\n}\n\nfunction CardFooter({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return <div className={cn('flex items-center p-6 pt-0', className)} ref={ref} {...props} />;\n}\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type LabelProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n ref?: React.Ref<HTMLLabelElement>;\n};\n\nfunction Label({ className, ref, ...props }: LabelProps) {\n return (\n // biome-ignore lint/a11y/noLabelWithoutControl: label associations are provided by consumers.\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className,\n )}\n {...props}\n />\n );\n}\n\nLabel.displayName = 'Label';\n\nexport { Label };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\nimport { Label, type LabelProps } from './Label.js';\n\nexport interface FormLabelProps extends LabelProps {\n required?: boolean;\n ref?: React.Ref<HTMLLabelElement>;\n}\n\nfunction FormLabel({ required, className, children, ref, ...props }: FormLabelProps) {\n return (\n <Label ref={ref} className={cn(className)} {...props}>\n {children}\n {required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n );\n}\n\nFormLabel.displayName = 'FormLabel';\n\nexport { FormLabel };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n ref?: React.Ref<HTMLInputElement>;\n};\n\nfunction Input({ type, className, ref, ...props }: InputProps) {\n return (\n <input\n className={cn(\n 'flex h-10 w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n type={type}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\n ref?: React.Ref<HTMLTextAreaElement>;\n};\n\nfunction Textarea({ className, ref, ...props }: TextareaProps) {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n wrap?: boolean | 'wrap' | 'nowrap' | 'wrap-reverse';\n gap?: number | string;\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * Flex primitive - Flexbox container component\n */\nfunction Flex({\n direction = 'row',\n align,\n justify,\n wrap,\n gap,\n className,\n style,\n ref,\n ...props\n}: FlexProps) {\n const flexClasses = cn(\n 'flex',\n direction && `flex-${direction}`,\n align && `items-${align === 'start' ? 'start' : align === 'end' ? 'end' : align}`,\n justify &&\n `justify-${justify === 'start' ? 'start' : justify === 'end' ? 'end' : justify === 'between' ? 'between' : justify === 'around' ? 'around' : justify === 'evenly' ? 'evenly' : 'center'}`,\n wrap === true && 'flex-wrap',\n wrap === 'wrap' && 'flex-wrap',\n wrap === 'nowrap' && 'flex-nowrap',\n wrap === 'wrap-reverse' && 'flex-wrap-reverse',\n className,\n );\n\n const flexStyle = {\n ...style,\n ...(gap && { gap: typeof gap === 'number' ? `${gap}px` : gap }),\n };\n\n return <div ref={ref} className={flexClasses} style={flexStyle} {...props} />;\n}\n\nexport { Flex };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n cols?: number | string;\n rows?: number | string;\n gap?: number | string;\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * Grid primitive - CSS Grid container component\n */\nfunction Grid({ cols, rows, gap, className, style, ref, ...props }: GridProps) {\n const gridStyle: React.CSSProperties = {\n ...style,\n ...(cols && {\n gridTemplateColumns: typeof cols === 'number' ? `repeat(${cols}, 1fr)` : cols,\n }),\n ...(rows && {\n gridTemplateRows: typeof rows === 'number' ? `repeat(${rows}, 1fr)` : rows,\n }),\n ...(gap && { gap: typeof gap === 'number' ? `${gap}px` : gap }),\n };\n\n return <div ref={ref} className={cn('grid', className)} style={gridStyle} {...props} />;\n}\n\nexport { Grid };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n size?: 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';\n ref?: React.Ref<HTMLHeadingElement>;\n}\n\n/**\n * Heading primitive - Heading component\n */\nfunction Heading({ as, size = 'base', className, children, ref, ...props }: HeadingProps) {\n const Component = as || 'h2';\n\n const headingClasses = cn(\n size === 'sm' && 'text-sm',\n size === 'base' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl',\n size === '2xl' && 'text-2xl',\n size === '3xl' && 'text-3xl',\n size === '4xl' && 'text-4xl',\n 'font-semibold',\n className,\n );\n\n return (\n <Component ref={ref} className={headingClasses} {...props}>\n {children}\n </Component>\n );\n}\n\nexport { Heading };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n as?: 'p' | 'span' | 'div';\n size?: 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl';\n weight?: 'normal' | 'medium' | 'semibold' | 'bold';\n color?: 'default' | 'muted' | 'primary' | 'secondary' | 'destructive';\n ref?: React.Ref<HTMLParagraphElement>;\n}\n\n/**\n * Text primitive - Typography component\n */\nfunction Text({\n as: Component = 'p',\n size = 'base',\n weight = 'normal',\n color = 'default',\n className,\n ref,\n ...props\n}: TextProps) {\n const textClasses = cn(\n size === 'xs' && 'text-xs',\n size === 'sm' && 'text-sm',\n size === 'base' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl',\n size === '2xl' && 'text-2xl',\n weight === 'normal' && 'font-normal',\n weight === 'medium' && 'font-medium',\n weight === 'semibold' && 'font-semibold',\n weight === 'bold' && 'font-bold',\n color === 'muted' && 'text-muted-foreground',\n color === 'primary' && 'text-primary',\n color === 'secondary' && 'text-secondary-foreground',\n color === 'destructive' && 'text-destructive',\n className,\n );\n\n return <Component ref={ref} className={textClasses} {...props} />;\n}\n\nexport { Text };\n"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Client-only components that use React hooks and must be used in Client Components.
5
5
  */
6
6
  export { Accordion, AccordionItem } from './components/accordion.js';
7
- export { Alert, AlertActions, AlertBody, AlertDescription, AlertTitle } from './components/alert.js';
7
+ export { Alert, AlertActions, AlertBody, AlertDescription, AlertTitle, } from './components/alert.js';
8
8
  export { Avatar } from './components/avatar.js';
9
9
  export { AvatarGroup } from './components/avatar-group.js';
10
10
  export { Badge } from './components/badge.js';
@@ -28,6 +28,8 @@ export { Kbd, KbdShortcut } from './components/kbd.js';
28
28
  export { Link } from './components/link.js';
29
29
  export { Listbox, ListboxDescription, ListboxLabel, ListboxOption, } from './components/listbox.js';
30
30
  export { Navbar, NavbarDivider, NavbarItem, NavbarLabel, NavbarSection, NavbarSpacer, } from './components/navbar.js';
31
+ export { Pagination, PaginationContent, PaginationEllipsis, type PaginationEllipsisProps, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, type PaginationNextProps, PaginationPrevious, type PaginationPreviousProps, type PaginationProps, } from './components/Pagination.js';
32
+ export { PricingTable, type PricingTableProps, type PricingTier, } from './components/pricing-table.js';
31
33
  export { Progress } from './components/progress.js';
32
34
  export { Radio, RadioField, RadioGroup } from './components/radio.js';
33
35
  export { Rating } from './components/rating.js';
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}