@humain/ui 2.4.1 → 2.4.3

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 (157) hide show
  1. package/dist/index150.js +1 -1
  2. package/dist/index150.js.map +1 -1
  3. package/dist/index194.js +6 -8
  4. package/dist/index194.js.map +1 -1
  5. package/dist/index24.js +1 -1
  6. package/dist/index24.js.map +1 -1
  7. package/dist/styles.css +1 -1
  8. package/dist/wc/AIClarificationCard.js +1 -1
  9. package/dist/wc/AIContainer.js +1 -1
  10. package/dist/wc/AIForm.js +17 -17
  11. package/dist/wc/AIInput.js +32 -32
  12. package/dist/wc/AIInput.js.map +1 -1
  13. package/dist/wc/AIMermaidDiagram.js +1 -1
  14. package/dist/wc/AIMessage.js +1 -1
  15. package/dist/wc/AIScrollButton.js +4 -4
  16. package/dist/wc/AIToolCall.js +5 -5
  17. package/dist/wc/AppSidebar.constants.js +1 -1
  18. package/dist/wc/AvatarFallback.js +5 -5
  19. package/dist/wc/CheckboxIndicator.js +7 -7
  20. package/dist/wc/CollapsiblePanel.js +1 -1
  21. package/dist/wc/DialogTrigger.js +9 -9
  22. package/dist/wc/DropdownMenu.js +16 -16
  23. package/dist/wc/MenuSubmenuTrigger.js +31 -31
  24. package/dist/wc/PopoverDescription.js +30 -30
  25. package/dist/wc/PrehydrationScript.js +1 -1
  26. package/dist/wc/Select.js +18 -18
  27. package/dist/wc/SelectSeparator.js +72 -72
  28. package/dist/wc/SelectSeparator.js.map +1 -1
  29. package/dist/wc/Tabs.js +18 -18
  30. package/dist/wc/TooltipProvider.js +9 -9
  31. package/dist/wc/chart.js +1 -1
  32. package/dist/wc/chunk-75Z2AOVW.js +39 -39
  33. package/dist/wc/chunk-OSK3NFVY.js +32 -32
  34. package/dist/wc/command.js +4 -4
  35. package/dist/wc/form-field.js +1 -1
  36. package/dist/wc/form-fieldset.js +5 -5
  37. package/dist/wc/hf-accordion-card.js +4 -4
  38. package/dist/wc/hf-accordion.js +6 -6
  39. package/dist/wc/hf-ai-feedback-bar.js +5 -5
  40. package/dist/wc/hf-ai-reasoning-block.js +6 -6
  41. package/dist/wc/hf-ai-system-message.js +1 -1
  42. package/dist/wc/hf-ai-tool-run.js +1 -1
  43. package/dist/wc/hf-area-chart.js +15 -15
  44. package/dist/wc/hf-autocomplete.js +36 -36
  45. package/dist/wc/hf-bar-chart.js +4 -4
  46. package/dist/wc/hf-calendar.js +4 -4
  47. package/dist/wc/hf-carousel.js +1 -1
  48. package/dist/wc/hf-context-menu.js +8 -8
  49. package/dist/wc/hf-donut-chart.js +10 -10
  50. package/dist/wc/hf-empty-state.js +87 -88
  51. package/dist/wc/hf-empty-state.js.map +1 -1
  52. package/dist/wc/hf-history.js +4 -4
  53. package/dist/wc/hf-horizontal-bar-chart.js +7 -7
  54. package/dist/wc/hf-hover-card.js +6 -6
  55. package/dist/wc/hf-line-chart.js +4 -4
  56. package/dist/wc/hf-metric-card.js +5 -5
  57. package/dist/wc/hf-metric-item.js +8 -8
  58. package/dist/wc/hf-metric-item.js.map +1 -1
  59. package/dist/wc/hf-nav-account-menu.js +4 -4
  60. package/dist/wc/hf-notification-panel.js +2 -2
  61. package/dist/wc/hf-pie-chart.js +17 -17
  62. package/dist/wc/hf-radar-chart.js +16 -16
  63. package/dist/wc/hf-section-header.js +6 -6
  64. package/dist/wc/hf-sheet.js +1 -1
  65. package/dist/wc/hf-sparkline-chart.js +5 -5
  66. package/dist/wc/hf-steps.js +6 -6
  67. package/dist/wc/journeyDiagram-3NMN7TZE.js +10 -10
  68. package/dist/wc/pieDiagram-E7YTZNPT.js +16 -16
  69. package/dist/wc/popupStateMapping.js +53 -53
  70. package/dist/wc/popupStateMapping.js.map +1 -1
  71. package/dist/wc/selection-group.js +1 -1
  72. package/dist/wc/selection-group.js.map +1 -1
  73. package/dist/wc/{useOpenChangeComplete.js → stateAttributesMapping.js} +21 -21
  74. package/dist/wc/stateAttributesMapping.js.map +1 -0
  75. package/dist/wc/stateDiagram-D77RDMKH.js +3 -3
  76. package/dist/wc/timeline-definition-24CTP7MA.js +19 -19
  77. package/dist/wc/useCollapsiblePanel.js +3 -3
  78. package/dist/wc/usePopupHandleStore.js +4 -4
  79. package/dist/wc/useScrollLock.js +1 -1
  80. package/dist/wc/vendor/recharts.js +525 -524
  81. package/dist/wc/vendor/recharts.js.map +1 -1
  82. package/dist/wc/xychartDiagram-S5SC5T6Z.js +6 -6
  83. package/dist/wc-react/AIClarificationCard.js +1 -1
  84. package/dist/wc-react/AIContainer.js +1 -1
  85. package/dist/wc-react/AIForm.js +17 -17
  86. package/dist/wc-react/AIInput.js +2 -2
  87. package/dist/wc-react/AIInput.js.map +1 -1
  88. package/dist/wc-react/AIMermaidDiagram.js +1 -1
  89. package/dist/wc-react/AIMessage.js +1 -1
  90. package/dist/wc-react/AIScrollButton.js +4 -4
  91. package/dist/wc-react/AIToolCall.js +5 -5
  92. package/dist/wc-react/AppSidebar.constants.js +1 -1
  93. package/dist/wc-react/AvatarFallback.js +5 -5
  94. package/dist/wc-react/CheckboxIndicator.js +7 -7
  95. package/dist/wc-react/CollapsiblePanel.js +1 -1
  96. package/dist/wc-react/DialogTrigger.js +9 -9
  97. package/dist/wc-react/DropdownMenu.js +16 -16
  98. package/dist/wc-react/FloatingPortalLite.js +3 -3
  99. package/dist/wc-react/MenuSubmenuTrigger.js +31 -31
  100. package/dist/wc-react/PopoverDescription.js +31 -31
  101. package/dist/wc-react/PrehydrationScript.js +1 -1
  102. package/dist/wc-react/Select.js +18 -18
  103. package/dist/wc-react/SelectSeparator.js +71 -70
  104. package/dist/wc-react/SelectSeparator.js.map +1 -1
  105. package/dist/wc-react/Tabs.js +18 -18
  106. package/dist/wc-react/TooltipProvider.js +9 -9
  107. package/dist/wc-react/chart.js +1 -1
  108. package/dist/wc-react/chunk-75Z2AOVW.js +39 -39
  109. package/dist/wc-react/chunk-OSK3NFVY.js +32 -32
  110. package/dist/wc-react/command.js +4 -4
  111. package/dist/wc-react/form-field.js +1 -1
  112. package/dist/wc-react/form-fieldset.js +77 -77
  113. package/dist/wc-react/hf-accordion-card.js +4 -4
  114. package/dist/wc-react/hf-accordion.js +6 -6
  115. package/dist/wc-react/hf-ai-feedback-bar.js +5 -5
  116. package/dist/wc-react/hf-ai-reasoning-block.js +6 -6
  117. package/dist/wc-react/hf-ai-system-message.js +1 -1
  118. package/dist/wc-react/hf-ai-tool-run.js +1 -1
  119. package/dist/wc-react/hf-autocomplete.js +37 -37
  120. package/dist/wc-react/hf-calendar.js +4 -4
  121. package/dist/wc-react/hf-carousel.js +1 -1
  122. package/dist/wc-react/hf-context-menu.js +8 -8
  123. package/dist/wc-react/hf-data-table.js +1 -1
  124. package/dist/wc-react/hf-empty-state.js +87 -88
  125. package/dist/wc-react/hf-empty-state.js.map +1 -1
  126. package/dist/wc-react/hf-history.js +4 -4
  127. package/dist/wc-react/hf-hover-card.js +6 -6
  128. package/dist/wc-react/hf-metric-item.js +6 -6
  129. package/dist/wc-react/hf-metric-item.js.map +1 -1
  130. package/dist/wc-react/hf-nav-account-menu.js +4 -4
  131. package/dist/wc-react/hf-notification-panel.js +2 -2
  132. package/dist/wc-react/hf-section-header.js +6 -6
  133. package/dist/wc-react/hf-sheet.js +1 -1
  134. package/dist/wc-react/hf-steps.js +5 -5
  135. package/dist/wc-react/journeyDiagram-3NMN7TZE.js +10 -10
  136. package/dist/wc-react/pieDiagram-E7YTZNPT.js +16 -16
  137. package/dist/wc-react/popupStateMapping.js +54 -54
  138. package/dist/wc-react/popupStateMapping.js.map +1 -1
  139. package/dist/wc-react/selection-group.js +1 -1
  140. package/dist/wc-react/selection-group.js.map +1 -1
  141. package/dist/wc-react/{useOpenChangeComplete.js → stateAttributesMapping.js} +19 -19
  142. package/dist/wc-react/stateAttributesMapping.js.map +1 -0
  143. package/dist/wc-react/stateDiagram-D77RDMKH.js +3 -3
  144. package/dist/wc-react/timeline-definition-24CTP7MA.js +19 -19
  145. package/dist/wc-react/useCollapsiblePanel.js +3 -3
  146. package/dist/wc-react/usePopupHandleStore.js +3 -3
  147. package/dist/wc-react/useScrollLock.js +1 -1
  148. package/dist/wc-react/vendor/recharts.js +525 -524
  149. package/dist/wc-react/vendor/recharts.js.map +1 -1
  150. package/dist/wc-react/xychartDiagram-S5SC5T6Z.js +6 -6
  151. package/package.json +1 -1
  152. package/skills/humain-ui/SKILL.md +1 -1
  153. package/skills/humain-ui-wc/SKILL.md +1 -1
  154. package/skills/humain-ui-wc.skill +0 -0
  155. package/skills/humain-ui.skill +0 -0
  156. package/dist/wc/useOpenChangeComplete.js.map +0 -1
  157. package/dist/wc-react/useOpenChangeComplete.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hf-empty-state.js","names":[],"sources":["../../src/components/organisms/content/EmptyState/EmptyState.tsx","../../src/wc/hf-empty-state.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport { Heart, Search } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '@/components/atoms/buttons/Button';\nimport { FeaturedIcon } from '@/components/molecules/data/FeaturedIcon';\nimport {\n type FileExtension,\n FileTypeIcon,\n type SimpleFileType,\n} from '@/components/molecules/files/FileTypeIcon';\nimport { cn } from '@/lib/utils';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type EmptyStateSize = 'sm' | 'md' | 'lg';\nexport type EmptyStateMedia =\n | 'featured-icon'\n | 'illustration'\n | 'file-type-icon'\n | 'none';\nexport type EmptyStateBackgroundPatternVariant =\n | 'circles'\n | 'grid'\n | 'grid-dot'\n | 'squares'\n | 'none';\nexport type EmptyStateIllustrationVariant =\n | 'cloud'\n | 'box'\n | 'documents'\n | 'credit-card';\nexport type EmptyStateTone = 'primary' | 'gray';\n\nexport interface EmptyStateActionConfig {\n label: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n startIcon?: React.ReactNode;\n disabled?: boolean;\n loading?: boolean;\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Shared maps\n// ============================================================================\n\nconst patternSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-[336px]',\n md: 'size-[480px]',\n lg: 'size-[768px]',\n};\n\nconst patternGridSize: Record<EmptyStateSize, string> = {\n sm: '24px 24px',\n md: '32px 32px',\n lg: '48px 48px',\n};\n\nconst illustrationSizeClass: Record<\n EmptyStateSize,\n Record<EmptyStateIllustrationVariant, string>\n> = {\n sm: {\n cloud: 'h-[118px] w-[152px]',\n box: 'h-[124px] w-[152px]',\n documents: 'h-[118px] w-[152px]',\n 'credit-card': 'h-[118px] w-[152px]',\n },\n md: {\n cloud: 'h-32 w-[172px]',\n box: 'h-[136px] w-[172px]',\n documents: 'h-32 w-[172px]',\n 'credit-card': 'h-[134px] w-[172px]',\n },\n lg: {\n cloud: 'h-40 w-[220px]',\n box: 'h-[168px] w-[220px]',\n documents: 'h-40 w-[220px]',\n 'credit-card': 'h-40 w-[220px]',\n },\n};\n\nconst illustrationIconSizeClass: Record<EmptyStateSize, string> = {\n sm: 'p-2',\n md: 'p-2.5',\n lg: 'p-2.5',\n};\n\nconst iconGlyphSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-4',\n md: 'size-4',\n lg: 'size-5',\n};\n\nconst illustrationIconCenterClass: Record<\n EmptyStateIllustrationVariant,\n string\n> = {\n cloud: 'top-[58%]',\n box: 'top-[58%]',\n documents: 'top-[60%]',\n 'credit-card': 'top-[60%]',\n};\n\nconst illustrationCircleSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-[104px]',\n md: 'size-32',\n lg: 'size-40',\n};\n\nconst fileIconWrapSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-20',\n md: 'size-24',\n lg: 'size-28',\n};\n\nconst textGapClass: Record<EmptyStateSize, string> = {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-2',\n};\n\nconst mediaGapClass: Record<EmptyStateSize, string> = {\n sm: 'gap-4',\n md: 'gap-5',\n lg: 'gap-5',\n};\n\nconst contentGapClass: Record<EmptyStateSize, string> = {\n sm: 'gap-6',\n md: 'gap-8',\n lg: 'gap-8',\n};\n\nconst featuredIconSize: Record<EmptyStateSize, 'sm' | 'md' | 'lg'> = {\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n};\n\nconst fileIconSize: Record<EmptyStateSize, 'sm' | 'md' | 'lg'> = {\n sm: 'md',\n md: 'md',\n lg: 'md',\n};\n\nconst headingTag = {\n 2: 'h2',\n 3: 'h3',\n 4: 'h4',\n} as const;\n\nfunction EmptyStateIconGlyph({\n icon,\n size,\n}: {\n icon: React.ReactNode;\n size: EmptyStateSize;\n}) {\n return (\n <span\n data-slot=\"empty-state-icon-glyph\"\n data-testid=\"empty-state-icon-glyph\"\n data-centered=\"true\"\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex shrink-0 items-center justify-center leading-none [line-height:0] [&>svg]:block [&>svg]:size-full [&>svg]:shrink-0',\n iconGlyphSizeClass[size],\n )}\n >\n {icon}\n </span>\n );\n}\n\n// ============================================================================\n// Background Pattern\n// ============================================================================\n\nexport interface EmptyStateBackgroundPatternProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n size?: EmptyStateSize;\n variant?: EmptyStateBackgroundPatternVariant;\n}\n\nconst gridPatternStyle = (\n size: EmptyStateSize,\n dot = false,\n): React.CSSProperties => ({\n backgroundImage: dot\n ? 'radial-gradient(circle, color-mix(in oklch, var(--border) 70%, transparent) 1px, transparent 1px)'\n : [\n 'linear-gradient(to right, color-mix(in oklch, var(--border) 54%, transparent) 1px, transparent 1px)',\n 'linear-gradient(to bottom, color-mix(in oklch, var(--border) 54%, transparent) 1px, transparent 1px)',\n ].join(', '),\n backgroundSize: patternGridSize[size],\n});\n\nconst squaresBySize: Record<EmptyStateSize, number[]> = {\n sm: [96, 144, 192, 240, 288, 336],\n md: [96, 160, 224, 288, 352, 416, 480],\n lg: [96, 192, 288, 384, 480, 576, 672, 768],\n};\n\nexport const EmptyStateBackgroundPattern = React.forwardRef<\n HTMLDivElement,\n EmptyStateBackgroundPatternProps\n>(({ className, size = 'sm', variant = 'circles', style, ...props }, ref) => {\n if (variant === 'none') {\n return null;\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"empty-state-background-pattern\"\n data-testid=\"empty-state-pattern\"\n data-size={size}\n data-variant={variant}\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 overflow-hidden opacity-75',\n patternSizeClass[size],\n className,\n )}\n style={style}\n {...props}\n >\n <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_center,var(--background)_0%,transparent_68%)]\" />\n\n {variant === 'circles' && (\n <div className=\"absolute inset-0\">\n {Array.from({ length: 7 }, (_, index) => (\n <span\n key={index}\n className=\"absolute left-1/2 top-1/2 rounded-full border border-border/60\"\n style={{\n width: `${(index + 1) * 14}%`,\n height: `${(index + 1) * 14}%`,\n transform: 'translate(-50%, -50%)',\n }}\n />\n ))}\n </div>\n )}\n\n {(variant === 'grid' || variant === 'grid-dot') && (\n <div\n className=\"absolute inset-0 opacity-70 [mask-image:radial-gradient(circle_at_center,black_0%,black_48%,transparent_76%)]\"\n style={gridPatternStyle(size, variant === 'grid-dot')}\n />\n )}\n\n {variant === 'squares' && (\n <div className=\"absolute inset-0\">\n {squaresBySize[size].map((squareSize) => (\n <span\n key={squareSize}\n className=\"absolute left-1/2 top-1/2 rounded-xl border border-border/55\"\n style={{\n width: squareSize,\n height: squareSize,\n transform: 'translate(-50%, -50%) rotate(-12.5deg)',\n }}\n />\n ))}\n </div>\n )}\n </div>\n );\n});\n\nEmptyStateBackgroundPattern.displayName = 'EmptyStateBackgroundPattern';\n\n// ============================================================================\n// Illustration\n// ============================================================================\n\nexport interface EmptyStateIllustrationProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n size?: EmptyStateSize;\n variant?: EmptyStateIllustrationVariant;\n tone?: EmptyStateTone;\n icon?: React.ReactNode;\n}\n\nfunction DecorativeDots({ tone }: { tone: EmptyStateTone }) {\n const dotClassName =\n tone === 'primary' ? 'bg-primary/70' : 'bg-muted-foreground/10';\n\n return (\n <>\n <span\n className={cn(\n 'absolute left-[7%] top-[8%] size-2 rounded-full',\n dotClassName,\n )}\n />\n <span\n className={cn(\n 'absolute right-[6%] top-[18%] size-3 rounded-full',\n dotClassName,\n )}\n />\n <span\n className={cn(\n 'absolute bottom-[10%] left-[8%] size-3 rounded-full',\n dotClassName,\n )}\n />\n <span\n className={cn(\n 'absolute bottom-[18%] right-[13%] size-2 rounded-full',\n dotClassName,\n )}\n />\n </>\n );\n}\n\nfunction CloudShape({\n accentId,\n shadeId,\n tone,\n}: {\n accentId: string;\n shadeId: string;\n tone: EmptyStateTone;\n}) {\n return (\n <g className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\">\n <path\n d=\"M54 110c-21 0-38-14-38-32 0-16 14-30 33-32 8-19 27-31 49-31 27 0 50 19 55 43 17 3 30 16 30 32 0 19-18 34-40 34H55c-1 0-1-14-1-14Z\"\n fill={`url(#${shadeId})`}\n />\n <path\n d=\"M68 106c-18 0-32-12-32-27 0-13 11-24 27-26 7-16 23-26 42-26 23 0 42 16 46 36 15 3 26 14 26 28 0 16-15 29-34 29H68v-14Z\"\n fill={`url(#${accentId})`}\n opacity={tone === 'primary' ? 0.78 : 0.36}\n />\n </g>\n );\n}\n\nfunction BoxShape({\n accentId,\n shadeId,\n}: {\n accentId: string;\n shadeId: string;\n}) {\n return (\n <g className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\">\n <path d=\"M72 42 132 20l55 31-62 24-53-33Z\" fill={`url(#${accentId})`} />\n <path d=\"M72 42v72l53 34V75L72 42Z\" fill={`url(#${shadeId})`} />\n <path d=\"M125 75v73l62-35V51l-62 24Z\" fill=\"var(--card)\" />\n <path\n d=\"M132 20v33l24 14V34l-24-14Z\"\n fill=\"currentColor\"\n opacity=\"0.34\"\n />\n <path\n d=\"M72 42 132 20l55 31-62 24-53-33Z\"\n fill=\"none\"\n stroke=\"var(--border)\"\n />\n </g>\n );\n}\n\nfunction DocumentsShape({\n accentId,\n shadeId,\n}: {\n accentId: string;\n shadeId: string;\n}) {\n return (\n <g className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\">\n <g transform=\"translate(44 48) rotate(-18)\">\n <rect\n width=\"58\"\n height=\"78\"\n rx=\"7\"\n fill={`url(#${shadeId})`}\n stroke=\"var(--border)\"\n />\n <path\n d=\"M15 21h28M15 35h21M15 49h28\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.28\"\n />\n </g>\n <g transform=\"translate(83 32)\">\n <rect\n width=\"58\"\n height=\"88\"\n rx=\"7\"\n fill=\"var(--card)\"\n stroke=\"var(--border)\"\n />\n <path\n d=\"M16 26h28M16 41h22M16 56h28\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.32\"\n />\n </g>\n <g transform=\"translate(121 47) rotate(18)\">\n <rect\n width=\"58\"\n height=\"78\"\n rx=\"7\"\n fill={`url(#${accentId})`}\n stroke=\"var(--border)\"\n />\n <path\n d=\"M15 21h28M15 35h21M15 49h28\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.32\"\n />\n </g>\n </g>\n );\n}\n\nfunction CreditCardShape({\n accentId,\n shadeId,\n}: {\n accentId: string;\n shadeId: string;\n}) {\n return (\n <g className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\">\n <rect\n x=\"42\"\n y=\"48\"\n width=\"136\"\n height=\"82\"\n rx=\"12\"\n fill={`url(#${shadeId})`}\n stroke=\"var(--border)\"\n />\n <rect\n x=\"42\"\n y=\"70\"\n width=\"136\"\n height=\"16\"\n fill={`url(#${accentId})`}\n opacity=\"0.72\"\n />\n <rect\n x=\"58\"\n y=\"104\"\n width=\"28\"\n height=\"8\"\n rx=\"2\"\n fill=\"currentColor\"\n opacity=\"0.28\"\n />\n <rect\n x=\"58\"\n y=\"116\"\n width=\"58\"\n height=\"5\"\n rx=\"2.5\"\n fill=\"currentColor\"\n opacity=\"0.18\"\n />\n <circle cx=\"146\" cy=\"112\" r=\"10\" fill=\"currentColor\" opacity=\"0.24\" />\n <circle cx=\"158\" cy=\"112\" r=\"10\" fill=\"currentColor\" opacity=\"0.38\" />\n </g>\n );\n}\n\nexport const EmptyStateIllustration = React.forwardRef<\n HTMLDivElement,\n EmptyStateIllustrationProps\n>(\n (\n {\n className,\n size = 'sm',\n variant = 'cloud',\n tone = 'primary',\n icon = <Heart aria-hidden=\"true\" />,\n ...props\n },\n ref,\n ) => {\n const accentId = React.useId();\n const shadeId = React.useId();\n const isPrimary = tone === 'primary';\n\n return (\n <div\n ref={ref}\n data-slot=\"empty-state-illustration\"\n data-testid=\"empty-state-illustration\"\n data-size={size}\n data-variant={variant}\n data-tone={tone}\n aria-hidden=\"true\"\n className={cn(\n 'relative shrink-0 text-primary',\n !isPrimary && 'text-muted-foreground',\n illustrationSizeClass[size][variant],\n className,\n )}\n {...props}\n >\n <div\n data-slot=\"empty-state-illustration-background\"\n data-testid=\"empty-state-illustration-background\"\n data-centered=\"true\"\n className={cn(\n 'absolute left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full',\n isPrimary ? 'bg-primary/20' : 'bg-muted/80',\n illustrationCircleSizeClass[size],\n illustrationIconCenterClass[variant],\n )}\n />\n <DecorativeDots tone={tone} />\n <svg\n viewBox=\"0 0 220 168\"\n className=\"absolute inset-0 size-full overflow-visible\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\n <linearGradient id={accentId} x1=\"25\" y1=\"12\" x2=\"190\" y2=\"148\">\n <stop\n stopColor={isPrimary ? 'var(--primary)' : 'var(--muted)'}\n stopOpacity={isPrimary ? 0.34 : 0.74}\n />\n <stop stopColor=\"var(--card)\" stopOpacity={0.95} />\n </linearGradient>\n <linearGradient id={shadeId} x1=\"54\" y1=\"18\" x2=\"165\" y2=\"140\">\n <stop stopColor=\"var(--card)\" />\n <stop\n stopColor={\n isPrimary ? 'var(--primary)' : 'var(--muted-foreground)'\n }\n stopOpacity={isPrimary ? 0.18 : 0.14}\n />\n </linearGradient>\n </defs>\n\n {variant === 'cloud' && (\n <CloudShape accentId={accentId} shadeId={shadeId} tone={tone} />\n )}\n {variant === 'box' && (\n <BoxShape accentId={accentId} shadeId={shadeId} />\n )}\n {variant === 'documents' && (\n <DocumentsShape accentId={accentId} shadeId={shadeId} />\n )}\n {variant === 'credit-card' && (\n <CreditCardShape accentId={accentId} shadeId={shadeId} />\n )}\n </svg>\n <div\n data-slot=\"empty-state-illustration-icon\"\n data-testid=\"empty-state-illustration-icon\"\n data-centered=\"true\"\n className={cn(\n 'absolute left-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-xl bg-primary/10 text-primary shadow-xs backdrop-blur-md supports-backdrop-filter:backdrop-blur-md [&>svg]:shrink-0',\n !isPrimary && 'bg-muted text-muted-foreground',\n illustrationIconSizeClass[size],\n illustrationIconCenterClass[variant],\n )}\n >\n <EmptyStateIconGlyph icon={icon} size={size} />\n </div>\n </div>\n );\n },\n);\n\nEmptyStateIllustration.displayName = 'EmptyStateIllustration';\n\n// ============================================================================\n// EmptyState\n// ============================================================================\n\nconst emptyStateVariants = cva(\n 'relative isolate mx-auto flex w-full max-w-[512px] items-center justify-center overflow-visible py-8 text-center',\n {\n variants: {\n size: {\n sm: 'min-h-[212px]',\n md: 'min-h-[280px]',\n lg: 'min-h-[360px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n },\n);\n\nexport interface EmptyStateProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n title: React.ReactNode;\n description?: React.ReactNode;\n size?: EmptyStateSize;\n media?: EmptyStateMedia;\n pattern?: EmptyStateBackgroundPatternVariant | 'auto';\n icon?: React.ReactNode;\n iconLabel?: string;\n illustrationVariant?: EmptyStateIllustrationVariant;\n illustrationTone?: EmptyStateTone;\n fileExtension?: FileExtension;\n fileType?: SimpleFileType;\n primaryAction?: EmptyStateActionConfig;\n secondaryAction?: EmptyStateActionConfig;\n actions?: React.ReactNode;\n headingLevel?: 2 | 3 | 4;\n}\n\nfunction resolvePattern(\n pattern: EmptyStateProps['pattern'],\n media: EmptyStateMedia,\n): EmptyStateBackgroundPatternVariant {\n if (!pattern || pattern === 'auto') {\n if (media === 'illustration') return 'grid';\n if (media === 'none') return 'none';\n return 'circles';\n }\n return pattern;\n}\n\nfunction renderEmptyStateAction(\n action: EmptyStateActionConfig,\n intent: 'primary' | 'secondary',\n) {\n const {\n label,\n onClick,\n startIcon,\n disabled,\n loading,\n 'aria-label': ariaLabel,\n } = action;\n\n return (\n <Button\n appearance={intent === 'primary' ? 'solid' : 'outline'}\n variant={intent === 'primary' ? 'primary' : 'secondary'}\n size=\"sm\"\n shape=\"rounded\"\n onClick={onClick}\n disabled={disabled}\n loading={loading}\n startIcon={startIcon}\n aria-label={ariaLabel}\n type=\"button\"\n >\n {label}\n </Button>\n );\n}\n\nexport const EmptyState = React.forwardRef<HTMLElement, EmptyStateProps>(\n (\n {\n className,\n title,\n description,\n size = 'sm',\n media = 'featured-icon',\n pattern = 'auto',\n icon,\n iconLabel,\n illustrationVariant = 'cloud',\n illustrationTone = 'gray',\n fileExtension,\n fileType = 'document',\n primaryAction,\n secondaryAction,\n actions,\n headingLevel = 3,\n ...props\n },\n ref,\n ) => {\n const Heading = headingTag[headingLevel];\n const resolvedPattern = resolvePattern(pattern, media);\n const defaultIcon = icon ?? <Search aria-hidden=\"true\" />;\n const hasActions = actions || primaryAction || secondaryAction;\n\n return (\n <section\n ref={ref}\n data-slot=\"empty-state\"\n aria-label={typeof title === 'string' ? title : 'Empty state'}\n className={cn(emptyStateVariants({ size }), className)}\n {...props}\n >\n <div\n data-slot=\"empty-state-content\"\n className={cn(\n 'relative z-10 flex min-w-0 flex-1 flex-col items-center',\n contentGapClass[size],\n )}\n >\n <div\n data-slot=\"empty-state-body\"\n className={cn(\n 'flex w-full flex-col items-center',\n mediaGapClass[size],\n )}\n >\n {media !== 'none' && (\n <div\n data-slot=\"empty-state-media\"\n data-testid=\"empty-state-media\"\n data-media={media}\n data-centered=\"true\"\n className=\"relative flex w-full min-w-0 justify-center\"\n >\n <EmptyStateBackgroundPattern\n size={size}\n variant={resolvedPattern}\n data-centered=\"true\"\n className=\"z-0\"\n />\n\n {media === 'featured-icon' && (\n <FeaturedIcon\n data-slot=\"empty-state-featured-icon\"\n size={featuredIconSize[size]}\n shape=\"rounded\"\n intent=\"default\"\n icon={\n <EmptyStateIconGlyph icon={defaultIcon} size={size} />\n }\n aria-label={iconLabel}\n className=\"relative z-10 delight-stagger motion-reduce:animate-none\"\n />\n )}\n\n {media === 'illustration' && (\n <EmptyStateIllustration\n size={size}\n variant={illustrationVariant}\n tone={illustrationTone}\n icon={defaultIcon}\n className=\"relative z-10 delight-stagger motion-reduce:animate-none\"\n />\n )}\n\n {media === 'file-type-icon' && (\n <div\n data-slot=\"empty-state-file-icon-wrap\"\n data-testid=\"empty-state-file-icon-wrap\"\n data-centered=\"true\"\n className={cn(\n 'relative z-10 flex items-center justify-center rounded-full bg-linear-[104deg,color-mix(in_oklch,var(--card)_60%,transparent),color-mix(in_oklch,var(--muted)_55%,transparent)] delight-stagger motion-reduce:animate-none',\n fileIconWrapSizeClass[size],\n )}\n >\n <div\n data-slot=\"empty-state-file-icon-optical-center\"\n data-testid=\"empty-state-file-icon-optical-center\"\n data-centered=\"true\"\n >\n <FileTypeIcon\n extension={fileExtension}\n fileType={fileExtension ? undefined : fileType}\n size={fileIconSize[size]}\n className=\"drop-shadow-[0_1px_2px_var(--shadow-xs-1-color)]\"\n />\n </div>\n </div>\n )}\n </div>\n )}\n\n <div\n data-slot=\"empty-state-text\"\n className={cn(\n 'flex w-full max-w-[352px] flex-col items-center text-center',\n textGapClass[size],\n )}\n >\n <Heading className=\"w-full text-base font-semibold leading-6 text-foreground\">\n {title}\n </Heading>\n {description && (\n <p className=\"w-full text-sm leading-5 text-secondary-foreground\">\n {description}\n </p>\n )}\n </div>\n </div>\n\n {hasActions && (\n <div\n data-slot=\"empty-state-actions\"\n className=\"flex flex-wrap items-center justify-center gap-3\"\n >\n {actions ?? (\n <>\n {secondaryAction &&\n renderEmptyStateAction(secondaryAction, 'secondary')}\n {primaryAction &&\n renderEmptyStateAction(primaryAction, 'primary')}\n </>\n )}\n </div>\n )}\n </div>\n </section>\n );\n },\n);\n\nEmptyState.displayName = 'EmptyState';\n","/**\n * Web Component wrapper for EmptyState\n * Custom element: <hf-empty-state>\n *\n * @generated by scripts/generate-wc-components.ts\n * DO NOT EDIT MANUALLY\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { EmptyState } from '../components/organisms/content/EmptyState';\nimport { parseAttr, parseValue, type PropDefs } from './_shared';\n\n/**\n * Prop type definitions for attribute parsing\n */\nconst propTypes: PropDefs = {\n title: 'string',\n description: 'string',\n size: 'string',\n media: 'string',\n pattern: 'string',\n icon: 'json',\n iconLabel: 'string',\n illustrationVariant: 'string',\n illustrationTone: 'string',\n fileExtension: 'string',\n fileType: 'string',\n primaryAction: 'json',\n secondaryAction: 'json',\n actions: 'json',\n headingLevel: 'string'\n};\n\nclass EmptyStateWC extends HTMLElement {\n private _root: ReturnType<typeof createRoot> | null = null;\n private _childrenContainer: HTMLDivElement | null = null;\n private _props: Record<string, unknown> = {};\n private _initialized = false;\n\n connectedCallback() {\n setTimeout(() => this._initialize(), 0);\n }\n\n private _initialize() {\n if (this._initialized) return;\n this._initialized = true;\n\n const originalChildren: Node[] = [];\n for (const child of Array.from(this.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE && !child.textContent?.trim()) {\n continue;\n }\n originalChildren.push(child);\n }\n\n const reactContainer = this.ownerDocument.createElement('div');\n reactContainer.style.display = 'contents';\n\n this._childrenContainer = this.ownerDocument.createElement('div');\n this._childrenContainer.style.display = 'contents';\n\n originalChildren.forEach((child) => this._childrenContainer!.appendChild(child));\n\n while (this.firstChild) this.removeChild(this.firstChild);\n this.appendChild(reactContainer);\n\n this._root = createRoot(reactContainer);\n this._render();\n }\n\n disconnectedCallback() {\n this._root?.unmount();\n this._root = null;\n }\n\n attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null) {\n this._render();\n }\n\n static get observedAttributes() {\n return Object.keys(propTypes).map((prop) =>\n prop.replace(/([A-Z])/g, '-$1').toLowerCase(),\n );\n }\n\n _setProp(name: string, value: unknown) {\n const propType = propTypes[name] || 'string';\n this._props[name] = parseValue(value, propType);\n this._render();\n }\n\n _getProp(name: string): unknown {\n if (name in this._props) {\n return this._props[name];\n }\n const attrName = name.replace(/([A-Z])/g, '-$1').toLowerCase();\n const propType = propTypes[name] || 'string';\n return parseAttr(this.getAttribute(attrName), propType);\n }\n\n private _render() {\n if (!this._root || !this._childrenContainer) return;\n\n const props: Record<string, unknown> = {};\n for (const [propName, propType] of Object.entries(propTypes)) {\n if (propName in this._props) {\n props[propName] = this._props[propName];\n } else {\n const attrName = propName.replace(/([A-Z])/g, '-$1').toLowerCase();\n props[propName] = parseAttr(this.getAttribute(attrName), propType);\n }\n }\n\n const element = React.createElement(\n EmptyState,\n props,\n React.createElement('span', {\n ref: (el: HTMLSpanElement | null) => {\n if (el && this._childrenContainer) {\n el.replaceWith(this._childrenContainer);\n }\n },\n style: { display: 'contents' },\n }),\n );\n\n this._root.render(element);\n }\n}\n\nfor (const propName of Object.keys(propTypes)) {\n Object.defineProperty(EmptyStateWC.prototype, propName, {\n get() {\n return this._getProp(propName);\n },\n set(value: unknown) {\n this._setProp(propName, value);\n },\n enumerable: true,\n configurable: true,\n });\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('hf-empty-state')) {\n customElements.define('hf-empty-state', EmptyStateWC);\n}\n\nexport { EmptyStateWC };\nexport default EmptyStateWC;\n"],"mappings":"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"}
1
+ {"version":3,"file":"hf-empty-state.js","names":[],"sources":["../../src/components/organisms/content/EmptyState/EmptyState.tsx","../../src/wc/hf-empty-state.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport { Heart, Search } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '@/components/atoms/buttons/Button';\nimport { FeaturedIcon } from '@/components/molecules/data/FeaturedIcon';\nimport {\n type FileExtension,\n FileTypeIcon,\n type SimpleFileType,\n} from '@/components/molecules/files/FileTypeIcon';\nimport { cn } from '@/lib/utils';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type EmptyStateSize = 'sm' | 'md' | 'lg';\nexport type EmptyStateMedia =\n | 'featured-icon'\n | 'illustration'\n | 'file-type-icon'\n | 'none';\nexport type EmptyStateBackgroundPatternVariant =\n | 'circles'\n | 'grid'\n | 'grid-dot'\n | 'squares'\n | 'none';\nexport type EmptyStateIllustrationVariant =\n | 'cloud'\n | 'box'\n | 'documents'\n | 'credit-card';\nexport type EmptyStateTone = 'primary' | 'gray';\n\nexport interface EmptyStateActionConfig {\n label: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n startIcon?: React.ReactNode;\n disabled?: boolean;\n loading?: boolean;\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Shared maps\n// ============================================================================\n\nconst patternSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-[336px]',\n md: 'size-[480px]',\n lg: 'size-[768px]',\n};\n\nconst patternGridSize: Record<EmptyStateSize, string> = {\n sm: '24px 24px',\n md: '32px 32px',\n lg: '48px 48px',\n};\n\nconst illustrationSizeClass: Record<\n EmptyStateSize,\n Record<EmptyStateIllustrationVariant, string>\n> = {\n sm: {\n cloud: 'h-[118px] w-[152px]',\n box: 'h-[124px] w-[152px]',\n documents: 'h-[118px] w-[152px]',\n 'credit-card': 'h-[118px] w-[152px]',\n },\n md: {\n cloud: 'h-32 w-[172px]',\n box: 'h-[136px] w-[172px]',\n documents: 'h-32 w-[172px]',\n 'credit-card': 'h-[134px] w-[172px]',\n },\n lg: {\n cloud: 'h-40 w-[220px]',\n box: 'h-[168px] w-[220px]',\n documents: 'h-40 w-[220px]',\n 'credit-card': 'h-40 w-[220px]',\n },\n};\n\nconst illustrationIconSizeClass: Record<EmptyStateSize, string> = {\n sm: 'p-2',\n md: 'p-2.5',\n lg: 'p-2.5',\n};\n\nconst iconGlyphSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-4',\n md: 'size-4',\n lg: 'size-5',\n};\n\nconst illustrationCircleSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-[104px]',\n md: 'size-32',\n lg: 'size-40',\n};\n\nconst fileIconWrapSizeClass: Record<EmptyStateSize, string> = {\n sm: 'size-20',\n md: 'size-24',\n lg: 'size-28',\n};\n\nconst textGapClass: Record<EmptyStateSize, string> = {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-2',\n};\n\nconst mediaGapClass: Record<EmptyStateSize, string> = {\n sm: 'gap-4',\n md: 'gap-5',\n lg: 'gap-5',\n};\n\nconst contentGapClass: Record<EmptyStateSize, string> = {\n sm: 'gap-6',\n md: 'gap-8',\n lg: 'gap-8',\n};\n\nconst featuredIconSize: Record<EmptyStateSize, 'sm' | 'md' | 'lg'> = {\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n};\n\nconst fileIconSize: Record<EmptyStateSize, 'sm' | 'md' | 'lg'> = {\n sm: 'md',\n md: 'md',\n lg: 'md',\n};\n\nconst headingTag = {\n 2: 'h2',\n 3: 'h3',\n 4: 'h4',\n} as const;\n\nfunction EmptyStateIconGlyph({\n icon,\n size,\n}: {\n icon: React.ReactNode;\n size: EmptyStateSize;\n}) {\n return (\n <span\n data-slot=\"empty-state-icon-glyph\"\n data-testid=\"empty-state-icon-glyph\"\n data-centered=\"true\"\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex shrink-0 items-center justify-center leading-none [line-height:0] [&>svg]:block [&>svg]:size-full [&>svg]:shrink-0',\n iconGlyphSizeClass[size],\n )}\n >\n {icon}\n </span>\n );\n}\n\n// ============================================================================\n// Background Pattern\n// ============================================================================\n\nexport interface EmptyStateBackgroundPatternProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n size?: EmptyStateSize;\n variant?: EmptyStateBackgroundPatternVariant;\n}\n\nconst gridPatternStyle = (\n size: EmptyStateSize,\n dot = false,\n): React.CSSProperties => ({\n backgroundImage: dot\n ? 'radial-gradient(circle, color-mix(in oklch, var(--border) 70%, transparent) 1px, transparent 1px)'\n : [\n 'linear-gradient(to right, color-mix(in oklch, var(--border) 54%, transparent) 1px, transparent 1px)',\n 'linear-gradient(to bottom, color-mix(in oklch, var(--border) 54%, transparent) 1px, transparent 1px)',\n ].join(', '),\n backgroundSize: patternGridSize[size],\n});\n\nconst squaresBySize: Record<EmptyStateSize, number[]> = {\n sm: [96, 144, 192, 240, 288, 336],\n md: [96, 160, 224, 288, 352, 416, 480],\n lg: [96, 192, 288, 384, 480, 576, 672, 768],\n};\n\nexport const EmptyStateBackgroundPattern = React.forwardRef<\n HTMLDivElement,\n EmptyStateBackgroundPatternProps\n>(({ className, size = 'sm', variant = 'circles', style, ...props }, ref) => {\n if (variant === 'none') {\n return null;\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"empty-state-background-pattern\"\n data-testid=\"empty-state-pattern\"\n data-size={size}\n data-variant={variant}\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 overflow-hidden opacity-75',\n patternSizeClass[size],\n className,\n )}\n style={style}\n {...props}\n >\n <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_center,var(--background)_0%,transparent_68%)]\" />\n\n {variant === 'circles' && (\n <div className=\"absolute inset-0\">\n {Array.from({ length: 7 }, (_, index) => (\n <span\n key={index}\n className=\"absolute left-1/2 top-1/2 rounded-full border border-border/60\"\n style={{\n width: `${(index + 1) * 14}%`,\n height: `${(index + 1) * 14}%`,\n transform: 'translate(-50%, -50%)',\n }}\n />\n ))}\n </div>\n )}\n\n {(variant === 'grid' || variant === 'grid-dot') && (\n <div\n className=\"absolute inset-0 opacity-70 [mask-image:radial-gradient(circle_at_center,black_0%,black_48%,transparent_76%)]\"\n style={gridPatternStyle(size, variant === 'grid-dot')}\n />\n )}\n\n {variant === 'squares' && (\n <div className=\"absolute inset-0\">\n {squaresBySize[size].map((squareSize) => (\n <span\n key={squareSize}\n className=\"absolute left-1/2 top-1/2 rounded-xl border border-border/55\"\n style={{\n width: squareSize,\n height: squareSize,\n transform: 'translate(-50%, -50%) rotate(-12.5deg)',\n }}\n />\n ))}\n </div>\n )}\n </div>\n );\n});\n\nEmptyStateBackgroundPattern.displayName = 'EmptyStateBackgroundPattern';\n\n// ============================================================================\n// Illustration\n// ============================================================================\n\nexport interface EmptyStateIllustrationProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n size?: EmptyStateSize;\n variant?: EmptyStateIllustrationVariant;\n tone?: EmptyStateTone;\n icon?: React.ReactNode;\n}\n\nfunction DecorativeDots({ tone }: { tone: EmptyStateTone }) {\n const dotClassName =\n tone === 'primary' ? 'bg-primary/70' : 'bg-muted-foreground/10';\n\n return (\n <>\n <span\n className={cn(\n 'absolute left-[7%] top-[8%] size-2 rounded-full',\n dotClassName,\n )}\n />\n <span\n className={cn(\n 'absolute right-[6%] top-[18%] size-3 rounded-full',\n dotClassName,\n )}\n />\n <span\n className={cn(\n 'absolute bottom-[10%] left-[8%] size-3 rounded-full',\n dotClassName,\n )}\n />\n <span\n className={cn(\n 'absolute bottom-[18%] right-[13%] size-2 rounded-full',\n dotClassName,\n )}\n />\n </>\n );\n}\n\n// Keep every artwork bbox centered on the shared 220 × 168 viewBox center (110, 84).\nfunction CloudShape({\n accentId,\n shadeId,\n tone,\n}: {\n accentId: string;\n shadeId: string;\n tone: EmptyStateTone;\n}) {\n return (\n <g\n transform=\"translate(10.5 14.5)\"\n className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\"\n >\n <path\n d=\"M54 110c-21 0-38-14-38-32 0-16 14-30 33-32 8-19 27-31 49-31 27 0 50 19 55 43 17 3 30 16 30 32 0 19-18 34-40 34H55c-1 0-1-14-1-14Z\"\n fill={`url(#${shadeId})`}\n />\n <path\n d=\"M68 106c-18 0-32-12-32-27 0-13 11-24 27-26 7-16 23-26 42-26 23 0 42 16 46 36 15 3 26 14 26 28 0 16-15 29-34 29H68v-14Z\"\n fill={`url(#${accentId})`}\n opacity={tone === 'primary' ? 0.78 : 0.36}\n />\n </g>\n );\n}\n\nfunction BoxShape({\n accentId,\n shadeId,\n}: {\n accentId: string;\n shadeId: string;\n}) {\n return (\n <g\n transform=\"translate(-19.5)\"\n className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\"\n >\n <path d=\"M72 42 132 20l55 31-62 24-53-33Z\" fill={`url(#${accentId})`} />\n <path d=\"M72 42v72l53 34V75L72 42Z\" fill={`url(#${shadeId})`} />\n <path d=\"M125 75v73l62-35V51l-62 24Z\" fill=\"var(--card)\" />\n <path\n d=\"M132 20v33l24 14V34l-24-14Z\"\n fill=\"currentColor\"\n opacity=\"0.34\"\n />\n <path\n d=\"M72 42 132 20l55 31-62 24-53-33Z\"\n fill=\"none\"\n stroke=\"var(--border)\"\n />\n </g>\n );\n}\n\nfunction DocumentsShape({\n accentId,\n shadeId,\n}: {\n accentId: string;\n shadeId: string;\n}) {\n return (\n <g\n transform=\"translate(0 -0.5)\"\n className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\"\n >\n <g transform=\"translate(44 48) rotate(-18)\">\n <rect\n width=\"58\"\n height=\"78\"\n rx=\"7\"\n fill={`url(#${shadeId})`}\n stroke=\"var(--border)\"\n />\n <path\n d=\"M15 21h28M15 35h21M15 49h28\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.28\"\n />\n </g>\n <g transform=\"translate(83 32)\">\n <rect\n width=\"58\"\n height=\"88\"\n rx=\"7\"\n fill=\"var(--card)\"\n stroke=\"var(--border)\"\n />\n <path\n d=\"M16 26h28M16 41h22M16 56h28\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.32\"\n />\n </g>\n <g transform=\"translate(121 47) rotate(18)\">\n <rect\n width=\"58\"\n height=\"78\"\n rx=\"7\"\n fill={`url(#${accentId})`}\n stroke=\"var(--border)\"\n />\n <path\n d=\"M15 21h28M15 35h21M15 49h28\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.32\"\n />\n </g>\n </g>\n );\n}\n\nfunction CreditCardShape({\n accentId,\n shadeId,\n}: {\n accentId: string;\n shadeId: string;\n}) {\n return (\n <g\n transform=\"translate(0 -5)\"\n className=\"drop-shadow-[0_8px_16px_var(--shadow-soft-3-color)]\"\n >\n <rect\n x=\"42\"\n y=\"48\"\n width=\"136\"\n height=\"82\"\n rx=\"12\"\n fill={`url(#${shadeId})`}\n stroke=\"var(--border)\"\n />\n <rect\n x=\"42\"\n y=\"70\"\n width=\"136\"\n height=\"16\"\n fill={`url(#${accentId})`}\n opacity=\"0.72\"\n />\n <rect\n x=\"58\"\n y=\"104\"\n width=\"28\"\n height=\"8\"\n rx=\"2\"\n fill=\"currentColor\"\n opacity=\"0.28\"\n />\n <rect\n x=\"58\"\n y=\"116\"\n width=\"58\"\n height=\"5\"\n rx=\"2.5\"\n fill=\"currentColor\"\n opacity=\"0.18\"\n />\n <circle cx=\"146\" cy=\"112\" r=\"10\" fill=\"currentColor\" opacity=\"0.24\" />\n <circle cx=\"158\" cy=\"112\" r=\"10\" fill=\"currentColor\" opacity=\"0.38\" />\n </g>\n );\n}\n\nexport const EmptyStateIllustration = React.forwardRef<\n HTMLDivElement,\n EmptyStateIllustrationProps\n>(\n (\n {\n className,\n size = 'sm',\n variant = 'cloud',\n tone = 'primary',\n icon = <Heart aria-hidden=\"true\" />,\n ...props\n },\n ref,\n ) => {\n const accentId = React.useId();\n const shadeId = React.useId();\n const isPrimary = tone === 'primary';\n\n return (\n <div\n ref={ref}\n data-slot=\"empty-state-illustration\"\n data-testid=\"empty-state-illustration\"\n data-size={size}\n data-variant={variant}\n data-tone={tone}\n aria-hidden=\"true\"\n className={cn(\n 'relative shrink-0 text-primary',\n !isPrimary && 'text-muted-foreground',\n illustrationSizeClass[size][variant],\n className,\n )}\n {...props}\n >\n <div\n data-slot=\"empty-state-illustration-background\"\n data-testid=\"empty-state-illustration-background\"\n data-centered=\"true\"\n className={cn(\n 'absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full',\n isPrimary ? 'bg-primary/20' : 'bg-muted/80',\n illustrationCircleSizeClass[size],\n )}\n />\n <DecorativeDots tone={tone} />\n <svg\n viewBox=\"0 0 220 168\"\n className=\"absolute inset-0 size-full overflow-visible\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\n <linearGradient id={accentId} x1=\"25\" y1=\"12\" x2=\"190\" y2=\"148\">\n <stop\n stopColor={isPrimary ? 'var(--primary)' : 'var(--muted)'}\n stopOpacity={isPrimary ? 0.34 : 0.74}\n />\n <stop stopColor=\"var(--card)\" stopOpacity={0.95} />\n </linearGradient>\n <linearGradient id={shadeId} x1=\"54\" y1=\"18\" x2=\"165\" y2=\"140\">\n <stop stopColor=\"var(--card)\" />\n <stop\n stopColor={\n isPrimary ? 'var(--primary)' : 'var(--muted-foreground)'\n }\n stopOpacity={isPrimary ? 0.18 : 0.14}\n />\n </linearGradient>\n </defs>\n\n {variant === 'cloud' && (\n <CloudShape accentId={accentId} shadeId={shadeId} tone={tone} />\n )}\n {variant === 'box' && (\n <BoxShape accentId={accentId} shadeId={shadeId} />\n )}\n {variant === 'documents' && (\n <DocumentsShape accentId={accentId} shadeId={shadeId} />\n )}\n {variant === 'credit-card' && (\n <CreditCardShape accentId={accentId} shadeId={shadeId} />\n )}\n </svg>\n <div\n data-slot=\"empty-state-illustration-icon\"\n data-testid=\"empty-state-illustration-icon\"\n data-centered=\"true\"\n className={cn(\n 'absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-xl bg-primary/10 text-primary shadow-xs backdrop-blur-md supports-backdrop-filter:backdrop-blur-md [&>svg]:shrink-0',\n !isPrimary && 'bg-muted text-muted-foreground',\n illustrationIconSizeClass[size],\n )}\n >\n <EmptyStateIconGlyph icon={icon} size={size} />\n </div>\n </div>\n );\n },\n);\n\nEmptyStateIllustration.displayName = 'EmptyStateIllustration';\n\n// ============================================================================\n// EmptyState\n// ============================================================================\n\nconst emptyStateVariants = cva(\n 'relative isolate mx-auto flex w-full max-w-[512px] items-center justify-center overflow-visible py-8 text-center',\n {\n variants: {\n size: {\n sm: 'min-h-[212px]',\n md: 'min-h-[280px]',\n lg: 'min-h-[360px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n },\n);\n\nexport interface EmptyStateProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n title: React.ReactNode;\n description?: React.ReactNode;\n size?: EmptyStateSize;\n media?: EmptyStateMedia;\n pattern?: EmptyStateBackgroundPatternVariant | 'auto';\n icon?: React.ReactNode;\n iconLabel?: string;\n illustrationVariant?: EmptyStateIllustrationVariant;\n illustrationTone?: EmptyStateTone;\n fileExtension?: FileExtension;\n fileType?: SimpleFileType;\n primaryAction?: EmptyStateActionConfig;\n secondaryAction?: EmptyStateActionConfig;\n actions?: React.ReactNode;\n headingLevel?: 2 | 3 | 4;\n}\n\nfunction resolvePattern(\n pattern: EmptyStateProps['pattern'],\n media: EmptyStateMedia,\n): EmptyStateBackgroundPatternVariant {\n if (!pattern || pattern === 'auto') {\n if (media === 'illustration') return 'grid';\n if (media === 'none') return 'none';\n return 'circles';\n }\n return pattern;\n}\n\nfunction renderEmptyStateAction(\n action: EmptyStateActionConfig,\n intent: 'primary' | 'secondary',\n) {\n const {\n label,\n onClick,\n startIcon,\n disabled,\n loading,\n 'aria-label': ariaLabel,\n } = action;\n\n return (\n <Button\n appearance={intent === 'primary' ? 'solid' : 'outline'}\n variant={intent === 'primary' ? 'primary' : 'secondary'}\n size=\"sm\"\n shape=\"rounded\"\n onClick={onClick}\n disabled={disabled}\n loading={loading}\n startIcon={startIcon}\n aria-label={ariaLabel}\n type=\"button\"\n >\n {label}\n </Button>\n );\n}\n\nexport const EmptyState = React.forwardRef<HTMLElement, EmptyStateProps>(\n (\n {\n className,\n title,\n description,\n size = 'sm',\n media = 'featured-icon',\n pattern = 'auto',\n icon,\n iconLabel,\n illustrationVariant = 'cloud',\n illustrationTone = 'gray',\n fileExtension,\n fileType = 'document',\n primaryAction,\n secondaryAction,\n actions,\n headingLevel = 3,\n ...props\n },\n ref,\n ) => {\n const Heading = headingTag[headingLevel];\n const resolvedPattern = resolvePattern(pattern, media);\n const defaultIcon = icon ?? <Search aria-hidden=\"true\" />;\n const hasActions = actions || primaryAction || secondaryAction;\n\n return (\n <section\n ref={ref}\n data-slot=\"empty-state\"\n aria-label={typeof title === 'string' ? title : 'Empty state'}\n className={cn(emptyStateVariants({ size }), className)}\n {...props}\n >\n <div\n data-slot=\"empty-state-content\"\n className={cn(\n 'relative z-10 flex min-w-0 flex-1 flex-col items-center',\n contentGapClass[size],\n )}\n >\n <div\n data-slot=\"empty-state-body\"\n className={cn(\n 'flex w-full flex-col items-center',\n mediaGapClass[size],\n )}\n >\n {media !== 'none' && (\n <div\n data-slot=\"empty-state-media\"\n data-testid=\"empty-state-media\"\n data-media={media}\n data-centered=\"true\"\n className=\"relative flex w-full min-w-0 justify-center\"\n >\n <EmptyStateBackgroundPattern\n size={size}\n variant={resolvedPattern}\n data-centered=\"true\"\n className=\"z-0\"\n />\n\n {media === 'featured-icon' && (\n <FeaturedIcon\n data-slot=\"empty-state-featured-icon\"\n size={featuredIconSize[size]}\n shape=\"rounded\"\n intent=\"default\"\n icon={\n <EmptyStateIconGlyph icon={defaultIcon} size={size} />\n }\n aria-label={iconLabel}\n className=\"relative z-10 delight-stagger motion-reduce:animate-none\"\n />\n )}\n\n {media === 'illustration' && (\n <EmptyStateIllustration\n size={size}\n variant={illustrationVariant}\n tone={illustrationTone}\n icon={defaultIcon}\n className=\"relative z-10 delight-stagger motion-reduce:animate-none\"\n />\n )}\n\n {media === 'file-type-icon' && (\n <div\n data-slot=\"empty-state-file-icon-wrap\"\n data-testid=\"empty-state-file-icon-wrap\"\n data-centered=\"true\"\n className={cn(\n 'relative z-10 flex items-center justify-center rounded-full bg-linear-[104deg,color-mix(in_oklch,var(--card)_60%,transparent),color-mix(in_oklch,var(--muted)_55%,transparent)] delight-stagger motion-reduce:animate-none',\n fileIconWrapSizeClass[size],\n )}\n >\n <div\n data-slot=\"empty-state-file-icon-optical-center\"\n data-testid=\"empty-state-file-icon-optical-center\"\n data-centered=\"true\"\n >\n <FileTypeIcon\n extension={fileExtension}\n fileType={fileExtension ? undefined : fileType}\n size={fileIconSize[size]}\n className=\"drop-shadow-[0_1px_2px_var(--shadow-xs-1-color)]\"\n />\n </div>\n </div>\n )}\n </div>\n )}\n\n <div\n data-slot=\"empty-state-text\"\n className={cn(\n 'flex w-full max-w-[352px] flex-col items-center text-center',\n textGapClass[size],\n )}\n >\n <Heading className=\"w-full text-base font-semibold leading-6 text-foreground\">\n {title}\n </Heading>\n {description && (\n <p className=\"w-full text-sm leading-5 text-secondary-foreground\">\n {description}\n </p>\n )}\n </div>\n </div>\n\n {hasActions && (\n <div\n data-slot=\"empty-state-actions\"\n className=\"flex flex-wrap items-center justify-center gap-3\"\n >\n {actions ?? (\n <>\n {secondaryAction &&\n renderEmptyStateAction(secondaryAction, 'secondary')}\n {primaryAction &&\n renderEmptyStateAction(primaryAction, 'primary')}\n </>\n )}\n </div>\n )}\n </div>\n </section>\n );\n },\n);\n\nEmptyState.displayName = 'EmptyState';\n","/**\n * Web Component wrapper for EmptyState\n * Custom element: <hf-empty-state>\n *\n * @generated by scripts/generate-wc-components.ts\n * DO NOT EDIT MANUALLY\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { EmptyState } from '../components/organisms/content/EmptyState';\nimport { parseAttr, parseValue, type PropDefs } from './_shared';\n\n/**\n * Prop type definitions for attribute parsing\n */\nconst propTypes: PropDefs = {\n title: 'string',\n description: 'string',\n size: 'string',\n media: 'string',\n pattern: 'string',\n icon: 'json',\n iconLabel: 'string',\n illustrationVariant: 'string',\n illustrationTone: 'string',\n fileExtension: 'string',\n fileType: 'string',\n primaryAction: 'json',\n secondaryAction: 'json',\n actions: 'json',\n headingLevel: 'string'\n};\n\nclass EmptyStateWC extends HTMLElement {\n private _root: ReturnType<typeof createRoot> | null = null;\n private _childrenContainer: HTMLDivElement | null = null;\n private _props: Record<string, unknown> = {};\n private _initialized = false;\n\n connectedCallback() {\n setTimeout(() => this._initialize(), 0);\n }\n\n private _initialize() {\n if (this._initialized) return;\n this._initialized = true;\n\n const originalChildren: Node[] = [];\n for (const child of Array.from(this.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE && !child.textContent?.trim()) {\n continue;\n }\n originalChildren.push(child);\n }\n\n const reactContainer = this.ownerDocument.createElement('div');\n reactContainer.style.display = 'contents';\n\n this._childrenContainer = this.ownerDocument.createElement('div');\n this._childrenContainer.style.display = 'contents';\n\n originalChildren.forEach((child) => this._childrenContainer!.appendChild(child));\n\n while (this.firstChild) this.removeChild(this.firstChild);\n this.appendChild(reactContainer);\n\n this._root = createRoot(reactContainer);\n this._render();\n }\n\n disconnectedCallback() {\n this._root?.unmount();\n this._root = null;\n }\n\n attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null) {\n this._render();\n }\n\n static get observedAttributes() {\n return Object.keys(propTypes).map((prop) =>\n prop.replace(/([A-Z])/g, '-$1').toLowerCase(),\n );\n }\n\n _setProp(name: string, value: unknown) {\n const propType = propTypes[name] || 'string';\n this._props[name] = parseValue(value, propType);\n this._render();\n }\n\n _getProp(name: string): unknown {\n if (name in this._props) {\n return this._props[name];\n }\n const attrName = name.replace(/([A-Z])/g, '-$1').toLowerCase();\n const propType = propTypes[name] || 'string';\n return parseAttr(this.getAttribute(attrName), propType);\n }\n\n private _render() {\n if (!this._root || !this._childrenContainer) return;\n\n const props: Record<string, unknown> = {};\n for (const [propName, propType] of Object.entries(propTypes)) {\n if (propName in this._props) {\n props[propName] = this._props[propName];\n } else {\n const attrName = propName.replace(/([A-Z])/g, '-$1').toLowerCase();\n props[propName] = parseAttr(this.getAttribute(attrName), propType);\n }\n }\n\n const element = React.createElement(\n EmptyState,\n props,\n React.createElement('span', {\n ref: (el: HTMLSpanElement | null) => {\n if (el && this._childrenContainer) {\n el.replaceWith(this._childrenContainer);\n }\n },\n style: { display: 'contents' },\n }),\n );\n\n this._root.render(element);\n }\n}\n\nfor (const propName of Object.keys(propTypes)) {\n Object.defineProperty(EmptyStateWC.prototype, propName, {\n get() {\n return this._getProp(propName);\n },\n set(value: unknown) {\n this._setProp(propName, value);\n },\n enumerable: true,\n configurable: true,\n });\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('hf-empty-state')) {\n customElements.define('hf-empty-state', EmptyStateWC);\n}\n\nexport { EmptyStateWC };\nexport default EmptyStateWC;\n"],"mappings":"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"}
@@ -15,8 +15,8 @@ import { t as D } from "./Avatar.js";
15
15
  import { t as ae } from "./x.js";
16
16
  import { n as l, t as T } from "./utils.js";
17
17
  import { c as ne, s as H } from "./_shared.js";
18
- import { t as oe } from "./button.js";
19
- import { t as ie } from "./Badge.js";
18
+ import { t as oe } from "./Badge.js";
19
+ import { t as ie } from "./button.js";
20
20
  var le = [["path", {
21
21
  d: "m17 11-5-5-5 5",
22
22
  key: "e8nh98"
@@ -607,7 +607,7 @@ function _e({ actor: e, type: s, showConnector: r }) {
607
607
  function Ee({ flags: e }) {
608
608
  return e?.length ? /* @__PURE__ */ (0, t.jsx)("span", {
609
609
  className: "inline-flex min-w-0 items-center gap-1",
610
- children: e.map((s) => /* @__PURE__ */ (0, t.jsx)(ie, {
610
+ children: e.map((s) => /* @__PURE__ */ (0, t.jsx)(oe, {
611
611
  variant: "soft",
612
612
  color: "purple",
613
613
  size: "xs",
@@ -684,7 +684,7 @@ function Te({ title: e, actions: s }) {
684
684
  className: "flex shrink-0 items-center gap-1",
685
685
  children: s.map((r) => {
686
686
  const a = he[r.id], n = a.Icon;
687
- return /* @__PURE__ */ (0, t.jsx)(oe, {
687
+ return /* @__PURE__ */ (0, t.jsx)(ie, {
688
688
  type: "button",
689
689
  appearance: "ghost",
690
690
  variant: "secondary",
@@ -1,9 +1,9 @@
1
1
  import { a as E } from "./rolldown-runtime.js";
2
2
  import { i as T, n as j, t as N } from "./vendor/react.js";
3
3
  import { t as k } from "./dist.js";
4
- import { c as V, i as L } from "./chart-data.js";
5
- import { t as P } from "./BarChart.js";
6
- import { c as B, s as p } from "./_shared.js";
4
+ import { c as V, s as p } from "./_shared.js";
5
+ import { c as L, i as P } from "./chart-data.js";
6
+ import { t as B } from "./BarChart.js";
7
7
  var s = /* @__PURE__ */ E(T(), 1), H = N(), $ = k("relative w-full", {
8
8
  variants: { size: {
9
9
  sm: "h-40",
@@ -15,9 +15,9 @@ var s = /* @__PURE__ */ E(T(), 1), H = N(), $ = k("relative w-full", {
15
15
  });
16
16
  function d({ data: t, series: r, showXAxis: e = !0, showYAxis: n = !0, xAxisLabel: l, legendPosition: m = "none", xAxisTicks: _, xAxisFormat: f = (i) => i.toLocaleString(), barRadius: b = 4, barGap: C = 0.2, barColor: c = "var(--chart-1)", showTooltip: g = !0, size: y, className: z, "aria-label": v, ...x }) {
17
17
  const i = r?.[0], a = i?.id || "value", A = s.useMemo(() => t.map((h) => ({
18
- id: V(h.id),
18
+ id: L(h.id),
19
19
  label: h.label,
20
- values: { [a]: L(h.value) }
20
+ values: { [a]: P(h.value) }
21
21
  })), [t, a]), w = s.useMemo(() => [{
22
22
  id: a,
23
23
  label: i?.label || "Value",
@@ -28,7 +28,7 @@ function d({ data: t, series: r, showXAxis: e = !0, showYAxis: n = !0, xAxisLabe
28
28
  i?.label,
29
29
  a
30
30
  ]);
31
- return /* @__PURE__ */ (0, H.jsx)(P, {
31
+ return /* @__PURE__ */ (0, H.jsx)(B, {
32
32
  "data-slot": "horizontal-bar-chart",
33
33
  data: A,
34
34
  series: w,
@@ -95,7 +95,7 @@ var M = j(), o = {
95
95
  }
96
96
  _setProp(t, r) {
97
97
  const e = o[t] || "string";
98
- this._props[t] = B(r, e), this._render();
98
+ this._props[t] = V(r, e), this._render();
99
99
  }
100
100
  _getProp(t) {
101
101
  if (t in this._props) return this._props[t];
@@ -8,8 +8,8 @@ import { s as E, t as W } from "./useRenderElement.js";
8
8
  import { l as ce, t as ue } from "./createBaseUIEventDetails.js";
9
9
  import { t as de } from "./useBaseUiId.js";
10
10
  import { C as pe, H as ge, P as fe, R as me, S as he, V as Ce, _ as ve, a as Pe, c as xe, f as Re, h as Ie, i as Se, m as ye, n as Te, o as be, p as we, s as Oe, w as Ee, x as Ne } from "./popupStateMapping.js";
11
- import { t as Me } from "./useOpenChangeComplete.js";
12
- import { n as _e, r as Ae, t as je } from "./safePolygon.js";
11
+ import { n as Me, r as _e, t as Ae } from "./safePolygon.js";
12
+ import { r as je } from "./stateAttributesMapping.js";
13
13
  import { n as Fe, r as He, t as De } from "./usePositioner.js";
14
14
  import { n as ke, r as Be, t as Le } from "./store.js";
15
15
  import { t as Ve } from "./usePopupHandleStore.js";
@@ -248,10 +248,10 @@ var nt = /* @__PURE__ */ g.forwardRef(function(t, n) {
248
248
  const l = de(r), p = d.useState("isTriggerActive", l), P = d.useState("isOpenedByTrigger", l), S = d.useState("floatingRootContext"), y = d.context.inlineRectCoordsRef, v = g.useRef(null), w = u ?? 600, T = c ?? 300, { registerTrigger: x, isMountedByThisTrigger: R } = ve(l, v, d, {
249
249
  payload: a,
250
250
  closeDelay: T
251
- }), N = _e(S, {
251
+ }), N = Me(S, {
252
252
  mouseOnly: !0,
253
253
  move: !1,
254
- handleClose: je(),
254
+ handleClose: Ae(),
255
255
  delay: () => ({
256
256
  open: w,
257
257
  close: T
@@ -334,13 +334,13 @@ var st = /* @__PURE__ */ g.forwardRef(function(t, n) {
334
334
  });
335
335
  }), at = /* @__PURE__ */ g.forwardRef(function(t, n) {
336
336
  const { className: o, render: i, style: u, ...c } = t, r = b(), { side: a, align: f } = it(), s = r.useState("open"), m = r.useState("instantType"), C = r.useState("transitionStatus"), d = r.useState("popupProps"), l = r.useState("floatingRootContext"), p = r.useState("closeDelay");
337
- return Me({
337
+ return je({
338
338
  open: s,
339
339
  ref: r.context.popupRef,
340
340
  onComplete() {
341
341
  s && r.context.onOpenChangeComplete?.(!0);
342
342
  }
343
- }), Ae(l, { closeDelay: p }), W("div", t, {
343
+ }), _e(l, { closeDelay: p }), W("div", t, {
344
344
  state: {
345
345
  open: s,
346
346
  side: a,
@@ -1,7 +1,7 @@
1
1
  import { a as h } from "./rolldown-runtime.js";
2
2
  import { i as p, n as c } from "./vendor/react.js";
3
- import { n as d } from "./LineChart.js";
4
- import { c as _, s as o } from "./_shared.js";
3
+ import { c as d, s as o } from "./_shared.js";
4
+ import { n as _ } from "./LineChart.js";
5
5
  var s = /* @__PURE__ */ h(p(), 1), u = c(), i = {
6
6
  size: "string",
7
7
  data: "json",
@@ -54,7 +54,7 @@ var s = /* @__PURE__ */ h(p(), 1), u = c(), i = {
54
54
  }
55
55
  _setProp(e, r) {
56
56
  const t = i[e] || "string";
57
- this._props[e] = _(r, t), this._render();
57
+ this._props[e] = d(r, t), this._render();
58
58
  }
59
59
  _getProp(e) {
60
60
  if (e in this._props) return this._props[e];
@@ -69,7 +69,7 @@ var s = /* @__PURE__ */ h(p(), 1), u = c(), i = {
69
69
  const l = t.replace(/([A-Z])/g, "-$1").toLowerCase();
70
70
  e[t] = o(this.getAttribute(l), a);
71
71
  }
72
- const r = s.createElement(d, e, s.createElement("span", {
72
+ const r = s.createElement(_, e, s.createElement("span", {
73
73
  ref: (t) => {
74
74
  t && this._childrenContainer && t.replaceWith(this._childrenContainer);
75
75
  },
@@ -4,9 +4,9 @@ import { t as H } from "./dist.js";
4
4
  import { t as U } from "./arrow-down.js";
5
5
  import { t as Y } from "./arrow-up.js";
6
6
  import { n as p } from "./utils.js";
7
- import { n as G } from "./LineChart.js";
8
- import { t as J } from "./BarChart.js";
9
- import { c as K, s as A } from "./_shared.js";
7
+ import { c as G, s as A } from "./_shared.js";
8
+ import { n as J } from "./LineChart.js";
9
+ import { t as K } from "./BarChart.js";
10
10
  var m = /* @__PURE__ */ W(Z(), 1), s = B(), Q = H("bg-background border border-border rounded-xl shadow-sm flex flex-col w-full", {
11
11
  variants: { size: {
12
12
  sm: "gap-3 p-3",
@@ -45,7 +45,7 @@ function se({ data: e, series: r, chartType: t, strokeWidth: l, showArea: c, sho
45
45
  showTooltip: !1,
46
46
  className: "h-14 w-28"
47
47
  };
48
- return t === "bar" ? /* @__PURE__ */ (0, s.jsx)(J, { ...o }) : /* @__PURE__ */ (0, s.jsx)(G, {
48
+ return t === "bar" ? /* @__PURE__ */ (0, s.jsx)(K, { ...o }) : /* @__PURE__ */ (0, s.jsx)(J, {
49
49
  ...o,
50
50
  strokeWidth: l,
51
51
  showDots: _,
@@ -192,7 +192,7 @@ var ie = X(), f = {
192
192
  }
193
193
  _setProp(e, r) {
194
194
  const t = f[e] || "string";
195
- this._props[e] = K(r, t), this._render();
195
+ this._props[e] = G(r, t), this._render();
196
196
  }
197
197
  _getProp(e) {
198
198
  if (e in this._props) return this._props[e];
@@ -7,10 +7,10 @@ import { t as Y } from "./arrow-up.js";
7
7
  import { t as $ } from "./ellipsis-vertical.js";
8
8
  import { t as z } from "./trending-up.js";
9
9
  import { n as m } from "./utils.js";
10
- import { r as T } from "./chart.js";
11
- import { t as ee } from "./use-reduced-motion.js";
12
- import { c as te, s as F } from "./_shared.js";
13
- import { t as se } from "./button.js";
10
+ import { c as T, s as F } from "./_shared.js";
11
+ import { t as ee } from "./button.js";
12
+ import { r as te } from "./chart.js";
13
+ import { t as se } from "./use-reduced-motion.js";
14
14
  var re = [["path", {
15
15
  d: "M7 7h10v10",
16
16
  key: "1tivn9"
@@ -52,7 +52,7 @@ var ce = L("relative shrink-0", {
52
52
  defaultVariants: { variant: "line" }
53
53
  });
54
54
  function w({ data: t, color: s, width: r, height: o = 56, variant: n = "line", showMarker: g = !0, trend: a = "positive", className: b, ...p }) {
55
- const u = c.useId(), C = !ee(), l = s || (a === "positive" ? "var(--success)" : "var(--destructive)"), j = le(r), _ = ae(o, 56), f = c.useMemo(() => t.map((h) => W(h)), [t]), d = c.useMemo(() => f.map((h, E) => ({
55
+ const u = c.useId(), C = !se(), l = s || (a === "positive" ? "var(--success)" : "var(--destructive)"), j = le(r), _ = ae(o, 56), f = c.useMemo(() => t.map((h) => W(h)), [t]), d = c.useMemo(() => f.map((h, E) => ({
56
56
  index: E,
57
57
  value: h
58
58
  })), [f]), v = c.useMemo(() => ({ value: { color: l } }), [l]), i = f[f.length - 1] ?? 0, k = c.useMemo(() => {
@@ -69,7 +69,7 @@ function w({ data: t, color: s, width: r, height: o = 56, variant: n = "line", s
69
69
  className: m(ce({ variant: n }), b),
70
70
  style: M,
71
71
  ...p,
72
- children: [/* @__PURE__ */ (0, e.jsx)(T, {
72
+ children: [/* @__PURE__ */ (0, e.jsx)(te, {
73
73
  config: v,
74
74
  className: "size-full",
75
75
  children: n === "layers" ? /* @__PURE__ */ (0, e.jsxs)(Q, {
@@ -484,7 +484,7 @@ var R = L("relative flex flex-col gap-2 p-5 bg-background rounded-xl border bord
484
484
  }),
485
485
  u && /* @__PURE__ */ (0, e.jsx)("div", {
486
486
  className: "flex items-center gap-2 pt-2",
487
- children: /* @__PURE__ */ (0, e.jsx)(se, {
487
+ children: /* @__PURE__ */ (0, e.jsx)(ee, {
488
488
  appearance: "outline",
489
489
  variant: "secondary",
490
490
  size: "sm",
@@ -570,7 +570,7 @@ var y = {
570
570
  }
571
571
  _setProp(t, s) {
572
572
  const r = y[t] || "string";
573
- this._props[t] = te(s, r), this._render();
573
+ this._props[t] = T(s, r), this._render();
574
574
  }
575
575
  _getProp(t) {
576
576
  if (t in this._props) return this._props[t];