@bioturing/components 0.46.3 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/components/base-menu/component.js +19 -21
  2. package/dist/components/base-menu/component.js.map +1 -1
  3. package/dist/components/base-menu/index.js +12 -7
  4. package/dist/components/base-menu/index.js.map +1 -1
  5. package/dist/components/checkbox/component.d.ts +2 -2
  6. package/dist/components/checkbox/component.d.ts.map +1 -1
  7. package/dist/components/checkbox/component.js.map +1 -1
  8. package/dist/components/choice-list/component.js +12 -12
  9. package/dist/components/combobox/component.d.ts.map +1 -1
  10. package/dist/components/combobox/component.js +74 -74
  11. package/dist/components/combobox/component.js.map +1 -1
  12. package/dist/components/data-table/component.d.ts.map +1 -1
  13. package/dist/components/data-table/component.js +73 -64
  14. package/dist/components/data-table/component.js.map +1 -1
  15. package/dist/components/data-table/components/TableBody.d.ts +1 -1
  16. package/dist/components/data-table/components/TableBody.d.ts.map +1 -1
  17. package/dist/components/data-table/components/TableBody.js +62 -53
  18. package/dist/components/data-table/components/TableBody.js.map +1 -1
  19. package/dist/components/data-table/components/TableHeader.d.ts +1 -1
  20. package/dist/components/data-table/components/TableHeader.d.ts.map +1 -1
  21. package/dist/components/data-table/components/TableHeader.js +46 -46
  22. package/dist/components/data-table/components/TableHeader.js.map +1 -1
  23. package/dist/components/data-table/components/TablePagination.d.ts.map +1 -1
  24. package/dist/components/data-table/components/TablePagination.js +22 -28
  25. package/dist/components/data-table/components/TablePagination.js.map +1 -1
  26. package/dist/components/data-table/hooks.d.ts.map +1 -1
  27. package/dist/components/data-table/hooks.js +15 -14
  28. package/dist/components/data-table/hooks.js.map +1 -1
  29. package/dist/components/data-table/style.css +1 -1
  30. package/dist/components/data-table/types.d.ts +1 -1
  31. package/dist/components/data-table/types.d.ts.map +1 -1
  32. package/dist/components/data-table/variant-minimal.css +1 -0
  33. package/dist/components/data-table/variant-zebra.css +1 -0
  34. package/dist/components/dialog/Dialog.js +46 -46
  35. package/dist/components/dialog/Dialog.js.map +1 -1
  36. package/dist/components/dialog/dialog.css +1 -1
  37. package/dist/components/form/FormItem/ItemHolder.d.ts +6 -5
  38. package/dist/components/form/FormItem/ItemHolder.d.ts.map +1 -1
  39. package/dist/components/form/FormItem/ItemHolder.js +32 -29
  40. package/dist/components/form/FormItem/ItemHolder.js.map +1 -1
  41. package/dist/components/form/FormItem/index.d.ts +6 -0
  42. package/dist/components/form/FormItem/index.d.ts.map +1 -1
  43. package/dist/components/form/FormItem/index.js +138 -127
  44. package/dist/components/form/FormItem/index.js.map +1 -1
  45. package/dist/components/form/FormValidationContext.d.ts +5 -0
  46. package/dist/components/form/FormValidationContext.d.ts.map +1 -0
  47. package/dist/components/form/FormValidationContext.js +7 -0
  48. package/dist/components/form/FormValidationContext.js.map +1 -0
  49. package/dist/components/form/component.d.ts +6 -1
  50. package/dist/components/form/component.d.ts.map +1 -1
  51. package/dist/components/form/component.js +30 -20
  52. package/dist/components/form/component.js.map +1 -1
  53. package/dist/components/form/formValidationRule.d.ts +19 -0
  54. package/dist/components/form/formValidationRule.d.ts.map +1 -0
  55. package/dist/components/form/formValidationRule.js +22 -0
  56. package/dist/components/form/formValidationRule.js.map +1 -0
  57. package/dist/components/form/index.d.ts +2 -0
  58. package/dist/components/form/index.d.ts.map +1 -1
  59. package/dist/components/form/useFormValidation.d.ts +3 -0
  60. package/dist/components/form/useFormValidation.d.ts.map +1 -0
  61. package/dist/components/form/useFormValidation.js +18 -0
  62. package/dist/components/form/useFormValidation.js.map +1 -0
  63. package/dist/components/index.d.ts +2 -0
  64. package/dist/components/index.d.ts.map +1 -1
  65. package/dist/components/keyboard-shortcut/component.d.ts +2 -0
  66. package/dist/components/keyboard-shortcut/component.d.ts.map +1 -1
  67. package/dist/components/keyboard-shortcut/component.js +69 -49
  68. package/dist/components/keyboard-shortcut/component.js.map +1 -1
  69. package/dist/components/modal/Modal.d.ts +1 -1
  70. package/dist/components/modal/Modal.js +9 -9
  71. package/dist/components/modal/Modal.js.map +1 -1
  72. package/dist/components/modal/style.css +1 -1
  73. package/dist/components/theme-provider/component.d.ts +3 -1
  74. package/dist/components/theme-provider/component.d.ts.map +1 -1
  75. package/dist/components/theme-provider/component.js +32 -31
  76. package/dist/components/theme-provider/component.js.map +1 -1
  77. package/dist/components/theme-provider/context/index.d.ts +2 -1
  78. package/dist/components/theme-provider/context/index.d.ts.map +1 -1
  79. package/dist/components/theme-provider/context/provider.d.ts +2 -3
  80. package/dist/components/theme-provider/context/provider.d.ts.map +1 -1
  81. package/dist/components/theme-provider/context/provider.js +13 -6
  82. package/dist/components/theme-provider/context/provider.js.map +1 -1
  83. package/dist/components/theme-provider/context/themeStore.d.ts +15 -0
  84. package/dist/components/theme-provider/context/themeStore.d.ts.map +1 -1
  85. package/dist/components/theme-provider/context/themeStore.js +10 -9
  86. package/dist/components/theme-provider/context/themeStore.js.map +1 -1
  87. package/dist/components/theme-provider/style.css +1 -1
  88. package/dist/components/tooltip/component.d.ts.map +1 -1
  89. package/dist/components/tooltip/component.js +23 -12
  90. package/dist/components/tooltip/component.js.map +1 -1
  91. package/dist/index.js +286 -275
  92. package/dist/index.js.map +1 -1
  93. package/dist/metadata.d.ts +9 -0
  94. package/dist/metadata.d.ts.map +1 -1
  95. package/dist/metadata.js +14 -0
  96. package/dist/metadata.js.map +1 -1
  97. package/dist/stats.html +1 -1
  98. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/combobox/component.tsx"],"sourcesContent":["\"use client\";\nimport { Combobox as BaseCombobox } from \"@base-ui/react/combobox\";\nimport DisabledContext from \"antd/es/config-provider/DisabledContext\";\nimport { FormItemInputContext } from \"antd/es/form/context\";\nimport React, {\n ForwardedRef,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { BaseMenuItem } from \"../base-menu\";\nimport { useControlledState } from \"../hooks\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SelectTrigger } from \"../select-trigger\";\nimport { clsx, reactNodeToString, useCls } from \"../utils\";\n\nimport { XIcon } from \"@bioturing/assets\";\nimport { BaseMenu } from \"../base-menu\";\nimport { Empty } from \"../empty\";\nimport type { ComboboxOption, ComboboxProps } from \"./types\";\nimport { splitBySeparators } from \"./utils\";\nimport { useComboboxTokenInput } from \"./use-combobox-token-input\";\nimport \"./style.css\";\n\nexport type { ComboboxOption, ComboboxProps } from \"./types\";\n\n// Module-level static renderers — avoid recreating on every render\nconst positionerRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Root {...props} />;\nconst popupRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Popup {...props} />;\nconst separatorRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Divider {...props} />;\nconst listRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.List {...props} />;\n\nconst ComboboxInner = <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n {\n options = [],\n value: controlledValue,\n defaultValue,\n onChange,\n placeholder = \"Select...\",\n disabled: disabledProp = false,\n status: statusProp,\n allowClear = false,\n multiple = false as M,\n showSearch: _showSearch = true,\n open: controlledOpen,\n onOpenChange,\n className,\n classNames,\n size = \"middle\",\n optionRender,\n onSearch,\n clearIcon,\n suffixIcon,\n placement = \"bottomLeft\",\n // showSelectionSummary: _showSelectionSummary = false,\n // selectionSummaryRender,\n showSelectAll = false,\n optionLabelRender,\n getOptionKeywords: _getOptionKeywords = (option: ComboboxOption<T, O>) => [\n String(option.value),\n reactNodeToString(option.label),\n ],\n popupMatchSelectWidth = true,\n addOnEnter = false,\n tokenSeparators,\n autoHighlight = true,\n filterOption,\n ...rest\n }: ComboboxProps<T, M, O>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) => {\n const [value, setValue] = useControlledState(\n controlledValue,\n onChange,\n defaultValue !== undefined ? defaultValue : multiple ? ([] as T[]) : undefined,\n );\n\n const [open, setOpen] = useControlledState(controlledOpen, onOpenChange, false);\n\n const cls = useCls();\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n // Get form context values\n const { status: contextStatus } = useContext(FormItemInputContext);\n const contextDisabled = useContext(DisabledContext);\n\n // Merge context values with props\n const mergedStatus = statusProp || contextStatus;\n const disabled = disabledProp || contextDisabled;\n\n const handleValueChange = useCallback(\n (newValue: M extends true ? T[] : T) => {\n setValue(newValue);\n onChange?.(newValue);\n },\n [setValue, onChange],\n );\n\n const handleSelectAll = useCallback(() => {\n if (multiple) {\n const allValues = options.map((option) => option.value);\n (handleValueChange as (v: T[]) => void)(allValues);\n }\n }, [multiple, options, handleValueChange]);\n\n const handleDeselectAll = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n }\n }, [multiple, handleValueChange]);\n\n const handleClear = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n } else {\n (handleValueChange as (v: T) => void)(undefined as T);\n }\n }, [multiple, handleValueChange]);\n\n // Prepare selected values\n const selectedValues = useMemo(() => {\n return Array.isArray(value) ? value : value ? [value] : [];\n }, [value]);\n\n // Build a Map for O(1) option lookups.\n // `options.find()` was being called 7+ times per render and inside\n // the hot `filter` path on every keystroke.\n const optionMap = useMemo(() => {\n const map = new Map<T, ComboboxOption<T, O>>();\n for (const opt of options) {\n map.set(opt.value, opt);\n }\n return map;\n }, [options]);\n\n // Select all option logic\n const selectAllOption = useMemo(() => {\n if (!showSelectAll || !multiple || options.length === 0) {\n return null;\n }\n\n const selectedFromFiltered = selectedValues.filter((val) => optionMap.has(val as T));\n const checked = selectedFromFiltered.length === options.length && options.length > 0;\n const indeterminate =\n selectedFromFiltered.length > 0 && selectedFromFiltered.length < options.length;\n\n return {\n checked,\n indeterminate,\n onToggle: () => {\n if (indeterminate || checked) {\n handleDeselectAll();\n } else {\n handleSelectAll();\n }\n },\n };\n }, [showSelectAll, multiple, options, optionMap, selectedValues, handleDeselectAll, handleSelectAll]);\n\n // Convert options to Base UI format\n const baseUIItems = useMemo(() => options.map((opt) => opt.value), [options]);\n\n // Get display value for SelectTrigger\n const displayValue = useMemo(() => {\n if (multiple) {\n return selectedValues.length > 0\n ? `${selectedValues.length} item${selectedValues.length === 1 ? \"\" : \"s\"} selected`\n : null;\n } else {\n const selectedOption = optionMap.get(selectedValues[0] as T);\n return selectedOption?.label || null;\n }\n }, [multiple, selectedValues, optionMap]);\n\n const inputClassName = clsx(\n cls(\"combobox-input\"),\n cls(`combobox-input-${size}`),\n mergedStatus && cls(`combobox-input-${mergedStatus}`),\n classNames?.input,\n );\n\n const itemToStringLabel = useCallback(\n (itemValue: T) => {\n const option = optionMap.get(itemValue);\n return reactNodeToString(option?.label || String(itemValue));\n },\n [optionMap],\n );\n\n const [searchValue, setSearchValue] = useState(\"\");\n\n const { handleAddOnEnter, handleInputValueChange } = useComboboxTokenInput<T, O>({\n addOnEnter,\n multiple,\n tokenSeparators,\n optionMap,\n value: value as T | T[] | undefined,\n handleValueChange: handleValueChange as (nextValue: T | T[]) => void,\n setOpen,\n setSearchValue,\n onSearch,\n });\n\n const hasTokenSeparators = Boolean(tokenSeparators?.length);\n const effectiveAutoHighlight = multiple && hasTokenSeparators ? false : autoHighlight;\n\n const createInputKeyDownHandler = useCallback(\n (currentSearchValue: string) => (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" && addOnEnter && currentSearchValue) {\n // In single-select mode with autoHighlight, let Base UI handle Enter\n // to select the natively highlighted item instead of exact matching.\n if (!multiple && autoHighlight) return;\n\n const matched = handleAddOnEnter(currentSearchValue);\n if (matched) {\n event.preventDefault();\n setSearchValue(\"\");\n onSearch?.(\"\");\n }\n }\n },\n [addOnEnter, autoHighlight, multiple, handleAddOnEnter, onSearch],\n );\n\n const mergedFilter = useMemo(() => {\n if (filterOption === false) {\n return null;\n }\n\n if (typeof filterOption === \"function\") {\n return (itemValue: T, query: string) => {\n const option = optionMap.get(itemValue);\n return filterOption(query, option);\n };\n }\n\n return (itemValue: T, query: string) => {\n if (!query) return true;\n const option = optionMap.get(itemValue);\n if (!option) return false;\n\n const tokens =\n tokenSeparators && tokenSeparators.length > 0\n ? splitBySeparators(query, tokenSeparators)\n : [query];\n\n const keywords = _getOptionKeywords(option).map((k) => k.toLowerCase());\n\n const matchingTokenCount = tokens.filter((token) => {\n const lowerToken = token.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerToken));\n }).length;\n\n if (matchingTokenCount === 0) return false;\n if (tokens.length > 1 && matchingTokenCount > 1) {\n const lowerQuery = query.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerQuery));\n }\n return true;\n };\n }, [filterOption, optionMap, tokenSeparators, _getOptionKeywords]);\n\n return (\n <div ref={ref} className={clsx(cls(\"combobox\"), className)} {...rest}>\n <BaseCombobox.Root<T, M>\n value={\n (multiple ? selectedValues : (selectedValues[0] ?? null)) as M extends true\n ? T[]\n : T | null\n }\n onValueChange={(newValue) => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)(\n Array.isArray(newValue) ? (newValue as T[]) : [],\n );\n } else {\n (handleValueChange as (v: T) => void)(newValue as T);\n }\n }}\n inputValue={searchValue}\n onInputValueChange={handleInputValueChange}\n open={open}\n onOpenChange={setOpen}\n multiple={multiple}\n disabled={disabled}\n autoHighlight={effectiveAutoHighlight}\n items={baseUIItems}\n itemToStringLabel={itemToStringLabel}\n filter={mergedFilter}\n >\n {/* Single Selection Layout using SelectTrigger compound components */}\n {!multiple ? (\n <SelectTrigger.Root\n ref={inputContainerRef}\n as=\"div\"\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-single\"))}\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Input\n placeholder={placeholder}\n className={clsx(className, inputClassName)}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n {...rest}\n />\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n ) : (\n /* Multiple Selection Layout using SelectTrigger compound components */\n <SelectTrigger.Root\n ref={inputContainerRef}\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-multiple\"))}\n as=\"div\"\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Chips className={clsx(cls(\"combobox-chips\"), className)} {...rest}>\n <BaseCombobox.Value>\n {(selectedItems) => (\n <>\n {selectedItems.map((item: T) => {\n const option = optionMap.get(item);\n return (\n <BaseCombobox.Chip key={item} className={clsx(cls(\"combobox-chip\"))}>\n {option?.icon && (\n <span className={clsx(cls(\"combobox-chip-icon\"))}>\n {option.icon}\n </span>\n )}\n <span className={clsx(cls(\"combobox-chip-text\"))}>\n {option\n ? optionLabelRender\n ? optionLabelRender(option)\n : option.label\n : item}\n </span>\n <BaseCombobox.ChipRemove\n className={clsx(cls(\"combobox-chip-remove\"))}\n >\n <XIcon />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n );\n })}\n\n <BaseCombobox.Input\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n className={inputClassName}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n />\n </>\n )}\n </BaseCombobox.Value>\n </BaseCombobox.Chips>\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n )}\n\n <BaseCombobox.Portal>\n <BaseCombobox.Positioner\n anchor={inputContainerRef.current}\n sideOffset={4}\n side={placement.startsWith(\"top\") ? \"top\" : \"bottom\"}\n align={\n placement.endsWith(\"Right\")\n ? \"end\"\n : placement === \"top\" || placement === \"bottom\"\n ? \"center\"\n : \"start\"\n }\n render={positionerRender}\n >\n <BaseCombobox.Popup\n className={clsx(\n cls(\"combobox-popup\"),\n !popupMatchSelectWidth && cls(\"combobox-popup--auto-width\"),\n classNames?.portal,\n )}\n render={popupRender}\n >\n <div className={clsx(cls(\"combobox-container\"))}>\n {/* Select All Option */}\n {selectAllOption && (\n <>\n <BaseMenuItem\n as=\"button\"\n type=\"button\"\n className={clsx(cls(\"combobox-select-all\"))}\n selected={selectAllOption.checked}\n onClick={selectAllOption.onToggle}\n indeterminate={selectAllOption.indeterminate}\n showCheckbox\n >\n Select All\n </BaseMenuItem>\n <BaseCombobox.Separator render={separatorRender} />\n </>\n )}\n <ScrollArea fadeEdges>\n <BaseCombobox.List\n className={clsx(cls(\"combobox-list\"), classNames?.list)}\n render={listRender}\n >\n {(item: T) => {\n const option = optionMap.get(item);\n if (!option) return null;\n const isSelected = (selectedValues as T[]).includes(item);\n return optionRender ? (\n optionRender(option, {})\n ) : (\n <BaseMenuItem\n key={option.value}\n disabled={option.disabled}\n selected={isSelected}\n showCheckbox={multiple}\n icon={option.icon}\n classNames={{\n root: clsx(classNames?.option),\n icon: classNames?.optionIcon,\n text: classNames?.optionText,\n }}\n labelRender={\n optionLabelRender\n ? (props: React.HTMLAttributes<HTMLElement>) =>\n optionLabelRender(option, props)\n : undefined\n }\n render={(props: React.HTMLAttributes<HTMLElement>) => (\n <BaseCombobox.Item\n value={item as T}\n disabled={option.disabled}\n {...props}\n data-disabled={option.disabled}\n data-selected={isSelected}\n />\n )}\n >\n {option.label}\n </BaseMenuItem>\n );\n }}\n </BaseCombobox.List>\n\n <BaseCombobox.Empty className={clsx(cls(\"combobox-empty\"))}>\n <Empty description=\"No options found\" />\n </BaseCombobox.Empty>\n </ScrollArea>\n </div>\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n </div>\n );\n};\n\nconst MainCombobox = forwardRef(ComboboxInner) as <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n props: ComboboxProps<T, M, O> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReturnType<typeof ComboboxInner>;\n\nexport const Combobox = Object.assign(MainCombobox, {\n // Add any sub components here if needed\n});\n\nexport default Combobox;\n"],"names":["positionerRender","props","jsx","BaseMenu","popupRender","separatorRender","listRender","ComboboxInner","options","controlledValue","defaultValue","onChange","placeholder","disabledProp","statusProp","allowClear","multiple","_showSearch","controlledOpen","onOpenChange","className","classNames","size","optionRender","onSearch","clearIcon","suffixIcon","placement","showSelectAll","optionLabelRender","_getOptionKeywords","option","reactNodeToString","popupMatchSelectWidth","addOnEnter","tokenSeparators","autoHighlight","filterOption","rest","ref","value","setValue","useControlledState","open","setOpen","cls","useCls","inputContainerRef","useRef","contextStatus","useContext","FormItemInputContext","contextDisabled","DisabledContext","mergedStatus","disabled","handleValueChange","useCallback","newValue","handleSelectAll","allValues","handleDeselectAll","handleClear","selectedValues","useMemo","optionMap","map","opt","selectAllOption","selectedFromFiltered","val","checked","indeterminate","baseUIItems","displayValue","inputClassName","clsx","itemToStringLabel","itemValue","searchValue","setSearchValue","useState","handleAddOnEnter","handleInputValueChange","useComboboxTokenInput","hasTokenSeparators","effectiveAutoHighlight","createInputKeyDownHandler","currentSearchValue","event","mergedFilter","query","tokens","splitBySeparators","keywords","k","matchingTokenCount","token","lowerToken","keyword","lowerQuery","jsxs","BaseCombobox","SelectTrigger","children","selectedItems","Fragment","item","XIcon","icon","BaseMenuItem","ScrollArea","isSelected","Empty","MainCombobox","forwardRef","Combobox"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/combobox/component.tsx"],"sourcesContent":["\"use client\";\nimport { Combobox as BaseCombobox } from \"@base-ui/react/combobox\";\nimport DisabledContext from \"antd/es/config-provider/DisabledContext\";\nimport { FormItemInputContext } from \"antd/es/form/context\";\nimport React, {\n ForwardedRef,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { BaseMenuItem } from \"../base-menu\";\nimport { useControlledState } from \"../hooks\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SelectTrigger } from \"../select-trigger\";\nimport { clsx, reactNodeToString, useCls } from \"../utils\";\n\nimport { XIcon } from \"@bioturing/assets\";\nimport { BaseMenu } from \"../base-menu\";\nimport { Empty } from \"../empty\";\nimport type { ComboboxOption, ComboboxProps } from \"./types\";\nimport { hasTokenSeparator, splitBySeparators } from \"./utils\";\nimport { useComboboxTokenInput } from \"./use-combobox-token-input\";\nimport \"./style.css\";\n\nexport type { ComboboxOption, ComboboxProps } from \"./types\";\n\n// Module-level static renderers — avoid recreating on every render\nconst positionerRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Root {...props} />;\nconst popupRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Popup {...props} />;\nconst separatorRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Divider {...props} />;\nconst listRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.List {...props} />;\n\nconst ComboboxInner = <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n {\n options = [],\n value: controlledValue,\n defaultValue,\n onChange,\n placeholder = \"Select...\",\n disabled: disabledProp = false,\n status: statusProp,\n allowClear = false,\n multiple = false as M,\n showSearch: _showSearch = true,\n open: controlledOpen,\n onOpenChange,\n className,\n classNames,\n size = \"middle\",\n optionRender,\n onSearch,\n clearIcon,\n suffixIcon,\n placement = \"bottomLeft\",\n // showSelectionSummary: _showSelectionSummary = false,\n // selectionSummaryRender,\n showSelectAll = false,\n optionLabelRender,\n getOptionKeywords: _getOptionKeywords = (option: ComboboxOption<T, O>) => [\n String(option.value),\n reactNodeToString(option.label),\n ],\n popupMatchSelectWidth = true,\n addOnEnter = false,\n tokenSeparators,\n autoHighlight = true,\n filterOption,\n ...rest\n }: ComboboxProps<T, M, O>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) => {\n const [value, setValue] = useControlledState(\n controlledValue,\n onChange,\n defaultValue !== undefined ? defaultValue : multiple ? ([] as T[]) : undefined,\n );\n\n const [open, setOpen] = useControlledState(controlledOpen, onOpenChange, false);\n\n const cls = useCls();\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n // Get form context values\n const { status: contextStatus } = useContext(FormItemInputContext);\n const contextDisabled = useContext(DisabledContext);\n\n // Merge context values with props\n const mergedStatus = statusProp || contextStatus;\n const disabled = disabledProp || contextDisabled;\n\n const handleValueChange = useCallback(\n (newValue: M extends true ? T[] : T) => {\n setValue(newValue);\n onChange?.(newValue);\n },\n [setValue, onChange],\n );\n\n const handleSelectAll = useCallback(() => {\n if (multiple) {\n const allValues = options.map((option) => option.value);\n (handleValueChange as (v: T[]) => void)(allValues);\n }\n }, [multiple, options, handleValueChange]);\n\n const handleDeselectAll = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n }\n }, [multiple, handleValueChange]);\n\n const handleClear = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n } else {\n (handleValueChange as (v: T) => void)(undefined as T);\n }\n }, [multiple, handleValueChange]);\n\n // Prepare selected values\n const selectedValues = useMemo(() => {\n return Array.isArray(value) ? value : value ? [value] : [];\n }, [value]);\n\n // Build a Map for O(1) option lookups.\n // `options.find()` was being called 7+ times per render and inside\n // the hot `filter` path on every keystroke.\n const optionMap = useMemo(() => {\n const map = new Map<T, ComboboxOption<T, O>>();\n for (const opt of options) {\n map.set(opt.value, opt);\n }\n return map;\n }, [options]);\n\n // Select all option logic\n const selectAllOption = useMemo(() => {\n if (!showSelectAll || !multiple || options.length === 0) {\n return null;\n }\n\n const selectedFromFiltered = selectedValues.filter((val) => optionMap.has(val as T));\n const checked = selectedFromFiltered.length === options.length && options.length > 0;\n const indeterminate =\n selectedFromFiltered.length > 0 && selectedFromFiltered.length < options.length;\n\n return {\n checked,\n indeterminate,\n onToggle: () => {\n if (indeterminate || checked) {\n handleDeselectAll();\n } else {\n handleSelectAll();\n }\n },\n };\n }, [showSelectAll, multiple, options, optionMap, selectedValues, handleDeselectAll, handleSelectAll]);\n\n // Convert options to Base UI format\n const baseUIItems = useMemo(() => options.map((opt) => opt.value), [options]);\n\n // Get display value for SelectTrigger\n const displayValue = useMemo(() => {\n if (multiple) {\n return selectedValues.length > 0\n ? `${selectedValues.length} item${selectedValues.length === 1 ? \"\" : \"s\"} selected`\n : null;\n } else {\n const selectedOption = optionMap.get(selectedValues[0] as T);\n return selectedOption?.label || null;\n }\n }, [multiple, selectedValues, optionMap]);\n\n const inputClassName = clsx(\n cls(\"combobox-input\"),\n cls(`combobox-input-${size}`),\n mergedStatus && cls(`combobox-input-${mergedStatus}`),\n classNames?.input,\n );\n\n const itemToStringLabel = useCallback(\n (itemValue: T) => {\n const option = optionMap.get(itemValue);\n return reactNodeToString(option?.label || String(itemValue));\n },\n [optionMap],\n );\n\n const [searchValue, setSearchValue] = useState(\"\");\n\n const { handleAddOnEnter, handleInputValueChange } = useComboboxTokenInput<T, O>({\n addOnEnter,\n multiple,\n tokenSeparators,\n optionMap,\n value: value as T | T[] | undefined,\n handleValueChange: handleValueChange as (nextValue: T | T[]) => void,\n setOpen,\n setSearchValue,\n onSearch,\n });\n\n const hasTokenSeparators = Boolean(tokenSeparators?.length);\n const effectiveAutoHighlight =\n multiple && hasTokenSeparators && hasTokenSeparator(searchValue, tokenSeparators)\n ? false\n : autoHighlight;\n\n const createInputKeyDownHandler = useCallback(\n (currentSearchValue: string) => (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" && addOnEnter && currentSearchValue) {\n // In single-select mode with autoHighlight, let Base UI handle Enter\n // to select the natively highlighted item instead of exact matching.\n if (!multiple && autoHighlight) return;\n\n const matched = handleAddOnEnter(currentSearchValue);\n if (matched) {\n event.preventDefault();\n setSearchValue(\"\");\n onSearch?.(\"\");\n }\n }\n },\n [addOnEnter, autoHighlight, multiple, handleAddOnEnter, onSearch],\n );\n\n const mergedFilter = useMemo(() => {\n if (filterOption === false) {\n return null;\n }\n\n if (typeof filterOption === \"function\") {\n return (itemValue: T, query: string) => {\n const option = optionMap.get(itemValue);\n return filterOption(query, option);\n };\n }\n\n return (itemValue: T, query: string) => {\n if (!query) return true;\n const option = optionMap.get(itemValue);\n if (!option) return false;\n\n const tokens =\n tokenSeparators && tokenSeparators.length > 0\n ? splitBySeparators(query, tokenSeparators)\n : [query];\n\n const keywords = _getOptionKeywords(option).map((k) => k.toLowerCase());\n\n const matchingTokenCount = tokens.filter((token) => {\n const lowerToken = token.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerToken));\n }).length;\n\n if (matchingTokenCount === 0) return false;\n if (tokens.length > 1 && matchingTokenCount > 1) {\n const lowerQuery = query.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerQuery));\n }\n return true;\n };\n }, [filterOption, optionMap, tokenSeparators, _getOptionKeywords]);\n\n return (\n <div ref={ref} className={clsx(cls(\"combobox\"), className)} {...rest}>\n <BaseCombobox.Root<T, M>\n value={\n (multiple ? selectedValues : (selectedValues[0] ?? null)) as M extends true\n ? T[]\n : T | null\n }\n onValueChange={(newValue) => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)(\n Array.isArray(newValue) ? (newValue as T[]) : [],\n );\n } else {\n (handleValueChange as (v: T) => void)(newValue as T);\n }\n }}\n inputValue={searchValue}\n onInputValueChange={handleInputValueChange}\n open={open}\n onOpenChange={setOpen}\n multiple={multiple}\n disabled={disabled}\n autoHighlight={effectiveAutoHighlight}\n items={baseUIItems}\n itemToStringLabel={itemToStringLabel}\n filter={mergedFilter}\n >\n {/* Single Selection Layout using SelectTrigger compound components */}\n {!multiple ? (\n <SelectTrigger.Root\n ref={inputContainerRef}\n as=\"div\"\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-single\"))}\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Input\n placeholder={placeholder}\n className={clsx(className, inputClassName)}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n {...rest}\n />\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n ) : (\n /* Multiple Selection Layout using SelectTrigger compound components */\n <SelectTrigger.Root\n ref={inputContainerRef}\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-multiple\"))}\n as=\"div\"\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Chips className={clsx(cls(\"combobox-chips\"), className)} {...rest}>\n <BaseCombobox.Value>\n {(selectedItems) => (\n <>\n {selectedItems.map((item: T) => {\n const option = optionMap.get(item);\n return (\n <BaseCombobox.Chip key={item} className={clsx(cls(\"combobox-chip\"))}>\n {option?.icon && (\n <span className={clsx(cls(\"combobox-chip-icon\"))}>\n {option.icon}\n </span>\n )}\n <span className={clsx(cls(\"combobox-chip-text\"))}>\n {option\n ? optionLabelRender\n ? optionLabelRender(option)\n : option.label\n : item}\n </span>\n <BaseCombobox.ChipRemove\n className={clsx(cls(\"combobox-chip-remove\"))}\n >\n <XIcon />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n );\n })}\n\n <BaseCombobox.Input\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n className={inputClassName}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n />\n </>\n )}\n </BaseCombobox.Value>\n </BaseCombobox.Chips>\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n )}\n\n <BaseCombobox.Portal>\n <BaseCombobox.Positioner\n anchor={inputContainerRef.current}\n sideOffset={4}\n side={placement.startsWith(\"top\") ? \"top\" : \"bottom\"}\n align={\n placement.endsWith(\"Right\")\n ? \"end\"\n : placement === \"top\" || placement === \"bottom\"\n ? \"center\"\n : \"start\"\n }\n render={positionerRender}\n >\n <BaseCombobox.Popup\n className={clsx(\n cls(\"combobox-popup\"),\n !popupMatchSelectWidth && cls(\"combobox-popup--auto-width\"),\n classNames?.portal,\n )}\n render={popupRender}\n >\n <div className={clsx(cls(\"combobox-container\"))}>\n {/* Select All Option */}\n {selectAllOption && (\n <>\n <BaseMenuItem\n as=\"button\"\n type=\"button\"\n className={clsx(cls(\"combobox-select-all\"))}\n selected={selectAllOption.checked}\n onClick={selectAllOption.onToggle}\n indeterminate={selectAllOption.indeterminate}\n showCheckbox\n >\n Select All\n </BaseMenuItem>\n <BaseCombobox.Separator render={separatorRender} />\n </>\n )}\n <ScrollArea fadeEdges>\n <BaseCombobox.List\n className={clsx(cls(\"combobox-list\"), classNames?.list)}\n render={listRender}\n >\n {(item: T) => {\n const option = optionMap.get(item);\n if (!option) return null;\n const isSelected = (selectedValues as T[]).includes(item);\n return optionRender ? (\n optionRender(option, {})\n ) : (\n <BaseMenuItem\n key={option.value}\n disabled={option.disabled}\n selected={isSelected}\n showCheckbox={multiple}\n icon={option.icon}\n classNames={{\n root: clsx(classNames?.option),\n icon: classNames?.optionIcon,\n text: classNames?.optionText,\n }}\n labelRender={\n optionLabelRender\n ? (props: React.HTMLAttributes<HTMLElement>) =>\n optionLabelRender(option, props)\n : undefined\n }\n render={(props: React.HTMLAttributes<HTMLElement>) => (\n <BaseCombobox.Item\n value={item as T}\n disabled={option.disabled}\n {...props}\n data-disabled={option.disabled}\n data-selected={isSelected}\n />\n )}\n >\n {option.label}\n </BaseMenuItem>\n );\n }}\n </BaseCombobox.List>\n\n <BaseCombobox.Empty className={clsx(cls(\"combobox-empty\"))}>\n <Empty description=\"No options found\" />\n </BaseCombobox.Empty>\n </ScrollArea>\n </div>\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n </div>\n );\n};\n\nconst MainCombobox = forwardRef(ComboboxInner) as <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n props: ComboboxProps<T, M, O> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReturnType<typeof ComboboxInner>;\n\nexport const Combobox = Object.assign(MainCombobox, {\n // Add any sub components here if needed\n});\n\nexport default Combobox;\n"],"names":["positionerRender","props","jsx","BaseMenu","popupRender","separatorRender","listRender","ComboboxInner","options","controlledValue","defaultValue","onChange","placeholder","disabledProp","statusProp","allowClear","multiple","_showSearch","controlledOpen","onOpenChange","className","classNames","size","optionRender","onSearch","clearIcon","suffixIcon","placement","showSelectAll","optionLabelRender","_getOptionKeywords","option","reactNodeToString","popupMatchSelectWidth","addOnEnter","tokenSeparators","autoHighlight","filterOption","rest","ref","value","setValue","useControlledState","open","setOpen","cls","useCls","inputContainerRef","useRef","contextStatus","useContext","FormItemInputContext","contextDisabled","DisabledContext","mergedStatus","disabled","handleValueChange","useCallback","newValue","handleSelectAll","allValues","handleDeselectAll","handleClear","selectedValues","useMemo","optionMap","map","opt","selectAllOption","selectedFromFiltered","val","checked","indeterminate","baseUIItems","displayValue","inputClassName","clsx","itemToStringLabel","itemValue","searchValue","setSearchValue","useState","handleAddOnEnter","handleInputValueChange","useComboboxTokenInput","hasTokenSeparators","effectiveAutoHighlight","hasTokenSeparator","createInputKeyDownHandler","currentSearchValue","event","mergedFilter","query","tokens","splitBySeparators","keywords","k","matchingTokenCount","token","lowerToken","keyword","lowerQuery","jsxs","BaseCombobox","SelectTrigger","children","selectedItems","Fragment","item","XIcon","icon","BaseMenuItem","ScrollArea","isSelected","Empty","MainCombobox","forwardRef","Combobox"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAKZ,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AAWrB,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CA+IvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAKZ,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AACrB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAU/B,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CAiKvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}
@@ -1,84 +1,93 @@
1
1
  "use client";
2
- import { jsx as t, jsxs as p } from "react/jsx-runtime";
3
- import { forwardRef as y, useRef as u, useState as H, useEffect as N } from "react";
4
- import { Spin as W } from "../spin/component.js";
5
- import { useDataTable as P } from "./hooks.js";
6
- import { convertSelectionToAntFormat as k } from "./utils.js";
7
- import './style.css';/* empty css */
8
- import { TableHeader as I } from "./components/TableHeader.js";
9
- import { TableBody as j } from "./components/TableBody.js";
10
- import { TablePagination as A } from "./components/TablePagination.js";
11
- import { useCls as E, useAntdCssVarClassname as F } from "../utils/antdUtils.js";
12
- import { clsx as h } from "../utils/cn.js";
13
- const $ = (s, G) => {
2
+ import { jsx as o, jsxs as p } from "react/jsx-runtime";
3
+ import { forwardRef as x, useRef as g, useState as H, useEffect as h } from "react";
4
+ import { Spin as N } from "../spin/component.js";
5
+ import { useDataTable as W } from "./hooks.js";
6
+ import { convertSelectionToAntFormat as I } from "./utils.js";
7
+ import './variant-minimal.css';import './variant-zebra.css';import './style.css';/* empty css */
8
+ /* empty css */
9
+ /* empty css */
10
+ import { TableHeader as P } from "./components/TableHeader.js";
11
+ import { TableBody as k } from "./components/TableBody.js";
12
+ import { TablePagination as j } from "./components/TablePagination.js";
13
+ import { useCls as B } from "../utils/antdUtils.js";
14
+ import { clsx as E } from "../utils/cn.js";
15
+ const F = (d, A) => {
14
16
  const {
15
17
  dataSource: i = [],
16
- className: b,
17
- size: g = "large",
18
- variant: S = "default",
19
- emptyDescription: w,
18
+ className: S,
19
+ size: y = "large",
20
+ variant: m = "default",
21
+ emptyDescription: z,
20
22
  rowKey: c
21
- } = s, e = E(), v = u(null), {
23
+ } = d, e = B(), w = g(null), {
22
24
  table: a,
23
- isLoading: C,
25
+ isLoading: v,
24
26
  spinProps: R,
25
- hasRowSelection: m,
26
- hasPagination: d,
27
- paginationConfig: z,
27
+ hasRowSelection: u,
28
+ hasPagination: f,
29
+ paginationConfig: C,
28
30
  rowSelectionConfig: n
29
- } = P(s), T = (l) => {
30
- if (m && (l.toggleSelected(), n?.onSelect)) {
31
- const { selectedRows: r } = k(
31
+ } = W(d), T = (t) => {
32
+ if (u && (t.toggleSelected(), n?.onSelect)) {
33
+ const { selectedRows: l } = I(
32
34
  a.getState().rowSelection,
33
35
  i,
34
36
  c
35
37
  );
36
38
  n.onSelect(
37
- l.original,
38
- !l.getIsSelected(),
39
- r,
39
+ t.original,
40
+ !t.getIsSelected(),
41
+ l,
40
42
  new Event("click")
41
43
  );
42
44
  }
43
- }, D = F(), o = u(null), [f, x] = H({
45
+ }, r = g(null), [b, D] = H({
44
46
  vertical: !1,
45
47
  horizontal: !1
46
- });
47
- return N(() => {
48
- o.current && x({
49
- vertical: o.current.scrollHeight > o.current.clientHeight,
50
- horizontal: o.current.scrollWidth > o.current.clientWidth
48
+ }), s = !!a.getState().columnSizingInfo?.isResizingColumn;
49
+ return h(() => {
50
+ r.current && D({
51
+ vertical: r.current.scrollHeight > r.current.clientHeight,
52
+ horizontal: r.current.scrollWidth > r.current.clientWidth
51
53
  });
52
- }, [i]), /* @__PURE__ */ t(
54
+ }, [i]), h(() => {
55
+ if (!s || typeof document > "u") return;
56
+ const t = document.body.style.cursor, l = document.body.style.userSelect;
57
+ return document.body.style.cursor = "col-resize", document.body.style.userSelect = "none", () => {
58
+ document.body.style.cursor = t, document.body.style.userSelect = l;
59
+ };
60
+ }, [s]), /* @__PURE__ */ o(
53
61
  "div",
54
62
  {
55
- ref: v,
56
- className: h(
57
- e("table-wrapper", "data-table"),
58
- e(`table-${g}`),
59
- S === "zebra" ? e("table-zebra") : "",
60
- d ? e("table-has-pagination") : "",
61
- f.vertical ? e("table-scroll-vertical") : "",
62
- f.horizontal ? e("table-scroll-horizontal") : "",
63
- D,
64
- b
63
+ ref: w,
64
+ className: E(
65
+ e("data-table-wrapper"),
66
+ e(`data-table-${y}`),
67
+ m === "zebra" ? e("data-table-zebra") : "",
68
+ m === "minimal" ? e("data-table-minimal") : "",
69
+ f ? e("data-table-has-pagination") : "",
70
+ b.vertical ? e("data-table-scroll-vertical") : "",
71
+ b.horizontal ? e("data-table-scroll-horizontal") : "",
72
+ s ? e("data-table-resizing") : "",
73
+ S
65
74
  ),
66
- children: /* @__PURE__ */ p(W, { spinning: C, ...R, children: [
67
- /* @__PURE__ */ t("div", { className: h(e("table")), children: /* @__PURE__ */ t("div", { className: e("table-container"), ref: o, children: /* @__PURE__ */ t("div", { className: e("table-content"), children: /* @__PURE__ */ p("table", { children: [
68
- /* @__PURE__ */ t("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((l) => {
69
- let r;
70
- if (l.id === "select")
71
- r = n?.columnWidth || 32;
75
+ children: /* @__PURE__ */ p(N, { spinning: v, ...R, children: [
76
+ /* @__PURE__ */ o("div", { className: e("data-table"), children: /* @__PURE__ */ o("div", { className: e("data-table-container"), ref: r, children: /* @__PURE__ */ o("div", { className: e("data-table-content"), children: /* @__PURE__ */ p("table", { children: [
77
+ /* @__PURE__ */ o("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((t) => {
78
+ let l;
79
+ if (t.id === "select")
80
+ l = n?.columnWidth || 32;
72
81
  else
73
82
  try {
74
- r = `${l.getSize()}px`;
83
+ l = `${t.getSize()}px`;
75
84
  } catch {
76
- r = l.column.columnDef.meta?.width;
85
+ l = t.column.columnDef.meta?.width;
77
86
  }
78
- return /* @__PURE__ */ t("col", { style: { width: r } }, l.id);
87
+ return /* @__PURE__ */ o("col", { style: { width: l } }, t.id);
79
88
  }) }),
80
- /* @__PURE__ */ t(
81
- I,
89
+ /* @__PURE__ */ o(
90
+ P,
82
91
  {
83
92
  table: a,
84
93
  rowSelectionConfig: n,
@@ -86,32 +95,32 @@ const $ = (s, G) => {
86
95
  rowKey: c
87
96
  }
88
97
  ),
89
- /* @__PURE__ */ t(
90
- j,
98
+ /* @__PURE__ */ o(
99
+ k,
91
100
  {
92
101
  table: a,
93
102
  dataSource: i,
94
- emptyDescription: w,
95
- hasRowSelection: m,
103
+ emptyDescription: z,
104
+ hasRowSelection: u,
96
105
  onRowClick: T,
97
106
  rowSelectionConfig: n,
98
107
  rowKey: c
99
108
  }
100
109
  )
101
110
  ] }) }) }) }),
102
- d && /* @__PURE__ */ t(
103
- A,
111
+ f && /* @__PURE__ */ o(
112
+ j,
104
113
  {
105
114
  table: a,
106
- paginationConfig: z,
115
+ paginationConfig: C,
107
116
  totalCount: a.getPreFilteredRowModel().rows.length
108
117
  }
109
118
  )
110
119
  ] })
111
120
  }
112
121
  );
113
- }, B = y($), _ = B;
122
+ }, $ = x(F), ee = $;
114
123
  export {
115
- _ as DataTable
124
+ ee as DataTable
116
125
  };
117
126
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useAntdCssVarClassname, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport { useToken } from \"../hooks\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowKey,\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>) => {\n if (hasRowSelection) {\n row.toggleSelected();\n if (rowSelectionConfig?.onSelect) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n !row.getIsSelected(),\n selectedRows,\n new Event(\"click\")\n );\n }\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n const antdClass = useAntdCssVarClassname();\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const [hasScroll, setHasScroll] = useState({\n vertical: false,\n horizontal: false,\n });\n\n useEffect(() => {\n if (tableContainerRef.current) {\n setHasScroll({\n vertical:\n tableContainerRef.current.scrollHeight >\n tableContainerRef.current.clientHeight,\n horizontal:\n tableContainerRef.current.scrollWidth >\n tableContainerRef.current.clientWidth,\n });\n }\n }, [dataSource]);\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"table-wrapper\", \"data-table\"),\n cls(`table-${size}`),\n variant === \"zebra\" ? cls(\"table-zebra\") : \"\",\n hasPagination ? cls(\"table-has-pagination\") : \"\",\n hasScroll.vertical ? cls(\"table-scroll-vertical\") : \"\",\n hasScroll.horizontal ? cls(\"table-scroll-horizontal\") : \"\",\n antdClass,\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={clsx(cls(\"table\"))}>\n <div className={cls(\"table-container\")} ref={tableContainerRef}>\n <div className={cls(\"table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n\n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (\n header.column.columnDef.meta as ExtendedColumnMeta\n )?.width;\n }\n }\n\n return (\n <col key={header.id} style={{ width: columnWidth }} />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={rowKey}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={emptyDescription}\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={rowKey}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","selectedRows","convertSelectionToAntFormat","antdClass","useAntdCssVarClassname","tableContainerRef","hasScroll","setHasScroll","useState","useEffect","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport \"./variant-zebra.css\";\nimport \"./variant-minimal.css\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowKey,\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>) => {\n if (hasRowSelection) {\n row.toggleSelected();\n if (rowSelectionConfig?.onSelect) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n !row.getIsSelected(),\n selectedRows,\n new Event(\"click\")\n );\n }\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const [hasScroll, setHasScroll] = useState({\n vertical: false,\n horizontal: false,\n });\n\n const isColumnResizing = Boolean(\n table.getState().columnSizingInfo?.isResizingColumn\n );\n\n useEffect(() => {\n if (tableContainerRef.current) {\n setHasScroll({\n vertical:\n tableContainerRef.current.scrollHeight >\n tableContainerRef.current.clientHeight,\n horizontal:\n tableContainerRef.current.scrollWidth >\n tableContainerRef.current.clientWidth,\n });\n }\n }, [dataSource]);\n\n useEffect(() => {\n if (!isColumnResizing || typeof document === \"undefined\") return;\n\n const originalCursor = document.body.style.cursor;\n const originalUserSelect = document.body.style.userSelect;\n\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n\n return () => {\n document.body.style.cursor = originalCursor;\n document.body.style.userSelect = originalUserSelect;\n };\n }, [isColumnResizing]);\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"data-table-wrapper\"),\n cls(`data-table-${size}`),\n variant === \"zebra\" ? cls(\"data-table-zebra\") : \"\",\n variant === \"minimal\" ? cls(\"data-table-minimal\") : \"\",\n hasPagination ? cls(\"data-table-has-pagination\") : \"\",\n hasScroll.vertical ? cls(\"data-table-scroll-vertical\") : \"\",\n hasScroll.horizontal ? cls(\"data-table-scroll-horizontal\") : \"\",\n isColumnResizing ? cls(\"data-table-resizing\") : \"\",\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={cls(\"data-table\")}>\n <div className={cls(\"data-table-container\")} ref={tableContainerRef}>\n <div className={cls(\"data-table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n\n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (\n header.column.columnDef.meta as ExtendedColumnMeta\n )?.width;\n }\n }\n\n return (\n <col key={header.id} style={{ width: columnWidth }} />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={rowKey}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={emptyDescription}\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={rowKey}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","selectedRows","convertSelectionToAntFormat","tableContainerRef","hasScroll","setHasScroll","useState","isColumnResizing","useEffect","originalCursor","originalUserSelect","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
@@ -10,6 +10,6 @@ interface TableBodyProps<RecordType extends Record<string, any> = Record<string,
10
10
  rowSelectionConfig?: DataTableRowSelection<RecordType>;
11
11
  rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey);
12
12
  }
13
- export declare const TableBody: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, dataSource, emptyDescription, hasRowSelection, onRowClick, rowSelectionConfig, rowKey }: TableBodyProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const TableBody: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, dataSource, emptyDescription, hasRowSelection, onRowClick, rowSelectionConfig, rowKey, }: TableBodyProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
14
14
  export {};
15
15
  //# sourceMappingURL=TableBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,KAAK,EAAE,KAAK,GAAG,EAA0B,MAAM,uBAAuB,CAAC;AAKjG,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAWnE,UAAU,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,kGAQzF,cAAc,CAAC,UAAU,CAAC,4CAkH5B,CAAC"}
1
+ {"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,KAAK,EAAE,KAAK,GAAG,EAA0B,MAAM,uBAAuB,CAAC;AAMjG,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAWnE,UAAU,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,mGAQzF,cAAc,CAAC,UAAU,CAAC,4CA0H5B,CAAC"}
@@ -1,101 +1,110 @@
1
- import { jsxs as x, jsx as t } from "react/jsx-runtime";
1
+ import { jsxs as x, jsx as a } from "react/jsx-runtime";
2
2
  import { flexRender as f } from "@tanstack/react-table";
3
- import { Checkbox as k } from "antd";
4
- import { convertSelectionToAntFormat as h, getAlignmentClass as w } from "../utils.js";
3
+ import { convertSelectionToAntFormat as h, getAlignmentClass as k } from "../utils.js";
5
4
  import { Empty as S } from "../../empty/component.js";
6
- import { useCls as y } from "../../utils/antdUtils.js";
5
+ import { Radio as w } from "../../radio/component.js";
6
+ import { useCls as v } from "../../utils/antdUtils.js";
7
7
  import { clsx as g } from "../../utils/cn.js";
8
- const j = ({
8
+ import { Checkbox as y } from "../../checkbox/component.js";
9
+ const G = ({
9
10
  table: c,
10
- dataSource: a,
11
+ dataSource: l,
11
12
  emptyDescription: p,
12
- hasRowSelection: b,
13
- onRowClick: u,
14
- rowSelectionConfig: s,
15
- rowKey: m
13
+ hasRowSelection: u,
14
+ onRowClick: b,
15
+ rowSelectionConfig: r,
16
+ rowKey: i
16
17
  }) => {
17
- const d = y();
18
- return /* @__PURE__ */ x("tbody", { className: d("table-tbody"), children: [
19
- /* @__PURE__ */ t(
18
+ const t = v();
19
+ return /* @__PURE__ */ x("tbody", { className: t("data-table-tbody"), children: [
20
+ /* @__PURE__ */ a(
20
21
  "tr",
21
22
  {
22
23
  "aria-hidden": "true",
23
- className: d("table-measure-row"),
24
+ className: t("data-table-measure-row"),
24
25
  style: { height: "0px", fontSize: "0px" },
25
- children: c.getHeaderGroups()[0]?.headers.map((o) => /* @__PURE__ */ t(
26
+ children: c.getHeaderGroups()[0]?.headers.map((d) => /* @__PURE__ */ a(
26
27
  "td",
27
28
  {
29
+ className: t("data-table-measure-cell"),
28
30
  style: {
29
31
  padding: "0px",
30
32
  border: "0px",
31
33
  height: "0px",
32
- width: o.id === "select" ? 32 : o.column.columnDef.meta?.width
34
+ width: d.id === "select" ? 32 : d.column.columnDef.meta?.width
33
35
  },
34
- children: /* @__PURE__ */ t("div", { style: { height: "0px", overflow: "hidden" }, children: " " })
36
+ children: /* @__PURE__ */ a("div", { className: t("data-table-measure-cell-content"), children: " " })
35
37
  },
36
- o.id
38
+ d.id
37
39
  ))
38
40
  }
39
41
  ),
40
- a.length === 0 ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan: c.getHeaderGroups()[0]?.headers.length || 1, children: /* @__PURE__ */ t(S, { description: p }) }) }) : c.getRowModel().rows.map((o) => /* @__PURE__ */ t(
42
+ l.length === 0 ? /* @__PURE__ */ a("tr", { className: t("data-table-placeholder"), children: /* @__PURE__ */ a("td", { colSpan: c.getHeaderGroups()[0]?.headers.length || 1, children: /* @__PURE__ */ a(S, { description: p }) }) }) : c.getRowModel().rows.map((d) => /* @__PURE__ */ a(
41
43
  "tr",
42
44
  {
43
45
  className: g(
44
- d("table-row"),
45
- d("table-row-level-0"),
46
- o.getIsSelected() ? d("table-row-selected") : ""
46
+ t("data-table-row"),
47
+ t("data-table-row-level-0"),
48
+ d.getIsSelected() ? t("data-table-row-selected") : ""
47
49
  ),
48
- "data-row-key": o.id,
49
- "data-selectable": b ? "true" : "false",
50
- onClick: () => u?.(o),
51
- children: o.getVisibleCells().map((e) => /* @__PURE__ */ t(
50
+ "data-row-key": d.id,
51
+ "data-selectable": u ? "true" : "false",
52
+ onClick: () => b?.(d),
53
+ children: d.getVisibleCells().map((e) => /* @__PURE__ */ a(
52
54
  "td",
53
55
  {
54
56
  className: g(
55
- d("table-cell"),
56
- e.column.id === "select" ? d("table-selection-column") : "",
57
- w(e.column.columnDef.meta?.align)
57
+ t("data-table-cell"),
58
+ e.column.id === "select" ? t("data-table-selection-column") : "",
59
+ k(e.column.columnDef.meta?.align)
58
60
  ),
59
61
  children: e.column.id === "select" ? (
60
62
  // Handle selection column cells
61
63
  (() => {
62
- const l = e.row.original, n = s?.getCheckboxProps?.(l) || {};
63
- return s?.type === "radio" ? /* @__PURE__ */ t(
64
- "input",
64
+ const s = e.row.original, m = r?.getCheckboxProps?.(s) || {};
65
+ return r?.type === "radio" ? /* @__PURE__ */ a(
66
+ w,
65
67
  {
66
- type: "radio",
67
- name: "table-radio",
68
68
  checked: e.row.getIsSelected(),
69
69
  disabled: !e.row.getCanSelect(),
70
- onChange: (r) => {
71
- if (e.row.toggleSelected(r.target.checked), s.onSelect) {
72
- const { selectedRows: i } = h(
70
+ onChange: (o) => {
71
+ if (e.row.toggleSelected(o.target.checked), r.onSelect) {
72
+ const { selectedRows: n } = h(
73
73
  c.getState().rowSelection,
74
- a,
75
- m
74
+ l,
75
+ i
76
+ );
77
+ r.onSelect(
78
+ s,
79
+ o.target.checked,
80
+ n,
81
+ o.nativeEvent
76
82
  );
77
- s.onSelect(l, r.target.checked, i, r.nativeEvent);
78
83
  }
79
84
  },
80
- disabled: n.disabled,
81
- className: n.className
85
+ ...m
82
86
  }
83
- ) : /* @__PURE__ */ t(
84
- k,
87
+ ) : /* @__PURE__ */ a(
88
+ y,
85
89
  {
86
90
  checked: e.row.getIsSelected(),
87
91
  disabled: !e.row.getCanSelect(),
88
- onChange: (r) => {
89
- if (e.row.toggleSelected(r.target.checked), s?.onSelect) {
90
- const { selectedRows: i } = h(
92
+ onChange: (o) => {
93
+ if (e.row.toggleSelected(o.target.checked), r?.onSelect) {
94
+ const { selectedRows: n } = h(
91
95
  c.getState().rowSelection,
92
- a,
93
- m
96
+ l,
97
+ i
98
+ );
99
+ r.onSelect(
100
+ s,
101
+ o.target.checked,
102
+ n,
103
+ o.nativeEvent
94
104
  );
95
- s.onSelect(l, r.target.checked, i, r.nativeEvent);
96
105
  }
97
106
  },
98
- ...n
107
+ ...m
99
108
  }
100
109
  );
101
110
  })()
@@ -104,11 +113,11 @@ const j = ({
104
113
  e.id
105
114
  ))
106
115
  },
107
- o.id
116
+ d.id
108
117
  ))
109
118
  ] });
110
119
  };
111
120
  export {
112
- j as TableBody
121
+ G as TableBody
113
122
  };
114
123
  //# sourceMappingURL=TableBody.js.map