react-restyle-components 0.4.47 → 0.4.48

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 (233) hide show
  1. package/lib/index.js +3 -1
  2. package/lib/src/core-components/index.js +1 -1
  3. package/lib/src/core-components/src/components/Accordion/AccordionSection/Accordion.js +15 -1
  4. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js +6 -1
  5. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js +39 -1
  6. package/lib/src/core-components/src/components/Accordion/AccordionSection/Header.js +39 -1
  7. package/lib/src/core-components/src/components/Accordion/AccordionSection/elements.js +94 -57
  8. package/lib/src/core-components/src/components/Accordion/AccordionSection/hooks/useCurrentAccordionIndex.js +13 -1
  9. package/lib/src/core-components/src/components/Accordion/AccordionSection/index.js +3 -1
  10. package/lib/src/core-components/src/components/Accordion/AccordionSection/types.js +9 -1
  11. package/lib/src/core-components/src/components/Accordion/Collapsible/Collapsible2.component.js +249 -1
  12. package/lib/src/core-components/src/components/Action/types.js +8 -1
  13. package/lib/src/core-components/src/components/AlertBanner/AlertBanner.js +45 -1
  14. package/lib/src/core-components/src/components/AlertBanner/elements.js +120 -45
  15. package/lib/src/core-components/src/components/AlertBanner/index.js +2 -1
  16. package/lib/src/core-components/src/components/AlertBanner/types.js +10 -1
  17. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-group-by-multiple-select-multiple-fields-display/auto-complete-filter-group-by-multiple-select-multiple-fields-display.component.d.ts +3 -1
  18. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-group-by-multiple-select-multiple-fields-display/auto-complete-filter-group-by-multiple-select-multiple-fields-display.component.js +466 -1
  19. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-multi-fields-display-drag-drop/auto-complete-filter-multi-select-multi-fields-display-drag-drop.component.js +229 -1
  20. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-selected-top-display/auto-complete-filter-multi-select-selected-top-display.component.js +174 -1
  21. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +129 -2
  22. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +55 -1
  23. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +308 -2
  24. package/lib/src/core-components/src/components/AutoComplete/auto-complete-group-by/auto-complete-group-by.component.js +115 -1
  25. package/lib/src/core-components/src/components/AutoComplete/autocomplete/autocomplete.js +442 -2
  26. package/lib/src/core-components/src/components/AutoComplete/index.js +8 -1
  27. package/lib/src/core-components/src/components/Avatar/Avatar.js +148 -14
  28. package/lib/src/core-components/src/components/Badge/Badge.js +25 -2
  29. package/lib/src/core-components/src/components/Badge/InnerBadge/Inline.js +25 -1
  30. package/lib/src/core-components/src/components/Badge/InnerBadge/InnerBadge.js +25 -1
  31. package/lib/src/core-components/src/components/Badge/InnerBadge/elements.js +78 -32
  32. package/lib/src/core-components/src/components/Badge/InnerBadge/index.js +1 -1
  33. package/lib/src/core-components/src/components/Badge/index.js +1 -1
  34. package/lib/src/core-components/src/components/Badge/types.js +5 -1
  35. package/lib/src/core-components/src/components/Breadcrumb/Breadcrumb.js +83 -1
  36. package/lib/src/core-components/src/components/Breadcrumb/elements.js +166 -94
  37. package/lib/src/core-components/src/components/Breadcrumb/index.js +3 -1
  38. package/lib/src/core-components/src/components/Breadcrumb/types.js +3 -1
  39. package/lib/src/core-components/src/components/Button/button.component.js +18 -1
  40. package/lib/src/core-components/src/components/Button/buttonGroup/buttonGroup.component.js +4 -1
  41. package/lib/src/core-components/src/components/Button/index.js +2 -1
  42. package/lib/src/core-components/src/components/Button/types.js +1 -1
  43. package/lib/src/core-components/src/components/Chip/Chip.js +64 -1
  44. package/lib/src/core-components/src/components/Chip/elements.js +148 -48
  45. package/lib/src/core-components/src/components/Chip/index.js +2 -1
  46. package/lib/src/core-components/src/components/Chip/types.js +4 -1
  47. package/lib/src/core-components/src/components/Divider/Divider.js +25 -1
  48. package/lib/src/core-components/src/components/Divider/elements.js +68 -31
  49. package/lib/src/core-components/src/components/Divider/index.js +2 -1
  50. package/lib/src/core-components/src/components/Divider/types.js +4 -1
  51. package/lib/src/core-components/src/components/DynamicGrid/DynamicGrid.js +147 -1
  52. package/lib/src/core-components/src/components/DynamicGrid/GridContainer.js +24 -17
  53. package/lib/src/core-components/src/components/DynamicGrid/elements.js +162 -100
  54. package/lib/src/core-components/src/components/DynamicGrid/index.js +3 -1
  55. package/lib/src/core-components/src/components/DynamicGrid/types.js +28 -1
  56. package/lib/src/core-components/src/components/DynamicGrid/utils.js +193 -1
  57. package/lib/src/core-components/src/components/FormField/FormField.js +103 -1
  58. package/lib/src/core-components/src/components/FormField/components/CheckboxGroupInput.js +37 -1
  59. package/lib/src/core-components/src/components/FormField/components/CheckboxInput.js +8 -1
  60. package/lib/src/core-components/src/components/FormField/components/CssMultilineInput.js +192 -1
  61. package/lib/src/core-components/src/components/FormField/components/DatePickerInput.js +99 -1
  62. package/lib/src/core-components/src/components/FormField/components/DropdownInput.js +70 -1
  63. package/lib/src/core-components/src/components/FormField/components/OtpInput.js +81 -1
  64. package/lib/src/core-components/src/components/FormField/components/PasswordInput.js +40 -1
  65. package/lib/src/core-components/src/components/FormField/components/PinInput.js +75 -1
  66. package/lib/src/core-components/src/components/FormField/components/RadioInput.js +54 -1
  67. package/lib/src/core-components/src/components/FormField/components/TextDropdownInput.js +94 -1
  68. package/lib/src/core-components/src/components/FormField/components/ToggleInput.js +36 -1
  69. package/lib/src/core-components/src/components/FormField/components/index.js +11 -1
  70. package/lib/src/core-components/src/components/FormField/css-properties.js +161 -1
  71. package/lib/src/core-components/src/components/FormField/index.js +2 -1
  72. package/lib/src/core-components/src/components/Icon/Icon.js +159 -1
  73. package/lib/src/core-components/src/components/Icon/index.js +2 -1
  74. package/lib/src/core-components/src/components/Icon/types.js +9 -1
  75. package/lib/src/core-components/src/components/Loader/loader.component.js +215 -2
  76. package/lib/src/core-components/src/components/Masonry/Masonry.js +73 -1
  77. package/lib/src/core-components/src/components/Masonry/elements.js +46 -29
  78. package/lib/src/core-components/src/components/Masonry/hooks.js +100 -1
  79. package/lib/src/core-components/src/components/Masonry/index.js +3 -1
  80. package/lib/src/core-components/src/components/Masonry/types.js +1 -1
  81. package/lib/src/core-components/src/components/Modal/BasicModal/modal.component.js +116 -1
  82. package/lib/src/core-components/src/components/Modal/index.js +2 -1
  83. package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +147 -1
  84. package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +12 -1
  85. package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +40 -1
  86. package/lib/src/core-components/src/components/Picker/index.js +2 -1
  87. package/lib/src/core-components/src/components/Selection/index.js +4 -1
  88. package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +49 -1
  89. package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +58 -1
  90. package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +43 -1
  91. package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +87 -1
  92. package/lib/src/core-components/src/components/Skeleton/Skeleton.js +51 -1
  93. package/lib/src/core-components/src/components/Skeleton/elements.js +143 -54
  94. package/lib/src/core-components/src/components/Skeleton/index.js +2 -1
  95. package/lib/src/core-components/src/components/Skeleton/types.js +4 -1
  96. package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +128 -1
  97. package/lib/src/core-components/src/components/SpeedDial/elements.js +132 -62
  98. package/lib/src/core-components/src/components/SpeedDial/index.js +2 -1
  99. package/lib/src/core-components/src/components/SpeedDial/types.js +3 -1
  100. package/lib/src/core-components/src/components/Stepper2/stepper.component.js +139 -1
  101. package/lib/src/core-components/src/components/Switch/Switch.js +26 -1
  102. package/lib/src/core-components/src/components/Switch/elements.js +103 -34
  103. package/lib/src/core-components/src/components/Switch/index.js +2 -1
  104. package/lib/src/core-components/src/components/Switch/types.js +3 -1
  105. package/lib/src/core-components/src/components/Table/Table.js +1489 -1
  106. package/lib/src/core-components/src/components/Table/columnReorder.js +332 -36
  107. package/lib/src/core-components/src/components/Table/columnResize.js +284 -21
  108. package/lib/src/core-components/src/components/Table/elements.js +277 -173
  109. package/lib/src/core-components/src/components/Table/filters.js +555 -30
  110. package/lib/src/core-components/src/components/Table/hooks.js +536 -2
  111. package/lib/src/core-components/src/components/Table/index.js +6 -1
  112. package/lib/src/core-components/src/components/Table/types.js +1 -1
  113. package/lib/src/core-components/src/components/Tabs/tabs.component.js +22 -1
  114. package/lib/src/core-components/src/components/Tags1/Tags.component.js +118 -1
  115. package/lib/src/core-components/src/components/Tags1/types.js +20 -1
  116. package/lib/src/core-components/src/components/Timer1/timer.component.js +76 -1
  117. package/lib/src/core-components/src/components/Toast/Toast.js +50 -1
  118. package/lib/src/core-components/src/components/Toast/elements.js +122 -41
  119. package/lib/src/core-components/src/components/Toast/index.js +2 -1
  120. package/lib/src/core-components/src/components/Toast/types.js +9 -1
  121. package/lib/src/core-components/src/components/Tooltip/Tooltip.js +200 -1
  122. package/lib/src/core-components/src/components/Tooltip/elements.js +117 -55
  123. package/lib/src/core-components/src/components/Tooltip/index.js +2 -1
  124. package/lib/src/core-components/src/components/Tooltip/types.js +17 -1
  125. package/lib/src/core-components/src/components/Tooltip/utils.js +140 -1
  126. package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +303 -1
  127. package/lib/src/core-components/src/components/TreeSelect/elements.js +216 -117
  128. package/lib/src/core-components/src/components/TreeSelect/hooks.js +252 -1
  129. package/lib/src/core-components/src/components/TreeSelect/index.js +3 -1
  130. package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
  131. package/lib/src/core-components/src/components/ag-grid/AgGrid.js +1057 -1
  132. package/lib/src/core-components/src/components/ag-grid/elements.js +790 -396
  133. package/lib/src/core-components/src/components/ag-grid/hooks.js +1220 -4
  134. package/lib/src/core-components/src/components/ag-grid/index.js +15 -1
  135. package/lib/src/core-components/src/components/ag-grid/types.js +6 -1
  136. package/lib/src/core-components/src/components/index.js +31 -1
  137. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +7 -1
  138. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +48 -5
  139. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +70 -1
  140. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +50 -1
  141. package/lib/src/core-components/src/core-components/Avatar.js +33 -4
  142. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +10 -1
  143. package/lib/src/core-components/src/core-components/CoreButton/elements.js +176 -67
  144. package/lib/src/core-components/src/core-components/CoreButton/index.js +3 -1
  145. package/lib/src/core-components/src/core-components/CoreButton/types.js +6 -1
  146. package/lib/src/core-components/src/core-components/CoreButton/utils.js +12 -1
  147. package/lib/src/core-components/src/core-components/Divider/Divider.js +19 -4
  148. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  149. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  150. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +33 -10
  151. package/lib/src/core-components/src/core-components/StateLayer.js +5 -3
  152. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +50 -25
  153. package/lib/src/core-components/src/core-components/ToggleCore/index.js +2 -1
  154. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +14 -1
  155. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +22 -1
  156. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +21 -1
  157. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +19 -1
  158. package/lib/src/core-components/src/core-components/index.js +3 -1
  159. package/lib/src/core-components/src/helpers/constants.js +11 -1
  160. package/lib/src/core-components/src/hooks/index.js +1 -1
  161. package/lib/src/core-components/src/hooks/outside.hook.js +28 -1
  162. package/lib/src/core-components/src/index.js +12 -1
  163. package/lib/src/core-components/src/tc.global.css +1 -0
  164. package/lib/src/core-components/src/tc.module.css +1 -1
  165. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +28 -1
  166. package/lib/src/core-components/src/utils/abstracts/colors/index.js +49 -1
  167. package/lib/src/core-components/src/utils/abstracts/index.js +5 -1
  168. package/lib/src/core-components/src/utils/abstracts/space/index.js +26 -1
  169. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +8 -1
  170. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +30 -1
  171. package/lib/src/core-components/src/utils/abstracts/theme/index.js +3 -1
  172. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +30 -1
  173. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  174. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +17 -1
  175. package/lib/src/core-components/src/utils/abstracts/typography/index.js +25 -1
  176. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +8 -1
  177. package/lib/src/core-components/src/utils/context/InternalProvider.js +24 -1
  178. package/lib/src/core-components/src/utils/context/index.js +2 -1
  179. package/lib/src/core-components/src/utils/designTokens.js +128 -1
  180. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +23 -1
  181. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +11 -1
  182. package/lib/src/core-components/src/utils/helpers/getChildByType.js +3 -1
  183. package/lib/src/core-components/src/utils/helpers/index.js +5 -1
  184. package/lib/src/core-components/src/utils/helpers/isComponentType.js +16 -1
  185. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +12 -1
  186. package/lib/src/core-components/src/utils/hooks/index.js +18 -1
  187. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +18 -1
  188. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +17 -1
  189. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +12 -1
  190. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +20 -1
  191. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +40 -1
  192. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +10 -1
  193. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +24 -1
  194. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +16 -1
  195. package/lib/src/core-components/src/utils/hooks/useHoverState.js +36 -1
  196. package/lib/src/core-components/src/utils/hooks/useId.js +7 -1
  197. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +11 -1
  198. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +16 -1
  199. package/lib/src/core-components/src/utils/hooks/useOverflow.js +22 -1
  200. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +5 -1
  201. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +18 -1
  202. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +30 -1
  203. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +23 -1
  204. package/lib/src/core-components/src/utils/index.js +9 -1
  205. package/lib/src/core-components/src/utils/stories/Wrappers.js +23 -8
  206. package/lib/src/core-components/src/utils/stories/cleanProps.js +5 -1
  207. package/lib/src/core-components/src/utils/stories/index.js +4 -1
  208. package/lib/src/core-components/src/utils/stories/sleep.js +4 -1
  209. package/lib/src/core-components/src/utils/stories/view-ports.js +50 -1
  210. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +5 -1
  211. package/lib/src/core-components/src/utils/styling/createGridContainer.js +12 -6
  212. package/lib/src/core-components/src/utils/styling/createTransition.js +7 -2
  213. package/lib/src/core-components/src/utils/styling/forwardProps.js +10 -1
  214. package/lib/src/core-components/src/utils/styling/index.js +5 -1
  215. package/lib/src/core-components/src/utils/styling/pxToRem.js +6 -1
  216. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +3 -1
  217. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  218. package/lib/src/core-components/src/utils/utility.util.js +14 -1
  219. package/lib/src/core-components/tailwind.config.js +233 -1
  220. package/lib/src/core-hooks/index.js +3 -1
  221. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +46 -1
  222. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +30 -1
  223. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +8 -1
  224. package/lib/src/core-utils/index.js +7 -1
  225. package/lib/src/core-utils/src/calculation/calculation.util.js +89 -1
  226. package/lib/src/core-utils/src/colors/color.util.js +15 -1
  227. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +145 -1
  228. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +5 -1
  229. package/lib/src/core-utils/src/form-helper/form-helper.util.js +82 -1
  230. package/lib/src/core-utils/src/index.js +7 -1
  231. package/lib/src/core-utils/src/utility/utility.util.js +12 -1
  232. package/lib/src/core-utils/src/uuid/uuid.util.js +8 -1
  233. package/package.json +1 -1
@@ -1,11 +1,40 @@
1
- "use strict";import{jsx as N,jsxs as T}from"react/jsx-runtime";import{useRef as b,useState as R,useCallback as l,useEffect as U,useMemo as V}from"react";import{styled as Y,css as B,keyframes as M}from"styled-components";const J=M`
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Column Resize Feature
4
+ *
5
+ * This file contains the column resizing functionality for the Table component.
6
+ * It can be easily enabled/disabled via props without affecting core table logic.
7
+ *
8
+ * Features:
9
+ * - Drag to resize columns
10
+ * - Min/Max width constraints
11
+ * - Double-click to auto-fit column width
12
+ * - Persist column widths (optional)
13
+ *
14
+ * Usage:
15
+ * <Table
16
+ * resizable={true}
17
+ * resizeConfig={{
18
+ * minWidth: 50,
19
+ * maxWidth: 500,
20
+ * onResize: (columnWidths) => console.log(columnWidths),
21
+ * }}
22
+ * />
23
+ */
24
+ import { useRef, useState, useCallback, useEffect, useMemo, } from 'react';
25
+ import { styled, css, keyframes } from 'styled-components';
26
+ // ============================================================================
27
+ // Animations
28
+ // ============================================================================
29
+ const pulseGlow = keyframes `
2
30
  0%, 100% {
3
31
  box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
4
32
  }
5
33
  50% {
6
34
  box-shadow: 0 0 8px 2px rgba(59, 130, 246, 0.6);
7
35
  }
8
- `,K=M`
36
+ `;
37
+ const slideIn = keyframes `
9
38
  from {
10
39
  transform: scaleY(0);
11
40
  opacity: 0;
@@ -14,14 +43,19 @@
14
43
  transform: scaleY(1);
15
44
  opacity: 1;
16
45
  }
17
- `,tt=M`
46
+ `;
47
+ const shimmer = keyframes `
18
48
  0% { background-position: -200% 0; }
19
49
  100% { background-position: 200% 0; }
20
- `;export const ResizeHandle=Y.div`
50
+ `;
51
+ // ============================================================================
52
+ // Styled Components
53
+ // ============================================================================
54
+ export const ResizeHandle = styled.div `
21
55
  position: absolute;
22
56
  top: 0;
23
57
  right: -2px;
24
- width: ${({$handleWidth:t})=>(t||8)+4}px;
58
+ width: ${({ $handleWidth }) => ($handleWidth || 8) + 4}px;
25
59
  height: 100%;
26
60
  cursor: col-resize;
27
61
  background: transparent;
@@ -39,23 +73,26 @@
39
73
  top: 20%;
40
74
  width: 3px;
41
75
  height: 60%;
42
- background: ${({$isResizing:t,$handleColor:h,$handleHoverColor:s})=>t?s||"#3b82f6":h||"rgba(255, 255, 255, 0.25)"};
76
+ background: ${({ $isResizing, $handleColor, $handleHoverColor }) => $isResizing
77
+ ? $handleHoverColor || '#3b82f6'
78
+ : $handleColor || 'rgba(255, 255, 255, 0.25)'};
43
79
  border-radius: 2px;
44
80
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
45
- transform: scaleY(${({$isResizing:t})=>t?1:.7});
81
+ transform: scaleY(${({ $isResizing }) => ($isResizing ? 1 : 0.7)});
46
82
  }
47
83
 
48
84
  /* Hover effect - expand and glow */
49
85
  &:hover::after {
50
- background: ${({$handleHoverColor:t})=>t||"#3b82f6"};
86
+ background: ${({ $handleHoverColor }) => $handleHoverColor || '#3b82f6'};
51
87
  transform: scaleY(1);
52
88
  box-shadow: 0 0 8px rgba(59, 130, 246, 0.5);
53
89
  }
54
90
 
55
91
  /* Active/resizing state */
56
- ${({$isResizing:t})=>t&&B`
92
+ ${({ $isResizing }) => $isResizing &&
93
+ css `
57
94
  &::after {
58
- animation: ${J} 1s ease-in-out infinite;
95
+ animation: ${pulseGlow} 1s ease-in-out infinite;
59
96
  transform: scaleY(1.1);
60
97
  }
61
98
 
@@ -91,31 +128,32 @@
91
128
  &:hover::before {
92
129
  opacity: 1;
93
130
  }
94
- `,ResizeLine=Y.div`
131
+ `;
132
+ export const ResizeLine = styled.div `
95
133
  position: fixed;
96
134
  top: 0;
97
- left: ${({$left:t})=>t}px;
135
+ left: ${({ $left }) => $left}px;
98
136
  width: 2px;
99
137
  height: 100vh;
100
138
  pointer-events: none;
101
139
  z-index: 10000;
102
- opacity: ${({$visible:t})=>t?1:0};
140
+ opacity: ${({ $visible }) => ($visible ? 1 : 0)};
103
141
  transition: opacity 0.15s ease, transform 0.1s ease;
104
- transform: ${({$visible:t})=>t?"scaleX(1)":"scaleX(0)"};
142
+ transform: ${({ $visible }) => ($visible ? 'scaleX(1)' : 'scaleX(0)')};
105
143
  transform-origin: center;
106
144
 
107
145
  /* Gradient line with glow effect */
108
146
  background: linear-gradient(
109
147
  to bottom,
110
148
  transparent 0%,
111
- ${({$color:t})=>t||"#3b82f6"} 5%,
112
- ${({$color:t})=>t||"#3b82f6"} 95%,
149
+ ${({ $color }) => $color || '#3b82f6'} 5%,
150
+ ${({ $color }) => $color || '#3b82f6'} 95%,
113
151
  transparent 100%
114
152
  );
115
153
  box-shadow:
116
- 0 0 10px ${({$color:t})=>t||"#3b82f6"},
117
- 0 0 20px ${({$color:t})=>(t||"#3b82f6")+"80"},
118
- 0 0 30px ${({$color:t})=>(t||"#3b82f6")+"40"};
154
+ 0 0 10px ${({ $color }) => $color || '#3b82f6'},
155
+ 0 0 20px ${({ $color }) => ($color || '#3b82f6') + '80'},
156
+ 0 0 30px ${({ $color }) => ($color || '#3b82f6') + '40'};
119
157
 
120
158
  /* Animated shimmer effect */
121
159
  &::after {
@@ -131,6 +169,231 @@
131
169
  rgba(255, 255, 255, 0.3),
132
170
  transparent
133
171
  );
134
- animation: ${K} 0.3s ease-out;
172
+ animation: ${slideIn} 0.3s ease-out;
135
173
  }
136
- `;export function useColumnResize({columns:t,config:h={},enabled:s=!0,tableId:g}){const{minWidth:r=50,maxWidth:c=800,autoFit:m=!0,onResize:u,onResizeStart:k,onResizeEnd:W,defaultWidths:f={},handleColor:E,handleHoverColor:F,handleWidth:S=4}=h,w=V(()=>{const i={};return t.forEach(e=>{typeof e.width=="number"?i[e.dataField]=e.width:typeof e.width=="string"&&e.width.endsWith("px")?i[e.dataField]=parseInt(e.width,10):f[e.dataField]&&(i[e.dataField]=f[e.dataField])}),i},[t,f]),[y,x]=R(w),[A,I]=R(!1),[z,D]=R(null),H=b(0),X=b(0),p=b(null),G=b(new Map);U(()=>{x(i=>{const e={...i};return t.forEach(n=>{n.dataField in e||(typeof n.width=="number"?e[n.dataField]=n.width:typeof n.width=="string"&&n.width.endsWith("px")?e[n.dataField]=parseInt(n.width,10):f[n.dataField]&&(e[n.dataField]=f[n.dataField]))}),e})},[t,f]);const v=l(i=>{if(!p.current)return;const e=i.clientX-H.current;let n=X.current+e;const o=t.find($=>$.dataField===p.current),d=typeof o?.minWidth=="number"?o.minWidth:typeof o?.minWidth=="string"&&o.minWidth.endsWith("px")?parseInt(o.minWidth,10):r,a=typeof o?.maxWidth=="number"?o.maxWidth:typeof o?.maxWidth=="string"&&o.maxWidth.endsWith("px")?parseInt(o.maxWidth,10):c;n=Math.max(d,Math.min(a,n)),x($=>({...$,[p.current]:n}))},[t,r,c]),C=l(()=>{if(p.current){const i=y[p.current];W?.(p.current,i),u?.(y)}I(!1),D(null),p.current=null,document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",C),document.body.style.cursor="",document.body.style.userSelect=""},[y,v,u,W]),j=l((i,e,n)=>{if(!s)return;i.preventDefault(),i.stopPropagation();const o=n.current;if(!o)return;const d=o.offsetWidth;H.current=i.clientX,X.current=d,p.current=e,I(!0),D(e),k?.(e,d),document.addEventListener("mousemove",v),document.addEventListener("mouseup",C),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[s,v,C,k]),L=l((i,e)=>{if(!s||!m)return;i.preventDefault(),i.stopPropagation();const n=document.querySelectorAll(`[data-column="${e}"]`);let o=r;n.forEach(d=>{const a=document.createElement("span");a.style.visibility="hidden",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.font=window.getComputedStyle(d).font,a.textContent=d.innerText,document.body.appendChild(a),o=Math.max(o,a.offsetWidth+24),document.body.removeChild(a)}),o=Math.min(o,c),x(d=>{const a={...d,[e]:o};return u?.(a),a}),W?.(e,o)},[s,m,r,c,u,W]),P=l((i,e)=>s?(G.current.set(i,e),N(ResizeHandle,{$isResizing:z===i,$handleColor:E,$handleHoverColor:F,$handleWidth:S,onMouseDown:n=>j(n,i,e),onDoubleClick:n=>L(n,i),onClick:n=>n.stopPropagation()})):null,[s,z,E,F,S,j,L]),_=l(()=>{x(w),u?.(w)},[w,u]),q=l((i,e)=>{const n=Math.max(r,Math.min(c,e));x(o=>{const d={...o,[i]:n};return u?.(d),d})},[r,c,u]);return{columnWidths:y,getResizeHandle:P,resetWidths:_,setColumnWidth:q,isResizing:A,resizingColumn:z}}export function getColumnStyle(t,h,s,g){const r={};return s&&h[t.dataField]?(r.width=h[t.dataField],r.minWidth=h[t.dataField],r.maxWidth=h[t.dataField]):(t.width&&(r.width=t.width),t.minWidth&&(r.minWidth=t.minWidth),t.maxWidth&&(r.maxWidth=t.maxWidth)),s&&!g&&(r.transition="width 0.2s cubic-bezier(0.4, 0, 0.2, 1)"),r}export const ResizableHeaderCell=({children:t,dataField:h,resizable:s,getResizeHandle:g,style:r,className:c})=>{const m=b(null);return T("th",{ref:m,style:{...r,position:"relative"},className:c,"data-column":h,children:[t,s&&g(h,m)]})};export default{useColumnResize,getColumnStyle,ResizeHandle,ResizeLine,ResizableHeaderCell};
174
+ `;
175
+ // ============================================================================
176
+ // Hook: useColumnResize
177
+ // ============================================================================
178
+ export function useColumnResize({ columns, config = {}, enabled = true, tableId, }) {
179
+ const { minWidth = 50, maxWidth = 800, autoFit = true, onResize, onResizeStart, onResizeEnd, defaultWidths = {}, handleColor, handleHoverColor, handleWidth = 4, } = config;
180
+ // Initialize column widths - Column-level width takes FIRST priority
181
+ const initialWidths = useMemo(() => {
182
+ const widths = {};
183
+ columns.forEach((col) => {
184
+ // Priority 1: Column-level width (user-defined in column)
185
+ if (typeof col.width === 'number') {
186
+ widths[col.dataField] = col.width;
187
+ }
188
+ else if (typeof col.width === 'string' && col.width.endsWith('px')) {
189
+ widths[col.dataField] = parseInt(col.width, 10);
190
+ }
191
+ // Priority 2: defaultWidths from resizeConfig (only if column width not set)
192
+ else if (defaultWidths[col.dataField]) {
193
+ widths[col.dataField] = defaultWidths[col.dataField];
194
+ }
195
+ });
196
+ return widths;
197
+ }, [columns, defaultWidths]);
198
+ const [columnWidths, setColumnWidths] = useState(initialWidths);
199
+ const [isResizing, setIsResizing] = useState(false);
200
+ const [resizingColumn, setResizingColumn] = useState(null);
201
+ // Refs for drag tracking
202
+ const startXRef = useRef(0);
203
+ const startWidthRef = useRef(0);
204
+ const currentColumnRef = useRef(null);
205
+ const headerRefMap = useRef(new Map());
206
+ // Update widths when columns change - Column-level width takes FIRST priority
207
+ useEffect(() => {
208
+ setColumnWidths((prev) => {
209
+ const newWidths = { ...prev };
210
+ columns.forEach((col) => {
211
+ // Only add if not already set (user hasn't resized it)
212
+ if (!(col.dataField in newWidths)) {
213
+ // Priority 1: Column-level width
214
+ if (typeof col.width === 'number') {
215
+ newWidths[col.dataField] = col.width;
216
+ }
217
+ else if (typeof col.width === 'string' && col.width.endsWith('px')) {
218
+ newWidths[col.dataField] = parseInt(col.width, 10);
219
+ }
220
+ // Priority 2: defaultWidths from resizeConfig
221
+ else if (defaultWidths[col.dataField]) {
222
+ newWidths[col.dataField] = defaultWidths[col.dataField];
223
+ }
224
+ }
225
+ });
226
+ return newWidths;
227
+ });
228
+ }, [columns, defaultWidths]);
229
+ // Handle mouse move during resize
230
+ const handleMouseMove = useCallback((e) => {
231
+ if (!currentColumnRef.current)
232
+ return;
233
+ const deltaX = e.clientX - startXRef.current;
234
+ let newWidth = startWidthRef.current + deltaX;
235
+ // Apply min/max constraints
236
+ const column = columns.find((col) => col.dataField === currentColumnRef.current);
237
+ const colMinWidth = typeof column?.minWidth === 'number'
238
+ ? column.minWidth
239
+ : typeof column?.minWidth === 'string' && column.minWidth.endsWith('px')
240
+ ? parseInt(column.minWidth, 10)
241
+ : minWidth;
242
+ const colMaxWidth = typeof column?.maxWidth === 'number'
243
+ ? column.maxWidth
244
+ : typeof column?.maxWidth === 'string' && column.maxWidth.endsWith('px')
245
+ ? parseInt(column.maxWidth, 10)
246
+ : maxWidth;
247
+ newWidth = Math.max(colMinWidth, Math.min(colMaxWidth, newWidth));
248
+ setColumnWidths((prev) => ({
249
+ ...prev,
250
+ [currentColumnRef.current]: newWidth,
251
+ }));
252
+ }, [columns, minWidth, maxWidth]);
253
+ // Handle mouse up (end resize)
254
+ const handleMouseUp = useCallback(() => {
255
+ if (currentColumnRef.current) {
256
+ const finalWidth = columnWidths[currentColumnRef.current];
257
+ onResizeEnd?.(currentColumnRef.current, finalWidth);
258
+ onResize?.(columnWidths);
259
+ }
260
+ setIsResizing(false);
261
+ setResizingColumn(null);
262
+ currentColumnRef.current = null;
263
+ document.removeEventListener('mousemove', handleMouseMove);
264
+ document.removeEventListener('mouseup', handleMouseUp);
265
+ document.body.style.cursor = '';
266
+ document.body.style.userSelect = '';
267
+ }, [columnWidths, handleMouseMove, onResize, onResizeEnd]);
268
+ // Handle mouse down (start resize)
269
+ const handleMouseDown = useCallback((e, dataField, headerRef) => {
270
+ if (!enabled)
271
+ return;
272
+ e.preventDefault();
273
+ e.stopPropagation();
274
+ const headerEl = headerRef.current;
275
+ if (!headerEl)
276
+ return;
277
+ const currentWidth = headerEl.offsetWidth;
278
+ startXRef.current = e.clientX;
279
+ startWidthRef.current = currentWidth;
280
+ currentColumnRef.current = dataField;
281
+ setIsResizing(true);
282
+ setResizingColumn(dataField);
283
+ onResizeStart?.(dataField, currentWidth);
284
+ document.addEventListener('mousemove', handleMouseMove);
285
+ document.addEventListener('mouseup', handleMouseUp);
286
+ document.body.style.cursor = 'col-resize';
287
+ document.body.style.userSelect = 'none';
288
+ }, [enabled, handleMouseMove, handleMouseUp, onResizeStart]);
289
+ // Handle double-click for auto-fit
290
+ const handleDoubleClick = useCallback((e, dataField) => {
291
+ if (!enabled || !autoFit)
292
+ return;
293
+ e.preventDefault();
294
+ e.stopPropagation();
295
+ // Get all cells for this column and find the max content width
296
+ const cells = document.querySelectorAll(`[data-column="${dataField}"]`);
297
+ let maxContentWidth = minWidth;
298
+ cells.forEach((cell) => {
299
+ // Create a temporary span to measure text width
300
+ const span = document.createElement('span');
301
+ span.style.visibility = 'hidden';
302
+ span.style.position = 'absolute';
303
+ span.style.whiteSpace = 'nowrap';
304
+ span.style.font = window.getComputedStyle(cell).font;
305
+ span.textContent = cell.innerText;
306
+ document.body.appendChild(span);
307
+ maxContentWidth = Math.max(maxContentWidth, span.offsetWidth + 24); // Add padding
308
+ document.body.removeChild(span);
309
+ });
310
+ // Apply constraints
311
+ maxContentWidth = Math.min(maxContentWidth, maxWidth);
312
+ setColumnWidths((prev) => {
313
+ const newWidths = { ...prev, [dataField]: maxContentWidth };
314
+ onResize?.(newWidths);
315
+ return newWidths;
316
+ });
317
+ onResizeEnd?.(dataField, maxContentWidth);
318
+ }, [enabled, autoFit, minWidth, maxWidth, onResize, onResizeEnd]);
319
+ // Get resize handle component
320
+ const getResizeHandle = useCallback((dataField, headerRef) => {
321
+ if (!enabled)
322
+ return null;
323
+ headerRefMap.current.set(dataField, headerRef);
324
+ return (_jsx(ResizeHandle, { "$isResizing": resizingColumn === dataField, "$handleColor": handleColor, "$handleHoverColor": handleHoverColor, "$handleWidth": handleWidth, onMouseDown: (e) => handleMouseDown(e, dataField, headerRef), onDoubleClick: (e) => handleDoubleClick(e, dataField), onClick: (e) => e.stopPropagation() }));
325
+ }, [
326
+ enabled,
327
+ resizingColumn,
328
+ handleColor,
329
+ handleHoverColor,
330
+ handleWidth,
331
+ handleMouseDown,
332
+ handleDoubleClick,
333
+ ]);
334
+ // Reset all widths
335
+ const resetWidths = useCallback(() => {
336
+ setColumnWidths(initialWidths);
337
+ onResize?.(initialWidths);
338
+ }, [initialWidths, onResize]);
339
+ // Set specific column width
340
+ const setColumnWidth = useCallback((dataField, width) => {
341
+ const constrainedWidth = Math.max(minWidth, Math.min(maxWidth, width));
342
+ setColumnWidths((prev) => {
343
+ const newWidths = { ...prev, [dataField]: constrainedWidth };
344
+ onResize?.(newWidths);
345
+ return newWidths;
346
+ });
347
+ }, [minWidth, maxWidth, onResize]);
348
+ return {
349
+ columnWidths,
350
+ getResizeHandle,
351
+ resetWidths,
352
+ setColumnWidth,
353
+ isResizing,
354
+ resizingColumn,
355
+ };
356
+ }
357
+ // ============================================================================
358
+ // Helper: Get column style with resize width
359
+ // ============================================================================
360
+ export function getColumnStyle(column, columnWidths, resizable, isResizing) {
361
+ const style = {};
362
+ // Use resized width if available
363
+ if (resizable && columnWidths[column.dataField]) {
364
+ style.width = columnWidths[column.dataField];
365
+ style.minWidth = columnWidths[column.dataField];
366
+ style.maxWidth = columnWidths[column.dataField];
367
+ }
368
+ else {
369
+ // Use column-defined widths
370
+ if (column.width) {
371
+ style.width = column.width;
372
+ }
373
+ if (column.minWidth) {
374
+ style.minWidth = column.minWidth;
375
+ }
376
+ if (column.maxWidth) {
377
+ style.maxWidth = column.maxWidth;
378
+ }
379
+ }
380
+ // Add smooth transition when not actively resizing (for auto-fit double-click)
381
+ if (resizable && !isResizing) {
382
+ style.transition = 'width 0.2s cubic-bezier(0.4, 0, 0.2, 1)';
383
+ }
384
+ return style;
385
+ }
386
+ export const ResizableHeaderCell = ({ children, dataField, resizable, getResizeHandle, style, className, }) => {
387
+ const headerRef = useRef(null);
388
+ return (_jsxs("th", { ref: headerRef, style: { ...style, position: 'relative' }, className: className, "data-column": dataField, children: [children, resizable && getResizeHandle(dataField, headerRef)] }));
389
+ };
390
+ // ============================================================================
391
+ // Export
392
+ // ============================================================================
393
+ export default {
394
+ useColumnResize,
395
+ getColumnStyle,
396
+ ResizeHandle,
397
+ ResizeLine,
398
+ ResizableHeaderCell,
399
+ };