@bioturing/components 0.39.0 → 0.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/base.d.ts +35 -1
  2. package/dist/base.d.ts.map +1 -1
  3. package/dist/base.js +47 -1
  4. package/dist/base.js.map +1 -1
  5. package/dist/components/base-menu/component.d.ts +1 -1
  6. package/dist/components/base-menu/index.d.ts +1 -1
  7. package/dist/components/base-menu/index.d.ts.map +1 -1
  8. package/dist/components/base-menu/index.js +3 -3
  9. package/dist/components/base-menu/item.d.ts +1 -1
  10. package/dist/components/base-menu/item.d.ts.map +1 -1
  11. package/dist/components/base-menu/item.js +1 -1
  12. package/dist/components/base-menu/item.js.map +1 -1
  13. package/dist/components/button/component.d.ts +1 -1
  14. package/dist/components/button/component.d.ts.map +1 -1
  15. package/dist/components/button/component.js +18 -17
  16. package/dist/components/button/component.js.map +1 -1
  17. package/dist/components/checkbox/component.d.ts.map +1 -1
  18. package/dist/components/choice-list/component.d.ts +8 -4
  19. package/dist/components/choice-list/component.d.ts.map +1 -1
  20. package/dist/components/choice-list/component.js +89 -94
  21. package/dist/components/choice-list/component.js.map +1 -1
  22. package/dist/components/color-select/component.js +6 -6
  23. package/dist/components/combobox/component.js +1 -1
  24. package/dist/components/combobox/component.js.map +1 -1
  25. package/dist/components/command-palette/component.d.ts +6 -0
  26. package/dist/components/command-palette/component.d.ts.map +1 -1
  27. package/dist/components/command-palette/component.js +182 -63
  28. package/dist/components/command-palette/component.js.map +1 -1
  29. package/dist/components/command-palette/index.d.ts +3 -1
  30. package/dist/components/command-palette/index.d.ts.map +1 -1
  31. package/dist/components/command-palette/style.css +1 -1
  32. package/dist/components/drag-drop/draggable.js +1 -1
  33. package/dist/components/drag-drop/draggable.js.map +1 -1
  34. package/dist/components/drag-drop/droppable.js +1 -1
  35. package/dist/components/drag-drop/droppable.js.map +1 -1
  36. package/dist/components/drag-drop/types.d.ts +1 -1
  37. package/dist/components/drag-drop/types.d.ts.map +1 -1
  38. package/dist/components/drag-drop/value.js +13 -13
  39. package/dist/components/dropdown-menu/component.d.ts +5 -3
  40. package/dist/components/dropdown-menu/component.d.ts.map +1 -1
  41. package/dist/components/dropdown-menu/component.js +185 -159
  42. package/dist/components/dropdown-menu/component.js.map +1 -1
  43. package/dist/components/dropdown-menu/divider.js +6 -6
  44. package/dist/components/dropdown-menu/divider.js.map +1 -1
  45. package/dist/components/dropdown-menu/item.d.ts.map +1 -1
  46. package/dist/components/dropdown-menu/item.js +28 -27
  47. package/dist/components/dropdown-menu/item.js.map +1 -1
  48. package/dist/components/dropdown-menu/style.css +1 -1
  49. package/dist/components/dropdown-menu/types.d.ts +2 -2
  50. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  51. package/dist/components/dropdown-menu/useDropdownMenu.d.ts.map +1 -1
  52. package/dist/components/dropdown-menu/useDropdownMenu.js +72 -68
  53. package/dist/components/dropdown-menu/useDropdownMenu.js.map +1 -1
  54. package/dist/components/hooks/antd.d.ts.map +1 -1
  55. package/dist/components/hooks/index.d.ts +1 -0
  56. package/dist/components/hooks/index.d.ts.map +1 -1
  57. package/dist/components/hooks/useBaseUIPlacement.d.ts +64 -0
  58. package/dist/components/hooks/useBaseUIPlacement.d.ts.map +1 -0
  59. package/dist/components/hooks/useBaseUIPlacement.js +61 -0
  60. package/dist/components/hooks/useBaseUIPlacement.js.map +1 -0
  61. package/dist/components/hooks/useControlledState.d.ts +1 -0
  62. package/dist/components/hooks/useControlledState.d.ts.map +1 -1
  63. package/dist/components/hooks/useControlledState.js +16 -16
  64. package/dist/components/hooks/useControlledState.js.map +1 -1
  65. package/dist/components/hooks/useTransitionStatus.js +2 -2
  66. package/dist/components/hooks/useTransitionStatus.js.map +1 -1
  67. package/dist/components/icon-button/style.css +1 -1
  68. package/dist/components/nav/index.d.ts.map +1 -1
  69. package/dist/components/nav/item.d.ts +1 -1
  70. package/dist/components/nav/item.d.ts.map +1 -1
  71. package/dist/components/nav/item.js +1 -1
  72. package/dist/components/nav/item.js.map +1 -1
  73. package/dist/components/popup-panel/component.d.ts +4 -4
  74. package/dist/components/popup-panel/component.d.ts.map +1 -1
  75. package/dist/components/popup-panel/component.js +142 -152
  76. package/dist/components/popup-panel/component.js.map +1 -1
  77. package/dist/components/resizable/component.js +1 -1
  78. package/dist/components/resizable/component.js.map +1 -1
  79. package/dist/components/scroll-area/component.d.ts +1 -1
  80. package/dist/components/scroll-area/component.d.ts.map +1 -1
  81. package/dist/components/scroll-area/component.js +1 -1
  82. package/dist/components/scroll-area/component.js.map +1 -1
  83. package/dist/components/select/component.d.ts.map +1 -1
  84. package/dist/components/select/component.js +153 -138
  85. package/dist/components/select/component.js.map +1 -1
  86. package/dist/components/select/item.js +13 -13
  87. package/dist/components/select-trigger/component.js +19 -19
  88. package/dist/components/splitter/splitter.d.ts.map +1 -1
  89. package/dist/components/splitter/splitter.js +53 -51
  90. package/dist/components/splitter/splitter.js.map +1 -1
  91. package/dist/components/stack/StackChild.js +2 -2
  92. package/dist/components/stack/StackChild.js.map +1 -1
  93. package/dist/components/toast/component.d.ts +1 -1
  94. package/dist/components/toast/component.d.ts.map +1 -1
  95. package/dist/components/toast/component.js +1 -1
  96. package/dist/components/toast/component.js.map +1 -1
  97. package/dist/components/toast/function.d.ts +2 -2
  98. package/dist/components/toast/function.d.ts.map +1 -1
  99. package/dist/components/toast/function.js +1 -1
  100. package/dist/components/toast/function.js.map +1 -1
  101. package/dist/components/transition/component.d.ts +1 -1
  102. package/dist/components/transition/component.d.ts.map +1 -1
  103. package/dist/components/transition/component.js +2 -2
  104. package/dist/components/transition/component.js.map +1 -1
  105. package/dist/components/tree/useTreeCommon.d.ts.map +1 -1
  106. package/dist/components/utils/WithRenderProp.d.ts +1 -1
  107. package/dist/components/utils/WithRenderProp.d.ts.map +1 -1
  108. package/dist/components/utils/WithRenderProp.js +1 -1
  109. package/dist/components/utils/WithRenderProp.js.map +1 -1
  110. package/dist/components/utils/index.d.ts +1 -0
  111. package/dist/components/utils/index.d.ts.map +1 -1
  112. package/dist/components/utils/renderProp.d.ts +24 -0
  113. package/dist/components/utils/renderProp.d.ts.map +1 -0
  114. package/dist/components/utils/renderProp.js +19 -0
  115. package/dist/components/utils/renderProp.js.map +1 -0
  116. package/dist/components/vertical-collapsible-panel/component.js +1 -1
  117. package/dist/components/vertical-collapsible-panel/component.js.map +1 -1
  118. package/dist/index.js +162 -158
  119. package/dist/index.js.map +1 -1
  120. package/dist/metadata.d.ts.map +1 -1
  121. package/dist/metadata.js +14 -14
  122. package/dist/metadata.js.map +1 -1
  123. package/dist/stats.html +1 -1
  124. package/dist/tailwind.css +125 -1
  125. package/package.json +4 -4
  126. package/dist/components/cmdk/command-score.d.ts +0 -2
  127. package/dist/components/cmdk/command-score.d.ts.map +0 -1
  128. package/dist/components/cmdk/command-score.js +0 -48
  129. package/dist/components/cmdk/command-score.js.map +0 -1
  130. package/dist/components/cmdk/index.d.ts +0 -440
  131. package/dist/components/cmdk/index.d.ts.map +0 -1
  132. package/dist/components/cmdk/index.js +0 -595
  133. package/dist/components/cmdk/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/scroll-area/component.tsx"],"sourcesContent":["\"use client\";\nimport { type ReactNode, useEffect, useRef, useState } from \"react\";\nimport { ScrollArea as BaseScrollArea } from \"@base-ui-components/react\";\nimport { clsx, useCls } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface ScrollAreaProps\n extends Omit<BaseScrollArea.Root.Props, \"onScroll\"> {\n children: ReactNode;\n /**\n * Additional class name for the root component\n */\n className?: string;\n /**\n * Custom class names for each part of the scroll area\n */\n classNames?: {\n /**\n * Class name for the viewport element\n */\n viewport?: string;\n /**\n * Class name for the content element\n */\n content?: string;\n /**\n * Class name for the scrollbar element\n */\n scrollbar?: string;\n /**\n * Class name for the thumb element\n */\n thumb?: string;\n };\n /**\n * Custom styles for each part of the scroll area\n */\n styles?: {\n /**\n * Styles for the viewport element\n */\n viewport?: React.CSSProperties;\n /**\n * Styles for the content element\n */\n content?: React.CSSProperties;\n /**\n * Styles for the scrollbar element\n */\n scrollbar?: React.CSSProperties;\n /**\n * Styles for the thumb element\n */\n thumb?: React.CSSProperties;\n };\n /**\n * Orientation of the scrollbar\n * @default \"vertical\"\n */\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n /**\n * Enable fade-out effect at scrollable edges\n * @default false\n */\n fadeEdges?: boolean;\n /**\n * Callback fired when the scroll position changes\n */\n onScroll?: (event: Event) => void;\n}\n\nexport const ScrollArea = ({\n children,\n className,\n classNames = {},\n orientation = \"vertical\",\n fadeEdges = false,\n onScroll,\n styles = {},\n ...rest\n}: ScrollAreaProps) => {\n const cls = useCls();\n const viewportRef = useRef<HTMLDivElement>(null);\n const [scrollState, setScrollState] = useState({\n isAtStart: true,\n isAtEnd: false,\n isScrollable: false,\n });\n\n useEffect(() => {\n if (!viewportRef.current) return;\n\n const viewport = viewportRef.current;\n\n const handleScroll = (event?: Event) => {\n // Call the onScroll callback if provided and event exists\n if (event && onScroll) {\n onScroll(event);\n }\n\n // Handle fade edges state update if enabled\n if (fadeEdges) {\n if (orientation === \"vertical\") {\n const { scrollTop, scrollHeight, clientHeight } = viewport;\n const isScrollable = scrollHeight > clientHeight;\n setScrollState({\n isAtStart: scrollTop <= 1,\n isAtEnd: scrollTop >= scrollHeight - clientHeight - 1,\n isScrollable,\n });\n } else {\n const { scrollLeft, scrollWidth, clientWidth } = viewport;\n // Add a small buffer (2px) to account for rounding errors\n const isScrollable = scrollWidth > clientWidth + 2;\n setScrollState({\n isAtStart: scrollLeft <= 1,\n isAtEnd: scrollLeft >= scrollWidth - clientWidth - 1,\n isScrollable,\n });\n }\n }\n };\n\n // Initial check (without event)\n handleScroll();\n\n // Use a timeout to check again after content might have rendered\n const timeoutId = setTimeout(handleScroll, 0);\n\n viewport.addEventListener(\"scroll\", handleScroll);\n\n // Add resize observer to detect content size changes\n const resizeObserver = new ResizeObserver(() => {\n handleScroll();\n });\n resizeObserver.observe(viewport);\n\n return () => {\n clearTimeout(timeoutId);\n viewport.removeEventListener(\"scroll\", handleScroll);\n resizeObserver.disconnect();\n };\n }, [fadeEdges, orientation, onScroll]);\n return (\n <BaseScrollArea.Root\n className={clsx(cls(\"scroll-area\"), className)}\n {...rest}\n >\n <BaseScrollArea.Viewport\n ref={viewportRef}\n className={clsx(\n cls(\"scroll-area-viewport\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"vertical\" &&\n scrollState.isAtStart &&\n cls(\"scroll-area-fade-bottom-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"vertical\" &&\n scrollState.isAtEnd &&\n cls(\"scroll-area-fade-top-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"vertical\" &&\n !scrollState.isAtStart &&\n !scrollState.isAtEnd &&\n cls(\"scroll-area-fade-both-vertical\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"horizontal\" &&\n scrollState.isAtStart &&\n cls(\"scroll-area-fade-right-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"horizontal\" &&\n scrollState.isAtEnd &&\n cls(\"scroll-area-fade-left-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"horizontal\" &&\n !scrollState.isAtStart &&\n !scrollState.isAtEnd &&\n cls(\"scroll-area-fade-both-horizontal\"),\n classNames?.viewport\n )}\n style={styles?.viewport}\n >\n {orientation == \"horizontal\" ? (\n <BaseScrollArea.Content\n className={clsx(cls(\"scroll-area-content\"), classNames?.content)}\n style={styles?.content}\n >\n {children}\n </BaseScrollArea.Content>\n ) : (\n children\n )}\n </BaseScrollArea.Viewport>\n {(orientation == \"horizontal\" || orientation == \"both\") && (\n <BaseScrollArea.Scrollbar\n className={clsx(cls(\"scroll-area-scrollbar\"), classNames?.scrollbar)}\n orientation={\"horizontal\"}\n data-orientation={\"horizontal\"}\n style={styles?.scrollbar}\n >\n <BaseScrollArea.Thumb\n className={clsx(cls(\"scroll-area-thumb\"), classNames?.thumb)}\n style={styles?.thumb}\n />\n </BaseScrollArea.Scrollbar>\n )}\n {(orientation == \"vertical\" || orientation == \"both\") && (\n <BaseScrollArea.Scrollbar\n className={clsx(cls(\"scroll-area-scrollbar\"), classNames?.scrollbar)}\n orientation={\"vertical\"}\n data-orientation={\"vertical\"}\n style={styles?.scrollbar}\n >\n <BaseScrollArea.Thumb\n className={clsx(cls(\"scroll-area-thumb\"), classNames?.thumb)}\n style={styles?.thumb}\n />\n </BaseScrollArea.Scrollbar>\n )}\n </BaseScrollArea.Root>\n );\n};\n"],"names":["ScrollArea","children","className","classNames","orientation","fadeEdges","onScroll","styles","rest","cls","useCls","viewportRef","useRef","scrollState","setScrollState","useState","useEffect","viewport","handleScroll","event","scrollTop","scrollHeight","clientHeight","isScrollable","scrollLeft","scrollWidth","clientWidth","timeoutId","resizeObserver","jsxs","BaseScrollArea","clsx","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/scroll-area/component.tsx"],"sourcesContent":["\"use client\";\nimport { type ReactNode, useEffect, useRef, useState } from \"react\";\nimport { ScrollArea as BaseScrollArea } from \"@base-ui/react\";\nimport { clsx, useCls } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface ScrollAreaProps\n extends Omit<BaseScrollArea.Root.Props, \"onScroll\"> {\n children: ReactNode;\n /**\n * Additional class name for the root component\n */\n className?: string;\n /**\n * Custom class names for each part of the scroll area\n */\n classNames?: {\n /**\n * Class name for the viewport element\n */\n viewport?: string;\n /**\n * Class name for the content element\n */\n content?: string;\n /**\n * Class name for the scrollbar element\n */\n scrollbar?: string;\n /**\n * Class name for the thumb element\n */\n thumb?: string;\n };\n /**\n * Custom styles for each part of the scroll area\n */\n styles?: {\n /**\n * Styles for the viewport element\n */\n viewport?: React.CSSProperties;\n /**\n * Styles for the content element\n */\n content?: React.CSSProperties;\n /**\n * Styles for the scrollbar element\n */\n scrollbar?: React.CSSProperties;\n /**\n * Styles for the thumb element\n */\n thumb?: React.CSSProperties;\n };\n /**\n * Orientation of the scrollbar\n * @default \"vertical\"\n */\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n /**\n * Enable fade-out effect at scrollable edges\n * @default false\n */\n fadeEdges?: boolean;\n /**\n * Callback fired when the scroll position changes\n */\n onScroll?: (event: Event) => void;\n}\n\nexport const ScrollArea = ({\n children,\n className,\n classNames = {},\n orientation = \"vertical\",\n fadeEdges = false,\n onScroll,\n styles = {},\n ...rest\n}: ScrollAreaProps) => {\n const cls = useCls();\n const viewportRef = useRef<HTMLDivElement>(null);\n const [scrollState, setScrollState] = useState({\n isAtStart: true,\n isAtEnd: false,\n isScrollable: false,\n });\n\n useEffect(() => {\n if (!viewportRef.current) return;\n\n const viewport = viewportRef.current;\n\n const handleScroll = (event?: Event) => {\n // Call the onScroll callback if provided and event exists\n if (event && onScroll) {\n onScroll(event);\n }\n\n // Handle fade edges state update if enabled\n if (fadeEdges) {\n if (orientation === \"vertical\") {\n const { scrollTop, scrollHeight, clientHeight } = viewport;\n const isScrollable = scrollHeight > clientHeight;\n setScrollState({\n isAtStart: scrollTop <= 1,\n isAtEnd: scrollTop >= scrollHeight - clientHeight - 1,\n isScrollable,\n });\n } else {\n const { scrollLeft, scrollWidth, clientWidth } = viewport;\n // Add a small buffer (2px) to account for rounding errors\n const isScrollable = scrollWidth > clientWidth + 2;\n setScrollState({\n isAtStart: scrollLeft <= 1,\n isAtEnd: scrollLeft >= scrollWidth - clientWidth - 1,\n isScrollable,\n });\n }\n }\n };\n\n // Initial check (without event)\n handleScroll();\n\n // Use a timeout to check again after content might have rendered\n const timeoutId = setTimeout(handleScroll, 0);\n\n viewport.addEventListener(\"scroll\", handleScroll);\n\n // Add resize observer to detect content size changes\n const resizeObserver = new ResizeObserver(() => {\n handleScroll();\n });\n resizeObserver.observe(viewport);\n\n return () => {\n clearTimeout(timeoutId);\n viewport.removeEventListener(\"scroll\", handleScroll);\n resizeObserver.disconnect();\n };\n }, [fadeEdges, orientation, onScroll]);\n return (\n <BaseScrollArea.Root\n className={clsx(cls(\"scroll-area\"), className)}\n {...rest}\n >\n <BaseScrollArea.Viewport\n ref={viewportRef}\n className={clsx(\n cls(\"scroll-area-viewport\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"vertical\" &&\n scrollState.isAtStart &&\n cls(\"scroll-area-fade-bottom-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"vertical\" &&\n scrollState.isAtEnd &&\n cls(\"scroll-area-fade-top-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"vertical\" &&\n !scrollState.isAtStart &&\n !scrollState.isAtEnd &&\n cls(\"scroll-area-fade-both-vertical\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"horizontal\" &&\n scrollState.isAtStart &&\n cls(\"scroll-area-fade-right-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"horizontal\" &&\n scrollState.isAtEnd &&\n cls(\"scroll-area-fade-left-only\"),\n fadeEdges &&\n scrollState.isScrollable &&\n orientation === \"horizontal\" &&\n !scrollState.isAtStart &&\n !scrollState.isAtEnd &&\n cls(\"scroll-area-fade-both-horizontal\"),\n classNames?.viewport\n )}\n style={styles?.viewport}\n >\n {orientation == \"horizontal\" ? (\n <BaseScrollArea.Content\n className={clsx(cls(\"scroll-area-content\"), classNames?.content)}\n style={styles?.content}\n >\n {children}\n </BaseScrollArea.Content>\n ) : (\n children\n )}\n </BaseScrollArea.Viewport>\n {(orientation == \"horizontal\" || orientation == \"both\") && (\n <BaseScrollArea.Scrollbar\n className={clsx(cls(\"scroll-area-scrollbar\"), classNames?.scrollbar)}\n orientation={\"horizontal\"}\n data-orientation={\"horizontal\"}\n style={styles?.scrollbar}\n >\n <BaseScrollArea.Thumb\n className={clsx(cls(\"scroll-area-thumb\"), classNames?.thumb)}\n style={styles?.thumb}\n />\n </BaseScrollArea.Scrollbar>\n )}\n {(orientation == \"vertical\" || orientation == \"both\") && (\n <BaseScrollArea.Scrollbar\n className={clsx(cls(\"scroll-area-scrollbar\"), classNames?.scrollbar)}\n orientation={\"vertical\"}\n data-orientation={\"vertical\"}\n style={styles?.scrollbar}\n >\n <BaseScrollArea.Thumb\n className={clsx(cls(\"scroll-area-thumb\"), classNames?.thumb)}\n style={styles?.thumb}\n />\n </BaseScrollArea.Scrollbar>\n )}\n </BaseScrollArea.Root>\n );\n};\n"],"names":["ScrollArea","children","className","classNames","orientation","fadeEdges","onScroll","styles","rest","cls","useCls","viewportRef","useRef","scrollState","setScrollState","useState","useEffect","viewport","handleScroll","event","scrollTop","scrollHeight","clientHeight","isScrollable","scrollLeft","scrollWidth","clientWidth","timeoutId","resizeObserver","jsxs","BaseScrollArea","clsx","jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/select/component.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,WAAW,IAAI,cAAc,EAClC,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,aAAa,CAAC;AAKrB,MAAM,WAAW,WAAW,CAC1B,SAAS,GAAG,OAAO,EACnB,UAAU,SAAS,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CACzE,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC;IAC7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;IAC7C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/D;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KAC/C,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB;AAED,YAAY,EACV,cAAc,IAAI,oBAAoB,EACtC,iBAAiB,IAAI,uBAAuB,GAC7C,CAAC;AAGF,QAAA,MAAM,eAAe,GACnB,SAAS,GAAG,OAAO,EACnB,UAAU,SAAS,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,EAEzE,mWAwBG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,EACrC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,4CAmOrD,CAAC;AAYF,eAAO,MAAM,MAAM,IARjB,SAAS,YACT,UAAU,SAAS,cAAc,GAAG,iBAAiB,6BAE9C,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;CAChE,KACE,UAAU,CAAC,OAAO,eAAe,CAAC;;;CAKrC,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/select/component.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,WAAW,IAAI,cAAc,EAClC,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAA0D,MAAM,OAAO,CAAC;AAG/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,aAAa,CAAC;AAMrB,MAAM,WAAW,WAAW,CAC1B,SAAS,GAAG,OAAO,EACnB,UAAU,SAAS,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CACzE,SAAQ,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC;IAC7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;IAC7C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/D;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KAC/C,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB;AAED,YAAY,EACV,cAAc,IAAI,oBAAoB,EACtC,iBAAiB,IAAI,uBAAuB,GAC7C,CAAC;AAGF,QAAA,MAAM,eAAe,GACnB,SAAS,GAAG,OAAO,EACnB,UAAU,SAAS,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,EAEzE,mWAwBG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,EACrC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,4CA+QrD,CAAC;AAYF,eAAO,MAAM,MAAM,IARjB,SAAS,YACT,UAAU,SAAS,cAAc,GAAG,iBAAiB,6BAE9C,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;CAChE,KACE,UAAU,CAAC,OAAO,eAAe,CAAC;;;CAKrC,CAAC"}
@@ -1,60 +1,62 @@
1
1
  "use client";
2
- import { jsx as r, Fragment as h, jsxs as I } from "react/jsx-runtime";
3
- import { CaretDown as z } from "@bioturing/assets";
4
- import { useFloatingPortalNode as tt, useFloating as et, autoUpdate as ot, offset as rt, autoPlacement as lt, shift as nt, size as st, FloatingOverlay as at } from "@floating-ui/react";
5
- import P from "antd/es/checkbox";
6
- import y from "antd/es/select";
7
- import { toMerged as ct } from "es-toolkit";
8
- import { forwardRef as it, useCallback as S } from "react";
9
- import { PopupPanelSize as j } from "../popup-panel/constants.js";
10
- import { Divider as pt } from "antd";
11
- import { SelectItem as mt } from "./item.js";
2
+ import { jsx as t, Fragment as y, jsxs as E } from "react/jsx-runtime";
3
+ import { CaretDown as pe } from "@bioturing/assets";
4
+ import { useFloatingPortalNode as me, useFloating as ue, autoUpdate as de, offset as fe, autoPlacement as ge, shift as he, size as be, FloatingOverlay as ye } from "@floating-ui/react";
5
+ import G from "antd/es/checkbox";
6
+ import R from "antd/es/select";
7
+ import { toMerged as Ce } from "es-toolkit";
8
+ import { forwardRef as Ae, useCallback as c, useMemo as Re } from "react";
9
+ import { useStableCallback as C } from "@base-ui/utils/useStableCallback";
10
+ import { PopupPanelSize as V } from "../popup-panel/constants.js";
11
+ import { Divider as ke } from "antd";
12
+ import { SelectItem as xe } from "./item.js";
12
13
  import './style.css';/* empty css */
13
- import { useControlledState as D } from "../hooks/useControlledState.js";
14
- import { useCls as ut } from "../utils/antdUtils.js";
15
- import { clsx as E } from "../utils/cn.js";
16
- const ft = ({
14
+ import { useValueAsRef as A } from "@base-ui/utils/useValueAsRef";
15
+ import { useControlledState as T } from "../hooks/useControlledState.js";
16
+ import { useCls as ve } from "../utils/antdUtils.js";
17
+ import { clsx as U } from "../utils/cn.js";
18
+ const Oe = ({
17
19
  mode: f,
18
- className: G,
19
- open: T,
20
- defaultOpen: U,
21
- onOpenChange: V,
22
- popupClassName: W,
23
- onDropdownVisibleChange: $,
24
- enhancePositioner: s,
25
- getPopupContainer: q,
20
+ className: W,
21
+ open: $,
22
+ defaultOpen: q,
23
+ onOpenChange: B,
24
+ popupClassName: H,
25
+ onDropdownVisibleChange: J,
26
+ enhancePositioner: n,
27
+ getPopupContainer: K,
26
28
  popupSize: l,
27
- popupRender: d,
28
- dropdownRender: g,
29
- classNames: b,
30
- styles: C = {},
31
- showSelectionSummary: x,
32
- selectionSummaryRender: v,
33
- value: B,
34
- onChange: H,
35
- defaultValue: J,
36
- showSelectAll: A,
37
- selectAllRender: O,
38
- options: a,
39
- ...K
40
- }, c) => {
41
- const L = tt({}), i = f === "multiple" || f === "tags", [k, M] = D(
42
- T,
43
- V || $,
44
- U
45
- ), p = ut(), [e, m] = D(
46
- B,
47
- H,
48
- J
49
- ), { floatingStyles: Q, refs: N } = et({
29
+ popupRender: L,
30
+ dropdownRender: Q,
31
+ classNames: k,
32
+ styles: x = {},
33
+ showSelectionSummary: v,
34
+ selectionSummaryRender: O,
35
+ value: X,
36
+ onChange: Y,
37
+ defaultValue: Z,
38
+ showSelectAll: w,
39
+ selectAllRender: _,
40
+ options: s,
41
+ ...z
42
+ }, a) => {
43
+ const ee = me({}), p = f === "multiple" || f === "tags", [M, S] = T(
44
+ $,
45
+ B || J,
46
+ q
47
+ ), m = ve(), [r, g] = T(
48
+ X,
49
+ Y,
50
+ Z
51
+ ), h = A(L), b = A(Q), P = A(_), { floatingStyles: te, refs: u } = ue({
50
52
  placement: "bottom-start",
51
53
  transform: !1,
52
- open: s && k,
54
+ open: n && M,
53
55
  middleware: [
54
- rt({
56
+ fe({
55
57
  mainAxis: 4
56
58
  }),
57
- lt({
59
+ ge({
58
60
  allowedPlacements: [
59
61
  "bottom-start",
60
62
  "bottom-end",
@@ -64,141 +66,154 @@ const ft = ({
64
66
  "top"
65
67
  ]
66
68
  }),
67
- nt({
69
+ he({
68
70
  padding: 8
69
71
  }),
70
- st({
72
+ be({
71
73
  padding: 8,
72
- apply({ availableHeight: t, availableWidth: o, elements: n }) {
73
- n.floating.style.setProperty(
74
+ apply({ availableHeight: e, availableWidth: o, elements: i }) {
75
+ i.floating.style.setProperty(
74
76
  "--available-width",
75
77
  o + "px"
76
- ), n.floating.style.setProperty(
78
+ ), i.floating.style.setProperty(
77
79
  "--available-height",
78
- t + "px"
80
+ e + "px"
79
81
  );
80
82
  }
81
83
  })
82
84
  ],
83
- whileElementsMounted: ot
84
- }), R = S(
85
- (t) => {
86
- const o = Array.isArray(t) ? t.length : 1;
87
- return i ? o + ` ${o == 1 ? "item" : "items"} selected` : /* @__PURE__ */ r(h, { children: t });
85
+ whileElementsMounted: de
86
+ }), re = c(
87
+ (e) => {
88
+ const o = Array.isArray(e) ? e.length : 1;
89
+ return p ? o + ` ${o == 1 ? "item" : "items"} selected` : /* @__PURE__ */ t(y, { children: e });
88
90
  },
89
- [i]
90
- ), X = E(
91
- p("select", x && "select-selection-summary"),
92
- G
93
- ), w = E(
94
- p(
91
+ [p]
92
+ ), oe = Re(
93
+ () => Array.isArray(s) ? s.map((e) => e.value) : [],
94
+ [s]
95
+ ), N = C(() => {
96
+ g(oe);
97
+ }), D = C(() => {
98
+ g([]);
99
+ }), F = C(() => {
100
+ S(!1);
101
+ }), I = c(
102
+ (e) => {
103
+ if (!e) return;
104
+ const o = e.closest(".ds-select-dropdown");
105
+ u.setFloating(o);
106
+ },
107
+ [u]
108
+ ), le = U(
109
+ m("select", v && "select-selection-summary"),
110
+ W
111
+ ), ne = U(
112
+ m(
95
113
  "select-popup",
96
- i && "select-multiple",
97
- s && "select-popup-enhanced"
114
+ p && "select-multiple",
115
+ n && "select-popup-enhanced"
98
116
  ),
99
- b?.popup?.root || W
100
- ), Y = l && typeof l == "string" && l in j ? j[l] : typeof l == "number" ? l + "px" : l || "fit-content", F = S(
101
- (t) => {
102
- const o = d ? d(t) : g ? g(t) : t;
103
- if (!A) return o;
104
- const n = Array.isArray(e) && e.length > 0, Z = Array.isArray(a) ? a.map((u) => u.value) : e.map((u) => u.value), _ = Array.isArray(e) && e.length && e.length < a.length;
105
- return /* @__PURE__ */ I(h, { children: [
106
- /* @__PURE__ */ r(
107
- mt,
117
+ k?.popup?.root || H
118
+ ), se = l && typeof l == "string" && l in V ? V[l] : typeof l == "number" ? l + "px" : l || "fit-content", d = c(
119
+ (e) => {
120
+ const o = h.current ? h.current(e) : b.current ? b.current(e) : e;
121
+ if (!w) return o;
122
+ const i = Array.isArray(r) && r.length > 0, ie = Array.isArray(r) && r.length && r.length < s.length;
123
+ return /* @__PURE__ */ E(y, { children: [
124
+ /* @__PURE__ */ t(
125
+ xe,
108
126
  {
109
- className: p(
127
+ className: m(
110
128
  "select-item",
111
129
  "select-item-option",
112
- n && "select-item-option-selected",
130
+ i && "select-item-option-selected",
113
131
  "select-item-option-active"
114
132
  ),
115
- onMouseOver: (u) => {
133
+ onMouseOver: (Me) => {
116
134
  },
117
- selectAllRender: O,
118
- checked: n,
119
- indeterminate: _,
120
- onSelectAll: () => m(Z),
121
- onDeselectAll: () => m([])
135
+ selectAllRender: P.current,
136
+ checked: i,
137
+ indeterminate: ie,
138
+ onSelectAll: N,
139
+ onDeselectAll: D
122
140
  }
123
141
  ),
124
- /* @__PURE__ */ r(pt, {}),
142
+ /* @__PURE__ */ t(ke, {}),
125
143
  o
126
144
  ] });
127
145
  },
128
146
  [
129
- d,
130
- g,
131
- A,
132
- e,
133
- a,
134
- p,
135
- O,
136
- m
147
+ h,
148
+ b,
149
+ w,
150
+ r,
151
+ s,
152
+ m,
153
+ P,
154
+ N,
155
+ D
137
156
  ]
157
+ ), ce = c(
158
+ (e) => {
159
+ a && (typeof a == "function" ? a(e) : a.current = e), e && u.setReference(e?.nativeElement);
160
+ },
161
+ [a, u]
162
+ ), j = c(
163
+ (e) => /* @__PURE__ */ E(y, { children: [
164
+ /* @__PURE__ */ t(ye, { lockScroll: !0, onClick: F }),
165
+ /* @__PURE__ */ t("div", { ref: I, children: d(e) })
166
+ ] }),
167
+ [F, I, d]
168
+ ), ae = c(
169
+ (e) => n ? j(e) : d(e),
170
+ [n, d, j]
138
171
  );
139
- return /* @__PURE__ */ r(
140
- y,
172
+ return /* @__PURE__ */ t(
173
+ R,
141
174
  {
142
- ref: (t) => {
143
- c && (typeof c == "function" ? c(t) : c.current = t), t && N.setReference(t?.nativeElement);
144
- },
145
- suffixIcon: /* @__PURE__ */ r(z, { weight: "bold" }),
146
- open: k,
147
- onOpenChange: M,
148
- value: e,
149
- onChange: m,
150
- popupClassName: w,
175
+ ref: ce,
176
+ suffixIcon: /* @__PURE__ */ t(pe, { weight: "bold" }),
177
+ open: M,
178
+ onOpenChange: S,
179
+ value: r,
180
+ onChange: g,
151
181
  classNames: {
152
182
  popup: {
153
- root: w
183
+ root: ne
154
184
  },
155
- ...b
185
+ ...k
156
186
  },
157
- ...i ? {
158
- menuItemSelectedIcon: ({ isSelected: t }) => /* @__PURE__ */ r("span", { className: "ant-select-checkbox-indicator", children: t ? /* @__PURE__ */ r(P, { checked: !0 }) : /* @__PURE__ */ r(P, { checked: !1 }) })
187
+ ...p ? {
188
+ menuItemSelectedIcon: ({ isSelected: e }) => /* @__PURE__ */ t("span", { className: "ant-select-checkbox-indicator", children: e ? /* @__PURE__ */ t(G, { checked: !0 }) : /* @__PURE__ */ t(G, { checked: !1 }) })
159
189
  } : {},
160
190
  mode: f,
161
- className: X,
162
- styles: s ? ct(C, {
191
+ className: le,
192
+ styles: n ? Ce(x, {
163
193
  popup: {
164
194
  root: {
165
195
  transition: "none",
166
- ...Q,
167
- "--ds-select-popup-width": Y
196
+ ...te,
197
+ "--ds-select-popup-width": se
168
198
  }
169
199
  }
170
- }) : C,
171
- getPopupContainer: q || (s ? () => L || document.body : void 0),
172
- popupRender: (t) => s ? /* @__PURE__ */ I(h, { children: [
173
- /* @__PURE__ */ r(at, { lockScroll: !0, onClick: () => M(!1) }),
174
- /* @__PURE__ */ r(
175
- "div",
176
- {
177
- ref: (o) => {
178
- if (!o) return;
179
- const n = o.closest(
180
- ".ds-select-dropdown"
181
- );
182
- N.setFloating(n);
183
- },
184
- children: F(t)
185
- }
186
- )
187
- ] }) : F(t),
188
- options: a,
189
- ...x ? {
200
+ }) : x,
201
+ getPopupContainer: K || (n ? () => ee || document.body : void 0),
202
+ popupRender: ae,
203
+ options: s,
204
+ ...v ? {
190
205
  maxTagCount: 1,
191
206
  showSearch: !1,
192
- labelRender: () => v ? v(e) : R(e)
207
+ labelRender: () => O ? O(r) : re(r)
193
208
  } : {},
194
- ...K
209
+ ...z
195
210
  }
196
211
  );
197
- }, dt = it(ft), It = Object.assign(dt, {
198
- Option: y.Option,
199
- OptGroup: y.OptGroup
212
+ }, we = Ae(Oe), He = Object.assign(we, {
213
+ Option: R.Option,
214
+ OptGroup: R.OptGroup
200
215
  });
201
216
  export {
202
- It as Select
217
+ He as Select
203
218
  };
204
219
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/select/component.tsx"],"sourcesContent":["\"use client\";\nimport { CaretDown } from \"@bioturing/assets\";\nimport {\n autoPlacement,\n autoUpdate,\n FloatingOverlay,\n offset,\n shift,\n size,\n useFloating,\n useFloatingPortalNode,\n} from \"@floating-ui/react\";\nimport { default as Checkbox } from \"antd/es/checkbox\";\nimport {\n default as AntSelect,\n type SelectProps as AntSelectProps,\n type BaseOptionType,\n type DefaultOptionType,\n} from \"antd/es/select\";\nimport { toMerged } from \"es-toolkit\";\nimport React, { CSSProperties, forwardRef, useCallback } from \"react\";\nimport { useControlledState } from \"../hooks\";\nimport { PopupPanelSize } from \"../popup-panel/constants\";\nimport { clsx, useCls } from \"../utils\";\n\n// Import component-specific styles\nimport { Divider } from \"antd\";\nimport { CheckboxProps } from \"../checkbox\";\nimport { SelectItem } from \"./item\";\nimport \"./style.css\";\n\n// SelectItem component props\n\n// Define props interface extending Ant Design's SelectProps\nexport interface SelectProps<\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n> extends AntSelectProps<ValueType, OptionType> {\n /**\n * Whether to enhance the positioner using floating-ui\n * @default false\n */\n enhancePositioner?: boolean;\n /**\n * Size of the popup panel\n * Will be ignored if enhancePositioner is false\n */\n popupSize?: string | number | PopupPanelSize;\n /**\n * Show selection summary instead of tags in multiple case\n * @default false\n */\n showSelectionSummary?: boolean;\n /**\n * Render function for the selection summary in multiple case\n * @default (value) => `${value.length} items selected`\n */\n selectionSummaryRender?: (value: ValueType) => React.ReactNode;\n /**\n * Show select all option when in multiple mode\n * @default false\n */\n showSelectAll?: boolean;\n /**\n * Render function for the select all option\n */\n selectAllRender?: (props: {\n onClick: () => void;\n checked: CheckboxProps[\"checked\"];\n indeterminate: CheckboxProps[\"indeterminate\"];\n }) => React.ReactNode;\n}\n\nexport type {\n BaseOptionType as SelectBaseOptionType,\n DefaultOptionType as SelectDefaultOptionType,\n};\n\n// Create inner function\nconst MainSelectInner = <\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n>(\n {\n mode,\n className,\n open: openProp,\n defaultOpen,\n onOpenChange,\n popupClassName,\n onDropdownVisibleChange,\n enhancePositioner,\n getPopupContainer,\n popupSize,\n popupRender,\n dropdownRender,\n classNames,\n styles = {},\n showSelectionSummary,\n selectionSummaryRender,\n value: valueProp,\n onChange: onChangeProp,\n defaultValue,\n showSelectAll,\n selectAllRender,\n options,\n ...rest\n }: SelectProps<ValueType, OptionType>,\n ref: React.Ref<React.ComponentRef<typeof AntSelect>>\n) => {\n const portalNode = useFloatingPortalNode({});\n const isMultiple = mode === \"multiple\" || mode === \"tags\";\n const [open, setOpen] = useControlledState(\n openProp,\n onOpenChange || onDropdownVisibleChange,\n defaultOpen\n );\n const cls = useCls();\n const [value, onChange] = useControlledState(\n valueProp,\n onChangeProp,\n defaultValue\n );\n // enhancePositioner\n const { floatingStyles, refs } = useFloating({\n placement: \"bottom-start\",\n transform: false,\n open: enhancePositioner && open,\n middleware: [\n offset({\n mainAxis: 4,\n }),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"bottom\",\n \"top-start\",\n \"top-end\",\n \"top\",\n ],\n }),\n shift({\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ availableHeight, availableWidth, elements }) {\n // 2. Or, use a CSS variable:\n elements.floating.style.setProperty(\n \"--available-width\",\n availableWidth + \"px\"\n );\n elements.floating.style.setProperty(\n \"--available-height\",\n availableHeight + \"px\"\n );\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const defaultSelectionSummaryRender = useCallback(\n (v: ValueType) => {\n const count = Array.isArray(v) ? v.length : 1;\n if (isMultiple) {\n return count + ` ${count == 1 ? \"item\" : \"items\"} selected`;\n }\n return <>{v}</>;\n },\n [isMultiple]\n );\n\n const dsSelectClassname = clsx(\n cls(\"select\", showSelectionSummary && \"select-selection-summary\"),\n className\n );\n\n const dsPopupClassName = clsx(\n cls(\n \"select-popup\",\n isMultiple && \"select-multiple\",\n enhancePositioner && \"select-popup-enhanced\"\n ),\n classNames?.popup?.root || popupClassName\n );\n const popupWidth =\n popupSize && typeof popupSize === \"string\" && popupSize in PopupPanelSize\n ? PopupPanelSize[popupSize as keyof typeof PopupPanelSize]\n : typeof popupSize === \"number\"\n ? popupSize + \"px\"\n : popupSize || \"fit-content\";\n const customRenderMenu = useCallback(\n (menu: React.ReactElement) => {\n const renderedMenu = popupRender\n ? popupRender(menu)\n : dropdownRender\n ? dropdownRender(menu)\n : menu;\n if (!showSelectAll) return renderedMenu;\n const checked = Array.isArray(value) && value.length > 0;\n const allValues = Array.isArray(options)\n ? options.map((option) => option.value)\n : (value as any).map((v: any) => v.value);\n const indeterminate =\n Array.isArray(value) && value.length && value.length < options.length;\n return (\n <>\n <SelectItem\n className={cls(\n \"select-item\",\n \"select-item-option\",\n checked && \"select-item-option-selected\",\n \"select-item-option-active\"\n )}\n onMouseOver={(e) => {}}\n selectAllRender={selectAllRender}\n checked={checked}\n indeterminate={indeterminate}\n onSelectAll={() => onChange(allValues)}\n onDeselectAll={() => onChange([] as ValueType)}\n />\n <Divider />\n {renderedMenu}\n </>\n );\n },\n [\n popupRender,\n dropdownRender,\n showSelectAll,\n value,\n options,\n cls,\n selectAllRender,\n onChange,\n ]\n );\n return (\n <AntSelect\n // ref={ref}\n ref={(node) => {\n if (ref) {\n if (typeof ref == \"function\") {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n if (!node) return;\n refs.setReference(node?.nativeElement as HTMLElement);\n }}\n suffixIcon={<CaretDown weight=\"bold\" />}\n open={open}\n onOpenChange={setOpen}\n value={value}\n onChange={onChange}\n // for old version\n popupClassName={dsPopupClassName}\n classNames={{\n popup: {\n root: dsPopupClassName,\n },\n ...classNames,\n }}\n {...(isMultiple\n ? {\n menuItemSelectedIcon: ({ isSelected }) => (\n <span className=\"ant-select-checkbox-indicator\">\n {isSelected ? (\n <Checkbox checked />\n ) : (\n <Checkbox checked={false} />\n )}\n </span>\n ),\n }\n : {})}\n mode={mode}\n className={dsSelectClassname}\n styles={\n enhancePositioner\n ? toMerged(styles, {\n popup: {\n root: {\n transition: \"none\",\n ...floatingStyles,\n \"--ds-select-popup-width\": popupWidth,\n } as CSSProperties,\n },\n })\n : styles\n }\n getPopupContainer={\n getPopupContainer ||\n (enhancePositioner ? () => portalNode || document.body : undefined)\n }\n popupRender={(menu) => {\n if (!enhancePositioner) {\n return customRenderMenu(menu);\n }\n return (\n <>\n <FloatingOverlay lockScroll onClick={() => setOpen(false)} />\n <div\n ref={(node) => {\n if (!node) return;\n const popupEl = node.closest(\n \".ds-select-dropdown\"\n ) as HTMLDivElement;\n refs.setFloating(popupEl);\n }}\n >\n {customRenderMenu(menu)}\n </div>\n </>\n );\n }}\n options={options}\n {...(showSelectionSummary\n ? {\n maxTagCount: 1,\n showSearch: false,\n labelRender: () => {\n if (selectionSummaryRender) {\n return selectionSummaryRender(value);\n }\n return defaultSelectionSummaryRender(value);\n },\n }\n : {})}\n {...rest}\n />\n );\n};\n\n// Use forwardRef with type assertion\nconst MainSelect = forwardRef(MainSelectInner) as <\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n>(\n props: SelectProps<ValueType, OptionType> & {\n ref?: React.ForwardedRef<React.ComponentRef<typeof AntSelect>>;\n }\n) => ReturnType<typeof MainSelectInner>;\n\nexport const Select = Object.assign(MainSelect, {\n Option: AntSelect.Option,\n OptGroup: AntSelect.OptGroup,\n});\n"],"names":["MainSelectInner","mode","className","openProp","defaultOpen","onOpenChange","popupClassName","onDropdownVisibleChange","enhancePositioner","getPopupContainer","popupSize","popupRender","dropdownRender","classNames","styles","showSelectionSummary","selectionSummaryRender","valueProp","onChangeProp","defaultValue","showSelectAll","selectAllRender","options","rest","ref","portalNode","useFloatingPortalNode","isMultiple","open","setOpen","useControlledState","cls","useCls","value","onChange","floatingStyles","refs","useFloating","offset","autoPlacement","shift","size","availableHeight","availableWidth","elements","autoUpdate","defaultSelectionSummaryRender","useCallback","v","count","dsSelectClassname","clsx","dsPopupClassName","popupWidth","PopupPanelSize","customRenderMenu","menu","renderedMenu","checked","allValues","option","indeterminate","jsxs","Fragment","jsx","SelectItem","e","Divider","AntSelect","node","CaretDown","isSelected","Checkbox","toMerged","FloatingOverlay","popupEl","MainSelect","forwardRef","Select"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/select/component.tsx"],"sourcesContent":["\"use client\";\nimport { CaretDown } from \"@bioturing/assets\";\nimport {\n autoPlacement,\n autoUpdate,\n FloatingOverlay,\n offset,\n shift,\n size,\n useFloating,\n useFloatingPortalNode,\n} from \"@floating-ui/react\";\nimport { default as Checkbox } from \"antd/es/checkbox\";\nimport {\n default as AntSelect,\n type SelectProps as AntSelectProps,\n type BaseOptionType,\n type DefaultOptionType,\n} from \"antd/es/select\";\nimport { toMerged } from \"es-toolkit\";\nimport React, { CSSProperties, forwardRef, useCallback, useMemo } from \"react\";\nimport { useControlledState } from \"../hooks\";\nimport { useStableCallback } from \"@base-ui/utils/useStableCallback\";\nimport { PopupPanelSize } from \"../popup-panel/constants\";\nimport { clsx, useCls } from \"../utils\";\n\n// Import component-specific styles\nimport { Divider } from \"antd\";\nimport { CheckboxProps } from \"../checkbox\";\nimport { SelectItem } from \"./item\";\nimport \"./style.css\";\nimport { BaseSelectRef } from \"rc-select\";\nimport { useValueAsRef } from \"@base-ui/utils/useValueAsRef\";\n// SelectItem component props\n\n// Define props interface extending Ant Design's SelectProps\nexport interface SelectProps<\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n> extends AntSelectProps<ValueType, OptionType> {\n /**\n * Whether to enhance the positioner using floating-ui\n * @default false\n */\n enhancePositioner?: boolean;\n /**\n * Size of the popup panel\n * Will be ignored if enhancePositioner is false\n */\n popupSize?: string | number | PopupPanelSize;\n /**\n * Show selection summary instead of tags in multiple case\n * @default false\n */\n showSelectionSummary?: boolean;\n /**\n * Render function for the selection summary in multiple case\n * @default (value) => `${value.length} items selected`\n */\n selectionSummaryRender?: (value: ValueType) => React.ReactNode;\n /**\n * Show select all option when in multiple mode\n * @default false\n */\n showSelectAll?: boolean;\n /**\n * Render function for the select all option\n */\n selectAllRender?: (props: {\n onClick: () => void;\n checked: CheckboxProps[\"checked\"];\n indeterminate: CheckboxProps[\"indeterminate\"];\n }) => React.ReactNode;\n}\n\nexport type {\n BaseOptionType as SelectBaseOptionType,\n DefaultOptionType as SelectDefaultOptionType,\n};\n\n// Create inner function\nconst MainSelectInner = <\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n>(\n {\n mode,\n className,\n open: openProp,\n defaultOpen,\n onOpenChange,\n popupClassName,\n onDropdownVisibleChange,\n enhancePositioner,\n getPopupContainer,\n popupSize,\n popupRender,\n dropdownRender,\n classNames,\n styles = {},\n showSelectionSummary,\n selectionSummaryRender,\n value: valueProp,\n onChange: onChangeProp,\n defaultValue,\n showSelectAll,\n selectAllRender,\n options,\n ...rest\n }: SelectProps<ValueType, OptionType>,\n ref: React.Ref<React.ComponentRef<typeof AntSelect>>\n) => {\n const portalNode = useFloatingPortalNode({});\n const isMultiple = mode === \"multiple\" || mode === \"tags\";\n const [open, setOpen] = useControlledState(\n openProp,\n onOpenChange || onDropdownVisibleChange,\n defaultOpen\n );\n const cls = useCls();\n const [value, onChange] = useControlledState(\n valueProp,\n onChangeProp,\n defaultValue\n );\n\n // Stabilize render callback props used in useCallback dependencies\n const stablePopupRender = useValueAsRef(popupRender);\n const stableDropdownRender = useValueAsRef(dropdownRender);\n const stableSelectAllRender = useValueAsRef(selectAllRender);\n\n // enhancePositioner\n const { floatingStyles, refs } = useFloating({\n placement: \"bottom-start\",\n transform: false,\n open: enhancePositioner && open,\n middleware: [\n offset({\n mainAxis: 4,\n }),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"bottom\",\n \"top-start\",\n \"top-end\",\n \"top\",\n ],\n }),\n shift({\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ availableHeight, availableWidth, elements }) {\n // 2. Or, use a CSS variable:\n elements.floating.style.setProperty(\n \"--available-width\",\n availableWidth + \"px\"\n );\n elements.floating.style.setProperty(\n \"--available-height\",\n availableHeight + \"px\"\n );\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const defaultSelectionSummaryRender = useCallback(\n (v: ValueType) => {\n const count = Array.isArray(v) ? v.length : 1;\n if (isMultiple) {\n return count + ` ${count == 1 ? \"item\" : \"items\"} selected`;\n }\n return <>{v}</>;\n },\n [isMultiple]\n );\n\n // Memoize allValues calculation\n const allValues = useMemo(\n () => (Array.isArray(options) ? options.map((option) => option.value) : []),\n [options]\n );\n\n // Create stable callbacks for select all/deselect all\n const handleSelectAll = useStableCallback(() => {\n onChange(allValues as ValueType);\n });\n\n const handleDeselectAll = useStableCallback(() => {\n onChange([] as ValueType);\n });\n\n // Create stable callback for overlay click\n const handleOverlayClick = useStableCallback(() => {\n setOpen(false);\n });\n\n // Memoize floating ref callback\n const floatingRefCallback = useCallback(\n (node: HTMLElement | null) => {\n if (!node) return;\n const popupEl = node.closest(\".ds-select-dropdown\") as HTMLDivElement;\n refs.setFloating(popupEl);\n },\n [refs]\n );\n\n const dsSelectClassname = clsx(\n cls(\"select\", showSelectionSummary && \"select-selection-summary\"),\n className\n );\n\n const dsPopupClassName = clsx(\n cls(\n \"select-popup\",\n isMultiple && \"select-multiple\",\n enhancePositioner && \"select-popup-enhanced\"\n ),\n classNames?.popup?.root || popupClassName\n );\n const popupWidth =\n popupSize && typeof popupSize === \"string\" && popupSize in PopupPanelSize\n ? PopupPanelSize[popupSize as keyof typeof PopupPanelSize]\n : typeof popupSize === \"number\"\n ? popupSize + \"px\"\n : popupSize || \"fit-content\";\n const customRenderMenu = useCallback(\n (menu: React.ReactElement) => {\n const renderedMenu = stablePopupRender.current\n ? stablePopupRender.current(menu)\n : stableDropdownRender.current\n ? stableDropdownRender.current(menu)\n : menu;\n if (!showSelectAll) return renderedMenu;\n const checked = Array.isArray(value) && value.length > 0;\n const indeterminate =\n Array.isArray(value) && value.length && value.length < options.length;\n return (\n <>\n <SelectItem\n className={cls(\n \"select-item\",\n \"select-item-option\",\n checked && \"select-item-option-selected\",\n \"select-item-option-active\"\n )}\n onMouseOver={(e) => {}}\n selectAllRender={stableSelectAllRender.current}\n checked={checked}\n indeterminate={indeterminate}\n onSelectAll={handleSelectAll}\n onDeselectAll={handleDeselectAll}\n />\n <Divider />\n {renderedMenu}\n </>\n );\n },\n [\n stablePopupRender,\n stableDropdownRender,\n showSelectAll,\n value,\n options,\n cls,\n stableSelectAllRender,\n handleSelectAll,\n handleDeselectAll,\n ]\n );\n\n const refCallback = useCallback(\n (node: BaseSelectRef) => {\n if (ref) {\n if (typeof ref == \"function\") {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n if (!node) return;\n refs.setReference(node?.nativeElement as HTMLElement);\n },\n [ref, refs]\n );\n\n // Memoize enhanced popup render for enhancePositioner mode\n const enhancedPopupRender = useCallback(\n (menu: React.ReactElement) => {\n return (\n <>\n <FloatingOverlay lockScroll onClick={handleOverlayClick} />\n <div ref={floatingRefCallback}>{customRenderMenu(menu)}</div>\n </>\n );\n },\n [handleOverlayClick, floatingRefCallback, customRenderMenu]\n );\n\n // Memoize final popup render\n const finalPopupRender = useCallback(\n (menu: React.ReactElement) => {\n if (!enhancePositioner) {\n return customRenderMenu(menu);\n }\n return enhancedPopupRender(menu);\n },\n [enhancePositioner, customRenderMenu, enhancedPopupRender]\n );\n\n return (\n <AntSelect\n // ref={ref}\n ref={refCallback}\n suffixIcon={<CaretDown weight=\"bold\" />}\n open={open}\n onOpenChange={setOpen}\n value={value}\n onChange={onChange}\n // for old version\n // popupClassName={dsPopupClassName}\n classNames={{\n popup: {\n root: dsPopupClassName,\n },\n ...classNames,\n }}\n {...(isMultiple\n ? {\n menuItemSelectedIcon: ({ isSelected }) => (\n <span className=\"ant-select-checkbox-indicator\">\n {isSelected ? (\n <Checkbox checked />\n ) : (\n <Checkbox checked={false} />\n )}\n </span>\n ),\n }\n : {})}\n mode={mode}\n className={dsSelectClassname}\n styles={\n enhancePositioner\n ? toMerged(styles, {\n popup: {\n root: {\n transition: \"none\",\n ...floatingStyles,\n \"--ds-select-popup-width\": popupWidth,\n } as CSSProperties,\n },\n })\n : styles\n }\n getPopupContainer={\n getPopupContainer ||\n (enhancePositioner ? () => portalNode || document.body : undefined)\n }\n popupRender={finalPopupRender}\n options={options}\n {...(showSelectionSummary\n ? {\n maxTagCount: 1,\n showSearch: false,\n labelRender: () => {\n if (selectionSummaryRender) {\n return selectionSummaryRender(value);\n }\n return defaultSelectionSummaryRender(value);\n },\n }\n : {})}\n {...rest}\n />\n );\n};\n\n// Use forwardRef with type assertion\nconst MainSelect = forwardRef(MainSelectInner) as <\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n>(\n props: SelectProps<ValueType, OptionType> & {\n ref?: React.ForwardedRef<React.ComponentRef<typeof AntSelect>>;\n }\n) => ReturnType<typeof MainSelectInner>;\n\nexport const Select = Object.assign(MainSelect, {\n Option: AntSelect.Option,\n OptGroup: AntSelect.OptGroup,\n});\n"],"names":["MainSelectInner","mode","className","openProp","defaultOpen","onOpenChange","popupClassName","onDropdownVisibleChange","enhancePositioner","getPopupContainer","popupSize","popupRender","dropdownRender","classNames","styles","showSelectionSummary","selectionSummaryRender","valueProp","onChangeProp","defaultValue","showSelectAll","selectAllRender","options","rest","ref","portalNode","useFloatingPortalNode","isMultiple","open","setOpen","useControlledState","cls","useCls","value","onChange","stablePopupRender","useValueAsRef","stableDropdownRender","stableSelectAllRender","floatingStyles","refs","useFloating","offset","autoPlacement","shift","size","availableHeight","availableWidth","elements","autoUpdate","defaultSelectionSummaryRender","useCallback","v","count","allValues","useMemo","option","handleSelectAll","useStableCallback","handleDeselectAll","handleOverlayClick","floatingRefCallback","node","popupEl","dsSelectClassname","clsx","dsPopupClassName","popupWidth","PopupPanelSize","customRenderMenu","menu","renderedMenu","checked","indeterminate","jsxs","Fragment","jsx","SelectItem","e","Divider","refCallback","enhancedPopupRender","FloatingOverlay","finalPopupRender","AntSelect","CaretDown","isSelected","Checkbox","toMerged","MainSelect","forwardRef","Select"],"mappings":"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"}
@@ -1,26 +1,26 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
2
  import n from "merge-refs";
3
3
  import { forwardRef as v } from "react";
4
- import { useHover as u } from "../hooks/useHover.js";
5
- import { Checkbox as C } from "../checkbox/component.js";
6
- import { useCls as g } from "../utils/antdUtils.js";
4
+ import { useHover as g } from "../hooks/useHover.js";
5
+ import { Checkbox as u } from "../checkbox/component.js";
6
+ import { useCls as C } from "../utils/antdUtils.js";
7
7
  const h = v(
8
8
  ({
9
9
  className: x,
10
10
  onMouseOver: N,
11
- selectAllRender: o,
11
+ selectAllRender: t,
12
12
  checked: e,
13
- indeterminate: t,
13
+ indeterminate: o,
14
14
  onSelectAll: r,
15
15
  onDeselectAll: m,
16
16
  ...i
17
17
  }, c) => {
18
- const [l, f] = u(), p = g();
18
+ const [l, f] = g(), a = C();
19
19
  return /* @__PURE__ */ s(
20
20
  "div",
21
21
  {
22
22
  ref: n(l, c),
23
- className: p(
23
+ className: a(
24
24
  "select-item",
25
25
  "select-item-option",
26
26
  e && "select-item-option-selected",
@@ -28,17 +28,17 @@ const h = v(
28
28
  f && "select-item-option-active"
29
29
  ),
30
30
  ...i,
31
- children: o ? o({
31
+ children: t ? t({
32
32
  onClick: e ? m : r,
33
33
  checked: e,
34
- indeterminate: t
34
+ indeterminate: o
35
35
  }) : /* @__PURE__ */ s(
36
- C,
36
+ u,
37
37
  {
38
38
  checked: e,
39
- indeterminate: t,
40
- onChange: (a) => {
41
- a.target.checked ? r() : m();
39
+ indeterminate: o,
40
+ onChange: (p) => {
41
+ p.target.checked ? r() : m();
42
42
  },
43
43
  children: "Select all"
44
44
  }