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,19 +1,174 @@
1
- "use strict";import{styled as e,css as t,keyframes as n}from"styled-components";const a={alpine:{backgroundColor:"#ffffff",headerBackgroundColor:"#f8f8f8",oddRowBackgroundColor:"#fcfcfc",borderColor:"#dde2eb",selectedRowBackgroundColor:"#b7e4ff",hoverRowBackgroundColor:"#ecf0f1",textColor:"#181d1f",headerTextColor:"#181d1f",accentColor:"#2196f3",cellPadding:"0 12px",headerPadding:"0 12px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',fontSize:"13px",headerFontSize:"13px",headerFontWeight:"600",borderRadius:"0",cellBorderWidth:"1px"},"alpine-dark":{backgroundColor:"#181d1f",headerBackgroundColor:"#222628",oddRowBackgroundColor:"#1f2426",borderColor:"#3d4749",selectedRowBackgroundColor:"#005880",hoverRowBackgroundColor:"#2d3436",textColor:"#f0f0f0",headerTextColor:"#f0f0f0",accentColor:"#2196f3",cellPadding:"0 12px",headerPadding:"0 12px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',fontSize:"13px",headerFontSize:"13px",headerFontWeight:"600",borderRadius:"0",cellBorderWidth:"1px"},balham:{backgroundColor:"#ffffff",headerBackgroundColor:"#f5f7f7",oddRowBackgroundColor:"#fcfdfd",borderColor:"#bdc3c7",selectedRowBackgroundColor:"#b7e4ff",hoverRowBackgroundColor:"#ecf0f1",textColor:"#000000",headerTextColor:"#000000",accentColor:"#0091ea",cellPadding:"0 4px",headerPadding:"0 4px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',fontSize:"12px",headerFontSize:"12px",headerFontWeight:"600",borderRadius:"0",cellBorderWidth:"1px"},"balham-dark":{backgroundColor:"#2d3436",headerBackgroundColor:"#1e272c",oddRowBackgroundColor:"#32393c",borderColor:"#424a4d",selectedRowBackgroundColor:"#005880",hoverRowBackgroundColor:"#3d4749",textColor:"#f0f0f0",headerTextColor:"#f0f0f0",accentColor:"#0091ea",cellPadding:"0 4px",headerPadding:"0 4px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',fontSize:"12px",headerFontSize:"12px",headerFontWeight:"600",borderRadius:"0",cellBorderWidth:"1px"},material:{backgroundColor:"#ffffff",headerBackgroundColor:"#fafafa",oddRowBackgroundColor:"#ffffff",borderColor:"#e0e0e0",selectedRowBackgroundColor:"#e3f2fd",hoverRowBackgroundColor:"#f5f5f5",textColor:"rgba(0, 0, 0, 0.87)",headerTextColor:"rgba(0, 0, 0, 0.54)",accentColor:"#3f51b5",cellPadding:"0 24px 0 24px",headerPadding:"0 24px 0 24px",fontFamily:'Roboto, "Helvetica Neue", sans-serif',fontSize:"14px",headerFontSize:"12px",headerFontWeight:"500",borderRadius:"0",cellBorderWidth:"1px"},quartz:{backgroundColor:"#ffffff",headerBackgroundColor:"#ffffff",oddRowBackgroundColor:"#fafafa",borderColor:"#e2e8f0",selectedRowBackgroundColor:"#dbeafe",hoverRowBackgroundColor:"#f1f5f9",textColor:"#1e293b",headerTextColor:"#475569",accentColor:"#3b82f6",cellPadding:"0 16px",headerPadding:"0 16px",fontFamily:'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",headerFontSize:"12px",headerFontWeight:"600",borderRadius:"8px",cellBorderWidth:"1px"},"quartz-dark":{backgroundColor:"#0f172a",headerBackgroundColor:"#1e293b",oddRowBackgroundColor:"#1e293b",borderColor:"#334155",selectedRowBackgroundColor:"#1e3a5f",hoverRowBackgroundColor:"#334155",textColor:"#e2e8f0",headerTextColor:"#94a3b8",accentColor:"#3b82f6",cellPadding:"0 16px",headerPadding:"0 16px",fontFamily:'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",headerFontSize:"12px",headerFontWeight:"600",borderRadius:"8px",cellBorderWidth:"1px"}};export const getTheme=(o,r)=>({...a[o],...r});const i=n`
1
+ /**
2
+ * AG Grid Styled Components
3
+ * Beautiful, responsive styled components for the AG Grid-like table
4
+ */
5
+ import { styled, css, keyframes } from 'styled-components';
6
+ // ============================================================================
7
+ // Theme Definitions
8
+ // ============================================================================
9
+ const themes = {
10
+ alpine: {
11
+ backgroundColor: '#ffffff',
12
+ headerBackgroundColor: '#f8f8f8',
13
+ oddRowBackgroundColor: '#fcfcfc',
14
+ borderColor: '#dde2eb',
15
+ selectedRowBackgroundColor: '#b7e4ff',
16
+ hoverRowBackgroundColor: '#ecf0f1',
17
+ textColor: '#181d1f',
18
+ headerTextColor: '#181d1f',
19
+ accentColor: '#2196f3',
20
+ cellPadding: '0 12px',
21
+ headerPadding: '0 12px',
22
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
23
+ fontSize: '13px',
24
+ headerFontSize: '13px',
25
+ headerFontWeight: '600',
26
+ borderRadius: '0',
27
+ cellBorderWidth: '1px',
28
+ },
29
+ 'alpine-dark': {
30
+ backgroundColor: '#181d1f',
31
+ headerBackgroundColor: '#222628',
32
+ oddRowBackgroundColor: '#1f2426',
33
+ borderColor: '#3d4749',
34
+ selectedRowBackgroundColor: '#005880',
35
+ hoverRowBackgroundColor: '#2d3436',
36
+ textColor: '#f0f0f0',
37
+ headerTextColor: '#f0f0f0',
38
+ accentColor: '#2196f3',
39
+ cellPadding: '0 12px',
40
+ headerPadding: '0 12px',
41
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
42
+ fontSize: '13px',
43
+ headerFontSize: '13px',
44
+ headerFontWeight: '600',
45
+ borderRadius: '0',
46
+ cellBorderWidth: '1px',
47
+ },
48
+ balham: {
49
+ backgroundColor: '#ffffff',
50
+ headerBackgroundColor: '#f5f7f7',
51
+ oddRowBackgroundColor: '#fcfdfd',
52
+ borderColor: '#bdc3c7',
53
+ selectedRowBackgroundColor: '#b7e4ff',
54
+ hoverRowBackgroundColor: '#ecf0f1',
55
+ textColor: '#000000',
56
+ headerTextColor: '#000000',
57
+ accentColor: '#0091ea',
58
+ cellPadding: '0 4px',
59
+ headerPadding: '0 4px',
60
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
61
+ fontSize: '12px',
62
+ headerFontSize: '12px',
63
+ headerFontWeight: '600',
64
+ borderRadius: '0',
65
+ cellBorderWidth: '1px',
66
+ },
67
+ 'balham-dark': {
68
+ backgroundColor: '#2d3436',
69
+ headerBackgroundColor: '#1e272c',
70
+ oddRowBackgroundColor: '#32393c',
71
+ borderColor: '#424a4d',
72
+ selectedRowBackgroundColor: '#005880',
73
+ hoverRowBackgroundColor: '#3d4749',
74
+ textColor: '#f0f0f0',
75
+ headerTextColor: '#f0f0f0',
76
+ accentColor: '#0091ea',
77
+ cellPadding: '0 4px',
78
+ headerPadding: '0 4px',
79
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
80
+ fontSize: '12px',
81
+ headerFontSize: '12px',
82
+ headerFontWeight: '600',
83
+ borderRadius: '0',
84
+ cellBorderWidth: '1px',
85
+ },
86
+ material: {
87
+ backgroundColor: '#ffffff',
88
+ headerBackgroundColor: '#fafafa',
89
+ oddRowBackgroundColor: '#ffffff',
90
+ borderColor: '#e0e0e0',
91
+ selectedRowBackgroundColor: '#e3f2fd',
92
+ hoverRowBackgroundColor: '#f5f5f5',
93
+ textColor: 'rgba(0, 0, 0, 0.87)',
94
+ headerTextColor: 'rgba(0, 0, 0, 0.54)',
95
+ accentColor: '#3f51b5',
96
+ cellPadding: '0 24px 0 24px',
97
+ headerPadding: '0 24px 0 24px',
98
+ fontFamily: 'Roboto, "Helvetica Neue", sans-serif',
99
+ fontSize: '14px',
100
+ headerFontSize: '12px',
101
+ headerFontWeight: '500',
102
+ borderRadius: '0',
103
+ cellBorderWidth: '1px',
104
+ },
105
+ quartz: {
106
+ backgroundColor: '#ffffff',
107
+ headerBackgroundColor: '#ffffff',
108
+ oddRowBackgroundColor: '#fafafa',
109
+ borderColor: '#e2e8f0',
110
+ selectedRowBackgroundColor: '#dbeafe',
111
+ hoverRowBackgroundColor: '#f1f5f9',
112
+ textColor: '#1e293b',
113
+ headerTextColor: '#475569',
114
+ accentColor: '#3b82f6',
115
+ cellPadding: '0 16px',
116
+ headerPadding: '0 16px',
117
+ fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
118
+ fontSize: '14px',
119
+ headerFontSize: '12px',
120
+ headerFontWeight: '600',
121
+ borderRadius: '8px',
122
+ cellBorderWidth: '1px',
123
+ },
124
+ 'quartz-dark': {
125
+ backgroundColor: '#0f172a',
126
+ headerBackgroundColor: '#1e293b',
127
+ oddRowBackgroundColor: '#1e293b',
128
+ borderColor: '#334155',
129
+ selectedRowBackgroundColor: '#1e3a5f',
130
+ hoverRowBackgroundColor: '#334155',
131
+ textColor: '#e2e8f0',
132
+ headerTextColor: '#94a3b8',
133
+ accentColor: '#3b82f6',
134
+ cellPadding: '0 16px',
135
+ headerPadding: '0 16px',
136
+ fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
137
+ fontSize: '14px',
138
+ headerFontSize: '12px',
139
+ headerFontWeight: '600',
140
+ borderRadius: '8px',
141
+ cellBorderWidth: '1px',
142
+ },
143
+ };
144
+ export const getTheme = (variant, custom) => ({
145
+ ...themes[variant],
146
+ ...custom,
147
+ });
148
+ // ============================================================================
149
+ // Animations
150
+ // ============================================================================
151
+ const fadeIn = keyframes `
2
152
  from { opacity: 0; }
3
153
  to { opacity: 1; }
4
- `,s=n`
154
+ `;
155
+ const slideInRight = keyframes `
5
156
  from { transform: translateX(10px); opacity: 0; }
6
157
  to { transform: translateX(0); opacity: 1; }
7
- `,h=n`
158
+ `;
159
+ const pulse = keyframes `
8
160
  0%, 100% { opacity: 1; }
9
161
  50% { opacity: 0.5; }
10
- `,x=n`
162
+ `;
163
+ const shimmer = keyframes `
11
164
  0% { background-position: -200% 0; }
12
165
  100% { background-position: 200% 0; }
13
- `,g=n`
166
+ `;
167
+ const spin = keyframes `
14
168
  from { transform: rotate(0deg); }
15
169
  to { transform: rotate(360deg); }
16
- `,b=n`
170
+ `;
171
+ const rowEnter = keyframes `
17
172
  from {
18
173
  opacity: 0;
19
174
  transform: translateY(-4px);
@@ -22,20 +177,25 @@
22
177
  opacity: 1;
23
178
  transform: translateY(0);
24
179
  }
25
- `,f=n`
180
+ `;
181
+ const cellFlash = keyframes `
26
182
  0% { background-color: rgba(76, 175, 80, 0.4); }
27
183
  100% { background-color: transparent; }
28
- `;export const GridRoot=e.div`
184
+ `;
185
+ // ============================================================================
186
+ // Grid Container
187
+ // ============================================================================
188
+ export const GridRoot = styled.div `
29
189
  display: flex;
30
190
  flex-direction: column;
31
191
  width: 100%;
32
192
  height: 100%;
33
- background-color: ${({$theme:o})=>o.backgroundColor};
34
- font-family: ${({$theme:o})=>o.fontFamily};
35
- font-size: ${({$theme:o})=>o.fontSize};
36
- color: ${({$theme:o})=>o.textColor};
37
- border: 1px solid ${({$theme:o})=>o.borderColor};
38
- border-radius: ${({$theme:o})=>o.borderRadius};
193
+ background-color: ${({ $theme }) => $theme.backgroundColor};
194
+ font-family: ${({ $theme }) => $theme.fontFamily};
195
+ font-size: ${({ $theme }) => $theme.fontSize};
196
+ color: ${({ $theme }) => $theme.textColor};
197
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
198
+ border-radius: ${({ $theme }) => $theme.borderRadius};
39
199
  overflow: hidden;
40
200
  position: relative;
41
201
 
@@ -44,27 +204,33 @@
44
204
  }
45
205
 
46
206
  /* Responsive styles */
47
- ${({$responsive:o})=>o&&t`
207
+ ${({ $responsive }) => $responsive &&
208
+ css `
48
209
  @media (max-width: 768px) {
49
210
  border-radius: 0;
50
211
  border-left: none;
51
212
  border-right: none;
52
213
  }
53
214
  `}
54
- `,GridWrapper=e.div`
215
+ `;
216
+ export const GridWrapper = styled.div `
55
217
  display: flex;
56
218
  flex-direction: column;
57
219
  flex: 1;
58
220
  min-height: 0;
59
221
  overflow: hidden;
60
- `,GridToolbar=e.div`
222
+ `;
223
+ // ============================================================================
224
+ // Toolbar / Header Area
225
+ // ============================================================================
226
+ export const GridToolbar = styled.div `
61
227
  display: flex;
62
228
  align-items: center;
63
229
  justify-content: space-between;
64
230
  gap: 12px;
65
231
  padding: 8px 12px;
66
- background: ${({$theme:o})=>o.headerBackgroundColor};
67
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
232
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
233
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
68
234
  flex-wrap: wrap;
69
235
 
70
236
  @media (max-width: 640px) {
@@ -72,12 +238,14 @@
72
238
  align-items: stretch;
73
239
  gap: 8px;
74
240
  }
75
- `,ToolbarGroup=e.div`
241
+ `;
242
+ export const ToolbarGroup = styled.div `
76
243
  display: flex;
77
244
  align-items: center;
78
245
  gap: 8px;
79
246
  flex-wrap: wrap;
80
- `,ToolbarButton=e.button`
247
+ `;
248
+ export const ToolbarButton = styled.button `
81
249
  display: inline-flex;
82
250
  align-items: center;
83
251
  justify-content: center;
@@ -86,16 +254,17 @@
86
254
  font-size: 13px;
87
255
  font-weight: 500;
88
256
  border-radius: 4px;
89
- border: 1px solid ${({$theme:o})=>o.borderColor};
90
- background: ${({$theme:o,$active:r})=>r?o.accentColor:o.backgroundColor};
91
- color: ${({$theme:o,$active:r})=>r?"#ffffff":o.textColor};
257
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
258
+ background: ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.backgroundColor)};
259
+ color: ${({ $theme, $active }) => ($active ? '#ffffff' : $theme.textColor)};
92
260
  cursor: pointer;
93
261
  transition: all 0.15s ease;
94
262
  white-space: nowrap;
95
263
 
96
- ${({$variant:o,$theme:r})=>o==="primary"&&t`
97
- background: ${r.accentColor};
98
- border-color: ${r.accentColor};
264
+ ${({ $variant, $theme }) => $variant === 'primary' &&
265
+ css `
266
+ background: ${$theme.accentColor};
267
+ border-color: ${$theme.accentColor};
99
268
  color: #ffffff;
100
269
 
101
270
  &:hover {
@@ -103,7 +272,8 @@
103
272
  }
104
273
  `}
105
274
 
106
- ${({$variant:o})=>o==="danger"&&t`
275
+ ${({ $variant }) => $variant === 'danger' &&
276
+ css `
107
277
  background: #ef4444;
108
278
  border-color: #ef4444;
109
279
  color: #ffffff;
@@ -115,7 +285,7 @@
115
285
  `}
116
286
 
117
287
  &:hover:not(:disabled) {
118
- background: ${({$theme:o,$active:r})=>r?o.accentColor:o.hoverRowBackgroundColor};
288
+ background: ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.hoverRowBackgroundColor)};
119
289
  }
120
290
 
121
291
  &:disabled {
@@ -127,7 +297,8 @@
127
297
  width: 16px;
128
298
  height: 16px;
129
299
  }
130
- `,QuickFilter=e.div`
300
+ `;
301
+ export const QuickFilter = styled.div `
131
302
  position: relative;
132
303
  display: flex;
133
304
  align-items: center;
@@ -136,21 +307,21 @@
136
307
  width: 220px;
137
308
  padding: 6px 12px 6px 32px;
138
309
  font-size: 13px;
139
- border: 1px solid ${({$theme:o})=>o.borderColor};
310
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
140
311
  border-radius: 4px;
141
- background: ${({$theme:o})=>o.backgroundColor};
142
- color: ${({$theme:o})=>o.textColor};
312
+ background: ${({ $theme }) => $theme.backgroundColor};
313
+ color: ${({ $theme }) => $theme.textColor};
143
314
  outline: none;
144
315
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
145
316
 
146
317
  &::placeholder {
147
- color: ${({$theme:o})=>o.headerTextColor};
318
+ color: ${({ $theme }) => $theme.headerTextColor};
148
319
  opacity: 0.6;
149
320
  }
150
321
 
151
322
  &:focus {
152
- border-color: ${({$theme:o})=>o.accentColor};
153
- box-shadow: 0 0 0 3px ${({$theme:o})=>o.accentColor}20;
323
+ border-color: ${({ $theme }) => $theme.accentColor};
324
+ box-shadow: 0 0 0 3px ${({ $theme }) => $theme.accentColor}20;
154
325
  }
155
326
 
156
327
  @media (max-width: 640px) {
@@ -163,41 +334,54 @@
163
334
  left: 10px;
164
335
  width: 14px;
165
336
  height: 14px;
166
- color: ${({$theme:o})=>o.headerTextColor};
337
+ color: ${({ $theme }) => $theme.headerTextColor};
167
338
  opacity: 0.6;
168
339
  }
169
- `,TableContainer=e.div`
340
+ `;
341
+ // ============================================================================
342
+ // Table Container
343
+ // ============================================================================
344
+ export const TableContainer = styled.div `
170
345
  flex: 1;
171
346
  overflow: auto;
172
347
  position: relative;
173
348
  min-height: 0;
174
349
 
175
- ${({$maxHeight:o})=>o&&t`
176
- max-height: ${typeof o=="number"?`${o}px`:o};
350
+ ${({ $maxHeight }) => $maxHeight &&
351
+ css `
352
+ max-height: ${typeof $maxHeight === 'number' ? `${$maxHeight}px` : $maxHeight};
177
353
  `}
178
- `,StyledTable=e.table`
354
+ `;
355
+ export const StyledTable = styled.table `
179
356
  width: 100%;
180
357
  border-collapse: collapse;
181
- table-layout: ${({$fixedLayout:o})=>o?"fixed":"auto"};
182
- color: ${({$theme:o})=>o.textColor};
183
- `,TableHead=e.thead`
184
- ${({$sticky:o,$theme:r})=>o&&t`
358
+ table-layout: ${({ $fixedLayout }) => ($fixedLayout ? 'fixed' : 'auto')};
359
+ color: ${({ $theme }) => $theme.textColor};
360
+ `;
361
+ // ============================================================================
362
+ // Header
363
+ // ============================================================================
364
+ export const TableHead = styled.thead `
365
+ ${({ $sticky, $theme }) => $sticky &&
366
+ css `
185
367
  position: sticky;
186
368
  top: 0;
187
369
  z-index: 10;
188
- background: ${r.headerBackgroundColor};
370
+ background: ${$theme.headerBackgroundColor};
189
371
  `}
190
- `,HeaderRow=e.tr`
191
- background: ${({$theme:o})=>o.headerBackgroundColor};
192
- height: ${({$height:o})=>o?`${o}px`:"42px"};
193
- `,HeaderCell=e.th`
194
- padding: ${({$theme:o})=>o.headerPadding};
195
- text-align: ${({$align:o})=>o||"left"};
196
- font-size: ${({$theme:o})=>o.headerFontSize};
197
- font-weight: ${({$theme:o})=>o.headerFontWeight};
198
- color: ${({$theme:o})=>o.headerTextColor};
199
- border-bottom: 2px solid ${({$theme:o})=>o.borderColor};
200
- border-right: 1px solid ${({$theme:o})=>o.borderColor};
372
+ `;
373
+ export const HeaderRow = styled.tr `
374
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
375
+ height: ${({ $height }) => ($height ? `${$height}px` : '42px')};
376
+ `;
377
+ export const HeaderCell = styled.th `
378
+ padding: ${({ $theme }) => $theme.headerPadding};
379
+ text-align: ${({ $align }) => $align || 'left'};
380
+ font-size: ${({ $theme }) => $theme.headerFontSize};
381
+ font-weight: ${({ $theme }) => $theme.headerFontWeight};
382
+ color: ${({ $theme }) => $theme.headerTextColor};
383
+ border-bottom: 2px solid ${({ $theme }) => $theme.borderColor};
384
+ border-right: 1px solid ${({ $theme }) => $theme.borderColor};
201
385
  white-space: nowrap;
202
386
  overflow: hidden;
203
387
  text-overflow: ellipsis;
@@ -207,78 +391,86 @@
207
391
  text-transform: uppercase;
208
392
  letter-spacing: 0.5px;
209
393
 
210
- ${({$width:o})=>o&&t`width: ${o}px;`}
211
- ${({$minWidth:o})=>o&&t`min-width: ${o}px;`}
212
- ${({$maxWidth:o})=>o&&t`max-width: ${o}px;`}
394
+ ${({ $width }) => $width && css `width: ${$width}px;`}
395
+ ${({ $minWidth }) => $minWidth && css `min-width: ${$minWidth}px;`}
396
+ ${({ $maxWidth }) => $maxWidth && css `max-width: ${$maxWidth}px;`}
213
397
 
214
- ${({$sortable:o,$theme:r})=>o&&t`
398
+ ${({ $sortable, $theme }) => $sortable &&
399
+ css `
215
400
  cursor: pointer;
216
401
 
217
402
  &:hover {
218
- background: ${r.hoverRowBackgroundColor};
403
+ background: ${$theme.hoverRowBackgroundColor};
219
404
  }
220
405
  `}
221
406
 
222
- ${({$sorted:o,$theme:r})=>o&&t`
223
- background: ${r.selectedRowBackgroundColor}40;
407
+ ${({ $sorted, $theme }) => $sorted &&
408
+ css `
409
+ background: ${$theme.selectedRowBackgroundColor}40;
224
410
  `}
225
411
 
226
- ${({$pinned:o,$theme:r})=>o&&t`
412
+ ${({ $pinned, $theme }) => $pinned &&
413
+ css `
227
414
  position: sticky;
228
- ${o==="left"?"left: 0;":"right: 0;"}
415
+ ${$pinned === 'left' ? 'left: 0;' : 'right: 0;'}
229
416
  z-index: 11;
230
- background: ${r.headerBackgroundColor};
231
- box-shadow: ${o==="left"?"2px 0 4px rgba(0,0,0,0.1)":"-2px 0 4px rgba(0,0,0,0.1)"};
417
+ background: ${$theme.headerBackgroundColor};
418
+ box-shadow: ${$pinned === 'left' ? '2px 0 4px rgba(0,0,0,0.1)' : '-2px 0 4px rgba(0,0,0,0.1)'};
232
419
  `}
233
420
 
234
421
  &:last-child {
235
422
  border-right: none;
236
423
  }
237
- `,HeaderCellContent=e.div`
424
+ `;
425
+ export const HeaderCellContent = styled.div `
238
426
  display: flex;
239
427
  align-items: center;
240
428
  gap: 6px;
241
429
  min-height: 24px;
242
- `,HeaderText=e.span`
430
+ `;
431
+ export const HeaderText = styled.span `
243
432
  flex: 1;
244
433
  overflow: hidden;
245
434
  text-overflow: ellipsis;
246
- `,SortIndicator=e.span`
435
+ `;
436
+ export const SortIndicator = styled.span `
247
437
  display: flex;
248
438
  align-items: center;
249
439
  justify-content: center;
250
440
  width: 18px;
251
441
  height: 18px;
252
- opacity: ${({$active:o})=>o?1:.3};
442
+ opacity: ${({ $active }) => ($active ? 1 : 0.3)};
253
443
  transition: opacity 0.15s ease, transform 0.2s ease;
254
444
 
255
445
  svg {
256
446
  width: 14px;
257
447
  height: 14px;
258
448
  transition: transform 0.2s ease;
259
- transform: ${({$direction:o})=>o==="desc"?"rotate(180deg)":"rotate(0deg)"};
449
+ transform: ${({ $direction }) => ($direction === 'desc' ? 'rotate(180deg)' : 'rotate(0deg)')};
260
450
  }
261
- `,FilterIndicator=e.span`
451
+ `;
452
+ export const FilterIndicator = styled.span `
262
453
  display: flex;
263
454
  align-items: center;
264
455
  justify-content: center;
265
456
  width: 18px;
266
457
  height: 18px;
267
458
  border-radius: 3px;
268
- color: ${({$active:o,$theme:r})=>o?r.accentColor:r.headerTextColor};
269
- opacity: ${({$active:o})=>o?1:.4};
459
+ color: ${({ $active, $theme }) => ($active ? $theme.accentColor : $theme.headerTextColor)};
460
+ opacity: ${({ $active }) => ($active ? 1 : 0.4)};
270
461
  transition: all 0.15s ease;
271
462
 
272
463
  &:hover {
273
464
  opacity: 1;
274
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
465
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
275
466
  }
276
467
 
277
468
  svg {
278
469
  width: 12px;
279
470
  height: 12px;
280
471
  }
281
- `,ResizeHandle=e.div`
472
+ `;
473
+ export const ResizeHandle = styled.div `
282
474
  position: absolute;
283
475
  right: 0;
284
476
  top: 0;
@@ -288,12 +480,13 @@
288
480
  z-index: 1;
289
481
  transition: background-color 0.15s ease;
290
482
 
291
- ${({$resizing:o,$theme:r})=>o&&t`
292
- background: ${r.accentColor};
483
+ ${({ $resizing, $theme }) => $resizing &&
484
+ css `
485
+ background: ${$theme.accentColor};
293
486
  `}
294
487
 
295
488
  &:hover {
296
- background: ${({$theme:o})=>o.accentColor}60;
489
+ background: ${({ $theme }) => $theme.accentColor}60;
297
490
  }
298
491
 
299
492
  &::after {
@@ -303,33 +496,43 @@
303
496
  top: 25%;
304
497
  height: 50%;
305
498
  width: 2px;
306
- background: ${({$theme:o})=>o.borderColor};
499
+ background: ${({ $theme }) => $theme.borderColor};
307
500
  border-radius: 1px;
308
501
  }
309
- `,GroupHeaderRow=e.tr`
310
- background: ${({$theme:o})=>o.headerBackgroundColor};
311
- `,GroupHeaderCell=e.th`
312
- padding: ${({$theme:o})=>o.headerPadding};
502
+ `;
503
+ // ============================================================================
504
+ // Column Group Header
505
+ // ============================================================================
506
+ export const GroupHeaderRow = styled.tr `
507
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
508
+ `;
509
+ export const GroupHeaderCell = styled.th `
510
+ padding: ${({ $theme }) => $theme.headerPadding};
313
511
  text-align: center;
314
- font-size: ${({$theme:o})=>o.headerFontSize};
315
- font-weight: ${({$theme:o})=>o.headerFontWeight};
316
- color: ${({$theme:o})=>o.headerTextColor};
317
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
318
- border-right: 1px solid ${({$theme:o})=>o.borderColor};
319
- background: ${({$theme:o})=>o.headerBackgroundColor};
512
+ font-size: ${({ $theme }) => $theme.headerFontSize};
513
+ font-weight: ${({ $theme }) => $theme.headerFontWeight};
514
+ color: ${({ $theme }) => $theme.headerTextColor};
515
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
516
+ border-right: 1px solid ${({ $theme }) => $theme.borderColor};
517
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
320
518
  text-transform: uppercase;
321
519
  letter-spacing: 0.5px;
322
520
 
323
521
  &:last-child {
324
522
  border-right: none;
325
523
  }
326
- `,FloatingFilterRow=e.tr`
327
- background: ${({$theme:o})=>o.headerBackgroundColor};
328
- height: ${({$height:o})=>o?`${o}px`:"32px"};
329
- `,FloatingFilterCell=e.td`
524
+ `;
525
+ // ============================================================================
526
+ // Floating Filter Row
527
+ // ============================================================================
528
+ export const FloatingFilterRow = styled.tr `
529
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
530
+ height: ${({ $height }) => ($height ? `${$height}px` : '32px')};
531
+ `;
532
+ export const FloatingFilterCell = styled.td `
330
533
  padding: 4px 8px;
331
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
332
- border-right: 1px solid ${({$theme:o})=>o.borderColor};
534
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
535
+ border-right: 1px solid ${({ $theme }) => $theme.borderColor};
333
536
  vertical-align: middle;
334
537
 
335
538
  &:last-child {
@@ -341,115 +544,149 @@
341
544
  width: 100%;
342
545
  padding: 4px 8px;
343
546
  font-size: 12px;
344
- border: 1px solid ${({$theme:o})=>o.borderColor};
547
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
345
548
  border-radius: 3px;
346
- background: ${({$theme:o})=>o.backgroundColor};
347
- color: ${({$theme:o})=>o.textColor};
549
+ background: ${({ $theme }) => $theme.backgroundColor};
550
+ color: ${({ $theme }) => $theme.textColor};
348
551
  outline: none;
349
552
 
350
553
  &:focus {
351
- border-color: ${({$theme:o})=>o.accentColor};
554
+ border-color: ${({ $theme }) => $theme.accentColor};
352
555
  }
353
556
  }
354
- `,TableBody=e.tbody`
355
- color: ${({$theme:o})=>o.textColor};
356
- `,TableRow=e.tr`
357
- height: ${({$height:o})=>o?`${o}px`:"42px"};
358
- color: ${({$theme:o})=>o.textColor};
359
- background: ${({$theme:o,$selected:r,$highlighted:d,$striped:l,$even:p,$group:c})=>r?o.selectedRowBackgroundColor:d?`${o.accentColor}20`:c?o.headerBackgroundColor:l&&p?o.oddRowBackgroundColor:o.backgroundColor};
557
+ `;
558
+ // ============================================================================
559
+ // Body
560
+ // ============================================================================
561
+ export const TableBody = styled.tbody `
562
+ color: ${({ $theme }) => $theme.textColor};
563
+ `;
564
+ export const TableRow = styled.tr `
565
+ height: ${({ $height }) => ($height ? `${$height}px` : '42px')};
566
+ color: ${({ $theme }) => $theme.textColor};
567
+ background: ${({ $theme, $selected, $highlighted, $striped, $even, $group }) => {
568
+ if ($selected)
569
+ return $theme.selectedRowBackgroundColor;
570
+ if ($highlighted)
571
+ return `${$theme.accentColor}20`;
572
+ if ($group)
573
+ return $theme.headerBackgroundColor;
574
+ if ($striped && $even)
575
+ return $theme.oddRowBackgroundColor;
576
+ return $theme.backgroundColor;
577
+ }};
360
578
  transition: background-color 0.15s ease;
361
579
 
362
- ${({$animate:o})=>o&&t`
363
- animation: ${b} 0.2s ease;
580
+ ${({ $animate }) => $animate &&
581
+ css `
582
+ animation: ${rowEnter} 0.2s ease;
364
583
  `}
365
584
 
366
- ${({$dragging:o})=>o&&t`
585
+ ${({ $dragging }) => $dragging &&
586
+ css `
367
587
  opacity: 0.5;
368
588
  `}
369
589
 
370
- ${({$dragOver:o,$theme:r})=>o&&t`
371
- background: ${r.selectedRowBackgroundColor}60;
372
- box-shadow: inset 0 -2px 0 ${r.accentColor};
590
+ ${({ $dragOver, $theme }) => $dragOver &&
591
+ css `
592
+ background: ${$theme.selectedRowBackgroundColor}60;
593
+ box-shadow: inset 0 -2px 0 ${$theme.accentColor};
373
594
  `}
374
595
 
375
596
  &:hover {
376
- background: ${({$theme:o,$selected:r})=>r?o.selectedRowBackgroundColor:o.hoverRowBackgroundColor};
597
+ background: ${({ $theme, $selected }) => $selected ? $theme.selectedRowBackgroundColor : $theme.hoverRowBackgroundColor};
377
598
  }
378
599
 
379
- ${({$group:o})=>o&&t`
600
+ ${({ $group }) => $group &&
601
+ css `
380
602
  cursor: pointer;
381
603
  font-weight: 600;
382
604
  `}
383
- `,TableCell=e.td`
384
- padding: ${({$theme:o})=>o.cellPadding};
385
- text-align: ${({$align:o})=>o||"left"};
386
- border-bottom: ${({$theme:o})=>o.cellBorderWidth} solid ${({$theme:o})=>o.borderColor};
387
- border-right: ${({$theme:o})=>o.cellBorderWidth} solid ${({$theme:o})=>o.borderColor};
605
+ `;
606
+ export const TableCell = styled.td `
607
+ padding: ${({ $theme }) => $theme.cellPadding};
608
+ text-align: ${({ $align }) => $align || 'left'};
609
+ border-bottom: ${({ $theme }) => $theme.cellBorderWidth} solid ${({ $theme }) => $theme.borderColor};
610
+ border-right: ${({ $theme }) => $theme.cellBorderWidth} solid ${({ $theme }) => $theme.borderColor};
388
611
  vertical-align: middle;
389
612
  overflow: hidden;
390
613
  text-overflow: ellipsis;
391
614
  white-space: nowrap;
392
- color: ${({$theme:o})=>o.textColor};
615
+ color: ${({ $theme }) => $theme.textColor};
393
616
 
394
- ${({$width:o})=>o&&t`width: ${o}px;`}
617
+ ${({ $width }) => $width && css `width: ${$width}px;`}
395
618
 
396
- ${({$pinned:o,$theme:r})=>o&&t`
619
+ ${({ $pinned, $theme }) => $pinned &&
620
+ css `
397
621
  position: sticky;
398
- ${o==="left"?"left: 0;":"right: 0;"}
622
+ ${$pinned === 'left' ? 'left: 0;' : 'right: 0;'}
399
623
  z-index: 5;
400
624
  background: inherit;
401
- box-shadow: ${o==="left"?"2px 0 4px rgba(0,0,0,0.1)":"-2px 0 4px rgba(0,0,0,0.1)"};
625
+ box-shadow: ${$pinned === 'left' ? '2px 0 4px rgba(0,0,0,0.1)' : '-2px 0 4px rgba(0,0,0,0.1)'};
402
626
  `}
403
627
 
404
- ${({$editing:o,$theme:r})=>o&&t`
628
+ ${({ $editing, $theme }) => $editing &&
629
+ css `
405
630
  padding: 0;
406
- background: ${r.backgroundColor};
407
- box-shadow: inset 0 0 0 2px ${r.accentColor};
631
+ background: ${$theme.backgroundColor};
632
+ box-shadow: inset 0 0 0 2px ${$theme.accentColor};
408
633
  `}
409
634
 
410
- ${({$flashing:o})=>o&&t`
411
- animation: ${f} 0.5s ease;
635
+ ${({ $flashing }) => $flashing &&
636
+ css `
637
+ animation: ${cellFlash} 0.5s ease;
412
638
  `}
413
639
 
414
640
  &:last-child {
415
641
  border-right: none;
416
642
  }
417
- `,CellContent=e.div`
643
+ `;
644
+ export const CellContent = styled.div `
418
645
  display: flex;
419
646
  align-items: center;
420
647
  gap: 8px;
421
648
  min-height: 20px;
422
649
  color: inherit;
423
650
 
424
- ${({$wrapText:o})=>o&&t`
651
+ ${({ $wrapText }) => $wrapText &&
652
+ css `
425
653
  white-space: normal;
426
654
  word-break: break-word;
427
655
  `}
428
- `,Checkbox=e.input`
656
+ `;
657
+ // ============================================================================
658
+ // Checkbox
659
+ // ============================================================================
660
+ export const Checkbox = styled.input `
429
661
  width: 16px;
430
662
  height: 16px;
431
663
  margin: 0;
432
664
  cursor: pointer;
433
- accent-color: ${({$theme:o})=>o.accentColor};
665
+ accent-color: ${({ $theme }) => $theme.accentColor};
434
666
  flex-shrink: 0;
435
667
 
436
668
  &:disabled {
437
669
  opacity: 0.5;
438
670
  cursor: not-allowed;
439
671
  }
440
- `,CheckboxCell=e.div`
672
+ `;
673
+ export const CheckboxCell = styled.div `
441
674
  display: flex;
442
675
  align-items: center;
443
676
  justify-content: center;
444
677
  width: 100%;
445
- `,ExpandButton=e.button`
678
+ `;
679
+ // ============================================================================
680
+ // Expand / Group
681
+ // ============================================================================
682
+ export const ExpandButton = styled.button `
446
683
  display: flex;
447
684
  align-items: center;
448
685
  justify-content: center;
449
686
  width: 20px;
450
687
  height: 20px;
451
688
  padding: 0;
452
- margin-left: ${({$level:o})=>o?`${o*16}px`:"0"};
689
+ margin-left: ${({ $level }) => ($level ? `${$level * 16}px` : '0')};
453
690
  margin-right: 8px;
454
691
  border: none;
455
692
  border-radius: 3px;
@@ -459,20 +696,25 @@
459
696
  flex-shrink: 0;
460
697
 
461
698
  &:hover {
462
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
699
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
463
700
  }
464
701
 
465
702
  svg {
466
703
  width: 14px;
467
704
  height: 14px;
468
705
  transition: transform 0.2s ease;
469
- transform: ${({$expanded:o})=>o?"rotate(90deg)":"rotate(0deg)"};
706
+ transform: ${({ $expanded }) => ($expanded ? 'rotate(90deg)' : 'rotate(0deg)')};
470
707
  }
471
- `,GroupCell=e.div`
708
+ `;
709
+ export const GroupCell = styled.div `
472
710
  display: flex;
473
711
  align-items: center;
474
- padding-left: ${({$level:o})=>o?`${o*20}px`:"0"};
475
- `,DragHandle=e.div`
712
+ padding-left: ${({ $level }) => ($level ? `${$level * 20}px` : '0')};
713
+ `;
714
+ // ============================================================================
715
+ // Row Drag Handle
716
+ // ============================================================================
717
+ export const DragHandle = styled.div `
476
718
  display: flex;
477
719
  align-items: center;
478
720
  justify-content: center;
@@ -487,7 +729,8 @@
487
729
  opacity: 1;
488
730
  }
489
731
 
490
- ${({$dragging:o})=>o&&t`
732
+ ${({ $dragging }) => $dragging &&
733
+ css `
491
734
  cursor: grabbing;
492
735
  opacity: 1;
493
736
  `}
@@ -496,7 +739,11 @@
496
739
  width: 14px;
497
740
  height: 14px;
498
741
  }
499
- `,CellEditor=e.div`
742
+ `;
743
+ // ============================================================================
744
+ // Cell Editor
745
+ // ============================================================================
746
+ export const CellEditor = styled.div `
500
747
  width: 100%;
501
748
  height: 100%;
502
749
  display: flex;
@@ -511,8 +758,8 @@
511
758
  font-size: inherit;
512
759
  font-family: inherit;
513
760
  border: none;
514
- background: ${({$theme:o})=>o.backgroundColor};
515
- color: ${({$theme:o})=>o.textColor};
761
+ background: ${({ $theme }) => $theme.backgroundColor};
762
+ color: ${({ $theme }) => $theme.textColor};
516
763
  outline: none;
517
764
  }
518
765
 
@@ -520,23 +767,33 @@
520
767
  resize: vertical;
521
768
  min-height: 80px;
522
769
  }
523
- `,TableFooter=e.tfoot`
524
- background: ${({$theme:o})=>o.headerBackgroundColor};
525
- `,FooterRow=e.tr`
770
+ `;
771
+ // ============================================================================
772
+ // Footer
773
+ // ============================================================================
774
+ export const TableFooter = styled.tfoot `
775
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
776
+ `;
777
+ export const FooterRow = styled.tr `
526
778
  height: 42px;
527
- `,FooterCell=e.td`
528
- padding: ${({$theme:o})=>o.cellPadding};
529
- text-align: ${({$align:o})=>o||"left"};
779
+ `;
780
+ export const FooterCell = styled.td `
781
+ padding: ${({ $theme }) => $theme.cellPadding};
782
+ text-align: ${({ $align }) => $align || 'left'};
530
783
  font-weight: 600;
531
- border-top: 2px solid ${({$theme:o})=>o.borderColor};
532
- color: ${({$theme:o})=>o.headerTextColor};
533
- `,PaginationBar=e.div`
784
+ border-top: 2px solid ${({ $theme }) => $theme.borderColor};
785
+ color: ${({ $theme }) => $theme.headerTextColor};
786
+ `;
787
+ // ============================================================================
788
+ // Pagination
789
+ // ============================================================================
790
+ export const PaginationBar = styled.div `
534
791
  display: flex;
535
792
  align-items: center;
536
793
  justify-content: space-between;
537
794
  padding: 8px 16px;
538
- background: ${({$theme:o})=>o.headerBackgroundColor};
539
- border-top: 1px solid ${({$theme:o})=>o.borderColor};
795
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
796
+ border-top: 1px solid ${({ $theme }) => $theme.borderColor};
540
797
  gap: 16px;
541
798
  flex-wrap: wrap;
542
799
 
@@ -544,14 +801,17 @@
544
801
  flex-direction: column;
545
802
  gap: 12px;
546
803
  }
547
- `,PaginationInfo=e.div`
804
+ `;
805
+ export const PaginationInfo = styled.div `
548
806
  font-size: 13px;
549
- color: ${({$theme:o})=>o.headerTextColor};
550
- `,PaginationControls=e.div`
807
+ color: ${({ $theme }) => $theme.headerTextColor};
808
+ `;
809
+ export const PaginationControls = styled.div `
551
810
  display: flex;
552
811
  align-items: center;
553
812
  gap: 4px;
554
- `,PageButton=e.button`
813
+ `;
814
+ export const PageButton = styled.button `
555
815
  display: flex;
556
816
  align-items: center;
557
817
  justify-content: center;
@@ -560,15 +820,15 @@
560
820
  padding: 0 8px;
561
821
  font-size: 13px;
562
822
  font-weight: 500;
563
- border: 1px solid ${({$theme:o,$active:r})=>r?o.accentColor:o.borderColor};
823
+ border: 1px solid ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.borderColor)};
564
824
  border-radius: 4px;
565
- background: ${({$theme:o,$active:r})=>r?o.accentColor:o.backgroundColor};
566
- color: ${({$theme:o,$active:r})=>r?"#ffffff":o.textColor};
825
+ background: ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.backgroundColor)};
826
+ color: ${({ $theme, $active }) => ($active ? '#ffffff' : $theme.textColor)};
567
827
  cursor: pointer;
568
828
  transition: all 0.15s ease;
569
829
 
570
830
  &:hover:not(:disabled) {
571
- background: ${({$theme:o,$active:r})=>r?o.accentColor:o.hoverRowBackgroundColor};
831
+ background: ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.hoverRowBackgroundColor)};
572
832
  }
573
833
 
574
834
  &:disabled {
@@ -580,30 +840,36 @@
580
840
  width: 16px;
581
841
  height: 16px;
582
842
  }
583
- `,PageSizeSelect=e.select`
843
+ `;
844
+ export const PageSizeSelect = styled.select `
584
845
  padding: 6px 8px;
585
846
  font-size: 13px;
586
- border: 1px solid ${({$theme:o})=>o.borderColor};
847
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
587
848
  border-radius: 4px;
588
- background: ${({$theme:o})=>o.backgroundColor};
589
- color: ${({$theme:o})=>o.textColor};
849
+ background: ${({ $theme }) => $theme.backgroundColor};
850
+ color: ${({ $theme }) => $theme.textColor};
590
851
  cursor: pointer;
591
852
  outline: none;
592
853
 
593
854
  &:focus {
594
- border-color: ${({$theme:o})=>o.accentColor};
855
+ border-color: ${({ $theme }) => $theme.accentColor};
595
856
  }
596
- `,StatusBar=e.div`
857
+ `;
858
+ // ============================================================================
859
+ // Status Bar
860
+ // ============================================================================
861
+ export const StatusBar = styled.div `
597
862
  display: flex;
598
863
  align-items: center;
599
864
  justify-content: space-between;
600
865
  padding: 6px 16px;
601
- background: ${({$theme:o})=>o.headerBackgroundColor};
602
- border-top: 1px solid ${({$theme:o})=>o.borderColor};
866
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
867
+ border-top: 1px solid ${({ $theme }) => $theme.borderColor};
603
868
  font-size: 12px;
604
- color: ${({$theme:o})=>o.headerTextColor};
869
+ color: ${({ $theme }) => $theme.headerTextColor};
605
870
  gap: 16px;
606
- `,StatusItem=e.div`
871
+ `;
872
+ export const StatusItem = styled.div `
607
873
  display: flex;
608
874
  align-items: center;
609
875
  gap: 6px;
@@ -611,91 +877,110 @@
611
877
  strong {
612
878
  color: inherit;
613
879
  }
614
- `,SideBar=e.div`
615
- width: ${({$width:o})=>o?`${o}px`:"250px"};
880
+ `;
881
+ // ============================================================================
882
+ // Side Bar / Tool Panels
883
+ // ============================================================================
884
+ export const SideBar = styled.div `
885
+ width: ${({ $width }) => ($width ? `${$width}px` : '250px')};
616
886
  min-width: 200px;
617
887
  max-width: 400px;
618
- background: ${({$theme:o})=>o.backgroundColor};
619
- border-${({$position:o})=>o==="left"?"right":"left"}: 1px solid ${({$theme:o})=>o.borderColor};
888
+ background: ${({ $theme }) => $theme.backgroundColor};
889
+ border-${({ $position }) => ($position === 'left' ? 'right' : 'left')}: 1px solid ${({ $theme }) => $theme.borderColor};
620
890
  display: flex;
621
891
  flex-direction: column;
622
892
  overflow: hidden;
623
- `,SideBarTabs=e.div`
893
+ `;
894
+ export const SideBarTabs = styled.div `
624
895
  display: flex;
625
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
626
- `,SideBarTab=e.button`
896
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
897
+ `;
898
+ export const SideBarTab = styled.button `
627
899
  flex: 1;
628
900
  padding: 10px 12px;
629
901
  font-size: 12px;
630
902
  font-weight: 500;
631
903
  border: none;
632
- background: ${({$theme:o,$active:r})=>r?o.backgroundColor:o.headerBackgroundColor};
633
- color: ${({$theme:o,$active:r})=>r?o.accentColor:o.headerTextColor};
904
+ background: ${({ $theme, $active }) => ($active ? $theme.backgroundColor : $theme.headerBackgroundColor)};
905
+ color: ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.headerTextColor)};
634
906
  cursor: pointer;
635
907
  transition: all 0.15s ease;
636
- border-bottom: 2px solid ${({$theme:o,$active:r})=>r?o.accentColor:"transparent"};
908
+ border-bottom: 2px solid ${({ $theme, $active }) => ($active ? $theme.accentColor : 'transparent')};
637
909
 
638
910
  &:hover {
639
- background: ${({$theme:o})=>o.backgroundColor};
911
+ background: ${({ $theme }) => $theme.backgroundColor};
640
912
  }
641
- `,SideBarContent=e.div`
913
+ `;
914
+ export const SideBarContent = styled.div `
642
915
  flex: 1;
643
916
  overflow: auto;
644
917
  padding: 12px;
645
- `,Overlay=e.div`
918
+ `;
919
+ // ============================================================================
920
+ // Overlays
921
+ // ============================================================================
922
+ export const Overlay = styled.div `
646
923
  position: absolute;
647
924
  inset: 0;
648
925
  display: flex;
649
926
  align-items: center;
650
927
  justify-content: center;
651
- background: ${({$theme:o})=>o.backgroundColor}e6;
928
+ background: ${({ $theme }) => $theme.backgroundColor}e6;
652
929
  z-index: 100;
653
- animation: ${i} 0.2s ease;
654
- `,LoadingOverlay=e(Overlay)`
930
+ animation: ${fadeIn} 0.2s ease;
931
+ `;
932
+ export const LoadingOverlay = styled(Overlay) `
655
933
  flex-direction: column;
656
934
  gap: 16px;
657
- `,Spinner=e.div`
658
- width: ${({$size:o})=>o?`${o}px`:"40px"};
659
- height: ${({$size:o})=>o?`${o}px`:"40px"};
660
- border: 3px solid ${({$theme:o})=>o.borderColor};
661
- border-top-color: ${({$theme:o})=>o.accentColor};
935
+ `;
936
+ export const Spinner = styled.div `
937
+ width: ${({ $size }) => ($size ? `${$size}px` : '40px')};
938
+ height: ${({ $size }) => ($size ? `${$size}px` : '40px')};
939
+ border: 3px solid ${({ $theme }) => $theme.borderColor};
940
+ border-top-color: ${({ $theme }) => $theme.accentColor};
662
941
  border-radius: 50%;
663
- animation: ${g} 0.8s linear infinite;
664
- `,NoRowsOverlay=e(Overlay)`
942
+ animation: ${spin} 0.8s linear infinite;
943
+ `;
944
+ export const NoRowsOverlay = styled(Overlay) `
665
945
  flex-direction: column;
666
946
  gap: 12px;
667
- color: ${({$theme:o})=>o.headerTextColor};
947
+ color: ${({ $theme }) => $theme.headerTextColor};
668
948
 
669
949
  svg {
670
950
  width: 48px;
671
951
  height: 48px;
672
952
  opacity: 0.5;
673
953
  }
674
- `,ContextMenu=e.div`
954
+ `;
955
+ // ============================================================================
956
+ // Context Menu
957
+ // ============================================================================
958
+ export const ContextMenu = styled.div `
675
959
  position: fixed;
676
- top: ${({$y:o})=>o}px;
677
- left: ${({$x:o})=>o}px;
960
+ top: ${({ $y }) => $y}px;
961
+ left: ${({ $x }) => $x}px;
678
962
  min-width: 180px;
679
- background: ${({$theme:o})=>o.backgroundColor};
680
- border: 1px solid ${({$theme:o})=>o.borderColor};
963
+ background: ${({ $theme }) => $theme.backgroundColor};
964
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
681
965
  border-radius: 6px;
682
966
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
683
967
  z-index: 1000;
684
968
  overflow: hidden;
685
- animation: ${s} 0.15s ease;
686
- `,ContextMenuItem=e.div`
969
+ animation: ${slideInRight} 0.15s ease;
970
+ `;
971
+ export const ContextMenuItem = styled.div `
687
972
  display: flex;
688
973
  align-items: center;
689
974
  gap: 10px;
690
975
  padding: 8px 14px;
691
976
  font-size: 13px;
692
- cursor: ${({$disabled:o})=>o?"not-allowed":"pointer"};
693
- opacity: ${({$disabled:o})=>o?.5:1};
694
- color: ${({$danger:o,$theme:r})=>o?"#ef4444":r.textColor};
977
+ cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};
978
+ opacity: ${({ $disabled }) => ($disabled ? 0.5 : 1)};
979
+ color: ${({ $danger, $theme }) => ($danger ? '#ef4444' : $theme.textColor)};
695
980
  transition: background-color 0.1s ease;
696
981
 
697
982
  &:hover {
698
- background: ${({$disabled:o,$theme:r})=>o?"transparent":r.hoverRowBackgroundColor};
983
+ background: ${({ $disabled, $theme }) => ($disabled ? 'transparent' : $theme.hoverRowBackgroundColor)};
699
984
  }
700
985
 
701
986
  svg {
@@ -709,161 +994,201 @@
709
994
  font-size: 11px;
710
995
  opacity: 0.5;
711
996
  }
712
- `,ContextMenuDivider=e.div`
997
+ `;
998
+ export const ContextMenuDivider = styled.div `
713
999
  height: 1px;
714
- background: ${({$theme:o})=>o.borderColor};
1000
+ background: ${({ $theme }) => $theme.borderColor};
715
1001
  margin: 4px 0;
716
- `,ColumnMenu=e.div`
1002
+ `;
1003
+ // ============================================================================
1004
+ // Column Menu
1005
+ // ============================================================================
1006
+ export const ColumnMenu = styled.div `
717
1007
  position: absolute;
718
1008
  top: 100%;
719
1009
  right: 0;
720
1010
  min-width: 200px;
721
- background: ${({$theme:o})=>o.backgroundColor};
722
- border: 1px solid ${({$theme:o})=>o.borderColor};
1011
+ background: ${({ $theme }) => $theme.backgroundColor};
1012
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
723
1013
  border-radius: 6px;
724
1014
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
725
1015
  z-index: 100;
726
1016
  overflow: hidden;
727
- animation: ${i} 0.15s ease;
728
- `,MobileCardContainer=e.div`
1017
+ animation: ${fadeIn} 0.15s ease;
1018
+ `;
1019
+ // ============================================================================
1020
+ // Mobile Card View
1021
+ // ============================================================================
1022
+ export const MobileCardContainer = styled.div `
729
1023
  display: flex;
730
1024
  flex-direction: column;
731
1025
  gap: 12px;
732
1026
  padding: 12px;
733
- `,MobileCard=e.div`
734
- background: ${({$theme:o})=>o.backgroundColor};
735
- border: 1px solid ${({$theme:o,$selected:r})=>r?o.accentColor:o.borderColor};
1027
+ `;
1028
+ export const MobileCard = styled.div `
1029
+ background: ${({ $theme }) => $theme.backgroundColor};
1030
+ border: 1px solid ${({ $theme, $selected }) => ($selected ? $theme.accentColor : $theme.borderColor)};
736
1031
  border-radius: 8px;
737
1032
  padding: 16px;
738
1033
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
739
1034
  transition: all 0.15s ease;
740
1035
 
741
- ${({$selected:o,$theme:r})=>o&&t`
742
- background: ${r.selectedRowBackgroundColor};
1036
+ ${({ $selected, $theme }) => $selected &&
1037
+ css `
1038
+ background: ${$theme.selectedRowBackgroundColor};
743
1039
  `}
744
- `,MobileCardHeader=e.div`
1040
+ `;
1041
+ export const MobileCardHeader = styled.div `
745
1042
  display: flex;
746
1043
  align-items: center;
747
1044
  justify-content: space-between;
748
1045
  margin-bottom: 12px;
749
1046
  padding-bottom: 12px;
750
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
751
- `,MobileCardRow=e.div`
1047
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1048
+ `;
1049
+ export const MobileCardRow = styled.div `
752
1050
  display: flex;
753
1051
  justify-content: space-between;
754
1052
  padding: 6px 0;
755
1053
  font-size: 13px;
756
1054
 
757
1055
  &:not(:last-child) {
758
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor}50;
1056
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor}50;
759
1057
  }
760
- `,MobileCardLabel=e.span`
761
- color: ${({$theme:o})=>o.headerTextColor};
1058
+ `;
1059
+ export const MobileCardLabel = styled.span `
1060
+ color: ${({ $theme }) => $theme.headerTextColor};
762
1061
  font-weight: 500;
763
- `,MobileCardValue=e.span`
764
- color: ${({$theme:o})=>o.textColor};
1062
+ `;
1063
+ export const MobileCardValue = styled.span `
1064
+ color: ${({ $theme }) => $theme.textColor};
765
1065
  text-align: right;
766
- `,SkeletonRow=e.tr`
1066
+ `;
1067
+ // ============================================================================
1068
+ // Skeleton Loading
1069
+ // ============================================================================
1070
+ export const SkeletonRow = styled.tr `
767
1071
  height: 42px;
768
- `,SkeletonCell=e.td`
1072
+ `;
1073
+ export const SkeletonCell = styled.td `
769
1074
  padding: 8px 12px;
770
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
771
- border-right: 1px solid ${({$theme:o})=>o.borderColor};
1075
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1076
+ border-right: 1px solid ${({ $theme }) => $theme.borderColor};
772
1077
 
773
1078
  &:last-child {
774
1079
  border-right: none;
775
1080
  }
776
- `,SkeletonBlock=e.div`
1081
+ `;
1082
+ export const SkeletonBlock = styled.div `
777
1083
  height: 16px;
778
- width: ${({$width:o})=>o||"80%"};
1084
+ width: ${({ $width }) => $width || '80%'};
779
1085
  background: linear-gradient(
780
1086
  90deg,
781
- ${({$theme:o})=>o.borderColor}40 25%,
782
- ${({$theme:o})=>o.borderColor}80 50%,
783
- ${({$theme:o})=>o.borderColor}40 75%
1087
+ ${({ $theme }) => $theme.borderColor}40 25%,
1088
+ ${({ $theme }) => $theme.borderColor}80 50%,
1089
+ ${({ $theme }) => $theme.borderColor}40 75%
784
1090
  );
785
1091
  background-size: 200% 100%;
786
- animation: ${x} 1.5s ease-in-out infinite;
1092
+ animation: ${shimmer} 1.5s ease-in-out infinite;
787
1093
  border-radius: 4px;
788
- `,TooltipContainer=e.div`
1094
+ `;
1095
+ // ============================================================================
1096
+ // Tooltip
1097
+ // ============================================================================
1098
+ export const TooltipContainer = styled.div `
789
1099
  position: fixed;
790
- top: ${({$y:o})=>o}px;
791
- left: ${({$x:o})=>o}px;
1100
+ top: ${({ $y }) => $y}px;
1101
+ left: ${({ $x }) => $x}px;
792
1102
  max-width: 300px;
793
1103
  padding: 8px 12px;
794
1104
  font-size: 12px;
795
- background: ${({$theme:o})=>o.textColor.includes("f0")?"#333":"#fff"};
796
- color: ${({$theme:o})=>o.textColor.includes("f0")?"#fff":"#333"};
1105
+ background: ${({ $theme }) => ($theme.textColor.includes('f0') ? '#333' : '#fff')};
1106
+ color: ${({ $theme }) => ($theme.textColor.includes('f0') ? '#fff' : '#333')};
797
1107
  border-radius: 4px;
798
1108
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
799
1109
  z-index: 1001;
800
1110
  pointer-events: none;
801
- animation: ${i} 0.1s ease;
802
- `,DragGhost=e.div`
1111
+ animation: ${fadeIn} 0.1s ease;
1112
+ `;
1113
+ // ============================================================================
1114
+ // Drag Ghost
1115
+ // ============================================================================
1116
+ export const DragGhost = styled.div `
803
1117
  position: fixed;
804
1118
  pointer-events: none;
805
1119
  z-index: 10000;
806
1120
  padding: 8px 16px;
807
- background: ${({$theme:o})=>o.accentColor};
1121
+ background: ${({ $theme }) => $theme.accentColor};
808
1122
  color: #ffffff;
809
1123
  font-size: 13px;
810
1124
  font-weight: 500;
811
1125
  border-radius: 6px;
812
1126
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
813
- opacity: ${({$visible:o})=>o?.9:0};
1127
+ opacity: ${({ $visible }) => ($visible ? 0.9 : 0)};
814
1128
  transform: translate(-50%, -50%);
815
1129
  transition: opacity 0.15s ease;
816
- `,SelectionBar=e.div`
1130
+ `;
1131
+ // ============================================================================
1132
+ // Selection Info Bar
1133
+ // ============================================================================
1134
+ export const SelectionBar = styled.div `
817
1135
  display: flex;
818
1136
  align-items: center;
819
1137
  justify-content: space-between;
820
1138
  padding: 8px 16px;
821
- background: ${({$theme:o})=>o.accentColor};
1139
+ background: ${({ $theme }) => $theme.accentColor};
822
1140
  color: #ffffff;
823
1141
  font-size: 13px;
824
1142
  font-weight: 500;
825
- transform: translateY(${({$visible:o})=>o?"0":"-100%"});
826
- opacity: ${({$visible:o})=>o?1:0};
1143
+ transform: translateY(${({ $visible }) => ($visible ? '0' : '-100%')});
1144
+ opacity: ${({ $visible }) => ($visible ? 1 : 0)};
827
1145
  transition: all 0.2s ease;
828
1146
  position: absolute;
829
1147
  top: 0;
830
1148
  left: 0;
831
1149
  right: 0;
832
1150
  z-index: 50;
833
- `,SelectionActions=e.div`
1151
+ `;
1152
+ export const SelectionActions = styled.div `
834
1153
  display: flex;
835
1154
  align-items: center;
836
1155
  gap: 8px;
837
- `,SidePanel=e.div`
838
- width: ${({$open:o,$width:r})=>o?r?`${r}px`:"280px":"40px"};
839
- min-width: ${({$open:o})=>o?"200px":"40px"};
840
- max-width: ${({$open:o})=>o?"400px":"40px"};
841
- background: ${({$theme:o})=>o.backgroundColor};
842
- border-left: 1px solid ${({$theme:o})=>o.borderColor};
1156
+ `;
1157
+ // ============================================================================
1158
+ // Side Panel (Right Panel with Columns & Filters tabs)
1159
+ // ============================================================================
1160
+ export const SidePanel = styled.div `
1161
+ width: ${({ $open, $width }) => ($open ? ($width ? `${$width}px` : '280px') : '40px')};
1162
+ min-width: ${({ $open }) => ($open ? '200px' : '40px')};
1163
+ max-width: ${({ $open }) => ($open ? '400px' : '40px')};
1164
+ background: ${({ $theme }) => $theme.backgroundColor};
1165
+ border-left: 1px solid ${({ $theme }) => $theme.borderColor};
843
1166
  display: flex;
844
1167
  flex-direction: column;
845
1168
  overflow: hidden;
846
1169
  transition: width 0.2s ease;
847
1170
  flex-shrink: 0;
848
- `,SidePanelTabs=e.div`
1171
+ `;
1172
+ export const SidePanelTabs = styled.div `
849
1173
  display: flex;
850
- flex-direction: ${({$collapsed:o})=>o?"column":"row"};
851
- border-bottom: ${({$collapsed:o})=>o?"none":"1px solid"};
852
- border-color: ${({$theme:o})=>o.borderColor};
853
- background: ${({$theme:o})=>o.headerBackgroundColor};
854
- `,SidePanelTab=e.button`
855
- flex: ${({$collapsed:o})=>o?"none":"1"};
856
- padding: ${({$collapsed:o})=>o?"12px 10px":"10px 12px"};
1174
+ flex-direction: ${({ $collapsed }) => ($collapsed ? 'column' : 'row')};
1175
+ border-bottom: ${({ $collapsed }) => ($collapsed ? 'none' : '1px solid')};
1176
+ border-color: ${({ $theme }) => $theme.borderColor};
1177
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
1178
+ `;
1179
+ export const SidePanelTab = styled.button `
1180
+ flex: ${({ $collapsed }) => ($collapsed ? 'none' : '1')};
1181
+ padding: ${({ $collapsed }) => ($collapsed ? '12px 10px' : '10px 12px')};
857
1182
  font-size: 11px;
858
1183
  font-weight: 600;
859
1184
  text-transform: uppercase;
860
1185
  letter-spacing: 0.5px;
861
1186
  border: none;
862
- background: ${({$theme:o,$active:r})=>r?o.backgroundColor:"transparent"};
863
- color: ${({$theme:o,$active:r})=>r?o.accentColor:o.headerTextColor};
1187
+ background: ${({ $theme, $active }) => ($active ? $theme.backgroundColor : 'transparent')};
1188
+ color: ${({ $theme, $active }) => ($active ? $theme.accentColor : $theme.headerTextColor)};
864
1189
  cursor: pointer;
865
1190
  transition: all 0.15s ease;
866
- border-bottom: 2px solid ${({$theme:o,$active:r})=>r?o.accentColor:"transparent"};
1191
+ border-bottom: 2px solid ${({ $theme, $active }) => ($active ? $theme.accentColor : 'transparent')};
867
1192
  display: flex;
868
1193
  align-items: center;
869
1194
  justify-content: center;
@@ -871,44 +1196,48 @@
871
1196
  white-space: nowrap;
872
1197
 
873
1198
  &:hover {
874
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
875
- color: ${({$theme:o})=>o.accentColor};
1199
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
1200
+ color: ${({ $theme }) => $theme.accentColor};
876
1201
  }
877
1202
 
878
1203
  svg {
879
1204
  width: 14px;
880
1205
  height: 14px;
881
1206
  }
882
- `,SidePanelContent=e.div`
1207
+ `;
1208
+ export const SidePanelContent = styled.div `
883
1209
  flex: 1;
884
1210
  overflow-y: auto;
885
1211
  overflow-x: hidden;
886
- `,SidePanelSearch=e.div`
1212
+ `;
1213
+ export const SidePanelSearch = styled.div `
887
1214
  padding: 10px 12px;
888
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
1215
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
889
1216
 
890
1217
  input {
891
1218
  width: 100%;
892
1219
  padding: 8px 10px;
893
1220
  font-size: 12px;
894
- border: 1px solid ${({$theme:o})=>o.borderColor};
1221
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
895
1222
  border-radius: 4px;
896
- background: ${({$theme:o})=>o.backgroundColor};
897
- color: ${({$theme:o})=>o.textColor};
1223
+ background: ${({ $theme }) => $theme.backgroundColor};
1224
+ color: ${({ $theme }) => $theme.textColor};
898
1225
  outline: none;
899
1226
 
900
1227
  &::placeholder {
901
- color: ${({$theme:o})=>o.headerTextColor};
1228
+ color: ${({ $theme }) => $theme.headerTextColor};
902
1229
  opacity: 0.6;
903
1230
  }
904
1231
 
905
1232
  &:focus {
906
- border-color: ${({$theme:o})=>o.accentColor};
1233
+ border-color: ${({ $theme }) => $theme.accentColor};
907
1234
  }
908
1235
  }
909
- `,SidePanelSection=e.div`
910
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
911
- `,SidePanelSectionHeader=e.div`
1236
+ `;
1237
+ export const SidePanelSection = styled.div `
1238
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1239
+ `;
1240
+ export const SidePanelSectionHeader = styled.div `
912
1241
  display: flex;
913
1242
  align-items: center;
914
1243
  gap: 8px;
@@ -917,13 +1246,13 @@
917
1246
  font-weight: 600;
918
1247
  text-transform: uppercase;
919
1248
  letter-spacing: 0.5px;
920
- color: ${({$theme:o})=>o.headerTextColor};
921
- background: ${({$theme:o})=>o.headerBackgroundColor};
922
- cursor: ${({$collapsible:o})=>o?"pointer":"default"};
1249
+ color: ${({ $theme }) => $theme.headerTextColor};
1250
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
1251
+ cursor: ${({ $collapsible }) => ($collapsible ? 'pointer' : 'default')};
923
1252
  user-select: none;
924
1253
 
925
1254
  &:hover {
926
- background: ${({$collapsible:o,$theme:r})=>o?r.hoverRowBackgroundColor:r.headerBackgroundColor};
1255
+ background: ${({ $collapsible, $theme }) => ($collapsible ? $theme.hoverRowBackgroundColor : $theme.headerBackgroundColor)};
927
1256
  }
928
1257
 
929
1258
  svg {
@@ -931,33 +1260,37 @@
931
1260
  height: 12px;
932
1261
  transition: transform 0.2s ease;
933
1262
  }
934
- `,SidePanelColumnItem=e.div`
1263
+ `;
1264
+ export const SidePanelColumnItem = styled.div `
935
1265
  display: flex;
936
1266
  align-items: center;
937
1267
  gap: 8px;
938
1268
  padding: 6px 12px;
939
- padding-left: ${({$indent:o})=>o?`${12+o*16}px`:"12px"};
1269
+ padding-left: ${({ $indent }) => ($indent ? `${12 + $indent * 16}px` : '12px')};
940
1270
  font-size: 13px;
941
- color: ${({$theme:o})=>o.textColor};
1271
+ color: ${({ $theme }) => $theme.textColor};
942
1272
  cursor: pointer;
943
1273
  user-select: none;
944
1274
  transition: background-color 0.1s ease;
945
1275
  border-left: 2px solid transparent;
946
1276
 
947
- ${({$selected:o,$theme:r})=>o&&t`
948
- background: ${r.selectedRowBackgroundColor}40;
949
- border-left-color: ${r.accentColor};
1277
+ ${({ $selected, $theme }) => $selected &&
1278
+ css `
1279
+ background: ${$theme.selectedRowBackgroundColor}40;
1280
+ border-left-color: ${$theme.accentColor};
950
1281
  `}
951
1282
 
952
- ${({$dragging:o,$theme:r})=>o&&t`
1283
+ ${({ $dragging, $theme }) => $dragging &&
1284
+ css `
953
1285
  opacity: 0.5;
954
- background: ${r.accentColor}20;
1286
+ background: ${$theme.accentColor}20;
955
1287
  `}
956
1288
 
957
1289
  &:hover {
958
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
1290
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
959
1291
  }
960
- `,SidePanelDragHandle=e.span`
1292
+ `;
1293
+ export const SidePanelDragHandle = styled.span `
961
1294
  display: flex;
962
1295
  align-items: center;
963
1296
  justify-content: center;
@@ -979,32 +1312,39 @@
979
1312
  width: 12px;
980
1313
  height: 12px;
981
1314
  }
982
- `,SidePanelGroupLabel=e.span`
1315
+ `;
1316
+ export const SidePanelGroupLabel = styled.span `
983
1317
  flex: 1;
984
1318
  overflow: hidden;
985
1319
  text-overflow: ellipsis;
986
1320
  white-space: nowrap;
987
- `,RowGroupsZone=e.div`
1321
+ `;
1322
+ // ============================================================================
1323
+ // Row Groups Drop Zone
1324
+ // ============================================================================
1325
+ export const RowGroupsZone = styled.div `
988
1326
  display: flex;
989
1327
  align-items: center;
990
1328
  gap: 8px;
991
1329
  padding: 8px 12px;
992
1330
  min-height: 36px;
993
- background: ${({$theme:o,$dragOver:r})=>r?`${o.accentColor}15`:o.headerBackgroundColor};
994
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
995
- border: ${({$dragOver:o,$theme:r})=>o?`2px dashed ${r.accentColor}`:"1px solid transparent"};
1331
+ background: ${({ $theme, $dragOver }) => ($dragOver ? `${$theme.accentColor}15` : $theme.headerBackgroundColor)};
1332
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1333
+ border: ${({ $dragOver, $theme }) => ($dragOver ? `2px dashed ${$theme.accentColor}` : '1px solid transparent')};
996
1334
  transition: all 0.15s ease;
997
1335
  flex-wrap: wrap;
998
1336
 
999
- ${({$hasItems:o})=>!o&&t`
1337
+ ${({ $hasItems }) => !$hasItems &&
1338
+ css `
1000
1339
  justify-content: center;
1001
1340
  `}
1002
- `,RowGroupsLabel=e.span`
1341
+ `;
1342
+ export const RowGroupsLabel = styled.span `
1003
1343
  display: flex;
1004
1344
  align-items: center;
1005
1345
  gap: 6px;
1006
1346
  font-size: 12px;
1007
- color: ${({$theme:o})=>o.headerTextColor};
1347
+ color: ${({ $theme }) => $theme.headerTextColor};
1008
1348
  white-space: nowrap;
1009
1349
 
1010
1350
  svg {
@@ -1012,15 +1352,16 @@
1012
1352
  height: 14px;
1013
1353
  opacity: 0.6;
1014
1354
  }
1015
- `,RowGroupChip=e.div`
1355
+ `;
1356
+ export const RowGroupChip = styled.div `
1016
1357
  display: inline-flex;
1017
1358
  align-items: center;
1018
1359
  gap: 6px;
1019
1360
  padding: 4px 10px;
1020
1361
  font-size: 12px;
1021
1362
  font-weight: 500;
1022
- background: ${({$theme:o})=>o.accentColor}15;
1023
- color: ${({$theme:o})=>o.accentColor};
1363
+ background: ${({ $theme }) => $theme.accentColor}15;
1364
+ color: ${({ $theme }) => $theme.accentColor};
1024
1365
  border-radius: 16px;
1025
1366
  cursor: default;
1026
1367
 
@@ -1040,7 +1381,7 @@
1040
1381
 
1041
1382
  &:hover {
1042
1383
  opacity: 1;
1043
- background: ${({$theme:o})=>o.accentColor}30;
1384
+ background: ${({ $theme }) => $theme.accentColor}30;
1044
1385
  }
1045
1386
 
1046
1387
  svg {
@@ -1048,22 +1389,28 @@
1048
1389
  height: 10px;
1049
1390
  }
1050
1391
  }
1051
- `,ValuesPanel=e.div`
1392
+ `;
1393
+ // ============================================================================
1394
+ // Values/Aggregation Panel
1395
+ // ============================================================================
1396
+ export const ValuesPanel = styled.div `
1052
1397
  min-height: 60px;
1053
- `,ValueItem=e.div`
1398
+ `;
1399
+ export const ValueItem = styled.div `
1054
1400
  display: flex;
1055
1401
  align-items: center;
1056
1402
  justify-content: space-between;
1057
1403
  gap: 8px;
1058
1404
  padding: 6px 12px;
1059
1405
  font-size: 13px;
1060
- color: ${({$theme:o})=>o.textColor};
1406
+ color: ${({ $theme }) => $theme.textColor};
1061
1407
  cursor: pointer;
1062
1408
 
1063
1409
  &:hover {
1064
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
1410
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
1065
1411
  }
1066
- `,ValueItemLabel=e.span`
1412
+ `;
1413
+ export const ValueItemLabel = styled.span `
1067
1414
  display: flex;
1068
1415
  align-items: center;
1069
1416
  gap: 6px;
@@ -1075,7 +1422,8 @@
1075
1422
  height: 12px;
1076
1423
  opacity: 0.5;
1077
1424
  }
1078
- `,ValueItemRemove=e.button`
1425
+ `;
1426
+ export const ValueItemRemove = styled.button `
1079
1427
  display: flex;
1080
1428
  align-items: center;
1081
1429
  justify-content: center;
@@ -1090,24 +1438,30 @@
1090
1438
 
1091
1439
  &:hover {
1092
1440
  opacity: 1;
1093
- background: ${({$theme:o})=>o.borderColor};
1441
+ background: ${({ $theme }) => $theme.borderColor};
1094
1442
  }
1095
1443
 
1096
1444
  svg {
1097
1445
  width: 12px;
1098
1446
  height: 12px;
1099
1447
  }
1100
- `,PivotModeToggle=e.div`
1448
+ `;
1449
+ // ============================================================================
1450
+ // Pivot Mode Toggle
1451
+ // ============================================================================
1452
+ export const PivotModeToggle = styled.div `
1101
1453
  display: flex;
1102
1454
  align-items: center;
1103
1455
  justify-content: space-between;
1104
1456
  padding: 10px 12px;
1105
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
1106
- `,PivotModeLabel=e.span`
1457
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1458
+ `;
1459
+ export const PivotModeLabel = styled.span `
1107
1460
  font-size: 12px;
1108
1461
  font-weight: 500;
1109
- color: ${({$theme:o})=>o.textColor};
1110
- `,ToggleSwitch=e.label`
1462
+ color: ${({ $theme }) => $theme.textColor};
1463
+ `;
1464
+ export const ToggleSwitch = styled.label `
1111
1465
  position: relative;
1112
1466
  display: inline-block;
1113
1467
  width: 36px;
@@ -1123,7 +1477,7 @@
1123
1477
  span {
1124
1478
  position: absolute;
1125
1479
  inset: 0;
1126
- background: ${({$theme:o})=>o.borderColor};
1480
+ background: ${({ $theme }) => $theme.borderColor};
1127
1481
  border-radius: 20px;
1128
1482
  transition: all 0.2s ease;
1129
1483
 
@@ -1141,13 +1495,17 @@
1141
1495
  }
1142
1496
 
1143
1497
  input:checked + span {
1144
- background: ${({$theme:o})=>o.accentColor};
1498
+ background: ${({ $theme }) => $theme.accentColor};
1145
1499
  }
1146
1500
 
1147
1501
  input:checked + span::before {
1148
1502
  transform: translateX(16px);
1149
1503
  }
1150
- `,HeaderMenuButton=e.button`
1504
+ `;
1505
+ // ============================================================================
1506
+ // Column Header Menu (Three Dot Menu)
1507
+ // ============================================================================
1508
+ export const HeaderMenuButton = styled.button `
1151
1509
  display: flex;
1152
1510
  align-items: center;
1153
1511
  justify-content: center;
@@ -1155,56 +1513,59 @@
1155
1513
  height: 20px;
1156
1514
  padding: 0;
1157
1515
  border: none;
1158
- background: ${({$active:o,$theme:r})=>o?r.hoverRowBackgroundColor:"transparent"};
1516
+ background: ${({ $active, $theme }) => ($active ? $theme.hoverRowBackgroundColor : 'transparent')};
1159
1517
  border-radius: 3px;
1160
1518
  cursor: pointer;
1161
- opacity: ${({$active:o})=>o?1:0};
1519
+ opacity: ${({ $active }) => ($active ? 1 : 0)};
1162
1520
  transition: all 0.15s ease;
1163
1521
  flex-shrink: 0;
1164
1522
 
1165
1523
  &:hover {
1166
1524
  opacity: 1;
1167
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
1525
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
1168
1526
  }
1169
1527
 
1170
1528
  svg {
1171
1529
  width: 14px;
1172
1530
  height: 14px;
1173
- color: ${({$theme:o})=>o.headerTextColor};
1531
+ color: ${({ $theme }) => $theme.headerTextColor};
1174
1532
  }
1175
- `,ColumnMenuPopup=e.div`
1533
+ `;
1534
+ export const ColumnMenuPopup = styled.div `
1176
1535
  position: fixed;
1177
- top: ${({$y:o})=>o}px;
1178
- left: ${({$x:o})=>o}px;
1536
+ top: ${({ $y }) => $y}px;
1537
+ left: ${({ $x }) => $x}px;
1179
1538
  min-width: 200px;
1180
1539
  max-width: 280px;
1181
- background: ${({$theme:o})=>o.backgroundColor};
1182
- border: 1px solid ${({$theme:o})=>o.borderColor};
1540
+ background: ${({ $theme }) => $theme.backgroundColor};
1541
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
1183
1542
  border-radius: 6px;
1184
1543
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
1185
1544
  z-index: 1000;
1186
1545
  overflow: hidden;
1187
- animation: ${i} 0.15s ease;
1188
- `,ColumnMenuSection=e.div`
1546
+ animation: ${fadeIn} 0.15s ease;
1547
+ `;
1548
+ export const ColumnMenuSection = styled.div `
1189
1549
  padding: 4px 0;
1190
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
1550
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1191
1551
 
1192
1552
  &:last-child {
1193
1553
  border-bottom: none;
1194
1554
  }
1195
- `,ColumnMenuItem=e.div`
1555
+ `;
1556
+ export const ColumnMenuItem = styled.div `
1196
1557
  display: flex;
1197
1558
  align-items: center;
1198
1559
  gap: 10px;
1199
1560
  padding: 8px 12px;
1200
1561
  font-size: 13px;
1201
- color: ${({$theme:o,$disabled:r})=>r?o.headerTextColor:o.textColor};
1202
- cursor: ${({$disabled:o})=>o?"not-allowed":"pointer"};
1203
- opacity: ${({$disabled:o})=>o?.5:1};
1562
+ color: ${({ $theme, $disabled }) => ($disabled ? $theme.headerTextColor : $theme.textColor)};
1563
+ cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};
1564
+ opacity: ${({ $disabled }) => ($disabled ? 0.5 : 1)};
1204
1565
  transition: background-color 0.1s ease;
1205
1566
 
1206
1567
  &:hover {
1207
- background: ${({$disabled:o,$theme:r})=>o?"transparent":r.hoverRowBackgroundColor};
1568
+ background: ${({ $disabled, $theme }) => ($disabled ? 'transparent' : $theme.hoverRowBackgroundColor)};
1208
1569
  }
1209
1570
 
1210
1571
  svg {
@@ -1218,7 +1579,8 @@
1218
1579
  flex: 1;
1219
1580
  }
1220
1581
 
1221
- ${({$hasSubmenu:o})=>o&&t`
1582
+ ${({ $hasSubmenu }) => $hasSubmenu &&
1583
+ css `
1222
1584
  &::after {
1223
1585
  content: '›';
1224
1586
  margin-left: auto;
@@ -1226,175 +1588,207 @@
1226
1588
  opacity: 0.5;
1227
1589
  }
1228
1590
  `}
1229
- `,ColumnMenuSubmenu=e.div`
1591
+ `;
1592
+ export const ColumnMenuSubmenu = styled.div `
1230
1593
  position: absolute;
1231
1594
  top: 0;
1232
1595
  left: 100%;
1233
1596
  min-width: 150px;
1234
- background: ${({$theme:o})=>o.backgroundColor};
1235
- border: 1px solid ${({$theme:o})=>o.borderColor};
1597
+ background: ${({ $theme }) => $theme.backgroundColor};
1598
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
1236
1599
  border-radius: 6px;
1237
1600
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
1238
1601
  overflow: hidden;
1239
- `,SetFilterContainer=e.div`
1602
+ `;
1603
+ // ============================================================================
1604
+ // Set Filter (Filter by unique values)
1605
+ // ============================================================================
1606
+ export const SetFilterContainer = styled.div `
1240
1607
  min-width: 200px;
1241
1608
  max-width: 300px;
1242
1609
  max-height: 400px;
1243
- background: ${({$theme:o})=>o.backgroundColor};
1244
- border: 1px solid ${({$theme:o})=>o.borderColor};
1610
+ background: ${({ $theme }) => $theme.backgroundColor};
1611
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
1245
1612
  border-radius: 6px;
1246
1613
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
1247
1614
  overflow: hidden;
1248
1615
  display: flex;
1249
1616
  flex-direction: column;
1250
- `,SetFilterHeader=e.div`
1617
+ `;
1618
+ export const SetFilterHeader = styled.div `
1251
1619
  padding: 8px 12px;
1252
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
1620
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1253
1621
  font-size: 12px;
1254
1622
  font-weight: 600;
1255
- color: ${({$theme:o})=>o.headerTextColor};
1256
- background: ${({$theme:o})=>o.headerBackgroundColor};
1257
- `,SetFilterSearch=e.div`
1623
+ color: ${({ $theme }) => $theme.headerTextColor};
1624
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
1625
+ `;
1626
+ export const SetFilterSearch = styled.div `
1258
1627
  padding: 8px 10px;
1259
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
1628
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1260
1629
 
1261
1630
  input {
1262
1631
  width: 100%;
1263
1632
  padding: 6px 10px;
1264
1633
  font-size: 12px;
1265
- border: 1px solid ${({$theme:o})=>o.borderColor};
1634
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
1266
1635
  border-radius: 4px;
1267
- background: ${({$theme:o})=>o.backgroundColor};
1268
- color: ${({$theme:o})=>o.textColor};
1636
+ background: ${({ $theme }) => $theme.backgroundColor};
1637
+ color: ${({ $theme }) => $theme.textColor};
1269
1638
  outline: none;
1270
1639
 
1271
1640
  &:focus {
1272
- border-color: ${({$theme:o})=>o.accentColor};
1641
+ border-color: ${({ $theme }) => $theme.accentColor};
1273
1642
  }
1274
1643
 
1275
1644
  &::placeholder {
1276
- color: ${({$theme:o})=>o.headerTextColor};
1645
+ color: ${({ $theme }) => $theme.headerTextColor};
1277
1646
  opacity: 0.6;
1278
1647
  }
1279
1648
  }
1280
- `,SetFilterList=e.div`
1649
+ `;
1650
+ export const SetFilterList = styled.div `
1281
1651
  flex: 1;
1282
1652
  overflow-y: auto;
1283
1653
  max-height: 280px;
1284
- `,SetFilterItem=e.label`
1654
+ `;
1655
+ export const SetFilterItem = styled.label `
1285
1656
  display: flex;
1286
1657
  align-items: center;
1287
1658
  gap: 8px;
1288
1659
  padding: 6px 12px;
1289
1660
  font-size: 13px;
1290
- color: ${({$theme:o})=>o.textColor};
1661
+ color: ${({ $theme }) => $theme.textColor};
1291
1662
  cursor: pointer;
1292
1663
  transition: background-color 0.1s ease;
1293
- border-bottom: ${({$selectAll:o,$theme:r})=>o?`1px solid ${r.borderColor}`:"none"};
1294
- font-weight: ${({$selectAll:o})=>o?"500":"normal"};
1664
+ border-bottom: ${({ $selectAll, $theme }) => ($selectAll ? `1px solid ${$theme.borderColor}` : 'none')};
1665
+ font-weight: ${({ $selectAll }) => ($selectAll ? '500' : 'normal')};
1295
1666
 
1296
1667
  &:hover {
1297
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
1668
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
1298
1669
  }
1299
1670
 
1300
1671
  input {
1301
1672
  margin: 0;
1302
- accent-color: ${({$theme:o})=>o.accentColor};
1673
+ accent-color: ${({ $theme }) => $theme.accentColor};
1303
1674
  }
1304
- `,SetFilterActions=e.div`
1675
+ `;
1676
+ export const SetFilterActions = styled.div `
1305
1677
  display: flex;
1306
1678
  gap: 8px;
1307
1679
  padding: 8px 10px;
1308
- border-top: 1px solid ${({$theme:o})=>o.borderColor};
1309
- background: ${({$theme:o})=>o.headerBackgroundColor};
1310
- `,SetFilterButton=e.button`
1680
+ border-top: 1px solid ${({ $theme }) => $theme.borderColor};
1681
+ background: ${({ $theme }) => $theme.headerBackgroundColor};
1682
+ `;
1683
+ export const SetFilterButton = styled.button `
1311
1684
  flex: 1;
1312
1685
  padding: 6px 12px;
1313
1686
  font-size: 12px;
1314
1687
  font-weight: 500;
1315
- border: 1px solid ${({$theme:o,$primary:r})=>r?o.accentColor:o.borderColor};
1688
+ border: 1px solid ${({ $theme, $primary }) => ($primary ? $theme.accentColor : $theme.borderColor)};
1316
1689
  border-radius: 4px;
1317
- background: ${({$theme:o,$primary:r})=>r?o.accentColor:o.backgroundColor};
1318
- color: ${({$primary:o,$theme:r})=>o?"#ffffff":r.textColor};
1690
+ background: ${({ $theme, $primary }) => ($primary ? $theme.accentColor : $theme.backgroundColor)};
1691
+ color: ${({ $primary, $theme }) => ($primary ? '#ffffff' : $theme.textColor)};
1319
1692
  cursor: pointer;
1320
1693
  transition: all 0.15s ease;
1321
1694
 
1322
1695
  &:hover {
1323
1696
  filter: brightness(0.95);
1324
1697
  }
1325
- `,FilterPanelColumn=e.div`
1326
- border-bottom: 1px solid ${({$theme:o})=>o.borderColor};
1327
- `,FilterPanelHeader=e.div`
1698
+ `;
1699
+ // ============================================================================
1700
+ // Filter Panel in Side Bar
1701
+ // ============================================================================
1702
+ export const FilterPanelColumn = styled.div `
1703
+ border-bottom: 1px solid ${({ $theme }) => $theme.borderColor};
1704
+ `;
1705
+ export const FilterPanelHeader = styled.div `
1328
1706
  display: flex;
1329
1707
  align-items: center;
1330
1708
  gap: 8px;
1331
1709
  padding: 8px 12px;
1332
1710
  font-size: 13px;
1333
1711
  font-weight: 500;
1334
- color: ${({$theme:o,$hasFilter:r})=>r?o.accentColor:o.textColor};
1712
+ color: ${({ $theme, $hasFilter }) => ($hasFilter ? $theme.accentColor : $theme.textColor)};
1335
1713
  cursor: pointer;
1336
1714
  transition: background-color 0.1s ease;
1337
1715
 
1338
1716
  &:hover {
1339
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
1717
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
1340
1718
  }
1341
1719
 
1342
1720
  svg {
1343
1721
  width: 12px;
1344
1722
  height: 12px;
1345
1723
  transition: transform 0.2s ease;
1346
- transform: ${({$expanded:o})=>o?"rotate(90deg)":"rotate(0deg)"};
1724
+ transform: ${({ $expanded }) => ($expanded ? 'rotate(90deg)' : 'rotate(0deg)')};
1347
1725
  opacity: 0.5;
1348
1726
  }
1349
- `,FilterPanelContent=e.div`
1350
- display: ${({$expanded:o})=>o?"block":"none"};
1727
+ `;
1728
+ export const FilterPanelContent = styled.div `
1729
+ display: ${({ $expanded }) => ($expanded ? 'block' : 'none')};
1351
1730
  padding: 8px 12px;
1352
- background: ${({$theme:o})=>o.headerBackgroundColor}50;
1353
- `,GridLayout=e.div`
1731
+ background: ${({ $theme }) => $theme.headerBackgroundColor}50;
1732
+ `;
1733
+ // ============================================================================
1734
+ // Grid Container with Side Panel Layout
1735
+ // ============================================================================
1736
+ export const GridLayout = styled.div `
1354
1737
  display: flex;
1355
1738
  width: 100%;
1356
1739
  height: 100%;
1357
1740
  overflow: hidden;
1358
- `,GridMainArea=e.div`
1741
+ `;
1742
+ export const GridMainArea = styled.div `
1359
1743
  flex: 1;
1360
1744
  display: flex;
1361
1745
  flex-direction: column;
1362
1746
  min-width: 0;
1363
1747
  overflow: hidden;
1364
- `,ColumnVisibilityDropdown=e.div`
1748
+ `;
1749
+ // ============================================================================
1750
+ // Column Visibility Dropdown
1751
+ // ============================================================================
1752
+ export const ColumnVisibilityDropdown = styled.div `
1365
1753
  position: absolute;
1366
1754
  top: 100%;
1367
1755
  right: 0;
1368
1756
  min-width: 220px;
1369
1757
  max-height: 400px;
1370
- background: ${({$theme:o})=>o.backgroundColor};
1371
- border: 1px solid ${({$theme:o})=>o.borderColor};
1758
+ background: ${({ $theme }) => $theme.backgroundColor};
1759
+ border: 1px solid ${({ $theme }) => $theme.borderColor};
1372
1760
  border-radius: 6px;
1373
1761
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
1374
1762
  z-index: 100;
1375
1763
  overflow: hidden;
1376
1764
  display: flex;
1377
1765
  flex-direction: column;
1378
- animation: ${i} 0.15s ease;
1379
- `,ColumnVisibilityList=e.div`
1766
+ animation: ${fadeIn} 0.15s ease;
1767
+ `;
1768
+ export const ColumnVisibilityList = styled.div `
1380
1769
  flex: 1;
1381
1770
  overflow-y: auto;
1382
- `,ColumnVisibilityItem=e.label`
1771
+ `;
1772
+ export const ColumnVisibilityItem = styled.label `
1383
1773
  display: flex;
1384
1774
  align-items: center;
1385
1775
  gap: 8px;
1386
1776
  padding: 8px 12px;
1387
1777
  font-size: 13px;
1388
- color: ${({$theme:o})=>o.textColor};
1778
+ color: ${({ $theme }) => $theme.textColor};
1389
1779
  cursor: pointer;
1390
1780
  transition: background-color 0.1s ease;
1391
1781
 
1392
1782
  &:hover {
1393
- background: ${({$theme:o})=>o.hoverRowBackgroundColor};
1783
+ background: ${({ $theme }) => $theme.hoverRowBackgroundColor};
1394
1784
  }
1395
1785
 
1396
1786
  input {
1397
1787
  margin: 0;
1398
- accent-color: ${({$theme:o})=>o.accentColor};
1788
+ accent-color: ${({ $theme }) => $theme.accentColor};
1399
1789
  }
1400
- `;export{a as themes};
1790
+ `;
1791
+ // ============================================================================
1792
+ // Export all themes
1793
+ // ============================================================================
1794
+ export { themes };