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,4 +1,31 @@
1
- "use strict";import{jsx as z}from"react/jsx-runtime";import{useRef as R,useState as f,useCallback as l,useEffect as N,useMemo as Z}from"react";import{styled as G,css as u,keyframes as v}from"styled-components";const ut=v`
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Column Reorder Feature
4
+ *
5
+ * This file contains the column reordering (drag & drop) functionality for the Table component.
6
+ * It can be easily enabled/disabled via props without affecting core table logic.
7
+ *
8
+ * Features:
9
+ * - Long press on header to start dragging
10
+ * - Drag column to new position
11
+ * - Visual feedback during drag (ghost element, drop indicators)
12
+ * - Callback when columns are reordered
13
+ *
14
+ * Usage:
15
+ * <Table
16
+ * reorderable={true}
17
+ * reorderConfig={{
18
+ * longPressDelay: 200,
19
+ * onReorder: (newColumns, fromIndex, toIndex) => console.log(newColumns),
20
+ * }}
21
+ * />
22
+ */
23
+ import { useRef, useState, useCallback, useEffect, useMemo, } from 'react';
24
+ import { styled, css, keyframes } from 'styled-components';
25
+ // ============================================================================
26
+ // Animations
27
+ // ============================================================================
28
+ const shake = keyframes `
2
29
  0%, 100% { transform: translateX(0) rotate(0deg); }
3
30
  10% { transform: translateX(-2px) rotate(-0.5deg); }
4
31
  20% { transform: translateX(2px) rotate(0.5deg); }
@@ -9,7 +36,8 @@
9
36
  70% { transform: translateX(-1px) rotate(-0.2deg); }
10
37
  80% { transform: translateX(1px) rotate(0.2deg); }
11
38
  90% { transform: translateX(0) rotate(0deg); }
12
- `,tt=v`
39
+ `;
40
+ const pulse = keyframes `
13
41
  0%, 100% {
14
42
  opacity: 1;
15
43
  transform: scale(1);
@@ -18,10 +46,12 @@
18
46
  opacity: 0.7;
19
47
  transform: scale(0.98);
20
48
  }
21
- `,et=v`
49
+ `;
50
+ const float = keyframes `
22
51
  0%, 100% { transform: translate(-50%, -50%) scale(1.05) rotate(-1deg); }
23
52
  50% { transform: translate(-50%, -50%) scale(1.08) rotate(1deg); }
24
- `,rt=v`
53
+ `;
54
+ const glowPulse = keyframes `
25
55
  0%, 100% {
26
56
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3),
27
57
  0 0 0 0 rgba(59, 130, 246, 0);
@@ -30,7 +60,8 @@
30
60
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4),
31
61
  0 0 20px 4px rgba(59, 130, 246, 0.3);
32
62
  }
33
- `,ot=v`
63
+ `;
64
+ const dropIndicatorPulse = keyframes `
34
65
  0%, 100% {
35
66
  opacity: 1;
36
67
  transform: scaleY(1);
@@ -39,7 +70,8 @@
39
70
  opacity: 0.8;
40
71
  transform: scaleY(1.02);
41
72
  }
42
- `,nt=v`
73
+ `;
74
+ const slideDown = keyframes `
43
75
  from {
44
76
  transform: translateY(-10px) scaleY(0.5);
45
77
  opacity: 0;
@@ -48,14 +80,18 @@
48
80
  transform: translateY(0) scaleY(1);
49
81
  opacity: 1;
50
82
  }
51
- `;export const DragGhost=G.div`
83
+ `;
84
+ // ============================================================================
85
+ // Styled Components
86
+ // ============================================================================
87
+ export const DragGhost = styled.div `
52
88
  position: fixed;
53
- top: ${({$y:t})=>t}px;
54
- left: ${({$x:t})=>t}px;
89
+ top: ${({ $y }) => $y}px;
90
+ left: ${({ $x }) => $x}px;
55
91
  z-index: 10000;
56
92
  pointer-events: none;
57
- opacity: ${({$visible:t,$opacity:s})=>t?s:0};
58
- transform: translate(-50%, -50%) scale(${({$visible:t})=>t?1.05:.8});
93
+ opacity: ${({ $visible, $opacity }) => ($visible ? $opacity : 0)};
94
+ transform: translate(-50%, -50%) scale(${({ $visible }) => ($visible ? 1.05 : 0.8)});
59
95
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
60
96
 
61
97
  /* Glass morphism effect */
@@ -76,8 +112,9 @@
76
112
  border: 1px solid rgba(255, 255, 255, 0.2);
77
113
 
78
114
  /* Floating animation when visible */
79
- ${({$visible:t})=>t&&u`
80
- animation: ${et} 2s ease-in-out infinite, ${rt} 1.5s ease-in-out infinite;
115
+ ${({ $visible }) => $visible &&
116
+ css `
117
+ animation: ${float} 2s ease-in-out infinite, ${glowPulse} 1.5s ease-in-out infinite;
81
118
  `}
82
119
 
83
120
  /* Icon with animation */
@@ -106,34 +143,38 @@
106
143
  );
107
144
  pointer-events: none;
108
145
  }
109
- `,DropIndicator=G.div`
146
+ `;
147
+ export const DropIndicator = styled.div `
110
148
  position: absolute;
111
149
  top: -4px;
112
150
  bottom: -4px;
113
151
  width: 4px;
114
152
  z-index: 100;
115
- opacity: ${({$visible:t})=>t?1:0};
153
+ opacity: ${({ $visible }) => ($visible ? 1 : 0)};
116
154
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
117
155
  transform-origin: center;
118
156
 
119
- ${({$position:t})=>t==="left"?u`left: -2px;`:u`right: -2px;`}
157
+ ${({ $position }) => $position === 'left'
158
+ ? css `left: -2px;`
159
+ : css `right: -2px;`}
120
160
 
121
161
  /* Gradient background with glow */
122
162
  background: linear-gradient(
123
163
  to bottom,
124
164
  transparent 0%,
125
- ${({$color:t})=>t} 10%,
126
- ${({$color:t})=>t} 90%,
165
+ ${({ $color }) => $color} 10%,
166
+ ${({ $color }) => $color} 90%,
127
167
  transparent 100%
128
168
  );
129
169
  border-radius: 2px;
130
170
  box-shadow:
131
- 0 0 8px ${({$color:t})=>t},
132
- 0 0 16px ${({$color:t})=>t}80;
171
+ 0 0 8px ${({ $color }) => $color},
172
+ 0 0 16px ${({ $color }) => $color}80;
133
173
 
134
174
  /* Pulsing animation when visible */
135
- ${({$visible:t})=>t&&u`
136
- animation: ${ot} 0.8s ease-in-out infinite, ${nt} 0.2s ease-out;
175
+ ${({ $visible }) => $visible &&
176
+ css `
177
+ animation: ${dropIndicatorPulse} 0.8s ease-in-out infinite, ${slideDown} 0.2s ease-out;
137
178
  `}
138
179
 
139
180
  /* Top arrow */
@@ -147,8 +188,8 @@
147
188
  height: 0;
148
189
  border-left: 8px solid transparent;
149
190
  border-right: 8px solid transparent;
150
- border-bottom: 8px solid ${({$color:t})=>t};
151
- filter: drop-shadow(0 -2px 4px ${({$color:t})=>t}80);
191
+ border-bottom: 8px solid ${({ $color }) => $color};
192
+ filter: drop-shadow(0 -2px 4px ${({ $color }) => $color}80);
152
193
  }
153
194
 
154
195
  /* Bottom arrow */
@@ -162,17 +203,19 @@
162
203
  height: 0;
163
204
  border-left: 8px solid transparent;
164
205
  border-right: 8px solid transparent;
165
- border-top: 8px solid ${({$color:t})=>t};
166
- filter: drop-shadow(0 2px 4px ${({$color:t})=>t}80);
206
+ border-top: 8px solid ${({ $color }) => $color};
207
+ filter: drop-shadow(0 2px 4px ${({ $color }) => $color}80);
167
208
  }
168
- `,DraggableHeader=G.div`
209
+ `;
210
+ export const DraggableHeader = styled.div `
169
211
  position: relative;
170
- cursor: ${({$isDisabled:t})=>t?"default":"grab"};
212
+ cursor: ${({ $isDisabled }) => ($isDisabled ? 'default' : 'grab')};
171
213
  user-select: none;
172
214
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
173
215
 
174
216
  /* Dragging state - semi-transparent with scale */
175
- ${({$isDragging:t})=>t&&u`
217
+ ${({ $isDragging }) => $isDragging &&
218
+ css `
176
219
  opacity: 0.35;
177
220
  transform: scale(0.95);
178
221
  cursor: grabbing;
@@ -195,19 +238,22 @@
195
238
  `}
196
239
 
197
240
  /* Drag over state - highlight target */
198
- ${({$isDragOver:t,$animated:s})=>t&&u`
241
+ ${({ $isDragOver, $animated }) => $isDragOver &&
242
+ css `
199
243
  background: rgba(59, 130, 246, 0.15);
200
244
  transform: scale(1.02);
201
245
  box-shadow: inset 0 0 0 2px rgba(59, 130, 246, 0.4);
202
246
  border-radius: 4px;
203
247
 
204
- ${s&&u`
205
- animation: ${tt} 0.6s ease-in-out infinite;
248
+ ${$animated &&
249
+ css `
250
+ animation: ${pulse} 0.6s ease-in-out infinite;
206
251
  `}
207
252
  `}
208
253
 
209
254
  /* Disabled state */
210
- ${({$isDisabled:t})=>t&&u`
255
+ ${({ $isDisabled }) => $isDisabled &&
256
+ css `
211
257
  cursor: not-allowed;
212
258
  opacity: 0.6;
213
259
 
@@ -222,13 +268,263 @@
222
268
  `}
223
269
 
224
270
  &:active {
225
- cursor: ${({$isDisabled:t})=>t?"not-allowed":"grabbing"};
271
+ cursor: ${({ $isDisabled }) => ($isDisabled ? 'not-allowed' : 'grabbing')};
226
272
  }
227
273
 
228
274
  /* Hover state for grabbable columns */
229
275
  &:hover {
230
- ${({$isDisabled:t,$isDragging:s})=>!t&&!s&&u`
276
+ ${({ $isDisabled, $isDragging }) => !$isDisabled &&
277
+ !$isDragging &&
278
+ css `
231
279
  background: rgba(255, 255, 255, 0.1);
232
280
  `}
233
281
  }
234
- `;export function useColumnReorder({columns:t,config:s={},enabled:i=!0}){const{longPressDelay:p=200,onReorder:m,onDragStart:w,onDragEnd:D,disabledColumns:d=[],ghostOpacity:O=.8,dropIndicatorColor:at="#3b82f6",animated:st=!0}=s,[y,C]=f(t),[F,S]=f(!1),[g,H]=f(null),[$,j]=f(null),[x,k]=f(null),[X,L]=f({x:0,y:0}),[P,Q]=f(""),n=R(null),T=R({x:0,y:0}),b=R(!1);N(()=>{C(t)},[t]),N(()=>()=>{n.current&&clearTimeout(n.current)},[]);const E=l((e,r,a,o)=>{d.includes(e.dataField)||(b.current=!0,S(!0),H(e.dataField),j(r),L({x:a,y:o}),Q(e.headerText||e.text),w?.(e,r),document.addEventListener("mousemove",I),document.addEventListener("mouseup",q),document.addEventListener("touchmove",M,{passive:!1}),document.addEventListener("touchend",B),document.body.style.cursor="grabbing",document.body.style.userSelect="none")},[d,w]),I=l(e=>{b.current&&(L({x:e.clientX,y:e.clientY}),A(e.clientX,e.clientY))},[]),M=l(e=>{if(!b.current)return;e.preventDefault();const r=e.touches[0];L({x:r.clientX,y:r.clientY}),A(r.clientX,r.clientY)},[]),A=l((e,r)=>{const o=document.elementsFromPoint(e,r).find(c=>c.getAttribute("data-draggable")==="true");if(o){const c=o.getAttribute("data-column");c&&c!==g&&k(c)}else k(null)},[g]),Y=l(()=>{if(!b.current)return;if(b.current=!1,g&&x&&$!==null){const r=$,a=y.findIndex(o=>o.dataField===x);if(r!==a&&a!==-1){const o=[...y],[c]=o.splice(r,1);o.splice(a,0,c),C(o),m?.(o,r,a)}}const e=y.find(r=>r.dataField===g);e&&$!==null&&D?.(e,$),S(!1),H(null),j(null),k(null),document.removeEventListener("mousemove",I),document.removeEventListener("mouseup",q),document.removeEventListener("touchmove",M),document.removeEventListener("touchend",B),document.body.style.cursor="",document.body.style.userSelect=""},[g,x,$,y,m,D,I,M]),q=l(()=>{n.current&&(clearTimeout(n.current),n.current=null),Y()},[Y]),B=l(()=>{n.current&&(clearTimeout(n.current),n.current=null),Y()},[Y]),U=l((e,r,a)=>{if(!i||d.includes(r.dataField))return;e.preventDefault(),T.current={x:e.clientX,y:e.clientY},n.current=setTimeout(()=>{E(r,a,e.clientX,e.clientY)},p);const o=h=>{const J=h.clientX-T.current.x,K=h.clientY-T.current.y;Math.sqrt(J*J+K*K)>10&&(n.current&&(clearTimeout(n.current),n.current=null),document.removeEventListener("mousemove",o))};document.addEventListener("mousemove",o);const c=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",c),n.current&&!b.current&&(clearTimeout(n.current),n.current=null)};document.addEventListener("mouseup",c)},[i,d,p,E]),_=l((e,r,a)=>{if(!i||d.includes(r.dataField))return;const o=e.touches[0];T.current={x:o.clientX,y:o.clientY},n.current=setTimeout(()=>{E(r,a,o.clientX,o.clientY)},p)},[i,d,p,E]),V=l((e,r)=>{const a=d.includes(e.dataField),o=g===e.dataField,c=x===e.dataField;return{onMouseDown:h=>U(h,e,r),onTouchStart:h=>_(h,e,r),"data-draggable":i&&!a,"data-dragging":o,"data-drag-over":c,style:{cursor:i&&!a?"grab":"default",opacity:o?.4:1,transition:"opacity 0.2s ease"}}},[i,d,g,x,U,_]),W=l(()=>{C(t)},[t]),it=Z(()=>z(DragGhost,{$visible:F,$x:X.x,$y:X.y,$opacity:O,children:P}),[F,X,O,P]);return{orderedColumns:y,getDragHandleProps:V,isDragging:F,draggedColumn:g,dragOverColumn:x,ghostPosition:X,ghostText:P,resetOrder:W}}export const ColumnReorderGhost=({visible:t,x:s,y:i,text:p,opacity:m=.8})=>z(DragGhost,{$visible:t,$x:s,$y:i,$opacity:m,children:p}),ColumnDropIndicator=({visible:t,position:s,color:i="#3b82f6"})=>z(DropIndicator,{$visible:t,$position:s,$color:i});export function getReorderableHeaderProps(t,s,i,p,m,w){const D=i(t,s),d=p&&w===t.dataField&&m!==t.dataField;return{wrapperProps:D,showDropIndicator:d,dropPosition:"left"}}export default{useColumnReorder,DragGhost,DropIndicator,DraggableHeader,ColumnReorderGhost,ColumnDropIndicator,getReorderableHeaderProps};
282
+ `;
283
+ // ============================================================================
284
+ // Hook: useColumnReorder
285
+ // ============================================================================
286
+ export function useColumnReorder({ columns, config = {}, enabled = true, }) {
287
+ const { longPressDelay = 200, onReorder, onDragStart, onDragEnd, disabledColumns = [], ghostOpacity = 0.8, dropIndicatorColor = '#3b82f6', animated = true, } = config;
288
+ // State
289
+ const [orderedColumns, setOrderedColumns] = useState(columns);
290
+ const [isDragging, setIsDragging] = useState(false);
291
+ const [draggedColumn, setDraggedColumn] = useState(null);
292
+ const [draggedIndex, setDraggedIndex] = useState(null);
293
+ const [dragOverColumn, setDragOverColumn] = useState(null);
294
+ const [ghostPosition, setGhostPosition] = useState({ x: 0, y: 0 });
295
+ const [ghostText, setGhostText] = useState('');
296
+ // Refs
297
+ const longPressTimerRef = useRef(null);
298
+ const startPosRef = useRef({ x: 0, y: 0 });
299
+ const isDraggingRef = useRef(false);
300
+ // Update ordered columns when columns prop changes
301
+ useEffect(() => {
302
+ setOrderedColumns(columns);
303
+ }, [columns]);
304
+ // Cleanup on unmount
305
+ useEffect(() => {
306
+ return () => {
307
+ if (longPressTimerRef.current) {
308
+ clearTimeout(longPressTimerRef.current);
309
+ }
310
+ };
311
+ }, []);
312
+ // Start drag after long press
313
+ const startDrag = useCallback((column, index, x, y) => {
314
+ if (disabledColumns.includes(column.dataField))
315
+ return;
316
+ isDraggingRef.current = true;
317
+ setIsDragging(true);
318
+ setDraggedColumn(column.dataField);
319
+ setDraggedIndex(index);
320
+ setGhostPosition({ x, y });
321
+ setGhostText(column.headerText || column.text);
322
+ onDragStart?.(column, index);
323
+ // Add global event listeners
324
+ document.addEventListener('mousemove', handleMouseMove);
325
+ document.addEventListener('mouseup', handleMouseUp);
326
+ document.addEventListener('touchmove', handleTouchMove, { passive: false });
327
+ document.addEventListener('touchend', handleTouchEnd);
328
+ document.body.style.cursor = 'grabbing';
329
+ document.body.style.userSelect = 'none';
330
+ }, [disabledColumns, onDragStart]);
331
+ // Handle mouse/touch move during drag
332
+ const handleMouseMove = useCallback((e) => {
333
+ if (!isDraggingRef.current)
334
+ return;
335
+ setGhostPosition({ x: e.clientX, y: e.clientY });
336
+ updateDragOver(e.clientX, e.clientY);
337
+ }, []);
338
+ const handleTouchMove = useCallback((e) => {
339
+ if (!isDraggingRef.current)
340
+ return;
341
+ e.preventDefault();
342
+ const touch = e.touches[0];
343
+ setGhostPosition({ x: touch.clientX, y: touch.clientY });
344
+ updateDragOver(touch.clientX, touch.clientY);
345
+ }, []);
346
+ // Update which column we're hovering over
347
+ const updateDragOver = useCallback((x, y) => {
348
+ const elements = document.elementsFromPoint(x, y);
349
+ const headerCell = elements.find((el) => el.getAttribute('data-draggable') === 'true');
350
+ if (headerCell) {
351
+ const dataField = headerCell.getAttribute('data-column');
352
+ if (dataField && dataField !== draggedColumn) {
353
+ setDragOverColumn(dataField);
354
+ }
355
+ }
356
+ else {
357
+ setDragOverColumn(null);
358
+ }
359
+ }, [draggedColumn]);
360
+ // End drag
361
+ const endDrag = useCallback(() => {
362
+ if (!isDraggingRef.current)
363
+ return;
364
+ isDraggingRef.current = false;
365
+ // Find the target index
366
+ if (draggedColumn && dragOverColumn && draggedIndex !== null) {
367
+ const fromIndex = draggedIndex;
368
+ const toIndex = orderedColumns.findIndex((c) => c.dataField === dragOverColumn);
369
+ if (fromIndex !== toIndex && toIndex !== -1) {
370
+ const newColumns = [...orderedColumns];
371
+ const [removed] = newColumns.splice(fromIndex, 1);
372
+ newColumns.splice(toIndex, 0, removed);
373
+ setOrderedColumns(newColumns);
374
+ onReorder?.(newColumns, fromIndex, toIndex);
375
+ }
376
+ }
377
+ // Get the column for callback
378
+ const column = orderedColumns.find((c) => c.dataField === draggedColumn);
379
+ if (column && draggedIndex !== null) {
380
+ onDragEnd?.(column, draggedIndex);
381
+ }
382
+ // Reset state
383
+ setIsDragging(false);
384
+ setDraggedColumn(null);
385
+ setDraggedIndex(null);
386
+ setDragOverColumn(null);
387
+ // Remove global event listeners
388
+ document.removeEventListener('mousemove', handleMouseMove);
389
+ document.removeEventListener('mouseup', handleMouseUp);
390
+ document.removeEventListener('touchmove', handleTouchMove);
391
+ document.removeEventListener('touchend', handleTouchEnd);
392
+ document.body.style.cursor = '';
393
+ document.body.style.userSelect = '';
394
+ }, [
395
+ draggedColumn,
396
+ dragOverColumn,
397
+ draggedIndex,
398
+ orderedColumns,
399
+ onReorder,
400
+ onDragEnd,
401
+ handleMouseMove,
402
+ handleTouchMove,
403
+ ]);
404
+ const handleMouseUp = useCallback(() => {
405
+ if (longPressTimerRef.current) {
406
+ clearTimeout(longPressTimerRef.current);
407
+ longPressTimerRef.current = null;
408
+ }
409
+ endDrag();
410
+ }, [endDrag]);
411
+ const handleTouchEnd = useCallback(() => {
412
+ if (longPressTimerRef.current) {
413
+ clearTimeout(longPressTimerRef.current);
414
+ longPressTimerRef.current = null;
415
+ }
416
+ endDrag();
417
+ }, [endDrag]);
418
+ // Mouse down handler - starts long press timer
419
+ const handleMouseDown = useCallback((e, column, index) => {
420
+ if (!enabled || disabledColumns.includes(column.dataField))
421
+ return;
422
+ e.preventDefault();
423
+ startPosRef.current = { x: e.clientX, y: e.clientY };
424
+ // Start long press timer
425
+ longPressTimerRef.current = setTimeout(() => {
426
+ startDrag(column, index, e.clientX, e.clientY);
427
+ }, longPressDelay);
428
+ // Add mouse move listener to cancel if moved too much
429
+ const handleEarlyMove = (moveEvent) => {
430
+ const dx = moveEvent.clientX - startPosRef.current.x;
431
+ const dy = moveEvent.clientY - startPosRef.current.y;
432
+ if (Math.sqrt(dx * dx + dy * dy) > 10) {
433
+ if (longPressTimerRef.current) {
434
+ clearTimeout(longPressTimerRef.current);
435
+ longPressTimerRef.current = null;
436
+ }
437
+ document.removeEventListener('mousemove', handleEarlyMove);
438
+ }
439
+ };
440
+ document.addEventListener('mousemove', handleEarlyMove);
441
+ // Cleanup early move listener on mouse up
442
+ const cleanup = () => {
443
+ document.removeEventListener('mousemove', handleEarlyMove);
444
+ document.removeEventListener('mouseup', cleanup);
445
+ if (longPressTimerRef.current && !isDraggingRef.current) {
446
+ clearTimeout(longPressTimerRef.current);
447
+ longPressTimerRef.current = null;
448
+ }
449
+ };
450
+ document.addEventListener('mouseup', cleanup);
451
+ }, [enabled, disabledColumns, longPressDelay, startDrag]);
452
+ // Touch start handler
453
+ const handleTouchStart = useCallback((e, column, index) => {
454
+ if (!enabled || disabledColumns.includes(column.dataField))
455
+ return;
456
+ const touch = e.touches[0];
457
+ startPosRef.current = { x: touch.clientX, y: touch.clientY };
458
+ // Start long press timer
459
+ longPressTimerRef.current = setTimeout(() => {
460
+ startDrag(column, index, touch.clientX, touch.clientY);
461
+ }, longPressDelay);
462
+ }, [enabled, disabledColumns, longPressDelay, startDrag]);
463
+ // Get drag handle props for a column header
464
+ const getDragHandleProps = useCallback((column, index) => {
465
+ const isDisabled = disabledColumns.includes(column.dataField);
466
+ const isThisDragging = draggedColumn === column.dataField;
467
+ const isThisDragOver = dragOverColumn === column.dataField;
468
+ return {
469
+ onMouseDown: (e) => handleMouseDown(e, column, index),
470
+ onTouchStart: (e) => handleTouchStart(e, column, index),
471
+ 'data-draggable': enabled && !isDisabled,
472
+ 'data-dragging': isThisDragging,
473
+ 'data-drag-over': isThisDragOver,
474
+ style: {
475
+ cursor: enabled && !isDisabled ? 'grab' : 'default',
476
+ opacity: isThisDragging ? 0.4 : 1,
477
+ transition: 'opacity 0.2s ease',
478
+ },
479
+ };
480
+ }, [
481
+ enabled,
482
+ disabledColumns,
483
+ draggedColumn,
484
+ dragOverColumn,
485
+ handleMouseDown,
486
+ handleTouchStart,
487
+ ]);
488
+ // Reset column order
489
+ const resetOrder = useCallback(() => {
490
+ setOrderedColumns(columns);
491
+ }, [columns]);
492
+ // Render ghost element (called from Table component)
493
+ const GhostElement = useMemo(() => (_jsx(DragGhost, { "$visible": isDragging, "$x": ghostPosition.x, "$y": ghostPosition.y, "$opacity": ghostOpacity, children: ghostText })), [isDragging, ghostPosition, ghostOpacity, ghostText]);
494
+ return {
495
+ orderedColumns,
496
+ getDragHandleProps,
497
+ isDragging,
498
+ draggedColumn,
499
+ dragOverColumn,
500
+ ghostPosition,
501
+ ghostText,
502
+ resetOrder,
503
+ };
504
+ }
505
+ export const ColumnReorderGhost = ({ visible, x, y, text, opacity = 0.8, }) => (_jsx(DragGhost, { "$visible": visible, "$x": x, "$y": y, "$opacity": opacity, children: text }));
506
+ export const ColumnDropIndicator = ({ visible, position, color = '#3b82f6', }) => _jsx(DropIndicator, { "$visible": visible, "$position": position, "$color": color });
507
+ // ============================================================================
508
+ // Helper: Get header cell wrapper props
509
+ // ============================================================================
510
+ export function getReorderableHeaderProps(column, index, getDragHandleProps, isDragging, draggedColumn, dragOverColumn) {
511
+ const wrapperProps = getDragHandleProps(column, index);
512
+ const showDropIndicator = isDragging && dragOverColumn === column.dataField && draggedColumn !== column.dataField;
513
+ return {
514
+ wrapperProps,
515
+ showDropIndicator,
516
+ dropPosition: 'left', // Always show on left side
517
+ };
518
+ }
519
+ // ============================================================================
520
+ // Export
521
+ // ============================================================================
522
+ export default {
523
+ useColumnReorder,
524
+ DragGhost,
525
+ DropIndicator,
526
+ DraggableHeader,
527
+ ColumnReorderGhost,
528
+ ColumnDropIndicator,
529
+ getReorderableHeaderProps,
530
+ };