atomicuilibrary 0.1.0 → 0.1.3

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 (618) hide show
  1. package/dist/cjs/category-section.cjs.entry.js +2 -2
  2. package/dist/cjs/dom-BvBb0kmW.js +267 -0
  3. package/dist/cjs/exploration-project-tailwind.cjs.js +2 -2
  4. package/dist/cjs/{index-ClkOYpT8.js → index-C32cWsm5.js} +1 -1
  5. package/dist/cjs/layout-manager.cjs.entry.js +3 -3
  6. package/dist/cjs/library-card.cjs.entry.js +2 -2
  7. package/dist/cjs/lm-container_2.cjs.entry.js +2 -2
  8. package/dist/cjs/lm-panel_3.cjs.entry.js +4 -4
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/my-component.cjs.entry.js +1 -1
  11. package/dist/cjs/my-step.cjs.entry.js +2 -2
  12. package/dist/cjs/nav-bar.cjs.entry.js +4 -4
  13. package/dist/cjs/smart-step.cjs.entry.js +3 -3
  14. package/dist/cjs/timeline-item.cjs.entry.js +2 -2
  15. package/dist/cjs/ui-accordion_11.cjs.entry.js +132 -50
  16. package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2 -2
  17. package/dist/cjs/ui-anchor.cjs.entry.js +2 -2
  18. package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +3 -3
  19. package/dist/cjs/ui-aside-panel.cjs.entry.js +10 -11
  20. package/dist/cjs/ui-avatar-group_5.cjs.entry.js +1694 -0
  21. package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +3 -3
  22. package/dist/cjs/ui-breadcrumb.cjs.entry.js +1 -1
  23. package/dist/cjs/ui-callout-banner.cjs.entry.js +2 -2
  24. package/dist/cjs/ui-card.cjs.entry.js +4 -3
  25. package/dist/cjs/ui-carousel.cjs.entry.js +1 -1
  26. package/dist/cjs/ui-checkbox.cjs.entry.js +3 -3
  27. package/dist/cjs/ui-code-editor.cjs.entry.js +2 -2
  28. package/dist/cjs/ui-code-preview.cjs.entry.js +2 -2
  29. package/dist/cjs/ui-color-picker.cjs.entry.js +256 -22
  30. package/dist/cjs/ui-command-palette.cjs.entry.js +1 -1
  31. package/dist/cjs/ui-dialog-box.cjs.entry.js +85 -11
  32. package/dist/cjs/ui-dialog-content.cjs.entry.js +1 -1
  33. package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +1 -1
  34. package/dist/cjs/ui-divider.cjs.entry.js +1 -1
  35. package/dist/cjs/ui-dock-host.cjs.entry.js +4 -4
  36. package/dist/cjs/ui-dock.cjs.entry.js +2 -2
  37. package/dist/cjs/ui-drag-drop.cjs.entry.js +2 -2
  38. package/dist/cjs/ui-dropdown_2.cjs.entry.js +104 -34
  39. package/dist/cjs/ui-empty-state.cjs.entry.js +2 -2
  40. package/dist/cjs/ui-fab-item.cjs.entry.js +2 -2
  41. package/dist/cjs/ui-fab.cjs.entry.js +4 -4
  42. package/dist/cjs/ui-file-upload.cjs.entry.js +143 -44
  43. package/dist/cjs/ui-horizontal-nav.cjs.entry.js +2 -2
  44. package/dist/cjs/ui-knob.cjs.entry.js +1 -1
  45. package/dist/cjs/ui-label.cjs.entry.js +473 -0
  46. package/dist/cjs/ui-library.cjs.entry.js +2 -2
  47. package/dist/cjs/ui-list-group_2.cjs.entry.js +349 -60
  48. package/dist/cjs/ui-list.cjs.entry.js +76 -42
  49. package/dist/cjs/ui-masonry.cjs.entry.js +1 -1
  50. package/dist/cjs/ui-meter-group.cjs.entry.js +5 -4
  51. package/dist/cjs/ui-navigation-item.cjs.entry.js +5 -5
  52. package/dist/cjs/ui-number-input.cjs.entry.js +7 -3
  53. package/dist/cjs/ui-otp-input.cjs.entry.js +5 -5
  54. package/dist/cjs/{ui-pagination_4.cjs.entry.js → ui-pagination_3.cjs.entry.js} +35 -506
  55. package/dist/cjs/ui-panel.cjs.entry.js +1 -1
  56. package/dist/cjs/ui-pattern-input.cjs.entry.js +46 -11
  57. package/dist/cjs/ui-progress.cjs.entry.js +66 -9
  58. package/dist/cjs/ui-range-slider.cjs.entry.js +2 -2
  59. package/dist/cjs/ui-resizable-panel.cjs.entry.js +2 -2
  60. package/dist/cjs/ui-scroll-top.cjs.entry.js +1 -1
  61. package/dist/cjs/ui-smart-context-menu.cjs.entry.js +1 -1
  62. package/dist/cjs/ui-smart-stepper.cjs.entry.js +2 -2
  63. package/dist/cjs/ui-snackbar.cjs.entry.js +1 -1
  64. package/dist/cjs/ui-speed-dial.cjs.entry.js +1 -1
  65. package/dist/cjs/ui-speedometer.cjs.entry.js +28 -17
  66. package/dist/cjs/ui-splitter.cjs.entry.js +1 -1
  67. package/dist/cjs/ui-step.cjs.entry.js +2 -2
  68. package/dist/cjs/ui-stepper.cjs.entry.js +1 -1
  69. package/dist/cjs/ui-switch.cjs.entry.js +14 -13
  70. package/dist/cjs/ui-tabs.cjs.entry.js +2 -2
  71. package/dist/cjs/ui-tag.cjs.entry.js +58 -13
  72. package/dist/cjs/ui-timeline.cjs.entry.js +10 -2
  73. package/dist/cjs/ui-timer.cjs.entry.js +2 -2
  74. package/dist/cjs/ui-toolbar.cjs.entry.js +2 -2
  75. package/dist/cjs/ui-tooltip.cjs.entry.js +4 -4
  76. package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
  77. package/dist/cjs/ui-transfer-list.cjs.entry.js +6 -6
  78. package/dist/cjs/ui-tree.cjs.entry.js +30 -15
  79. package/dist/cjs/ui-workspace-manager.cjs.entry.js +2 -2
  80. package/dist/collection/assets/js/component-config.js +1 -0
  81. package/dist/collection/assets/js/demo-loader.js +2 -0
  82. package/dist/collection/assets/js/demos/about-demo.js +13 -13
  83. package/dist/collection/assets/js/demos/accordion-demo.js +66 -66
  84. package/dist/collection/assets/js/demos/advanced-data-table-demo.js +102 -102
  85. package/dist/collection/assets/js/demos/anchor-demo.js +27 -28
  86. package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +12 -12
  87. package/dist/collection/assets/js/demos/aside-panel-demo.js +51 -51
  88. package/dist/collection/assets/js/demos/avatar-demo.js +433 -95
  89. package/dist/collection/assets/js/demos/badge-demo.js +51 -52
  90. package/dist/collection/assets/js/demos/breadcrumb-demo.js +7 -7
  91. package/dist/collection/assets/js/demos/button-demo.js +117 -107
  92. package/dist/collection/assets/js/demos/button-toggle-demo.js +199 -96
  93. package/dist/collection/assets/js/demos/callout-banner-demo.js +23 -23
  94. package/dist/collection/assets/js/demos/card-demo.js +23 -22
  95. package/dist/collection/assets/js/demos/carousel-demo.js +632 -360
  96. package/dist/collection/assets/js/demos/checkbox-demo.js +124 -7
  97. package/dist/collection/assets/js/demos/color-picker-demo.js +394 -100
  98. package/dist/collection/assets/js/demos/command-palette-demo.js +182 -65
  99. package/dist/collection/assets/js/demos/complex-form-demo.js +5 -5
  100. package/dist/collection/assets/js/demos/context-menu-demo.js +43 -43
  101. package/dist/collection/assets/js/demos/dialog-demo-temp.js +3 -3
  102. package/dist/collection/assets/js/demos/dialog-demo.js +336 -230
  103. package/dist/collection/assets/js/demos/divider-demo.js +59 -62
  104. package/dist/collection/assets/js/demos/dock-demo.js +12 -12
  105. package/dist/collection/assets/js/demos/dock-host-init.js +31 -31
  106. package/dist/collection/assets/js/demos/documentation-demo.js +34 -34
  107. package/dist/collection/assets/js/demos/drag-drop-demo.js +2 -2
  108. package/dist/collection/assets/js/demos/dropdown-demo.js +140 -136
  109. package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +2 -2
  110. package/dist/collection/assets/js/demos/empty-state-demo.js +294 -78
  111. package/dist/collection/assets/js/demos/fab-demo.js +95 -11
  112. package/dist/collection/assets/js/demos/file-upload-demo.js +641 -171
  113. package/dist/collection/assets/js/demos/home-components.js +2 -2
  114. package/dist/collection/assets/js/demos/horizontal-nav-demo.js +6 -6
  115. package/dist/collection/assets/js/demos/icon-demo.js +17 -17
  116. package/dist/collection/assets/js/demos/input-demo.js +147 -143
  117. package/dist/collection/assets/js/demos/knob-demo.js +29 -30
  118. package/dist/collection/assets/js/demos/label-demo.js +697 -0
  119. package/dist/collection/assets/js/demos/layout-manager-demo.js +55 -55
  120. package/dist/collection/assets/js/demos/list-demo.js +185 -122
  121. package/dist/collection/assets/js/demos/loader-demo.js +48 -48
  122. package/dist/collection/assets/js/demos/masonry-demo.js +568 -140
  123. package/dist/collection/assets/js/demos/meter-group-demo.js +14 -16
  124. package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +25 -25
  125. package/dist/collection/assets/js/demos/my-profile-demo.js +27 -27
  126. package/dist/collection/assets/js/demos/nav-bar-demo.js +1 -1
  127. package/dist/collection/assets/js/demos/number-input-demo.js +262 -211
  128. package/dist/collection/assets/js/demos/pagination-demo.js +29 -29
  129. package/dist/collection/assets/js/demos/panel-demo.js +18 -25
  130. package/dist/collection/assets/js/demos/pattern-input-demo.js +278 -40
  131. package/dist/collection/assets/js/demos/popover-demo.js +240 -149
  132. package/dist/collection/assets/js/demos/progress-demo.js +170 -156
  133. package/dist/collection/assets/js/demos/radio-demo.js +73 -12
  134. package/dist/collection/assets/js/demos/range-slider-demo.js +33 -33
  135. package/dist/collection/assets/js/demos/rating-demo.js +19 -19
  136. package/dist/collection/assets/js/demos/scroll-top-demo.js +8 -9
  137. package/dist/collection/assets/js/demos/skeleton-demo.js +110 -52
  138. package/dist/collection/assets/js/demos/skeleton-performance-demo.js +2 -2
  139. package/dist/collection/assets/js/demos/smart-dialog-demo.js +12 -12
  140. package/dist/collection/assets/js/demos/smart-menu-demo.js +17 -17
  141. package/dist/collection/assets/js/demos/snackbar-demo.js +53 -53
  142. package/dist/collection/assets/js/demos/speed-dial-demo.js +14 -14
  143. package/dist/collection/assets/js/demos/speedometer-demo.js +40 -32
  144. package/dist/collection/assets/js/demos/split-button-demo.js +2 -2
  145. package/dist/collection/assets/js/demos/splitter-demo.js +14 -14
  146. package/dist/collection/assets/js/demos/stack-demo.js +27 -27
  147. package/dist/collection/assets/js/demos/stepper-demo.js +49 -49
  148. package/dist/collection/assets/js/demos/switch-demo.js +561 -125
  149. package/dist/collection/assets/js/demos/tabs-demo.js +22 -22
  150. package/dist/collection/assets/js/demos/tag-demo.js +62 -62
  151. package/dist/collection/assets/js/demos/theme-selector-demo.js +27 -27
  152. package/dist/collection/assets/js/demos/timeline-demo.js +10 -10
  153. package/dist/collection/assets/js/demos/timeline-playground.js +2 -2
  154. package/dist/collection/assets/js/demos/timer-demo.js +10 -10
  155. package/dist/collection/assets/js/demos/toolbar-demo.js +17 -17
  156. package/dist/collection/assets/js/demos/tooltip-demo.js +92 -90
  157. package/dist/collection/assets/js/demos/top-bar-demo.js +6 -6
  158. package/dist/collection/assets/js/demos/transfer-list-demo.js +20 -20
  159. package/dist/collection/assets/js/demos/tree-demo.js +50 -66
  160. package/dist/collection/assets/js/demos/workspace-manager-demo.js +20 -20
  161. package/dist/collection/collection-manifest.json +1 -2
  162. package/dist/collection/components/accordion/accordion.css +275 -9
  163. package/dist/collection/components/accordion/accordion.js +7 -6
  164. package/dist/collection/components/advanced-data-table/advanced-data-table.css +5 -5
  165. package/dist/collection/components/advanced-data-table/advanced-data-table.js +2 -2
  166. package/dist/collection/components/anchor/anchor.css +1 -0
  167. package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +2 -2
  168. package/dist/collection/components/aside-panel/aside-panel.css +2 -2
  169. package/dist/collection/components/aside-panel/aside-panel.js +10 -11
  170. package/dist/collection/components/avatar/avatar.css +6 -6
  171. package/dist/collection/components/avatar/avatar.js +63 -11
  172. package/dist/collection/components/badge/badge.css +27 -17
  173. package/dist/collection/components/badge/badge.js +6 -3
  174. package/dist/collection/components/breadcrumb/breadcrumb-item.js +2 -2
  175. package/dist/collection/components/button/button.css +1 -0
  176. package/dist/collection/components/button/button.js +3 -3
  177. package/dist/collection/components/button-toggle/button-toggle.js +2 -2
  178. package/dist/collection/components/button-toggle-group/button-toggle-group.css +161 -14
  179. package/dist/collection/components/button-toggle-group/button-toggle-group.js +2 -2
  180. package/dist/collection/components/callout-banner/callout-banner.css +75 -0
  181. package/dist/collection/components/callout-banner/callout-banner.js +1 -1
  182. package/dist/collection/components/card/card.css +221 -9
  183. package/dist/collection/components/card/card.js +3 -2
  184. package/dist/collection/components/checkbox/checkbox.js +3 -3
  185. package/dist/collection/components/code-editor/code-editor.js +1 -1
  186. package/dist/collection/components/code-preview/ui-code-preview.js +1 -1
  187. package/dist/collection/components/color-picker/color-picker.css +110 -6
  188. package/dist/collection/components/color-picker/color-picker.js +302 -26
  189. package/dist/collection/components/context-menu/context-menu.css +9 -9
  190. package/dist/collection/components/dialog-box/dialog-box.js +116 -14
  191. package/dist/collection/components/dialog-header/dialog-header.js +1 -1
  192. package/dist/collection/components/dock/dock.css +116 -3
  193. package/dist/collection/components/dock-host/ui-dock-host.js +3 -3
  194. package/dist/collection/components/drag-drop/drag-drop.js +1 -1
  195. package/dist/collection/components/dropdown/dropdown.css +101 -8
  196. package/dist/collection/components/dropdown/dropdown.js +94 -28
  197. package/dist/collection/components/empty-state/empty-state.js +1 -1
  198. package/dist/collection/components/fab/fab.css +87 -15
  199. package/dist/collection/components/fab/fab.js +3 -3
  200. package/dist/collection/components/fab-item/fab-item.js +1 -1
  201. package/dist/collection/components/file-upload/file-upload.css +1362 -31
  202. package/dist/collection/components/file-upload/file-upload.js +171 -50
  203. package/dist/collection/components/horizontal-nav/horizontal-nav.css +9 -9
  204. package/dist/collection/components/horizontal-nav/horizontal-nav.js +2 -2
  205. package/dist/collection/components/icon/icon.js +1 -1
  206. package/dist/collection/components/input/input.css +9 -0
  207. package/dist/collection/components/input/input.js +20 -9
  208. package/dist/collection/components/label/label.css +583 -0
  209. package/dist/collection/components/label/label.js +1669 -0
  210. package/dist/collection/components/layout-manager/layout-manager.js +1 -1
  211. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +1 -1
  212. package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +1 -1
  213. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +1 -1
  214. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +1 -1
  215. package/dist/collection/components/library/category-section.js +1 -1
  216. package/dist/collection/components/library/library-card.js +1 -1
  217. package/dist/collection/components/library/library.js +1 -1
  218. package/dist/collection/components/list/list.css +46 -5
  219. package/dist/collection/components/list/list.js +76 -42
  220. package/dist/collection/components/list-group/list-group.css +0 -2
  221. package/dist/collection/components/list-group/list-group.js +11 -5
  222. package/dist/collection/components/list-item/list-item.css +403 -131
  223. package/dist/collection/components/list-item/list-item.js +345 -61
  224. package/dist/collection/components/loader/loader.css +1 -1
  225. package/dist/collection/components/loader/loader.js +2 -2
  226. package/dist/collection/components/meter-group/meter-group.css +5 -0
  227. package/dist/collection/components/meter-group/meter-group.js +3 -2
  228. package/dist/collection/components/my-step/my-step.js +1 -1
  229. package/dist/collection/components/nav-bar/nav-bar.css +4 -4
  230. package/dist/collection/components/nav-bar/nav-bar.js +6 -6
  231. package/dist/collection/components/number-input/number-input.js +6 -2
  232. package/dist/collection/components/otp-input/otp-input.css +10 -0
  233. package/dist/collection/components/otp-input/otp-input.js +3 -3
  234. package/dist/collection/components/pagination/pagination.js +1 -1
  235. package/dist/collection/components/pattern-input/pattern-input.css +0 -1
  236. package/dist/collection/components/pattern-input/pattern-input.js +44 -9
  237. package/dist/collection/components/popover/popover.css +35 -7
  238. package/dist/collection/components/popover/popover.js +64 -9
  239. package/dist/collection/components/progress/progress.css +176 -32
  240. package/dist/collection/components/progress/progress.js +66 -8
  241. package/dist/collection/components/radio/radio.css +2 -0
  242. package/dist/collection/components/radio/radio.js +2 -2
  243. package/dist/collection/components/range-slider/range-slider.css +284 -31
  244. package/dist/collection/components/range-slider/range-slider.js +5 -5
  245. package/dist/collection/components/rating/rating.css +151 -65
  246. package/dist/collection/components/rating/rating.js +31 -13
  247. package/dist/collection/components/resizable-panel/resizable-panel.js +1 -1
  248. package/dist/collection/components/skeleton/skeleton-loader.css +144 -44
  249. package/dist/collection/components/skeleton/skeleton-loader.js +11 -7
  250. package/dist/collection/components/smart-stepper/smart-step.js +2 -2
  251. package/dist/collection/components/smart-stepper/smart-stepper.js +1 -1
  252. package/dist/collection/components/speedometer/speedometer.css +26 -6
  253. package/dist/collection/components/speedometer/speedometer.js +26 -15
  254. package/dist/collection/components/stack/stack.js +2 -2
  255. package/dist/collection/components/step/step.js +1 -1
  256. package/dist/collection/components/stepper/stepper.js +1 -1
  257. package/dist/collection/components/switch/switch.css +367 -8
  258. package/dist/collection/components/switch/switch.js +13 -12
  259. package/dist/collection/components/tag/tag.css +38 -12
  260. package/dist/collection/components/tag/tag.js +58 -13
  261. package/dist/collection/components/tag-group/tag-group.css +0 -1
  262. package/dist/collection/components/tag-group/tag-group.js +3 -3
  263. package/dist/collection/components/timeline/timeline.css +380 -317
  264. package/dist/collection/components/timeline/timeline.js +8 -0
  265. package/dist/collection/components/timeline-item/timeline-item.js +1 -1
  266. package/dist/collection/components/timer/timer.js +1 -1
  267. package/dist/collection/components/toggle-group/toggle-group.css +7 -3
  268. package/dist/collection/components/toggle-group/toggle-group.js +7 -3
  269. package/dist/collection/components/toolbar/toolbar.js +1 -1
  270. package/dist/collection/components/tooltip/tooltip.js +4 -4
  271. package/dist/collection/components/top-bar/top-bar.js +2 -2
  272. package/dist/collection/components/transfer-list/transfer-list.css +13 -13
  273. package/dist/collection/components/transfer-list/transfer-list.js +4 -4
  274. package/dist/collection/components/tree/tree.css +35 -21
  275. package/dist/collection/components/tree/tree.js +28 -13
  276. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +34 -16
  277. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +46 -11
  278. package/dist/collection/components/ui-navigation-bar/navigation-item.css +7 -7
  279. package/dist/collection/components/ui-navigation-bar/navigation-item.js +3 -3
  280. package/dist/collection/utils/dom.js +151 -151
  281. package/dist/components/avatar-group.js +1 -1
  282. package/dist/components/avatar.js +1 -1
  283. package/dist/components/badge.js +1 -1
  284. package/dist/components/button-toggle.js +1 -1
  285. package/dist/components/button.js +1 -0
  286. package/dist/components/category-section2.js +1 -1
  287. package/dist/components/checkbox.js +1 -1
  288. package/dist/components/context-menu.js +1 -1
  289. package/dist/components/dialog-header.js +1 -1
  290. package/dist/components/dom.js +1 -1
  291. package/dist/components/dropdown.js +1 -1
  292. package/dist/components/icon.js +2 -2
  293. package/dist/components/input.js +1 -1
  294. package/dist/components/layout-manager.js +1 -1
  295. package/dist/components/library-card2.js +1 -1
  296. package/dist/components/list-group.js +1 -1
  297. package/dist/components/list-item.js +1 -1
  298. package/dist/components/lm-container2.js +1 -1
  299. package/dist/components/lm-floating-window2.js +1 -1
  300. package/dist/components/lm-panel2.js +1 -1
  301. package/dist/components/lm-splitter2.js +1 -1
  302. package/dist/components/lm-tabs2.js +1 -1
  303. package/dist/components/loader.js +1 -1
  304. package/dist/components/my-step.js +1 -1
  305. package/dist/components/nav-bar.js +1 -1
  306. package/dist/components/pagination.js +1 -1
  307. package/dist/components/popover.js +1 -0
  308. package/dist/components/radio.js +1 -1
  309. package/dist/components/range-slider.js +1 -1
  310. package/dist/components/rating.js +1 -1
  311. package/dist/components/resizable-panel.js +1 -1
  312. package/dist/components/skeleton-loader.js +1 -1
  313. package/dist/components/smart-step.js +1 -1
  314. package/dist/components/stack.js +1 -1
  315. package/dist/components/switch.js +1 -1
  316. package/dist/components/tag-group.js +1 -1
  317. package/dist/components/tag.js +1 -1
  318. package/dist/components/timeline-item.js +1 -1
  319. package/dist/components/toggle-group.js +1 -1
  320. package/dist/components/tooltip.js +1 -1
  321. package/dist/components/ui-accordion.js +1 -1
  322. package/dist/components/ui-advanced-data-table.js +1 -1
  323. package/dist/components/ui-anchor.js +1 -1
  324. package/dist/components/ui-animate-on-scroll.js +1 -1
  325. package/dist/components/ui-aside-panel.js +1 -1
  326. package/dist/components/ui-badge.js +1 -1
  327. package/dist/components/ui-breadcrumb-item.js +1 -1
  328. package/dist/components/ui-breadcrumb.js +1 -1
  329. package/dist/components/ui-button-toggle-group.js +1 -1
  330. package/dist/components/ui-button.js +1 -1
  331. package/dist/components/ui-callout-banner.js +1 -1
  332. package/dist/components/ui-card.js +1 -1
  333. package/dist/components/ui-carousel.js +1 -1
  334. package/dist/components/ui-code-editor.js +1 -1
  335. package/dist/components/ui-code-preview.js +1 -1
  336. package/dist/components/ui-color-picker.js +1 -1
  337. package/dist/components/ui-command-palette.js +1 -1
  338. package/dist/components/ui-dialog-box.js +1 -1
  339. package/dist/components/ui-dock-host.js +1 -1
  340. package/dist/components/ui-dock.js +1 -1
  341. package/dist/components/ui-drag-drop.js +1 -1
  342. package/dist/components/ui-empty-state.js +1 -1
  343. package/dist/components/ui-fab-item.js +1 -1
  344. package/dist/components/ui-fab.js +1 -1
  345. package/dist/components/ui-file-upload.js +1 -1
  346. package/dist/components/ui-horizontal-nav.js +1 -1
  347. package/dist/components/ui-knob.js +1 -1
  348. package/dist/components/{ui-color-controller.d.ts → ui-label.d.ts} +4 -4
  349. package/dist/components/ui-label.js +1 -0
  350. package/dist/components/ui-library.js +1 -1
  351. package/dist/components/ui-list.js +1 -1
  352. package/dist/components/ui-masonry.js +1 -1
  353. package/dist/components/ui-meter-group.js +1 -1
  354. package/dist/components/ui-navigation-bar.js +1 -1
  355. package/dist/components/ui-navigation-item.js +1 -1
  356. package/dist/components/ui-number-input.js +1 -1
  357. package/dist/components/ui-otp-input.js +1 -1
  358. package/dist/components/ui-panel.js +1 -1
  359. package/dist/components/ui-pattern-input.js +1 -1
  360. package/dist/components/ui-popover.js +1 -1
  361. package/dist/components/ui-progress.js +1 -1
  362. package/dist/components/ui-scroll-top.js +1 -1
  363. package/dist/components/ui-smart-stepper.js +1 -1
  364. package/dist/components/ui-snackbar.js +1 -1
  365. package/dist/components/ui-speed-dial.js +1 -1
  366. package/dist/components/ui-speedometer.js +1 -1
  367. package/dist/components/ui-splitter.js +1 -1
  368. package/dist/components/ui-step.js +1 -1
  369. package/dist/components/ui-stepper.js +1 -1
  370. package/dist/components/ui-tabs.js +1 -1
  371. package/dist/components/ui-timeline.js +1 -1
  372. package/dist/components/ui-timer.js +1 -1
  373. package/dist/components/ui-toolbar.js +1 -1
  374. package/dist/components/ui-top-bar.js +1 -1
  375. package/dist/components/ui-transfer-list.js +1 -1
  376. package/dist/components/ui-tree.js +1 -1
  377. package/dist/components/ui-workspace-manager.js +1 -1
  378. package/dist/esm/category-section.entry.js +2 -2
  379. package/dist/esm/dom-DFBTWhGw.js +262 -0
  380. package/dist/esm/exploration-project-tailwind.js +3 -3
  381. package/dist/esm/{index-DUsoYu9r.js → index-Dqu2zaH1.js} +1 -1
  382. package/dist/esm/layout-manager.entry.js +3 -3
  383. package/dist/esm/library-card.entry.js +2 -2
  384. package/dist/esm/lm-container_2.entry.js +2 -2
  385. package/dist/esm/lm-panel_3.entry.js +4 -4
  386. package/dist/esm/loader.js +3 -3
  387. package/dist/esm/my-component.entry.js +1 -1
  388. package/dist/esm/my-step.entry.js +2 -2
  389. package/dist/esm/nav-bar.entry.js +4 -4
  390. package/dist/esm/smart-step.entry.js +3 -3
  391. package/dist/esm/timeline-item.entry.js +2 -2
  392. package/dist/esm/ui-accordion_11.entry.js +132 -50
  393. package/dist/esm/ui-advanced-data-table.entry.js +2 -2
  394. package/dist/esm/ui-anchor.entry.js +2 -2
  395. package/dist/esm/ui-animate-on-scroll.entry.js +3 -3
  396. package/dist/esm/ui-aside-panel.entry.js +10 -11
  397. package/dist/esm/ui-avatar-group_5.entry.js +1688 -0
  398. package/dist/esm/ui-breadcrumb-item.entry.js +3 -3
  399. package/dist/esm/ui-breadcrumb.entry.js +1 -1
  400. package/dist/esm/ui-callout-banner.entry.js +2 -2
  401. package/dist/esm/ui-card.entry.js +4 -3
  402. package/dist/esm/ui-carousel.entry.js +1 -1
  403. package/dist/esm/ui-checkbox.entry.js +3 -3
  404. package/dist/esm/ui-code-editor.entry.js +2 -2
  405. package/dist/esm/ui-code-preview.entry.js +2 -2
  406. package/dist/esm/ui-color-picker.entry.js +256 -22
  407. package/dist/esm/ui-command-palette.entry.js +1 -1
  408. package/dist/esm/ui-dialog-box.entry.js +85 -11
  409. package/dist/esm/ui-dialog-content.entry.js +1 -1
  410. package/dist/esm/ui-dialog-footer_2.entry.js +1 -1
  411. package/dist/esm/ui-divider.entry.js +1 -1
  412. package/dist/esm/ui-dock-host.entry.js +4 -4
  413. package/dist/esm/ui-dock.entry.js +2 -2
  414. package/dist/esm/ui-drag-drop.entry.js +2 -2
  415. package/dist/esm/ui-dropdown_2.entry.js +104 -34
  416. package/dist/esm/ui-empty-state.entry.js +2 -2
  417. package/dist/esm/ui-fab-item.entry.js +2 -2
  418. package/dist/esm/ui-fab.entry.js +4 -4
  419. package/dist/esm/ui-file-upload.entry.js +143 -44
  420. package/dist/esm/ui-horizontal-nav.entry.js +2 -2
  421. package/dist/esm/ui-knob.entry.js +1 -1
  422. package/dist/esm/ui-label.entry.js +471 -0
  423. package/dist/esm/ui-library.entry.js +2 -2
  424. package/dist/esm/ui-list-group_2.entry.js +349 -60
  425. package/dist/esm/ui-list.entry.js +76 -42
  426. package/dist/esm/ui-masonry.entry.js +1 -1
  427. package/dist/esm/ui-meter-group.entry.js +5 -4
  428. package/dist/esm/ui-navigation-item.entry.js +5 -5
  429. package/dist/esm/ui-number-input.entry.js +7 -3
  430. package/dist/esm/ui-otp-input.entry.js +5 -5
  431. package/dist/esm/{ui-pagination_4.entry.js → ui-pagination_3.entry.js} +36 -506
  432. package/dist/esm/ui-panel.entry.js +1 -1
  433. package/dist/esm/ui-pattern-input.entry.js +46 -11
  434. package/dist/esm/ui-progress.entry.js +66 -9
  435. package/dist/esm/ui-range-slider.entry.js +2 -2
  436. package/dist/esm/ui-resizable-panel.entry.js +2 -2
  437. package/dist/esm/ui-scroll-top.entry.js +1 -1
  438. package/dist/esm/ui-smart-context-menu.entry.js +1 -1
  439. package/dist/esm/ui-smart-stepper.entry.js +2 -2
  440. package/dist/esm/ui-snackbar.entry.js +1 -1
  441. package/dist/esm/ui-speed-dial.entry.js +1 -1
  442. package/dist/esm/ui-speedometer.entry.js +28 -17
  443. package/dist/esm/ui-splitter.entry.js +1 -1
  444. package/dist/esm/ui-step.entry.js +2 -2
  445. package/dist/esm/ui-stepper.entry.js +1 -1
  446. package/dist/esm/ui-switch.entry.js +14 -13
  447. package/dist/esm/ui-tabs.entry.js +2 -2
  448. package/dist/esm/ui-tag.entry.js +58 -13
  449. package/dist/esm/ui-timeline.entry.js +10 -2
  450. package/dist/esm/ui-timer.entry.js +2 -2
  451. package/dist/esm/ui-toolbar.entry.js +2 -2
  452. package/dist/esm/ui-tooltip.entry.js +4 -4
  453. package/dist/esm/ui-top-bar.entry.js +1 -1
  454. package/dist/esm/ui-transfer-list.entry.js +6 -6
  455. package/dist/esm/ui-tree.entry.js +30 -15
  456. package/dist/esm/ui-workspace-manager.entry.js +2 -2
  457. package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -1
  458. package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -1
  459. package/dist/exploration-project-tailwind/{p-7ba2258a.entry.js → p-024a299a.entry.js} +1 -1
  460. package/dist/exploration-project-tailwind/p-0a71896a.entry.js +1 -0
  461. package/dist/exploration-project-tailwind/{p-35296877.entry.js → p-0cdeb8d8.entry.js} +1 -1
  462. package/dist/exploration-project-tailwind/{p-a42fdc33.entry.js → p-139cefbc.entry.js} +1 -1
  463. package/dist/exploration-project-tailwind/{p-036d2a44.entry.js → p-198c83e5.entry.js} +1 -1
  464. package/dist/exploration-project-tailwind/p-236f47b1.entry.js +1 -0
  465. package/dist/exploration-project-tailwind/{p-81ebba11.entry.js → p-25530d0d.entry.js} +1 -1
  466. package/dist/exploration-project-tailwind/{p-41cd6bf0.entry.js → p-298f2057.entry.js} +1 -1
  467. package/dist/exploration-project-tailwind/{p-85e36111.entry.js → p-2b5a8e3e.entry.js} +1 -1
  468. package/dist/exploration-project-tailwind/{p-e8c6d395.entry.js → p-2b6aa7bc.entry.js} +1 -1
  469. package/dist/exploration-project-tailwind/{p-70bacda8.entry.js → p-2cfba753.entry.js} +1 -1
  470. package/dist/exploration-project-tailwind/{p-cbee2607.entry.js → p-2fe22958.entry.js} +1 -1
  471. package/dist/exploration-project-tailwind/{p-20ecc116.entry.js → p-3012e780.entry.js} +1 -1
  472. package/dist/exploration-project-tailwind/p-321c3f46.entry.js +1 -0
  473. package/dist/exploration-project-tailwind/{p-8b57fe4e.entry.js → p-3ab43638.entry.js} +1 -1
  474. package/dist/exploration-project-tailwind/p-3ad7e47e.entry.js +1 -0
  475. package/dist/exploration-project-tailwind/p-3b1ca826.entry.js +1 -0
  476. package/dist/exploration-project-tailwind/p-3ee8ddae.entry.js +1 -0
  477. package/dist/exploration-project-tailwind/{p-e22317c1.entry.js → p-3efb44c8.entry.js} +1 -1
  478. package/dist/exploration-project-tailwind/{p-36861546.entry.js → p-42e3bc28.entry.js} +1 -1
  479. package/dist/exploration-project-tailwind/p-4360331a.entry.js +1 -0
  480. package/dist/exploration-project-tailwind/{p-2f961934.entry.js → p-443de32b.entry.js} +1 -1
  481. package/dist/exploration-project-tailwind/{p-898dd0fa.entry.js → p-44d15451.entry.js} +1 -1
  482. package/dist/exploration-project-tailwind/{p-4288c158.entry.js → p-46071679.entry.js} +1 -1
  483. package/dist/exploration-project-tailwind/{p-a3f465d9.entry.js → p-497d6182.entry.js} +1 -1
  484. package/dist/exploration-project-tailwind/p-4ad8c55c.entry.js +1 -0
  485. package/dist/exploration-project-tailwind/{p-4aaa8e40.entry.js → p-4c46ac0b.entry.js} +1 -1
  486. package/dist/exploration-project-tailwind/{p-98e91da5.entry.js → p-5042ddaa.entry.js} +1 -1
  487. package/dist/exploration-project-tailwind/p-60190e0e.entry.js +1 -0
  488. package/dist/exploration-project-tailwind/p-60530874.entry.js +1 -0
  489. package/dist/exploration-project-tailwind/{p-200241f8.entry.js → p-6108565d.entry.js} +1 -1
  490. package/dist/exploration-project-tailwind/{p-fb4aca69.entry.js → p-62889cfe.entry.js} +1 -1
  491. package/dist/exploration-project-tailwind/{p-c02284ea.entry.js → p-66f71613.entry.js} +1 -1
  492. package/dist/exploration-project-tailwind/{p-7889bfc4.entry.js → p-67c440b2.entry.js} +1 -1
  493. package/dist/exploration-project-tailwind/{p-c1c8ac28.entry.js → p-6f09503f.entry.js} +1 -1
  494. package/dist/exploration-project-tailwind/p-721bdbc3.entry.js +1 -0
  495. package/dist/exploration-project-tailwind/p-747b02ea.entry.js +1 -0
  496. package/dist/exploration-project-tailwind/{p-c6fd72e1.entry.js → p-754cb046.entry.js} +1 -1
  497. package/dist/exploration-project-tailwind/{p-97af03cc.entry.js → p-7ed3bba2.entry.js} +1 -1
  498. package/dist/exploration-project-tailwind/{p-d59da767.entry.js → p-864cebb7.entry.js} +1 -1
  499. package/dist/exploration-project-tailwind/{p-4d73c143.entry.js → p-96ee3196.entry.js} +1 -1
  500. package/dist/exploration-project-tailwind/{p-54965530.entry.js → p-97086868.entry.js} +1 -1
  501. package/dist/exploration-project-tailwind/{p-d114a347.entry.js → p-9c5ced88.entry.js} +1 -1
  502. package/dist/exploration-project-tailwind/p-9d3044d4.entry.js +1 -0
  503. package/dist/exploration-project-tailwind/p-9e079be6.entry.js +1 -0
  504. package/dist/exploration-project-tailwind/{p-790556f0.entry.js → p-9e4c45f5.entry.js} +1 -1
  505. package/dist/exploration-project-tailwind/p-9eee7394.entry.js +1 -0
  506. package/dist/exploration-project-tailwind/p-DFBTWhGw.js +1 -0
  507. package/dist/exploration-project-tailwind/p-Dqu2zaH1.js +2 -0
  508. package/dist/exploration-project-tailwind/p-a7bdedc2.entry.js +1 -0
  509. package/dist/exploration-project-tailwind/{p-c87aeab6.entry.js → p-a8ec29de.entry.js} +1 -1
  510. package/dist/exploration-project-tailwind/{p-6ddbee42.entry.js → p-ae617f62.entry.js} +1 -1
  511. package/dist/exploration-project-tailwind/{p-05a436d3.entry.js → p-aef76052.entry.js} +1 -1
  512. package/dist/exploration-project-tailwind/p-b5f043fa.entry.js +1 -0
  513. package/dist/exploration-project-tailwind/p-b637b91b.entry.js +1 -0
  514. package/dist/exploration-project-tailwind/{p-d2e45c5e.entry.js → p-bc49a088.entry.js} +1 -1
  515. package/dist/exploration-project-tailwind/{p-6b838549.entry.js → p-bd9a631f.entry.js} +1 -1
  516. package/dist/exploration-project-tailwind/{p-e8ba0c95.entry.js → p-bf4b6767.entry.js} +1 -1
  517. package/dist/exploration-project-tailwind/p-c0fa400e.entry.js +1 -0
  518. package/dist/exploration-project-tailwind/{p-8578b616.entry.js → p-c4f3d990.entry.js} +1 -1
  519. package/dist/exploration-project-tailwind/p-c68ddb2f.entry.js +1 -0
  520. package/dist/exploration-project-tailwind/p-c79574c4.entry.js +1 -0
  521. package/dist/exploration-project-tailwind/p-c840098d.entry.js +1 -0
  522. package/dist/exploration-project-tailwind/{p-a1ad32a2.entry.js → p-c8663cbe.entry.js} +1 -1
  523. package/dist/exploration-project-tailwind/p-cb6e38a6.entry.js +1 -0
  524. package/dist/exploration-project-tailwind/p-cb9f2df1.entry.js +1 -0
  525. package/dist/exploration-project-tailwind/p-cfe8b696.entry.js +1 -0
  526. package/dist/exploration-project-tailwind/p-d00e13ae.entry.js +1 -0
  527. package/dist/exploration-project-tailwind/{p-c4ba7e52.entry.js → p-d01ed934.entry.js} +1 -1
  528. package/dist/exploration-project-tailwind/{p-aa85ff78.entry.js → p-d4e57d94.entry.js} +1 -1
  529. package/dist/exploration-project-tailwind/{p-ccb5c737.entry.js → p-d5bd3a3f.entry.js} +1 -1
  530. package/dist/exploration-project-tailwind/{p-45482d86.entry.js → p-d987cebe.entry.js} +1 -1
  531. package/dist/exploration-project-tailwind/p-d9ae77c0.entry.js +1 -0
  532. package/dist/exploration-project-tailwind/p-e9bae5c7.entry.js +1 -0
  533. package/dist/exploration-project-tailwind/p-f516fabc.entry.js +1 -0
  534. package/dist/exploration-project-tailwind/p-f68e2794.entry.js +1 -0
  535. package/dist/exploration-project-tailwind/{p-d30e24bd.entry.js → p-fa034f69.entry.js} +1 -1
  536. package/dist/types/components/aside-panel/aside-panel.d.ts +0 -3
  537. package/dist/types/components/avatar/avatar.d.ts +3 -0
  538. package/dist/types/components/avatar/types.d.ts +2 -0
  539. package/dist/types/components/badge/badge.d.ts +1 -0
  540. package/dist/types/components/color-picker/color-picker.d.ts +35 -2
  541. package/dist/types/components/dialog-box/dialog-box.d.ts +10 -0
  542. package/dist/types/components/dropdown/dropdown.d.ts +5 -0
  543. package/dist/types/components/file-upload/file-upload.d.ts +23 -6
  544. package/dist/types/components/label/label.d.ts +290 -0
  545. package/dist/types/components/label/types.d.ts +39 -0
  546. package/dist/types/components/list/list.d.ts +2 -1
  547. package/dist/types/components/list-group/list-group.d.ts +1 -0
  548. package/dist/types/components/list-item/list-item.d.ts +45 -17
  549. package/dist/types/components/pattern-input/pattern-input.d.ts +6 -0
  550. package/dist/types/components/popover/popover.d.ts +3 -0
  551. package/dist/types/components/progress/progress.d.ts +7 -0
  552. package/dist/types/components/range-slider/range-slider.d.ts +2 -2
  553. package/dist/types/components/rating/rating.d.ts +1 -0
  554. package/dist/types/components/skeleton/skeleton-loader.d.ts +1 -1
  555. package/dist/types/components/speedometer/speedometer.d.ts +1 -0
  556. package/dist/types/components/tag/tag.d.ts +4 -0
  557. package/dist/types/components/tree/tree.d.ts +1 -0
  558. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +1 -1
  559. package/dist/types/components.d.ts +742 -425
  560. package/dist/types/types/common.d.ts +2 -2
  561. package/dist/types/types/common.type.d.ts +2 -0
  562. package/dist/types/utils/dom.d.ts +4 -4
  563. package/package.json +4 -5
  564. package/dist/cjs/dom-oP1E4Rd3.js +0 -267
  565. package/dist/cjs/ui-avatar-group_3.cjs.entry.js +0 -634
  566. package/dist/cjs/ui-color-controller.cjs.entry.js +0 -150
  567. package/dist/cjs/ui-popover.cjs.entry.js +0 -517
  568. package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +0 -565
  569. package/dist/collection/components/color-controller/color-controller.css +0 -108
  570. package/dist/collection/components/color-controller/color-controller.js +0 -224
  571. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +0 -357
  572. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +0 -1190
  573. package/dist/components/ui-color-controller.js +0 -1
  574. package/dist/components/ui-smart-location-dropdown.d.ts +0 -11
  575. package/dist/components/ui-smart-location-dropdown.js +0 -1
  576. package/dist/esm/dom-BMFah5q3.js +0 -262
  577. package/dist/esm/ui-avatar-group_3.entry.js +0 -630
  578. package/dist/esm/ui-color-controller.entry.js +0 -148
  579. package/dist/esm/ui-popover.entry.js +0 -515
  580. package/dist/esm/ui-smart-location-dropdown.entry.js +0 -563
  581. package/dist/exploration-project-tailwind/p-06f0c679.entry.js +0 -1
  582. package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +0 -1
  583. package/dist/exploration-project-tailwind/p-148e81df.entry.js +0 -1
  584. package/dist/exploration-project-tailwind/p-16bdd162.entry.js +0 -1
  585. package/dist/exploration-project-tailwind/p-2347d21b.entry.js +0 -1
  586. package/dist/exploration-project-tailwind/p-3d381f75.entry.js +0 -1
  587. package/dist/exploration-project-tailwind/p-4417a9d8.entry.js +0 -1
  588. package/dist/exploration-project-tailwind/p-44742ddd.entry.js +0 -1
  589. package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +0 -1
  590. package/dist/exploration-project-tailwind/p-4bef8bed.entry.js +0 -1
  591. package/dist/exploration-project-tailwind/p-4efd63ce.entry.js +0 -1
  592. package/dist/exploration-project-tailwind/p-5c835d90.entry.js +0 -1
  593. package/dist/exploration-project-tailwind/p-61717490.entry.js +0 -1
  594. package/dist/exploration-project-tailwind/p-717dad1f.entry.js +0 -1
  595. package/dist/exploration-project-tailwind/p-71d95bb1.entry.js +0 -1
  596. package/dist/exploration-project-tailwind/p-9bd14f69.entry.js +0 -1
  597. package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +0 -1
  598. package/dist/exploration-project-tailwind/p-BMFah5q3.js +0 -1
  599. package/dist/exploration-project-tailwind/p-DUsoYu9r.js +0 -2
  600. package/dist/exploration-project-tailwind/p-a27f59d2.entry.js +0 -1
  601. package/dist/exploration-project-tailwind/p-a7b07cf4.entry.js +0 -1
  602. package/dist/exploration-project-tailwind/p-bd89d060.entry.js +0 -1
  603. package/dist/exploration-project-tailwind/p-c63c522e.entry.js +0 -1
  604. package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +0 -1
  605. package/dist/exploration-project-tailwind/p-d6ce9721.entry.js +0 -1
  606. package/dist/exploration-project-tailwind/p-dc92a343.entry.js +0 -1
  607. package/dist/exploration-project-tailwind/p-debede45.entry.js +0 -1
  608. package/dist/exploration-project-tailwind/p-e76318c7.entry.js +0 -1
  609. package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +0 -1
  610. package/dist/exploration-project-tailwind/p-eab5ad36.entry.js +0 -1
  611. package/dist/exploration-project-tailwind/p-f0bc5d7e.entry.js +0 -1
  612. package/dist/exploration-project-tailwind/p-f1beee72.entry.js +0 -1
  613. package/dist/exploration-project-tailwind/p-f543392f.entry.js +0 -1
  614. package/dist/exploration-project-tailwind/p-f61cfb7c.entry.js +0 -1
  615. package/dist/types/components/color-controller/color-controller.d.ts +0 -24
  616. package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +0 -119
  617. package/dist/types/components/smart-location-dropdown/types.d.ts +0 -37
  618. /package/dist/collection/components/{smart-location-dropdown → label}/types.js +0 -0
@@ -1 +1 @@
1
- import{proxyCustomElement as t,HTMLElement as e,createEvent as a,h as r,transformTag as i}from"@stencil/core/internal/client";import{d as o,a as n}from"./badge.js";import{d as s}from"./checkbox.js";import{d as l}from"./icon.js";import{d}from"./input.js";import{d as c}from"./loader.js";import{d as p}from"./pagination.js";import{d as h}from"./radio.js";import{d as b}from"./rating.js";import{d as u}from"./skeleton-loader.js";import{d as g}from"./switch.js";const m=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.rowSelect=a(this,"rowSelect",7),this.rowDeselect=a(this,"rowDeselect",7),this.cellEdit=a(this,"cellEdit",7),this.cellEditStart=a(this,"cellEditStart",7),this.cellEditStop=a(this,"cellEditStop",7),this.rowEditStart=a(this,"rowEditStart",7),this.rowEditStop=a(this,"rowEditStop",7),this.sortChange=a(this,"sortChange",7),this.filterChange=a(this,"filterChange",7),this.pageChange=a(this,"pageChange",7),this.searchChange=a(this,"searchChange",7),this.columnOrderChange=a(this,"columnOrderChange",7),this.columnVisibilityChange=a(this,"columnVisibilityChange",7),this.columnPin=a(this,"columnPin",7),this.rowPin=a(this,"rowPin",7),this.rowReorderEvent=a(this,"rowReorderEvent",7),this.dataExport=a(this,"dataExport",7),this.groupToggle=a(this,"groupToggle",7),this.groupByChange=a(this,"groupByChange",7),this.rowEdit=a(this,"rowEdit",7),this.rowDelete=a(this,"rowDelete",7),this.rowAction=a(this,"rowAction",7),this.lazyLoadMore=a(this,"lazyLoadMore",7)}get el(){return this}config={columns:[],data:[],selectable:!1,pagination:!0,pageSize:10};columns=[];data=[];selectable=!1;multiSelect=!0;editable=!1;stickyHeader=!0;pagination=!0;pageSize=10;pageSizeOptions=[5,10,25,50,100];paginationTheme="default";paginationShape="default";paginationKeyboardNav=!0;paginationQuickJump=!1;paginationQuickJumpStep=5;paginationShowProgress=!1;paginationSticky=!1;paginationStickyPosition="bottom";paginationTransitions=!0;paginationUrlSync=!1;paginationUrlParam="page";paginationPersistPage=!1;paginationStorageKey="table-page";paginationSwipeGestures=!0;paginationSmartCompact=!1;paginationSmartCompactThreshold=20;paginationAutoHide=!0;paginationResponsive=!0;paginationMobileBreakpoint=768;virtualScroll=!1;virtualRowHeight=48;advancedFilters=!1;columnAggregation=!1;aggregationFunctions=["sum","avg","min","max","count"];persistState=!1;stateStorageKey="table-state";multiSort=!1;maxSortColumns=3;autoSizeColumns=!1;rowDetails=!1;keyboardShortcuts=!0;excelExport=!1;inlineValidation=!1;validationRules={};advancedCellEditors=!0;columnFormatting=!0;rangeSelection=!1;copyPaste=!1;conditionalFormatting=!1;formattingRules={};contextMenu=!1;mobileCardView=!0;lazyLoad=!1;pdfExport=!1;enableSparklines=!1;undoRedo=!1;printOptimized=!1;enhancedAccessibility=!0;advancedValidation=!1;searchable=!0;sortable=!0;filterable=!0;columnReorder=!0;columnVisibility=!0;rowHeight="normal";striped=!0;stripedColor;stripedColorDark;hoverable=!0;bordered=!0;loading=!1;showSkeleton=!0;skeletonRows=5;emptyMessage="No data available";serverSide=!1;totalRows=0;exportable=!0;theme="auto";variant="default";color="primary";grouping=!1;groupBy="";expandGroupsByDefault=!0;showGroupCount=!0;columnGrouping=!1;showGroupingControls=!0;treeData=!1;showActions=!1;customActions;iconLibrary="default";columnPinning=!0;rowPinning=!0;rowSpanning=!1;rowReorder=!1;multiFilter=!0;showFilterPanel=!1;showColumnPanel=!1;headerBackground;state={selectedRows:new Set,virtualVisibleRange:{start:0,end:50},sortConfig:{field:"",direction:null},filterConfig:{},searchQuery:"",pagination:{currentPage:1,pageSize:10,totalPages:1,totalRows:0},editingCell:null,columnOrder:[],visibleColumns:new Set,columnWidths:new Map,expandedGroups:new Set,groupBy:null,expandedRows:new Set,focusedCell:null};draggedColumn=null;draggedRow=null;showColumnSettings=!1;showExportDialog=!1;resizingColumn=null;activeActionMenu=null;pinnedColumns={left:[],right:[]};pinnedRows={top:[],bottom:[]};editingRow=null;activeFilters=new Map;filterPanelField="";filterPanelOperator="contains";filterPanelValue="";draggedColumnInPanel=null;columnSearchQuery="";virtualScrollOffset=0;virtualVisibleRange={start:0,end:50};multiSortConfig=[];columnAggregations=new Map;expandedRowDetails=new Set;validationErrors=new Map;showKeyboardShortcutsHelp=!1;advancedFilterConfig=new Map;rangeSelectionAnchor=null;clipboardData=[];formattingCache=new Map;contextMenuState={visible:!1,x:0,y:0,type:"cell",target:null};undoStack=[];redoStack=[];lazyLoadedRows=new Set;isMobileView=!1;rowSelect;rowDeselect;cellEdit;cellEditStart;cellEditStop;rowEditStart;rowEditStop;sortChange;filterChange;pageChange;searchChange;columnOrderChange;columnVisibilityChange;columnPin;rowPin;rowReorderEvent;dataExport;groupToggle;groupByChange;rowEdit;rowDelete;rowAction;lazyLoadMore;resizeObserver;lazyLoadObserver;editInputRef;resizeStartX=0;resizeStartWidth=0;resizingColumnId="";componentWillLoad(){this.initializeState()}componentDidLoad(){this.loadTableState(),this.setupResizeObserver(),this.applyTheme(),this.setupClickOutsideListener(),this.setupGlobalKeyboardShortcuts(),this.copyPaste&&(document.addEventListener("copy",this.handleCopy),document.addEventListener("paste",this.handlePaste))}disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect(),this.lazyLoadObserver&&this.lazyLoadObserver.disconnect(),document.removeEventListener("mousemove",this.handleResizeMove),document.removeEventListener("mouseup",this.handleResizeEnd),this.copyPaste&&(document.removeEventListener("copy",this.handleCopy),document.removeEventListener("paste",this.handlePaste)),document.removeEventListener("click",this.handleClickOutside)}onDataOrColumnsChange(){this.initializeState()}onPageSizeChange(t){this.state={...this.state,pagination:{...this.state.pagination,pageSize:t,currentPage:1,totalPages:this.calculateTotalPages(t)}}}onGroupByChange(t){this.handleGroupByChange(t)}onThemeChange(){this.applyTheme()}async selectRow(t){const e=new Set(this.state.selectedRows);e.add(t),this.updateSelectedRows(e)}async deselectRow(t){const e=new Set(this.state.selectedRows);e.delete(t),this.updateSelectedRows(e)}async selectAllRows(){const t=this.getProcessedData().map((t=>t.id));this.updateSelectedRows(new Set(t))}async deselectAllRows(){this.updateSelectedRows(new Set)}async getSelectedRows(){return Array.from(this.state.selectedRows)}async exportData(t={format:"csv"}){const e=this.prepareExportData(t);this.performExport(e,t)}async resetFilters(){this.state={...this.state,filterConfig:{},searchQuery:"",pagination:{...this.state.pagination,currentPage:1}}}async resetSort(){this.state={...this.state,sortConfig:{field:"",direction:null}}}async goToPage(t){t>=1&&t<=this.state.pagination.totalPages&&(this.state={...this.state,pagination:{...this.state.pagination,currentPage:t}},this.pageChange.emit({page:t,pageSize:this.state.pagination.pageSize}))}async refresh(){this.initializeState()}async print(){if(this.printOptimized)window.print();else{const t=document.createElement("style");t.textContent="\n @media print {\n body * { visibility: hidden; }\n .data-table-container, .data-table-container * { visibility: visible; }\n .data-table-container { position: absolute; left: 0; top: 0; width: 100%; }\n .toolbar, .pagination-container, .column-settings-panel, .filter-panel { display: none !important; }\n .data-table { width: 100% !important; border-collapse: collapse !important; }\n .data-table td, .data-table th { border: 1px solid #ddd !important; padding: 8px !important; }\n }\n ",document.head.appendChild(t),window.print(),document.head.removeChild(t)}}initializeState(){const t=this.parseColumns(),e=this.flattenColumns(t),a=this.calculateInitialColumnWidths(e),r=this.groupBy||null,i=new Set;if(r&&this.expandGroupsByDefault){const t=this.parseData();this.groupData(t,r).forEach(((t,e)=>i.add(e)))}this.state={...this.state,columnOrder:e.map((t=>t.id)),visibleColumns:new Set(e.filter((t=>!1!==t.visible)).map((t=>t.id))),columnWidths:a,groupBy:r,expandedGroups:i,pagination:{currentPage:1,pageSize:this.pageSize,totalPages:this.calculateTotalPages(this.pageSize),totalRows:this.getTotalRows()},focusedCell:null}}parseColumns(){if("string"==typeof this.columns)try{return JSON.parse(this.columns)}catch{return[]}return this.columns||[]}parseData(){if("string"==typeof this.data)try{return JSON.parse(this.data)}catch{return[]}return this.data||[]}parsePageSizeOptions(){if("string"==typeof this.pageSizeOptions)try{return JSON.parse(this.pageSizeOptions)}catch{return[5,10,25,50,100]}return this.pageSizeOptions}flattenColumns(t){const e=[],a=t=>{t.forEach((t=>{t.children&&t.children.length>0?a(t.children):e.push(t)}))};return a(t),e}getVisibleColumns(){const t=this.parseColumns(),e=this.flattenColumns(t);return this.state.columnOrder.map((t=>e.find((e=>e.id===t)))).filter((t=>!!t&&this.state.visibleColumns.has(t.id)))}getTotalRows(){return this.serverSide?this.totalRows:this.parseData().length}calculateTotalPages(t){const e=this.getTotalRows();return Math.ceil(e/t)}getProcessedData(){let t=this.parseData();return this.treeData&&(t=this.flattenTreeData(t)),this.searchable&&this.state.searchQuery&&(t=this.applySearch(t,this.state.searchQuery)),this.filterable&&Object.keys(this.state.filterConfig).length>0&&(t=this.applyFilters(t,this.state.filterConfig)),this.advancedFilters&&(t=this.applyAdvancedFilters(t)),this.sortable&&(this.multiSort&&this.multiSortConfig.length>0?t=this.applyMultiSort(t):this.state.sortConfig.field&&this.state.sortConfig.direction&&(t=this.applySort(t,this.state.sortConfig))),this.serverSide||(this.state.pagination.totalRows=t.length,this.state.pagination.totalPages=this.calculateTotalPages(this.state.pagination.pageSize)),!this.pagination||this.serverSide||this.virtualScroll||(t=this.applyPagination(t)),this.persistState&&this.saveTableState(),t}applySearch(t,e){const a=e.toLowerCase(),r=this.getVisibleColumns();return t.filter((t=>r.some((e=>((e.field?t[e.field]:"")+"").toLowerCase().includes(a)))))}applyFilters(t,e){return t.filter((t=>Object.keys(e).every((a=>{const r=e[a];if(null===r||""===r)return!0;const i=t[a];return"string"==typeof r?(i+"").toLowerCase().includes(r.toLowerCase()):i===r}))))}applySort(t,e){return[...t].sort(((t,a)=>{const r=t[e.field],i=a[e.field];if(r===i)return 0;const o=r<i?-1:1;return"asc"===e.direction?o:-o}))}applyPagination(t){const{currentPage:e,pageSize:a}=this.state.pagination,r=(e-1)*a;return t.slice(r,r+a)}groupData(t,e){const a=new Map;return t.forEach((t=>{const r=null!=t[e]?t[e]+"":"(Empty)";a.has(r)||a.set(r,[]),a.get(r).push(t)})),a}handleGroupToggle(t){const e=new Set(this.state.expandedGroups);e.has(t)?e.delete(t):e.add(t),this.state={...this.state,expandedGroups:e},this.groupToggle.emit({groupKey:t,expanded:e.has(t)})}handleGroupByChange(t){const e=t===this.state.groupBy?null:t,a=new Set;if(e&&this.expandGroupsByDefault){const t=this.getProcessedData();this.groupData(t,e).forEach(((t,e)=>a.add(e)))}this.state={...this.state,groupBy:e,expandedGroups:a},e&&this.groupByChange.emit({field:e})}handleSort(t){if(!this.sortable)return;this.pushUndoState();const e=this.state.sortConfig;let a="asc";e.field===t&&("asc"===e.direction?a="desc":"desc"===e.direction&&(a=null));const r={field:a?t:"",direction:a};this.state={...this.state,sortConfig:r},this.sortChange.emit(r),this.enhancedAccessibility&&a&&this.announceToScreenReader(`Sorted by ${t} ${"asc"===a?"ascending":"descending"}`)}handleSearch(t){this.pushUndoState();const e=t.target;this.state={...this.state,searchQuery:e.value,pagination:{...this.state.pagination,currentPage:1}},this.searchChange.emit({query:e.value})}handleFilter(t,e){this.pushUndoState();const a={...this.state.filterConfig};if(""===e?delete a[t]:a[t]=e,this.state={...this.state,filterConfig:a,pagination:{...this.state.pagination,currentPage:1}},this.filterChange.emit(a),this.enhancedAccessibility){const t=Object.keys(a).length;this.announceToScreenReader(`${t} filter${1!==t?"s":""} applied`)}}handleRowSelect(t,e){const a=e.target,r=new Set(this.state.selectedRows);a.checked?(this.multiSelect||r.clear(),r.add(t)):r.delete(t),this.updateSelectedRows(r)}handleSelectAll(t){if(t.target.checked){const t=this.getProcessedData().map((t=>t.id));this.updateSelectedRows(new Set(t))}else this.updateSelectedRows(new Set)}updateSelectedRows(t){this.pushUndoState(),this.state={...this.state,selectedRows:t};const e=Array.from(t);t.size>0?(this.rowSelect.emit({selectedRows:e}),this.enhancedAccessibility&&this.announceToScreenReader(`${t.size} row${1!==t.size?"s":""} selected`)):(this.rowDeselect.emit({selectedRows:e}),this.enhancedAccessibility&&this.announceToScreenReader("All rows deselected"))}handleCellEdit(t,e,a){if(this.advancedValidation){const r=this.validateCell(t,e,a),i=t+"";if(r){const t=this.validationErrors.get(i)||new Map;t.set(e,r),this.validationErrors=new Map(this.validationErrors).set(i,t)}else{const t=this.validationErrors.get(i);t&&t.has(e)&&(t.delete(e),this.validationErrors=new Map(this.validationErrors))}}this.cellEditStop.emit({rowId:t,field:e,value:a}),this.cellEdit.emit({rowId:t,field:e,value:a}),this.state={...this.state,editingCell:null},this.editingRow!==t||this.editable||this.stopRowEdit(t)}startCellEdit(t,e){if(!this.editable)return;const a=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null;this.cellEditStart.emit({rowId:t,field:e,value:a?a[e]:null}),this.editingRow!==t&&this.startRowEdit(t),this.state={...this.state,editingCell:{rowId:t,field:e}},setTimeout((()=>{this.editInputRef&&(this.editInputRef?.setFocus(),this.editInputRef&&"select"in this.editInputRef&&this.editInputRef.select())}),0)}startRowEdit(t){const e=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null;e&&(this.editingRow=t,this.rowEditStart.emit({row:e}))}stopRowEdit(t){const e=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null;e&&(this.editingRow=null,this.rowEditStop.emit({row:e}))}toggleRowExpansion(t,e){e.stopPropagation();const a=new Set(this.state.expandedRows);a.has(t)?a.delete(t):a.add(t),this.state={...this.state,expandedRows:a}}flattenTreeData(t,e=0){let a=[];return t.forEach((t=>{const r={...t,_depth:e,_hasChildren:t.children&&t.children.length>0};a.push(r),t.children&&t.children.length>0&&this.state.expandedRows.has(t.id)&&(a=a.concat(this.flattenTreeData(t.children,e+1)))})),a}handlePaginationChange(t){const{page:e,itemsPerPage:a}=t.detail;this.state={...this.state,pagination:{...this.state.pagination,currentPage:e,pageSize:a}},this.pageChange.emit({page:e,pageSize:a})}handlePageSizeChangeFromPagination(t){const e=t.detail;this.state={...this.state,pagination:{...this.state.pagination,pageSize:e,currentPage:1,totalPages:this.calculateTotalPages(e)}},this.pageChange.emit({page:1,pageSize:e})}handleVirtualScroll=t=>{if(!this.virtualScroll)return;const e=t.target,a=Math.floor(e.scrollTop/this.virtualRowHeight),r=a+Math.ceil(e.clientHeight/this.virtualRowHeight)+10;this.virtualVisibleRange={start:Math.max(0,a-5),end:r}};handleMultiSort(t,e){if(!this.multiSort)return void this.handleSort(t);this.pushUndoState();const a=e&&(e.ctrlKey||e.metaKey),r=this.multiSortConfig.findIndex((e=>e.field===t));let i=[...this.multiSortConfig];a?r>=0?"asc"===i[r].direction?i[r].direction="desc":i.splice(r,1):i.length<this.maxSortColumns&&i.push({field:t,direction:"asc"}):i=r>=0&&"asc"===i[r].direction?[{field:t,direction:"desc"}]:[{field:t,direction:"asc"}],this.multiSortConfig=i}applyMultiSort(t){return this.multiSort&&0!==this.multiSortConfig.length?[...t].sort(((t,e)=>{for(const a of this.multiSortConfig){const r=t[a.field],i=e[a.field];if(r!==i){const t=r<i?-1:1;return"asc"===a.direction?t:-t}}return 0})):this.applySort(t,this.state.sortConfig)}filterOperators={equals:(t,e)=>t===e,notEquals:(t,e)=>t!==e,contains:(t,e)=>(t+"").toLowerCase().includes((e+"").toLowerCase()),startsWith:(t,e)=>(t+"").toLowerCase().startsWith((e+"").toLowerCase()),endsWith:(t,e)=>(t+"").toLowerCase().endsWith((e+"").toLowerCase()),greaterThan:(t,e)=>Number(t)>Number(e),lessThan:(t,e)=>Number(t)<Number(e),isEmpty:t=>null==t||""===t,isNotEmpty:t=>null!=t&&""!==t};applyAdvancedFilters(t){return this.advancedFilters&&0!==this.advancedFilterConfig.size?t.filter((t=>Array.from(this.advancedFilterConfig.entries()).every((([e,a])=>{const r=this.filterOperators[a.operator];return!r||r(t[e],a.value)})))):t}saveTableState(){if(this.persistState&&"undefined"!=typeof window)try{const t={sortConfig:this.multiSort?this.multiSortConfig:this.state.sortConfig,filterConfig:this.state.filterConfig,columnOrder:this.state.columnOrder,visibleColumns:Array.from(this.state.visibleColumns),columnWidths:Array.from(this.state.columnWidths.entries()),pagination:this.state.pagination,groupBy:this.state.groupBy};localStorage.setItem(this.stateStorageKey,JSON.stringify(t))}catch(t){console.error("Failed to save table state:",t)}}loadTableState(){if(this.persistState&&"undefined"!=typeof window)try{const t=localStorage.getItem(this.stateStorageKey);if(t){const e=JSON.parse(t);this.multiSort&&e.multiSortConfig&&(this.multiSortConfig=e.multiSortConfig),this.state={...this.state,sortConfig:e.sortConfig||this.state.sortConfig,filterConfig:e.filterConfig||{},columnOrder:e.columnOrder||this.state.columnOrder,visibleColumns:new Set(e.visibleColumns||this.state.visibleColumns),columnWidths:new Map(e.columnWidths||[]),groupBy:e.groupBy||null}}}catch(t){console.error("Failed to load table state:",t)}}toggleRowDetails(t){const e=new Set(this.expandedRowDetails);e.has(t)?e.delete(t):e.add(t),this.expandedRowDetails=e}validateCell(t,e,a){if(!this.inlineValidation&&!this.advancedValidation)return null;const r=this.getVisibleColumns().find((t=>t.field===e));if(r&&r.validator){const e=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null,i=r.validator(a,e);if(!0!==i&&null!==i)return"string"==typeof i?i:"Invalid value"}if(!this.validationRules[e])return null;const i=this.validationRules[e];if(i.required&&(null==a||""===a))return"This field is required";if(i.minLength&&(a+"").length<i.minLength)return"Minimum length is "+i.minLength;if(i.maxLength&&(a+"").length>i.maxLength)return"Maximum length is "+i.maxLength;if(void 0!==i.min&&Number(a)<i.min)return"Minimum value is "+i.min;if(void 0!==i.max&&Number(a)>i.max)return"Maximum value is "+i.max;if(i.pattern&&!RegExp(i.pattern).test(a+""))return i.patternMessage||"Invalid format";if(this.advancedValidation&&i.custom&&"function"==typeof i.custom)try{const t=i.custom(a);if(!0!==t)return"string"==typeof t?t:"Validation failed"}catch(t){return"Validation error"}return this.advancedValidation&&i.asyncCustom&&"function"==typeof i.asyncCustom&&this.validateCellAsync(t,e,a,i.asyncCustom),null}async validateCellAsync(t,e,a,r){try{const i=await r(a),o=t+"";if(!0!==i){const t="string"==typeof i?i:"Async validation failed",a=this.validationErrors.get(o)||new Map;a.set(e,t),this.validationErrors=new Map(this.validationErrors).set(o,a)}else{const t=this.validationErrors.get(o);t&&t.has(e)&&(t.delete(e),this.validationErrors=new Map(this.validationErrors))}}catch(a){const r=t+"",i=this.validationErrors.get(r)||new Map;i.set(e,"Async validation error"),this.validationErrors=new Map(this.validationErrors).set(r,i)}}renderAdvancedCellEditor(t,e,a){if(!this.advancedCellEditors)return this.renderEditableCell(t,e,a);const i=a=>{this.handleCellEdit(t.id,e.field,a),this.state={...this.state,editingCell:null}};switch(e.type){case"date":case"datetime":case"number":return r("ui-input",{type:"datetime"===e.type?"datetime-local":e.type,value:a||"",onInputChange:t=>i("number"===e.type?Number(t.detail):t.detail),onInputBlur:()=>this.state={...this.state,editingCell:null},customClass:`cell-editor ${e.type}-editor`,size:"sm"});case"boolean":return r("ui-checkbox",{checked:!!a,onCheckboxChange:t=>i(t.detail.checked),size:"sm"});default:return this.renderEditableCell(t,e,a)}}formatCellValue(t,e){if(!this.columnFormatting||null==t)return(t||"")+"";if(e.format)return e.format(t);switch(e.type){case"number":return(new Intl.NumberFormat).format(Number(t));case"date":return(new Intl.DateTimeFormat).format(new Date(t));case"datetime":return new Intl.DateTimeFormat(void 0,{dateStyle:"short",timeStyle:"short"}).format(new Date(t));default:return e.field?.toLowerCase().includes("price")||e.field?.toLowerCase().includes("cost")||e.field?.toLowerCase().includes("amount")?new Intl.NumberFormat(void 0,{style:"currency",currency:"USD"}).format(Number(t)):e.field?.toLowerCase().includes("percent")||e.field?.toLowerCase().includes("rate")?new Intl.NumberFormat(void 0,{style:"percent",minimumFractionDigits:2}).format(Number(t)/100):t+""}}handleCellClick(t,e,a){if(!this.rangeSelection||!a.shiftKey)return;if(!this.rangeSelectionAnchor)return void(this.rangeSelectionAnchor={rowId:t,field:e});const r=this.getProcessedData(),i=r.findIndex((t=>t.id===this.rangeSelectionAnchor.rowId)),o=r.findIndex((e=>e.id===t)),n=Math.min(i,o),s=Math.max(i,o),l=new Set(this.state.selectedRows);for(let t=n;t<=s;t++)l.add(r[t].id);this.state={...this.state,selectedRows:l}}handleCopy=t=>{if(!this.copyPaste||0===this.state.selectedRows.size)return;t.preventDefault();const e=this.getProcessedData(),a=this.getVisibleColumns(),r=e.filter((t=>this.state.selectedRows.has(t.id))),i=a.map((t=>t.label)).join("\t")+"\n"+r.map((t=>a.map((e=>this.formatCellValue(t[e.field],e))).join("\t"))).join("\n");t.clipboardData?.setData("text/plain",i),this.clipboardData=r.map((t=>a.map((e=>t[e.field]))))};handlePaste=t=>{if(!this.copyPaste||!this.editable)return;t.preventDefault();const e=t.clipboardData?.getData("text/plain");if(!e)return;const a=e.split("\n").map((t=>t.split("\t")));this.cellEdit.emit({rowId:"paste",field:"multiple",value:a})};getConditionalFormattingStyle(t,e){if(!this.conditionalFormatting||!this.formattingRules[e.field])return{};const a=this.formattingRules[e.field],r=Number(t);if(a.colorScale){const{min:t,max:e,minColor:i,maxColor:o}=a.colorScale,n=(r-t)/(e-t);return{backgroundColor:`rgb(${Math.round(i.r+(o.r-i.r)*n)}, ${Math.round(i.g+(o.g-i.g)*n)}, ${Math.round(i.b+(o.b-i.b)*n)})`}}if(a.dataBar){const{min:t,max:e,color:i}=a.dataBar,o=(r-t)/(e-t)*100;return{background:`linear-gradient(90deg, ${i} ${o}%, transparent ${o}%)`}}return a.custom&&"function"==typeof a.custom?a.custom(t):{}}toggleColumnVisibility(t){const e=new Set(this.state.visibleColumns);e.has(t)?e.delete(t):e.add(t),this.state={...this.state,visibleColumns:e},this.columnVisibilityChange.emit({visible:Array.from(e)})}handleColumnDragStart(t,e){this.draggedColumn=t,e.dataTransfer.effectAllowed="move"}handleColumnDragOver(t){t.preventDefault(),t.dataTransfer.dropEffect="move"}handleColumnDrop(t,e){if(e.preventDefault(),!this.draggedColumn||this.draggedColumn===t)return;const a=[...this.state.columnOrder],r=a.indexOf(this.draggedColumn),i=a.indexOf(t);a.splice(r,1),a.splice(i,0,this.draggedColumn),this.state={...this.state,columnOrder:a},this.columnOrderChange.emit({order:a}),this.draggedColumn=null}async handleColumnPin(t,e){const a={...this.pinnedColumns};a.left=a.left.filter((e=>e!==t)),a.right=a.right.filter((e=>e!==t)),"left"===e?a.left.push(t):"right"===e&&a.right.push(t),this.pinnedColumns=a,this.columnPin.emit({columnId:t,position:e})}async handleRowPin(t,e){const a={...this.pinnedRows};a.top=a.top.filter((e=>e!==t)),a.bottom=a.bottom.filter((e=>e!==t)),"top"===e?a.top.push(t):"bottom"===e&&a.bottom.push(t),this.pinnedRows=a,this.rowPin.emit({rowId:t,position:e})}handleRowDragStart(t,e){this.rowReorder&&(this.draggedRow=t,e.dataTransfer.effectAllowed="move")}handleRowDragOver(t){this.rowReorder&&(t.preventDefault(),t.dataTransfer.dropEffect="move")}handleRowDrop(t,e){e.preventDefault(),null!==this.draggedRow&&this.draggedRow!==t&&(this.rowReorderEvent.emit({fromIndex:this.draggedRow,toIndex:t}),this.draggedRow=null)}addFilter(t,e,a){const r=this.activeFilters.get(t)||[];r.push({operator:e,value:a}),this.activeFilters.set(t,r);const i={...this.state.filterConfig};i[t]=r,this.state={...this.state,filterConfig:i},this.filterChange.emit(i)}removeFilter(t,e){const a=this.activeFilters.get(t)||[];a.splice(e,1),0===a.length?this.activeFilters.delete(t):this.activeFilters.set(t,a);const r={...this.state.filterConfig};0===a.length?delete r[t]:r[t]=a,this.state={...this.state,filterConfig:r},this.filterChange.emit(r)}clearAllFilters(){this.activeFilters.clear(),this.state={...this.state,filterConfig:{}},this.filterChange.emit({})}handleResizeStart=(t,e)=>{e.preventDefault(),e.stopPropagation(),this.resizingColumnId=t,this.resizeStartX=e.clientX,this.resizeStartWidth=this.state.columnWidths.get(t)||150,this.resizingColumn=t,document.addEventListener("mousemove",this.handleResizeMove),document.addEventListener("mouseup",this.handleResizeEnd),document.body.style.userSelect="none"};handleResizeMove=t=>{if(!this.resizingColumnId)return;const e=Math.max(50,this.resizeStartWidth+(t.clientX-this.resizeStartX)),a=new Map(this.state.columnWidths);a.set(this.resizingColumnId,e),this.state={...this.state,columnWidths:a}};handleResizeEnd=()=>{this.resizingColumnId="",this.resizingColumn=null,document.body.style.userSelect="",document.removeEventListener("mousemove",this.handleResizeMove),document.removeEventListener("mouseup",this.handleResizeEnd)};calculateInitialColumnWidths(t){const e=new Map,a=t.filter((t=>!1!==t.visible)),r=a.length;let i;return i=r<=3?250:r<=6?200:r<=10?150:r<=15?120:100,a.forEach((t=>{if(t.width){const a=parseInt(t.width);e.set(t.id,isNaN(a)?i:a)}else e.set(t.id,i)})),e}prepareExportData(t){let e=t.selectedOnly?this.parseData().filter((t=>this.state.selectedRows.has(t.id))):this.getProcessedData();const a=t.visibleColumnsOnly?this.getVisibleColumns():this.flattenColumns(this.parseColumns());return e.map((t=>{const e={};return a.forEach((a=>{a.field&&(e[a.label]=a.format?a.format(t[a.field]):t[a.field])})),e}))}performExport(t,e){"csv"===e.format?this.exportToCSV(t,e.fileName||"export.csv"):"json"===e.format?this.exportToJSON(t,e.fileName||"export.json"):"excel"===e.format&&this.exportToExcel(t,e.fileName||"export.xlsx"),this.dataExport.emit({data:t,format:e.format}),this.showExportDialog=!1}exportToCSV(t,e){if(0===t.length)return;const a=Object.keys(t[0]),r=[a.join(","),...t.map((t=>a.map((e=>{const a=t[e];return"string"==typeof a&&a.includes(",")?`"${a}"`:a})).join(",")))].join("\n");this.downloadFile(r,e,"text/csv")}exportToJSON(t,e){const a=JSON.stringify(t,null,2);this.downloadFile(a,e,"application/json")}exportToExcel(t,e){if(0===t.length)return;const a=Object.keys(t[0]);let r='<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>';r+='<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" ',r+='xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">',r+="<Styles>",r+='<Style ss:ID="Header"><Font ss:Bold="1"/><Interior ss:Color="#4472C4" ss:Pattern="Solid"/></Style>',r+='<Style ss:ID="Default"><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/></Borders></Style>',r+="</Styles>",r+='<Worksheet ss:Name="Sheet1"><Table>',r+='<Row ss:StyleID="Header">',a.forEach((t=>{r+=`<Cell><Data ss:Type="String">${this.escapeXml(t)}</Data></Cell>`})),r+="</Row>",t.forEach((t=>{r+='<Row ss:StyleID="Default">',a.forEach((e=>{const a=t[e];r+=`<Cell><Data ss:Type="${"number"==typeof a?"Number":"String"}">${this.escapeXml((null!=a?a:"")+"")}</Data></Cell>`})),r+="</Row>"})),r+="</Table></Worksheet></Workbook>",this.downloadFile(r,e,"application/vnd.ms-excel")}escapeXml(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}downloadFile(t,e,a){const r=new Blob([t],{type:a}),i=URL.createObjectURL(r),o=document.createElement("a");o.href=i,o.download=e,o.click(),URL.revokeObjectURL(i)}exportToPDF(){this.printOptimized||(console.warn("PDF Export requires jspdf library. Please enable print mode."),alert("PDF Export not fully implemented without jspdf. Printing page instead.")),window.print()}pushUndoState(){if(!this.undoRedo)return;const t=JSON.parse(JSON.stringify(this.state));this.undoStack=[...this.undoStack,t],this.redoStack=[],this.undoStack.length>20&&this.undoStack.shift()}handleUndo(){if(!this.undoRedo||0===this.undoStack.length)return;const t=JSON.parse(JSON.stringify(this.state));this.redoStack=[...this.redoStack,t];const e=this.undoStack.pop();this.undoStack=[...this.undoStack],this.state={...e}}handleRedo(){if(!this.undoRedo||0===this.redoStack.length)return;const t=JSON.parse(JSON.stringify(this.state));this.undoStack=[...this.undoStack,t];const e=this.redoStack.pop();this.redoStack=[...this.redoStack],this.state={...e}}setupGlobalKeyboardShortcuts(){document.addEventListener("keydown",(t=>{this.undoRedo&&((t.ctrlKey||t.metaKey)&&"z"===t.key&&(t.preventDefault(),this.handleUndo()),(t.ctrlKey||t.metaKey)&&("y"===t.key||t.shiftKey&&"z"===t.key)&&(t.preventDefault(),this.handleRedo())),this.keyboardShortcuts&&!this.state.editingCell&&this.handleKeyboardNavigation(t)}))}handleKeyboardNavigation(t){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Escape","Tab"].includes(t.key))return;const e=this.getProcessedData(),a=this.getVisibleColumns();if(0===e.length||0===a.length)return;let{focusedCell:r}=this.state;if(!r)return void(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key)&&(this.setFocusedCell(e[0].id,a[0].field??""),t.preventDefault()));const i=e.findIndex((t=>t.id===r.rowId)),o=a.findIndex((t=>t.field===r.field));if(-1!==i&&-1!==o)switch(t.key){case"ArrowUp":i>0&&(this.setFocusedCell(e[i-1].id,r.field),t.preventDefault());break;case"ArrowDown":i<e.length-1&&(this.setFocusedCell(e[i+1].id,r.field),t.preventDefault());break;case"ArrowLeft":o>0&&(this.setFocusedCell(r.rowId,a[o-1].field??""),t.preventDefault());break;case"ArrowRight":o<a.length-1&&(this.setFocusedCell(r.rowId,a[o+1].field??""),t.preventDefault());break;case"Enter":this.editable&&(this.startCellEdit(r.rowId,r.field),t.preventDefault());break;case"Escape":this.setFocusedCell(null,"")}}setFocusedCell(t,e){this.state={...this.state,focusedCell:t?{rowId:t,field:e}:null},t&&setTimeout((()=>{const a=this.el.shadowRoot?.querySelector(`td[data-row-id="${t}"][data-field="${e}"]`);a&&a.scrollIntoView({block:"nearest",inline:"nearest"})}),0)}applyTheme(){const t=this.el.shadowRoot?.querySelector(".data-table-container");if(t)if("auto"===this.theme){const e=window.matchMedia("(prefers-color-scheme: dark)").matches;t.classList.toggle("dark-mode",e)}else t.classList.toggle("dark-mode","dark"===this.theme)}setupClickOutsideListener=()=>{document.addEventListener("click",this.handleClickOutside),document.addEventListener("contextmenu",(t=>{if(this.contextMenu&&this.contextMenuState.visible){const e=t.target,a=(this.el.shadowRoot||this.el).querySelector(".context-menu");if(a&&a.contains(e))return}}))};handleClickOutside=t=>{if(null!==this.activeActionMenu&&(t.target.closest(".row-actions-container")||(this.activeActionMenu=null)),this.contextMenuState.visible){const e=t.target,a=(this.el.shadowRoot||this.el).querySelector(".context-menu");if(a&&a.contains(e))return;this.contextMenuState={...this.contextMenuState,visible:!1}}};handleHeaderContextMenu(t,e){t.preventDefault(),t.stopPropagation();const a=t.currentTarget.getBoundingClientRect();this.contextMenuState={visible:!0,x:a.left,y:a.bottom+window.scrollY,type:"header",target:e}}toggleColumnPin(t,e){const a={...this.pinnedColumns};a.left=a.left.filter((e=>e!==t)),a.right=a.right.filter((e=>e!==t)),"left"===e?a.left.push(t):"right"===e&&a.right.push(t),this.pinnedColumns=a,this.contextMenuState={...this.contextMenuState,visible:!1}}handleContextMenu(t,e,a){this.contextMenu&&(t.preventDefault(),t.stopPropagation(),this.contextMenuState={visible:!0,x:t.clientX,y:t.clientY,type:e,target:a})}setupResizeObserver(){this.resizeObserver=new ResizeObserver((t=>{this.el.shadowRoot?.host.dispatchEvent(new CustomEvent("tableResize"));for(const e of t)this.isMobileView=e.contentRect.width<768})),this.resizeObserver.observe(this.el)}setupLazyLoadObserver(t){t&&this.lazyLoad&&(this.lazyLoadObserver&&this.lazyLoadObserver.disconnect(),this.lazyLoadObserver=new IntersectionObserver((t=>{t.forEach((t=>{if(t.isIntersecting&&!this.loading){const t=this.parseData().length;this.lazyLoadMore.emit({currentCount:t})}}))}),{root:null,rootMargin:"100px",threshold:.1}),this.lazyLoadObserver.observe(t))}announceToScreenReader(t){if(!this.enhancedAccessibility)return;let e=this.el.shadowRoot?.querySelector(".sr-announcer");e||(e=document.createElement("div"),e.className="sr-announcer",e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("role","status"),this.el.shadowRoot?.appendChild(e)),e.textContent="",setTimeout((()=>{e.textContent=t}),100)}calculateAggregations(t){const e={};return this.getVisibleColumns().forEach((a=>{a.aggregation&&a.aggregation.length>0&&(e[a.id]={},a.aggregation.forEach((r=>{const i=t.map((t=>t[a.field])).filter((t=>null!=t&&""!==t));switch(r){case"sum":e[a.id].sum=i.reduce(((t,e)=>Number(t)+Number(e)),0);break;case"avg":const t=i.reduce(((t,e)=>Number(t)+Number(e)),0);e[a.id].avg=i.length>0?t/i.length:0;break;case"min":"date"===a.type||a.id&&a.id.toLowerCase().includes("date")?(i.sort(),e[a.id].min=i[0]):e[a.id].min=Math.min(...i.map((t=>Number(t))));break;case"max":"date"===a.type||a.id&&a.id.toLowerCase().includes("date")?(i.sort(),e[a.id].max=i[i.length-1]):e[a.id].max=Math.max(...i.map((t=>Number(t))));break;case"count":e[a.id].count=i.length}})))})),e}renderAggregationFooter(){const t=this.getProcessedData(),e=this.calculateAggregations(t);return Object.keys(e).length>0?r("tfoot",{class:"data-table-footer"},r("tr",null,(this.selectable||this.multiSelect)&&r("td",null),this.rowDetails&&r("td",null),this.getVisibleColumns().map((t=>{const a=e[t.id],i=this.pinnedColumns.left.includes(t.id),o=this.pinnedColumns.right.includes(t.id);return r("td",{class:{"pinned-left":i,"pinned-right":o},style:{position:i||o?"sticky":void 0,left:i?this.getPinnedOffset(t.id,"left"):void 0,right:o?this.getPinnedOffset(t.id,"right"):void 0,zIndex:i||o?"3":void 0,textAlign:t.align||"left"}},a&&Object.entries(a).map((([e,a])=>r("div",{class:"agg-item"},r("span",{class:"agg-label"},e,":"),r("span",{class:"agg-value"},t.format&&"number"==typeof a?t.format(a):a)))))})))):null}renderSkeletonRows(t){return Array.from({length:this.skeletonRows},((e,a)=>r("tr",{key:"skeleton-"+a,class:"skeleton-row"},this.selectable&&r("td",{class:"skeleton-cell"},r("ui-skeleton",{shape:"square",size:"sm",width:"16px",height:"16px"})),t.map((t=>r("td",{key:`skeleton-${a}-${t.id}`,class:"skeleton-cell"},r("ui-skeleton",{shape:"text",animationType:"wave",width:30+40*Math.random()+"%"})))))))}getPinnedOffset(t,e){const a=this.getVisibleColumns(),r=t=>"left"===e?this.pinnedColumns.left.includes(t.id):this.pinnedColumns.right.includes(t.id),i=a.filter((t=>r(t))),o=i.findIndex((e=>e.id===t));if(o<=0)return"0px";let n=0;for(let t=0;t<o;t++)n+=this.state.columnWidths.get(i[t].id)||150;return n+"px"}renderColumnHeader(t,e=1){if(t.children&&t.children.length>0)return r("th",{class:"column-group",colSpan:this.getLeafColumnCount(t),style:{textAlign:t.align||"left"}},r("div",{class:"column-header-content"},r("span",null,t.label)));const a=this.state.sortConfig.field===t.field,i=a?this.state.sortConfig.direction:null,o=this.state.columnWidths.get(t.id);return r("th",{rowSpan:e>1?e:void 0,class:{sortable:this.sortable&&!1!==t.sortable,sorted:a,"sticky-column":t.sticky||this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id),resizing:this.resizingColumn===t.id,"pinned-left":this.pinnedColumns.left.includes(t.id),"pinned-right":this.pinnedColumns.right.includes(t.id)},style:{width:o?o+"px":t.width||"auto",minWidth:t.minWidth,textAlign:t.align||"left",position:t.sticky||this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id)?"sticky":"relative",left:this.pinnedColumns.left.includes(t.id)?this.getPinnedOffset(t.id,"left"):void 0,right:this.pinnedColumns.right.includes(t.id)?this.getPinnedOffset(t.id,"right"):void 0,zIndex:t.sticky||this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id)?"30":void 0}},r("div",{class:"column-header-content"},this.columnReorder&&r("span",{class:"drag-handle",draggable:!0,onDragStart:e=>this.handleColumnDragStart(t.id,e),onDragOver:t=>this.handleColumnDragOver(t),onDrop:e=>this.handleColumnDrop(t.id,e),title:"Drag to reorder"},r("ui-icon",{name:"grip-vertical",library:"lucide",size:"1.2em"})),r("span",{class:"column-label",onClick:e=>!1!==t.sortable&&this.handleMultiSort(t.field||t.id,e)},(this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id))&&r("ui-icon",{name:"pin",library:"lucide",size:"14px",class:"pin-indicator"}),t.label),this.sortable&&!1!==t.sortable&&(()=>{if(this.multiSort){const e=this.multiSortConfig.findIndex((e=>e.field===(t.field||t.id)));return e>=0?r("span",{class:"sort-icon multi-sort"},r("ui-icon",{name:"asc"===this.multiSortConfig[e].direction?"arrow-up":"arrow-down",library:"lucide",size:"14px"}),r("span",{class:"sort-order-badge"},e+1)):r("ui-icon",{name:"arrow-up-down",library:"lucide",size:"14px",class:"sort-icon"})}return r("span",{class:"sort-icon"},!a&&r("ui-icon",{name:"arrow-up-down",library:"lucide",size:"14px"}),a&&r("ui-icon",{name:"asc"===i?"arrow-up":"arrow-down",library:"lucide",size:"14px"}))})(),r("ui-button",{variant:"ghost",class:"header-menu-trigger",onClick:e=>this.handleHeaderContextMenu(e,t),ariaLabel:"Column options",icon:"more-vertical",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),this.filterable&&!1!==t.filterable&&r("div",{class:"column-filter"},r("ui-input",{type:"text",placeholder:`Filter ${t.label}...`,value:this.state.filterConfig[t.field||t.id]||"",onInputChange:e=>this.handleFilter(t.field||t.id,e.detail),onClick:t=>t.stopPropagation(),size:"sm",variant:"outlined"})),r("div",{class:"resize-handle",onMouseDown:e=>this.handleResizeStart(t.id,e),onClick:t=>t.stopPropagation()}))}renderTableHeaders(){const t=this.parseColumns();if(!t.some((t=>t.children&&t.children.length>0)))return r("tr",null,this.selectable&&r("th",{class:"select-column"},this.multiSelect&&r("ui-checkbox",{checked:this.state.selectedRows.size===this.getProcessedData().length,onCheckboxChange:t=>this.handleSelectAll(t),ariaLabel:"Select all rows",size:"sm"})),this.getVisibleColumns().map((t=>this.renderColumnHeader(t))),this.showActions&&r("th",{class:"actions-column"},"Actions"),this.rowDetails&&r("th",{class:"row-details-column"},"Details"));const e=[],a=this.getMaxColumnDepth(t);for(let i=0;i<a;i++)e.push(r("tr",null,0===i&&this.selectable&&r("th",{class:"select-column",rowSpan:a},this.multiSelect&&r("ui-checkbox",{checked:this.state.selectedRows.size===this.getProcessedData().length,onCheckboxChange:t=>this.handleSelectAll(t),ariaLabel:"Select all rows",size:"sm"})),this.renderHeaderLevel(t,i,0,a),0===i&&this.showActions&&r("th",{class:"actions-column",rowSpan:a},"Actions"),0===i&&this.rowDetails&&r("th",{class:"row-details-column",rowSpan:a},"Details")));return e}getMaxColumnDepth(t){let e=1;const a=(t,r)=>{t.forEach((t=>{t.children&&t.children.length>0&&(e=Math.max(e,r+1),a(t.children,r+1))}))};return a(t,1),e}renderHeaderLevel(t,e,a=0,r=1){const i=[];return t.forEach((t=>{const o=t.children&&t.children.length>0;(o?this.getLeafColumnCount(t)>0:this.state.visibleColumns.has(t.id))&&(a===e?i.push(this.renderColumnHeader(t,o?1:r-a)):o&&i.push(...this.renderHeaderLevel(t.children,e,a+1,r)))})),i}renderCell(t,e){const a=e.field?t[e.field]:"";let i;i=this.editable&&!1!==e.editable||this.state.editingCell?.rowId===t.id&&this.state.editingCell?.field===e.field&&!1!==e.editable?this.advancedCellEditors?this.renderAdvancedCellEditor(t,e,a):this.renderEditableCell(t,e,a):this.columnFormatting?this.formatCellValue(a,e):this.renderDisplayCell(t,e,a);const o=this.getVisibleColumns();if(this.treeData&&o.length>0&&o[0].id===e.id){const e=t._depth||0,a=t._hasChildren,o=this.state.expandedRows.has(t.id);return r("div",{class:"cell-content-wrapper",style:{display:"flex",alignItems:"center"}},r("span",{style:{paddingLeft:24*e+"px"}}),a?r("span",{class:"tree-toggle-icon",onClick:e=>this.toggleRowExpansion(t.id,e),style:{cursor:"pointer",marginRight:"8px",display:"inline-block",width:"16px",textAlign:"center",userSelect:"none"}},r("ui-icon",{name:o?"chevron-down":"chevron-right",library:"lucide",size:"14px"})):r("span",{style:{display:"inline-block",width:"24px"}}),r("div",{class:"cell-inner-content",style:{flex:"1"}},i))}return!this.columnReorder||e.align&&"left"!==e.align?i:r("div",{class:"cell-content-wrapper",style:{display:"flex",alignItems:"center"}},r("span",{class:"drag-handle-spacer",style:{width:"22px",flexShrink:"0"}}),r("div",{class:"cell-inner-content",style:{flex:"1"}},i))}getLeafColumnCount(t){if(!t.children||0===t.children.length)return 1;let e=0;return t.children.forEach((t=>{t.children&&t.children.length>0?e+=this.getLeafColumnCount(t):this.state.visibleColumns.has(t.id)&&(e+=1)})),e}renderEditableCell(t,e,a){const i=()=>{this.editable||(this.state={...this.state,editingCell:null})},o=(a,r)=>{"Enter"===a.key?this.handleCellEdit(t.id,e.field,r.value):"Escape"===a.key&&(this.editable||i())};switch(e.type){case"select":return r("select",{ref:t=>{t&&(this.editInputRef=t,t.value=a)},onChange:a=>this.handleCellEdit(t.id,e.field,a.target.value),onBlur:i,class:"cell-select"},e.selectOptions?.map((t=>r("option",{value:t.value,selected:t.value===a},t.label))));case"radio":return r("div",{class:"cell-radio-group"},e.radioOptions?.map((i=>r("label",{class:"radio-label"},r("ui-radio",{name:`${t.id}-${e.field}`,value:i.value,checked:i.value===a,onRadioChange:a=>this.handleCellEdit(t.id,e.field,a.detail.value),label:i.label,size:"sm"})))));case"checkbox":return r("ui-checkbox",{ref:t=>this.editInputRef=t,checked:!0===a||"true"===a,onCheckboxChange:a=>this.handleCellEdit(t.id,e.field,a.detail.checked),onCheckboxBlur:i,size:"sm"});case"switch":return r("ui-switch",{checked:!0===a||"true"===a,onSwitchChange:a=>this.handleCellEdit(t.id,e.field,a.detail.checked),size:"sm"});case"rating":const n=e.maxRating||5,s=Number(a)||0;return r("div",{class:"cell-rating"},Array.from({length:n},((t,e)=>e+1)).map((a=>r("span",{class:{star:!0,filled:a<=s},onClick:()=>this.handleCellEdit(t.id,e.field,a)},r("ui-icon",{name:"star",library:"lucide",size:"1.2em",color:a<=s?"#ffc107":"#bdbdbd"})))));case"date":case"time":case"datetime":case"password":case"email":return r("ui-input",{ref:t=>this.editInputRef=t,type:"datetime"===e.type?"datetime-local":e.type,value:a,onInputChange:a=>this.handleCellEdit(t.id,e.field,a.detail),onInputBlur:i,onInputKeydown:t=>o(t.detail,t.target),customClass:"cell-input",variant:"plain",size:"sm"});case"url":return r("ui-input",{ref:t=>this.editInputRef=t,type:"number"===e.type?"number":"tel"===e.type?"tel":"url"===e.type?"url":"text",value:a,onInputChange:a=>this.handleCellEdit(t.id,e.field,a.detail),onInputBlur:i,onInputKeydown:t=>o(t.detail,t.target),customClass:"cell-input",variant:"plain",size:"sm"})}}renderDisplayCell(t,e,a){if(e.render)return r("span",{class:{"editable-cell":this.editable&&!1!==e.editable},onDblClick:()=>this.editable&&!1!==e.editable&&this.startCellEdit(t.id,e.field)},e.render(a,t,0));if(this.enableSparklines&&Array.isArray(a)&&a.length>0&&"number"==typeof a[0])return this.renderSparkline(a);let i;switch(e.type){case"checkbox":case"boolean":i=r("span",{class:"cell-boolean"},r("ui-icon",{name:a?"check":"x",library:"lucide",size:"1.2em",color:a?"#4caf50":"#f44336"}));break;case"switch":i=r("ui-switch",{checked:!!a,readonly:!0,size:"sm"});break;case"rating":i=r("ui-rating",{value:Number(a)||0,max:e.maxRating||5,readonly:!0,size:"sm"});break;case"image":const t=e.imageStyle||{};i=a?r("img",{src:a,alt:"Cell image",class:"cell-image",style:{width:t.width||"40px",height:t.height||"40px",borderRadius:t.borderRadius||"4px"}}):null;break;case"password":i=r("span",{class:"cell-password"},"•".repeat(a?.length||8));break;case"date":i=a?new Date(a).toLocaleDateString():"";break;case"datetime":i=a?new Date(a).toLocaleString():"";break;case"time":i=a;break;case"email":i=r("a",{href:"mailto:"+a,class:"cell-link"},a);break;case"url":i=r("a",{href:a,target:"_blank",rel:"noopener noreferrer",class:"cell-link"},a);break;case"tel":i=r("a",{href:"tel:"+a,class:"cell-link"},a);break;default:i=e.format?e.format(a):a}return r("span",{class:{"editable-cell":this.editable&&!1!==e.editable},onDblClick:()=>this.editable&&!1!==e.editable&&this.startCellEdit(t.id,e.field)},i)}renderRowActions(t){const e=this.activeActionMenu===t.id,a=this.customActions||[{label:"Edit",value:"edit",icon:"✏️"},{label:"Delete",value:"delete",icon:"🗑️"}];return r("div",{class:"row-actions-container"},r("ui-button",{variant:"ghost",class:"row-actions-trigger",onClick:a=>{a.stopPropagation(),this.activeActionMenu=e?null:t.id},ariaLabel:"Row actions",icon:"more-vertical",iconLibrary:"lucide",iconOnly:!0,size:"sm"}),e&&r("div",{class:"row-actions-menu"},a.map((e=>r("ui-button",{key:e.value,variant:"ghost",class:"row-action-item",onClick:a=>{a.stopPropagation(),this.handleRowAction(t,e.value)},icon:e.icon,iconLibrary:e.iconLibrary||this.iconLibrary,label:e.label,size:"sm",block:!0,align:"start"})))))}handleRowAction(t,e){this.activeActionMenu=null,"edit"===e?this.rowEdit.emit({row:t}):"delete"===e?this.rowDelete.emit({row:t}):this.rowAction.emit({row:t,action:e})}renderGroupedRows(t,e){const a=this.groupData(t,this.state.groupBy),i=[];return a.forEach(((t,a)=>{const o=this.state.expandedGroups.has(a),n=t.length;i.push(r("tr",{class:"group-header-row",key:"group-"+a,role:"row","aria-expanded":o},r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0),class:"group-header-cell",onClick:()=>this.handleGroupToggle(a),role:"button",tabIndex:0,onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.handleGroupToggle(a))},"aria-label":`${o?"Collapse":"Expand"} group ${a}`},r("div",{class:"group-header-content"},r("span",{class:"group-expand-icon"},r("ui-icon",{name:o?"chevron-down":"chevron-right",library:"lucide",size:"14px"})),r("span",{class:"group-label"},a),this.showGroupCount&&r("span",{class:"group-count"},"(",n," ",1===n?"item":"items",")"))))),o&&t.forEach(((t,o)=>{i.push(r("tr",{class:{"group-data-row":!0,selected:this.state.selectedRows.has(t.id)},key:t.id,role:"row","data-group":a,"aria-label":`Row ${o+1} in group ${a}`},this.selectable&&r("td",{class:"select-column",role:"cell"},r("ui-checkbox",{checked:this.state.selectedRows.has(t.id),onCheckboxChange:e=>this.handleRowSelect(t.id,e.detail),ariaLabel:"Select row "+(o+1),size:"sm"})),e.map((e=>r("td",{key:e.id,class:{"sticky-column":!!e.sticky,"focused-cell":this.state.focusedCell?.rowId===t.id&&this.state.focusedCell?.field===e.field,"pinned-left":this.pinnedColumns.left.includes(e.id),"pinned-right":this.pinnedColumns.right.includes(e.id)},style:{textAlign:e.align||"left"},role:"cell","data-row-id":t.id,"data-field":e.field,tabIndex:0,onFocus:()=>this.setFocusedCell(t.id,e.field)},this.renderCell(t,e)))),this.showActions&&r("td",{class:"actions-column",role:"cell"},this.renderRowActions(t)),this.rowDetails&&r("td",{class:"row-details-toggle-cell",role:"cell"},r("ui-button",{variant:"ghost",size:"sm",onClick:()=>this.toggleRowDetails(t.id),ariaLabel:"Toggle row details",icon:this.expandedRowDetails.has(t.id)?"chevron-down":"chevron-right",iconLibrary:"lucide",iconOnly:!0,iconSize:"1.2em"})))),this.rowDetails&&this.expandedRowDetails.has(t.id)&&i.push(this.renderRowDetailsPanel(t))}))})),i}renderRowDetailsPanel(t){if(!this.rowDetails||!this.expandedRowDetails.has(t.id))return null;const e=this.getVisibleColumns();return r("tr",{key:t.id+"-details",class:"row-details-row"},r("td",{colSpan:e.length+(this.selectable?1:0)+(this.rowReorder?1:0)+(this.showActions?1:0)},r("div",{class:"row-details-panel"},r("div",{class:"details-header"},r("h4",null,"Row Details"),r("ui-button",{variant:"ghost",onClick:()=>this.toggleRowDetails(t.id),icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),r("div",{class:"details-content"},Object.entries(t).map((([t,e])=>r("div",{key:t,class:"detail-item"},r("strong",{class:"detail-label"},t,":"),r("span",{class:"detail-value"},e+""))))))))}renderKeyboardShortcutsModal(){return this.showKeyboardShortcutsHelp?r("div",{class:"keyboard-shortcuts-modal",onClick:()=>this.showKeyboardShortcutsHelp=!1},r("div",{class:"modal-content",onClick:t=>t.stopPropagation()},r("div",{class:"modal-header"},r("h3",null,"Keyboard Shortcuts"),r("ui-button",{variant:"ghost",icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm",onClick:()=>this.showKeyboardShortcutsHelp=!1})),r("div",{class:"modal-body"},r("table",{class:"shortcuts-table"},r("tbody",null,r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + F"),r("td",{class:"shortcut-desc"},"Focus search")),r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + A"),r("td",{class:"shortcut-desc"},"Select all rows")),r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + E"),r("td",{class:"shortcut-desc"},"Export data")),r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + Click"),r("td",{class:"shortcut-desc"},"Multi-column sort")),r("tr",null,r("td",{class:"shortcut-key"},"Shift + ?"),r("td",{class:"shortcut-desc"},"Show this help")),r("tr",null,r("td",{class:"shortcut-key"},"Arrow Keys"),r("td",{class:"shortcut-desc"},"Navigate cells"))))))):null}renderSparkline(t){if(t.length<2)return t.join(", ");const e=Math.min(...t),a=Math.max(...t)-e||1,i=t.map(((r,i)=>`${i/(t.length-1)*100},${20-(r-e)/a*20}`)).join(" ");return r("svg",{width:100,height:20,class:"sparkline",style:{display:"block"}},r("polyline",{points:i,fill:"none",stroke:"currentColor","stroke-width":"1.5"}))}renderContextMenu(){if(!this.contextMenuState.visible)return null;const{x:t,y:e,type:a,target:i}=this.contextMenuState,o={top:e+"px",left:t+"px",position:"fixed",zIndex:"1000"};if("header"===a){const t=i,e=this.pinnedColumns.left.includes(t.id),a=this.pinnedColumns.right.includes(t.id);return r("div",{class:"context-menu header-context-menu",style:o},r("div",{class:"context-menu-header"},t.label," Options"),r("ul",null,r("li",{onClick:()=>this.handleSort(t.field||t.id)},this.state.sortConfig.field===(t.field||t.id)&&"asc"===this.state.sortConfig.direction?r("span",null,r("ui-icon",{name:"check",library:"lucide",size:"1.2em"})," Sort Decending"):"Sort Ascending"),r("li",{class:"divider"}),r("li",{class:"has-submenu"},"Pin Column",r("ul",{class:"submenu"},r("li",{onClick:()=>this.toggleColumnPin(t.id,"left")},e&&r("ui-icon",{name:"check",library:"lucide",size:"1.2em"}),"Pin to Left"),r("li",{onClick:()=>this.toggleColumnPin(t.id,"right")},a&&r("ui-icon",{name:"check",library:"lucide",size:"1.2em"}),"Pin to Right"),r("li",{onClick:()=>this.toggleColumnPin(t.id,"none")},!e&&!a&&r("ui-icon",{name:"check",library:"lucide",size:"1.2em"}),"No Pin"))),r("li",{onClick:()=>this.toggleColumnVisibility(t.id)},"Hide Column"),r("li",{class:"divider"}),r("li",{onClick:()=>{this.handleFilter(t.field||t.id,""),this.contextMenuState={...this.contextMenuState,visible:!1}}},"Clear Column Filter")))}return r("div",{class:"context-menu",style:o},r("ul",null,r("li",{onClick:()=>this.handleContextAction("copy")},"Copy"),"row"===a&&r("li",{onClick:()=>this.handleContextAction("delete")},"Delete Row"),"cell"===a&&r("li",{onClick:()=>this.handleContextAction("edit")},"Edit Cell"),r("li",{class:"divider"}),r("li",{onClick:()=>this.handleContextAction("export")},"Export Row")))}handleContextAction(t){const{target:e,type:a}=this.contextMenuState;if("copy"===t){let t="";"cell"===a?t=(e.value||"")+"":"row"===a&&(t=JSON.stringify(e)),t&&navigator.clipboard.writeText(t).catch((t=>console.error("Copy failed",t)))}else"edit"===t&&"cell"===a&&this.startCellEdit(e.rowId,e.field);this.contextMenuState={...this.contextMenuState,visible:!1}}renderMobileCards(t){const e=this.getVisibleColumns();return r("div",{class:"mobile-cards-view"},t.map((t=>r("div",{class:"mobile-card",key:t.id},r("div",{class:"card-header"},this.selectable&&r("ui-checkbox",{checked:this.state.selectedRows.has(t.id),onCheckboxChange:e=>this.handleRowSelect(t.id,e.detail),size:"sm"}),r("span",{class:"card-title"},"Row #",t.id),this.showActions&&r("div",{class:"card-actions"},this.renderRowActions(t))),r("div",{class:"card-body"},e.map((e=>r("div",{class:"card-field",key:e.id},r("label",null,e.label||e.field),r("div",{class:"card-value"},this.renderCell(t,e))))))))),this.renderLazyLoadSentinel())}renderLazyLoadSentinel(){return this.lazyLoad?r("div",{class:"lazy-load-sentinel",ref:t=>{t&&this.setupLazyLoadObserver(t)},style:{height:"20px",textAlign:"center",padding:"10px"}},this.loading?"Loading more...":""):null}renderValidationError(t,e){if(!this.advancedValidation)return null;const a=t+"",i=this.validationErrors.get(a)?.get(e);return i?r("div",{class:"validation-error-tooltip"},r("ui-icon",{name:"alert-triangle",library:"lucide",size:"14px",class:"error-icon",color:"#f44336"}),r("span",{class:"error-message"},i)):null}renderPagination(){if(!this.pagination)return null;const{currentPage:t,pageSize:e,totalRows:a}=this.state.pagination;return r("div",{class:"pagination-container"},r("ui-pagination",{"total-items":a,"items-per-page":e,"current-page":t,"show-first-last":!0,"show-page-size":!0,"show-total":!0,"page-size-options":JSON.stringify(this.parsePageSizeOptions()),theme:this.paginationTheme,shape:this.paginationShape,"keyboard-nav":this.paginationKeyboardNav,"quick-jump":this.paginationQuickJump,"quick-jump-step":this.paginationQuickJumpStep,"show-progress":this.paginationShowProgress,sticky:this.paginationSticky,"sticky-position":this.paginationStickyPosition,"page-transition":this.paginationTransitions,"url-sync":this.paginationUrlSync,"url-param":this.paginationUrlParam,"persist-page":this.paginationPersistPage,"storage-key":this.paginationStorageKey,"swipe-gestures":this.paginationSwipeGestures,"smart-compact":this.paginationSmartCompact,"smart-compact-threshold":this.paginationSmartCompactThreshold,"auto-hide":this.paginationAutoHide,"responsive-mode":this.paginationResponsive,"mobile-breakpoint":this.paginationMobileBreakpoint,onPageChange:t=>this.handlePaginationChange(t),onItemsPerPageChange:t=>this.handlePageSizeChangeFromPagination(t)}))}renderToolbar(){return r("div",{class:"table-toolbar"},r("div",{class:"toolbar-left"},this.searchable&&r("div",{class:"search-box"},r("ui-input",{type:"text",placeholder:"Search...",value:this.state.searchQuery,onInputChange:t=>this.handleSearch(t.detail),ariaLabel:"Search table",size:"sm",prefixIcon:"search",variant:"outlined"})),this.grouping&&this.renderGroupingSelector()),r("div",{class:"toolbar-right"},this.filterable&&r("ui-button",{variant:"ghost",size:"sm",icon:"filter",iconLibrary:"lucide",iconSize:"1.1em",label:"Filters",ariaLabel:"Filter panel",onClick:()=>this.showFilterPanel=!this.showFilterPanel,"data-expanded":this.showFilterPanel}),this.columnVisibility&&r("ui-button",{variant:"ghost",size:"sm",icon:"settings",iconLibrary:"lucide",iconSize:"1.1em",label:"Columns",ariaLabel:"Column settings",onClick:()=>this.showColumnSettings=!this.showColumnSettings,"data-expanded":this.showColumnSettings}),this.exportable&&r("ui-button",{variant:"ghost",size:"sm",icon:"download",iconLibrary:"lucide",iconSize:"1.1em",label:"Export",ariaLabel:"Export data",onClick:()=>this.showExportDialog=!this.showExportDialog}),r("ui-button",{variant:"ghost",size:"sm",icon:"refresh-cw",iconLibrary:"lucide",iconSize:"1.1em",label:"Refresh",ariaLabel:"Refresh table",onClick:()=>this.refresh()})))}renderGroupingSelector(){const t=this.getVisibleColumns().filter((t=>!1!==t.groupBy));return 0===t.length?null:r("div",{class:"grouping-selector"},r("label",{htmlFor:"group-by-select"},"Group by:"),r("select",{id:"group-by-select",onInput:t=>this.handleGroupByChange(t.target.value),"aria-label":"Group table by column"},r("option",{value:"",selected:!this.state.groupBy},"None"),t.map((t=>r("option",{value:t.field||t.id,key:t.id,selected:this.state.groupBy===(t.field||t.id)},t.label)))))}renderFilterPanel(){if(!this.showFilterPanel)return null;const t=this.flattenColumns(this.parseColumns()),e=t.filter((t=>!1!==t.filterable)),a=e.find((t=>t.id===this.filterPanelField)),i=a?(t=>t.type?t.type:t.field?.includes("date")||t.field?.includes("Date")?"date":t.field?.includes("price")||t.field?.includes("salary")||t.field?.includes("amount")?"number":t.field?.includes("email")?"email":"text")(a):"text",o=(t=>{const e=[{value:"equals",label:"Equals"},{value:"notEquals",label:"Not Equals"}];return"number"===t||"date"===t?[...e,{value:"greaterThan",label:"Greater Than"},{value:"lessThan",label:"Less Than"},{value:"between",label:"Between"}]:"text"===t||"email"===t||"url"===t?[...e,{value:"contains",label:"Contains"},{value:"notContains",label:"Not Contains"},{value:"startsWith",label:"Starts With"},{value:"endsWith",label:"Ends With"}]:e})(i);return r("div",{class:"filter-panel"},r("div",{class:"filter-panel-header"},r("h4",null,r("ui-icon",{name:"filter",library:"lucide",size:"1.1em"})," Advanced Filters"),r("ui-button",{variant:"ghost",size:"sm",icon:"x",iconLibrary:"lucide",iconSize:"1.1em",onClick:()=>this.showFilterPanel=!1})),r("div",{class:"filter-panel-body"},r("div",{class:"filter-builder"},r("div",{class:"filter-row"},r("select",{class:"filter-field-select",onChange:t=>{this.filterPanelField=t.target.value,this.filterPanelValue=""}},r("option",{value:"",selected:""===this.filterPanelField},"Select Column..."),e.map((t=>r("option",{value:t.id,selected:this.filterPanelField===t.id},t.label)))),r("select",{class:"filter-operator-select",onChange:t=>this.filterPanelOperator=t.target.value,disabled:!this.filterPanelField},o.map((t=>r("option",{value:t.value,selected:this.filterPanelOperator===t.value},t.label)))),r("ui-input",{type:"number"===i?"number":"date"===i?"date":"text",customClass:"filter-value-input",value:this.filterPanelValue,onInputChange:t=>this.filterPanelValue=t.detail,placeholder:"Filter value...",disabled:!this.filterPanelField,size:"sm",variant:"outlined"}),r("ui-button",{variant:"ghost",size:"sm",icon:"plus",iconLibrary:"lucide",iconSize:"1.2em",label:"Add",onClick:()=>{this.filterPanelField&&this.filterPanelValue&&(this.addFilter(this.filterPanelField,this.filterPanelOperator,this.filterPanelValue),this.filterPanelField="",this.filterPanelValue="")},disabled:!this.filterPanelField||!this.filterPanelValue}))),r("div",{class:"active-filters"},r("div",{class:"active-filters-header"},r("span",null,"Active Filters (",Array.from(this.activeFilters.values()).flat().length,")"),this.activeFilters.size>0&&r("ui-button",{variant:"ghost",size:"sm",label:"Clear All",onClick:()=>this.clearAllFilters()})),r("div",{class:"filter-chips"},Array.from(this.activeFilters.entries()).map((([e,a])=>{const i=t.find((t=>t.id===e));return a.map(((t,a)=>r("div",{class:"filter-chip"},r("span",{class:"filter-chip-label"},r("strong",null,i?.label||e)," ",t.operator,' "',t.value,'"'),r("ui-button",{variant:"ghost",size:"sm",class:"filter-chip-remove",icon:"x",iconLibrary:"lucide",iconSize:"14px",onClick:()=>this.removeFilter(e,a)}))))})),0===this.activeFilters.size&&r("div",{class:"no-filters"},"No active filters")))))}renderColumnSettings(){if(!this.showColumnSettings)return null;const t=this.flattenColumns(this.parseColumns());return r("div",{class:"column-settings-dialog"},r("div",{class:"dialog-overlay",onClick:()=>this.showColumnSettings=!1}),r("div",{class:"dialog-content"},r("div",{class:"dialog-header"},r("h3",null,"Column Settings"),r("ui-button",{variant:"ghost",size:"sm",icon:"x",iconLibrary:"lucide",iconSize:"1.2em",onClick:()=>this.showColumnSettings=!1})),r("div",{class:"dialog-body"},r("div",{class:"column-list"},t.map((t=>r("label",{class:"column-item"},r("ui-checkbox",{checked:this.state.visibleColumns.has(t.id),onCheckboxChange:()=>this.toggleColumnVisibility(t.id),label:t.label,size:"sm"})))))),r("div",{class:"dialog-footer"},r("ui-button",{variant:"primary",label:"Done",onClick:()=>this.showColumnSettings=!1}))))}renderExportDialog(){return this.showExportDialog?r("div",{class:"export-dialog"},r("div",{class:"dialog-overlay",onClick:()=>this.showExportDialog=!1}),r("div",{class:"dialog-content"},r("div",{class:"dialog-header"},r("h3",null,"Export Data"),r("ui-button",{variant:"ghost",size:"sm",icon:"x",iconLibrary:"lucide",iconSize:"1.2em",onClick:()=>this.showExportDialog=!1})),r("div",{class:"dialog-body"},r("div",{class:"export-options"},r("ui-button",{variant:"ghost",fullWidth:!0,icon:"file-text",iconLibrary:"lucide",iconSize:"1.2em",label:"Export as CSV",onClick:()=>this.exportData({format:"csv",visibleColumnsOnly:!0})}),r("ui-button",{variant:"ghost",fullWidth:!0,icon:"clipboard",iconLibrary:"lucide",iconSize:"1.2em",label:"Export as JSON",onClick:()=>this.exportData({format:"json",visibleColumnsOnly:!0})}),this.pdfExport&&r("ui-button",{variant:"ghost",fullWidth:!0,icon:"book",iconLibrary:"lucide",iconSize:"1.2em",label:"Export as PDF",onClick:()=>this.exportToPDF()}),this.state.selectedRows.size>0&&r("ui-button",{variant:"ghost",fullWidth:!0,icon:"check-circle",iconLibrary:"lucide",iconSize:"1.2em",label:`Export Selected Only (${this.state.selectedRows.size} rows)`,onClick:()=>this.exportData({format:"csv",selectedOnly:!0})}))))):null}getHostStyles(){const t={};return this.headerBackground&&(t["--table-header-bg"]=this.headerBackground),this.stripedColor&&(t["--table-striped-bg"]=this.stripedColor),this.stripedColorDark&&(t["--table-striped-bg-dark"]=this.stripedColorDark),t}render(){const t=this.getProcessedData(),e=this.getVisibleColumns();let a=t,i=0,o=0;if(this.virtualScroll){const{start:e,end:r}=this.state.virtualVisibleRange,n=Math.max(0,e),s=Math.min(t.length,r);a=t.slice(n,s),i=n*this.virtualRowHeight,o=(t.length-s)*this.virtualRowHeight}return this.mobileCardView&&this.isMobileView?r("div",{class:{"data-table-container":!0,"mobile-view":!0,["advanced-table-"+this.variant]:!0,["table-color-"+this.color]:!0,"dark-mode":"dark"===this.theme,[this.rowHeight]:!!this.rowHeight},style:this.getHostStyles()},this.renderToolbar(),this.renderMobileCards(a),this.renderPagination(),this.renderFilterPanel(),this.renderColumnSettings(),this.renderExportDialog(),this.renderKeyboardShortcutsModal(),this.renderContextMenu()):r("div",{class:{"data-table-container":!0,["advanced-table-"+this.variant]:!0,["table-color-"+this.color]:!0,"dark-mode":"dark"===this.theme,[this.rowHeight]:!!this.rowHeight},style:this.getHostStyles()},this.renderToolbar(),r("div",{class:{"table-wrapper":!0,"virtual-scroll":this.virtualScroll},onScroll:this.virtualScroll?this.handleVirtualScroll:void 0},r("table",{class:{"data-table":!0,"sticky-header":this.stickyHeader,striped:this.striped,hoverable:this.hoverable,bordered:this.bordered},role:"table","aria-label":"Data table"},r("thead",null,this.renderTableHeaders()),r("tbody",null,this.loading&&this.showSkeleton&&this.renderSkeletonRows(e),this.loading&&!this.showSkeleton&&r("tr",null,r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0)+(this.rowDetails?1:0),class:"loading-cell"},r("div",{class:"loading-container"},r("ui-loader",{type:"spinner",size:"2em",color:"primary"}),r("span",null,"Loading...")))),!this.loading&&0===t.length&&r("tr",null,r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0)+(this.rowDetails?1:0),class:"empty-cell"},this.emptyMessage)),i>0&&r("tr",{style:{height:i+"px"},role:"presentation"},r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0),style:{padding:"0",border:"none"}})),!this.loading&&a.length>0&&this.state.groupBy&&this.renderGroupedRows(a,e),!this.loading&&a.length>0&&!this.state.groupBy&&a.map(((t,a)=>[r("tr",{class:{selected:this.state.selectedRows.has(t.id),"pinned-row-top":this.pinnedRows.top.includes(t.id),"pinned-row-bottom":this.pinnedRows.bottom.includes(t.id)},key:t.id,role:"row",onContextMenu:e=>this.handleContextMenu(e,"row",t),"data-row-id":t.id},this.selectable&&r("td",{class:"select-column",role:"cell"},r("ui-checkbox",{checked:this.state.selectedRows.has(t.id),onCheckboxChange:e=>this.handleRowSelect(t.id,e),ariaLabel:"Select row "+(a+1),size:"sm"})),e.map((e=>r("td",{key:e.id,class:{"sticky-column":!!e.sticky,"range-selection-cell":!0,"focused-cell":this.state.focusedCell?.rowId===t.id&&this.state.focusedCell?.field===e.field,"pinned-left":this.pinnedColumns.left.includes(e.id),"pinned-right":this.pinnedColumns.right.includes(e.id)},style:{textAlign:e.align||"left",left:this.pinnedColumns.left.includes(e.id)?this.getPinnedOffset(e.id,"left"):void 0,right:this.pinnedColumns.right.includes(e.id)?this.getPinnedOffset(e.id,"right"):void 0,...this.getConditionalFormattingStyle(t[e.field],e)},role:"cell",onClick:a=>this.handleCellClick(t.id,e.field,a),onContextMenu:a=>this.handleContextMenu(a,"cell",{rowId:t.id,field:e.field,value:t[e.field]}),"data-row-id":t.id,"data-field":e.field,tabIndex:0,onFocus:()=>this.setFocusedCell(t.id,e.field)},this.renderCell(t,e),this.renderValidationError(t.id,e.field)))),this.showActions&&r("td",{class:"actions-column",role:"cell"},this.renderRowActions(t)),this.rowDetails&&r("td",{class:"row-details-toggle-cell",role:"cell"},r("ui-button",{variant:"ghost",size:"sm",icon:this.expandedRowDetails.has(t.id)?"chevron-down":"chevron-right",iconLibrary:"lucide",iconSize:"16px",ariaLabel:"Toggle row details",onClick:()=>this.toggleRowDetails(t.id)}))),this.renderRowDetailsPanel(t)])),o>0&&r("tr",{style:{height:o+"px"},role:"presentation"},r("td",{colSpan:100,style:{padding:"0",border:"none"}}))),this.columnAggregation&&this.renderAggregationFooter()),this.renderLazyLoadSentinel()),this.renderPagination(),this.renderFilterPanel(),this.renderColumnSettings(),this.renderExportDialog(),this.renderKeyboardShortcutsModal(),this.renderContextMenu())}static get watchers(){return{data:[{onDataOrColumnsChange:0}],columns:[{onDataOrColumnsChange:0}],pageSize:[{onPageSizeChange:0}],groupBy:[{onGroupByChange:0}],theme:[{onThemeChange:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host([color=primary]),.table-color-primary{--table-primary:var(--color-primary-hover, #2563eb);--table-primary-rgb:var(--color-primary-rgb)}:host([color=secondary]),.table-color-secondary{--table-primary:var(--color-primary, #64748b);--table-primary-rgb:var(--color-primary-rgb)}:host([color=success]),.table-color-success{--table-primary:var(--color-success, #10b981);--table-primary-rgb:var(--color-primary-rgb)}:host([color=danger]),.table-color-danger{--table-primary:var(--color-danger, #ef4444);--table-primary-rgb:var(--color-primary-rgb)}:host([color=warning]),.table-color-warning{--table-primary:var(--color-warning, #f59e0b);--table-primary-rgb:var(--color-primary-rgb)}:host([color=info]),.table-color-info{--table-primary:var(--color-primary, #0ea5e9);--table-primary-rgb:var(--color-primary-rgb)}:host{display:block;font-family:"Inter", -apple-system, sans-serif;--table-bg:var(--bg-primary, #ffffff);--table-header-bg:var(--bg-primary, #f8fafc);--table-border:var(--border-subtle, #f1f5f9);--table-text:var(--text-primary, #1e293b);--table-text-secondary:var(--text-secondary, #64748b);--table-text-secondary-rgb:100, 116, 139;--table-hover:var(--bg-primary, #f1f5f9);--table-primary:var(--color-primary-hover, #2563eb);--table-primary-rgb:37, 99, 235;--table-selected:rgba(var(--table-primary-rgb), 0.1);--table-shadow:rgba(0, 0, 0, 0.05);--table-striped-bg:rgba(0, 0, 0, 0.02);--table-striped-bg-dark:rgba(255, 255, 255, 0.02)}.data-table-container{background:var(--table-bg);border-radius:8px;box-shadow:0 1px 3px var(--table-shadow);overflow:hidden}.data-table-container.dark-mode,:host-context(.theme-dark) .data-table-container,:host-context(.dark) .data-table-container{--table-bg:var(--bg-secondary, #0f172a);--table-header-bg:var(--bg-primary, #1e293b);--table-border:rgba(255, 255, 255, 0.05);--table-text:var(--text-primary, #f8fafc);--table-text-secondary:var(--text-secondary, #94a3b8);--table-hover:rgba(255, 255, 255, 0.03);--table-selected:rgba(var(--table-primary-rgb), 0.1);--table-shadow:rgba(0, 0, 0, 0.4)}:host-context(.theme-light) .data-table-container,:host-context(.light) .data-table-container{--table-bg:var(--bg-primary, #ffffff);--table-header-bg:var(--bg-primary, #f8fafc);--table-border:var(--border-subtle, #f1f5f9);--table-text:var(--text-primary, #1e293b);--table-text-secondary:var(--text-secondary, #64748b);--table-hover:var(--bg-primary, #f1f5f9);--table-selected:rgba(var(--table-primary-rgb), 0.1);--table-shadow:rgba(0, 0, 0, 0.05)}.advanced-table-glass{background:transparent !important;box-shadow:none !important}.advanced-table-glass .table-toolbar{background:rgba(255, 255, 255, 0.03);backdrop-filter:blur(12px) saturate(160%);border-color:rgba(255, 255, 255, 0.08)}.advanced-table-glass .data-table thead{background:rgba(255, 255, 255, 0.05);backdrop-filter:blur(8px)}.advanced-table-glass .data-table tbody tr{background:transparent}.advanced-table-glass .data-table tbody tr:hover{background:rgba(255, 255, 255, 0.04)}.advanced-table-glass.dark-mode .table-toolbar{background:rgba(0, 0, 0, 0.2)}.advanced-table-glass.dark-mode .data-table thead{background:rgba(0, 0, 0, 0.3)}.advanced-table-raised{box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);border:1px solid rgba(0, 0, 0, 0.05)}.advanced-table-raised .data-table thead{background:linear-gradient(to bottom, var(--bg-primary, #f8fafc), var(--bg-secondary, #f1f5f9))}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--table-header-bg);border-bottom:1px solid var(--table-border);gap:16px;flex-wrap:wrap;transition:all cubic-bezier(0.4, 0, 0.2, 1)}.toolbar-left,.toolbar-right{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-box{position:relative;min-width:250px}.search-box input{width:100%;padding:8px 36px 8px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);transition:all 0.2s}.search-box input:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.search-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:0.5}.toolbar-btn{padding:8px 16px;background:var(--table-bg);color:var(--table-text);border:1px solid var(--table-border);border-radius:6px;font-size:14px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:6px}.toolbar-btn:hover{background:var(--table-hover);border-color:var(--table-primary)}.toolbar-btn:active{transform:scale(0.98)}.table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh;position:relative}.table-wrapper::-webkit-scrollbar{width:8px;height:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--table-header-bg)}.table-wrapper::-webkit-scrollbar-thumb{background:var(--table-border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--table-text-secondary)}.data-table{width:100%;border-collapse:collapse;color:var(--table-text);font-size:13.5px;letter-spacing:-0.01em}.data-table.bordered{border:1px solid var(--table-border);border-radius:8px}.data-table thead{background:var(--table-header-bg);position:relative;z-index:10}.data-table.sticky-header thead{position:sticky;top:0;z-index:20}.data-table th{padding:14px 20px;text-align:left;font-weight:600;white-space:nowrap;background:var(--table-header-bg);color:var(--table-text-secondary);border-bottom:2px solid var(--table-border);user-select:none;text-transform:uppercase;font-size:11px;letter-spacing:0.05em;transition:background cubic-bezier(0.4, 0, 0.2, 1), color cubic-bezier(0.4, 0, 0.2, 1)}.data-table th.sticky-column{position:sticky;left:0;z-index:30;box-shadow:2px 0 4px var(--table-shadow)}.data-table th.sortable{cursor:pointer;transition:background 0.2s}.data-table th.sortable:hover{background:var(--table-hover)}.column-header-content{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}.drag-handle{cursor:grab;padding:0 4px;margin-right:4px;color:var(--table-text-secondary);font-size:14px;line-height:1;opacity:0.6;transition:all 0.2s;user-select:none;letter-spacing:-2px}.drag-handle:hover{opacity:1;color:var(--table-primary)}.drag-handle:active{cursor:grabbing}.column-label{flex:1;cursor:pointer;user-select:none}.data-table th.sortable .column-label:hover{color:var(--table-primary)}.column-header-content span:first-child{flex:1}.sort-icon{font-size:12px;opacity:0.5;transition:opacity 0.2s}.data-table th.sorted .sort-icon{opacity:1;color:var(--table-primary)}.column-filter{margin-top:8px}.column-filter input{width:100%;padding:4px 8px;border:1px solid var(--table-border);border-radius:4px;font-size:12px;background:var(--table-bg);color:var(--table-text)}.column-filter input:focus{outline:none;border-color:var(--table-primary)}.column-group{border-bottom:1px solid var(--table-border);background:var(--table-header-bg);font-weight:700}.resize-handle{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;user-select:none;background:transparent;transition:background 0.2s;z-index:10}.resize-handle:hover{background:var(--table-primary)}.resize-handle::before{content:"";position:absolute;top:0;bottom:0;left:-2px;right:-2px;}.data-table th.resizing{user-select:none;cursor:col-resize}.data-table th.resizing .resize-handle{background:var(--table-primary)}.data-table tbody tr{transition:background cubic-bezier(0.4, 0, 0.2, 1);border-bottom:1px solid var(--table-border)}.data-table.hoverable tbody tr:hover{background:var(--table-hover);box-shadow:inset 4px 0 0 var(--table-primary)}.data-table.striped tbody tr:nth-child(even){background:var(--table-striped-bg)}.data-table-container.dark-mode .data-table.striped tbody tr:nth-child(even){background:var(--table-striped-bg-dark)}.data-table tbody tr.selected{background:var(--table-selected) !important}.data-table td{padding:14px 20px;color:var(--table-text);transition:color cubic-bezier(0.4, 0, 0.2, 1)}.data-table.compact td,.data-table.compact th{padding:6px 12px}.data-table.comfortable td,.data-table.comfortable th{padding:16px 20px}.data-table td.sticky-column{position:sticky;left:0;background:var(--table-bg);z-index:15;box-shadow:2px 0 4px var(--table-shadow)}.data-table tbody tr:hover td.sticky-column{background:var(--table-hover)}.data-table tbody tr.selected td.sticky-column{background:var(--table-selected)}.select-column{width:48px;text-align:center !important;padding:8px !important}.select-column input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--table-primary)}.actions-column{width:60px;text-align:center !important;padding:8px !important;position:relative}.row-actions-container{position:relative;display:inline-block}.row-actions-trigger{background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;color:var(--table-text-secondary);font-size:18px;line-height:1;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center}.row-actions-trigger:hover{background:var(--table-hover);color:var(--table-text)}.row-actions-trigger:active{background:var(--table-border)}.action-dots{font-weight:bold;letter-spacing:-2px}.row-actions-menu{position:absolute;top:100%;right:0;background:var(--table-bg);border:1px solid var(--table-border);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);min-width:140px;z-index:1000;margin-top:4px;overflow:hidden;animation:fadeInMenu 0.15s ease-out}@keyframes fadeInMenu{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.row-action-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:transparent;border:none;text-align:left;cursor:pointer;color:var(--table-text);font-size:14px;transition:background 0.15s ease;border-bottom:1px solid var(--table-border)}.row-action-item:last-child{border-bottom:none}.row-action-item:hover{background:var(--table-hover)}.row-action-item:active{background:var(--table-border)}.action-icon{font-size:16px;width:20px;display:flex;align-items:center;justify-content:center}.action-label{flex:1}.grouping-selector{display:flex;align-items:center;gap:8px;margin-left:16px}.grouping-selector label{font-size:14px;font-weight:500;color:var(--table-text);white-space:nowrap}.grouping-selector select{padding:8px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);cursor:pointer;min-width:150px;transition:all 0.2s}.grouping-selector select:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.grouping-selector select:hover{border-color:var(--table-primary)}.group-header-row{background:var(--table-header-bg);border-top:2px solid var(--table-border);border-bottom:2px solid var(--table-border);transition:background 0.2s}.group-header-row:hover{background:var(--table-hover)}.group-header-cell{cursor:pointer;user-select:none;font-weight:600;padding:12px 16px !important;outline:none}.group-header-cell:focus{outline:2px solid var(--table-primary);outline-offset:-2px}.group-header-content{display:flex;align-items:center;gap:10px}.group-expand-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:12px;color:var(--table-primary);transition:transform 0.2s ease}.group-header-row[aria-expanded=true] .group-expand-icon{transform:rotate(0deg)}.group-header-row[aria-expanded=false] .group-expand-icon{transform:rotate(-90deg)}.group-label{font-size:15px;color:var(--table-text);font-weight:600}.group-count{font-size:13px;color:var(--table-text-secondary);font-weight:normal;margin-left:4px}.group-data-row{animation:fadeIn 0.2s ease-in-out}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.group-data-row td{padding-left:48px !important;border-left:3px solid transparent;transition:all 0.2s}.group-data-row td:first-child{border-left:3px solid var(--table-border)}.group-data-row.selected{background:var(--table-selected)}.group-data-row.selected td:first-child{border-left-color:var(--table-primary)}.group-data-row:hover{background:var(--table-hover)}.group-data-row:hover td:first-child{border-left-color:var(--table-primary)}.editable-cell{cursor:pointer;padding:4px;border-radius:4px;transition:background 0.15s}.editable-cell:hover{background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.data-table td input,.data-table td select{width:100%;padding:6px 8px;border:2px solid var(--table-primary);border-radius:4px;font-size:14px;background:var(--table-bg);color:var(--table-text)}.data-table td input:focus,.data-table td select:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.loading-cell,.empty-cell{text-align:center !important;padding:48px 16px !important;color:var(--table-text-secondary)}.loading-cell{display:flex;flex-direction:column;align-items:center;gap:12px}.loading-spinner{width:48px;height:48px;border:3px solid rgba(var(--table-primary-rgb), 0.1);border-top-color:var(--table-primary);border-radius:50%;animation:spin 0.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;box-shadow:0 0 20px rgba(var(--table-primary-rgb), 0.15)}.skeleton-row td{padding:14px 20px}.skeleton-content,.skeleton-checkbox{height:16px;width:100%;background:linear-gradient(90deg, rgba(var(--table-text-secondary-rgb), 0.05) 25%, rgba(var(--table-text-secondary-rgb), 0.15) 37%, rgba(var(--table-text-secondary-rgb), 0.05) 63%);background-size:400% 100%;animation:skeleton-shimmer 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;border-radius:4px}.skeleton-checkbox{width:18px;height:18px;margin:0 auto}@keyframes skeleton-shimmer{0%{background-position:100% 50%}100%{background-position:0% 50%}}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--table-header-bg);border-top:1px solid var(--table-border);gap:16px;flex-wrap:wrap}.pagination-info{color:var(--table-text-secondary);font-size:14px}.pagination-controls{display:flex;gap:4px;align-items:center}.page-btn{min-width:36px;height:36px;padding:8px 12px;background:var(--table-bg);color:var(--table-text);border:1px solid var(--table-border);border-radius:6px;font-size:14px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center}.page-btn:hover:not(:disabled){background:var(--table-hover);border-color:var(--table-primary)}.page-btn:disabled{opacity:0.4;cursor:not-allowed}.page-btn.active{background:var(--table-primary);color:var(--text-standard, #ffffff);border-color:var(--table-primary)}.page-size-selector{display:flex;align-items:center;gap:8px}.page-size-selector label{display:flex;align-items:center;gap:8px;color:var(--table-text-secondary);font-size:14px}.page-size-selector select{padding:6px 32px 6px 12px;border:1px solid var(--table-border);border-radius:6px;background:var(--table-bg);color:var(--table-text);font-size:14px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'0 0 12 12\'%3E%3Cpath fill=\'%236b7280\' d=\'M6 9L1 4h10z\'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.page-size-selector select:focus{outline:none;border-color:var(--table-primary)}.column-settings-dialog,.export-dialog{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center}.dialog-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);backdrop-filter:blur(4px)}.dialog-content{position:relative;background:var(--table-bg);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column;animation:dialogSlideIn 0.2s ease-out}@keyframes dialogSlideIn{from{opacity:0;transform:scale(0.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--table-border)}.dialog-header h3{margin:0;font-size:18px;font-weight:600;color:var(--table-text)}.close-btn{width:32px;height:32px;padding:0;background:transparent;border:none;color:var(--table-text-secondary);font-size:24px;cursor:pointer;border-radius:6px;transition:all 0.2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--table-hover);color:var(--table-text)}.dialog-body{padding:20px;overflow-y:auto;flex:1}.dialog-footer{padding:16px 20px;border-top:1px solid var(--table-border);display:flex;justify-content:flex-end;gap:12px}.dialog-footer button{padding:10px 20px;background:var(--table-primary);color:var(--text-standard, #ffffff);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all 0.2s}.dialog-footer button:hover{background:var(--table-primary-hover)}.column-list{display:flex;flex-direction:column;gap:8px}.column-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--table-header-bg);border-radius:6px;cursor:pointer;transition:background 0.2s}.column-item:hover{background:var(--table-hover)}.column-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--table-primary)}.column-item span{flex:1;color:var(--table-text);font-size:14px}.export-options{display:flex;flex-direction:column;gap:12px}.export-btn{padding:16px;background:var(--table-bg);color:var(--table-text);border:2px solid var(--table-border);border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:12px}.export-btn:hover{background:var(--table-hover);border-color:var(--table-primary);transform:translateX(4px)}@media (max-width: 768px){.table-toolbar{flex-direction:column;align-items:stretch}.toolbar-left,.toolbar-right{width:100%;justify-content:space-between}.search-box{min-width:100%}.pagination-container{flex-direction:column;align-items:stretch;gap:12px}.pagination-info,.pagination-controls,.page-size-selector{justify-content:center}.table-wrapper{max-height:60vh}.data-table{font-size:13px}.data-table th,.data-table td{padding:8px 12px}}@media (max-width: 480px){.data-table{font-size:12px}.data-table th,.data-table td{padding:6px 8px}.toolbar-btn{font-size:13px;padding:6px 12px}.pagination-controls .page-btn{min-width:32px;height:32px;padding:4px 8px;font-size:13px}}.data-table:focus-within{outline:2px solid var(--table-primary);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--table-primary);outline-offset:2px}.data-table-container *{box-sizing:border-box}.data-table tbody tr{contain:layout style}.data-table th[draggable=true]{cursor:move}.data-table th[draggable=true]:active{opacity:0.5}.skeleton-row{animation:pulse 1.5s ease-in-out infinite}.skeleton-cell{padding:12px 16px}.skeleton-content{height:16px;background:linear-gradient(90deg, var(--table-border) 25%, var(--table-hover) 50%, var(--table-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-checkbox{width:16px;height:16px;background:linear-gradient(90deg, var(--table-border) 25%, var(--table-hover) 50%, var(--table-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:3px;margin:0 auto}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.7}}.cell-input{width:100%;padding:6px 8px;border:1px solid var(--table-border);border-radius:4px;background:var(--table-bg);color:var(--table-text);font-size:14px}.cell-input:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.cell-select{width:100%;padding:6px 8px;border:1px solid var(--table-border);border-radius:4px;background:var(--table-bg);color:var(--table-text);font-size:14px;cursor:pointer}.cell-radio-group{display:flex;flex-direction:column;gap:6px}.radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.radio-label input[type=radio]{cursor:pointer}.cell-checkbox{width:18px;height:18px;cursor:pointer}.cell-switch{position:relative;display:inline-block;width:44px;height:24px}.cell-switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-secondary, #ccc);transition:0.3s;border-radius:24px}.switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--bg-primary, #ffffff);transition:0.3s;border-radius:50%}.cell-switch input:checked+.switch-slider{background-color:var(--table-primary)}.cell-switch input:checked+.switch-slider:before{transform:translateX(20px)}.cell-rating{display:flex;gap:4px;font-size:18px}.cell-rating .star{cursor:pointer;color:var(--bg-secondary, #d1d5db);transition:color 0.2s}.cell-rating .star.filled{color:var(--color-danger, #fbbf24)}.cell-rating .star:hover{color:var(--color-danger, #fcd34d)}.cell-rating-display{display:flex;gap:2px;font-size:16px}.cell-rating-display .star{color:var(--bg-secondary, #d1d5db)}.cell-rating-display .star.filled{color:var(--color-danger, #fbbf24)}.cell-boolean{font-size:18px;font-weight:bold}.cell-switch-display{display:inline-block}.switch-indicator{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--bg-primary, #e5e7eb);color:var(--text-muted, #6b7280);text-transform:uppercase}.switch-indicator.active{background:var(--table-primary);color:var(--text-standard, #ffffff)}.cell-image{display:block;object-fit:cover}.cell-password{letter-spacing:2px;font-family:monospace}.cell-link{color:var(--table-primary);text-decoration:none;transition:color 0.2s}.cell-link:hover{color:var(--table-primary-hover);text-decoration:underline}.column-group{background:var(--table-header-bg);font-weight:600;border-bottom:2px solid var(--table-border)}.data-table thead tr:has(.column-group)+tr th{border-top:1px solid var(--table-border)}.filter-panel{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);background:var(--table-bg);border:1px solid var(--table-border);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.1);min-width:600px;max-width:90vw;max-height:80vh;z-index:1000;display:flex;flex-direction:column;animation:slideIn 0.2s ease-out}@keyframes slideIn{from{opacity:0;transform:translate(-50%, -45%)}to{opacity:1;transform:translate(-50%, -50%)}}.filter-panel::before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);backdrop-filter:blur(4px);z-index:-1}.filter-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--table-border)}.filter-panel-header h4{margin:0;font-size:18px;font-weight:600;color:var(--table-text);display:flex;align-items:center;gap:8px}.filter-panel-header .close-btn{background:transparent;border:none;font-size:28px;line-height:1;cursor:pointer;color:var(--table-text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all 0.2s}.filter-panel-header .close-btn:hover{background:var(--table-hover);color:var(--table-text)}.filter-panel-body{padding:24px;overflow-y:auto;flex:1}.filter-builder{margin-bottom:24px}.filter-row{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;gap:12px;align-items:center}.filter-field-select,.filter-operator-select{padding:10px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);cursor:pointer;transition:all 0.2s}.filter-field-select:focus,.filter-operator-select:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.filter-field-select:hover,.filter-operator-select:hover{border-color:var(--table-primary)}.filter-field-select:disabled,.filter-operator-select:disabled{opacity:0.5;cursor:not-allowed}.filter-value-input{padding:10px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);transition:all 0.2s}.filter-value-input:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.filter-value-input:disabled{opacity:0.5;cursor:not-allowed;background:var(--table-header-bg)}.add-filter-btn{padding:10px 20px;background:var(--table-primary);color:var(--text-standard, #ffffff);border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.2s;white-space:nowrap}.add-filter-btn:hover:not(:disabled){background:var(--table-primary-hover);transform:translateY(-1px);box-shadow:0 4px 6px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2)}.add-filter-btn:active:not(:disabled){transform:translateY(0)}.add-filter-btn:disabled{opacity:0.5;cursor:not-allowed}.active-filters{border-top:1px solid var(--table-border);padding-top:20px}.active-filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.active-filters-header span{font-size:14px;font-weight:600;color:var(--table-text)}.clear-all-btn{padding:6px 12px;background:transparent;color:var(--color-danger, #ef4444);border:1px solid var(--color-danger, #ef4444);border-radius:6px;font-size:13px;cursor:pointer;transition:all 0.2s}.clear-all-btn:hover{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff)}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--table-selected);border:1px solid var(--table-primary);border-radius:20px;font-size:13px;color:var(--table-text);animation:chipSlideIn 0.2s ease-out}@keyframes chipSlideIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.filter-chip-label{display:flex;align-items:center;gap:4px}.filter-chip-label strong{color:var(--table-primary)}.filter-chip-remove{background:transparent;border:none;color:var(--table-text-secondary);font-size:20px;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s}.filter-chip-remove:hover{background:rgba(var(--color-danger-rgb, 239, 68, 68), 0.1);color:var(--color-danger, #ef4444)}.no-filters{text-align:center;padding:32px;color:var(--table-text-secondary);font-size:14px}.pinned-row-top{position:sticky !important;top:0;z-index:25;background:var(--table-bg);box-shadow:0 2px 4px rgba(0, 0, 0, 0.1)}.pinned-row-bottom{position:sticky !important;bottom:0;z-index:25;background:var(--table-bg);box-shadow:0 -2px 4px rgba(0, 0, 0, 0.1)}.pinned-row-top::before,.pinned-row-bottom::before{content:"";position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--color-primary, #10b981), var(--color-primary, #8b5cf6));opacity:0.6}.pinned-row-top::before{top:0}.pinned-row-bottom::before{bottom:0}.pinned-row-top:hover,.pinned-row-bottom:hover{background:var(--table-hover)}.sort-icon.multi-sort{position:relative;display:inline-flex;align-items:center;gap:4px}.sort-order-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-radius:50%;font-size:11px;font-weight:600;line-height:1}.aggregation-footer{background:var(--bg-primary, #f9fafb);border-top:2px solid var(--border-default, #e5e7eb);font-weight:600}.aggregation-cell{padding:12px}.aggregation-values{display:flex;gap:16px;flex-wrap:wrap}.agg-item{display:flex;gap:6px;align-items:center}.agg-label{color:var(--text-muted, #6b7280);font-size:12px;text-transform:uppercase}.agg-value{color:var(--text-primary, #111827);font-size:14px;font-weight:700}.row-details-row{background:var(--bg-primary, #f9fafb)}.row-details-panel{padding:20px;border:1px solid var(--border-default, #e5e7eb);border-radius:8px;margin:8px}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--border-default, #e5e7eb)}.details-header h4{margin:0;color:var(--text-primary, #111827);font-size:16px}.close-details-btn{background:none;border:none;font-size:24px;color:var(--text-muted, #6b7280);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px}.close-details-btn:hover{background:var(--bg-primary, #e5e7eb);color:var(--text-primary, #111827)}.details-content{display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:12px}.detail-item{display:flex;gap:8px;padding:8px;background:var(--bg-primary, #ffffff);border-radius:4px;border:1px solid var(--border-default, #e5e7eb)}.detail-label{color:var(--text-muted, #6b7280);font-size:13px;min-width:100px}.detail-value{color:var(--text-primary, #111827);font-size:13px;word-break:break-word}.keyboard-shortcuts-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:10000}.keyboard-shortcuts-modal .modal-content{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1);max-width:500px;width:90%;max-height:80vh;overflow:auto}.keyboard-shortcuts-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border-default, #e5e7eb)}.keyboard-shortcuts-modal .modal-header h3{margin:0;font-size:18px;color:var(--text-primary, #111827)}.keyboard-shortcuts-modal .modal-header button{background:none;border:none;font-size:24px;color:var(--text-muted, #6b7280);cursor:pointer;padding:0;width:30px;height:30px}.keyboard-shortcuts-modal .modal-body{padding:20px}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table tr{border-bottom:1px solid var(--border-default, #e5e7eb)}.shortcuts-table tr:last-child{border-bottom:none}.shortcuts-table td{padding:12px 8px}.shortcut-key{font-family:"Courier New", monospace;background:var(--bg-secondary, #f3f4f6);padding:4px 8px;border-radius:4px;font-size:13px;font-weight:600;color:var(--text-secondary, #374151);white-space:nowrap}.shortcut-desc{color:var(--text-muted, #6b7280);font-size:14px}.validation-error-tooltip{position:absolute;bottom:100%;left:0;background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff);padding:6px 10px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:100;margin-bottom:4px;display:flex;align-items:center;gap:6px;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1)}.validation-error-tooltip::after{content:"";position:absolute;top:100%;left:10px;border:5px solid transparent;border-top-color:var(--color-danger, #ef4444)}.error-icon{font-size:14px}.error-message{font-weight:500}td.has-validation-error{position:relative;border:2px solid var(--color-danger, #ef4444) !important;background:var(--bg-primary, #fef2f2)}.virtual-scroll-container{overflow-y:auto;position:relative;will-change:transform}.virtual-scroll-content{position:relative}.auto-size-btn{padding:4px 8px;font-size:12px;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-strong, #d1d5db);border-radius:4px;cursor:pointer;color:var(--text-secondary, #374151)}.auto-size-btn:hover{background:var(--bg-primary, #e5e7eb)}.premium-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:linear-gradient(135deg, var(--color-primary, #667eea) 0%, var(--color-primary, #764ba2) 100%);color:var(--text-standard, #ffffff);border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}@media (prefers-color-scheme: dark){.aggregation-footer{background:var(--bg-primary, #1f2937);border-top-color:var(--border-default, #374151)}.row-details-panel{background:var(--bg-primary, #1f2937);border-color:var(--border-default, #374151)}.keyboard-shortcuts-modal .modal-content{background:var(--bg-primary, #1f2937);color:var(--text-standard, #f3f4f6)}.detail-item{background:var(--bg-secondary, #111827);border-color:var(--border-default, #374151)}}.cell-editor{width:100%;padding:6px 8px;border:2px solid var(--color-primary, #10b981);border-radius:4px;font-size:14px;outline:none}.date-editor,.datetime-editor{cursor:pointer}.number-editor{text-align:right}.select-editor{cursor:pointer;background:var(--bg-primary, #ffffff)}.checkbox-editor{width:20px;height:20px;cursor:pointer}.formatted-currency{color:var(--color-success-hover, #059669);font-weight:600}.formatted-percentage{color:var(--color-primary, #7c3aed);font-weight:600}.formatted-date{color:var(--color-primary, #0284c7)}.cell-range-selected{background:var(--bg-primary, #dbeafe) !important;border:2px solid var(--color-primary, #10b981) !important}.range-selection-anchor{background:var(--color-primary, #bfdbfe) !important;border:2px dashed var(--color-primary, #10b981) !important}.copy-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:var(--color-success, #10b981);color:var(--text-standard, #ffffff);padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;z-index:1000;animation:fadeInOut 1s ease-in-out}@keyframes fadeInOut{0%,100%{opacity:0}50%{opacity:1}}.color-scale-cell{position:relative;color:var(--text-primary, #111827);font-weight:600}.data-bar-cell{position:relative;padding:8px}.data-bar-value{position:relative;z-index:1;font-weight:600}.icon-set{display:inline-flex;align-items:center;gap:6px}.icon-set-icon{font-size:16px}.icon-positive{color:var(--color-success, #10b981)}.icon-neutral{color:var(--color-warning, #f59e0b)}.icon-negative{color:var(--color-danger, #ef4444)}.cell-with-formatting{transition:all 0.2s ease}.cell-with-formatting:hover{transform:scale(1.02);box-shadow:0 2px 8px rgba(0, 0, 0, 0.1)}.cell-progress-bar{width:100%;height:24px;background:var(--bg-primary, #e5e7eb);border-radius:12px;overflow:hidden;position:relative}.cell-progress-fill{height:100%;background:linear-gradient(90deg, var(--color-primary, #10b981) 0%, var(--color-primary, #1d4ed8) 100%);transition:width 0.3s ease;display:flex;align-items:center;justify-content:center;color:var(--text-standard, #ffffff);font-size:12px;font-weight:600}.cell-editor:focus{border-color:var(--color-primary-hover, #2563eb);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.cell-editor-error{border-color:var(--color-danger, #ef4444)}.cell-editor-error:focus{box-shadow:0 0 0 3px rgba(var(--color-danger-rgb, 239, 68, 68), 0.1)}.bulk-actions-toolbar{position:sticky;top:0;z-index:100;background:var(--bg-secondary, #f3f4f6);border-bottom:2px solid var(--border-default, #e5e7eb);padding:12px 16px;display:flex;align-items:center;gap:12px;animation:slideDown 0.3s ease}@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.bulk-actions-count{font-weight:600;color:var(--text-secondary, #374151)}.bulk-action-btn{padding:6px 12px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-strong, #d1d5db);border-radius:6px;font-size:14px;cursor:pointer;transition:all 0.2s}.bulk-action-btn:hover{background:var(--bg-primary, #f9fafb);border-color:var(--color-primary, #9ca3af)}.bulk-action-btn.primary{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-color:var(--color-primary, #10b981)}.bulk-action-btn.primary:hover{background:var(--color-primary-hover, #2563eb)}.bulk-action-btn.danger{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff);border-color:var(--color-danger, #ef4444)}.bulk-action-btn.danger:hover{background:var(--color-danger-hover, #dc2626)}@media print{.data-table-container{box-shadow:none !important;border:none !important;overflow:visible !important;max-height:none !important}.table-wrapper{max-height:none !important;overflow:visible !important}.table-toolbar,.pagination-container,.filter-panel,.column-settings-dialog,.export-dialog,.keyboard-shortcuts-modal,.actions-column,.select-column,.row-details-toggle-cell,.bulk-actions-bar{display:none !important}.data-table{width:100% !important;border-collapse:collapse !important}.data-table th,.data-table td{color:var(--text-primary, #000) !important;border:1px solid var(--border-default, #ccc) !important;padding:8px !important}tr{break-inside:avoid;page-break-inside:avoid}}.context-menu{position:fixed;background:var(--table-bg);border:1px solid var(--table-border);box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1);border-radius:6px;padding:4px;min-width:160px;z-index:9999}.context-menu-item{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--table-text);font-size:14px;border-radius:4px}.context-menu-item:hover{background:var(--table-hover)}.mobile-cards-view{display:flex;flex-direction:column;gap:12px;padding:12px}.mobile-card{background:var(--table-bg);border:1px solid var(--table-border);border-radius:8px;padding:12px}.mobile-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--table-border);font-weight:600}.mobile-card .card-field{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px}.mobile-card .card-field label{color:var(--table-text-secondary);font-weight:500}.data-table td.focused-cell{box-shadow:inset 0 0 0 2px var(--table-primary) !important;background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.05);z-index:10}.data-table td:focus{outline:none}.data-table th.pinned-left,.data-table td.pinned-left{position:sticky;left:0;z-index:25;box-shadow:2px 0 4px var(--table-shadow)}.data-table th.pinned-right,.data-table td.pinned-right{position:sticky;right:0;z-index:25;box-shadow:-2px 0 4px var(--table-shadow)}.header-menu-trigger{background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--table-text-secondary);opacity:0;transition:all 0.2s;font-size:16px;line-height:1}.data-table th:hover .header-menu-trigger{opacity:1}.header-menu-trigger:hover{background:var(--table-hover);color:var(--table-text)}.context-menu.header-context-menu{min-width:200px}.context-menu-header{padding:8px 12px;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--table-text-secondary);border-bottom:1px solid var(--table-border);margin-bottom:4px}.context-menu ul{list-style:none;padding:0;margin:0}.context-menu li{padding:8px 12px;cursor:pointer;font-size:14px;transition:background 0.2s;position:relative}.context-menu li:hover{background:var(--table-hover)}.context-menu li.divider{height:1px;background:var(--table-border);padding:0;margin:4px 0;cursor:default}.context-menu li.has-submenu::after{content:"";font-size:10px;position:absolute;right:12px;opacity:0.5}.context-menu .submenu{position:absolute;left:100%;top:0;display:none;background:var(--table-bg);border:1px solid var(--table-border);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);min-width:140px;padding:4px}.context-menu li.has-submenu:hover>.submenu{display:block}.sr-announcer{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.data-table th.pinned-left,.data-table td.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent);border-right:2px solid rgba(var(--color-primary-rgb, 59, 130, 246), 0.3)}.data-table th.pinned-right,.data-table td.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent);border-left:2px solid rgba(var(--color-primary-rgb, 59, 130, 246), 0.3)}.data-table th.pinned-left::before,.data-table th.pinned-right::before{content:"";font-size:10px;opacity:0.6;margin-right:4px}.data-table th.pinned-left:hover,.data-table th.pinned-right:hover{background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.pin-indicator{font-size:12px;margin-right:4px;opacity:0.8;display:inline-block;animation:pinPulse 2s ease-in-out infinite}@keyframes pinPulse{0%,100%{opacity:0.8}50%{opacity:1}}.data-table th.pinned-left,.data-table td.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important;background-blend-mode:normal}.data-table th.pinned-right,.data-table td.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important;background-blend-mode:normal}.data-table th.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-header-bg) !important}.data-table td.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important}.data-table th.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-header-bg) !important}.data-table td.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important}.data-table-footer{background-color:var(--table-header-bg, #f8fafc);border-top:2px solid var(--border-subtle, #e2e8f0);font-weight:600;z-index:2}.data-table-container tfoot tr{position:sticky;bottom:0;background-color:var(--table-header-bg, #f8fafc);z-index:3;box-shadow:0 -1px 2px rgba(0, 0, 0, 0.05)}.data-table-footer td{padding:12px 16px;border-bottom:1px solid var(--border-subtle, #e2e8f0);background-color:inherit;vertical-align:top}.agg-item{display:flex;flex-direction:column;font-size:0.75rem;margin-bottom:4px}.agg-label{color:var(--text-muted, #64748b);text-transform:uppercase;font-size:0.65rem;margin-bottom:1px}.agg-value{color:var(--text-primary, #0f172a);font-weight:700;font-size:0.85rem}'}},[513,"ui-advanced-data-table",{config:[1],columns:[1],data:[1],selectable:[4],multiSelect:[4,"multi-select"],editable:[4],stickyHeader:[4,"sticky-header"],pagination:[4],pageSize:[2,"page-size"],pageSizeOptions:[1,"page-size-options"],paginationTheme:[1,"pagination-theme"],paginationShape:[1,"pagination-shape"],paginationKeyboardNav:[4,"pagination-keyboard-nav"],paginationQuickJump:[4,"pagination-quick-jump"],paginationQuickJumpStep:[2,"pagination-quick-jump-step"],paginationShowProgress:[4,"pagination-show-progress"],paginationSticky:[4,"pagination-sticky"],paginationStickyPosition:[1,"pagination-sticky-position"],paginationTransitions:[4,"pagination-transitions"],paginationUrlSync:[4,"pagination-url-sync"],paginationUrlParam:[1,"pagination-url-param"],paginationPersistPage:[4,"pagination-persist-page"],paginationStorageKey:[1,"pagination-storage-key"],paginationSwipeGestures:[4,"pagination-swipe-gestures"],paginationSmartCompact:[4,"pagination-smart-compact"],paginationSmartCompactThreshold:[2,"pagination-smart-compact-threshold"],paginationAutoHide:[4,"pagination-auto-hide"],paginationResponsive:[4,"pagination-responsive"],paginationMobileBreakpoint:[2,"pagination-mobile-breakpoint"],virtualScroll:[4,"virtual-scroll"],virtualRowHeight:[2,"virtual-row-height"],advancedFilters:[4,"advanced-filters"],columnAggregation:[4,"column-aggregation"],aggregationFunctions:[1,"aggregation-functions"],persistState:[4,"persist-state"],stateStorageKey:[1,"state-storage-key"],multiSort:[4,"multi-sort"],maxSortColumns:[2,"max-sort-columns"],autoSizeColumns:[4,"auto-size-columns"],rowDetails:[4,"row-details"],keyboardShortcuts:[4,"keyboard-shortcuts"],excelExport:[4,"excel-export"],inlineValidation:[4,"inline-validation"],validationRules:[8,"validation-rules"],advancedCellEditors:[4,"advanced-cell-editors"],columnFormatting:[4,"column-formatting"],rangeSelection:[4,"range-selection"],copyPaste:[4,"copy-paste"],conditionalFormatting:[4,"conditional-formatting"],formattingRules:[8,"formatting-rules"],contextMenu:[4,"context-menu"],mobileCardView:[4,"mobile-card-view"],lazyLoad:[4,"lazy-load"],pdfExport:[4,"pdf-export"],enableSparklines:[4,"enable-sparklines"],undoRedo:[4,"undo-redo"],printOptimized:[4,"print-optimized"],enhancedAccessibility:[4,"enhanced-accessibility"],advancedValidation:[4,"advanced-validation"],searchable:[4],sortable:[4],filterable:[4],columnReorder:[4,"column-reorder"],columnVisibility:[4,"column-visibility"],rowHeight:[1,"row-height"],striped:[4],stripedColor:[1,"striped-color"],stripedColorDark:[1,"striped-color-dark"],hoverable:[4],bordered:[4],loading:[4],showSkeleton:[4,"show-skeleton"],skeletonRows:[2,"skeleton-rows"],emptyMessage:[1,"empty-message"],serverSide:[4,"server-side"],totalRows:[2,"total-rows"],exportable:[4],theme:[1],variant:[1],color:[1],grouping:[4],groupBy:[1,"group-by"],expandGroupsByDefault:[4,"expand-groups-by-default"],showGroupCount:[4,"show-group-count"],columnGrouping:[4,"column-grouping"],showGroupingControls:[4,"show-grouping-controls"],treeData:[4,"tree-data"],showActions:[4,"show-actions"],customActions:[16],iconLibrary:[1,"icon-library"],columnPinning:[4,"column-pinning"],rowPinning:[4,"row-pinning"],rowSpanning:[4,"row-spanning"],rowReorder:[4,"row-reorder"],multiFilter:[4,"multi-filter"],showFilterPanel:[1028,"show-filter-panel"],showColumnPanel:[1028,"show-column-panel"],headerBackground:[1,"header-background"],state:[32],draggedColumn:[32],draggedRow:[32],showColumnSettings:[32],showExportDialog:[32],resizingColumn:[32],activeActionMenu:[32],pinnedColumns:[32],pinnedRows:[32],editingRow:[32],activeFilters:[32],filterPanelField:[32],filterPanelOperator:[32],filterPanelValue:[32],draggedColumnInPanel:[32],columnSearchQuery:[32],virtualScrollOffset:[32],virtualVisibleRange:[32],multiSortConfig:[32],columnAggregations:[32],expandedRowDetails:[32],validationErrors:[32],showKeyboardShortcutsHelp:[32],advancedFilterConfig:[32],rangeSelectionAnchor:[32],clipboardData:[32],formattingCache:[32],contextMenuState:[32],undoStack:[32],redoStack:[32],lazyLoadedRows:[32],isMobileView:[32],selectRow:[64],deselectRow:[64],selectAllRows:[64],deselectAllRows:[64],getSelectedRows:[64],exportData:[64],resetFilters:[64],resetSort:[64],goToPage:[64],refresh:[64],print:[64],handleColumnPin:[64],handleRowPin:[64]},void 0,{data:[{onDataOrColumnsChange:0}],columns:[{onDataOrColumnsChange:0}],pageSize:[{onPageSizeChange:0}],groupBy:[{onGroupByChange:0}],theme:[{onThemeChange:0}]}]),x=m,f=function(){"undefined"!=typeof customElements&&["ui-advanced-data-table","ui-badge","ui-button","ui-checkbox","ui-icon","ui-input","ui-loader","ui-pagination","ui-radio","ui-rating","ui-skeleton","ui-switch"].forEach((t=>{switch(t){case"ui-advanced-data-table":customElements.get(i(t))||customElements.define(i(t),m);break;case"ui-badge":customElements.get(i(t))||n();break;case"ui-button":customElements.get(i(t))||o();break;case"ui-checkbox":customElements.get(i(t))||s();break;case"ui-icon":customElements.get(i(t))||l();break;case"ui-input":customElements.get(i(t))||d();break;case"ui-loader":customElements.get(i(t))||c();break;case"ui-pagination":customElements.get(i(t))||p();break;case"ui-radio":customElements.get(i(t))||h();break;case"ui-rating":customElements.get(i(t))||b();break;case"ui-skeleton":customElements.get(i(t))||u();break;case"ui-switch":customElements.get(i(t))||g()}}))};export{x as UiAdvancedDataTable,f as defineCustomElement}
1
+ import{proxyCustomElement as t,HTMLElement as e,createEvent as a,h as r,transformTag as i}from"@stencil/core/internal/client";import{d as o}from"./badge.js";import{d as n}from"./button.js";import{d as s}from"./checkbox.js";import{d as l}from"./icon.js";import{d}from"./input.js";import{d as c}from"./loader.js";import{d as p}from"./pagination.js";import{d as h}from"./radio.js";import{d as b}from"./rating.js";import{d as u}from"./skeleton-loader.js";import{d as g}from"./switch.js";const m=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.rowSelect=a(this,"rowSelect",7),this.rowDeselect=a(this,"rowDeselect",7),this.cellEdit=a(this,"cellEdit",7),this.cellEditStart=a(this,"cellEditStart",7),this.cellEditStop=a(this,"cellEditStop",7),this.rowEditStart=a(this,"rowEditStart",7),this.rowEditStop=a(this,"rowEditStop",7),this.sortChange=a(this,"sortChange",7),this.filterChange=a(this,"filterChange",7),this.pageChange=a(this,"pageChange",7),this.searchChange=a(this,"searchChange",7),this.columnOrderChange=a(this,"columnOrderChange",7),this.columnVisibilityChange=a(this,"columnVisibilityChange",7),this.columnPin=a(this,"columnPin",7),this.rowPin=a(this,"rowPin",7),this.rowReorderEvent=a(this,"rowReorderEvent",7),this.dataExport=a(this,"dataExport",7),this.groupToggle=a(this,"groupToggle",7),this.groupByChange=a(this,"groupByChange",7),this.rowEdit=a(this,"rowEdit",7),this.rowDelete=a(this,"rowDelete",7),this.rowAction=a(this,"rowAction",7),this.lazyLoadMore=a(this,"lazyLoadMore",7)}get el(){return this}config={columns:[],data:[],selectable:!1,pagination:!0,pageSize:10};columns=[];data=[];selectable=!1;multiSelect=!0;editable=!1;stickyHeader=!0;pagination=!0;pageSize=10;pageSizeOptions=[5,10,25,50,100];paginationTheme="default";paginationShape="default";paginationKeyboardNav=!0;paginationQuickJump=!1;paginationQuickJumpStep=5;paginationShowProgress=!1;paginationSticky=!1;paginationStickyPosition="bottom";paginationTransitions=!0;paginationUrlSync=!1;paginationUrlParam="page";paginationPersistPage=!1;paginationStorageKey="table-page";paginationSwipeGestures=!0;paginationSmartCompact=!1;paginationSmartCompactThreshold=20;paginationAutoHide=!0;paginationResponsive=!0;paginationMobileBreakpoint=768;virtualScroll=!1;virtualRowHeight=48;advancedFilters=!1;columnAggregation=!1;aggregationFunctions=["sum","avg","min","max","count"];persistState=!1;stateStorageKey="table-state";multiSort=!1;maxSortColumns=3;autoSizeColumns=!1;rowDetails=!1;keyboardShortcuts=!0;excelExport=!1;inlineValidation=!1;validationRules={};advancedCellEditors=!0;columnFormatting=!0;rangeSelection=!1;copyPaste=!1;conditionalFormatting=!1;formattingRules={};contextMenu=!1;mobileCardView=!0;lazyLoad=!1;pdfExport=!1;enableSparklines=!1;undoRedo=!1;printOptimized=!1;enhancedAccessibility=!0;advancedValidation=!1;searchable=!0;sortable=!0;filterable=!0;columnReorder=!0;columnVisibility=!0;rowHeight="normal";striped=!0;stripedColor;stripedColorDark;hoverable=!0;bordered=!0;loading=!1;showSkeleton=!0;skeletonRows=5;emptyMessage="No data available";serverSide=!1;totalRows=0;exportable=!0;theme="auto";variant="default";color="primary";grouping=!1;groupBy="";expandGroupsByDefault=!0;showGroupCount=!0;columnGrouping=!1;showGroupingControls=!0;treeData=!1;showActions=!1;customActions;iconLibrary="default";columnPinning=!0;rowPinning=!0;rowSpanning=!1;rowReorder=!1;multiFilter=!0;showFilterPanel=!1;showColumnPanel=!1;headerBackground;state={selectedRows:new Set,virtualVisibleRange:{start:0,end:50},sortConfig:{field:"",direction:null},filterConfig:{},searchQuery:"",pagination:{currentPage:1,pageSize:10,totalPages:1,totalRows:0},editingCell:null,columnOrder:[],visibleColumns:new Set,columnWidths:new Map,expandedGroups:new Set,groupBy:null,expandedRows:new Set,focusedCell:null};draggedColumn=null;draggedRow=null;showColumnSettings=!1;showExportDialog=!1;resizingColumn=null;activeActionMenu=null;pinnedColumns={left:[],right:[]};pinnedRows={top:[],bottom:[]};editingRow=null;activeFilters=new Map;filterPanelField="";filterPanelOperator="contains";filterPanelValue="";draggedColumnInPanel=null;columnSearchQuery="";virtualScrollOffset=0;virtualVisibleRange={start:0,end:50};multiSortConfig=[];columnAggregations=new Map;expandedRowDetails=new Set;validationErrors=new Map;showKeyboardShortcutsHelp=!1;advancedFilterConfig=new Map;rangeSelectionAnchor=null;clipboardData=[];formattingCache=new Map;contextMenuState={visible:!1,x:0,y:0,type:"cell",target:null};undoStack=[];redoStack=[];lazyLoadedRows=new Set;isMobileView=!1;rowSelect;rowDeselect;cellEdit;cellEditStart;cellEditStop;rowEditStart;rowEditStop;sortChange;filterChange;pageChange;searchChange;columnOrderChange;columnVisibilityChange;columnPin;rowPin;rowReorderEvent;dataExport;groupToggle;groupByChange;rowEdit;rowDelete;rowAction;lazyLoadMore;resizeObserver;lazyLoadObserver;editInputRef;resizeStartX=0;resizeStartWidth=0;resizingColumnId="";componentWillLoad(){this.initializeState()}componentDidLoad(){this.loadTableState(),this.setupResizeObserver(),this.applyTheme(),this.setupClickOutsideListener(),this.setupGlobalKeyboardShortcuts(),this.copyPaste&&(document.addEventListener("copy",this.handleCopy),document.addEventListener("paste",this.handlePaste))}disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect(),this.lazyLoadObserver&&this.lazyLoadObserver.disconnect(),document.removeEventListener("mousemove",this.handleResizeMove),document.removeEventListener("mouseup",this.handleResizeEnd),this.copyPaste&&(document.removeEventListener("copy",this.handleCopy),document.removeEventListener("paste",this.handlePaste)),document.removeEventListener("click",this.handleClickOutside)}onDataOrColumnsChange(){this.initializeState()}onPageSizeChange(t){this.state={...this.state,pagination:{...this.state.pagination,pageSize:t,currentPage:1,totalPages:this.calculateTotalPages(t)}}}onGroupByChange(t){this.handleGroupByChange(t)}onThemeChange(){this.applyTheme()}async selectRow(t){const e=new Set(this.state.selectedRows);e.add(t),this.updateSelectedRows(e)}async deselectRow(t){const e=new Set(this.state.selectedRows);e.delete(t),this.updateSelectedRows(e)}async selectAllRows(){const t=this.getProcessedData().map((t=>t.id));this.updateSelectedRows(new Set(t))}async deselectAllRows(){this.updateSelectedRows(new Set)}async getSelectedRows(){return Array.from(this.state.selectedRows)}async exportData(t={format:"csv"}){const e=this.prepareExportData(t);this.performExport(e,t)}async resetFilters(){this.state={...this.state,filterConfig:{},searchQuery:"",pagination:{...this.state.pagination,currentPage:1}}}async resetSort(){this.state={...this.state,sortConfig:{field:"",direction:null}}}async goToPage(t){t>=1&&t<=this.state.pagination.totalPages&&(this.state={...this.state,pagination:{...this.state.pagination,currentPage:t}},this.pageChange.emit({page:t,pageSize:this.state.pagination.pageSize}))}async refresh(){this.initializeState()}async print(){if(this.printOptimized)window.print();else{const t=document.createElement("style");t.textContent="\n @media print {\n body * { visibility: hidden; }\n .data-table-container, .data-table-container * { visibility: visible; }\n .data-table-container { position: absolute; left: 0; top: 0; width: 100%; }\n .toolbar, .pagination-container, .column-settings-panel, .filter-panel { display: none !important; }\n .data-table { width: 100% !important; border-collapse: collapse !important; }\n .data-table td, .data-table th { border: 1px solid #ddd !important; padding: 8px !important; }\n }\n ",document.head.appendChild(t),window.print(),document.head.removeChild(t)}}initializeState(){const t=this.parseColumns(),e=this.flattenColumns(t),a=this.calculateInitialColumnWidths(e),r=this.groupBy||null,i=new Set;if(r&&this.expandGroupsByDefault){const t=this.parseData();this.groupData(t,r).forEach(((t,e)=>i.add(e)))}this.state={...this.state,columnOrder:e.map((t=>t.id)),visibleColumns:new Set(e.filter((t=>!1!==t.visible)).map((t=>t.id))),columnWidths:a,groupBy:r,expandedGroups:i,pagination:{currentPage:1,pageSize:this.pageSize,totalPages:this.calculateTotalPages(this.pageSize),totalRows:this.getTotalRows()},focusedCell:null}}parseColumns(){if("string"==typeof this.columns)try{return JSON.parse(this.columns)}catch{return[]}return this.columns||[]}parseData(){if("string"==typeof this.data)try{return JSON.parse(this.data)}catch{return[]}return this.data||[]}parsePageSizeOptions(){if("string"==typeof this.pageSizeOptions)try{return JSON.parse(this.pageSizeOptions)}catch{return[5,10,25,50,100]}return this.pageSizeOptions}flattenColumns(t){const e=[],a=t=>{t.forEach((t=>{t.children&&t.children.length>0?a(t.children):e.push(t)}))};return a(t),e}getVisibleColumns(){const t=this.parseColumns(),e=this.flattenColumns(t);return this.state.columnOrder.map((t=>e.find((e=>e.id===t)))).filter((t=>!!t&&this.state.visibleColumns.has(t.id)))}getTotalRows(){return this.serverSide?this.totalRows:this.parseData().length}calculateTotalPages(t){const e=this.getTotalRows();return Math.ceil(e/t)}getProcessedData(){let t=this.parseData();return this.treeData&&(t=this.flattenTreeData(t)),this.searchable&&this.state.searchQuery&&(t=this.applySearch(t,this.state.searchQuery)),this.filterable&&Object.keys(this.state.filterConfig).length>0&&(t=this.applyFilters(t,this.state.filterConfig)),this.advancedFilters&&(t=this.applyAdvancedFilters(t)),this.sortable&&(this.multiSort&&this.multiSortConfig.length>0?t=this.applyMultiSort(t):this.state.sortConfig.field&&this.state.sortConfig.direction&&(t=this.applySort(t,this.state.sortConfig))),this.serverSide||(this.state.pagination.totalRows=t.length,this.state.pagination.totalPages=this.calculateTotalPages(this.state.pagination.pageSize)),!this.pagination||this.serverSide||this.virtualScroll||(t=this.applyPagination(t)),this.persistState&&this.saveTableState(),t}applySearch(t,e){const a=e.toLowerCase(),r=this.getVisibleColumns();return t.filter((t=>r.some((e=>((e.field?t[e.field]:"")+"").toLowerCase().includes(a)))))}applyFilters(t,e){return t.filter((t=>Object.keys(e).every((a=>{const r=e[a];if(null===r||""===r)return!0;const i=t[a];return"string"==typeof r?(i+"").toLowerCase().includes(r.toLowerCase()):i===r}))))}applySort(t,e){return[...t].sort(((t,a)=>{const r=t[e.field],i=a[e.field];if(r===i)return 0;const o=r<i?-1:1;return"asc"===e.direction?o:-o}))}applyPagination(t){const{currentPage:e,pageSize:a}=this.state.pagination,r=(e-1)*a;return t.slice(r,r+a)}groupData(t,e){const a=new Map;return t.forEach((t=>{const r=null!=t[e]?t[e]+"":"(Empty)";a.has(r)||a.set(r,[]),a.get(r).push(t)})),a}handleGroupToggle(t){const e=new Set(this.state.expandedGroups);e.has(t)?e.delete(t):e.add(t),this.state={...this.state,expandedGroups:e},this.groupToggle.emit({groupKey:t,expanded:e.has(t)})}handleGroupByChange(t){const e=t===this.state.groupBy?null:t,a=new Set;if(e&&this.expandGroupsByDefault){const t=this.getProcessedData();this.groupData(t,e).forEach(((t,e)=>a.add(e)))}this.state={...this.state,groupBy:e,expandedGroups:a},e&&this.groupByChange.emit({field:e})}handleSort(t){if(!this.sortable)return;this.pushUndoState();const e=this.state.sortConfig;let a="asc";e.field===t&&("asc"===e.direction?a="desc":"desc"===e.direction&&(a=null));const r={field:a?t:"",direction:a};this.state={...this.state,sortConfig:r},this.sortChange.emit(r),this.enhancedAccessibility&&a&&this.announceToScreenReader(`Sorted by ${t} ${"asc"===a?"ascending":"descending"}`)}handleSearch(t){this.pushUndoState();const e=t.target;this.state={...this.state,searchQuery:e.value,pagination:{...this.state.pagination,currentPage:1}},this.searchChange.emit({query:e.value})}handleFilter(t,e){this.pushUndoState();const a={...this.state.filterConfig};if(""===e?delete a[t]:a[t]=e,this.state={...this.state,filterConfig:a,pagination:{...this.state.pagination,currentPage:1}},this.filterChange.emit(a),this.enhancedAccessibility){const t=Object.keys(a).length;this.announceToScreenReader(`${t} filter${1!==t?"s":""} applied`)}}handleRowSelect(t,e){const a=e.target,r=new Set(this.state.selectedRows);a.checked?(this.multiSelect||r.clear(),r.add(t)):r.delete(t),this.updateSelectedRows(r)}handleSelectAll(t){if(t.target.checked){const t=this.getProcessedData().map((t=>t.id));this.updateSelectedRows(new Set(t))}else this.updateSelectedRows(new Set)}updateSelectedRows(t){this.pushUndoState(),this.state={...this.state,selectedRows:t};const e=Array.from(t);t.size>0?(this.rowSelect.emit({selectedRows:e}),this.enhancedAccessibility&&this.announceToScreenReader(`${t.size} row${1!==t.size?"s":""} selected`)):(this.rowDeselect.emit({selectedRows:e}),this.enhancedAccessibility&&this.announceToScreenReader("All rows deselected"))}handleCellEdit(t,e,a){if(this.advancedValidation){const r=this.validateCell(t,e,a),i=t+"";if(r){const t=this.validationErrors.get(i)||new Map;t.set(e,r),this.validationErrors=new Map(this.validationErrors).set(i,t)}else{const t=this.validationErrors.get(i);t&&t.has(e)&&(t.delete(e),this.validationErrors=new Map(this.validationErrors))}}this.cellEditStop.emit({rowId:t,field:e,value:a}),this.cellEdit.emit({rowId:t,field:e,value:a}),this.state={...this.state,editingCell:null},this.editingRow!==t||this.editable||this.stopRowEdit(t)}startCellEdit(t,e){if(!this.editable)return;const a=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null;this.cellEditStart.emit({rowId:t,field:e,value:a?a[e]:null}),this.editingRow!==t&&this.startRowEdit(t),this.state={...this.state,editingCell:{rowId:t,field:e}},setTimeout((()=>{this.editInputRef&&(this.editInputRef?.setFocus(),this.editInputRef&&"select"in this.editInputRef&&this.editInputRef.select())}),0)}startRowEdit(t){const e=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null;e&&(this.editingRow=t,this.rowEditStart.emit({row:e}))}stopRowEdit(t){const e=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null;e&&(this.editingRow=null,this.rowEditStop.emit({row:e}))}toggleRowExpansion(t,e){e.stopPropagation();const a=new Set(this.state.expandedRows);a.has(t)?a.delete(t):a.add(t),this.state={...this.state,expandedRows:a}}flattenTreeData(t,e=0){let a=[];return t.forEach((t=>{const r={...t,_depth:e,_hasChildren:t.children&&t.children.length>0};a.push(r),t.children&&t.children.length>0&&this.state.expandedRows.has(t.id)&&(a=a.concat(this.flattenTreeData(t.children,e+1)))})),a}handlePaginationChange(t){const{page:e,itemsPerPage:a}=t.detail;this.state={...this.state,pagination:{...this.state.pagination,currentPage:e,pageSize:a}},this.pageChange.emit({page:e,pageSize:a})}handlePageSizeChangeFromPagination(t){const e=t.detail;this.state={...this.state,pagination:{...this.state.pagination,pageSize:e,currentPage:1,totalPages:this.calculateTotalPages(e)}},this.pageChange.emit({page:1,pageSize:e})}handleVirtualScroll=t=>{if(!this.virtualScroll)return;const e=t.target,a=Math.floor(e.scrollTop/this.virtualRowHeight),r=a+Math.ceil(e.clientHeight/this.virtualRowHeight)+10;this.virtualVisibleRange={start:Math.max(0,a-5),end:r}};handleMultiSort(t,e){if(!this.multiSort)return void this.handleSort(t);this.pushUndoState();const a=e&&(e.ctrlKey||e.metaKey),r=this.multiSortConfig.findIndex((e=>e.field===t));let i=[...this.multiSortConfig];a?r>=0?"asc"===i[r].direction?i[r].direction="desc":i.splice(r,1):i.length<this.maxSortColumns&&i.push({field:t,direction:"asc"}):i=r>=0&&"asc"===i[r].direction?[{field:t,direction:"desc"}]:[{field:t,direction:"asc"}],this.multiSortConfig=i}applyMultiSort(t){return this.multiSort&&0!==this.multiSortConfig.length?[...t].sort(((t,e)=>{for(const a of this.multiSortConfig){const r=t[a.field],i=e[a.field];if(r!==i){const t=r<i?-1:1;return"asc"===a.direction?t:-t}}return 0})):this.applySort(t,this.state.sortConfig)}filterOperators={equals:(t,e)=>t===e,notEquals:(t,e)=>t!==e,contains:(t,e)=>(t+"").toLowerCase().includes((e+"").toLowerCase()),startsWith:(t,e)=>(t+"").toLowerCase().startsWith((e+"").toLowerCase()),endsWith:(t,e)=>(t+"").toLowerCase().endsWith((e+"").toLowerCase()),greaterThan:(t,e)=>Number(t)>Number(e),lessThan:(t,e)=>Number(t)<Number(e),isEmpty:t=>null==t||""===t,isNotEmpty:t=>null!=t&&""!==t};applyAdvancedFilters(t){return this.advancedFilters&&0!==this.advancedFilterConfig.size?t.filter((t=>Array.from(this.advancedFilterConfig.entries()).every((([e,a])=>{const r=this.filterOperators[a.operator];return!r||r(t[e],a.value)})))):t}saveTableState(){if(this.persistState&&"undefined"!=typeof window)try{const t={sortConfig:this.multiSort?this.multiSortConfig:this.state.sortConfig,filterConfig:this.state.filterConfig,columnOrder:this.state.columnOrder,visibleColumns:Array.from(this.state.visibleColumns),columnWidths:Array.from(this.state.columnWidths.entries()),pagination:this.state.pagination,groupBy:this.state.groupBy};localStorage.setItem(this.stateStorageKey,JSON.stringify(t))}catch(t){console.error("Failed to save table state:",t)}}loadTableState(){if(this.persistState&&"undefined"!=typeof window)try{const t=localStorage.getItem(this.stateStorageKey);if(t){const e=JSON.parse(t);this.multiSort&&e.multiSortConfig&&(this.multiSortConfig=e.multiSortConfig),this.state={...this.state,sortConfig:e.sortConfig||this.state.sortConfig,filterConfig:e.filterConfig||{},columnOrder:e.columnOrder||this.state.columnOrder,visibleColumns:new Set(e.visibleColumns||this.state.visibleColumns),columnWidths:new Map(e.columnWidths||[]),groupBy:e.groupBy||null}}}catch(t){console.error("Failed to load table state:",t)}}toggleRowDetails(t){const e=new Set(this.expandedRowDetails);e.has(t)?e.delete(t):e.add(t),this.expandedRowDetails=e}validateCell(t,e,a){if(!this.inlineValidation&&!this.advancedValidation)return null;const r=this.getVisibleColumns().find((t=>t.field===e));if(r&&r.validator){const e=Array.isArray(this.data)?this.data.find((e=>e.id===t)):null,i=r.validator(a,e);if(!0!==i&&null!==i)return"string"==typeof i?i:"Invalid value"}if(!this.validationRules[e])return null;const i=this.validationRules[e];if(i.required&&(null==a||""===a))return"This field is required";if(i.minLength&&(a+"").length<i.minLength)return"Minimum length is "+i.minLength;if(i.maxLength&&(a+"").length>i.maxLength)return"Maximum length is "+i.maxLength;if(void 0!==i.min&&Number(a)<i.min)return"Minimum value is "+i.min;if(void 0!==i.max&&Number(a)>i.max)return"Maximum value is "+i.max;if(i.pattern&&!RegExp(i.pattern).test(a+""))return i.patternMessage||"Invalid format";if(this.advancedValidation&&i.custom&&"function"==typeof i.custom)try{const t=i.custom(a);if(!0!==t)return"string"==typeof t?t:"Validation failed"}catch(t){return"Validation error"}return this.advancedValidation&&i.asyncCustom&&"function"==typeof i.asyncCustom&&this.validateCellAsync(t,e,a,i.asyncCustom),null}async validateCellAsync(t,e,a,r){try{const i=await r(a),o=t+"";if(!0!==i){const t="string"==typeof i?i:"Async validation failed",a=this.validationErrors.get(o)||new Map;a.set(e,t),this.validationErrors=new Map(this.validationErrors).set(o,a)}else{const t=this.validationErrors.get(o);t&&t.has(e)&&(t.delete(e),this.validationErrors=new Map(this.validationErrors))}}catch(a){const r=t+"",i=this.validationErrors.get(r)||new Map;i.set(e,"Async validation error"),this.validationErrors=new Map(this.validationErrors).set(r,i)}}renderAdvancedCellEditor(t,e,a){if(!this.advancedCellEditors)return this.renderEditableCell(t,e,a);const i=a=>{this.handleCellEdit(t.id,e.field,a),this.state={...this.state,editingCell:null}};switch(e.type){case"date":case"datetime":case"number":return r("ui-input",{type:"datetime"===e.type?"datetime-local":e.type,value:a||"",onInputChange:t=>i("number"===e.type?Number(t.detail):t.detail),onInputBlur:()=>this.state={...this.state,editingCell:null},customClass:`cell-editor ${e.type}-editor`,size:"sm"});case"boolean":return r("ui-checkbox",{checked:!!a,onCheckboxChange:t=>i(t.detail.checked),size:"sm"});default:return this.renderEditableCell(t,e,a)}}formatCellValue(t,e){if(!this.columnFormatting||null==t)return(t||"")+"";if(e.format)return e.format(t);switch(e.type){case"number":return(new Intl.NumberFormat).format(Number(t));case"date":return(new Intl.DateTimeFormat).format(new Date(t));case"datetime":return new Intl.DateTimeFormat(void 0,{dateStyle:"short",timeStyle:"short"}).format(new Date(t));default:return e.field?.toLowerCase().includes("price")||e.field?.toLowerCase().includes("cost")||e.field?.toLowerCase().includes("amount")?new Intl.NumberFormat(void 0,{style:"currency",currency:"USD"}).format(Number(t)):e.field?.toLowerCase().includes("percent")||e.field?.toLowerCase().includes("rate")?new Intl.NumberFormat(void 0,{style:"percent",minimumFractionDigits:2}).format(Number(t)/100):t+""}}handleCellClick(t,e,a){if(!this.rangeSelection||!a.shiftKey)return;if(!this.rangeSelectionAnchor)return void(this.rangeSelectionAnchor={rowId:t,field:e});const r=this.getProcessedData(),i=r.findIndex((t=>t.id===this.rangeSelectionAnchor.rowId)),o=r.findIndex((e=>e.id===t)),n=Math.min(i,o),s=Math.max(i,o),l=new Set(this.state.selectedRows);for(let t=n;t<=s;t++)l.add(r[t].id);this.state={...this.state,selectedRows:l}}handleCopy=t=>{if(!this.copyPaste||0===this.state.selectedRows.size)return;t.preventDefault();const e=this.getProcessedData(),a=this.getVisibleColumns(),r=e.filter((t=>this.state.selectedRows.has(t.id))),i=a.map((t=>t.label)).join("\t")+"\n"+r.map((t=>a.map((e=>this.formatCellValue(t[e.field],e))).join("\t"))).join("\n");t.clipboardData?.setData("text/plain",i),this.clipboardData=r.map((t=>a.map((e=>t[e.field]))))};handlePaste=t=>{if(!this.copyPaste||!this.editable)return;t.preventDefault();const e=t.clipboardData?.getData("text/plain");if(!e)return;const a=e.split("\n").map((t=>t.split("\t")));this.cellEdit.emit({rowId:"paste",field:"multiple",value:a})};getConditionalFormattingStyle(t,e){if(!this.conditionalFormatting||!this.formattingRules[e.field])return{};const a=this.formattingRules[e.field],r=Number(t);if(a.colorScale){const{min:t,max:e,minColor:i,maxColor:o}=a.colorScale,n=(r-t)/(e-t);return{backgroundColor:`rgb(${Math.round(i.r+(o.r-i.r)*n)}, ${Math.round(i.g+(o.g-i.g)*n)}, ${Math.round(i.b+(o.b-i.b)*n)})`}}if(a.dataBar){const{min:t,max:e,color:i}=a.dataBar,o=(r-t)/(e-t)*100;return{background:`linear-gradient(90deg, ${i} ${o}%, transparent ${o}%)`}}return a.custom&&"function"==typeof a.custom?a.custom(t):{}}toggleColumnVisibility(t){const e=new Set(this.state.visibleColumns);e.has(t)?e.delete(t):e.add(t),this.state={...this.state,visibleColumns:e},this.columnVisibilityChange.emit({visible:Array.from(e)})}handleColumnDragStart(t,e){this.draggedColumn=t,e.dataTransfer.effectAllowed="move"}handleColumnDragOver(t){t.preventDefault(),t.dataTransfer.dropEffect="move"}handleColumnDrop(t,e){if(e.preventDefault(),!this.draggedColumn||this.draggedColumn===t)return;const a=[...this.state.columnOrder],r=a.indexOf(this.draggedColumn),i=a.indexOf(t);a.splice(r,1),a.splice(i,0,this.draggedColumn),this.state={...this.state,columnOrder:a},this.columnOrderChange.emit({order:a}),this.draggedColumn=null}async handleColumnPin(t,e){const a={...this.pinnedColumns};a.left=a.left.filter((e=>e!==t)),a.right=a.right.filter((e=>e!==t)),"left"===e?a.left.push(t):"right"===e&&a.right.push(t),this.pinnedColumns=a,this.columnPin.emit({columnId:t,position:e})}async handleRowPin(t,e){const a={...this.pinnedRows};a.top=a.top.filter((e=>e!==t)),a.bottom=a.bottom.filter((e=>e!==t)),"top"===e?a.top.push(t):"bottom"===e&&a.bottom.push(t),this.pinnedRows=a,this.rowPin.emit({rowId:t,position:e})}handleRowDragStart(t,e){this.rowReorder&&(this.draggedRow=t,e.dataTransfer.effectAllowed="move")}handleRowDragOver(t){this.rowReorder&&(t.preventDefault(),t.dataTransfer.dropEffect="move")}handleRowDrop(t,e){e.preventDefault(),null!==this.draggedRow&&this.draggedRow!==t&&(this.rowReorderEvent.emit({fromIndex:this.draggedRow,toIndex:t}),this.draggedRow=null)}addFilter(t,e,a){const r=this.activeFilters.get(t)||[];r.push({operator:e,value:a}),this.activeFilters.set(t,r);const i={...this.state.filterConfig};i[t]=r,this.state={...this.state,filterConfig:i},this.filterChange.emit(i)}removeFilter(t,e){const a=this.activeFilters.get(t)||[];a.splice(e,1),0===a.length?this.activeFilters.delete(t):this.activeFilters.set(t,a);const r={...this.state.filterConfig};0===a.length?delete r[t]:r[t]=a,this.state={...this.state,filterConfig:r},this.filterChange.emit(r)}clearAllFilters(){this.activeFilters.clear(),this.state={...this.state,filterConfig:{}},this.filterChange.emit({})}handleResizeStart=(t,e)=>{e.preventDefault(),e.stopPropagation(),this.resizingColumnId=t,this.resizeStartX=e.clientX,this.resizeStartWidth=this.state.columnWidths.get(t)||150,this.resizingColumn=t,document.addEventListener("mousemove",this.handleResizeMove),document.addEventListener("mouseup",this.handleResizeEnd),document.body.style.userSelect="none"};handleResizeMove=t=>{if(!this.resizingColumnId)return;const e=Math.max(50,this.resizeStartWidth+(t.clientX-this.resizeStartX)),a=new Map(this.state.columnWidths);a.set(this.resizingColumnId,e),this.state={...this.state,columnWidths:a}};handleResizeEnd=()=>{this.resizingColumnId="",this.resizingColumn=null,document.body.style.userSelect="",document.removeEventListener("mousemove",this.handleResizeMove),document.removeEventListener("mouseup",this.handleResizeEnd)};calculateInitialColumnWidths(t){const e=new Map,a=t.filter((t=>!1!==t.visible)),r=a.length;let i;return i=r<=3?250:r<=6?200:r<=10?150:r<=15?120:100,a.forEach((t=>{if(t.width){const a=parseInt(t.width);e.set(t.id,isNaN(a)?i:a)}else e.set(t.id,i)})),e}prepareExportData(t){let e=t.selectedOnly?this.parseData().filter((t=>this.state.selectedRows.has(t.id))):this.getProcessedData();const a=t.visibleColumnsOnly?this.getVisibleColumns():this.flattenColumns(this.parseColumns());return e.map((t=>{const e={};return a.forEach((a=>{a.field&&(e[a.label]=a.format?a.format(t[a.field]):t[a.field])})),e}))}performExport(t,e){"csv"===e.format?this.exportToCSV(t,e.fileName||"export.csv"):"json"===e.format?this.exportToJSON(t,e.fileName||"export.json"):"excel"===e.format&&this.exportToExcel(t,e.fileName||"export.xlsx"),this.dataExport.emit({data:t,format:e.format}),this.showExportDialog=!1}exportToCSV(t,e){if(0===t.length)return;const a=Object.keys(t[0]),r=[a.join(","),...t.map((t=>a.map((e=>{const a=t[e];return"string"==typeof a&&a.includes(",")?`"${a}"`:a})).join(",")))].join("\n");this.downloadFile(r,e,"text/csv")}exportToJSON(t,e){const a=JSON.stringify(t,null,2);this.downloadFile(a,e,"application/json")}exportToExcel(t,e){if(0===t.length)return;const a=Object.keys(t[0]);let r='<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>';r+='<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" ',r+='xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">',r+="<Styles>",r+='<Style ss:ID="Header"><Font ss:Bold="1"/><Interior ss:Color="#4472C4" ss:Pattern="Solid"/></Style>',r+='<Style ss:ID="Default"><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/></Borders></Style>',r+="</Styles>",r+='<Worksheet ss:Name="Sheet1"><Table>',r+='<Row ss:StyleID="Header">',a.forEach((t=>{r+=`<Cell><Data ss:Type="String">${this.escapeXml(t)}</Data></Cell>`})),r+="</Row>",t.forEach((t=>{r+='<Row ss:StyleID="Default">',a.forEach((e=>{const a=t[e];r+=`<Cell><Data ss:Type="${"number"==typeof a?"Number":"String"}">${this.escapeXml((null!=a?a:"")+"")}</Data></Cell>`})),r+="</Row>"})),r+="</Table></Worksheet></Workbook>",this.downloadFile(r,e,"application/vnd.ms-excel")}escapeXml(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}downloadFile(t,e,a){const r=new Blob([t],{type:a}),i=URL.createObjectURL(r),o=document.createElement("a");o.href=i,o.download=e,o.click(),URL.revokeObjectURL(i)}exportToPDF(){this.printOptimized||(console.warn("PDF Export requires jspdf library. Please enable print mode."),alert("PDF Export not fully implemented without jspdf. Printing page instead.")),window.print()}pushUndoState(){if(!this.undoRedo)return;const t=JSON.parse(JSON.stringify(this.state));this.undoStack=[...this.undoStack,t],this.redoStack=[],this.undoStack.length>20&&this.undoStack.shift()}handleUndo(){if(!this.undoRedo||0===this.undoStack.length)return;const t=JSON.parse(JSON.stringify(this.state));this.redoStack=[...this.redoStack,t];const e=this.undoStack.pop();this.undoStack=[...this.undoStack],this.state={...e}}handleRedo(){if(!this.undoRedo||0===this.redoStack.length)return;const t=JSON.parse(JSON.stringify(this.state));this.undoStack=[...this.undoStack,t];const e=this.redoStack.pop();this.redoStack=[...this.redoStack],this.state={...e}}setupGlobalKeyboardShortcuts(){document.addEventListener("keydown",(t=>{this.undoRedo&&((t.ctrlKey||t.metaKey)&&"z"===t.key&&(t.preventDefault(),this.handleUndo()),(t.ctrlKey||t.metaKey)&&("y"===t.key||t.shiftKey&&"z"===t.key)&&(t.preventDefault(),this.handleRedo())),this.keyboardShortcuts&&!this.state.editingCell&&this.handleKeyboardNavigation(t)}))}handleKeyboardNavigation(t){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Escape","Tab"].includes(t.key))return;const e=this.getProcessedData(),a=this.getVisibleColumns();if(0===e.length||0===a.length)return;let{focusedCell:r}=this.state;if(!r)return void(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key)&&(this.setFocusedCell(e[0].id,a[0].field??""),t.preventDefault()));const i=e.findIndex((t=>t.id===r.rowId)),o=a.findIndex((t=>t.field===r.field));if(-1!==i&&-1!==o)switch(t.key){case"ArrowUp":i>0&&(this.setFocusedCell(e[i-1].id,r.field),t.preventDefault());break;case"ArrowDown":i<e.length-1&&(this.setFocusedCell(e[i+1].id,r.field),t.preventDefault());break;case"ArrowLeft":o>0&&(this.setFocusedCell(r.rowId,a[o-1].field??""),t.preventDefault());break;case"ArrowRight":o<a.length-1&&(this.setFocusedCell(r.rowId,a[o+1].field??""),t.preventDefault());break;case"Enter":this.editable&&(this.startCellEdit(r.rowId,r.field),t.preventDefault());break;case"Escape":this.setFocusedCell(null,"")}}setFocusedCell(t,e){this.state={...this.state,focusedCell:t?{rowId:t,field:e}:null},t&&setTimeout((()=>{const a=this.el.shadowRoot?.querySelector(`td[data-row-id="${t}"][data-field="${e}"]`);a&&a.scrollIntoView({block:"nearest",inline:"nearest"})}),0)}applyTheme(){const t=this.el.shadowRoot?.querySelector(".data-table-container");if(t)if("auto"===this.theme){const e=window.matchMedia("(prefers-color-scheme: dark)").matches;t.classList.toggle("dark-mode",e)}else t.classList.toggle("dark-mode","dark"===this.theme)}setupClickOutsideListener=()=>{document.addEventListener("click",this.handleClickOutside),document.addEventListener("contextmenu",(t=>{if(this.contextMenu&&this.contextMenuState.visible){const e=t.target,a=(this.el.shadowRoot||this.el).querySelector(".context-menu");if(a&&a.contains(e))return}}))};handleClickOutside=t=>{if(null!==this.activeActionMenu&&(t.target.closest(".row-actions-container")||(this.activeActionMenu=null)),this.contextMenuState.visible){const e=t.target,a=(this.el.shadowRoot||this.el).querySelector(".context-menu");if(a&&a.contains(e))return;this.contextMenuState={...this.contextMenuState,visible:!1}}};handleHeaderContextMenu(t,e){t.preventDefault(),t.stopPropagation();const a=t.currentTarget.getBoundingClientRect();this.contextMenuState={visible:!0,x:a.left,y:a.bottom+window.scrollY,type:"header",target:e}}toggleColumnPin(t,e){const a={...this.pinnedColumns};a.left=a.left.filter((e=>e!==t)),a.right=a.right.filter((e=>e!==t)),"left"===e?a.left.push(t):"right"===e&&a.right.push(t),this.pinnedColumns=a,this.contextMenuState={...this.contextMenuState,visible:!1}}handleContextMenu(t,e,a){this.contextMenu&&(t.preventDefault(),t.stopPropagation(),this.contextMenuState={visible:!0,x:t.clientX,y:t.clientY,type:e,target:a})}setupResizeObserver(){this.resizeObserver=new ResizeObserver((t=>{this.el.shadowRoot?.host.dispatchEvent(new CustomEvent("tableResize"));for(const e of t)this.isMobileView=e.contentRect.width<768})),this.resizeObserver.observe(this.el)}setupLazyLoadObserver(t){t&&this.lazyLoad&&(this.lazyLoadObserver&&this.lazyLoadObserver.disconnect(),this.lazyLoadObserver=new IntersectionObserver((t=>{t.forEach((t=>{if(t.isIntersecting&&!this.loading){const t=this.parseData().length;this.lazyLoadMore.emit({currentCount:t})}}))}),{root:null,rootMargin:"100px",threshold:.1}),this.lazyLoadObserver.observe(t))}announceToScreenReader(t){if(!this.enhancedAccessibility)return;let e=this.el.shadowRoot?.querySelector(".sr-announcer");e||(e=document.createElement("div"),e.className="sr-announcer",e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("role","status"),this.el.shadowRoot?.appendChild(e)),e.textContent="",setTimeout((()=>{e.textContent=t}),100)}calculateAggregations(t){const e={};return this.getVisibleColumns().forEach((a=>{a.aggregation&&a.aggregation.length>0&&(e[a.id]={},a.aggregation.forEach((r=>{const i=t.map((t=>t[a.field])).filter((t=>null!=t&&""!==t));switch(r){case"sum":e[a.id].sum=i.reduce(((t,e)=>Number(t)+Number(e)),0);break;case"avg":const t=i.reduce(((t,e)=>Number(t)+Number(e)),0);e[a.id].avg=i.length>0?t/i.length:0;break;case"min":"date"===a.type||a.id&&a.id.toLowerCase().includes("date")?(i.sort(),e[a.id].min=i[0]):e[a.id].min=Math.min(...i.map((t=>Number(t))));break;case"max":"date"===a.type||a.id&&a.id.toLowerCase().includes("date")?(i.sort(),e[a.id].max=i[i.length-1]):e[a.id].max=Math.max(...i.map((t=>Number(t))));break;case"count":e[a.id].count=i.length}})))})),e}renderAggregationFooter(){const t=this.getProcessedData(),e=this.calculateAggregations(t);return Object.keys(e).length>0?r("tfoot",{class:"data-table-footer"},r("tr",null,(this.selectable||this.multiSelect)&&r("td",null),this.rowDetails&&r("td",null),this.getVisibleColumns().map((t=>{const a=e[t.id],i=this.pinnedColumns.left.includes(t.id),o=this.pinnedColumns.right.includes(t.id);return r("td",{class:{"pinned-left":i,"pinned-right":o},style:{position:i||o?"sticky":void 0,left:i?this.getPinnedOffset(t.id,"left"):void 0,right:o?this.getPinnedOffset(t.id,"right"):void 0,zIndex:i||o?"3":void 0,textAlign:t.align||"left"}},a&&Object.entries(a).map((([e,a])=>r("div",{class:"agg-item"},r("span",{class:"agg-label"},e,":"),r("span",{class:"agg-value"},t.format&&"number"==typeof a?t.format(a):a)))))})))):null}renderSkeletonRows(t){return Array.from({length:this.skeletonRows},((e,a)=>r("tr",{key:"skeleton-"+a,class:"skeleton-row"},this.selectable&&r("td",{class:"skeleton-cell"},r("ui-skeleton",{shape:"square",size:"sm",width:"16px",height:"16px"})),t.map((t=>r("td",{key:`skeleton-${a}-${t.id}`,class:"skeleton-cell"},r("ui-skeleton",{shape:"text",animationType:"wave",width:30+40*Math.random()+"%"})))))))}getPinnedOffset(t,e){const a=this.getVisibleColumns(),r=t=>"left"===e?this.pinnedColumns.left.includes(t.id):this.pinnedColumns.right.includes(t.id),i=a.filter((t=>r(t))),o=i.findIndex((e=>e.id===t));if(o<=0)return"0px";let n=0;for(let t=0;t<o;t++)n+=this.state.columnWidths.get(i[t].id)||150;return n+"px"}renderColumnHeader(t,e=1){if(t.children&&t.children.length>0)return r("th",{class:"column-group",colSpan:this.getLeafColumnCount(t),style:{textAlign:t.align||"left"}},r("div",{class:"column-header-content"},r("span",null,t.label)));const a=this.state.sortConfig.field===t.field,i=a?this.state.sortConfig.direction:null,o=this.state.columnWidths.get(t.id);return r("th",{rowSpan:e>1?e:void 0,class:{sortable:this.sortable&&!1!==t.sortable,sorted:a,"sticky-column":t.sticky||this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id),resizing:this.resizingColumn===t.id,"pinned-left":this.pinnedColumns.left.includes(t.id),"pinned-right":this.pinnedColumns.right.includes(t.id)},style:{width:o?o+"px":t.width||"auto",minWidth:t.minWidth,textAlign:t.align||"left",position:t.sticky||this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id)?"sticky":"relative",left:this.pinnedColumns.left.includes(t.id)?this.getPinnedOffset(t.id,"left"):void 0,right:this.pinnedColumns.right.includes(t.id)?this.getPinnedOffset(t.id,"right"):void 0,zIndex:t.sticky||this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id)?"30":void 0}},r("div",{class:"column-header-content"},this.columnReorder&&r("span",{class:"drag-handle",draggable:!0,onDragStart:e=>this.handleColumnDragStart(t.id,e),onDragOver:t=>this.handleColumnDragOver(t),onDrop:e=>this.handleColumnDrop(t.id,e),title:"Drag to reorder"},r("ui-icon",{name:"grip-vertical",library:"lucide",size:"1.2em"})),r("span",{class:"column-label",onClick:e=>!1!==t.sortable&&this.handleMultiSort(t.field||t.id,e)},(this.pinnedColumns.left.includes(t.id)||this.pinnedColumns.right.includes(t.id))&&r("ui-icon",{name:"pin",library:"lucide",size:"14px",class:"pin-indicator"}),t.label),this.sortable&&!1!==t.sortable&&(()=>{if(this.multiSort){const e=this.multiSortConfig.findIndex((e=>e.field===(t.field||t.id)));return e>=0?r("span",{class:"sort-icon multi-sort"},r("ui-icon",{name:"asc"===this.multiSortConfig[e].direction?"arrow-up":"arrow-down",library:"lucide",size:"14px"}),r("span",{class:"sort-order-badge"},e+1)):r("ui-icon",{name:"arrow-up-down",library:"lucide",size:"14px",class:"sort-icon"})}return r("span",{class:"sort-icon"},!a&&r("ui-icon",{name:"arrow-up-down",library:"lucide",size:"14px"}),a&&r("ui-icon",{name:"asc"===i?"arrow-up":"arrow-down",library:"lucide",size:"14px"}))})(),r("ui-button",{variant:"ghost",class:"header-menu-trigger",onClick:e=>this.handleHeaderContextMenu(e,t),ariaLabel:"Column options",icon:"more-vertical",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),this.filterable&&!1!==t.filterable&&r("div",{class:"column-filter"},r("ui-input",{type:"text",placeholder:`Filter ${t.label}...`,value:this.state.filterConfig[t.field||t.id]||"",onInputChange:e=>this.handleFilter(t.field||t.id,e.detail),onClick:t=>t.stopPropagation(),size:"sm",variant:"outlined"})),r("div",{class:"resize-handle",onMouseDown:e=>this.handleResizeStart(t.id,e),onClick:t=>t.stopPropagation()}))}renderTableHeaders(){const t=this.parseColumns();if(!t.some((t=>t.children&&t.children.length>0)))return r("tr",null,this.selectable&&r("th",{class:"select-column"},this.multiSelect&&r("ui-checkbox",{checked:this.state.selectedRows.size===this.getProcessedData().length,onCheckboxChange:t=>this.handleSelectAll(t),ariaLabel:"Select all rows",size:"sm"})),this.getVisibleColumns().map((t=>this.renderColumnHeader(t))),this.showActions&&r("th",{class:"actions-column"},"Actions"),this.rowDetails&&r("th",{class:"row-details-column"},"Details"));const e=[],a=this.getMaxColumnDepth(t);for(let i=0;i<a;i++)e.push(r("tr",null,0===i&&this.selectable&&r("th",{class:"select-column",rowSpan:a},this.multiSelect&&r("ui-checkbox",{checked:this.state.selectedRows.size===this.getProcessedData().length,onCheckboxChange:t=>this.handleSelectAll(t),ariaLabel:"Select all rows",size:"sm"})),this.renderHeaderLevel(t,i,0,a),0===i&&this.showActions&&r("th",{class:"actions-column",rowSpan:a},"Actions"),0===i&&this.rowDetails&&r("th",{class:"row-details-column",rowSpan:a},"Details")));return e}getMaxColumnDepth(t){let e=1;const a=(t,r)=>{t.forEach((t=>{t.children&&t.children.length>0&&(e=Math.max(e,r+1),a(t.children,r+1))}))};return a(t,1),e}renderHeaderLevel(t,e,a=0,r=1){const i=[];return t.forEach((t=>{const o=t.children&&t.children.length>0;(o?this.getLeafColumnCount(t)>0:this.state.visibleColumns.has(t.id))&&(a===e?i.push(this.renderColumnHeader(t,o?1:r-a)):o&&i.push(...this.renderHeaderLevel(t.children,e,a+1,r)))})),i}renderCell(t,e){const a=e.field?t[e.field]:"";let i;i=this.editable&&!1!==e.editable||this.state.editingCell?.rowId===t.id&&this.state.editingCell?.field===e.field&&!1!==e.editable?this.advancedCellEditors?this.renderAdvancedCellEditor(t,e,a):this.renderEditableCell(t,e,a):this.columnFormatting?this.formatCellValue(a,e):this.renderDisplayCell(t,e,a);const o=this.getVisibleColumns();if(this.treeData&&o.length>0&&o[0].id===e.id){const e=t._depth||0,a=t._hasChildren,o=this.state.expandedRows.has(t.id);return r("div",{class:"cell-content-wrapper",style:{display:"flex",alignItems:"center"}},r("span",{style:{paddingLeft:24*e+"px"}}),a?r("span",{class:"tree-toggle-icon",onClick:e=>this.toggleRowExpansion(t.id,e),style:{cursor:"pointer",marginRight:"8px",display:"inline-block",width:"16px",textAlign:"center",userSelect:"none"}},r("ui-icon",{name:o?"chevron-down":"chevron-right",library:"lucide",size:"14px"})):r("span",{style:{display:"inline-block",width:"24px"}}),r("div",{class:"cell-inner-content",style:{flex:"1"}},i))}return!this.columnReorder||e.align&&"left"!==e.align?i:r("div",{class:"cell-content-wrapper",style:{display:"flex",alignItems:"center"}},r("span",{class:"drag-handle-spacer",style:{width:"22px",flexShrink:"0"}}),r("div",{class:"cell-inner-content",style:{flex:"1"}},i))}getLeafColumnCount(t){if(!t.children||0===t.children.length)return 1;let e=0;return t.children.forEach((t=>{t.children&&t.children.length>0?e+=this.getLeafColumnCount(t):this.state.visibleColumns.has(t.id)&&(e+=1)})),e}renderEditableCell(t,e,a){const i=()=>{this.editable||(this.state={...this.state,editingCell:null})},o=(a,r)=>{"Enter"===a.key?this.handleCellEdit(t.id,e.field,r.value):"Escape"===a.key&&(this.editable||i())};switch(e.type){case"select":return r("select",{ref:t=>{t&&(this.editInputRef=t,t.value=a)},onChange:a=>this.handleCellEdit(t.id,e.field,a.target.value),onBlur:i,class:"cell-select"},e.selectOptions?.map((t=>r("option",{value:t.value,selected:t.value===a},t.label))));case"radio":return r("div",{class:"cell-radio-group"},e.radioOptions?.map((i=>r("label",{class:"radio-label"},r("ui-radio",{name:`${t.id}-${e.field}`,value:i.value,checked:i.value===a,onRadioChange:a=>this.handleCellEdit(t.id,e.field,a.detail.value),label:i.label,size:"sm"})))));case"checkbox":return r("ui-checkbox",{ref:t=>this.editInputRef=t,checked:!0===a||"true"===a,onCheckboxChange:a=>this.handleCellEdit(t.id,e.field,a.detail.checked),onCheckboxBlur:i,size:"sm"});case"switch":return r("ui-switch",{checked:!0===a||"true"===a,onSwitchChange:a=>this.handleCellEdit(t.id,e.field,a.detail.checked),size:"sm"});case"rating":const n=e.maxRating||5,s=Number(a)||0;return r("div",{class:"cell-rating"},Array.from({length:n},((t,e)=>e+1)).map((a=>r("span",{class:{star:!0,filled:a<=s},onClick:()=>this.handleCellEdit(t.id,e.field,a)},r("ui-icon",{name:"star",library:"lucide",size:"1.2em",color:a<=s?"#ffc107":"#bdbdbd"})))));case"date":case"time":case"datetime":case"password":case"email":return r("ui-input",{ref:t=>this.editInputRef=t,type:"datetime"===e.type?"datetime-local":e.type,value:a,onInputChange:a=>this.handleCellEdit(t.id,e.field,a.detail),onInputBlur:i,onInputKeydown:t=>o(t.detail,t.target),customClass:"cell-input",variant:"plain",size:"sm"});case"url":return r("ui-input",{ref:t=>this.editInputRef=t,type:"number"===e.type?"number":"tel"===e.type?"tel":"url"===e.type?"url":"text",value:a,onInputChange:a=>this.handleCellEdit(t.id,e.field,a.detail),onInputBlur:i,onInputKeydown:t=>o(t.detail,t.target),customClass:"cell-input",variant:"plain",size:"sm"})}}renderDisplayCell(t,e,a){if(e.render)return r("span",{class:{"editable-cell":this.editable&&!1!==e.editable},onDblClick:()=>this.editable&&!1!==e.editable&&this.startCellEdit(t.id,e.field)},e.render(a,t,0));if(this.enableSparklines&&Array.isArray(a)&&a.length>0&&"number"==typeof a[0])return this.renderSparkline(a);let i;switch(e.type){case"checkbox":case"boolean":i=r("span",{class:"cell-boolean"},r("ui-icon",{name:a?"check":"x",library:"lucide",size:"1.2em",color:a?"#4caf50":"#f44336"}));break;case"switch":i=r("ui-switch",{checked:!!a,readonly:!0,size:"sm"});break;case"rating":i=r("ui-rating",{value:Number(a)||0,max:e.maxRating||5,readonly:!0,size:"sm"});break;case"image":const t=e.imageStyle||{};i=a?r("img",{src:a,alt:"Cell image",class:"cell-image",style:{width:t.width||"40px",height:t.height||"40px",borderRadius:t.borderRadius||"4px"}}):null;break;case"password":i=r("span",{class:"cell-password"},"•".repeat(a?.length||8));break;case"date":i=a?new Date(a).toLocaleDateString():"";break;case"datetime":i=a?new Date(a).toLocaleString():"";break;case"time":i=a;break;case"email":i=r("a",{href:"mailto:"+a,class:"cell-link"},a);break;case"url":i=r("a",{href:a,target:"_blank",rel:"noopener noreferrer",class:"cell-link"},a);break;case"tel":i=r("a",{href:"tel:"+a,class:"cell-link"},a);break;default:i=e.format?e.format(a):a}return r("span",{class:{"editable-cell":this.editable&&!1!==e.editable},onDblClick:()=>this.editable&&!1!==e.editable&&this.startCellEdit(t.id,e.field)},i)}renderRowActions(t){const e=this.activeActionMenu===t.id,a=this.customActions||[{label:"Edit",value:"edit",icon:"✏️"},{label:"Delete",value:"delete",icon:"🗑️"}];return r("div",{class:"row-actions-container"},r("ui-button",{variant:"ghost",class:"row-actions-trigger",onClick:a=>{a.stopPropagation(),this.activeActionMenu=e?null:t.id},ariaLabel:"Row actions",icon:"more-vertical",iconLibrary:"lucide",iconOnly:!0,size:"sm"}),e&&r("div",{class:"row-actions-menu"},a.map((e=>r("ui-button",{key:e.value,variant:"ghost",class:"row-action-item",onClick:a=>{a.stopPropagation(),this.handleRowAction(t,e.value)},icon:e.icon,iconLibrary:e.iconLibrary||this.iconLibrary,label:e.label,size:"sm",block:!0,align:"start"})))))}handleRowAction(t,e){this.activeActionMenu=null,"edit"===e?this.rowEdit.emit({row:t}):"delete"===e?this.rowDelete.emit({row:t}):this.rowAction.emit({row:t,action:e})}renderGroupedRows(t,e){const a=this.groupData(t,this.state.groupBy),i=[];return a.forEach(((t,a)=>{const o=this.state.expandedGroups.has(a),n=t.length;i.push(r("tr",{class:"group-header-row",key:"group-"+a,role:"row","aria-expanded":o},r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0),class:"group-header-cell",onClick:()=>this.handleGroupToggle(a),role:"button",tabIndex:0,onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.handleGroupToggle(a))},"aria-label":`${o?"Collapse":"Expand"} group ${a}`},r("div",{class:"group-header-content"},r("span",{class:"group-expand-icon"},r("ui-icon",{name:o?"chevron-down":"chevron-right",library:"lucide",size:"14px"})),r("span",{class:"group-label"},a),this.showGroupCount&&r("span",{class:"group-count"},"(",n," ",1===n?"item":"items",")"))))),o&&t.forEach(((t,o)=>{i.push(r("tr",{class:{"group-data-row":!0,selected:this.state.selectedRows.has(t.id)},key:t.id,role:"row","data-group":a,"aria-label":`Row ${o+1} in group ${a}`},this.selectable&&r("td",{class:"select-column",role:"cell"},r("ui-checkbox",{checked:this.state.selectedRows.has(t.id),onCheckboxChange:e=>this.handleRowSelect(t.id,e.detail),ariaLabel:"Select row "+(o+1),size:"sm"})),e.map((e=>r("td",{key:e.id,class:{"sticky-column":!!e.sticky,"focused-cell":this.state.focusedCell?.rowId===t.id&&this.state.focusedCell?.field===e.field,"pinned-left":this.pinnedColumns.left.includes(e.id),"pinned-right":this.pinnedColumns.right.includes(e.id)},style:{textAlign:e.align||"left"},role:"cell","data-row-id":t.id,"data-field":e.field,tabIndex:0,onFocus:()=>this.setFocusedCell(t.id,e.field)},this.renderCell(t,e)))),this.showActions&&r("td",{class:"actions-column",role:"cell"},this.renderRowActions(t)),this.rowDetails&&r("td",{class:"row-details-toggle-cell",role:"cell"},r("ui-button",{variant:"ghost",size:"sm",onClick:()=>this.toggleRowDetails(t.id),ariaLabel:"Toggle row details",icon:this.expandedRowDetails.has(t.id)?"chevron-down":"chevron-right",iconLibrary:"lucide",iconOnly:!0,iconSize:"1.2em"})))),this.rowDetails&&this.expandedRowDetails.has(t.id)&&i.push(this.renderRowDetailsPanel(t))}))})),i}renderRowDetailsPanel(t){if(!this.rowDetails||!this.expandedRowDetails.has(t.id))return null;const e=this.getVisibleColumns();return r("tr",{key:t.id+"-details",class:"row-details-row"},r("td",{colSpan:e.length+(this.selectable?1:0)+(this.rowReorder?1:0)+(this.showActions?1:0)},r("div",{class:"row-details-panel"},r("div",{class:"details-header"},r("h4",null,"Row Details"),r("ui-button",{variant:"ghost",onClick:()=>this.toggleRowDetails(t.id),icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),r("div",{class:"details-content"},Object.entries(t).map((([t,e])=>r("div",{key:t,class:"detail-item"},r("strong",{class:"detail-label"},t,":"),r("span",{class:"detail-value"},e+""))))))))}renderKeyboardShortcutsModal(){return this.showKeyboardShortcutsHelp?r("div",{class:"keyboard-shortcuts-modal",onClick:()=>this.showKeyboardShortcutsHelp=!1},r("div",{class:"modal-content",onClick:t=>t.stopPropagation()},r("div",{class:"modal-header"},r("h3",null,"Keyboard Shortcuts"),r("ui-button",{variant:"ghost",icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm",onClick:()=>this.showKeyboardShortcutsHelp=!1})),r("div",{class:"modal-body"},r("table",{class:"shortcuts-table"},r("tbody",null,r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + F"),r("td",{class:"shortcut-desc"},"Focus search")),r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + A"),r("td",{class:"shortcut-desc"},"Select all rows")),r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + E"),r("td",{class:"shortcut-desc"},"Export data")),r("tr",null,r("td",{class:"shortcut-key"},"Ctrl + Click"),r("td",{class:"shortcut-desc"},"Multi-column sort")),r("tr",null,r("td",{class:"shortcut-key"},"Shift + ?"),r("td",{class:"shortcut-desc"},"Show this help")),r("tr",null,r("td",{class:"shortcut-key"},"Arrow Keys"),r("td",{class:"shortcut-desc"},"Navigate cells"))))))):null}renderSparkline(t){if(t.length<2)return t.join(", ");const e=Math.min(...t),a=Math.max(...t)-e||1,i=t.map(((r,i)=>`${i/(t.length-1)*100},${20-(r-e)/a*20}`)).join(" ");return r("svg",{width:100,height:20,class:"sparkline",style:{display:"block"}},r("polyline",{points:i,fill:"none",stroke:"currentColor","stroke-width":"1.5"}))}renderContextMenu(){if(!this.contextMenuState.visible)return null;const{x:t,y:e,type:a,target:i}=this.contextMenuState,o={top:e+"px",left:t+"px",position:"fixed",zIndex:"1000"};if("header"===a){const t=i,e=this.pinnedColumns.left.includes(t.id),a=this.pinnedColumns.right.includes(t.id);return r("div",{class:"context-menu header-context-menu",style:o},r("div",{class:"context-menu-header"},t.label," Options"),r("ul",null,r("li",{onClick:()=>this.handleSort(t.field||t.id)},this.state.sortConfig.field===(t.field||t.id)&&"asc"===this.state.sortConfig.direction?r("span",null,r("ui-icon",{name:"check",library:"lucide",size:"1.2em"})," Sort Decending"):"Sort Ascending"),r("li",{class:"divider"}),r("li",{class:"has-submenu"},"Pin Column",r("ul",{class:"submenu"},r("li",{onClick:()=>this.toggleColumnPin(t.id,"left")},e&&r("ui-icon",{name:"check",library:"lucide",size:"1.2em"}),"Pin to Left"),r("li",{onClick:()=>this.toggleColumnPin(t.id,"right")},a&&r("ui-icon",{name:"check",library:"lucide",size:"1.2em"}),"Pin to Right"),r("li",{onClick:()=>this.toggleColumnPin(t.id,"none")},!e&&!a&&r("ui-icon",{name:"check",library:"lucide",size:"1.2em"}),"No Pin"))),r("li",{onClick:()=>this.toggleColumnVisibility(t.id)},"Hide Column"),r("li",{class:"divider"}),r("li",{onClick:()=>{this.handleFilter(t.field||t.id,""),this.contextMenuState={...this.contextMenuState,visible:!1}}},"Clear Column Filter")))}return r("div",{class:"context-menu",style:o},r("ul",null,r("li",{onClick:()=>this.handleContextAction("copy")},"Copy"),"row"===a&&r("li",{onClick:()=>this.handleContextAction("delete")},"Delete Row"),"cell"===a&&r("li",{onClick:()=>this.handleContextAction("edit")},"Edit Cell"),r("li",{class:"divider"}),r("li",{onClick:()=>this.handleContextAction("export")},"Export Row")))}handleContextAction(t){const{target:e,type:a}=this.contextMenuState;if("copy"===t){let t="";"cell"===a?t=(e.value||"")+"":"row"===a&&(t=JSON.stringify(e)),t&&navigator.clipboard.writeText(t).catch((t=>console.error("Copy failed",t)))}else"edit"===t&&"cell"===a&&this.startCellEdit(e.rowId,e.field);this.contextMenuState={...this.contextMenuState,visible:!1}}renderMobileCards(t){const e=this.getVisibleColumns();return r("div",{class:"mobile-cards-view"},t.map((t=>r("div",{class:"mobile-card",key:t.id},r("div",{class:"card-header"},this.selectable&&r("ui-checkbox",{checked:this.state.selectedRows.has(t.id),onCheckboxChange:e=>this.handleRowSelect(t.id,e.detail),size:"sm"}),r("span",{class:"card-title"},"Row #",t.id),this.showActions&&r("div",{class:"card-actions"},this.renderRowActions(t))),r("div",{class:"card-body"},e.map((e=>r("div",{class:"card-field",key:e.id},r("label",null,e.label||e.field),r("div",{class:"card-value"},this.renderCell(t,e))))))))),this.renderLazyLoadSentinel())}renderLazyLoadSentinel(){return this.lazyLoad?r("div",{class:"lazy-load-sentinel",ref:t=>{t&&this.setupLazyLoadObserver(t)},style:{height:"20px",textAlign:"center",padding:"10px"}},this.loading?"Loading more...":""):null}renderValidationError(t,e){if(!this.advancedValidation)return null;const a=t+"",i=this.validationErrors.get(a)?.get(e);return i?r("div",{class:"validation-error-tooltip"},r("ui-icon",{name:"alert-triangle",library:"lucide",size:"14px",class:"error-icon",color:"#f44336"}),r("span",{class:"error-message"},i)):null}renderPagination(){if(!this.pagination)return null;const{currentPage:t,pageSize:e,totalRows:a}=this.state.pagination;return r("div",{class:"pagination-container"},r("ui-pagination",{"total-items":a,"items-per-page":e,"current-page":t,"show-first-last":!0,"show-page-size":!0,"show-total":!0,"page-size-options":JSON.stringify(this.parsePageSizeOptions()),theme:this.paginationTheme,shape:this.paginationShape,"keyboard-nav":this.paginationKeyboardNav,"quick-jump":this.paginationQuickJump,"quick-jump-step":this.paginationQuickJumpStep,"show-progress":this.paginationShowProgress,sticky:this.paginationSticky,"sticky-position":this.paginationStickyPosition,"page-transition":this.paginationTransitions,"url-sync":this.paginationUrlSync,"url-param":this.paginationUrlParam,"persist-page":this.paginationPersistPage,"storage-key":this.paginationStorageKey,"swipe-gestures":this.paginationSwipeGestures,"smart-compact":this.paginationSmartCompact,"smart-compact-threshold":this.paginationSmartCompactThreshold,"auto-hide":this.paginationAutoHide,"responsive-mode":this.paginationResponsive,"mobile-breakpoint":this.paginationMobileBreakpoint,onPageChange:t=>this.handlePaginationChange(t),onItemsPerPageChange:t=>this.handlePageSizeChangeFromPagination(t)}))}renderToolbar(){return r("div",{class:"table-toolbar"},r("div",{class:"toolbar-left"},this.searchable&&r("div",{class:"search-box"},r("ui-input",{type:"text",placeholder:"Search...",value:this.state.searchQuery,onInputChange:t=>this.handleSearch(t.detail),ariaLabel:"Search table",size:"sm",prefixIcon:"search",variant:"outlined"})),this.grouping&&this.renderGroupingSelector()),r("div",{class:"toolbar-right"},this.filterable&&r("ui-button",{variant:"ghost",size:"sm",icon:"filter",iconLibrary:"lucide",iconSize:"1.1em",label:"Filters",ariaLabel:"Filter panel",onClick:()=>this.showFilterPanel=!this.showFilterPanel,"data-expanded":this.showFilterPanel}),this.columnVisibility&&r("ui-button",{variant:"ghost",size:"sm",icon:"settings",iconLibrary:"lucide",iconSize:"1.1em",label:"Columns",ariaLabel:"Column settings",onClick:()=>this.showColumnSettings=!this.showColumnSettings,"data-expanded":this.showColumnSettings}),this.exportable&&r("ui-button",{variant:"ghost",size:"sm",icon:"download",iconLibrary:"lucide",iconSize:"1.1em",label:"Export",ariaLabel:"Export data",onClick:()=>this.showExportDialog=!this.showExportDialog}),r("ui-button",{variant:"ghost",size:"sm",icon:"refresh-cw",iconLibrary:"lucide",iconSize:"1.1em",label:"Refresh",ariaLabel:"Refresh table",onClick:()=>this.refresh()})))}renderGroupingSelector(){const t=this.getVisibleColumns().filter((t=>!1!==t.groupBy));return 0===t.length?null:r("div",{class:"grouping-selector"},r("label",{htmlFor:"group-by-select"},"Group by:"),r("select",{id:"group-by-select",onInput:t=>this.handleGroupByChange(t.target.value),"aria-label":"Group table by column"},r("option",{value:"",selected:!this.state.groupBy},"None"),t.map((t=>r("option",{value:t.field||t.id,key:t.id,selected:this.state.groupBy===(t.field||t.id)},t.label)))))}renderFilterPanel(){if(!this.showFilterPanel)return null;const t=this.flattenColumns(this.parseColumns()),e=t.filter((t=>!1!==t.filterable)),a=e.find((t=>t.id===this.filterPanelField)),i=a?(t=>t.type?t.type:t.field?.includes("date")||t.field?.includes("Date")?"date":t.field?.includes("price")||t.field?.includes("salary")||t.field?.includes("amount")?"number":t.field?.includes("email")?"email":"text")(a):"text",o=(t=>{const e=[{value:"equals",label:"Equals"},{value:"notEquals",label:"Not Equals"}];return"number"===t||"date"===t?[...e,{value:"greaterThan",label:"Greater Than"},{value:"lessThan",label:"Less Than"},{value:"between",label:"Between"}]:"text"===t||"email"===t||"url"===t?[...e,{value:"contains",label:"Contains"},{value:"notContains",label:"Not Contains"},{value:"startsWith",label:"Starts With"},{value:"endsWith",label:"Ends With"}]:e})(i);return r("div",{class:"filter-panel"},r("div",{class:"filter-panel-header"},r("h4",null,r("ui-icon",{name:"filter",library:"lucide",size:"1.1em"})," Advanced Filters"),r("ui-button",{variant:"ghost",size:"sm",icon:"x",iconLibrary:"lucide",iconSize:"1.1em",onClick:()=>this.showFilterPanel=!1})),r("div",{class:"filter-panel-body"},r("div",{class:"filter-builder"},r("div",{class:"filter-row"},r("select",{class:"filter-field-select",onChange:t=>{this.filterPanelField=t.target.value,this.filterPanelValue=""}},r("option",{value:"",selected:""===this.filterPanelField},"Select Column..."),e.map((t=>r("option",{value:t.id,selected:this.filterPanelField===t.id},t.label)))),r("select",{class:"filter-operator-select",onChange:t=>this.filterPanelOperator=t.target.value,disabled:!this.filterPanelField},o.map((t=>r("option",{value:t.value,selected:this.filterPanelOperator===t.value},t.label)))),r("ui-input",{type:"number"===i?"number":"date"===i?"date":"text",customClass:"filter-value-input",value:this.filterPanelValue,onInputChange:t=>this.filterPanelValue=t.detail,placeholder:"Filter value...",disabled:!this.filterPanelField,size:"sm",variant:"outlined"}),r("ui-button",{variant:"ghost",size:"sm",icon:"plus",iconLibrary:"lucide",iconSize:"1.2em",label:"Add",onClick:()=>{this.filterPanelField&&this.filterPanelValue&&(this.addFilter(this.filterPanelField,this.filterPanelOperator,this.filterPanelValue),this.filterPanelField="",this.filterPanelValue="")},disabled:!this.filterPanelField||!this.filterPanelValue}))),r("div",{class:"active-filters"},r("div",{class:"active-filters-header"},r("span",null,"Active Filters (",Array.from(this.activeFilters.values()).flat().length,")"),this.activeFilters.size>0&&r("ui-button",{variant:"ghost",size:"sm",label:"Clear All",onClick:()=>this.clearAllFilters()})),r("div",{class:"filter-chips"},Array.from(this.activeFilters.entries()).map((([e,a])=>{const i=t.find((t=>t.id===e));return a.map(((t,a)=>r("div",{class:"filter-chip"},r("span",{class:"filter-chip-label"},r("strong",null,i?.label||e)," ",t.operator,' "',t.value,'"'),r("ui-button",{variant:"ghost",size:"sm",class:"filter-chip-remove",icon:"x",iconLibrary:"lucide",iconSize:"14px",onClick:()=>this.removeFilter(e,a)}))))})),0===this.activeFilters.size&&r("div",{class:"no-filters"},"No active filters")))))}renderColumnSettings(){if(!this.showColumnSettings)return null;const t=this.flattenColumns(this.parseColumns());return r("div",{class:"column-settings-dialog"},r("div",{class:"dialog-overlay",onClick:()=>this.showColumnSettings=!1}),r("div",{class:"dialog-content"},r("div",{class:"dialog-header"},r("h3",null,"Column Settings"),r("ui-button",{variant:"ghost",size:"sm",icon:"x",iconLibrary:"lucide",iconSize:"1.2em",onClick:()=>this.showColumnSettings=!1})),r("div",{class:"dialog-body"},r("div",{class:"column-list"},t.map((t=>r("label",{class:"column-item"},r("ui-checkbox",{checked:this.state.visibleColumns.has(t.id),onCheckboxChange:()=>this.toggleColumnVisibility(t.id),label:t.label,size:"sm"})))))),r("div",{class:"dialog-footer"},r("ui-button",{variant:"primary",label:"Done",onClick:()=>this.showColumnSettings=!1}))))}renderExportDialog(){return this.showExportDialog?r("div",{class:"export-dialog"},r("div",{class:"dialog-overlay",onClick:()=>this.showExportDialog=!1}),r("div",{class:"dialog-content"},r("div",{class:"dialog-header"},r("h3",null,"Export Data"),r("ui-button",{variant:"ghost",size:"sm",icon:"x",iconLibrary:"lucide",iconSize:"1.2em",onClick:()=>this.showExportDialog=!1})),r("div",{class:"dialog-body"},r("div",{class:"export-options"},r("ui-button",{variant:"ghost",fullWidth:!0,icon:"file-text",iconLibrary:"lucide",iconSize:"1.2em",label:"Export as CSV",onClick:()=>this.exportData({format:"csv",visibleColumnsOnly:!0})}),r("ui-button",{variant:"ghost",fullWidth:!0,icon:"clipboard",iconLibrary:"lucide",iconSize:"1.2em",label:"Export as JSON",onClick:()=>this.exportData({format:"json",visibleColumnsOnly:!0})}),this.pdfExport&&r("ui-button",{variant:"ghost",fullWidth:!0,icon:"book",iconLibrary:"lucide",iconSize:"1.2em",label:"Export as PDF",onClick:()=>this.exportToPDF()}),this.state.selectedRows.size>0&&r("ui-button",{variant:"ghost",fullWidth:!0,icon:"check-circle",iconLibrary:"lucide",iconSize:"1.2em",label:`Export Selected Only (${this.state.selectedRows.size} rows)`,onClick:()=>this.exportData({format:"csv",selectedOnly:!0})}))))):null}getHostStyles(){const t={};return this.headerBackground&&(t["--table-header-bg"]=this.headerBackground),this.stripedColor&&(t["--table-striped-bg"]=this.stripedColor),this.stripedColorDark&&(t["--table-striped-bg-dark"]=this.stripedColorDark),t}render(){const t=this.getProcessedData(),e=this.getVisibleColumns();let a=t,i=0,o=0;if(this.virtualScroll){const{start:e,end:r}=this.state.virtualVisibleRange,n=Math.max(0,e),s=Math.min(t.length,r);a=t.slice(n,s),i=n*this.virtualRowHeight,o=(t.length-s)*this.virtualRowHeight}return this.mobileCardView&&this.isMobileView?r("div",{class:{"data-table-container":!0,"mobile-view":!0,["advanced-table-"+this.variant]:!0,["table-color-"+this.color]:!0,"dark-mode":"dark"===this.theme,[this.rowHeight]:!!this.rowHeight},style:this.getHostStyles()},this.renderToolbar(),this.renderMobileCards(a),this.renderPagination(),this.renderFilterPanel(),this.renderColumnSettings(),this.renderExportDialog(),this.renderKeyboardShortcutsModal(),this.renderContextMenu()):r("div",{class:{"data-table-container":!0,["advanced-table-"+this.variant]:!0,["table-color-"+this.color]:!0,"dark-mode":"dark"===this.theme,[this.rowHeight]:!!this.rowHeight},style:this.getHostStyles()},this.renderToolbar(),r("div",{class:{"table-wrapper":!0,"virtual-scroll":this.virtualScroll},onScroll:this.virtualScroll?this.handleVirtualScroll:void 0},r("table",{class:{"data-table":!0,"sticky-header":this.stickyHeader,striped:this.striped,hoverable:this.hoverable,bordered:this.bordered},role:"table","aria-label":"Data table"},r("thead",null,this.renderTableHeaders()),r("tbody",null,this.loading&&this.showSkeleton&&this.renderSkeletonRows(e),this.loading&&!this.showSkeleton&&r("tr",null,r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0)+(this.rowDetails?1:0),class:"loading-cell"},r("div",{class:"loading-container"},r("ui-loader",{type:"spinner",size:"2em",color:"primary"}),r("span",null,"Loading...")))),!this.loading&&0===t.length&&r("tr",null,r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0)+(this.rowDetails?1:0),class:"empty-cell"},this.emptyMessage)),i>0&&r("tr",{style:{height:i+"px"},role:"presentation"},r("td",{colSpan:e.length+(this.selectable?1:0)+(this.showActions?1:0),style:{padding:"0",border:"none"}})),!this.loading&&a.length>0&&this.state.groupBy&&this.renderGroupedRows(a,e),!this.loading&&a.length>0&&!this.state.groupBy&&a.map(((t,a)=>[r("tr",{class:{selected:this.state.selectedRows.has(t.id),"pinned-row-top":this.pinnedRows.top.includes(t.id),"pinned-row-bottom":this.pinnedRows.bottom.includes(t.id)},key:t.id,role:"row",onContextMenu:e=>this.handleContextMenu(e,"row",t),"data-row-id":t.id},this.selectable&&r("td",{class:"select-column",role:"cell"},r("ui-checkbox",{checked:this.state.selectedRows.has(t.id),onCheckboxChange:e=>this.handleRowSelect(t.id,e),ariaLabel:"Select row "+(a+1),size:"sm"})),e.map((e=>r("td",{key:e.id,class:{"sticky-column":!!e.sticky,"range-selection-cell":!0,"focused-cell":this.state.focusedCell?.rowId===t.id&&this.state.focusedCell?.field===e.field,"pinned-left":this.pinnedColumns.left.includes(e.id),"pinned-right":this.pinnedColumns.right.includes(e.id)},style:{textAlign:e.align||"left",left:this.pinnedColumns.left.includes(e.id)?this.getPinnedOffset(e.id,"left"):void 0,right:this.pinnedColumns.right.includes(e.id)?this.getPinnedOffset(e.id,"right"):void 0,...this.getConditionalFormattingStyle(t[e.field],e)},role:"cell",onClick:a=>this.handleCellClick(t.id,e.field,a),onContextMenu:a=>this.handleContextMenu(a,"cell",{rowId:t.id,field:e.field,value:t[e.field]}),"data-row-id":t.id,"data-field":e.field,tabIndex:0,onFocus:()=>this.setFocusedCell(t.id,e.field)},this.renderCell(t,e),this.renderValidationError(t.id,e.field)))),this.showActions&&r("td",{class:"actions-column",role:"cell"},this.renderRowActions(t)),this.rowDetails&&r("td",{class:"row-details-toggle-cell",role:"cell"},r("ui-button",{variant:"ghost",size:"sm",icon:this.expandedRowDetails.has(t.id)?"chevron-down":"chevron-right",iconLibrary:"lucide",iconSize:"16px",ariaLabel:"Toggle row details",onClick:()=>this.toggleRowDetails(t.id)}))),this.renderRowDetailsPanel(t)])),o>0&&r("tr",{style:{height:o+"px"},role:"presentation"},r("td",{colSpan:100,style:{padding:"0",border:"none"}}))),this.columnAggregation&&this.renderAggregationFooter()),this.renderLazyLoadSentinel()),this.renderPagination(),this.renderFilterPanel(),this.renderColumnSettings(),this.renderExportDialog(),this.renderKeyboardShortcutsModal(),this.renderContextMenu())}static get watchers(){return{data:[{onDataOrColumnsChange:0}],columns:[{onDataOrColumnsChange:0}],pageSize:[{onPageSizeChange:0}],groupBy:[{onGroupByChange:0}],theme:[{onThemeChange:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host([color=primary]),.table-color-primary{--table-primary:var(--color-primary-hover, #2563eb);--table-primary-rgb:var(--color-primary-rgb)}:host([color=secondary]),.table-color-secondary{--table-primary:var(--color-primary, #64748b);--table-primary-rgb:var(--color-primary-rgb)}:host([color=success]),.table-color-success{--table-primary:var(--color-success, #10b981);--table-primary-rgb:var(--color-success-rgb)}:host([color=danger]),.table-color-danger{--table-primary:var(--color-danger, #ef4444);--table-primary-rgb:var(--color-danger-rgb)}:host([color=warning]),.table-color-warning{--table-primary:var(--color-warning, #f59e0b);--table-primary-rgb:var(--color-warning-rgb)}:host([color=info]),.table-color-info{--table-primary:var(--color-primary, #0ea5e9);--table-primary-rgb:var(--color-info-rgb)}:host{display:block;font-family:"Inter", -apple-system, sans-serif;--table-bg:var(--bg-primary, #ffffff);--table-header-bg:var(--bg-primary, #f8fafc);--table-border:var(--border-subtle, #f1f5f9);--table-text:var(--text-primary, #1e293b);--table-text-secondary:var(--text-secondary, #64748b);--table-text-secondary-rgb:100, 116, 139;--table-hover:var(--bg-primary, #f1f5f9);--table-primary:var(--color-primary-hover, #2563eb);--table-primary-rgb:var(--color-primary-rgb, 37, 99, 235);--table-selected:rgba(var(--table-primary-rgb), 0.1);--table-shadow:rgba(0, 0, 0, 0.05);--table-striped-bg:rgba(0, 0, 0, 0.02);--table-striped-bg-dark:rgba(255, 255, 255, 0.02)}.data-table-container{background:var(--table-bg);border-radius:8px;box-shadow:0 1px 3px var(--table-shadow);overflow:hidden}.data-table-container.dark-mode,:host-context(.theme-dark) .data-table-container,:host-context(.dark) .data-table-container{--table-bg:var(--bg-secondary, #0f172a);--table-header-bg:var(--bg-primary, #1e293b);--table-border:rgba(255, 255, 255, 0.05);--table-text:var(--text-primary, #f8fafc);--table-text-secondary:var(--text-secondary, #94a3b8);--table-hover:rgba(255, 255, 255, 0.03);--table-selected:rgba(var(--table-primary-rgb), 0.1);--table-shadow:rgba(0, 0, 0, 0.4)}:host-context(.theme-light) .data-table-container,:host-context(.light) .data-table-container{--table-bg:var(--bg-primary, #ffffff);--table-header-bg:var(--bg-primary, #f8fafc);--table-border:var(--border-subtle, #f1f5f9);--table-text:var(--text-primary, #1e293b);--table-text-secondary:var(--text-secondary, #64748b);--table-hover:var(--bg-primary, #f1f5f9);--table-selected:rgba(var(--table-primary-rgb), 0.1);--table-shadow:rgba(0, 0, 0, 0.05)}.advanced-table-glass{background:transparent !important;box-shadow:none !important}.advanced-table-glass .table-toolbar{background:rgba(255, 255, 255, 0.03);backdrop-filter:blur(12px) saturate(160%);border-color:rgba(255, 255, 255, 0.08)}.advanced-table-glass .data-table thead{background:rgba(255, 255, 255, 0.05);backdrop-filter:blur(8px)}.advanced-table-glass .data-table tbody tr{background:transparent}.advanced-table-glass .data-table tbody tr:hover{background:rgba(255, 255, 255, 0.04)}.advanced-table-glass.dark-mode .table-toolbar{background:rgba(0, 0, 0, 0.2)}.advanced-table-glass.dark-mode .data-table thead{background:rgba(0, 0, 0, 0.3)}.advanced-table-raised{box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);border:1px solid rgba(0, 0, 0, 0.05)}.advanced-table-raised .data-table thead{background:linear-gradient(to bottom, var(--bg-primary, #f8fafc), var(--bg-secondary, #f1f5f9))}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--table-header-bg);border-bottom:1px solid var(--table-border);gap:16px;flex-wrap:wrap;transition:all cubic-bezier(0.4, 0, 0.2, 1)}.toolbar-left,.toolbar-right{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-box{position:relative;min-width:250px}.search-box input{width:100%;padding:8px 36px 8px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);transition:all 0.2s}.search-box input:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.search-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:0.5}.toolbar-btn{padding:8px 16px;background:var(--table-bg);color:var(--table-text);border:1px solid var(--table-border);border-radius:6px;font-size:14px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:6px}.toolbar-btn:hover{background:var(--table-hover);border-color:var(--table-primary)}.toolbar-btn:active{transform:scale(0.98)}.table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh;position:relative}.table-wrapper::-webkit-scrollbar{width:8px;height:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--table-header-bg)}.table-wrapper::-webkit-scrollbar-thumb{background:var(--table-border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--table-text-secondary)}.data-table{width:100%;border-collapse:collapse;color:var(--table-text);font-size:13.5px;letter-spacing:-0.01em}.data-table.bordered{border:1px solid var(--table-border);border-radius:8px}.data-table thead{background:var(--table-header-bg);position:relative;z-index:10}.data-table.sticky-header thead{position:sticky;top:0;z-index:20}.data-table th{padding:14px 20px;text-align:left;font-weight:600;white-space:nowrap;background:var(--table-header-bg);color:var(--table-text-secondary);border-bottom:2px solid var(--table-border);user-select:none;text-transform:uppercase;font-size:11px;letter-spacing:0.05em;transition:background cubic-bezier(0.4, 0, 0.2, 1), color cubic-bezier(0.4, 0, 0.2, 1)}.data-table th.sticky-column{position:sticky;left:0;z-index:30;box-shadow:2px 0 4px var(--table-shadow)}.data-table th.sortable{cursor:pointer;transition:background 0.2s}.data-table th.sortable:hover{background:var(--table-hover)}.column-header-content{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}.drag-handle{cursor:grab;padding:0 4px;margin-right:4px;color:var(--table-text-secondary);font-size:14px;line-height:1;opacity:0.6;transition:all 0.2s;user-select:none;letter-spacing:-2px}.drag-handle:hover{opacity:1;color:var(--table-primary)}.drag-handle:active{cursor:grabbing}.column-label{flex:1;cursor:pointer;user-select:none}.data-table th.sortable .column-label:hover{color:var(--table-primary)}.column-header-content span:first-child{flex:1}.sort-icon{font-size:12px;opacity:0.5;transition:opacity 0.2s}.data-table th.sorted .sort-icon{opacity:1;color:var(--table-primary)}.column-filter{margin-top:8px}.column-filter input{width:100%;padding:4px 8px;border:1px solid var(--table-border);border-radius:4px;font-size:12px;background:var(--table-bg);color:var(--table-text)}.column-filter input:focus{outline:none;border-color:var(--table-primary)}.column-group{border-bottom:1px solid var(--table-border);background:var(--table-header-bg);font-weight:700}.resize-handle{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;user-select:none;background:transparent;transition:background 0.2s;z-index:10}.resize-handle:hover{background:var(--table-primary)}.resize-handle::before{content:"";position:absolute;top:0;bottom:0;left:-2px;right:-2px;}.data-table th.resizing{user-select:none;cursor:col-resize}.data-table th.resizing .resize-handle{background:var(--table-primary)}.data-table tbody tr{transition:background cubic-bezier(0.4, 0, 0.2, 1);border-bottom:1px solid var(--table-border)}.data-table.hoverable tbody tr:hover{background:var(--table-hover);box-shadow:inset 4px 0 0 var(--table-primary)}.data-table.striped tbody tr:nth-child(even){background:var(--table-striped-bg)}.data-table-container.dark-mode .data-table.striped tbody tr:nth-child(even){background:var(--table-striped-bg-dark)}.data-table tbody tr.selected{background:var(--table-selected) !important}.data-table td{padding:14px 20px;color:var(--table-text);transition:color cubic-bezier(0.4, 0, 0.2, 1)}.data-table.compact td,.data-table.compact th{padding:6px 12px}.data-table.comfortable td,.data-table.comfortable th{padding:16px 20px}.data-table td.sticky-column{position:sticky;left:0;background:var(--table-bg);z-index:15;box-shadow:2px 0 4px var(--table-shadow)}.data-table tbody tr:hover td.sticky-column{background:var(--table-hover)}.data-table tbody tr.selected td.sticky-column{background:var(--table-selected)}.select-column{width:48px;text-align:center !important;padding:8px !important}.select-column input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--table-primary)}.actions-column{width:60px;text-align:center !important;padding:8px !important;position:relative}.row-actions-container{position:relative;display:inline-block}.row-actions-trigger{background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;color:var(--table-text-secondary);font-size:18px;line-height:1;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center}.row-actions-trigger:hover{background:var(--table-hover);color:var(--table-text)}.row-actions-trigger:active{background:var(--table-border)}.action-dots{font-weight:bold;letter-spacing:-2px}.row-actions-menu{position:absolute;top:100%;right:0;background:var(--table-bg);border:1px solid var(--table-border);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);min-width:140px;z-index:1000;margin-top:4px;overflow:hidden;animation:fadeInMenu 0.15s ease-out}@keyframes fadeInMenu{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.row-action-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:transparent;border:none;text-align:left;cursor:pointer;color:var(--table-text);font-size:14px;transition:background 0.15s ease;border-bottom:1px solid var(--table-border)}.row-action-item:last-child{border-bottom:none}.row-action-item:hover{background:var(--table-hover)}.row-action-item:active{background:var(--table-border)}.action-icon{font-size:16px;width:20px;display:flex;align-items:center;justify-content:center}.action-label{flex:1}.grouping-selector{display:flex;align-items:center;gap:8px;margin-left:16px}.grouping-selector label{font-size:14px;font-weight:500;color:var(--table-text);white-space:nowrap}.grouping-selector select{padding:8px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);cursor:pointer;min-width:150px;transition:all 0.2s}.grouping-selector select:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.grouping-selector select:hover{border-color:var(--table-primary)}.group-header-row{background:var(--table-header-bg);border-top:2px solid var(--table-border);border-bottom:2px solid var(--table-border);transition:background 0.2s}.group-header-row:hover{background:var(--table-hover)}.group-header-cell{cursor:pointer;user-select:none;font-weight:600;padding:12px 16px !important;outline:none}.group-header-cell:focus{outline:2px solid var(--table-primary);outline-offset:-2px}.group-header-content{display:flex;align-items:center;gap:10px}.group-expand-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:12px;color:var(--table-primary);transition:transform 0.2s ease}.group-header-row[aria-expanded=true] .group-expand-icon{transform:rotate(0deg)}.group-header-row[aria-expanded=false] .group-expand-icon{transform:rotate(-90deg)}.group-label{font-size:15px;color:var(--table-text);font-weight:600}.group-count{font-size:13px;color:var(--table-text-secondary);font-weight:normal;margin-left:4px}.group-data-row{animation:fadeIn 0.2s ease-in-out}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.group-data-row td{padding-left:48px !important;border-left:3px solid transparent;transition:all 0.2s}.group-data-row td:first-child{border-left:3px solid var(--table-border)}.group-data-row.selected{background:var(--table-selected)}.group-data-row.selected td:first-child{border-left-color:var(--table-primary)}.group-data-row:hover{background:var(--table-hover)}.group-data-row:hover td:first-child{border-left-color:var(--table-primary)}.editable-cell{cursor:pointer;padding:4px;border-radius:4px;transition:background 0.15s}.editable-cell:hover{background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.data-table td input,.data-table td select{width:100%;padding:6px 8px;border:2px solid var(--table-primary);border-radius:4px;font-size:14px;background:var(--table-bg);color:var(--table-text)}.data-table td input:focus,.data-table td select:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.loading-cell,.empty-cell{text-align:center !important;padding:48px 16px !important;color:var(--table-text-secondary)}.loading-cell{display:flex;flex-direction:column;align-items:center;gap:12px}.loading-spinner{width:48px;height:48px;border:3px solid rgba(var(--table-primary-rgb), 0.1);border-top-color:var(--table-primary);border-radius:50%;animation:spin 0.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;box-shadow:0 0 20px rgba(var(--table-primary-rgb), 0.15)}.skeleton-row td{padding:14px 20px}.skeleton-content,.skeleton-checkbox{height:16px;width:100%;background:linear-gradient(90deg, rgba(var(--table-text-secondary-rgb), 0.05) 25%, rgba(var(--table-text-secondary-rgb), 0.15) 37%, rgba(var(--table-text-secondary-rgb), 0.05) 63%);background-size:400% 100%;animation:skeleton-shimmer 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;border-radius:4px}.skeleton-checkbox{width:18px;height:18px;margin:0 auto}@keyframes skeleton-shimmer{0%{background-position:100% 50%}100%{background-position:0% 50%}}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--table-header-bg);border-top:1px solid var(--table-border);gap:16px;flex-wrap:wrap}.pagination-info{color:var(--table-text-secondary);font-size:14px}.pagination-controls{display:flex;gap:4px;align-items:center}.page-btn{min-width:36px;height:36px;padding:8px 12px;background:var(--table-bg);color:var(--table-text);border:1px solid var(--table-border);border-radius:6px;font-size:14px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center}.page-btn:hover:not(:disabled){background:var(--table-hover);border-color:var(--table-primary)}.page-btn:disabled{opacity:0.4;cursor:not-allowed}.page-btn.active{background:var(--table-primary);color:var(--text-standard, #ffffff);border-color:var(--table-primary)}.page-size-selector{display:flex;align-items:center;gap:8px}.page-size-selector label{display:flex;align-items:center;gap:8px;color:var(--table-text-secondary);font-size:14px}.page-size-selector select{padding:6px 32px 6px 12px;border:1px solid var(--table-border);border-radius:6px;background:var(--table-bg);color:var(--table-text);font-size:14px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'0 0 12 12\'%3E%3Cpath fill=\'%236b7280\' d=\'M6 9L1 4h10z\'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.page-size-selector select:focus{outline:none;border-color:var(--table-primary)}.column-settings-dialog,.export-dialog{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center}.dialog-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);backdrop-filter:blur(4px)}.dialog-content{position:relative;background:var(--table-bg);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column;animation:dialogSlideIn 0.2s ease-out}@keyframes dialogSlideIn{from{opacity:0;transform:scale(0.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--table-border)}.dialog-header h3{margin:0;font-size:18px;font-weight:600;color:var(--table-text)}.close-btn{width:32px;height:32px;padding:0;background:transparent;border:none;color:var(--table-text-secondary);font-size:24px;cursor:pointer;border-radius:6px;transition:all 0.2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--table-hover);color:var(--table-text)}.dialog-body{padding:20px;overflow-y:auto;flex:1}.dialog-footer{padding:16px 20px;border-top:1px solid var(--table-border);display:flex;justify-content:flex-end;gap:12px}.dialog-footer button{padding:10px 20px;background:var(--table-primary);color:var(--text-standard, #ffffff);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all 0.2s}.dialog-footer button:hover{background:var(--table-primary-hover)}.column-list{display:flex;flex-direction:column;gap:8px}.column-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--table-header-bg);border-radius:6px;cursor:pointer;transition:background 0.2s}.column-item:hover{background:var(--table-hover)}.column-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--table-primary)}.column-item span{flex:1;color:var(--table-text);font-size:14px}.export-options{display:flex;flex-direction:column;gap:12px}.export-btn{padding:16px;background:var(--table-bg);color:var(--table-text);border:2px solid var(--table-border);border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:12px}.export-btn:hover{background:var(--table-hover);border-color:var(--table-primary);transform:translateX(4px)}@media (max-width: 768px){.table-toolbar{flex-direction:column;align-items:stretch}.toolbar-left,.toolbar-right{width:100%;justify-content:space-between}.search-box{min-width:100%}.pagination-container{flex-direction:column;align-items:stretch;gap:12px}.pagination-info,.pagination-controls,.page-size-selector{justify-content:center}.table-wrapper{max-height:60vh}.data-table{font-size:13px}.data-table th,.data-table td{padding:8px 12px}}@media (max-width: 480px){.data-table{font-size:12px}.data-table th,.data-table td{padding:6px 8px}.toolbar-btn{font-size:13px;padding:6px 12px}.pagination-controls .page-btn{min-width:32px;height:32px;padding:4px 8px;font-size:13px}}.data-table:focus-within{outline:2px solid var(--table-primary);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--table-primary);outline-offset:2px}.data-table-container *{box-sizing:border-box}.data-table tbody tr{contain:layout style}.data-table th[draggable=true]{cursor:move}.data-table th[draggable=true]:active{opacity:0.5}.skeleton-row{animation:pulse 1.5s ease-in-out infinite}.skeleton-cell{padding:12px 16px}.skeleton-content{height:16px;background:linear-gradient(90deg, var(--table-border) 25%, var(--table-hover) 50%, var(--table-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-checkbox{width:16px;height:16px;background:linear-gradient(90deg, var(--table-border) 25%, var(--table-hover) 50%, var(--table-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:3px;margin:0 auto}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.7}}.cell-input{width:100%;padding:6px 8px;border:1px solid var(--table-border);border-radius:4px;background:var(--table-bg);color:var(--table-text);font-size:14px}.cell-input:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.cell-select{width:100%;padding:6px 8px;border:1px solid var(--table-border);border-radius:4px;background:var(--table-bg);color:var(--table-text);font-size:14px;cursor:pointer}.cell-radio-group{display:flex;flex-direction:column;gap:6px}.radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.radio-label input[type=radio]{cursor:pointer}.cell-checkbox{width:18px;height:18px;cursor:pointer}.cell-switch{position:relative;display:inline-block;width:44px;height:24px}.cell-switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-secondary, #ccc);transition:0.3s;border-radius:24px}.switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--bg-primary, #ffffff);transition:0.3s;border-radius:50%}.cell-switch input:checked+.switch-slider{background-color:var(--table-primary)}.cell-switch input:checked+.switch-slider:before{transform:translateX(20px)}.cell-rating{display:flex;gap:4px;font-size:18px}.cell-rating .star{cursor:pointer;color:var(--bg-secondary, #d1d5db);transition:color 0.2s}.cell-rating .star.filled{color:var(--color-danger, #fbbf24)}.cell-rating .star:hover{color:var(--color-danger, #fcd34d)}.cell-rating-display{display:flex;gap:2px;font-size:16px}.cell-rating-display .star{color:var(--bg-secondary, #d1d5db)}.cell-rating-display .star.filled{color:var(--color-danger, #fbbf24)}.cell-boolean{font-size:18px;font-weight:bold}.cell-switch-display{display:inline-block}.switch-indicator{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--bg-primary, #e5e7eb);color:var(--text-muted, #6b7280);text-transform:uppercase}.switch-indicator.active{background:var(--table-primary);color:var(--text-standard, #ffffff)}.cell-image{display:block;object-fit:cover}.cell-password{letter-spacing:2px;font-family:monospace}.cell-link{color:var(--table-primary);text-decoration:none;transition:color 0.2s}.cell-link:hover{color:var(--table-primary-hover);text-decoration:underline}.column-group{background:var(--table-header-bg);font-weight:600;border-bottom:2px solid var(--table-border)}.data-table thead tr:has(.column-group)+tr th{border-top:1px solid var(--table-border)}.filter-panel{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);background:var(--table-bg);border:1px solid var(--table-border);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.1);min-width:600px;max-width:90vw;max-height:80vh;z-index:1000;display:flex;flex-direction:column;animation:slideIn 0.2s ease-out}@keyframes slideIn{from{opacity:0;transform:translate(-50%, -45%)}to{opacity:1;transform:translate(-50%, -50%)}}.filter-panel::before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);backdrop-filter:blur(4px);z-index:-1}.filter-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--table-border)}.filter-panel-header h4{margin:0;font-size:18px;font-weight:600;color:var(--table-text);display:flex;align-items:center;gap:8px}.filter-panel-header .close-btn{background:transparent;border:none;font-size:28px;line-height:1;cursor:pointer;color:var(--table-text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all 0.2s}.filter-panel-header .close-btn:hover{background:var(--table-hover);color:var(--table-text)}.filter-panel-body{padding:24px;overflow-y:auto;flex:1}.filter-builder{margin-bottom:24px}.filter-row{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;gap:12px;align-items:center}.filter-field-select,.filter-operator-select{padding:10px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);cursor:pointer;transition:all 0.2s}.filter-field-select:focus,.filter-operator-select:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.filter-field-select:hover,.filter-operator-select:hover{border-color:var(--table-primary)}.filter-field-select:disabled,.filter-operator-select:disabled{opacity:0.5;cursor:not-allowed}.filter-value-input{padding:10px 12px;border:1px solid var(--table-border);border-radius:6px;font-size:14px;background:var(--table-bg);color:var(--table-text);transition:all 0.2s}.filter-value-input:focus{outline:none;border-color:var(--table-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.filter-value-input:disabled{opacity:0.5;cursor:not-allowed;background:var(--table-header-bg)}.add-filter-btn{padding:10px 20px;background:var(--table-primary);color:var(--text-standard, #ffffff);border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.2s;white-space:nowrap}.add-filter-btn:hover:not(:disabled){background:var(--table-primary-hover);transform:translateY(-1px);box-shadow:0 4px 6px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2)}.add-filter-btn:active:not(:disabled){transform:translateY(0)}.add-filter-btn:disabled{opacity:0.5;cursor:not-allowed}.active-filters{border-top:1px solid var(--table-border);padding-top:20px}.active-filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.active-filters-header span{font-size:14px;font-weight:600;color:var(--table-text)}.clear-all-btn{padding:6px 12px;background:transparent;color:var(--color-danger, #ef4444);border:1px solid var(--color-danger, #ef4444);border-radius:6px;font-size:13px;cursor:pointer;transition:all 0.2s}.clear-all-btn:hover{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff)}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--table-selected);border:1px solid var(--table-primary);border-radius:20px;font-size:13px;color:var(--table-text);animation:chipSlideIn 0.2s ease-out}@keyframes chipSlideIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.filter-chip-label{display:flex;align-items:center;gap:4px}.filter-chip-label strong{color:var(--table-primary)}.filter-chip-remove{background:transparent;border:none;color:var(--table-text-secondary);font-size:20px;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s}.filter-chip-remove:hover{background:rgba(var(--color-danger-rgb, 239, 68, 68), 0.1);color:var(--color-danger, #ef4444)}.no-filters{text-align:center;padding:32px;color:var(--table-text-secondary);font-size:14px}.pinned-row-top{position:sticky !important;top:0;z-index:25;background:var(--table-bg);box-shadow:0 2px 4px rgba(0, 0, 0, 0.1)}.pinned-row-bottom{position:sticky !important;bottom:0;z-index:25;background:var(--table-bg);box-shadow:0 -2px 4px rgba(0, 0, 0, 0.1)}.pinned-row-top::before,.pinned-row-bottom::before{content:"";position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--color-primary, #10b981), var(--color-primary, #8b5cf6));opacity:0.6}.pinned-row-top::before{top:0}.pinned-row-bottom::before{bottom:0}.pinned-row-top:hover,.pinned-row-bottom:hover{background:var(--table-hover)}.sort-icon.multi-sort{position:relative;display:inline-flex;align-items:center;gap:4px}.sort-order-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-radius:50%;font-size:11px;font-weight:600;line-height:1}.aggregation-footer{background:var(--bg-primary, #f9fafb);border-top:2px solid var(--border-default, #e5e7eb);font-weight:600}.aggregation-cell{padding:12px}.aggregation-values{display:flex;gap:16px;flex-wrap:wrap}.agg-item{display:flex;gap:6px;align-items:center}.agg-label{color:var(--text-muted, #6b7280);font-size:12px;text-transform:uppercase}.agg-value{color:var(--text-primary, #111827);font-size:14px;font-weight:700}.row-details-row{background:var(--bg-primary, #f9fafb)}.row-details-panel{padding:20px;border:1px solid var(--border-default, #e5e7eb);border-radius:8px;margin:8px}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--border-default, #e5e7eb)}.details-header h4{margin:0;color:var(--text-primary, #111827);font-size:16px}.close-details-btn{background:none;border:none;font-size:24px;color:var(--text-muted, #6b7280);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px}.close-details-btn:hover{background:var(--bg-primary, #e5e7eb);color:var(--text-primary, #111827)}.details-content{display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:12px}.detail-item{display:flex;gap:8px;padding:8px;background:var(--bg-primary, #ffffff);border-radius:4px;border:1px solid var(--border-default, #e5e7eb)}.detail-label{color:var(--text-muted, #6b7280);font-size:13px;min-width:100px}.detail-value{color:var(--text-primary, #111827);font-size:13px;word-break:break-word}.keyboard-shortcuts-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:10000}.keyboard-shortcuts-modal .modal-content{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1);max-width:500px;width:90%;max-height:80vh;overflow:auto}.keyboard-shortcuts-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border-default, #e5e7eb)}.keyboard-shortcuts-modal .modal-header h3{margin:0;font-size:18px;color:var(--text-primary, #111827)}.keyboard-shortcuts-modal .modal-header button{background:none;border:none;font-size:24px;color:var(--text-muted, #6b7280);cursor:pointer;padding:0;width:30px;height:30px}.keyboard-shortcuts-modal .modal-body{padding:20px}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table tr{border-bottom:1px solid var(--border-default, #e5e7eb)}.shortcuts-table tr:last-child{border-bottom:none}.shortcuts-table td{padding:12px 8px}.shortcut-key{font-family:"Courier New", monospace;background:var(--bg-secondary, #f3f4f6);padding:4px 8px;border-radius:4px;font-size:13px;font-weight:600;color:var(--text-secondary, #374151);white-space:nowrap}.shortcut-desc{color:var(--text-muted, #6b7280);font-size:14px}.validation-error-tooltip{position:absolute;bottom:100%;left:0;background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff);padding:6px 10px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:100;margin-bottom:4px;display:flex;align-items:center;gap:6px;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1)}.validation-error-tooltip::after{content:"";position:absolute;top:100%;left:10px;border:5px solid transparent;border-top-color:var(--color-danger, #ef4444)}.error-icon{font-size:14px}.error-message{font-weight:500}td.has-validation-error{position:relative;border:2px solid var(--color-danger, #ef4444) !important;background:var(--bg-primary, #fef2f2)}.virtual-scroll-container{overflow-y:auto;position:relative;will-change:transform}.virtual-scroll-content{position:relative}.auto-size-btn{padding:4px 8px;font-size:12px;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-strong, #d1d5db);border-radius:4px;cursor:pointer;color:var(--text-secondary, #374151)}.auto-size-btn:hover{background:var(--bg-primary, #e5e7eb)}.premium-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:linear-gradient(135deg, var(--color-primary, #667eea) 0%, var(--color-primary, #764ba2) 100%);color:var(--text-standard, #ffffff);border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}@media (prefers-color-scheme: dark){.aggregation-footer{background:var(--bg-primary, #1f2937);border-top-color:var(--border-default, #374151)}.row-details-panel{background:var(--bg-primary, #1f2937);border-color:var(--border-default, #374151)}.keyboard-shortcuts-modal .modal-content{background:var(--bg-primary, #1f2937);color:var(--text-standard, #f3f4f6)}.detail-item{background:var(--bg-secondary, #111827);border-color:var(--border-default, #374151)}}.cell-editor{width:100%;padding:6px 8px;border:2px solid var(--color-primary, #10b981);border-radius:4px;font-size:14px;outline:none}.date-editor,.datetime-editor{cursor:pointer}.number-editor{text-align:right}.select-editor{cursor:pointer;background:var(--bg-primary, #ffffff)}.checkbox-editor{width:20px;height:20px;cursor:pointer}.formatted-currency{color:var(--color-success-hover, #059669);font-weight:600}.formatted-percentage{color:var(--color-primary, #7c3aed);font-weight:600}.formatted-date{color:var(--color-primary, #0284c7)}.cell-range-selected{background:var(--bg-primary, #dbeafe) !important;border:2px solid var(--color-primary, #10b981) !important}.range-selection-anchor{background:var(--color-primary, #bfdbfe) !important;border:2px dashed var(--color-primary, #10b981) !important}.copy-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:var(--color-success, #10b981);color:var(--text-standard, #ffffff);padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;z-index:1000;animation:fadeInOut 1s ease-in-out}@keyframes fadeInOut{0%,100%{opacity:0}50%{opacity:1}}.color-scale-cell{position:relative;color:var(--text-primary, #111827);font-weight:600}.data-bar-cell{position:relative;padding:8px}.data-bar-value{position:relative;z-index:1;font-weight:600}.icon-set{display:inline-flex;align-items:center;gap:6px}.icon-set-icon{font-size:16px}.icon-positive{color:var(--color-success, #10b981)}.icon-neutral{color:var(--color-warning, #f59e0b)}.icon-negative{color:var(--color-danger, #ef4444)}.cell-with-formatting{transition:all 0.2s ease}.cell-with-formatting:hover{transform:scale(1.02);box-shadow:0 2px 8px rgba(0, 0, 0, 0.1)}.cell-progress-bar{width:100%;height:24px;background:var(--bg-primary, #e5e7eb);border-radius:12px;overflow:hidden;position:relative}.cell-progress-fill{height:100%;background:linear-gradient(90deg, var(--color-primary, #10b981) 0%, var(--color-primary, #1d4ed8) 100%);transition:width 0.3s ease;display:flex;align-items:center;justify-content:center;color:var(--text-standard, #ffffff);font-size:12px;font-weight:600}.cell-editor:focus{border-color:var(--color-primary-hover, #2563eb);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.cell-editor-error{border-color:var(--color-danger, #ef4444)}.cell-editor-error:focus{box-shadow:0 0 0 3px rgba(var(--color-danger-rgb, 239, 68, 68), 0.1)}.bulk-actions-toolbar{position:sticky;top:0;z-index:100;background:var(--bg-secondary, #f3f4f6);border-bottom:2px solid var(--border-default, #e5e7eb);padding:12px 16px;display:flex;align-items:center;gap:12px;animation:slideDown 0.3s ease}@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.bulk-actions-count{font-weight:600;color:var(--text-secondary, #374151)}.bulk-action-btn{padding:6px 12px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-strong, #d1d5db);border-radius:6px;font-size:14px;cursor:pointer;transition:all 0.2s}.bulk-action-btn:hover{background:var(--bg-primary, #f9fafb);border-color:var(--color-primary, #9ca3af)}.bulk-action-btn.primary{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-color:var(--color-primary, #10b981)}.bulk-action-btn.primary:hover{background:var(--color-primary-hover, #2563eb)}.bulk-action-btn.danger{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff);border-color:var(--color-danger, #ef4444)}.bulk-action-btn.danger:hover{background:var(--color-danger-hover, #dc2626)}@media print{.data-table-container{box-shadow:none !important;border:none !important;overflow:visible !important;max-height:none !important}.table-wrapper{max-height:none !important;overflow:visible !important}.table-toolbar,.pagination-container,.filter-panel,.column-settings-dialog,.export-dialog,.keyboard-shortcuts-modal,.actions-column,.select-column,.row-details-toggle-cell,.bulk-actions-bar{display:none !important}.data-table{width:100% !important;border-collapse:collapse !important}.data-table th,.data-table td{color:var(--text-primary, #000) !important;border:1px solid var(--border-default, #ccc) !important;padding:8px !important}tr{break-inside:avoid;page-break-inside:avoid}}.context-menu{position:fixed;background:var(--table-bg);border:1px solid var(--table-border);box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1);border-radius:6px;padding:4px;min-width:160px;z-index:9999}.context-menu-item{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--table-text);font-size:14px;border-radius:4px}.context-menu-item:hover{background:var(--table-hover)}.mobile-cards-view{display:flex;flex-direction:column;gap:12px;padding:12px}.mobile-card{background:var(--table-bg);border:1px solid var(--table-border);border-radius:8px;padding:12px}.mobile-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--table-border);font-weight:600}.mobile-card .card-field{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px}.mobile-card .card-field label{color:var(--table-text-secondary);font-weight:500}.data-table td.focused-cell{box-shadow:inset 0 0 0 2px var(--table-primary) !important;background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.05);z-index:10}.data-table td:focus{outline:none}.data-table th.pinned-left,.data-table td.pinned-left{position:sticky;left:0;z-index:25;box-shadow:2px 0 4px var(--table-shadow)}.data-table th.pinned-right,.data-table td.pinned-right{position:sticky;right:0;z-index:25;box-shadow:-2px 0 4px var(--table-shadow)}.header-menu-trigger{background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--table-text-secondary);opacity:0;transition:all 0.2s;font-size:16px;line-height:1}.data-table th:hover .header-menu-trigger{opacity:1}.header-menu-trigger:hover{background:var(--table-hover);color:var(--table-text)}.context-menu.header-context-menu{min-width:200px}.context-menu-header{padding:8px 12px;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--table-text-secondary);border-bottom:1px solid var(--table-border);margin-bottom:4px}.context-menu ul{list-style:none;padding:0;margin:0}.context-menu li{padding:8px 12px;cursor:pointer;font-size:14px;transition:background 0.2s;position:relative}.context-menu li:hover{background:var(--table-hover)}.context-menu li.divider{height:1px;background:var(--table-border);padding:0;margin:4px 0;cursor:default}.context-menu li.has-submenu::after{content:"";font-size:10px;position:absolute;right:12px;opacity:0.5}.context-menu .submenu{position:absolute;left:100%;top:0;display:none;background:var(--table-bg);border:1px solid var(--table-border);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);min-width:140px;padding:4px}.context-menu li.has-submenu:hover>.submenu{display:block}.sr-announcer{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.data-table th.pinned-left,.data-table td.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent);border-right:2px solid rgba(var(--color-primary-rgb, 59, 130, 246), 0.3)}.data-table th.pinned-right,.data-table td.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent);border-left:2px solid rgba(var(--color-primary-rgb, 59, 130, 246), 0.3)}.data-table th.pinned-left::before,.data-table th.pinned-right::before{content:"";font-size:10px;opacity:0.6;margin-right:4px}.data-table th.pinned-left:hover,.data-table th.pinned-right:hover{background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.pin-indicator{font-size:12px;margin-right:4px;opacity:0.8;display:inline-block;animation:pinPulse 2s ease-in-out infinite}@keyframes pinPulse{0%,100%{opacity:0.8}50%{opacity:1}}.data-table th.pinned-left,.data-table td.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important;background-blend-mode:normal}.data-table th.pinned-right,.data-table td.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important;background-blend-mode:normal}.data-table th.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-header-bg) !important}.data-table td.pinned-left{background:linear-gradient(to right, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important}.data-table th.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-header-bg) !important}.data-table td.pinned-right{background:linear-gradient(to left, rgba(var(--color-primary-rgb, 59, 130, 246), 0.05), transparent), var(--table-bg) !important}.data-table-footer{background-color:var(--table-header-bg, #f8fafc);border-top:2px solid var(--border-subtle, #e2e8f0);font-weight:600;z-index:2}.data-table-container tfoot tr{position:sticky;bottom:0;background-color:var(--table-header-bg, #f8fafc);z-index:3;box-shadow:0 -1px 2px rgba(0, 0, 0, 0.05)}.data-table-footer td{padding:12px 16px;border-bottom:1px solid var(--border-subtle, #e2e8f0);background-color:inherit;vertical-align:top}.agg-item{display:flex;flex-direction:column;font-size:0.75rem;margin-bottom:4px}.agg-label{color:var(--text-muted, #64748b);text-transform:uppercase;font-size:0.65rem;margin-bottom:1px}.agg-value{color:var(--text-primary, #0f172a);font-weight:700;font-size:0.85rem}'}},[513,"ui-advanced-data-table",{config:[1],columns:[1],data:[1],selectable:[4],multiSelect:[4,"multi-select"],editable:[4],stickyHeader:[4,"sticky-header"],pagination:[4],pageSize:[2,"page-size"],pageSizeOptions:[1,"page-size-options"],paginationTheme:[1,"pagination-theme"],paginationShape:[1,"pagination-shape"],paginationKeyboardNav:[4,"pagination-keyboard-nav"],paginationQuickJump:[4,"pagination-quick-jump"],paginationQuickJumpStep:[2,"pagination-quick-jump-step"],paginationShowProgress:[4,"pagination-show-progress"],paginationSticky:[4,"pagination-sticky"],paginationStickyPosition:[1,"pagination-sticky-position"],paginationTransitions:[4,"pagination-transitions"],paginationUrlSync:[4,"pagination-url-sync"],paginationUrlParam:[1,"pagination-url-param"],paginationPersistPage:[4,"pagination-persist-page"],paginationStorageKey:[1,"pagination-storage-key"],paginationSwipeGestures:[4,"pagination-swipe-gestures"],paginationSmartCompact:[4,"pagination-smart-compact"],paginationSmartCompactThreshold:[2,"pagination-smart-compact-threshold"],paginationAutoHide:[4,"pagination-auto-hide"],paginationResponsive:[4,"pagination-responsive"],paginationMobileBreakpoint:[2,"pagination-mobile-breakpoint"],virtualScroll:[4,"virtual-scroll"],virtualRowHeight:[2,"virtual-row-height"],advancedFilters:[4,"advanced-filters"],columnAggregation:[4,"column-aggregation"],aggregationFunctions:[1,"aggregation-functions"],persistState:[4,"persist-state"],stateStorageKey:[1,"state-storage-key"],multiSort:[4,"multi-sort"],maxSortColumns:[2,"max-sort-columns"],autoSizeColumns:[4,"auto-size-columns"],rowDetails:[4,"row-details"],keyboardShortcuts:[4,"keyboard-shortcuts"],excelExport:[4,"excel-export"],inlineValidation:[4,"inline-validation"],validationRules:[8,"validation-rules"],advancedCellEditors:[4,"advanced-cell-editors"],columnFormatting:[4,"column-formatting"],rangeSelection:[4,"range-selection"],copyPaste:[4,"copy-paste"],conditionalFormatting:[4,"conditional-formatting"],formattingRules:[8,"formatting-rules"],contextMenu:[4,"context-menu"],mobileCardView:[4,"mobile-card-view"],lazyLoad:[4,"lazy-load"],pdfExport:[4,"pdf-export"],enableSparklines:[4,"enable-sparklines"],undoRedo:[4,"undo-redo"],printOptimized:[4,"print-optimized"],enhancedAccessibility:[4,"enhanced-accessibility"],advancedValidation:[4,"advanced-validation"],searchable:[4],sortable:[4],filterable:[4],columnReorder:[4,"column-reorder"],columnVisibility:[4,"column-visibility"],rowHeight:[1,"row-height"],striped:[4],stripedColor:[1,"striped-color"],stripedColorDark:[1,"striped-color-dark"],hoverable:[4],bordered:[4],loading:[4],showSkeleton:[4,"show-skeleton"],skeletonRows:[2,"skeleton-rows"],emptyMessage:[1,"empty-message"],serverSide:[4,"server-side"],totalRows:[2,"total-rows"],exportable:[4],theme:[1],variant:[1],color:[1],grouping:[4],groupBy:[1,"group-by"],expandGroupsByDefault:[4,"expand-groups-by-default"],showGroupCount:[4,"show-group-count"],columnGrouping:[4,"column-grouping"],showGroupingControls:[4,"show-grouping-controls"],treeData:[4,"tree-data"],showActions:[4,"show-actions"],customActions:[16],iconLibrary:[1,"icon-library"],columnPinning:[4,"column-pinning"],rowPinning:[4,"row-pinning"],rowSpanning:[4,"row-spanning"],rowReorder:[4,"row-reorder"],multiFilter:[4,"multi-filter"],showFilterPanel:[1028,"show-filter-panel"],showColumnPanel:[1028,"show-column-panel"],headerBackground:[1,"header-background"],state:[32],draggedColumn:[32],draggedRow:[32],showColumnSettings:[32],showExportDialog:[32],resizingColumn:[32],activeActionMenu:[32],pinnedColumns:[32],pinnedRows:[32],editingRow:[32],activeFilters:[32],filterPanelField:[32],filterPanelOperator:[32],filterPanelValue:[32],draggedColumnInPanel:[32],columnSearchQuery:[32],virtualScrollOffset:[32],virtualVisibleRange:[32],multiSortConfig:[32],columnAggregations:[32],expandedRowDetails:[32],validationErrors:[32],showKeyboardShortcutsHelp:[32],advancedFilterConfig:[32],rangeSelectionAnchor:[32],clipboardData:[32],formattingCache:[32],contextMenuState:[32],undoStack:[32],redoStack:[32],lazyLoadedRows:[32],isMobileView:[32],selectRow:[64],deselectRow:[64],selectAllRows:[64],deselectAllRows:[64],getSelectedRows:[64],exportData:[64],resetFilters:[64],resetSort:[64],goToPage:[64],refresh:[64],print:[64],handleColumnPin:[64],handleRowPin:[64]},void 0,{data:[{onDataOrColumnsChange:0}],columns:[{onDataOrColumnsChange:0}],pageSize:[{onPageSizeChange:0}],groupBy:[{onGroupByChange:0}],theme:[{onThemeChange:0}]}]),x=m,f=function(){"undefined"!=typeof customElements&&["ui-advanced-data-table","ui-badge","ui-button","ui-checkbox","ui-icon","ui-input","ui-loader","ui-pagination","ui-radio","ui-rating","ui-skeleton","ui-switch"].forEach((t=>{switch(t){case"ui-advanced-data-table":customElements.get(i(t))||customElements.define(i(t),m);break;case"ui-badge":customElements.get(i(t))||o();break;case"ui-button":customElements.get(i(t))||n();break;case"ui-checkbox":customElements.get(i(t))||s();break;case"ui-icon":customElements.get(i(t))||l();break;case"ui-input":customElements.get(i(t))||d();break;case"ui-loader":customElements.get(i(t))||c();break;case"ui-pagination":customElements.get(i(t))||p();break;case"ui-radio":customElements.get(i(t))||h();break;case"ui-rating":customElements.get(i(t))||b();break;case"ui-skeleton":customElements.get(i(t))||u();break;case"ui-switch":customElements.get(i(t))||g()}}))};export{x as UiAdvancedDataTable,f as defineCustomElement}