@humain/ui 2.2.6 → 2.2.9

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 (159) hide show
  1. package/dist/index101.js +2 -2
  2. package/dist/index101.js.map +1 -1
  3. package/dist/index103.js +3 -3
  4. package/dist/index103.js.map +1 -1
  5. package/dist/index108.js +1 -1
  6. package/dist/index108.js.map +1 -1
  7. package/dist/index117.js +1 -1
  8. package/dist/index117.js.map +1 -1
  9. package/dist/index122.js +6 -6
  10. package/dist/index122.js.map +1 -1
  11. package/dist/index126.js +1 -1
  12. package/dist/index126.js.map +1 -1
  13. package/dist/index130.js +2 -2
  14. package/dist/index130.js.map +1 -1
  15. package/dist/index146.js +4 -4
  16. package/dist/index146.js.map +1 -1
  17. package/dist/index152.js +1 -1
  18. package/dist/index152.js.map +1 -1
  19. package/dist/index154.js +2 -2
  20. package/dist/index154.js.map +1 -1
  21. package/dist/index166.js +1 -1
  22. package/dist/index166.js.map +1 -1
  23. package/dist/index168.js +1 -1
  24. package/dist/index168.js.map +1 -1
  25. package/dist/index169.js +1 -1
  26. package/dist/index169.js.map +1 -1
  27. package/dist/index173.js +2 -2
  28. package/dist/index173.js.map +1 -1
  29. package/dist/index175.js +4 -4
  30. package/dist/index175.js.map +1 -1
  31. package/dist/index176.js +2 -2
  32. package/dist/index176.js.map +1 -1
  33. package/dist/index177.js +2 -2
  34. package/dist/index177.js.map +1 -1
  35. package/dist/index184.js +1 -1
  36. package/dist/index184.js.map +1 -1
  37. package/dist/index191.js +3 -3
  38. package/dist/index191.js.map +1 -1
  39. package/dist/index192.js +2 -2
  40. package/dist/index192.js.map +1 -1
  41. package/dist/index201.js +2 -2
  42. package/dist/index201.js.map +1 -1
  43. package/dist/index204.js +4 -4
  44. package/dist/index204.js.map +1 -1
  45. package/dist/index228.js +1 -1
  46. package/dist/index228.js.map +1 -1
  47. package/dist/index229.js +1 -1
  48. package/dist/index229.js.map +1 -1
  49. package/dist/index24.js +2 -2
  50. package/dist/index24.js.map +1 -1
  51. package/dist/index5.js +1 -1
  52. package/dist/index5.js.map +1 -1
  53. package/dist/styles.css +1 -1
  54. package/dist/wc/AICodeBlock.js +41 -41
  55. package/dist/wc/AICodeBlock.js.map +1 -1
  56. package/dist/wc/AIMermaidDiagram.js +7 -7
  57. package/dist/wc/AIMermaidDiagram.js.map +1 -1
  58. package/dist/wc/AIMessage.js +6 -6
  59. package/dist/wc/AIMessage.js.map +1 -1
  60. package/dist/wc/AISource.js +2 -2
  61. package/dist/wc/AISource.js.map +1 -1
  62. package/dist/wc/AIToolCall.js +1 -1
  63. package/dist/wc/AIToolCall.js.map +1 -1
  64. package/dist/wc/Breadcrumb.js +43 -43
  65. package/dist/wc/Breadcrumb.js.map +1 -1
  66. package/dist/wc/DropdownMenu.js +9 -9
  67. package/dist/wc/DropdownMenu.js.map +1 -1
  68. package/dist/wc/Kbd.js +22 -22
  69. package/dist/wc/Kbd.js.map +1 -1
  70. package/dist/wc/button.js +7 -7
  71. package/dist/wc/button.js.map +1 -1
  72. package/dist/wc/close-button.js +19 -19
  73. package/dist/wc/close-button.js.map +1 -1
  74. package/dist/wc/hf-ai-prompt-suggestion.js +14 -14
  75. package/dist/wc/hf-ai-prompt-suggestion.js.map +1 -1
  76. package/dist/wc/hf-ai-reasoning-block.js +13 -13
  77. package/dist/wc/hf-ai-reasoning-block.js.map +1 -1
  78. package/dist/wc/hf-ai-steps.js +53 -53
  79. package/dist/wc/hf-ai-steps.js.map +1 -1
  80. package/dist/wc/hf-ai-system-message.js +26 -26
  81. package/dist/wc/hf-ai-system-message.js.map +1 -1
  82. package/dist/wc/hf-code-snippet.js +35 -35
  83. package/dist/wc/hf-code-snippet.js.map +1 -1
  84. package/dist/wc/hf-command-menu.js +39 -39
  85. package/dist/wc/hf-command-menu.js.map +1 -1
  86. package/dist/wc/hf-data-table.js +3 -3
  87. package/dist/wc/hf-data-table.js.map +1 -1
  88. package/dist/wc/hf-display-value.js +50 -50
  89. package/dist/wc/hf-display-value.js.map +1 -1
  90. package/dist/wc/hf-nav-account-menu.js +5 -5
  91. package/dist/wc/hf-nav-account-menu.js.map +1 -1
  92. package/dist/wc/hf-rich-textarea.js +1 -1
  93. package/dist/wc/hf-rich-textarea.js.map +1 -1
  94. package/dist/wc/hf-steps.js +8 -8
  95. package/dist/wc/hf-steps.js.map +1 -1
  96. package/dist/wc/markdown-renderer.js +1 -1
  97. package/dist/wc/markdown-renderer.js.map +1 -1
  98. package/dist/wc/selection-group.js +26 -26
  99. package/dist/wc/selection-group.js.map +1 -1
  100. package/dist/wc/syntax-highlight.js +4 -4
  101. package/dist/wc/syntax-highlight.js.map +1 -1
  102. package/dist/wc/workflow-step-renderer.js +51 -51
  103. package/dist/wc/workflow-step-renderer.js.map +1 -1
  104. package/dist/wc-react/AICodeBlock.js +17 -17
  105. package/dist/wc-react/AICodeBlock.js.map +1 -1
  106. package/dist/wc-react/AIMermaidDiagram.js +16 -16
  107. package/dist/wc-react/AIMermaidDiagram.js.map +1 -1
  108. package/dist/wc-react/AIMessage.js +7 -7
  109. package/dist/wc-react/AIMessage.js.map +1 -1
  110. package/dist/wc-react/AISource.js +41 -41
  111. package/dist/wc-react/AISource.js.map +1 -1
  112. package/dist/wc-react/AIToolCall.js +6 -6
  113. package/dist/wc-react/AIToolCall.js.map +1 -1
  114. package/dist/wc-react/Breadcrumb.js +18 -18
  115. package/dist/wc-react/Breadcrumb.js.map +1 -1
  116. package/dist/wc-react/DropdownMenu.js +27 -27
  117. package/dist/wc-react/DropdownMenu.js.map +1 -1
  118. package/dist/wc-react/Kbd.js +17 -17
  119. package/dist/wc-react/Kbd.js.map +1 -1
  120. package/dist/wc-react/button.js +12 -12
  121. package/dist/wc-react/button.js.map +1 -1
  122. package/dist/wc-react/close-button.js +19 -19
  123. package/dist/wc-react/close-button.js.map +1 -1
  124. package/dist/wc-react/hf-ai-prompt-suggestion.js +1 -1
  125. package/dist/wc-react/hf-ai-prompt-suggestion.js.map +1 -1
  126. package/dist/wc-react/hf-ai-reasoning-block.js +1 -1
  127. package/dist/wc-react/hf-ai-reasoning-block.js.map +1 -1
  128. package/dist/wc-react/hf-ai-steps.js +33 -33
  129. package/dist/wc-react/hf-ai-steps.js.map +1 -1
  130. package/dist/wc-react/hf-ai-system-message.js +9 -9
  131. package/dist/wc-react/hf-ai-system-message.js.map +1 -1
  132. package/dist/wc-react/hf-code-snippet.js +3 -3
  133. package/dist/wc-react/hf-code-snippet.js.map +1 -1
  134. package/dist/wc-react/hf-command-menu.js +56 -56
  135. package/dist/wc-react/hf-command-menu.js.map +1 -1
  136. package/dist/wc-react/hf-data-table.js +3 -3
  137. package/dist/wc-react/hf-data-table.js.map +1 -1
  138. package/dist/wc-react/hf-display-value.js +58 -58
  139. package/dist/wc-react/hf-display-value.js.map +1 -1
  140. package/dist/wc-react/hf-nav-account-menu.js +7 -7
  141. package/dist/wc-react/hf-nav-account-menu.js.map +1 -1
  142. package/dist/wc-react/hf-rich-textarea.js +5 -5
  143. package/dist/wc-react/hf-rich-textarea.js.map +1 -1
  144. package/dist/wc-react/hf-steps.js +2 -2
  145. package/dist/wc-react/hf-steps.js.map +1 -1
  146. package/dist/wc-react/markdown-renderer.js +1 -1
  147. package/dist/wc-react/markdown-renderer.js.map +1 -1
  148. package/dist/wc-react/selection-group.js +7 -7
  149. package/dist/wc-react/selection-group.js.map +1 -1
  150. package/dist/wc-react/syntax-highlight.js +4 -4
  151. package/dist/wc-react/syntax-highlight.js.map +1 -1
  152. package/dist/wc-react/workflow-step-renderer.js +44 -44
  153. package/dist/wc-react/workflow-step-renderer.js.map +1 -1
  154. package/package.json +1 -1
  155. package/skills/humain-ui/SKILL.md +1 -1
  156. package/skills/humain-ui-wc/SKILL.md +1 -1
  157. package/skills/humain-ui-wc.skill +0 -0
  158. package/skills/humain-ui.skill +0 -0
  159. package/src/tokens.css +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","names":[],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/slash.mjs","../../src/components/ui/breadcrumb.tsx","../../src/components/molecules/navigation/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M22 2 2 22\", key: \"y4kqgn\" }]];\nconst Slash = createLucideIcon(\"slash\", __iconNode);\n\nexport { __iconNode, Slash as default };\n//# sourceMappingURL=slash.mjs.map\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport type * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('gap-1.5 inline-flex items-center', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'a'> & { children?: React.ReactNode }) {\n return useRender({\n defaultTagName: 'a',\n props: mergeProps<'a'>(\n {\n className: cn(\n 'hover:text-foreground transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'breadcrumb-link',\n },\n });\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight className=\"rtl:rotate-180\" />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n 'size-5 [&>svg]:size-4 flex items-center justify-center',\n className,\n )}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { cva } from 'class-variance-authority';\nimport { ChevronRight, Home, Slash } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Breadcrumb as BreadcrumbBase,\n BreadcrumbItem as BreadcrumbItemBase,\n BreadcrumbLink as BreadcrumbLinkBase,\n BreadcrumbList as BreadcrumbListBase,\n BreadcrumbPage as BreadcrumbPageBase,\n BreadcrumbSeparator as BreadcrumbSeparatorBase,\n} from '@/components/ui/breadcrumb';\nimport { cn } from '@/lib/utils';\n\nconst FOCUS_RING =\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm';\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Variants\n * -------------------------------------------------------------------------- */\n\nconst breadcrumbItemVariants = cva(\n 'inline-flex items-center transition-[color,opacity,background-color,border-color,text-decoration-color] duration-200 ease-out whitespace-nowrap relative before:absolute before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:min-h-11 before:content-[\"\"] sm:before:content-none motion-reduce:transition-none',\n {\n variants: {\n variant: {\n text: 'text-sm font-normal text-muted-foreground hover:text-foreground underline decoration-transparent underline-offset-4 hover:decoration-current/30',\n 'soft-badge':\n 'text-xs font-normal text-primary rounded-full px-2 py-0.5 bg-primary/10 hover:bg-primary/15',\n 'outline-badge':\n 'text-xs font-normal text-foreground rounded-full px-2 py-0.5 border border-muted-foreground/50 hover:border-muted-foreground',\n },\n isCurrent: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n variant: 'text',\n isCurrent: true,\n className: 'text-foreground no-underline',\n },\n {\n variant: 'text',\n isCurrent: false,\n className: 'text-muted-foreground',\n },\n {\n variant: 'soft-badge',\n isCurrent: true,\n className: 'bg-primary/10',\n },\n {\n variant: 'soft-badge',\n isCurrent: false,\n className: 'bg-primary/10 opacity-50',\n },\n {\n variant: 'outline-badge',\n isCurrent: true,\n className: 'border-primary text-foreground',\n },\n {\n variant: 'outline-badge',\n isCurrent: false,\n className: 'border-muted-foreground/50 opacity-50',\n },\n ],\n defaultVariants: {\n variant: 'text',\n isCurrent: false,\n },\n },\n);\n\n/* -----------------------------------------------------------------------------\n * Context for sharing separator type\n * -------------------------------------------------------------------------- */\n\ntype SeparatorType = 'chevron' | 'slash';\n\ntype BreadcrumbContextValue = {\n separator: SeparatorType;\n};\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\nconst useBreadcrumbContext = () => React.useContext(BreadcrumbContext);\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps\n extends React.ComponentProps<typeof BreadcrumbBase> {\n separator?: SeparatorType;\n ring?: boolean;\n}\n\nfunction Breadcrumb({\n className,\n separator = 'chevron',\n ring = false,\n children,\n ...props\n}: BreadcrumbProps) {\n const contextValue = React.useMemo(() => ({ separator }), [separator]);\n\n return (\n <BreadcrumbContext.Provider value={contextValue}>\n <BreadcrumbBase\n className={cn(\n ring &&\n 'inline-flex border border-ring/50 rounded-full px-2.5 py-0.5',\n className,\n )}\n {...props}\n >\n {children}\n </BreadcrumbBase>\n </BreadcrumbContext.Provider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbList Component\n * -------------------------------------------------------------------------- */\n\nexport type BreadcrumbListProps = React.ComponentProps<\n typeof BreadcrumbListBase\n>;\n\nfunction BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n <BreadcrumbListBase\n className={cn('flex-nowrap gap-1', className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbItem Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbItemProps\n extends Omit<React.ComponentProps<typeof BreadcrumbItemBase>, 'className'> {\n className?: string;\n}\n\nfunction BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return <BreadcrumbItemBase className={cn('gap-1', className)} {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbLink Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbLinkProps\n extends React.ComponentProps<typeof BreadcrumbLinkBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n isCurrent?: boolean;\n}\n\nfunction BreadcrumbLink({\n className,\n variant = 'text',\n isCurrent = false,\n ...props\n}: BreadcrumbLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(breadcrumbItemVariants({ variant, isCurrent }), className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbPage Component (Current Page)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbPageProps\n extends React.ComponentProps<typeof BreadcrumbPageBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbPage({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbPageProps) {\n return (\n <BreadcrumbPageBase\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: true }),\n className,\n )}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbSeparator Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbSeparatorProps\n extends Omit<\n React.ComponentProps<typeof BreadcrumbSeparatorBase>,\n 'children'\n > {\n type?: SeparatorType;\n}\n\nfunction BreadcrumbSeparator({\n className,\n type,\n ...props\n}: BreadcrumbSeparatorProps) {\n const { separator } = useBreadcrumbContext();\n const separatorType = type ?? separator;\n\n return (\n <BreadcrumbSeparatorBase\n className={cn(\n '[&>svg]:size-3.5 text-text-quaternary transition-opacity duration-200 ease-out motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {separatorType === 'slash' ? (\n <Slash />\n ) : (\n <ChevronRight className=\"rtl:rotate-180\" />\n )}\n </BreadcrumbSeparatorBase>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbEllipsis Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbEllipsisProps\n extends React.ComponentProps<'button'> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbEllipsis({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbEllipsisProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"breadcrumb-ellipsis\"\n aria-label=\"Show more breadcrumb items\"\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: false }),\n `cursor-pointer hover:text-foreground ${FOCUS_RING}`,\n className,\n )}\n {...props}\n >\n &#8230;\n </button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbHomeLink Component (Home Icon)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbHomeLinkProps\n extends Omit<BreadcrumbLinkProps, 'children'> {\n srLabel?: string;\n}\n\nfunction BreadcrumbHomeLink({\n className,\n variant = 'text',\n srLabel = 'Home',\n ...props\n}: BreadcrumbHomeLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(\n `group inline-flex items-center text-text-quaternary hover:text-secondary-foreground transition-colors duration-200 ease-out motion-reduce:transition-none ${FOCUS_RING}`,\n variant === 'soft-badge' &&\n 'rounded-full px-1.5 py-0.5 bg-primary/10 text-primary',\n variant === 'outline-badge' &&\n 'rounded-full px-1.5 py-0.5 border border-muted-foreground/50',\n className,\n )}\n {...props}\n >\n <Home className=\"size-3.5 transition-transform duration-200 ease-out group-hover:scale-110 motion-reduce:transition-none\" />\n <span className=\"sr-only\">{srLabel}</span>\n </BreadcrumbLinkBase>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\nBreadcrumbHomeLink.displayName = 'BreadcrumbHomeLink';\n\n/**\n * Breadcrumb component with dot notation for compound parts.\n *\n * @example\n * ```tsx\n * <Breadcrumb>\n * <Breadcrumb.List>\n * <Breadcrumb.Item>\n * <Breadcrumb.Link href=\"/\">Home</Breadcrumb.Link>\n * </Breadcrumb.Item>\n * <Breadcrumb.Separator />\n * <Breadcrumb.Item>\n * <Breadcrumb.Page>Current</Breadcrumb.Page>\n * </Breadcrumb.Item>\n * </Breadcrumb.List>\n * </Breadcrumb>\n * ```\n */\nconst BreadcrumbCompound = Object.assign(Breadcrumb, {\n Root: Breadcrumb,\n List: BreadcrumbList,\n Item: BreadcrumbItem,\n Link: BreadcrumbLink,\n Page: BreadcrumbPage,\n Separator: BreadcrumbSeparator,\n Ellipsis: BreadcrumbEllipsis,\n HomeLink: BreadcrumbHomeLink,\n});\n\nexport {\n BreadcrumbCompound as Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbHomeLink,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n breadcrumbItemVariants,\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumb.js","names":[],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/slash.mjs","../../src/components/ui/breadcrumb.tsx","../../src/components/molecules/navigation/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M22 2 2 22\", key: \"y4kqgn\" }]];\nconst Slash = createLucideIcon(\"slash\", __iconNode);\n\nexport { __iconNode, Slash as default };\n//# sourceMappingURL=slash.mjs.map\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport type * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('gap-1.5 inline-flex items-center', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'a'> & { children?: React.ReactNode }) {\n return useRender({\n defaultTagName: 'a',\n props: mergeProps<'a'>(\n {\n className: cn(\n 'hover:text-foreground transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'breadcrumb-link',\n },\n });\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight className=\"rtl:rotate-180\" />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n 'size-5 [&>svg]:size-4 flex items-center justify-center',\n className,\n )}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { cva } from 'class-variance-authority';\nimport { ChevronRight, Home, Slash } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Breadcrumb as BreadcrumbBase,\n BreadcrumbItem as BreadcrumbItemBase,\n BreadcrumbLink as BreadcrumbLinkBase,\n BreadcrumbList as BreadcrumbListBase,\n BreadcrumbPage as BreadcrumbPageBase,\n BreadcrumbSeparator as BreadcrumbSeparatorBase,\n} from '@/components/ui/breadcrumb';\nimport { cn } from '@/lib/utils';\n\nconst FOCUS_RING =\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm';\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Variants\n * -------------------------------------------------------------------------- */\n\nconst breadcrumbItemVariants = cva(\n 'inline-flex items-center transition-[color,opacity,background-color,border-color,text-decoration-color] duration-200 ease-out whitespace-nowrap relative before:absolute before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:min-h-11 before:content-[\"\"] sm:before:content-none motion-reduce:transition-none',\n {\n variants: {\n variant: {\n text: 'text-sm font-normal text-muted-foreground hover:text-foreground underline decoration-transparent underline-offset-4 hover:decoration-current/30',\n 'soft-badge':\n 'text-xs font-normal text-primary rounded-full px-2 py-0.5 bg-primary/10 hover:bg-primary/15',\n 'outline-badge':\n 'text-xs font-normal text-foreground rounded-full px-2 py-0.5 border border-muted-foreground/50 hover:border-muted-foreground',\n },\n isCurrent: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n variant: 'text',\n isCurrent: true,\n className: 'text-foreground no-underline',\n },\n {\n variant: 'text',\n isCurrent: false,\n className: 'text-muted-foreground',\n },\n {\n variant: 'soft-badge',\n isCurrent: true,\n className: 'bg-primary/10',\n },\n {\n variant: 'soft-badge',\n isCurrent: false,\n className: 'bg-primary/10 opacity-50',\n },\n {\n variant: 'outline-badge',\n isCurrent: true,\n className: 'border-primary text-foreground',\n },\n {\n variant: 'outline-badge',\n isCurrent: false,\n className: 'border-muted-foreground/50 opacity-50',\n },\n ],\n defaultVariants: {\n variant: 'text',\n isCurrent: false,\n },\n },\n);\n\n/* -----------------------------------------------------------------------------\n * Context for sharing separator type\n * -------------------------------------------------------------------------- */\n\ntype SeparatorType = 'chevron' | 'slash';\n\ntype BreadcrumbContextValue = {\n separator: SeparatorType;\n};\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\nconst useBreadcrumbContext = () => React.useContext(BreadcrumbContext);\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps\n extends React.ComponentProps<typeof BreadcrumbBase> {\n separator?: SeparatorType;\n ring?: boolean;\n}\n\nfunction Breadcrumb({\n className,\n separator = 'chevron',\n ring = false,\n children,\n ...props\n}: BreadcrumbProps) {\n const contextValue = React.useMemo(() => ({ separator }), [separator]);\n\n return (\n <BreadcrumbContext.Provider value={contextValue}>\n <BreadcrumbBase\n className={cn(\n ring &&\n 'inline-flex border border-ring/50 rounded-full px-2.5 py-0.5',\n className,\n )}\n {...props}\n >\n {children}\n </BreadcrumbBase>\n </BreadcrumbContext.Provider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbList Component\n * -------------------------------------------------------------------------- */\n\nexport type BreadcrumbListProps = React.ComponentProps<\n typeof BreadcrumbListBase\n>;\n\nfunction BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n <BreadcrumbListBase\n className={cn('flex-nowrap gap-1', className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbItem Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbItemProps\n extends Omit<React.ComponentProps<typeof BreadcrumbItemBase>, 'className'> {\n className?: string;\n}\n\nfunction BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return <BreadcrumbItemBase className={cn('gap-1', className)} {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbLink Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbLinkProps\n extends React.ComponentProps<typeof BreadcrumbLinkBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n isCurrent?: boolean;\n}\n\nfunction BreadcrumbLink({\n className,\n variant = 'text',\n isCurrent = false,\n ...props\n}: BreadcrumbLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(breadcrumbItemVariants({ variant, isCurrent }), className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbPage Component (Current Page)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbPageProps\n extends React.ComponentProps<typeof BreadcrumbPageBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbPage({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbPageProps) {\n return (\n <BreadcrumbPageBase\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: true }),\n className,\n )}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbSeparator Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbSeparatorProps\n extends Omit<\n React.ComponentProps<typeof BreadcrumbSeparatorBase>,\n 'children'\n > {\n type?: SeparatorType;\n}\n\nfunction BreadcrumbSeparator({\n className,\n type,\n ...props\n}: BreadcrumbSeparatorProps) {\n const { separator } = useBreadcrumbContext();\n const separatorType = type ?? separator;\n\n return (\n <BreadcrumbSeparatorBase\n className={cn(\n '[&>svg]:size-3.5 text-muted-foreground transition-opacity duration-200 ease-out motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {separatorType === 'slash' ? (\n <Slash />\n ) : (\n <ChevronRight className=\"rtl:rotate-180\" />\n )}\n </BreadcrumbSeparatorBase>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbEllipsis Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbEllipsisProps\n extends React.ComponentProps<'button'> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbEllipsis({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbEllipsisProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"breadcrumb-ellipsis\"\n aria-label=\"Show more breadcrumb items\"\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: false }),\n `cursor-pointer hover:text-foreground ${FOCUS_RING}`,\n className,\n )}\n {...props}\n >\n &#8230;\n </button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbHomeLink Component (Home Icon)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbHomeLinkProps\n extends Omit<BreadcrumbLinkProps, 'children'> {\n srLabel?: string;\n}\n\nfunction BreadcrumbHomeLink({\n className,\n variant = 'text',\n srLabel = 'Home',\n ...props\n}: BreadcrumbHomeLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(\n `group inline-flex items-center text-muted-foreground hover:text-secondary-foreground transition-colors duration-200 ease-out motion-reduce:transition-none ${FOCUS_RING}`,\n variant === 'soft-badge' &&\n 'rounded-full px-1.5 py-0.5 bg-primary/10 text-primary',\n variant === 'outline-badge' &&\n 'rounded-full px-1.5 py-0.5 border border-muted-foreground/50',\n className,\n )}\n {...props}\n >\n <Home className=\"size-3.5 transition-transform duration-200 ease-out group-hover:scale-110 motion-reduce:transition-none\" />\n <span className=\"sr-only\">{srLabel}</span>\n </BreadcrumbLinkBase>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\nBreadcrumbHomeLink.displayName = 'BreadcrumbHomeLink';\n\n/**\n * Breadcrumb component with dot notation for compound parts.\n *\n * @example\n * ```tsx\n * <Breadcrumb>\n * <Breadcrumb.List>\n * <Breadcrumb.Item>\n * <Breadcrumb.Link href=\"/\">Home</Breadcrumb.Link>\n * </Breadcrumb.Item>\n * <Breadcrumb.Separator />\n * <Breadcrumb.Item>\n * <Breadcrumb.Page>Current</Breadcrumb.Page>\n * </Breadcrumb.Item>\n * </Breadcrumb.List>\n * </Breadcrumb>\n * ```\n */\nconst BreadcrumbCompound = Object.assign(Breadcrumb, {\n Root: Breadcrumb,\n List: BreadcrumbList,\n Item: BreadcrumbItem,\n Link: BreadcrumbLink,\n Page: BreadcrumbPage,\n Separator: BreadcrumbSeparator,\n Ellipsis: BreadcrumbEllipsis,\n HomeLink: BreadcrumbHomeLink,\n});\n\nexport {\n BreadcrumbCompound as Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbHomeLink,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n breadcrumbItemVariants,\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { f as d } from "./_shared.js";
2
- import { t as X } from "./check.js";
2
+ import { t as J } from "./check.js";
3
3
  import { t as Ee } from "./chevron-right.js";
4
- import { c as J, r as _e, t as Be, u as Ge } from "./useRenderElement.js";
5
- import { A as He, M as Ae, N as Le, Q as $, i as q, j as Ue, tt as je, v as Ye } from "./popupStateMapping.js";
6
- import { r as $e, t as qe } from "./useStableCallback.js";
7
- import { n as Q } from "./useTimeout.js";
8
- import { c as Ke, f as Xe, p as Je } from "./floating-ui.utils.dom.js";
9
- import { n as K } from "./shadowDom.js";
10
- import { n as Qe, t as We } from "./safePolygon.js";
4
+ import { c as Q, r as _e, t as Be, u as Ge } from "./useRenderElement.js";
5
+ import { A as He, M as Ae, N as Le, Q as $, i as K, j as Ue, tt as je, v as Ye } from "./popupStateMapping.js";
6
+ import { r as $e, t as Ke } from "./useStableCallback.js";
7
+ import { n as W } from "./useTimeout.js";
8
+ import { c as Xe, f as Je, p as Qe } from "./floating-ui.utils.dom.js";
9
+ import { n as X } from "./shadowDom.js";
10
+ import { n as We, t as qe } from "./safePolygon.js";
11
11
  import { r as Ve } from "./createBaseUIEventDetails.js";
12
12
  import { t as P } from "./owner.js";
13
13
  import { a as Ze } from "./useOpenInteractionType.js";
@@ -19,13 +19,13 @@ import { t as at } from "./Separator.js";
19
19
  import { t as st } from "./getPseudoElementBounds.js";
20
20
  import { t as it } from "./useTriggerFocusGuards.js";
21
21
  import { t as ut } from "./Kbd.js";
22
- import { _ as W, a as dt, c as ct, d as pt, f as lt, g as mt, h as ft, i as gt, l as V, m as bt, n as wt, o as xt, p as Mt, r as ht, s as vt, t as yt, u as Nt } from "./MenuSubmenuTrigger.js";
22
+ import { _ as q, a as dt, c as ct, d as pt, f as lt, g as mt, h as ft, i as gt, l as V, m as bt, n as wt, o as xt, p as Mt, r as ht, s as vt, t as yt, u as Nt } from "./MenuSubmenuTrigger.js";
23
23
  import * as u from "react";
24
24
  import { jsx as n, jsxs as g } from "react/jsx-runtime";
25
25
  function Z(e) {
26
- if (Xe(e) && e.hasAttribute("data-rootownerid")) return e.getAttribute("data-rootownerid") ?? void 0;
27
- if (!Je(e))
28
- return Z(Ke(e));
26
+ if (Je(e) && e.hasAttribute("data-rootownerid")) return e.getAttribute("data-rootownerid") ?? void 0;
27
+ if (!Qe(e))
28
+ return Z(Xe(e));
29
29
  }
30
30
  function Dt(e) {
31
31
  const { enabled: t = !0, mouseDownAction: o, open: r } = e, s = u.useRef(!1);
@@ -38,14 +38,14 @@ function Dt(e) {
38
38
  onClick: (i) => {
39
39
  s.current && (s.current = !1, i.preventBaseUIHandler());
40
40
  }
41
- } : J, [
41
+ } : Q, [
42
42
  t,
43
43
  o,
44
44
  r
45
45
  ]);
46
46
  }
47
47
  var D = 2, Tt = je(function(t, o) {
48
- const { render: r, className: s, style: i, disabled: b = !1, nativeButton: R = !0, id: I, openOnHover: x, delay: ge = 100, closeDelay: E = 0, handle: be, payload: we, ...xe } = t, Me = W(!0), a = be?.store ?? Me?.store;
48
+ const { render: r, className: s, style: i, disabled: b = !1, nativeButton: R = !0, id: I, openOnHover: x, delay: ge = 100, closeDelay: E = 0, handle: be, payload: we, ...xe } = t, Me = q(!0), a = be?.store ?? Me?.store;
49
49
  if (!a) throw new Error(Ge(85));
50
50
  const p = et(I), he = a.useState("isTriggerActive", p), S = a.useState("floatingRootContext"), l = a.useState("isOpenedByTrigger", p), ve = a.useState("triggerPopupId", p), v = u.useRef(null), c = It(), ye = ot(!0), _ = Ae(), y = u.useMemo(() => _ ?? new Le(), [_]), { registerTrigger: Ne, isMountedByThisTrigger: B } = Ye(p, v, a, {
51
51
  payload: we,
@@ -66,11 +66,11 @@ var D = 2, Tt = je(function(t, o) {
66
66
  l,
67
67
  c.type
68
68
  ]);
69
- const w = u.useRef(null), G = Q(), C = qe((f) => {
69
+ const w = u.useRef(null), G = W(), C = Ke((f) => {
70
70
  if (!w.current) return;
71
71
  G.clear(), a.context.allowMouseUpTriggerRef.current = !1;
72
72
  const h = f.target;
73
- if (K(w.current, h) || K(a.select("positionerElement"), h) || h === w.current || h != null && Z(h) === a.select("rootId")) return;
73
+ if (X(w.current, h) || X(a.select("positionerElement"), h) || h === w.current || h != null && Z(h) === a.select("rootId")) return;
74
74
  const N = st(w.current);
75
75
  f.clientX >= N.left - D && f.clientX <= N.right + D && f.clientY >= N.top - D && f.clientY <= N.bottom + D || y.events.emit("close", {
76
76
  domEvent: f,
@@ -84,9 +84,9 @@ var D = 2, Tt = je(function(t, o) {
84
84
  C,
85
85
  a
86
86
  ]);
87
- const k = m && c.context.hasSubmenuOpen, Ie = Qe(S, {
87
+ const k = m && c.context.hasSubmenuOpen, Ie = We(S, {
88
88
  enabled: (x ?? k) && !M && c.type !== "context-menu" && (!m || k && !B),
89
- handleClose: We({ blockPointerEvents: !m }),
89
+ handleClose: qe({ blockPointerEvents: !m }),
90
90
  mouseOnly: !0,
91
91
  move: !1,
92
92
  restMs: c.type === void 0 ? ge : void 0,
@@ -116,7 +116,7 @@ var D = 2, Tt = je(function(t, o) {
116
116
  v
117
117
  ], j = [
118
118
  ke,
119
- Ie ?? J,
119
+ Ie ?? Q,
120
120
  Pe,
121
121
  {
122
122
  "aria-haspopup": "menu",
@@ -134,7 +134,7 @@ var D = 2, Tt = je(function(t, o) {
134
134
  Te
135
135
  ], Y = Be("button", t, {
136
136
  enabled: !m,
137
- stateAttributesMapping: q,
137
+ stateAttributesMapping: K,
138
138
  state: L,
139
139
  ref: U,
140
140
  props: j
@@ -147,7 +147,7 @@ var D = 2, Tt = je(function(t, o) {
147
147
  state: L,
148
148
  refs: U,
149
149
  props: j,
150
- stateAttributesMapping: q
150
+ stateAttributesMapping: K
151
151
  }) : l ? /* @__PURE__ */ g(u.Fragment, { children: [
152
152
  /* @__PURE__ */ n($, {
153
153
  ref: Fe,
@@ -161,7 +161,7 @@ var D = 2, Tt = je(function(t, o) {
161
161
  ] }) : /* @__PURE__ */ n(u.Fragment, { children: Y }, p);
162
162
  });
163
163
  function Rt(e, t) {
164
- const o = Q(), [r, s] = u.useState(!1);
164
+ const o = W(), [r, s] = u.useState(!1);
165
165
  return $e(() => {
166
166
  e && t === "trigger-hover" ? (s(!0), o.start(500, () => {
167
167
  s(!1);
@@ -173,7 +173,7 @@ function Rt(e, t) {
173
173
  ]), r;
174
174
  }
175
175
  function It() {
176
- const e = mt(!0), t = W(!0), o = gt(!0);
176
+ const e = mt(!0), t = q(!0), o = gt(!0);
177
177
  return u.useMemo(() => o ? {
178
178
  type: "menubar",
179
179
  context: o
@@ -248,7 +248,7 @@ function ae({ className: e, children: t, ...o }) {
248
248
  "data-slot": "dropdown-menu-radio-item-indicator",
249
249
  children: /* @__PURE__ */ n(dt, {
250
250
  className: "animate-in zoom-in-75 duration-150 motion-reduce:animate-none",
251
- children: /* @__PURE__ */ n(X, {})
251
+ children: /* @__PURE__ */ n(J, {})
252
252
  })
253
253
  }), t]
254
254
  });
@@ -265,7 +265,7 @@ function se({ className: e, children: t, checked: o, ...r }) {
265
265
  "data-slot": "dropdown-menu-checkbox-item-indicator",
266
266
  children: /* @__PURE__ */ n(bt, {
267
267
  className: "animate-in zoom-in-75 duration-150 motion-reduce:animate-none",
268
- children: /* @__PURE__ */ n(X, {})
268
+ children: /* @__PURE__ */ n(J, {})
269
269
  })
270
270
  }), t]
271
271
  });
@@ -342,7 +342,7 @@ function ce({ className: e, inset: t, ...o }) {
342
342
  return /* @__PURE__ */ n(lt, {
343
343
  "data-slot": "dropdown-menu-label",
344
344
  "data-inset": t,
345
- className: d("px-4 py-2 text-xs font-medium text-text-quaternary uppercase tracking-wider", "data-[inset]:ps-8", e),
345
+ className: d("px-4 py-2 text-xs font-medium text-secondary-foreground uppercase tracking-wider", "data-[inset]:ps-8", e),
346
346
  ...o
347
347
  });
348
348
  }
@@ -358,7 +358,7 @@ function pe({ className: e, icon: t, shortcut: o, destructive: r = !1, render: s
358
358
  ...I,
359
359
  children: [
360
360
  t && /* @__PURE__ */ n("span", {
361
- className: d("size-4 shrink-0 transition-colors duration-150", x ? "text-destructive" : "text-text-quaternary group-focus/dropdown-menu-item:text-secondary-foreground"),
361
+ className: d("size-4 shrink-0 transition-colors duration-150", x ? "text-destructive" : "text-current"),
362
362
  children: t
363
363
  }),
364
364
  /* @__PURE__ */ n("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["React","_formatErrorMessage","React","REASONS.cancelOpen"],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/utils/findRootOwnerId.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/utils/useMixedToggleClickHandler.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/trigger/MenuTrigger.mjs","../../src/components/organisms/menus/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["import { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function findRootOwnerId(node) {\n if (isHTMLElement(node) && node.hasAttribute('data-rootownerid')) {\n return node.getAttribute('data-rootownerid') ?? undefined;\n }\n if (isLastTraversableNode(node)) {\n return undefined;\n }\n return findRootOwnerId(getParentNode(node));\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\n/**\n * Returns `click` and `mousedown` handlers that fix the behavior of triggers of popups that are toggled by different events.\n * For example, a button that opens a popup on mousedown and closes it on click.\n * This hook prevents the popup from closing immediately after the mouse button is released.\n */\nexport function useMixedToggleClickHandler(params) {\n const {\n enabled = true,\n mouseDownAction,\n open\n } = params;\n const ignoreClickRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n return {\n onMouseDown: event => {\n if (mouseDownAction === 'open' && !open || mouseDownAction === 'close' && open) {\n ignoreClickRef.current = true;\n ownerDocument(event.currentTarget).addEventListener('click', () => {\n ignoreClickRef.current = false;\n }, {\n once: true\n });\n }\n },\n onClick: event => {\n if (ignoreClickRef.current) {\n ignoreClickRef.current = false;\n event.preventBaseUIHandler();\n }\n }\n };\n }, [enabled, mouseDownAction, open]);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { fastComponentRef } from '@base-ui/utils/fastHooks';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { safePolygon, useClick, useFloatingTree, useFocus, useHoverReferenceInteraction, useFloatingNodeId, useFloatingParentNodeId } from \"../../floating-ui-react/index.mjs\";\nimport { FloatingTreeStore } from \"../../floating-ui-react/components/FloatingTreeStore.mjs\";\nimport { contains } from \"../../floating-ui-react/utils.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { getPseudoElementBounds } from \"../../utils/getPseudoElementBounds.mjs\";\nimport { CompositeItem } from \"../../internals/composite/item/CompositeItem.mjs\";\nimport { useCompositeRootContext } from \"../../internals/composite/root/CompositeRootContext.mjs\";\nimport { findRootOwnerId } from \"../utils/findRootOwnerId.mjs\";\nimport { useTriggerDataForwarding } from \"../../utils/popups/index.mjs\";\nimport { useTriggerFocusGuards } from \"../../utils/popups/useTriggerFocusGuards.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useMixedToggleClickHandler } from \"../../utils/useMixedToggleClickHandler.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.mjs\";\nimport { PATIENT_CLICK_THRESHOLD } from \"../../internals/constants.mjs\";\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst BOUNDARY_OFFSET = 2;\n\n/**\n * A button that opens the menu.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuTrigger = fastComponentRef(function MenuTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled: disabledProp = false,\n nativeButton = true,\n id: idProp,\n openOnHover: openOnHoverProp,\n delay = 100,\n closeDelay = 0,\n handle,\n payload,\n ...elementProps\n } = componentProps;\n const rootContext = useMenuRootContext(true);\n const store = handle?.store ?? rootContext?.store;\n if (!store) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.' : _formatErrorMessage(85));\n }\n const thisTriggerId = useBaseUiId(idProp);\n const isTriggerActive = store.useState('isTriggerActive', thisTriggerId);\n const floatingRootContext = store.useState('floatingRootContext');\n const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);\n const popupId = store.useState('triggerPopupId', thisTriggerId);\n const triggerElementRef = React.useRef(null);\n const parent = useMenuParent();\n const compositeRootContext = useCompositeRootContext(true);\n const floatingTreeRootFromContext = useFloatingTree();\n const floatingTreeRoot = React.useMemo(() => {\n return floatingTreeRootFromContext ?? new FloatingTreeStore();\n }, [floatingTreeRootFromContext]);\n const floatingNodeId = useFloatingNodeId(floatingTreeRoot);\n const floatingParentNodeId = useFloatingParentNodeId();\n const {\n registerTrigger,\n isMountedByThisTrigger\n } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {\n payload,\n closeDelay,\n parent,\n floatingTreeRoot,\n floatingNodeId,\n floatingParentNodeId,\n keyboardEventRelay: compositeRootContext?.relayKeyboardEvent\n });\n const isInMenubar = parent.type === 'menubar';\n const rootDisabled = store.useState('disabled');\n const disabled = disabledProp || rootDisabled || isInMenubar && parent.context.disabled;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n React.useEffect(() => {\n if (!isOpenedByThisTrigger && parent.type === undefined) {\n store.context.allowMouseUpTriggerRef.current = false;\n }\n }, [store, isOpenedByThisTrigger, parent.type]);\n const triggerRef = React.useRef(null);\n const allowMouseUpTriggerTimeout = useTimeout();\n const handleDocumentMouseUp = useStableCallback(mouseEvent => {\n if (!triggerRef.current) {\n return;\n }\n allowMouseUpTriggerTimeout.clear();\n store.context.allowMouseUpTriggerRef.current = false;\n const mouseUpTarget = mouseEvent.target;\n if (contains(triggerRef.current, mouseUpTarget) || contains(store.select('positionerElement'), mouseUpTarget) || mouseUpTarget === triggerRef.current) {\n return;\n }\n if (mouseUpTarget != null && findRootOwnerId(mouseUpTarget) === store.select('rootId')) {\n return;\n }\n const bounds = getPseudoElementBounds(triggerRef.current);\n if (mouseEvent.clientX >= bounds.left - BOUNDARY_OFFSET && mouseEvent.clientX <= bounds.right + BOUNDARY_OFFSET && mouseEvent.clientY >= bounds.top - BOUNDARY_OFFSET && mouseEvent.clientY <= bounds.bottom + BOUNDARY_OFFSET) {\n return;\n }\n floatingTreeRoot.events.emit('close', {\n domEvent: mouseEvent,\n reason: REASONS.cancelOpen\n });\n });\n React.useEffect(() => {\n if (isOpenedByThisTrigger && store.select('lastOpenChangeReason') === REASONS.triggerHover) {\n const doc = ownerDocument(triggerRef.current);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, [isOpenedByThisTrigger, handleDocumentMouseUp, store]);\n const parentMenubarHasSubmenuOpen = isInMenubar && parent.context.hasSubmenuOpen;\n const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen;\n const hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n enabled: openOnHover && !disabled && parent.type !== 'context-menu' && (!isInMenubar || parentMenubarHasSubmenuOpen && !isMountedByThisTrigger),\n handleClose: safePolygon({\n blockPointerEvents: !isInMenubar\n }),\n mouseOnly: true,\n move: false,\n restMs: parent.type === undefined ? delay : undefined,\n delay: {\n close: closeDelay\n },\n triggerElementRef,\n externalTree: floatingTreeRoot,\n isActiveTrigger: isTriggerActive,\n isClosing: () => store.select('transitionStatus') === 'ending'\n });\n\n // Whether to ignore clicks to open the menu.\n // `lastOpenChangeReason` doesn't need to be reactive here, as we need to run this\n // only when `isOpenedByThisTrigger` changes.\n const stickIfOpen = useStickIfOpen(isOpenedByThisTrigger, store.select('lastOpenChangeReason'));\n const click = useClick(floatingRootContext, {\n enabled: !disabled && parent.type !== 'context-menu',\n event: isOpenedByThisTrigger && isInMenubar ? 'click' : 'mousedown',\n toggle: true,\n ignoreMouse: false,\n stickIfOpen: parent.type === undefined ? stickIfOpen : false\n });\n const focus = useFocus(floatingRootContext, {\n enabled: !disabled && parentMenubarHasSubmenuOpen\n });\n const mixedToggleHandlers = useMixedToggleClickHandler({\n open: isOpenedByThisTrigger,\n enabled: isInMenubar,\n mouseDownAction: 'open'\n });\n const localInteractionProps = React.useMemo(() => mergeProps(focus.reference, click.reference), [focus.reference, click.reference]);\n const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);\n const {\n preFocusGuardRef,\n handlePreFocusGuardFocus,\n handleFocusTargetFocus\n } = useTriggerFocusGuards(store, triggerElementRef);\n const state = {\n disabled,\n open: isOpenedByThisTrigger\n };\n const ref = [triggerRef, forwardedRef, buttonRef, registerTrigger, triggerElementRef];\n const props = [localInteractionProps, hoverProps ?? EMPTY_OBJECT, rootTriggerProps, {\n 'aria-haspopup': 'menu',\n 'aria-controls': popupId,\n id: thisTriggerId,\n onMouseDown: event => {\n if (store.select('open')) {\n return;\n }\n\n // mousedown -> mouseup on menu item should not trigger it within 200ms.\n allowMouseUpTriggerTimeout.start(200, () => {\n store.context.allowMouseUpTriggerRef.current = true;\n });\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, isInMenubar ? {\n role: 'menuitem'\n } : {}, mixedToggleHandlers, elementProps, getButtonProps];\n const element = useRenderElement('button', componentProps, {\n enabled: !isInMenubar,\n stateAttributesMapping: pressableTriggerOpenStateMapping,\n state,\n ref,\n props\n });\n if (isInMenubar) {\n return /*#__PURE__*/_jsx(CompositeItem, {\n tag: \"button\",\n render: render,\n className: className,\n style: style,\n state: state,\n refs: ref,\n props: props,\n stateAttributesMapping: pressableTriggerOpenStateMapping\n });\n }\n\n // A fragment with key is required to ensure that the `element` is mounted to the same DOM node\n // regardless of whether the focus guards are rendered or not.\n\n if (isOpenedByThisTrigger) {\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(FocusGuard, {\n ref: preFocusGuardRef,\n onFocus: handlePreFocusGuardFocus\n }, `${thisTriggerId}-pre-focus-guard`), /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId), /*#__PURE__*/_jsx(FocusGuard, {\n ref: store.context.triggerFocusTargetRef,\n onFocus: handleFocusTargetFocus\n }, `${thisTriggerId}-post-focus-guard`)]\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId);\n});\nif (process.env.NODE_ENV !== \"production\") MenuTrigger.displayName = \"MenuTrigger\";\n/**\n * Determines whether to ignore clicks after a hover-open.\n */\nfunction useStickIfOpen(open, openReason) {\n const stickIfOpenTimeout = useTimeout();\n const [stickIfOpen, setStickIfOpen] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (open && openReason === 'trigger-hover') {\n // Only allow \"patient\" clicks to close the menu if it's open.\n // If they clicked within 500ms of the menu opening, keep it open.\n setStickIfOpen(true);\n stickIfOpenTimeout.start(PATIENT_CLICK_THRESHOLD, () => {\n setStickIfOpen(false);\n });\n } else if (!open) {\n stickIfOpenTimeout.clear();\n setStickIfOpen(false);\n }\n }, [open, openReason, stickIfOpenTimeout]);\n return stickIfOpen;\n}\nfunction useMenuParent() {\n const contextMenuContext = useContextMenuRootContext(true);\n const parentContext = useMenuRootContext(true);\n const menubarContext = useMenubarContext(true);\n const parent = React.useMemo(() => {\n if (menubarContext) {\n return {\n type: 'menubar',\n context: menubarContext\n };\n }\n\n // Ensure this is not a Menu nested inside ContextMenu.Trigger.\n // ContextMenu parentContext is always undefined as ContextMenu.Root is instantiated with\n // <MenuRootContext.Provider value={undefined}>\n if (contextMenuContext && !parentContext) {\n return {\n type: 'context-menu',\n context: contextMenuContext\n };\n }\n return {\n type: undefined\n };\n }, [contextMenuContext, parentContext, menubarContext]);\n return parent;\n}","'use client';\n\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight } from 'lucide-react';\nimport type * as React from 'react';\nimport { Kbd } from '@/components/molecules/data/Kbd';\nimport { cn } from '@/lib/utils';\n\n// ============================================================================\n// Base Primitives\n// ============================================================================\n\nfunction DropdownMenuRoot({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu-root\" {...props} />;\n}\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\nDropdownMenuPortal.displayName = 'DropdownMenu.Portal';\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-2 text-sm [&_svg:not([class*='size-'])]:size-4 group/dd-sub flex cursor-default items-center outline-hidden select-none data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-[color,background-color,transform] duration-150 active:scale-[0.99]\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto rtl:rotate-180 transition-transform duration-150 group-data-open/dd-sub:translate-x-0.5\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: MenuPrimitive.RadioItem.Props) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenuPrimitive.CheckboxItem.Props) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ms-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuShortcut.displayName = 'DropdownMenu.Shortcut';\n\n// ============================================================================\n// Enhanced Components\n// ============================================================================\n\n// Width variant classes for popup\nconst popupWidthClasses = {\n auto: '',\n sm: 'w-48',\n md: 'w-56',\n lg: 'w-64',\n};\n\n/**\n * Enhanced DropdownMenuPopup with HumainOS styling\n */\nexport interface DropdownMenuPopupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Menu content */\n children?: React.ReactNode;\n /** Width of the dropdown menu */\n width?: 'auto' | 'sm' | 'md' | 'lg';\n /** Side offset from the trigger */\n sideOffset?: number;\n /** Side to show the menu on */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the menu */\n align?: 'start' | 'center' | 'end';\n /** Align offset */\n alignOffset?: number;\n}\n\nfunction DropdownMenuPopup({\n align = 'start',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n width = 'auto',\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-popup\"\n className={cn(\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'border border-border bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-sm z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden',\n 'duration-200 motion-reduce:animate-none',\n popupWidthClasses[width],\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nDropdownMenuPopup.displayName = 'DropdownMenu.Popup';\n\nfunction DropdownMenuSubPopup({\n align = 'start',\n alignOffset = -3,\n side = 'right',\n sideOffset = 0,\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <DropdownMenuPopup\n data-slot=\"dropdown-menu-sub-popup\"\n className={cn('min-w-[96px] w-auto', className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n );\n}\nDropdownMenuSubPopup.displayName = 'DropdownMenu.SubPopup';\n\n/**\n * Header section for dropdown menu with avatar and user info\n */\nexport interface DropdownMenuHeaderProps extends React.ComponentProps<'div'> {\n /** Avatar element to display */\n avatar?: React.ReactNode;\n /** Primary text (e.g., user name) */\n title?: string;\n /** Secondary text (e.g., email) */\n subtitle?: string;\n}\n\nfunction DropdownMenuHeader({\n className,\n avatar,\n title,\n subtitle,\n children,\n ...props\n}: DropdownMenuHeaderProps) {\n if (children) {\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n {avatar}\n <div className=\"flex flex-col min-w-0\">\n {title && (\n <span className=\"text-sm font-semibold text-foreground truncate\">\n {title}\n </span>\n )}\n {subtitle && (\n <span className=\"text-sm text-muted-foreground truncate\">\n {subtitle}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n}\nDropdownMenuHeader.displayName = 'DropdownMenu.Header';\n\nexport interface DropdownMenuLabelProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the label is inset */\n inset?: boolean;\n}\n\n/**\n * Enhanced DropdownMenuLabel\n */\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-4 py-2 text-xs font-medium text-text-quaternary uppercase tracking-wider',\n 'data-[inset]:ps-8',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\n/**\n * Enhanced DropdownMenuItem with icon and shortcut support\n */\nexport interface DropdownMenuItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Item content */\n children?: React.ReactNode;\n /** Icon displayed before the label */\n icon?: React.ReactNode;\n /** Keyboard shortcut displayed on the right */\n shortcut?: string;\n /** Makes the item destructive (red text) */\n destructive?: boolean;\n /** Whether the item is disabled */\n disabled?: boolean;\n /**\n * Render as a different element (Base UI pattern).\n * Use this to render as a custom component like Link or anchor.\n * @example render={<Link to=\"/profile\" />}\n */\n render?: React.ReactElement;\n /** Whether the item is inset */\n inset?: boolean;\n /** Variant for styling */\n variant?: 'default' | 'destructive';\n}\n\nfunction DropdownMenuItem({\n className,\n icon,\n shortcut,\n destructive = false,\n render,\n inset,\n variant = 'default',\n children,\n ...props\n}: DropdownMenuItemProps) {\n const isDestructive = destructive || variant === 'destructive';\n\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={isDestructive ? 'destructive' : variant}\n className={cn(\n 'group/dropdown-menu-item relative flex items-center gap-2 mx-1.5 px-2.5 py-2 rounded-md cursor-pointer outline-none',\n 'text-sm font-semibold text-secondary-foreground',\n 'focus:bg-muted focus:text-secondary-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n 'data-[inset]:ps-8',\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n 'transition-[color,background-color,transform] duration-150 active:scale-[0.99]',\n isDestructive &&\n 'text-destructive focus:text-destructive focus:bg-destructive/10',\n className,\n )}\n render={render}\n {...props}\n >\n {icon && (\n <span\n className={cn(\n 'size-4 shrink-0 transition-colors duration-150',\n isDestructive\n ? 'text-destructive'\n : 'text-text-quaternary group-focus/dropdown-menu-item:text-secondary-foreground',\n )}\n >\n {icon}\n </span>\n )}\n <span className=\"flex-1\">{children}</span>\n {shortcut && (\n <DropdownMenuShortcutBadge className=\"transition-colors duration-150 group-focus/dropdown-menu-item:bg-primary/10 group-focus/dropdown-menu-item:text-primary\">\n {shortcut}\n </DropdownMenuShortcutBadge>\n )}\n </MenuPrimitive.Item>\n );\n}\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\nexport interface DropdownMenuSeparatorProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Enhanced DropdownMenuSeparator\n */\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: DropdownMenuSeparatorProps) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('my-1 h-px bg-surface-2', className)}\n {...props}\n />\n );\n}\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\nexport interface DropdownMenuItemsProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for menu items with proper padding\n */\nfunction DropdownMenuItems({\n className,\n children,\n ...props\n}: DropdownMenuItemsProps) {\n return (\n <div\n data-slot=\"dropdown-menu-items\"\n className={cn('py-1', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\nDropdownMenuItems.displayName = 'DropdownMenu.Items';\n\n/**\n * Styled shortcut badge that matches Figma design (uses Kbd wrapper)\n */\nfunction DropdownMenuShortcutBadge({\n className,\n children,\n ...props\n}: React.ComponentProps<'kbd'>) {\n return (\n <Kbd variant=\"outline\" size=\"xs\" className={className} {...props}>\n {children}\n </Kbd>\n );\n}\nDropdownMenuShortcutBadge.displayName = 'DropdownMenu.ShortcutBadge';\n\n// ============================================================================\n// SimpleDropdownMenu (with trigger prop pattern)\n// ============================================================================\n\nexport interface SimpleDropdownMenuProps {\n /** The element that triggers the dropdown (required) */\n trigger: React.ReactElement;\n /** Dropdown content (typically DropdownMenu.Popup component) */\n children?: React.ReactNode;\n /** Controlled open state. When provided, component is controlled. */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Simplified DropdownMenu component with explicit trigger prop.\n * Prevents nested button hydration errors by using base-ui's render prop.\n *\n * @example\n * <SimpleDropdownMenu trigger={<Button>Menu</Button>}>\n * <DropdownMenu.Popup>\n * <DropdownMenu.Items>\n * <DropdownMenu.Item>Option 1</DropdownMenu.Item>\n * </DropdownMenu.Items>\n * </DropdownMenu.Popup>\n * </SimpleDropdownMenu>\n */\nfunction SimpleDropdownMenu({\n trigger,\n open,\n onOpenChange,\n children,\n}: SimpleDropdownMenuProps) {\n return (\n <DropdownMenuRoot open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger render={trigger} />\n {children}\n </DropdownMenuRoot>\n );\n}\nSimpleDropdownMenu.displayName = 'DropdownMenu.Simple';\n\n// ============================================================================\n// Compound Export (Dot Notation Pattern)\n// ============================================================================\n\nexport const DropdownMenu = Object.assign(DropdownMenuRoot, {\n Root: DropdownMenuRoot,\n Portal: DropdownMenuPortal,\n Trigger: DropdownMenuTrigger,\n Popup: DropdownMenuPopup,\n Group: DropdownMenuGroup,\n Label: DropdownMenuLabel,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n ShortcutBadge: DropdownMenuShortcutBadge,\n Sub: DropdownMenuSub,\n SubTrigger: DropdownMenuSubTrigger,\n SubPopup: DropdownMenuSubPopup,\n Header: DropdownMenuHeader,\n Items: DropdownMenuItems,\n Simple: SimpleDropdownMenu,\n});\n\n// ============================================================================\n// Type Exports\n// ============================================================================\n\nexport type DropdownMenuPopupWrapperProps = DropdownMenuPopupProps;\nexport type DropdownMenuItemWrapperProps = DropdownMenuItemProps;\nexport type DropdownMenuHeaderWrapperProps = DropdownMenuHeaderProps;\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.js","names":["React","_formatErrorMessage","React","REASONS.cancelOpen"],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/utils/findRootOwnerId.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/utils/useMixedToggleClickHandler.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/trigger/MenuTrigger.mjs","../../src/components/organisms/menus/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["import { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function findRootOwnerId(node) {\n if (isHTMLElement(node) && node.hasAttribute('data-rootownerid')) {\n return node.getAttribute('data-rootownerid') ?? undefined;\n }\n if (isLastTraversableNode(node)) {\n return undefined;\n }\n return findRootOwnerId(getParentNode(node));\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\n/**\n * Returns `click` and `mousedown` handlers that fix the behavior of triggers of popups that are toggled by different events.\n * For example, a button that opens a popup on mousedown and closes it on click.\n * This hook prevents the popup from closing immediately after the mouse button is released.\n */\nexport function useMixedToggleClickHandler(params) {\n const {\n enabled = true,\n mouseDownAction,\n open\n } = params;\n const ignoreClickRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n return {\n onMouseDown: event => {\n if (mouseDownAction === 'open' && !open || mouseDownAction === 'close' && open) {\n ignoreClickRef.current = true;\n ownerDocument(event.currentTarget).addEventListener('click', () => {\n ignoreClickRef.current = false;\n }, {\n once: true\n });\n }\n },\n onClick: event => {\n if (ignoreClickRef.current) {\n ignoreClickRef.current = false;\n event.preventBaseUIHandler();\n }\n }\n };\n }, [enabled, mouseDownAction, open]);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { fastComponentRef } from '@base-ui/utils/fastHooks';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { safePolygon, useClick, useFloatingTree, useFocus, useHoverReferenceInteraction, useFloatingNodeId, useFloatingParentNodeId } from \"../../floating-ui-react/index.mjs\";\nimport { FloatingTreeStore } from \"../../floating-ui-react/components/FloatingTreeStore.mjs\";\nimport { contains } from \"../../floating-ui-react/utils.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { getPseudoElementBounds } from \"../../utils/getPseudoElementBounds.mjs\";\nimport { CompositeItem } from \"../../internals/composite/item/CompositeItem.mjs\";\nimport { useCompositeRootContext } from \"../../internals/composite/root/CompositeRootContext.mjs\";\nimport { findRootOwnerId } from \"../utils/findRootOwnerId.mjs\";\nimport { useTriggerDataForwarding } from \"../../utils/popups/index.mjs\";\nimport { useTriggerFocusGuards } from \"../../utils/popups/useTriggerFocusGuards.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useMixedToggleClickHandler } from \"../../utils/useMixedToggleClickHandler.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.mjs\";\nimport { PATIENT_CLICK_THRESHOLD } from \"../../internals/constants.mjs\";\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst BOUNDARY_OFFSET = 2;\n\n/**\n * A button that opens the menu.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuTrigger = fastComponentRef(function MenuTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled: disabledProp = false,\n nativeButton = true,\n id: idProp,\n openOnHover: openOnHoverProp,\n delay = 100,\n closeDelay = 0,\n handle,\n payload,\n ...elementProps\n } = componentProps;\n const rootContext = useMenuRootContext(true);\n const store = handle?.store ?? rootContext?.store;\n if (!store) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.' : _formatErrorMessage(85));\n }\n const thisTriggerId = useBaseUiId(idProp);\n const isTriggerActive = store.useState('isTriggerActive', thisTriggerId);\n const floatingRootContext = store.useState('floatingRootContext');\n const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);\n const popupId = store.useState('triggerPopupId', thisTriggerId);\n const triggerElementRef = React.useRef(null);\n const parent = useMenuParent();\n const compositeRootContext = useCompositeRootContext(true);\n const floatingTreeRootFromContext = useFloatingTree();\n const floatingTreeRoot = React.useMemo(() => {\n return floatingTreeRootFromContext ?? new FloatingTreeStore();\n }, [floatingTreeRootFromContext]);\n const floatingNodeId = useFloatingNodeId(floatingTreeRoot);\n const floatingParentNodeId = useFloatingParentNodeId();\n const {\n registerTrigger,\n isMountedByThisTrigger\n } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {\n payload,\n closeDelay,\n parent,\n floatingTreeRoot,\n floatingNodeId,\n floatingParentNodeId,\n keyboardEventRelay: compositeRootContext?.relayKeyboardEvent\n });\n const isInMenubar = parent.type === 'menubar';\n const rootDisabled = store.useState('disabled');\n const disabled = disabledProp || rootDisabled || isInMenubar && parent.context.disabled;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n React.useEffect(() => {\n if (!isOpenedByThisTrigger && parent.type === undefined) {\n store.context.allowMouseUpTriggerRef.current = false;\n }\n }, [store, isOpenedByThisTrigger, parent.type]);\n const triggerRef = React.useRef(null);\n const allowMouseUpTriggerTimeout = useTimeout();\n const handleDocumentMouseUp = useStableCallback(mouseEvent => {\n if (!triggerRef.current) {\n return;\n }\n allowMouseUpTriggerTimeout.clear();\n store.context.allowMouseUpTriggerRef.current = false;\n const mouseUpTarget = mouseEvent.target;\n if (contains(triggerRef.current, mouseUpTarget) || contains(store.select('positionerElement'), mouseUpTarget) || mouseUpTarget === triggerRef.current) {\n return;\n }\n if (mouseUpTarget != null && findRootOwnerId(mouseUpTarget) === store.select('rootId')) {\n return;\n }\n const bounds = getPseudoElementBounds(triggerRef.current);\n if (mouseEvent.clientX >= bounds.left - BOUNDARY_OFFSET && mouseEvent.clientX <= bounds.right + BOUNDARY_OFFSET && mouseEvent.clientY >= bounds.top - BOUNDARY_OFFSET && mouseEvent.clientY <= bounds.bottom + BOUNDARY_OFFSET) {\n return;\n }\n floatingTreeRoot.events.emit('close', {\n domEvent: mouseEvent,\n reason: REASONS.cancelOpen\n });\n });\n React.useEffect(() => {\n if (isOpenedByThisTrigger && store.select('lastOpenChangeReason') === REASONS.triggerHover) {\n const doc = ownerDocument(triggerRef.current);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, [isOpenedByThisTrigger, handleDocumentMouseUp, store]);\n const parentMenubarHasSubmenuOpen = isInMenubar && parent.context.hasSubmenuOpen;\n const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen;\n const hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n enabled: openOnHover && !disabled && parent.type !== 'context-menu' && (!isInMenubar || parentMenubarHasSubmenuOpen && !isMountedByThisTrigger),\n handleClose: safePolygon({\n blockPointerEvents: !isInMenubar\n }),\n mouseOnly: true,\n move: false,\n restMs: parent.type === undefined ? delay : undefined,\n delay: {\n close: closeDelay\n },\n triggerElementRef,\n externalTree: floatingTreeRoot,\n isActiveTrigger: isTriggerActive,\n isClosing: () => store.select('transitionStatus') === 'ending'\n });\n\n // Whether to ignore clicks to open the menu.\n // `lastOpenChangeReason` doesn't need to be reactive here, as we need to run this\n // only when `isOpenedByThisTrigger` changes.\n const stickIfOpen = useStickIfOpen(isOpenedByThisTrigger, store.select('lastOpenChangeReason'));\n const click = useClick(floatingRootContext, {\n enabled: !disabled && parent.type !== 'context-menu',\n event: isOpenedByThisTrigger && isInMenubar ? 'click' : 'mousedown',\n toggle: true,\n ignoreMouse: false,\n stickIfOpen: parent.type === undefined ? stickIfOpen : false\n });\n const focus = useFocus(floatingRootContext, {\n enabled: !disabled && parentMenubarHasSubmenuOpen\n });\n const mixedToggleHandlers = useMixedToggleClickHandler({\n open: isOpenedByThisTrigger,\n enabled: isInMenubar,\n mouseDownAction: 'open'\n });\n const localInteractionProps = React.useMemo(() => mergeProps(focus.reference, click.reference), [focus.reference, click.reference]);\n const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);\n const {\n preFocusGuardRef,\n handlePreFocusGuardFocus,\n handleFocusTargetFocus\n } = useTriggerFocusGuards(store, triggerElementRef);\n const state = {\n disabled,\n open: isOpenedByThisTrigger\n };\n const ref = [triggerRef, forwardedRef, buttonRef, registerTrigger, triggerElementRef];\n const props = [localInteractionProps, hoverProps ?? EMPTY_OBJECT, rootTriggerProps, {\n 'aria-haspopup': 'menu',\n 'aria-controls': popupId,\n id: thisTriggerId,\n onMouseDown: event => {\n if (store.select('open')) {\n return;\n }\n\n // mousedown -> mouseup on menu item should not trigger it within 200ms.\n allowMouseUpTriggerTimeout.start(200, () => {\n store.context.allowMouseUpTriggerRef.current = true;\n });\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, isInMenubar ? {\n role: 'menuitem'\n } : {}, mixedToggleHandlers, elementProps, getButtonProps];\n const element = useRenderElement('button', componentProps, {\n enabled: !isInMenubar,\n stateAttributesMapping: pressableTriggerOpenStateMapping,\n state,\n ref,\n props\n });\n if (isInMenubar) {\n return /*#__PURE__*/_jsx(CompositeItem, {\n tag: \"button\",\n render: render,\n className: className,\n style: style,\n state: state,\n refs: ref,\n props: props,\n stateAttributesMapping: pressableTriggerOpenStateMapping\n });\n }\n\n // A fragment with key is required to ensure that the `element` is mounted to the same DOM node\n // regardless of whether the focus guards are rendered or not.\n\n if (isOpenedByThisTrigger) {\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(FocusGuard, {\n ref: preFocusGuardRef,\n onFocus: handlePreFocusGuardFocus\n }, `${thisTriggerId}-pre-focus-guard`), /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId), /*#__PURE__*/_jsx(FocusGuard, {\n ref: store.context.triggerFocusTargetRef,\n onFocus: handleFocusTargetFocus\n }, `${thisTriggerId}-post-focus-guard`)]\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId);\n});\nif (process.env.NODE_ENV !== \"production\") MenuTrigger.displayName = \"MenuTrigger\";\n/**\n * Determines whether to ignore clicks after a hover-open.\n */\nfunction useStickIfOpen(open, openReason) {\n const stickIfOpenTimeout = useTimeout();\n const [stickIfOpen, setStickIfOpen] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (open && openReason === 'trigger-hover') {\n // Only allow \"patient\" clicks to close the menu if it's open.\n // If they clicked within 500ms of the menu opening, keep it open.\n setStickIfOpen(true);\n stickIfOpenTimeout.start(PATIENT_CLICK_THRESHOLD, () => {\n setStickIfOpen(false);\n });\n } else if (!open) {\n stickIfOpenTimeout.clear();\n setStickIfOpen(false);\n }\n }, [open, openReason, stickIfOpenTimeout]);\n return stickIfOpen;\n}\nfunction useMenuParent() {\n const contextMenuContext = useContextMenuRootContext(true);\n const parentContext = useMenuRootContext(true);\n const menubarContext = useMenubarContext(true);\n const parent = React.useMemo(() => {\n if (menubarContext) {\n return {\n type: 'menubar',\n context: menubarContext\n };\n }\n\n // Ensure this is not a Menu nested inside ContextMenu.Trigger.\n // ContextMenu parentContext is always undefined as ContextMenu.Root is instantiated with\n // <MenuRootContext.Provider value={undefined}>\n if (contextMenuContext && !parentContext) {\n return {\n type: 'context-menu',\n context: contextMenuContext\n };\n }\n return {\n type: undefined\n };\n }, [contextMenuContext, parentContext, menubarContext]);\n return parent;\n}","'use client';\n\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight } from 'lucide-react';\nimport type * as React from 'react';\nimport { Kbd } from '@/components/molecules/data/Kbd';\nimport { cn } from '@/lib/utils';\n\n// ============================================================================\n// Base Primitives\n// ============================================================================\n\nfunction DropdownMenuRoot({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu-root\" {...props} />;\n}\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\nDropdownMenuPortal.displayName = 'DropdownMenu.Portal';\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-2 text-sm [&_svg:not([class*='size-'])]:size-4 group/dd-sub flex cursor-default items-center outline-hidden select-none data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-[color,background-color,transform] duration-150 active:scale-[0.99]\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto rtl:rotate-180 transition-transform duration-150 group-data-open/dd-sub:translate-x-0.5\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: MenuPrimitive.RadioItem.Props) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenuPrimitive.CheckboxItem.Props) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ms-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuShortcut.displayName = 'DropdownMenu.Shortcut';\n\n// ============================================================================\n// Enhanced Components\n// ============================================================================\n\n// Width variant classes for popup\nconst popupWidthClasses = {\n auto: '',\n sm: 'w-48',\n md: 'w-56',\n lg: 'w-64',\n};\n\n/**\n * Enhanced DropdownMenuPopup with HumainOS styling\n */\nexport interface DropdownMenuPopupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Menu content */\n children?: React.ReactNode;\n /** Width of the dropdown menu */\n width?: 'auto' | 'sm' | 'md' | 'lg';\n /** Side offset from the trigger */\n sideOffset?: number;\n /** Side to show the menu on */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the menu */\n align?: 'start' | 'center' | 'end';\n /** Align offset */\n alignOffset?: number;\n}\n\nfunction DropdownMenuPopup({\n align = 'start',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n width = 'auto',\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-popup\"\n className={cn(\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'border border-border bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-sm z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden',\n 'duration-200 motion-reduce:animate-none',\n popupWidthClasses[width],\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nDropdownMenuPopup.displayName = 'DropdownMenu.Popup';\n\nfunction DropdownMenuSubPopup({\n align = 'start',\n alignOffset = -3,\n side = 'right',\n sideOffset = 0,\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <DropdownMenuPopup\n data-slot=\"dropdown-menu-sub-popup\"\n className={cn('min-w-[96px] w-auto', className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n );\n}\nDropdownMenuSubPopup.displayName = 'DropdownMenu.SubPopup';\n\n/**\n * Header section for dropdown menu with avatar and user info\n */\nexport interface DropdownMenuHeaderProps extends React.ComponentProps<'div'> {\n /** Avatar element to display */\n avatar?: React.ReactNode;\n /** Primary text (e.g., user name) */\n title?: string;\n /** Secondary text (e.g., email) */\n subtitle?: string;\n}\n\nfunction DropdownMenuHeader({\n className,\n avatar,\n title,\n subtitle,\n children,\n ...props\n}: DropdownMenuHeaderProps) {\n if (children) {\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n {avatar}\n <div className=\"flex flex-col min-w-0\">\n {title && (\n <span className=\"text-sm font-semibold text-foreground truncate\">\n {title}\n </span>\n )}\n {subtitle && (\n <span className=\"text-sm text-muted-foreground truncate\">\n {subtitle}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n}\nDropdownMenuHeader.displayName = 'DropdownMenu.Header';\n\nexport interface DropdownMenuLabelProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the label is inset */\n inset?: boolean;\n}\n\n/**\n * Enhanced DropdownMenuLabel\n */\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-4 py-2 text-xs font-medium text-secondary-foreground uppercase tracking-wider',\n 'data-[inset]:ps-8',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\n/**\n * Enhanced DropdownMenuItem with icon and shortcut support\n */\nexport interface DropdownMenuItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Item content */\n children?: React.ReactNode;\n /** Icon displayed before the label */\n icon?: React.ReactNode;\n /** Keyboard shortcut displayed on the right */\n shortcut?: string;\n /** Makes the item destructive (red text) */\n destructive?: boolean;\n /** Whether the item is disabled */\n disabled?: boolean;\n /**\n * Render as a different element (Base UI pattern).\n * Use this to render as a custom component like Link or anchor.\n * @example render={<Link to=\"/profile\" />}\n */\n render?: React.ReactElement;\n /** Whether the item is inset */\n inset?: boolean;\n /** Variant for styling */\n variant?: 'default' | 'destructive';\n}\n\nfunction DropdownMenuItem({\n className,\n icon,\n shortcut,\n destructive = false,\n render,\n inset,\n variant = 'default',\n children,\n ...props\n}: DropdownMenuItemProps) {\n const isDestructive = destructive || variant === 'destructive';\n\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={isDestructive ? 'destructive' : variant}\n className={cn(\n 'group/dropdown-menu-item relative flex items-center gap-2 mx-1.5 px-2.5 py-2 rounded-md cursor-pointer outline-none',\n 'text-sm font-semibold text-secondary-foreground',\n 'focus:bg-muted focus:text-secondary-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n 'data-[inset]:ps-8',\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n 'transition-[color,background-color,transform] duration-150 active:scale-[0.99]',\n isDestructive &&\n 'text-destructive focus:text-destructive focus:bg-destructive/10',\n className,\n )}\n render={render}\n {...props}\n >\n {icon && (\n <span\n className={cn(\n 'size-4 shrink-0 transition-colors duration-150',\n isDestructive ? 'text-destructive' : 'text-current',\n )}\n >\n {icon}\n </span>\n )}\n <span className=\"flex-1\">{children}</span>\n {shortcut && (\n <DropdownMenuShortcutBadge className=\"transition-colors duration-150 group-focus/dropdown-menu-item:bg-primary/10 group-focus/dropdown-menu-item:text-primary\">\n {shortcut}\n </DropdownMenuShortcutBadge>\n )}\n </MenuPrimitive.Item>\n );\n}\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\nexport interface DropdownMenuSeparatorProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Enhanced DropdownMenuSeparator\n */\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: DropdownMenuSeparatorProps) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('my-1 h-px bg-surface-2', className)}\n {...props}\n />\n );\n}\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\nexport interface DropdownMenuItemsProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for menu items with proper padding\n */\nfunction DropdownMenuItems({\n className,\n children,\n ...props\n}: DropdownMenuItemsProps) {\n return (\n <div\n data-slot=\"dropdown-menu-items\"\n className={cn('py-1', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\nDropdownMenuItems.displayName = 'DropdownMenu.Items';\n\n/**\n * Styled shortcut badge that matches Figma design (uses Kbd wrapper)\n */\nfunction DropdownMenuShortcutBadge({\n className,\n children,\n ...props\n}: React.ComponentProps<'kbd'>) {\n return (\n <Kbd variant=\"outline\" size=\"xs\" className={className} {...props}>\n {children}\n </Kbd>\n );\n}\nDropdownMenuShortcutBadge.displayName = 'DropdownMenu.ShortcutBadge';\n\n// ============================================================================\n// SimpleDropdownMenu (with trigger prop pattern)\n// ============================================================================\n\nexport interface SimpleDropdownMenuProps {\n /** The element that triggers the dropdown (required) */\n trigger: React.ReactElement;\n /** Dropdown content (typically DropdownMenu.Popup component) */\n children?: React.ReactNode;\n /** Controlled open state. When provided, component is controlled. */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Simplified DropdownMenu component with explicit trigger prop.\n * Prevents nested button hydration errors by using base-ui's render prop.\n *\n * @example\n * <SimpleDropdownMenu trigger={<Button>Menu</Button>}>\n * <DropdownMenu.Popup>\n * <DropdownMenu.Items>\n * <DropdownMenu.Item>Option 1</DropdownMenu.Item>\n * </DropdownMenu.Items>\n * </DropdownMenu.Popup>\n * </SimpleDropdownMenu>\n */\nfunction SimpleDropdownMenu({\n trigger,\n open,\n onOpenChange,\n children,\n}: SimpleDropdownMenuProps) {\n return (\n <DropdownMenuRoot open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger render={trigger} />\n {children}\n </DropdownMenuRoot>\n );\n}\nSimpleDropdownMenu.displayName = 'DropdownMenu.Simple';\n\n// ============================================================================\n// Compound Export (Dot Notation Pattern)\n// ============================================================================\n\nexport const DropdownMenu = Object.assign(DropdownMenuRoot, {\n Root: DropdownMenuRoot,\n Portal: DropdownMenuPortal,\n Trigger: DropdownMenuTrigger,\n Popup: DropdownMenuPopup,\n Group: DropdownMenuGroup,\n Label: DropdownMenuLabel,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n ShortcutBadge: DropdownMenuShortcutBadge,\n Sub: DropdownMenuSub,\n SubTrigger: DropdownMenuSubTrigger,\n SubPopup: DropdownMenuSubPopup,\n Header: DropdownMenuHeader,\n Items: DropdownMenuItems,\n Simple: SimpleDropdownMenu,\n});\n\n// ============================================================================\n// Type Exports\n// ============================================================================\n\nexport type DropdownMenuPopupWrapperProps = DropdownMenuPopupProps;\nexport type DropdownMenuItemWrapperProps = DropdownMenuItemProps;\nexport type DropdownMenuHeaderWrapperProps = DropdownMenuHeaderProps;\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { f as p } from "./_shared.js";
2
2
  import { t as f } from "./dist.js";
3
3
  import * as m from "react";
4
- import { jsx as t, jsxs as h } from "react/jsx-runtime";
5
- var c = f("pointer-events-none inline-flex items-center justify-center select-none font-sans font-medium", {
4
+ import { jsx as a, jsxs as c } from "react/jsx-runtime";
5
+ var h = f("pointer-events-none inline-flex items-center justify-center select-none font-sans font-medium", {
6
6
  variants: {
7
7
  variant: {
8
8
  default: "bg-muted text-muted-foreground border border-border rounded-sm shadow-[var(--shadow-kbd-default)]",
@@ -10,7 +10,7 @@ var c = f("pointer-events-none inline-flex items-center justify-center select-no
10
10
  outline: "bg-transparent border border-border text-muted-foreground rounded-sm shadow-[var(--shadow-kbd-outline)]",
11
11
  solid: "bg-card/60 border border-border text-muted-foreground rounded shadow-[var(--shadow-kbd-default)]",
12
12
  tooltip: "bg-background/20 text-background dark:bg-background/10 rounded-sm",
13
- footer: "bg-background border border-border text-text-quaternary rounded-md shadow-[var(--shadow-kbd-footer)]"
13
+ footer: "bg-background border border-border text-secondary-foreground rounded-md shadow-[var(--shadow-kbd-footer)]"
14
14
  },
15
15
  size: {
16
16
  xs: "h-4 min-w-4 px-0.5 text-[10px]",
@@ -32,22 +32,22 @@ var c = f("pointer-events-none inline-flex items-center justify-center select-no
32
32
  lg: "gap-2"
33
33
  } },
34
34
  defaultVariants: { gap: "sm" }
35
- }), l = m.forwardRef(({ className: r, variant: e, size: n, icon: a, iconAfter: o, children: s, ...i }, d) => /* @__PURE__ */ h("kbd", {
35
+ }), l = m.forwardRef(({ className: r, variant: e, size: n, icon: t, iconAfter: o, children: s, ...i }, d) => /* @__PURE__ */ c("kbd", {
36
36
  ref: d,
37
37
  "data-slot": "kbd",
38
- className: p(c({
38
+ className: p(h({
39
39
  variant: e,
40
40
  size: n
41
41
  }), r),
42
42
  ...i,
43
43
  children: [
44
- a && /* @__PURE__ */ t("span", {
44
+ t && /* @__PURE__ */ a("span", {
45
45
  "aria-hidden": "true",
46
46
  className: "shrink-0 [&_svg:not([class*='size-'])]:size-3",
47
- children: a
47
+ children: t
48
48
  }),
49
49
  s,
50
- o && /* @__PURE__ */ t("span", {
50
+ o && /* @__PURE__ */ a("span", {
51
51
  "aria-hidden": "true",
52
52
  className: "shrink-0 [&_svg:not([class*='size-'])]:size-3",
53
53
  children: o
@@ -55,8 +55,8 @@ var c = f("pointer-events-none inline-flex items-center justify-center select-no
55
55
  ]
56
56
  }));
57
57
  l.displayName = "Kbd";
58
- var b = m.forwardRef(({ className: r, gap: e, ...n }, a) => /* @__PURE__ */ t("span", {
59
- ref: a,
58
+ var b = m.forwardRef(({ className: r, gap: e, ...n }, t) => /* @__PURE__ */ a("span", {
59
+ ref: t,
60
60
  "data-slot": "kbd-group",
61
61
  className: p(x({ gap: e }), r),
62
62
  ...n
@@ -65,25 +65,25 @@ b.displayName = "KbdGroup";
65
65
  function g(r, e) {
66
66
  return `${e}:${typeof r == "string" ? r : "node"}`;
67
67
  }
68
- var v = m.forwardRef(({ keys: r, separator: e, className: n, variant: a, size: o, ...s }, i) => e ? /* @__PURE__ */ t(b, {
68
+ var v = m.forwardRef(({ keys: r, separator: e, className: n, variant: t, size: o, ...s }, i) => e ? /* @__PURE__ */ a(b, {
69
69
  ref: i,
70
70
  gap: "xs",
71
71
  className: n,
72
- children: r.map((d, u) => /* @__PURE__ */ h(m.Fragment, { children: [/* @__PURE__ */ t(l, {
73
- variant: a,
72
+ children: r.map((d, u) => /* @__PURE__ */ c(m.Fragment, { children: [/* @__PURE__ */ a(l, {
73
+ variant: t,
74
74
  size: o,
75
75
  ...s,
76
76
  children: d
77
- }), u < r.length - 1 && /* @__PURE__ */ t("span", {
77
+ }), u < r.length - 1 && /* @__PURE__ */ a("span", {
78
78
  className: "text-muted-foreground text-xs",
79
79
  children: e
80
80
  })] }, g(d, u)))
81
- }) : /* @__PURE__ */ t(b, {
81
+ }) : /* @__PURE__ */ a(b, {
82
82
  ref: i,
83
83
  gap: "xs",
84
84
  className: n,
85
- children: r.map((d, u) => /* @__PURE__ */ t(l, {
86
- variant: a,
85
+ children: r.map((d, u) => /* @__PURE__ */ a(l, {
86
+ variant: t,
87
87
  size: o,
88
88
  ...s,
89
89
  children: d