react-restyle-components 0.4.47 → 0.4.49

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 (234) 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.d.ts +3 -1
  82. package/lib/src/core-components/src/components/Modal/BasicModal/modal.component.js +123 -1
  83. package/lib/src/core-components/src/components/Modal/index.js +2 -1
  84. package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +147 -1
  85. package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +12 -1
  86. package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +40 -1
  87. package/lib/src/core-components/src/components/Picker/index.js +2 -1
  88. package/lib/src/core-components/src/components/Selection/index.js +4 -1
  89. package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +49 -1
  90. package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +58 -1
  91. package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +43 -1
  92. package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +87 -1
  93. package/lib/src/core-components/src/components/Skeleton/Skeleton.js +51 -1
  94. package/lib/src/core-components/src/components/Skeleton/elements.js +143 -54
  95. package/lib/src/core-components/src/components/Skeleton/index.js +2 -1
  96. package/lib/src/core-components/src/components/Skeleton/types.js +4 -1
  97. package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +128 -1
  98. package/lib/src/core-components/src/components/SpeedDial/elements.js +132 -62
  99. package/lib/src/core-components/src/components/SpeedDial/index.js +2 -1
  100. package/lib/src/core-components/src/components/SpeedDial/types.js +3 -1
  101. package/lib/src/core-components/src/components/Stepper2/stepper.component.js +139 -1
  102. package/lib/src/core-components/src/components/Switch/Switch.js +26 -1
  103. package/lib/src/core-components/src/components/Switch/elements.js +103 -34
  104. package/lib/src/core-components/src/components/Switch/index.js +2 -1
  105. package/lib/src/core-components/src/components/Switch/types.js +3 -1
  106. package/lib/src/core-components/src/components/Table/Table.js +1526 -1
  107. package/lib/src/core-components/src/components/Table/columnReorder.js +332 -36
  108. package/lib/src/core-components/src/components/Table/columnResize.js +284 -21
  109. package/lib/src/core-components/src/components/Table/elements.js +277 -173
  110. package/lib/src/core-components/src/components/Table/filters.js +555 -30
  111. package/lib/src/core-components/src/components/Table/hooks.js +536 -2
  112. package/lib/src/core-components/src/components/Table/index.js +6 -1
  113. package/lib/src/core-components/src/components/Table/types.js +1 -1
  114. package/lib/src/core-components/src/components/Tabs/tabs.component.js +22 -1
  115. package/lib/src/core-components/src/components/Tags1/Tags.component.js +118 -1
  116. package/lib/src/core-components/src/components/Tags1/types.js +20 -1
  117. package/lib/src/core-components/src/components/Timer1/timer.component.js +76 -1
  118. package/lib/src/core-components/src/components/Toast/Toast.js +50 -1
  119. package/lib/src/core-components/src/components/Toast/elements.js +122 -41
  120. package/lib/src/core-components/src/components/Toast/index.js +2 -1
  121. package/lib/src/core-components/src/components/Toast/types.js +9 -1
  122. package/lib/src/core-components/src/components/Tooltip/Tooltip.js +200 -1
  123. package/lib/src/core-components/src/components/Tooltip/elements.js +117 -55
  124. package/lib/src/core-components/src/components/Tooltip/index.js +2 -1
  125. package/lib/src/core-components/src/components/Tooltip/types.js +17 -1
  126. package/lib/src/core-components/src/components/Tooltip/utils.js +140 -1
  127. package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +303 -1
  128. package/lib/src/core-components/src/components/TreeSelect/elements.js +216 -117
  129. package/lib/src/core-components/src/components/TreeSelect/hooks.js +252 -1
  130. package/lib/src/core-components/src/components/TreeSelect/index.js +3 -1
  131. package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
  132. package/lib/src/core-components/src/components/ag-grid/AgGrid.js +1057 -1
  133. package/lib/src/core-components/src/components/ag-grid/elements.js +790 -396
  134. package/lib/src/core-components/src/components/ag-grid/hooks.js +1220 -4
  135. package/lib/src/core-components/src/components/ag-grid/index.js +15 -1
  136. package/lib/src/core-components/src/components/ag-grid/types.js +6 -1
  137. package/lib/src/core-components/src/components/index.js +31 -1
  138. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +7 -1
  139. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +48 -5
  140. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +70 -1
  141. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +50 -1
  142. package/lib/src/core-components/src/core-components/Avatar.js +33 -4
  143. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +10 -1
  144. package/lib/src/core-components/src/core-components/CoreButton/elements.js +176 -67
  145. package/lib/src/core-components/src/core-components/CoreButton/index.js +3 -1
  146. package/lib/src/core-components/src/core-components/CoreButton/types.js +6 -1
  147. package/lib/src/core-components/src/core-components/CoreButton/utils.js +12 -1
  148. package/lib/src/core-components/src/core-components/Divider/Divider.js +19 -4
  149. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  150. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  151. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +33 -10
  152. package/lib/src/core-components/src/core-components/StateLayer.js +5 -3
  153. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +50 -25
  154. package/lib/src/core-components/src/core-components/ToggleCore/index.js +2 -1
  155. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +14 -1
  156. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +22 -1
  157. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +21 -1
  158. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +19 -1
  159. package/lib/src/core-components/src/core-components/index.js +3 -1
  160. package/lib/src/core-components/src/helpers/constants.js +11 -1
  161. package/lib/src/core-components/src/hooks/index.js +1 -1
  162. package/lib/src/core-components/src/hooks/outside.hook.js +28 -1
  163. package/lib/src/core-components/src/index.js +12 -1
  164. package/lib/src/core-components/src/tc.global.css +3 -0
  165. package/lib/src/core-components/src/tc.module.css +1 -1
  166. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +28 -1
  167. package/lib/src/core-components/src/utils/abstracts/colors/index.js +49 -1
  168. package/lib/src/core-components/src/utils/abstracts/index.js +5 -1
  169. package/lib/src/core-components/src/utils/abstracts/space/index.js +26 -1
  170. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +8 -1
  171. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +30 -1
  172. package/lib/src/core-components/src/utils/abstracts/theme/index.js +3 -1
  173. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +30 -1
  174. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  175. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +17 -1
  176. package/lib/src/core-components/src/utils/abstracts/typography/index.js +25 -1
  177. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +8 -1
  178. package/lib/src/core-components/src/utils/context/InternalProvider.js +24 -1
  179. package/lib/src/core-components/src/utils/context/index.js +2 -1
  180. package/lib/src/core-components/src/utils/designTokens.js +128 -1
  181. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +23 -1
  182. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +11 -1
  183. package/lib/src/core-components/src/utils/helpers/getChildByType.js +3 -1
  184. package/lib/src/core-components/src/utils/helpers/index.js +5 -1
  185. package/lib/src/core-components/src/utils/helpers/isComponentType.js +16 -1
  186. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +12 -1
  187. package/lib/src/core-components/src/utils/hooks/index.js +18 -1
  188. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +18 -1
  189. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +17 -1
  190. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +12 -1
  191. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +20 -1
  192. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +40 -1
  193. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +10 -1
  194. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +24 -1
  195. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +16 -1
  196. package/lib/src/core-components/src/utils/hooks/useHoverState.js +36 -1
  197. package/lib/src/core-components/src/utils/hooks/useId.js +7 -1
  198. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +11 -1
  199. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +16 -1
  200. package/lib/src/core-components/src/utils/hooks/useOverflow.js +22 -1
  201. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +5 -1
  202. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +18 -1
  203. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +30 -1
  204. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +23 -1
  205. package/lib/src/core-components/src/utils/index.js +9 -1
  206. package/lib/src/core-components/src/utils/stories/Wrappers.js +23 -8
  207. package/lib/src/core-components/src/utils/stories/cleanProps.js +5 -1
  208. package/lib/src/core-components/src/utils/stories/index.js +4 -1
  209. package/lib/src/core-components/src/utils/stories/sleep.js +4 -1
  210. package/lib/src/core-components/src/utils/stories/view-ports.js +50 -1
  211. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +5 -1
  212. package/lib/src/core-components/src/utils/styling/createGridContainer.js +12 -6
  213. package/lib/src/core-components/src/utils/styling/createTransition.js +7 -2
  214. package/lib/src/core-components/src/utils/styling/forwardProps.js +10 -1
  215. package/lib/src/core-components/src/utils/styling/index.js +5 -1
  216. package/lib/src/core-components/src/utils/styling/pxToRem.js +6 -1
  217. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +3 -1
  218. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  219. package/lib/src/core-components/src/utils/utility.util.js +14 -1
  220. package/lib/src/core-components/tailwind.config.js +233 -1
  221. package/lib/src/core-hooks/index.js +3 -1
  222. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +46 -1
  223. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +30 -1
  224. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +8 -1
  225. package/lib/src/core-utils/index.js +7 -1
  226. package/lib/src/core-utils/src/calculation/calculation.util.js +89 -1
  227. package/lib/src/core-utils/src/colors/color.util.js +15 -1
  228. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +145 -1
  229. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +5 -1
  230. package/lib/src/core-utils/src/form-helper/form-helper.util.js +82 -1
  231. package/lib/src/core-utils/src/index.js +7 -1
  232. package/lib/src/core-utils/src/utility/utility.util.js +12 -1
  233. package/lib/src/core-utils/src/uuid/uuid.util.js +8 -1
  234. 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
+ };