@coreui/data-grid 0.3.0-rc.0 → 0.4.0

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 (122) hide show
  1. package/dist/css/data-grid.css +1 -1
  2. package/dist/css/data-grid.css.map +1 -1
  3. package/dist/css/data-grid.min.css +1 -1
  4. package/dist/css/data-grid.min.css.map +1 -1
  5. package/dist/css/data-grid.standalone.css +6 -6
  6. package/dist/css/data-grid.standalone.css.map +1 -1
  7. package/dist/css/data-grid.standalone.min.css +1 -1
  8. package/dist/css/data-grid.standalone.min.css.map +1 -1
  9. package/dist/js/clipboard.cjs +2 -3
  10. package/dist/js/clipboard.mjs +2 -3
  11. package/dist/js/csv.cjs +5 -6
  12. package/dist/js/csv.cjs.map +1 -1
  13. package/dist/js/csv.mjs +5 -6
  14. package/dist/js/csv.mjs.map +1 -1
  15. package/dist/js/data-grid.esm.js +5899 -5667
  16. package/dist/js/data-grid.esm.js.map +1 -1
  17. package/dist/js/data-grid.esm.min.js +2 -2
  18. package/dist/js/data-grid.esm.min.js.map +1 -1
  19. package/dist/js/data-grid.js +5899 -5668
  20. package/dist/js/data-grid.js.map +1 -1
  21. package/dist/js/data-grid.lite.esm.js +2669 -2622
  22. package/dist/js/data-grid.lite.esm.js.map +1 -1
  23. package/dist/js/data-grid.lite.esm.min.js +2 -2
  24. package/dist/js/data-grid.lite.esm.min.js.map +1 -1
  25. package/dist/js/data-grid.lite.js +2669 -2623
  26. package/dist/js/data-grid.lite.js.map +1 -1
  27. package/dist/js/data-grid.lite.min.js +2 -2
  28. package/dist/js/data-grid.lite.min.js.map +1 -1
  29. package/dist/js/data-grid.lite.mjs +2669 -2622
  30. package/dist/js/data-grid.lite.mjs.map +1 -1
  31. package/dist/js/data-grid.min.js +2 -2
  32. package/dist/js/data-grid.min.js.map +1 -1
  33. package/dist/js/data-grid.mjs +5899 -5667
  34. package/dist/js/data-grid.mjs.map +1 -1
  35. package/dist/js/direction.cjs +3 -4
  36. package/dist/js/direction.cjs.map +1 -1
  37. package/dist/js/direction.mjs +3 -4
  38. package/dist/js/direction.mjs.map +1 -1
  39. package/dist/js/drag.cjs +6 -6
  40. package/dist/js/drag.cjs.map +1 -1
  41. package/dist/js/drag.mjs +6 -6
  42. package/dist/js/drag.mjs.map +1 -1
  43. package/dist/js/{export-table-BdabEbJG.mjs → export-table-BggGRmzQ.mjs} +3 -4
  44. package/dist/js/{export-table-BdabEbJG.mjs.map → export-table-BggGRmzQ.mjs.map} +1 -1
  45. package/dist/js/{export-table-D762wrZ1.cjs → export-table-BiB3_lVo.cjs} +3 -4
  46. package/dist/js/{export-table-D762wrZ1.cjs.map → export-table-BiB3_lVo.cjs.map} +1 -1
  47. package/dist/js/filters.cjs +2 -3
  48. package/dist/js/filters.mjs +2 -3
  49. package/dist/js/labels.cjs +2 -3
  50. package/dist/js/labels.mjs +2 -3
  51. package/dist/js/print.cjs +2 -3
  52. package/dist/js/print.mjs +2 -3
  53. package/dist/js/selector.cjs +22 -0
  54. package/dist/js/selector.cjs.map +1 -0
  55. package/dist/js/selector.mjs +21 -0
  56. package/dist/js/selector.mjs.map +1 -0
  57. package/dist/js/validate.cjs +2 -3
  58. package/dist/js/validate.mjs +2 -3
  59. package/dist/js/xlsx.cjs +5 -7
  60. package/dist/js/xlsx.cjs.map +1 -1
  61. package/dist/js/xlsx.mjs +5 -7
  62. package/dist/js/xlsx.mjs.map +1 -1
  63. package/dist/types/base-component.d.mts +29 -0
  64. package/dist/types/data-grid.d.mts +141 -0
  65. package/dist/types/dom/data.d.mts +15 -0
  66. package/dist/types/dom/event-handler.d.mts +22 -0
  67. package/dist/types/dom/manipulator.d.mts +16 -0
  68. package/dist/types/engine/active-cell.d.mts +33 -0
  69. package/dist/types/engine/data-source.d.mts +19 -0
  70. package/dist/types/engine/features-lite.d.mts +25 -0
  71. package/dist/types/engine/features.d.mts +35 -0
  72. package/dist/types/engine/scheduler.d.mts +11 -0
  73. package/dist/types/engine/table.d.mts +9 -0
  74. package/dist/types/engine/validate.d.mts +20 -1
  75. package/dist/types/engine/virtualizer.d.mts +23 -0
  76. package/dist/types/filters.d.mts +13 -1
  77. package/dist/types/icons.d.mts +23 -0
  78. package/dist/types/index-lite.d.mts +19 -1
  79. package/dist/types/index.d.mts +21 -1
  80. package/dist/types/labels.d.mts +9 -1
  81. package/dist/types/types.d.mts +284 -0
  82. package/dist/types/ui/body.d.mts +37 -0
  83. package/dist/types/ui/column-chooser.d.mts +27 -0
  84. package/dist/types/ui/editor.d.mts +8 -0
  85. package/dist/types/ui/filter-menu.d.mts +21 -0
  86. package/dist/types/ui/header.d.mts +51 -0
  87. package/dist/types/ui/loading.d.mts +12 -0
  88. package/dist/types/ui/menu.d.mts +17 -0
  89. package/dist/types/ui/pagination.d.mts +17 -0
  90. package/dist/types/ui/pinning.d.mts +17 -0
  91. package/dist/types/ui/toolbar.d.mts +42 -0
  92. package/dist/types/ui/tooltip.d.mts +10 -0
  93. package/dist/types/util/clipboard.d.mts +29 -1
  94. package/dist/types/util/config.d.mts +28 -0
  95. package/dist/types/util/csv.d.mts +19 -1
  96. package/dist/types/util/debounce.d.mts +7 -0
  97. package/dist/types/util/direction.d.mts +17 -1
  98. package/dist/types/util/drag.d.mts +48 -1
  99. package/dist/types/util/export-table.d.mts +47 -0
  100. package/dist/types/util/index.d.mts +66 -0
  101. package/dist/types/util/print.d.mts +32 -1
  102. package/dist/types/util/sanitizer.d.mts +15 -0
  103. package/dist/types/util/selector.d.mts +12 -0
  104. package/dist/types/util/selector.d.ts +12 -0
  105. package/dist/types/util/xlsx.d.mts +17 -1
  106. package/dist/types/util/zip.d.mts +11 -0
  107. package/package.json +29 -16
  108. package/scss/data-grid.scss +1 -1
  109. package/src/data-grid.ts +4 -3
  110. package/src/engine/active-cell.ts +2 -6
  111. package/src/index-lite.ts +1 -1
  112. package/src/index.ts +1 -1
  113. package/src/ui/column-chooser.ts +4 -4
  114. package/src/ui/filter-menu.ts +5 -5
  115. package/src/ui/menu.ts +4 -4
  116. package/src/ui/pagination.ts +1 -1
  117. package/src/ui/tooltip.ts +2 -2
  118. package/src/util/csv.ts +2 -2
  119. package/src/util/direction.ts +4 -3
  120. package/src/util/drag.ts +5 -3
  121. package/src/util/selector.ts +16 -0
  122. package/src/util/xlsx.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../scss/data-grid.standalone.scss","../../scss/base/_root.scss","../../scss/base/_reboot.scss","dist/css/data-grid.standalone.css","../../scss/base/_table.scss","../../scss/base/_buttons.scss","../../scss/base/_forms.scss","../../scss/base/_pagination.scss","../../scss/base/_spinner.scss","../../scss/base/_helpers.scss","../../scss/components/_data-grid.scss","../../scss/mixins/_tokens.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n\n// The grid plus the base styles it would otherwise borrow from\n// @coreui/coreui(-pro). Load this INSTEAD of data-grid.css when the CoreUI\n// stylesheet is not on the page.\n\n// scss-docs-start import-stack\n@forward \"config\";\n@forward \"functions\";\n@forward \"mixins\";\n@forward \"base\";\n@forward \"components/data-grid\";\n// scss-docs-end import-stack\n","@use \"../config\" as *;\n\n// Semantic tokens the grid resolves against. Values mirror @coreui/coreui-pro 5.\n// They are emitted unlayered-free: any real CoreUI stylesheet (or app CSS)\n// declaring the same properties outside a layer takes precedence.\n\n// scss-docs-start base-root-variables\n$base-white: #fff !default;\n$base-primary: #5856d6 !default;\n$base-primary-rgb: 88, 86, 214 !default;\n$base-danger: #e55353 !default;\n$base-body-color: rgba(37, 42.92, 54.02, .95) !default;\n$base-body-bg: #fff !default;\n$base-body-bg-rgb: 255, 255, 255 !default;\n$base-emphasis-color: #080a0c !default;\n$base-emphasis-color-rgb: 8, 10, 12 !default;\n$base-secondary-color: rgba(37, 42.92, 54.02, .681) !default;\n$base-secondary-bg: #e7eaee !default;\n$base-tertiary-bg: #f3f4f7 !default;\n$base-border-color: #dbdfe6 !default;\n$base-link-color: #5856d6 !default;\n$base-link-hover-color: #4645ab !default;\n// scss-docs-end base-root-variables\n\n// scss-docs-start base-root-dark-variables\n$base-body-color-dark: rgba(255, 255, 255, .87) !default;\n$base-body-bg-dark: #212631 !default;\n$base-body-bg-rgb-dark: 33, 38, 49 !default;\n$base-emphasis-color-dark: #fff !default;\n$base-emphasis-color-rgb-dark: 255, 255, 255 !default;\n$base-secondary-color-dark: rgba(255, 255, 255, .6) !default;\n$base-secondary-bg-dark: #323a49 !default;\n$base-tertiary-bg-dark: rgb(41.5, 48, 61) !default;\n$base-border-color-dark: #4a566d !default;\n$base-primary-dark: rgb(94.2, 92.4, 207.6) !default;\n$base-link-color-dark: rgb(151.2, 150, 226.8) !default;\n$base-link-hover-color-dark: rgb(171.36, 170.4, 233.04) !default;\n// scss-docs-end base-root-dark-variables\n\n@layer #{$base-layer} {\n :root {\n color-scheme: light;\n\n --#{$prefix}white: #{$base-white};\n --#{$prefix}primary: #{$base-primary};\n --#{$prefix}primary-rgb: #{$base-primary-rgb};\n --#{$prefix}danger: #{$base-danger};\n --#{$prefix}body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --#{$prefix}body-font-size: 1rem;\n --#{$prefix}body-line-height: 1.5;\n --#{$prefix}body-color: #{$base-body-color};\n --#{$prefix}body-bg: #{$base-body-bg};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb};\n --#{$prefix}emphasis-color: #{$base-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb};\n --#{$prefix}secondary-color: #{$base-secondary-color};\n --#{$prefix}secondary-bg: #{$base-secondary-bg};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg};\n --#{$prefix}border-width: 1px;\n --#{$prefix}border-color: #{$base-border-color};\n --#{$prefix}border-radius: .375rem;\n --#{$prefix}border-radius-sm: .25rem;\n --#{$prefix}box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --#{$prefix}focus-ring-color: rgba(#{$base-primary-rgb}, .25);\n --#{$prefix}link-color: #{$base-link-color};\n --#{$prefix}link-hover-color: #{$base-link-hover-color};\n }\n\n [data-coreui-theme=\"dark\"] {\n color-scheme: dark;\n\n --#{$prefix}body-color: #{$base-body-color-dark};\n --#{$prefix}body-bg: #{$base-body-bg-dark};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb-dark};\n --#{$prefix}emphasis-color: #{$base-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb-dark};\n --#{$prefix}secondary-color: #{$base-secondary-color-dark};\n --#{$prefix}secondary-bg: #{$base-secondary-bg-dark};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg-dark};\n --#{$prefix}border-color: #{$base-border-color-dark};\n --#{$prefix}primary: #{$base-primary-dark};\n --#{$prefix}link-color: #{$base-link-color-dark};\n --#{$prefix}link-hover-color: #{$base-link-hover-color-dark};\n }\n}\n","@use \"../config\" as *;\n\n// The slice of CoreUI's reboot the grid actually relies on, scoped to the grid\n// so the sheet never restyles the host page.\n\n@layer #{$base-layer} {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--#{$prefix}body-font-family);\n font-size: var(--#{$prefix}body-font-size);\n font-weight: 400;\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: start;\n background-color: var(--#{$prefix}body-bg);\n -webkit-text-size-adjust: 100%;\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n\n thead,\n tbody,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n label {\n display: inline-block;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n button:not(:disabled),\n [type=\"button\"]:not(:disabled),\n [type=\"reset\"]:not(:disabled),\n [type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n }\n\n ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n\n svg {\n vertical-align: middle;\n }\n\n ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n }\n}\n","/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n@layer data-grid-base {\n :root {\n color-scheme: light;\n --cui-white: #fff;\n --cui-primary: #5856d6;\n --cui-primary-rgb: 88, 86, 214;\n --cui-danger: #e55353;\n --cui-body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --cui-body-font-size: 1rem;\n --cui-body-line-height: 1.5;\n --cui-body-color: rgba(37, 42.92, 54.02, 0.95);\n --cui-body-bg: #fff;\n --cui-body-bg-rgb: 255, 255, 255;\n --cui-emphasis-color: #080a0c;\n --cui-emphasis-color-rgb: 8, 10, 12;\n --cui-secondary-color: rgba(37, 42.92, 54.02, 0.681);\n --cui-secondary-bg: #e7eaee;\n --cui-tertiary-bg: #f3f4f7;\n --cui-border-width: 1px;\n --cui-border-color: #dbdfe6;\n --cui-border-radius: .375rem;\n --cui-border-radius-sm: .25rem;\n --cui-box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --cui-focus-ring-color: rgba(88, 86, 214, .25);\n --cui-link-color: #5856d6;\n --cui-link-hover-color: #4645ab;\n }\n [data-coreui-theme=dark] {\n color-scheme: dark;\n --cui-body-color: rgba(255, 255, 255, 0.87);\n --cui-body-bg: #212631;\n --cui-body-bg-rgb: 33, 38, 49;\n --cui-emphasis-color: #fff;\n --cui-emphasis-color-rgb: 255, 255, 255;\n --cui-secondary-color: rgba(255, 255, 255, 0.6);\n --cui-secondary-bg: #323a49;\n --cui-tertiary-bg: rgb(41.5, 48, 61);\n --cui-border-color: #4a566d;\n --cui-primary: rgb(94.2, 92.4, 207.6);\n --cui-link-color: rgb(151.2, 150, 226.8);\n --cui-link-hover-color: rgb(171.36, 170.4, 233.04);\n }\n}\n@layer data-grid-base {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--cui-body-font-family);\n font-size: var(--cui-body-font-size);\n font-weight: 400;\n line-height: var(--cui-body-line-height);\n color: var(--cui-body-color);\n text-align: start;\n background-color: var(--cui-body-bg);\n -webkit-text-size-adjust: 100%;\n }\n .data-grid *,\n .data-grid *::before,\n .data-grid *::after {\n box-sizing: border-box;\n }\n .data-grid table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n .data-grid th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n .data-grid thead,\n .data-grid tbody,\n .data-grid tr,\n .data-grid td,\n .data-grid th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n .data-grid label {\n display: inline-block;\n }\n .data-grid button,\n .data-grid input,\n .data-grid optgroup,\n .data-grid select,\n .data-grid textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n .data-grid button,\n .data-grid select {\n text-transform: none;\n }\n .data-grid button,\n .data-grid [type=button],\n .data-grid [type=reset],\n .data-grid [type=submit] {\n -webkit-appearance: button;\n }\n .data-grid button:not(:disabled),\n .data-grid [type=button]:not(:disabled),\n .data-grid [type=reset]:not(:disabled),\n .data-grid [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n .data-grid ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n .data-grid svg {\n vertical-align: middle;\n }\n .data-grid ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n}\n@layer data-grid-base {\n .data-grid .table {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n --cui-table-color-state: initial;\n --cui-table-bg-state: initial;\n --cui-table-color: var(--cui-emphasis-color);\n --cui-table-bg: var(--cui-body-bg);\n --cui-table-border-color: var(--cui-border-color);\n --cui-table-accent-bg: transparent;\n --cui-table-striped-color: var(--cui-emphasis-color);\n --cui-table-striped-bg: rgba(var(--cui-emphasis-color-rgb), 0.05);\n --cui-table-active-color: var(--cui-emphasis-color);\n --cui-table-active-bg: rgba(var(--cui-emphasis-color-rgb), 0.1);\n --cui-table-hover-color: var(--cui-emphasis-color);\n --cui-table-hover-bg: rgba(var(--cui-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--cui-table-border-color);\n }\n .data-grid .table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--cui-table-color-state, var(--cui-table-color-type, var(--cui-table-color)));\n background-color: var(--cui-table-bg);\n border-bottom-width: var(--cui-border-width);\n box-shadow: inset 0 0 0 9999px var(--cui-table-bg-state, var(--cui-table-bg-type, var(--cui-table-accent-bg)));\n }\n .data-grid .table > tbody {\n vertical-align: inherit;\n }\n .data-grid .table > thead {\n vertical-align: bottom;\n }\n .data-grid .table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n }\n .data-grid .table-bordered > :not(caption) > * > * {\n border-width: var(--cui-border-width) 0;\n }\n .data-grid .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n .data-grid .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n }\n .data-grid .table-hover > tbody > tr:hover > * {\n --cui-table-color-state: var(--cui-table-hover-color);\n --cui-table-bg-state: var(--cui-table-hover-bg);\n }\n .data-grid .table-active {\n --cui-table-color-state: var(--cui-table-active-color);\n --cui-table-bg-state: var(--cui-table-active-bg);\n }\n}\n@layer data-grid-base {\n .data-grid .btn {\n --cui-btn-padding-x: 0.75rem;\n --cui-btn-padding-y: 0.375rem;\n --cui-btn-font-size: 1rem;\n --cui-btn-font-weight: 400;\n --cui-btn-line-height: 1.5;\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-bg: transparent;\n --cui-btn-border-width: var(--cui-border-width);\n --cui-btn-border-color: transparent;\n --cui-btn-border-radius: var(--cui-border-radius);\n --cui-btn-hover-color: var(--cui-btn-color);\n --cui-btn-hover-bg: transparent;\n --cui-btn-hover-border-color: transparent;\n --cui-btn-active-color: var(--cui-btn-hover-color);\n --cui-btn-active-bg: var(--cui-btn-hover-bg);\n --cui-btn-active-border-color: var(--cui-btn-hover-border-color);\n --cui-btn-disabled-color: var(--cui-btn-color);\n --cui-btn-disabled-opacity: .65;\n display: inline-block;\n padding: var(--cui-btn-padding-y) var(--cui-btn-padding-x);\n font-size: var(--cui-btn-font-size);\n font-weight: var(--cui-btn-font-weight);\n line-height: var(--cui-btn-line-height);\n color: var(--cui-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n background-color: var(--cui-btn-bg);\n border: var(--cui-btn-border-width) solid var(--cui-btn-border-color);\n border-radius: var(--cui-btn-border-radius);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .btn:hover {\n color: var(--cui-btn-hover-color);\n background-color: var(--cui-btn-hover-bg);\n border-color: var(--cui-btn-hover-border-color);\n }\n .data-grid .btn:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .btn:active {\n color: var(--cui-btn-active-color);\n background-color: var(--cui-btn-active-bg);\n border-color: var(--cui-btn-active-border-color);\n }\n .data-grid .btn:disabled {\n color: var(--cui-btn-disabled-color);\n pointer-events: none;\n opacity: var(--cui-btn-disabled-opacity);\n }\n .data-grid .btn-sm {\n --cui-btn-padding-y: 0.25rem;\n --cui-btn-padding-x: 0.5rem;\n --cui-btn-font-size: 0.875rem;\n --cui-btn-border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .btn-primary {\n --cui-btn-color: #fff;\n --cui-btn-bg: var(--cui-primary);\n --cui-btn-border-color: var(--cui-primary);\n --cui-btn-hover-color: #fff;\n --cui-btn-hover-bg: color-mix(in srgb, var(--cui-primary) 85%, #000);\n --cui-btn-hover-border-color: color-mix(in srgb, var(--cui-primary) 80%, #000);\n }\n .data-grid .btn-outline-secondary {\n --cui-btn-color: var(--cui-secondary-color);\n --cui-btn-border-color: var(--cui-border-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-hover-border-color: var(--cui-border-color);\n }\n .data-grid .btn-ghost {\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-active-bg: var(--cui-secondary-bg);\n }\n .data-grid .btn-link {\n --cui-btn-color: var(--cui-link-color);\n --cui-btn-hover-color: var(--cui-link-hover-color);\n text-decoration: underline;\n }\n}\n@layer data-grid-base {\n .data-grid .form-control,\n .data-grid .form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--cui-body-color);\n appearance: none;\n background-color: var(--cui-body-bg);\n background-clip: padding-box;\n border: var(--cui-border-width) solid var(--cui-border-color);\n border-radius: var(--cui-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .form-control:focus,\n .data-grid .form-select:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-control:disabled,\n .data-grid .form-select:disabled {\n background-color: var(--cui-secondary-bg);\n opacity: 1;\n }\n .data-grid .form-control::placeholder,\n .data-grid .form-select::placeholder {\n color: var(--cui-secondary-color);\n opacity: 1;\n }\n .data-grid .form-select {\n padding-inline-end: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n }\n .data-grid .form-control-sm,\n .data-grid .form-select-sm {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n .data-grid .form-control.is-invalid {\n border-color: var(--cui-danger);\n }\n .data-grid .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: 0.125rem;\n }\n .data-grid .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n .data-grid .form-check-input {\n --cui-form-check-bg: var(--cui-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--cui-form-check-bg);\n background-image: var(--cui-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--cui-border-width) solid var(--cui-border-color);\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n .data-grid .form-check-input[type=checkbox] {\n border-radius: 0.25em;\n }\n .data-grid .form-check-input[type=radio] {\n border-radius: 50%;\n }\n .data-grid .form-check-input:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-check-input:checked {\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:checked[type=checkbox] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input:checked[type=radio] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input[type=checkbox]:indeterminate {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n }\n .data-grid .form-check-label {\n cursor: pointer;\n }\n .data-grid .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n }\n [data-coreui-theme=dark] .data-grid .form-select {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n }\n}\n@layer data-grid-base {\n .data-grid .pagination {\n --cui-pagination-padding-x: 0.75rem;\n --cui-pagination-padding-y: 0.375rem;\n --cui-pagination-font-size: 1rem;\n --cui-pagination-color: var(--cui-link-color);\n --cui-pagination-bg: var(--cui-body-bg);\n --cui-pagination-border-width: var(--cui-border-width);\n --cui-pagination-border-color: var(--cui-border-color);\n --cui-pagination-border-radius: var(--cui-border-radius);\n --cui-pagination-hover-color: var(--cui-link-hover-color);\n --cui-pagination-hover-bg: var(--cui-tertiary-bg);\n --cui-pagination-hover-border-color: var(--cui-border-color);\n --cui-pagination-active-color: #fff;\n --cui-pagination-active-bg: var(--cui-primary);\n --cui-pagination-active-border-color: var(--cui-primary);\n --cui-pagination-disabled-color: var(--cui-secondary-color);\n --cui-pagination-disabled-bg: var(--cui-secondary-bg);\n --cui-pagination-disabled-border-color: var(--cui-border-color);\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n .data-grid .page-link {\n position: relative;\n display: block;\n padding: var(--cui-pagination-padding-y) var(--cui-pagination-padding-x);\n font-size: var(--cui-pagination-font-size);\n color: var(--cui-pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--cui-pagination-bg);\n border: var(--cui-pagination-border-width) solid var(--cui-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .page-link:hover {\n z-index: 2;\n color: var(--cui-pagination-hover-color);\n background-color: var(--cui-pagination-hover-bg);\n border-color: var(--cui-pagination-hover-border-color);\n }\n .data-grid .page-link:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--cui-border-width));\n }\n .data-grid .page-item:first-child .page-link {\n border-top-left-radius: var(--cui-pagination-border-radius);\n border-bottom-left-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item:last-child .page-link {\n border-top-right-radius: var(--cui-pagination-border-radius);\n border-bottom-right-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item.active .page-link {\n z-index: 3;\n color: var(--cui-pagination-active-color);\n background-color: var(--cui-pagination-active-bg);\n border-color: var(--cui-pagination-active-border-color);\n }\n .data-grid .page-item.disabled .page-link {\n color: var(--cui-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--cui-pagination-disabled-bg);\n border-color: var(--cui-pagination-disabled-border-color);\n }\n .data-grid .pagination-sm {\n --cui-pagination-padding-x: 0.5rem;\n --cui-pagination-padding-y: 0.25rem;\n --cui-pagination-font-size: 0.875rem;\n --cui-pagination-border-radius: var(--cui-border-radius-sm);\n }\n}\n@layer data-grid-base {\n .data-grid .spinner-border {\n --cui-spinner-width: 2rem;\n --cui-spinner-height: 2rem;\n --cui-spinner-vertical-align: -.125em;\n --cui-spinner-border-width: 0.25em;\n --cui-spinner-animation-speed: 0.75s;\n --cui-spinner-animation-name: data-grid-spinner-border;\n display: inline-block;\n flex-shrink: 0;\n width: var(--cui-spinner-width);\n height: var(--cui-spinner-height);\n vertical-align: var(--cui-spinner-vertical-align);\n border: var(--cui-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--cui-spinner-animation-speed) linear infinite var(--cui-spinner-animation-name);\n }\n .data-grid .spinner-border-sm {\n --cui-spinner-width: 1rem;\n --cui-spinner-height: 1rem;\n --cui-spinner-border-width: .2em;\n }\n}\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n@layer data-grid-base {\n .data-grid .visually-hidden:not(caption) {\n position: absolute !important;\n }\n .data-grid .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n}\n.data-grid {\n position: relative;\n display: flex;\n flex-direction: column;\n --cui-data-grid-viewport-max-height: 30rem;\n --cui-data-grid-header-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-header-shadow: inset 0 calc(-1 * var(--cui-border-width, 1px)) 0 var(--cui-border-color, #dee2e6);\n --cui-data-grid-cell-selected-bg: rgba(var(--cui-primary-rgb, 50, 31, 219), 0.12);\n --cui-data-grid-cell-selected-border-color: var(--cui-primary, #321fdb);\n --cui-data-grid-cell-selected-border-width: 1px;\n --cui-data-grid-row-handle-width: 2rem;\n --cui-data-grid-select-cell-width: 2.5rem;\n --cui-data-grid-sorter-margin: 0.25rem;\n --cui-data-grid-sorter-opacity: 0.3;\n --cui-data-grid-spacing: 0.5rem;\n --cui-data-grid-resizer-width: 0.625rem;\n --cui-data-grid-resizer-grip-height: 60%;\n --cui-data-grid-resizer-grip-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-resizer-grip-color-hover: var(--cui-secondary-color, #6c757d);\n --cui-data-grid-pinned-border-width: var(--cui-border-width);\n --cui-data-grid-pinned-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-drop-indicator: var(--cui-primary, #321fdb);\n --cui-data-grid-drag-transition: 0.15s ease;\n --cui-data-grid-menu-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-menu-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-menu-shadow: var(--cui-box-shadow, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));\n --cui-data-grid-menu-min-width: 10rem;\n --cui-data-grid-menu-item-hover-bg: var(--cui-tertiary-bg, #f8f9fa);\n --cui-data-grid-loading-bg: rgba(var(--cui-body-bg-rgb, 255, 255, 255), 0.6);\n --cui-data-grid-pinned-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-focus-ring-width: 2px;\n --cui-data-grid-focus-ring-color: var(--cui-primary, #321fdb);\n}\n.data-grid .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-toolbar-actions {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n}\n.data-grid .data-grid-toolbar-search {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--cui-data-grid-viewport-max-height);\n overflow-y: auto;\n overflow-anchor: none;\n}\n.data-grid .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n}\n.data-grid .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: 0.25rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid [role=grid] :is(td, th):focus-visible {\n outline: var(--cui-data-grid-focus-ring-width) solid var(--cui-data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--cui-data-grid-focus-ring-width));\n}\n.data-grid .data-grid-viewport:focus-visible {\n outline: 0;\n}\n.data-grid .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--cui-data-grid-header-bg);\n box-shadow: var(--cui-data-grid-header-shadow);\n}\n.data-grid .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: 48px;\n vertical-align: middle;\n}\n.data-grid .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n}\n.data-grid .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n}\n.data-grid .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.data-grid .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid .btn-ghost {\n --cui-btn-padding-x: var(--cui-btn-padding-y);\n --cui-btn-line-height: 1;\n}\n.data-grid .data-grid-menu-button {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--cui-data-grid-menu-min-width);\n padding: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.25rem 0.75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-menu-item:hover, .data-grid .data-grid-menu-item:focus-visible {\n background-color: var(--cui-data-grid-menu-item-hover-bg);\n}\n.data-grid .data-grid-menu-item[aria-disabled=true] {\n color: var(--cui-secondary-color, #6c757d);\n cursor: default;\n background: none;\n}\n.data-grid .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n padding: 0.75rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-filter-menu > div {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.data-grid .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.data-grid .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n}\n.data-grid .data-grid-filter-menu-join label {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n}\n.data-grid .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n max-height: 14rem;\n overflow-y: auto;\n}\n.data-grid .data-grid-filter-menu-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n}\n.data-grid .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n max-height: 20rem;\n padding: 0.75rem;\n overflow-y: auto;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-column-chooser-option {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n margin-bottom: 0;\n}\n.data-grid .data-grid-column-chooser-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n padding-top: 0.25rem;\n margin-top: 0.25rem;\n border-top: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-filter-button {\n position: relative;\n margin-inline-start: auto;\n}\n.data-grid .data-grid-filter-button ~ .data-grid-menu-button {\n margin-inline-start: 0;\n}\n.data-grid .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: 0.125rem;\n inset-inline-end: 0.125rem;\n width: 0.375rem;\n height: 0.375rem;\n content: \"\";\n background-color: var(--cui-primary, #321fdb);\n border-radius: 50%;\n}\n.data-grid .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: 0.75;\n}\n.data-grid .data-grid-menu-item-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-menu-divider {\n height: var(--cui-border-width, 1px);\n margin: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-dragging {\n opacity: 0.5;\n}\n.data-grid.data-grid-drag-active {\n cursor: grabbing;\n -webkit-user-select: none;\n user-select: none;\n}\n.data-grid .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1080;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--cui-data-grid-cell-padding-x, 0.5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--cui-data-grid-pinned-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-drop-indicator);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n transform: translate(-9999px, -9999px);\n opacity: 0.9;\n}\n.data-grid .data-grid-drag-ghost-settle {\n transition: transform var(--cui-data-grid-drag-transition), opacity var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drop-indicator {\n position: fixed;\n z-index: 1080;\n pointer-events: none;\n background-color: var(--cui-data-grid-drop-indicator);\n transition: top var(--cui-data-grid-drag-transition), left var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drag-preview {\n transition: transform var(--cui-data-grid-drag-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .data-grid :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n}\n.data-grid .data-grid-drop-indicator-x {\n width: 0.125rem;\n}\n.data-grid .data-grid-drop-indicator-y {\n height: 0.125rem;\n}\n.data-grid .data-grid-cell-selected {\n position: relative;\n background-color: var(--cui-data-grid-cell-selected-bg);\n}\n.data-grid .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--cui-data-grid-cell-selected-border-color);\n}\n.data-grid .data-grid-cell-selected-top::after {\n border-top-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-right::after {\n border-right-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-left::after {\n border-left-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-row-handle-cell {\n width: var(--cui-data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n}\n.data-grid .data-grid-row-handle {\n display: inline-flex;\n color: var(--cui-secondary-color, #6c757d);\n cursor: grab;\n touch-action: none;\n}\n.data-grid .data-grid-select-cell {\n width: var(--cui-data-grid-select-cell-width);\n text-align: center;\n}\n.data-grid .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--cui-data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-sort-icon {\n display: inline-flex;\n font-size: 0.875em;\n opacity: 0;\n}\n.data-grid .data-grid-sort-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n}\n.data-grid[data-coreui-sorter-visibility=always] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon, .data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n}\n.data-grid:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid.data-grid-resizable .data-grid-viewport, .data-grid.data-grid-pinned .data-grid-viewport {\n overflow-x: auto;\n}\n.data-grid.data-grid-resizable .table, .data-grid.data-grid-pinned .table {\n width: max-content;\n min-width: 100%;\n}\n.data-grid.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n}\n.data-grid.data-grid-pinned .table {\n border-collapse: separate;\n border-spacing: 0;\n}\n.data-grid .data-grid-cell-pinned-start,\n.data-grid .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--cui-data-grid-pinned-bg);\n}\n.data-grid .data-grid-header .data-grid-cell-pinned-start,\n.data-grid .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n}\n.data-grid .data-grid-cell-pinned-start-last,\n.data-grid .data-grid-cell-pinned-end-first {\n position: sticky;\n}\n.data-grid .data-grid-cell-pinned-start-last::after,\n.data-grid .data-grid-cell-pinned-end-first::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--cui-data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n}\n.data-grid .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-0.5 * var(--cui-data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cui-data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.data-grid .data-grid-resizer::after {\n width: 2px;\n height: var(--cui-data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--cui-data-grid-resizer-grip-color);\n transition: background-color 0.15s ease;\n}\n.data-grid .data-grid-resizer:hover::after, .data-grid .data-grid-resizer.data-grid-resizer-active::after {\n background-color: var(--cui-data-grid-resizer-grip-color-hover);\n}\n.data-grid .data-grid-spacer > td {\n padding: 0;\n border: 0;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n}\n.data-grid .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n}\n.data-grid .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--cui-data-grid-spacing);\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-tooltip {\n position: fixed;\n z-index: 1080;\n max-width: 12rem;\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.4;\n color: var(--cui-body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--cui-emphasis-color, #000);\n border-radius: var(--cui-border-radius, 0.375rem);\n}\n.data-grid .data-grid-empty > td {\n padding: 2rem 1rem;\n color: var(--cui-secondary-color, #6c757d);\n text-align: center;\n}\n.data-grid .data-grid-pagination {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-top: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination.data-grid-pagination-top {\n border-top: 0;\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination .pagination {\n margin-bottom: 0;\n}\n.data-grid .data-grid-pagination .data-grid-pagination-info {\n margin-inline-start: auto;\n color: var(--cui-secondary-color, #6c757d);\n}\n.data-grid .data-grid-pagination .form-select {\n width: auto;\n}\n\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n }\n .data-grid-print-root h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n .data-grid-print-root table {\n width: 100%;\n border-collapse: collapse;\n }\n .data-grid-print-root :is(th, td) {\n padding: 0.25rem 0.5rem;\n text-align: start;\n border: 1px solid #000;\n }\n .data-grid-print-root thead {\n display: table-header-group;\n }\n .data-grid-print-root tr {\n break-inside: avoid;\n }\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=data-grid.standalone.css.map */","@use \"../config\" as *;\n\n// scss-docs-start base-table-variables\n$base-table-cell-padding-y: .5rem !default;\n$base-table-cell-padding-x: .5rem !default;\n$base-table-striped-factor: .05 !default;\n$base-table-active-factor: .1 !default;\n$base-table-hover-factor: .075 !default;\n// scss-docs-end base-table-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .table {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n --#{$prefix}table-color-state: initial;\n --#{$prefix}table-bg-state: initial;\n --#{$prefix}table-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-bg: var(--#{$prefix}body-bg);\n --#{$prefix}table-border-color: var(--#{$prefix}border-color);\n --#{$prefix}table-accent-bg: transparent;\n --#{$prefix}table-striped-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-striped-factor});\n --#{$prefix}table-active-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-active-factor});\n --#{$prefix}table-hover-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-hover-factor});\n\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--#{$prefix}table-border-color);\n\n > :not(caption) > * > * {\n padding: $base-table-cell-padding-y $base-table-cell-padding-x;\n color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));\n background-color: var(--#{$prefix}table-bg);\n border-bottom-width: var(--#{$prefix}border-width);\n box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-sm > :not(caption) > * > * {\n padding: .25rem .25rem;\n }\n\n .table-bordered > :not(caption) > * > * {\n border-width: var(--#{$prefix}border-width) 0;\n }\n\n .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n .table-hover > tbody > tr:hover > * {\n --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);\n }\n\n .table-active {\n --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-button-variables\n$base-btn-padding-y: .375rem !default;\n$base-btn-padding-x: .75rem !default;\n$base-btn-font-size: 1rem !default;\n$base-btn-padding-y-sm: .25rem !default;\n$base-btn-padding-x-sm: .5rem !default;\n$base-btn-font-size-sm: .875rem !default;\n$base-btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-button-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .btn {\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x};\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y};\n --#{$prefix}btn-font-size: #{$base-btn-font-size};\n --#{$prefix}btn-font-weight: 400;\n --#{$prefix}btn-line-height: 1.5;\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-bg: transparent;\n --#{$prefix}btn-border-width: var(--#{$prefix}border-width);\n --#{$prefix}btn-border-color: transparent;\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}btn-hover-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-hover-bg: transparent;\n --#{$prefix}btn-hover-border-color: transparent;\n --#{$prefix}btn-active-color: var(--#{$prefix}btn-hover-color);\n --#{$prefix}btn-active-bg: var(--#{$prefix}btn-hover-bg);\n --#{$prefix}btn-active-border-color: var(--#{$prefix}btn-hover-border-color);\n --#{$prefix}btn-disabled-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-disabled-opacity: .65;\n\n display: inline-block;\n padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n font-size: var(--#{$prefix}btn-font-size);\n font-weight: var(--#{$prefix}btn-font-weight);\n line-height: var(--#{$prefix}btn-line-height);\n color: var(--#{$prefix}btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--#{$prefix}btn-bg);\n border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n border-radius: var(--#{$prefix}btn-border-radius);\n transition: $base-btn-transition;\n\n &:hover {\n color: var(--#{$prefix}btn-hover-color);\n background-color: var(--#{$prefix}btn-hover-bg);\n border-color: var(--#{$prefix}btn-hover-border-color);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:active {\n color: var(--#{$prefix}btn-active-color);\n background-color: var(--#{$prefix}btn-active-bg);\n border-color: var(--#{$prefix}btn-active-border-color);\n }\n\n &:disabled {\n color: var(--#{$prefix}btn-disabled-color);\n pointer-events: none;\n opacity: var(--#{$prefix}btn-disabled-opacity);\n }\n }\n\n .btn-sm {\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y-sm};\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x-sm};\n --#{$prefix}btn-font-size: #{$base-btn-font-size-sm};\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .btn-primary {\n --#{$prefix}btn-color: #fff;\n --#{$prefix}btn-bg: var(--#{$prefix}primary);\n --#{$prefix}btn-border-color: var(--#{$prefix}primary);\n --#{$prefix}btn-hover-color: #fff;\n --#{$prefix}btn-hover-bg: color-mix(in srgb, var(--#{$prefix}primary) 85%, #000);\n --#{$prefix}btn-hover-border-color: color-mix(in srgb, var(--#{$prefix}primary) 80%, #000);\n }\n\n .btn-outline-secondary {\n --#{$prefix}btn-color: var(--#{$prefix}secondary-color);\n --#{$prefix}btn-border-color: var(--#{$prefix}border-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-hover-border-color: var(--#{$prefix}border-color);\n }\n\n .btn-ghost {\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-active-bg: var(--#{$prefix}secondary-bg);\n }\n\n .btn-link {\n --#{$prefix}btn-color: var(--#{$prefix}link-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}link-hover-color);\n\n text-decoration: underline;\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-form-variables\n$base-input-padding-y: .375rem !default;\n$base-input-padding-x: .75rem !default;\n$base-input-font-size: 1rem !default;\n$base-input-padding-y-sm: .25rem !default;\n$base-input-padding-x-sm: .5rem !default;\n$base-input-font-size-sm: .875rem !default;\n$base-input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n$base-form-select-indicator: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-select-indicator-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-input-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-radio-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\") !default;\n$base-form-check-indeterminate-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\") !default;\n// scss-docs-end base-form-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .form-control,\n .form-select {\n display: block;\n width: 100%;\n padding: $base-input-padding-y $base-input-padding-x;\n font-size: $base-input-font-size;\n font-weight: 400;\n line-height: 1.5;\n color: var(--#{$prefix}body-color);\n appearance: none;\n background-color: var(--#{$prefix}body-bg);\n background-clip: padding-box;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n border-radius: var(--#{$prefix}border-radius);\n transition: $base-input-transition;\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:disabled {\n background-color: var(--#{$prefix}secondary-bg);\n opacity: 1;\n }\n\n &::placeholder {\n color: var(--#{$prefix}secondary-color);\n opacity: 1;\n }\n }\n\n .form-select {\n padding-inline-end: 2.25rem;\n background-image: $base-form-select-indicator;\n background-repeat: no-repeat;\n background-position: right .75rem center;\n background-size: 16px 12px;\n }\n\n .form-control-sm,\n .form-select-sm {\n padding: $base-input-padding-y-sm $base-input-padding-x-sm;\n font-size: $base-input-font-size-sm;\n border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n\n .form-control.is-invalid {\n border-color: var(--#{$prefix}danger);\n }\n\n .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: .125rem;\n }\n\n .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n\n .form-check-input {\n --#{$prefix}form-check-bg: var(--#{$prefix}body-bg);\n\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: .25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--#{$prefix}form-check-bg);\n background-image: var(--#{$prefix}form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n print-color-adjust: exact;\n\n &[type=\"checkbox\"] {\n border-radius: .25em;\n }\n\n &[type=\"radio\"] {\n border-radius: 50%;\n }\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:checked {\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:checked[type=\"checkbox\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-input-checked-bg-image};\n }\n\n &:checked[type=\"radio\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-radio-checked-bg-image};\n }\n\n &[type=\"checkbox\"]:indeterminate {\n --#{$prefix}form-check-bg-image: #{$base-form-check-indeterminate-bg-image};\n\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:disabled {\n pointer-events: none;\n filter: none;\n opacity: .5;\n }\n }\n\n .form-check-label {\n cursor: pointer;\n }\n\n .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: .5;\n }\n }\n\n [data-coreui-theme=\"dark\"] .data-grid .form-select {\n background-image: $base-form-select-indicator-dark;\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-pagination-variables\n$base-pagination-padding-y: .375rem !default;\n$base-pagination-padding-x: .75rem !default;\n$base-pagination-padding-y-sm: .25rem !default;\n$base-pagination-padding-x-sm: .5rem !default;\n$base-pagination-font-size-sm: .875rem !default;\n$base-pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-pagination-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .pagination {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y};\n --#{$prefix}pagination-font-size: 1rem;\n --#{$prefix}pagination-color: var(--#{$prefix}link-color);\n --#{$prefix}pagination-bg: var(--#{$prefix}body-bg);\n --#{$prefix}pagination-border-width: var(--#{$prefix}border-width);\n --#{$prefix}pagination-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}pagination-hover-color: var(--#{$prefix}link-hover-color);\n --#{$prefix}pagination-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}pagination-hover-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-active-color: #fff;\n --#{$prefix}pagination-active-bg: var(--#{$prefix}primary);\n --#{$prefix}pagination-active-border-color: var(--#{$prefix}primary);\n --#{$prefix}pagination-disabled-color: var(--#{$prefix}secondary-color);\n --#{$prefix}pagination-disabled-bg: var(--#{$prefix}secondary-bg);\n --#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);\n\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n\n .page-link {\n position: relative;\n display: block;\n padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n font-size: var(--#{$prefix}pagination-font-size);\n color: var(--#{$prefix}pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--#{$prefix}pagination-bg);\n border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n transition: $base-pagination-transition;\n\n &:hover {\n z-index: 2;\n color: var(--#{$prefix}pagination-hover-color);\n background-color: var(--#{$prefix}pagination-hover-bg);\n border-color: var(--#{$prefix}pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n }\n\n .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--#{$prefix}border-width));\n }\n\n .page-item:first-child .page-link {\n border-top-left-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-left-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item:last-child .page-link {\n border-top-right-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-right-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item.active .page-link {\n z-index: 3;\n color: var(--#{$prefix}pagination-active-color);\n background-color: var(--#{$prefix}pagination-active-bg);\n border-color: var(--#{$prefix}pagination-active-border-color);\n }\n\n .page-item.disabled .page-link {\n color: var(--#{$prefix}pagination-disabled-color);\n pointer-events: none;\n background-color: var(--#{$prefix}pagination-disabled-bg);\n border-color: var(--#{$prefix}pagination-disabled-border-color);\n }\n\n .pagination-sm {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x-sm};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y-sm};\n --#{$prefix}pagination-font-size: #{$base-pagination-font-size-sm};\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius-sm);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-spinner-variables\n$base-spinner-width: 2rem !default;\n$base-spinner-height: $base-spinner-width !default;\n$base-spinner-border-width: .25em !default;\n$base-spinner-animation-speed: .75s !default;\n// scss-docs-end base-spinner-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .spinner-border {\n --#{$prefix}spinner-width: #{$base-spinner-width};\n --#{$prefix}spinner-height: #{$base-spinner-height};\n --#{$prefix}spinner-vertical-align: -.125em;\n --#{$prefix}spinner-border-width: #{$base-spinner-border-width};\n --#{$prefix}spinner-animation-speed: #{$base-spinner-animation-speed};\n --#{$prefix}spinner-animation-name: data-grid-spinner-border;\n\n display: inline-block;\n flex-shrink: 0;\n width: var(--#{$prefix}spinner-width);\n height: var(--#{$prefix}spinner-height);\n vertical-align: var(--#{$prefix}spinner-vertical-align);\n border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n }\n\n .spinner-border-sm {\n --#{$prefix}spinner-width: 1rem;\n --#{$prefix}spinner-height: 1rem;\n --#{$prefix}spinner-border-width: .2em;\n }\n }\n}\n\n// Keyframes cannot be scoped; the name is namespaced instead so it can never\n// collide with the host page's own animations.\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n","@use \"../config\" as *;\n\n// `!important` declarations invert the layer order — a layered `!important`\n// beats an unlayered one — so this block wins even when CoreUI is loaded.\n// It is byte-for-byte the same rule, so that costs nothing.\n\n@layer #{$base-layer} {\n .data-grid {\n .visually-hidden:not(caption) {\n position: absolute !important;\n }\n\n .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n }\n}\n","@use \"../functions/defaults\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../config\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n\n// Everything resolves through CoreUI semantic variables, so light/dark theming\n// via [data-coreui-theme] works with no extra rules. The fallbacks keep the grid\n// legible when the CoreUI stylesheet is absent; `data-grid.standalone.css` fills\n// the rest in.\n\n// scss-docs-start data-grid-variables\n$data-grid-viewport-max-height: 30rem !default;\n$data-grid-header-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-header-shadow: inset 0 calc(-1 * var(--#{$prefix}border-width, 1px)) 0 var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-cell-selected-bg: rgba(var(--#{$prefix}primary-rgb, 50, 31, 219), .12) !default;\n$data-grid-cell-selected-border-color: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-cell-selected-border-width: 1px !default;\n$data-grid-row-handle-width: 2rem !default;\n$data-grid-select-cell-width: 2.5rem !default;\n$data-grid-sorter-margin: .25rem !default;\n$data-grid-sorter-opacity: .3 !default;\n$data-grid-spacing: .5rem !default;\n$data-grid-resizer-width: .625rem !default;\n$data-grid-resizer-grip-height: 60% !default;\n$data-grid-resizer-grip-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-resizer-grip-color-hover: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-pinned-border-width: var(--#{$prefix}border-width) !default;\n$data-grid-pinned-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-drop-indicator: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-drag-transition: .15s ease !default;\n$data-grid-menu-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-menu-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-menu-shadow: var(--#{$prefix}box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)) !default;\n$data-grid-menu-min-width: 10rem !default;\n$data-grid-menu-item-hover-bg: var(--#{$prefix}tertiary-bg, #f8f9fa) !default;\n$data-grid-loading-bg: rgba(var(--#{$prefix}body-bg-rgb, 255, 255, 255), .6) !default;\n$data-grid-pinned-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-focus-ring-width: 2px !default;\n$data-grid-focus-ring-color: var(--#{$prefix}primary, #321fdb) !default;\n// scss-docs-end data-grid-variables\n\n// Values that shape the grid but have no runtime knob. Sass-only on purpose:\n// a token here would be a new public custom property, which is a separate call.\n// scss-docs-start data-grid-layout-variables\n$data-grid-bar-min-height: 48px !default;\n$data-grid-border-width: var(--#{$prefix}border-width, 1px) !default;\n$data-grid-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-border-radius: var(--#{$prefix}border-radius, .375rem) !default;\n$data-grid-muted-color: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-popup-max-width: 18rem !default;\n$data-grid-gap-sm: .25rem !default;\n$data-grid-tooltip-z-index: 1080 !default;\n// scss-docs-end data-grid-layout-variables\n\n$data-grid-tokens: () !default;\n\n// scss-docs-start data-grid-css-vars\n// stylelint-disable-next-line scss/dollar-variable-default\n$data-grid-tokens: defaults(\n (\n --#{$prefix}data-grid-viewport-max-height: #{$data-grid-viewport-max-height},\n --#{$prefix}data-grid-header-bg: #{$data-grid-header-bg},\n --#{$prefix}data-grid-header-shadow: #{$data-grid-header-shadow},\n --#{$prefix}data-grid-cell-selected-bg: #{$data-grid-cell-selected-bg},\n --#{$prefix}data-grid-cell-selected-border-color: #{$data-grid-cell-selected-border-color},\n --#{$prefix}data-grid-cell-selected-border-width: #{$data-grid-cell-selected-border-width},\n --#{$prefix}data-grid-row-handle-width: #{$data-grid-row-handle-width},\n --#{$prefix}data-grid-select-cell-width: #{$data-grid-select-cell-width},\n --#{$prefix}data-grid-sorter-margin: #{$data-grid-sorter-margin},\n --#{$prefix}data-grid-sorter-opacity: #{$data-grid-sorter-opacity},\n --#{$prefix}data-grid-spacing: #{$data-grid-spacing},\n --#{$prefix}data-grid-resizer-width: #{$data-grid-resizer-width},\n --#{$prefix}data-grid-resizer-grip-height: #{$data-grid-resizer-grip-height},\n --#{$prefix}data-grid-resizer-grip-color: #{$data-grid-resizer-grip-color},\n --#{$prefix}data-grid-resizer-grip-color-hover: #{$data-grid-resizer-grip-color-hover},\n --#{$prefix}data-grid-pinned-border-width: #{$data-grid-pinned-border-width},\n --#{$prefix}data-grid-pinned-border-color: #{$data-grid-pinned-border-color},\n --#{$prefix}data-grid-drop-indicator: #{$data-grid-drop-indicator},\n --#{$prefix}data-grid-drag-transition: #{$data-grid-drag-transition},\n --#{$prefix}data-grid-menu-bg: #{$data-grid-menu-bg},\n --#{$prefix}data-grid-menu-border-color: #{$data-grid-menu-border-color},\n --#{$prefix}data-grid-menu-shadow: #{$data-grid-menu-shadow},\n --#{$prefix}data-grid-menu-min-width: #{$data-grid-menu-min-width},\n --#{$prefix}data-grid-menu-item-hover-bg: #{$data-grid-menu-item-hover-bg},\n --#{$prefix}data-grid-loading-bg: #{$data-grid-loading-bg},\n --#{$prefix}data-grid-pinned-bg: #{$data-grid-pinned-bg},\n --#{$prefix}data-grid-focus-ring-width: #{$data-grid-focus-ring-width},\n --#{$prefix}data-grid-focus-ring-color: #{$data-grid-focus-ring-color},\n ),\n $data-grid-tokens\n);\n// scss-docs-end data-grid-css-vars\n\n.data-grid {\n // The column menu is positioned against the grid root (it must escape the\n // viewport's overflow while staying inside the token scope).\n position: relative;\n // A column so that a root given an explicit height actually constrains the\n // scroller: the viewport takes what the toolbar and pagination leave, and\n // min-height: 0 lets it shrink below its content instead of overflowing the\n // root. With no height set, this changes nothing — the viewport is sized by\n // its content up to the max-height token.\n display: flex;\n flex-direction: column;\n\n @include tokens($data-grid-tokens);\n\n .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .data-grid-toolbar-actions {\n display: flex;\n gap: $data-grid-gap-sm;\n align-items: center;\n }\n\n .data-grid-toolbar-search {\n margin-inline-start: auto;\n }\n\n .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--#{$prefix}data-grid-viewport-max-height);\n overflow-y: auto;\n // Windowed rendering resizes the spacer rows and recycles row elements on\n // every frame; browser scroll anchoring chases those mutations and keeps\n // adjusting scrollTop, which turns wheel scrolling into a feedback loop.\n overflow-anchor: none;\n }\n\n // Inline editing: the in-cell editor fills the cell; the popup layer hosts\n // rich editors (date pickers, selects) anchored over the cell.\n .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n }\n\n .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: $data-grid-gap-sm;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n // cellNavigation: the roving-tabindex active cell. The ring is inset so the\n // sticky header and pinned columns don't clip it.\n [role=\"grid\"] :is(td, th):focus-visible {\n outline: var(--#{$prefix}data-grid-focus-ring-width) solid var(--#{$prefix}data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--#{$prefix}data-grid-focus-ring-width));\n }\n\n .data-grid-viewport:focus-visible {\n outline: 0;\n }\n\n .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--#{$prefix}data-grid-header-bg);\n box-shadow: var(--#{$prefix}data-grid-header-shadow);\n }\n\n // Header label row: fixed 48px with vertically centered content (height on a\n // table cell acts as a min; min-height is ignored on table-cell).\n .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: $data-grid-bar-min-height;\n vertical-align: middle;\n }\n\n .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n }\n\n .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n }\n\n .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Icon-only ghost buttons: square them by matching horizontal padding to\n // vertical (follows .btn / .btn-sm automatically) and collapsing the text\n // line-height so height follows the icon, not a 1.5em text line.\n .btn-ghost {\n --#{$prefix}btn-padding-x: var(--#{$prefix}btn-padding-y);\n --#{$prefix}btn-line-height: 1;\n }\n\n .data-grid-menu-button {\n margin-inline-start: auto;\n }\n\n .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n padding: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: .5rem;\n width: 100%;\n padding: $data-grid-gap-sm .75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n\n &:hover,\n &:focus-visible {\n background-color: var(--#{$prefix}data-grid-menu-item-hover-bg);\n }\n\n // Disabled items stay focusable (aria-disabled, APG menu pattern) so the\n // roving arrow cycle can reach them.\n &[aria-disabled=\"true\"] {\n color: $data-grid-muted-color;\n cursor: default;\n background: none;\n }\n }\n\n .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n padding: .75rem;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n\n > div {\n display: flex;\n flex-direction: column;\n gap: .5rem;\n }\n }\n\n .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n\n label {\n display: flex;\n gap: .375rem;\n align-items: center;\n }\n }\n\n .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n max-height: 14rem;\n overflow-y: auto;\n }\n\n .data-grid-filter-menu-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n }\n\n .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n max-height: 20rem;\n padding: .75rem;\n overflow-y: auto;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-column-chooser-option {\n display: flex;\n gap: .375rem;\n align-items: center;\n margin-bottom: 0;\n }\n\n .data-grid-column-chooser-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n padding-top: $data-grid-gap-sm;\n margin-top: $data-grid-gap-sm;\n border-top: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-filter-button {\n position: relative;\n // Right-align the trailing controls as a group: the filter button takes the\n // auto margin (menu drops its own below) so filter and menu sit together at\n // the end, matching a menu-only header.\n margin-inline-start: auto;\n\n ~ .data-grid-menu-button {\n margin-inline-start: 0;\n }\n }\n\n // Active-filter indicator dot on the filter button.\n .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: .125rem;\n inset-inline-end: .125rem;\n width: .375rem;\n height: .375rem;\n content: \"\";\n background-color: var(--#{$prefix}primary, #321fdb);\n border-radius: 50%;\n }\n\n .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: .75;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n .data-grid-menu-divider {\n height: $data-grid-border-width;\n margin: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-dragging {\n opacity: .5;\n }\n\n // While a drag is live the whole grid keeps the grabbing cursor and stops\n // painting a text selection under the pointer.\n &.data-grid-drag-active {\n cursor: grabbing;\n user-select: none;\n }\n\n // Both overlays are position: fixed (placed from viewport coordinates in JS)\n // so they escape the viewport's overflow, like the tooltip.\n .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $data-grid-tooltip-z-index;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--#{$prefix}data-grid-cell-padding-x, .5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-drop-indicator);\n border-radius: $data-grid-border-radius;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);\n transform: translate(-9999px, -9999px);\n opacity: .9;\n }\n\n // The settling ghost: on release it flies from the pointer to the slot the\n // item landed in (or back home on cancel) and fades out there.\n .data-grid-drag-ghost-settle {\n transition: transform var(--#{$prefix}data-grid-drag-transition), opacity var(--#{$prefix}data-grid-drag-transition);\n }\n\n .data-grid-drop-indicator {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-drop-indicator);\n transition: top var(--#{$prefix}data-grid-drag-transition), left var(--#{$prefix}data-grid-drag-transition);\n }\n\n // The live reorder preview: cells slide to the layout the drop will produce.\n // Transform only, so nothing reflows and the real order still changes once.\n .data-grid-drag-preview {\n transition: transform var(--#{$prefix}data-grid-drag-transition);\n }\n\n // Someone who asked the OS to stop moving things still gets the preview —\n // it snaps to the final layout instead of gliding there.\n @media (prefers-reduced-motion: reduce) {\n :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n }\n\n // The line is 2px across its short axis and spans the grid along the other;\n // JS sets the spanning size, the axis class sets the thickness.\n .data-grid-drop-indicator-x {\n width: .125rem;\n }\n\n .data-grid-drop-indicator-y {\n height: .125rem;\n }\n\n // Cell selection: a tinted fill on every selected cell, plus an outline\n // drawn only on the sides that sit on the selection's boundary — so a\n // rectangle reads as one region instead of a grid of boxes. The outline is\n // an overlay rather than a border: a border on a table cell would shift the\n // whole row's layout the moment a range is selected.\n .data-grid-cell-selected {\n position: relative;\n background-color: var(--#{$prefix}data-grid-cell-selected-bg);\n }\n\n .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--#{$prefix}data-grid-cell-selected-border-color);\n }\n\n .data-grid-cell-selected-top::after {\n border-top-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-right::after {\n border-right-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-left::after {\n border-left-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n // The reorder column: as narrow as the grip, and the grip itself is the only\n // thing that starts a row drag (a row is full of interactive content that a\n // whole-row handle would swallow).\n .data-grid-row-handle-cell {\n width: var(--#{$prefix}data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n }\n\n .data-grid-row-handle {\n display: inline-flex;\n color: $data-grid-resizer-grip-color-hover;\n cursor: grab;\n touch-action: none;\n }\n\n .data-grid-select-cell {\n width: var(--#{$prefix}data-grid-select-cell-width);\n text-align: center;\n }\n\n .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--#{$prefix}data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n user-select: none;\n background: none;\n border: 0;\n }\n\n .data-grid-sort-icon {\n display: inline-flex;\n font-size: .875em;\n opacity: 0;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n // The active sort direction is always visible; the neutral (unsorted) icon is\n // hidden unless `sorterVisibility` opts it in (steadily via \"always\", or on\n // header hover/focus via \"hover\").\n .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n }\n\n &[data-coreui-sorter-visibility=\"always\"] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon,\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n }\n\n // Body cells render on a single line and truncate with an ellipsis instead of\n // spilling their content across the fixed-layout column boundary onto the next\n // column. Matches the default of AG Grid / MUI X Data Grid and TanStack's\n // virtualized-table guidance, and keeps every row a uniform height for the\n // fixed-height virtualizer (wrapping would desync `estimateSize`). Pinned cells\n // are excluded so their shadow pseudo-element (painted outside the box via a\n // translate) isn't clipped; the select cell holds only a checkbox.\n //\n // Auto row height is the deliberate exception: there the virtualizer measures\n // each row, so cells are free to wrap. Scoping the rule out is what keeps the\n // two modes from fighting over specificity.\n &:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Widths applied to each header cell drive the column layout; letting the\n // table grow to its content (min-width keeps it filling a wide viewport)\n // turns a resize or a pin into horizontal scroll rather than squeezing\n // neighbours. Both features share this layout mode.\n &.data-grid-resizable,\n &.data-grid-pinned {\n .data-grid-viewport {\n overflow-x: auto;\n }\n\n .table {\n width: max-content;\n min-width: 100%;\n }\n }\n\n // A pinned th is already sticky (a positioned containing block for the\n // resizer), so only non-pinned header cells need explicit relative here.\n &.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n }\n\n &.data-grid-pinned .table {\n // position: sticky is unreliable on collapsed-border tables; the grid opts\n // into separate borders so pinned cells stay put on horizontal scroll.\n border-collapse: separate;\n border-spacing: 0;\n }\n\n .data-grid-cell-pinned-start,\n .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n }\n\n .data-grid-header .data-grid-cell-pinned-start,\n .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n }\n\n // Edge cells cast a shadow over the scrolling content. A pseudo-element is\n // used because the cell's own box-shadow carries the table striping accent.\n .data-grid-cell-pinned-start-last,\n .data-grid-cell-pinned-end-first {\n position: sticky;\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--#{$prefix}data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n }\n }\n\n .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-.5 * var(--#{$prefix}data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--#{$prefix}data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n user-select: none;\n\n // Always-visible grip so the resizable edge is discoverable, not just a\n // bare hover target.\n &::after {\n width: 2px;\n height: var(--#{$prefix}data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--#{$prefix}data-grid-resizer-grip-color);\n transition: background-color .15s ease;\n }\n\n &:hover::after,\n &.data-grid-resizer-active::after {\n background-color: var(--#{$prefix}data-grid-resizer-grip-color-hover);\n }\n }\n\n .data-grid-spacer > td {\n padding: 0;\n border: 0;\n }\n\n // Spacer rows break `nth-of-type` striping, so striping inside the grid is\n // driven by the absolute row index (.data-grid-row-odd) instead.\n .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n }\n\n .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n // The last row closes on the viewport edge (or the pagination border), so it\n // doesn't need its own separator line.\n .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n }\n\n .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Infinite scroll's \"next page arriving\" strip. Sticky, not an overlay: the\n // rows already loaded stay readable while the grid appends to them.\n .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--#{$prefix}data-grid-spacing);\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Shared icon-button tooltip. position: fixed (set in JS) so it escapes the\n // viewport overflow; theme-inverted like CoreUI's own tooltip.\n .data-grid-tooltip {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n max-width: 12rem;\n padding: $data-grid-gap-sm .5rem;\n font-size: .875rem;\n line-height: 1.4;\n color: var(--#{$prefix}body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--#{$prefix}emphasis-color, #000);\n border-radius: $data-grid-border-radius;\n }\n\n .data-grid-empty > td {\n padding: 2rem 1rem;\n color: $data-grid-muted-color;\n text-align: center;\n }\n\n .data-grid-pagination {\n display: flex;\n // Wrap the page controls, count and page-size select onto multiple rows on\n // narrow viewports; without this the fixed row overflows and scrolls the page\n // instead of staying inside the grid.\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-top: $data-grid-border-width solid $data-grid-border-color;\n\n &.data-grid-pagination-top {\n border-top: 0;\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .pagination {\n margin-bottom: 0;\n }\n\n .data-grid-pagination-info {\n margin-inline-start: auto;\n color: $data-grid-muted-color;\n }\n\n .form-select {\n width: auto;\n }\n }\n}\n\n// Print: the grid renders a plain, complete table into the document (see\n// util/print.ts) and hides everything else, so a virtualized grid prints all\n// its rows instead of the twenty in the window.\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n\n h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n\n :is(th, td) {\n padding: $data-grid-gap-sm .5rem;\n text-align: start;\n border: 1px solid #000;\n }\n\n thead {\n display: table-header-group;\n }\n\n tr {\n break-inside: avoid;\n }\n }\n\n // :has() is inside the browser floor (.browserslistrc), and scoping to the\n // body's own children keeps the clone's ancestors from being hidden.\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n","// Vendored from @coreui/coreui-pro (scss/mixins/_tokens.scss, v6 line).\n// Sync manually — do not diverge.\n\n// Output a token map as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n"]}
1
+ {"version":3,"sources":["../../scss/data-grid.standalone.scss","../../scss/base/_root.scss","../../scss/base/_reboot.scss","dist/css/data-grid.standalone.css","../../scss/base/_table.scss","../../scss/base/_buttons.scss","../../scss/base/_forms.scss","../../scss/base/_pagination.scss","../../scss/base/_spinner.scss","../../scss/base/_helpers.scss","../../scss/components/_data-grid.scss","../../scss/mixins/_tokens.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n\n// The grid plus the base styles it would otherwise borrow from\n// @coreui/coreui(-pro). Load this INSTEAD of data-grid.css when the CoreUI\n// stylesheet is not on the page.\n\n// scss-docs-start import-stack\n@forward \"config\";\n@forward \"functions\";\n@forward \"mixins\";\n@forward \"base\";\n@forward \"components/data-grid\";\n// scss-docs-end import-stack\n","@use \"../config\" as *;\n\n// Semantic tokens the grid resolves against. Values mirror @coreui/coreui-pro 5.\n// They are emitted unlayered-free: any real CoreUI stylesheet (or app CSS)\n// declaring the same properties outside a layer takes precedence.\n\n// scss-docs-start base-root-variables\n$base-white: #fff !default;\n$base-primary: #5856d6 !default;\n$base-primary-rgb: 88, 86, 214 !default;\n$base-danger: #e55353 !default;\n$base-body-color: rgba(37, 42.92, 54.02, .95) !default;\n$base-body-bg: #fff !default;\n$base-body-bg-rgb: 255, 255, 255 !default;\n$base-emphasis-color: #080a0c !default;\n$base-emphasis-color-rgb: 8, 10, 12 !default;\n$base-secondary-color: rgba(37, 42.92, 54.02, .681) !default;\n$base-secondary-bg: #e7eaee !default;\n$base-tertiary-bg: #f3f4f7 !default;\n$base-border-color: #dbdfe6 !default;\n$base-link-color: #5856d6 !default;\n$base-link-hover-color: #4645ab !default;\n// scss-docs-end base-root-variables\n\n// scss-docs-start base-root-dark-variables\n$base-body-color-dark: rgba(255, 255, 255, .87) !default;\n$base-body-bg-dark: #212631 !default;\n$base-body-bg-rgb-dark: 33, 38, 49 !default;\n$base-emphasis-color-dark: #fff !default;\n$base-emphasis-color-rgb-dark: 255, 255, 255 !default;\n$base-secondary-color-dark: rgba(255, 255, 255, .6) !default;\n$base-secondary-bg-dark: #323a49 !default;\n$base-tertiary-bg-dark: rgb(41.5, 48, 61) !default;\n$base-border-color-dark: #4a566d !default;\n$base-primary-dark: rgb(94.2, 92.4, 207.6) !default;\n$base-link-color-dark: rgb(151.2, 150, 226.8) !default;\n$base-link-hover-color-dark: rgb(171.36, 170.4, 233.04) !default;\n// scss-docs-end base-root-dark-variables\n\n@layer #{$base-layer} {\n :root {\n color-scheme: light;\n\n --#{$prefix}white: #{$base-white};\n --#{$prefix}primary: #{$base-primary};\n --#{$prefix}primary-rgb: #{$base-primary-rgb};\n --#{$prefix}danger: #{$base-danger};\n --#{$prefix}body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --#{$prefix}body-font-size: 1rem;\n --#{$prefix}body-line-height: 1.5;\n --#{$prefix}body-color: #{$base-body-color};\n --#{$prefix}body-bg: #{$base-body-bg};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb};\n --#{$prefix}emphasis-color: #{$base-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb};\n --#{$prefix}secondary-color: #{$base-secondary-color};\n --#{$prefix}secondary-bg: #{$base-secondary-bg};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg};\n --#{$prefix}border-width: 1px;\n --#{$prefix}border-color: #{$base-border-color};\n --#{$prefix}border-radius: .375rem;\n --#{$prefix}border-radius-sm: .25rem;\n --#{$prefix}box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --#{$prefix}focus-ring-color: rgba(#{$base-primary-rgb}, .25);\n --#{$prefix}link-color: #{$base-link-color};\n --#{$prefix}link-hover-color: #{$base-link-hover-color};\n }\n\n [data-coreui-theme=\"dark\"] {\n color-scheme: dark;\n\n --#{$prefix}body-color: #{$base-body-color-dark};\n --#{$prefix}body-bg: #{$base-body-bg-dark};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb-dark};\n --#{$prefix}emphasis-color: #{$base-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb-dark};\n --#{$prefix}secondary-color: #{$base-secondary-color-dark};\n --#{$prefix}secondary-bg: #{$base-secondary-bg-dark};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg-dark};\n --#{$prefix}border-color: #{$base-border-color-dark};\n --#{$prefix}primary: #{$base-primary-dark};\n --#{$prefix}link-color: #{$base-link-color-dark};\n --#{$prefix}link-hover-color: #{$base-link-hover-color-dark};\n }\n}\n","@use \"../config\" as *;\n\n// The slice of CoreUI's reboot the grid actually relies on, scoped to the grid\n// so the sheet never restyles the host page.\n\n@layer #{$base-layer} {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--#{$prefix}body-font-family);\n font-size: var(--#{$prefix}body-font-size);\n font-weight: 400;\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: start;\n background-color: var(--#{$prefix}body-bg);\n -webkit-text-size-adjust: 100%;\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n\n thead,\n tbody,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n label {\n display: inline-block;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n button:not(:disabled),\n [type=\"button\"]:not(:disabled),\n [type=\"reset\"]:not(:disabled),\n [type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n }\n\n ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n\n svg {\n vertical-align: middle;\n }\n\n ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n }\n}\n","/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n@layer data-grid-base {\n :root {\n color-scheme: light;\n --cui-white: #fff;\n --cui-primary: #5856d6;\n --cui-primary-rgb: 88, 86, 214;\n --cui-danger: #e55353;\n --cui-body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --cui-body-font-size: 1rem;\n --cui-body-line-height: 1.5;\n --cui-body-color: rgba(14.5098039216%, 16.831372549%, 21.1843137255%, 0.95);\n --cui-body-bg: #fff;\n --cui-body-bg-rgb: 255, 255, 255;\n --cui-emphasis-color: #080a0c;\n --cui-emphasis-color-rgb: 8, 10, 12;\n --cui-secondary-color: rgba(14.5098039216%, 16.831372549%, 21.1843137255%, 0.681);\n --cui-secondary-bg: #e7eaee;\n --cui-tertiary-bg: #f3f4f7;\n --cui-border-width: 1px;\n --cui-border-color: #dbdfe6;\n --cui-border-radius: .375rem;\n --cui-border-radius-sm: .25rem;\n --cui-box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --cui-focus-ring-color: rgba(88, 86, 214, .25);\n --cui-link-color: #5856d6;\n --cui-link-hover-color: #4645ab;\n }\n [data-coreui-theme=dark] {\n color-scheme: dark;\n --cui-body-color: rgba(255, 255, 255, 0.87);\n --cui-body-bg: #212631;\n --cui-body-bg-rgb: 33, 38, 49;\n --cui-emphasis-color: #fff;\n --cui-emphasis-color-rgb: 255, 255, 255;\n --cui-secondary-color: rgba(255, 255, 255, 0.6);\n --cui-secondary-bg: #323a49;\n --cui-tertiary-bg: rgb(16.2745098039%, 18.8235294118%, 23.9215686275%);\n --cui-border-color: #4a566d;\n --cui-primary: rgb(36.9411764706%, 36.2352941176%, 81.4117647059%);\n --cui-link-color: rgb(59.2941176471%, 58.8235294118%, 88.9411764706%);\n --cui-link-hover-color: rgb(67.2%, 66.8235294118%, 91.3882352941%);\n }\n}\n@layer data-grid-base {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--cui-body-font-family);\n font-size: var(--cui-body-font-size);\n font-weight: 400;\n line-height: var(--cui-body-line-height);\n color: var(--cui-body-color);\n text-align: start;\n background-color: var(--cui-body-bg);\n -webkit-text-size-adjust: 100%;\n }\n .data-grid *,\n .data-grid *::before,\n .data-grid *::after {\n box-sizing: border-box;\n }\n .data-grid table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n .data-grid th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n .data-grid thead,\n .data-grid tbody,\n .data-grid tr,\n .data-grid td,\n .data-grid th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n .data-grid label {\n display: inline-block;\n }\n .data-grid button,\n .data-grid input,\n .data-grid optgroup,\n .data-grid select,\n .data-grid textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n .data-grid button,\n .data-grid select {\n text-transform: none;\n }\n .data-grid button,\n .data-grid [type=button],\n .data-grid [type=reset],\n .data-grid [type=submit] {\n -webkit-appearance: button;\n }\n .data-grid button:not(:disabled),\n .data-grid [type=button]:not(:disabled),\n .data-grid [type=reset]:not(:disabled),\n .data-grid [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n .data-grid ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n .data-grid svg {\n vertical-align: middle;\n }\n .data-grid ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n}\n@layer data-grid-base {\n .data-grid .table {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n --cui-table-color-state: initial;\n --cui-table-bg-state: initial;\n --cui-table-color: var(--cui-emphasis-color);\n --cui-table-bg: var(--cui-body-bg);\n --cui-table-border-color: var(--cui-border-color);\n --cui-table-accent-bg: transparent;\n --cui-table-striped-color: var(--cui-emphasis-color);\n --cui-table-striped-bg: rgba(var(--cui-emphasis-color-rgb), 0.05);\n --cui-table-active-color: var(--cui-emphasis-color);\n --cui-table-active-bg: rgba(var(--cui-emphasis-color-rgb), 0.1);\n --cui-table-hover-color: var(--cui-emphasis-color);\n --cui-table-hover-bg: rgba(var(--cui-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--cui-table-border-color);\n }\n .data-grid .table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--cui-table-color-state, var(--cui-table-color-type, var(--cui-table-color)));\n background-color: var(--cui-table-bg);\n border-bottom-width: var(--cui-border-width);\n box-shadow: inset 0 0 0 9999px var(--cui-table-bg-state, var(--cui-table-bg-type, var(--cui-table-accent-bg)));\n }\n .data-grid .table > tbody {\n vertical-align: inherit;\n }\n .data-grid .table > thead {\n vertical-align: bottom;\n }\n .data-grid .table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n }\n .data-grid .table-bordered > :not(caption) > * > * {\n border-width: var(--cui-border-width) 0;\n }\n .data-grid .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n .data-grid .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n }\n .data-grid .table-hover > tbody > tr:hover > * {\n --cui-table-color-state: var(--cui-table-hover-color);\n --cui-table-bg-state: var(--cui-table-hover-bg);\n }\n .data-grid .table-active {\n --cui-table-color-state: var(--cui-table-active-color);\n --cui-table-bg-state: var(--cui-table-active-bg);\n }\n}\n@layer data-grid-base {\n .data-grid .btn {\n --cui-btn-padding-x: 0.75rem;\n --cui-btn-padding-y: 0.375rem;\n --cui-btn-font-size: 1rem;\n --cui-btn-font-weight: 400;\n --cui-btn-line-height: 1.5;\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-bg: transparent;\n --cui-btn-border-width: var(--cui-border-width);\n --cui-btn-border-color: transparent;\n --cui-btn-border-radius: var(--cui-border-radius);\n --cui-btn-hover-color: var(--cui-btn-color);\n --cui-btn-hover-bg: transparent;\n --cui-btn-hover-border-color: transparent;\n --cui-btn-active-color: var(--cui-btn-hover-color);\n --cui-btn-active-bg: var(--cui-btn-hover-bg);\n --cui-btn-active-border-color: var(--cui-btn-hover-border-color);\n --cui-btn-disabled-color: var(--cui-btn-color);\n --cui-btn-disabled-opacity: .65;\n display: inline-block;\n padding: var(--cui-btn-padding-y) var(--cui-btn-padding-x);\n font-size: var(--cui-btn-font-size);\n font-weight: var(--cui-btn-font-weight);\n line-height: var(--cui-btn-line-height);\n color: var(--cui-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n background-color: var(--cui-btn-bg);\n border: var(--cui-btn-border-width) solid var(--cui-btn-border-color);\n border-radius: var(--cui-btn-border-radius);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .btn:hover {\n color: var(--cui-btn-hover-color);\n background-color: var(--cui-btn-hover-bg);\n border-color: var(--cui-btn-hover-border-color);\n }\n .data-grid .btn:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .btn:active {\n color: var(--cui-btn-active-color);\n background-color: var(--cui-btn-active-bg);\n border-color: var(--cui-btn-active-border-color);\n }\n .data-grid .btn:disabled {\n color: var(--cui-btn-disabled-color);\n pointer-events: none;\n opacity: var(--cui-btn-disabled-opacity);\n }\n .data-grid .btn-sm {\n --cui-btn-padding-y: 0.25rem;\n --cui-btn-padding-x: 0.5rem;\n --cui-btn-font-size: 0.875rem;\n --cui-btn-border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .btn-primary {\n --cui-btn-color: #fff;\n --cui-btn-bg: var(--cui-primary);\n --cui-btn-border-color: var(--cui-primary);\n --cui-btn-hover-color: #fff;\n --cui-btn-hover-bg: color-mix(in srgb, var(--cui-primary) 85%, #000);\n --cui-btn-hover-border-color: color-mix(in srgb, var(--cui-primary) 80%, #000);\n }\n .data-grid .btn-outline-secondary {\n --cui-btn-color: var(--cui-secondary-color);\n --cui-btn-border-color: var(--cui-border-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-hover-border-color: var(--cui-border-color);\n }\n .data-grid .btn-ghost {\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-active-bg: var(--cui-secondary-bg);\n }\n .data-grid .btn-link {\n --cui-btn-color: var(--cui-link-color);\n --cui-btn-hover-color: var(--cui-link-hover-color);\n text-decoration: underline;\n }\n}\n@layer data-grid-base {\n .data-grid .form-control,\n .data-grid .form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--cui-body-color);\n appearance: none;\n background-color: var(--cui-body-bg);\n background-clip: padding-box;\n border: var(--cui-border-width) solid var(--cui-border-color);\n border-radius: var(--cui-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .form-control:focus,\n .data-grid .form-select:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-control:disabled,\n .data-grid .form-select:disabled {\n background-color: var(--cui-secondary-bg);\n opacity: 1;\n }\n .data-grid .form-control::placeholder,\n .data-grid .form-select::placeholder {\n color: var(--cui-secondary-color);\n opacity: 1;\n }\n .data-grid .form-select {\n padding-inline-end: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n }\n .data-grid .form-control-sm,\n .data-grid .form-select-sm {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n .data-grid .form-control.is-invalid {\n border-color: var(--cui-danger);\n }\n .data-grid .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: 0.125rem;\n }\n .data-grid .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n .data-grid .form-check-input {\n --cui-form-check-bg: var(--cui-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--cui-form-check-bg);\n background-image: var(--cui-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--cui-border-width) solid var(--cui-border-color);\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n .data-grid .form-check-input[type=checkbox] {\n border-radius: 0.25em;\n }\n .data-grid .form-check-input[type=radio] {\n border-radius: 50%;\n }\n .data-grid .form-check-input:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-check-input:checked {\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:checked[type=checkbox] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input:checked[type=radio] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input[type=checkbox]:indeterminate {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n }\n .data-grid .form-check-label {\n cursor: pointer;\n }\n .data-grid .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n }\n [data-coreui-theme=dark] .data-grid .form-select {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n }\n}\n@layer data-grid-base {\n .data-grid .pagination {\n --cui-pagination-padding-x: 0.75rem;\n --cui-pagination-padding-y: 0.375rem;\n --cui-pagination-font-size: 1rem;\n --cui-pagination-color: var(--cui-link-color);\n --cui-pagination-bg: var(--cui-body-bg);\n --cui-pagination-border-width: var(--cui-border-width);\n --cui-pagination-border-color: var(--cui-border-color);\n --cui-pagination-border-radius: var(--cui-border-radius);\n --cui-pagination-hover-color: var(--cui-link-hover-color);\n --cui-pagination-hover-bg: var(--cui-tertiary-bg);\n --cui-pagination-hover-border-color: var(--cui-border-color);\n --cui-pagination-active-color: #fff;\n --cui-pagination-active-bg: var(--cui-primary);\n --cui-pagination-active-border-color: var(--cui-primary);\n --cui-pagination-disabled-color: var(--cui-secondary-color);\n --cui-pagination-disabled-bg: var(--cui-secondary-bg);\n --cui-pagination-disabled-border-color: var(--cui-border-color);\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n .data-grid .page-link {\n position: relative;\n display: block;\n padding: var(--cui-pagination-padding-y) var(--cui-pagination-padding-x);\n font-size: var(--cui-pagination-font-size);\n color: var(--cui-pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--cui-pagination-bg);\n border: var(--cui-pagination-border-width) solid var(--cui-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .page-link:hover {\n z-index: 2;\n color: var(--cui-pagination-hover-color);\n background-color: var(--cui-pagination-hover-bg);\n border-color: var(--cui-pagination-hover-border-color);\n }\n .data-grid .page-link:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--cui-border-width));\n }\n .data-grid .page-item:first-child .page-link {\n border-top-left-radius: var(--cui-pagination-border-radius);\n border-bottom-left-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item:last-child .page-link {\n border-top-right-radius: var(--cui-pagination-border-radius);\n border-bottom-right-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item.active .page-link {\n z-index: 3;\n color: var(--cui-pagination-active-color);\n background-color: var(--cui-pagination-active-bg);\n border-color: var(--cui-pagination-active-border-color);\n }\n .data-grid .page-item.disabled .page-link {\n color: var(--cui-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--cui-pagination-disabled-bg);\n border-color: var(--cui-pagination-disabled-border-color);\n }\n .data-grid .pagination-sm {\n --cui-pagination-padding-x: 0.5rem;\n --cui-pagination-padding-y: 0.25rem;\n --cui-pagination-font-size: 0.875rem;\n --cui-pagination-border-radius: var(--cui-border-radius-sm);\n }\n}\n@layer data-grid-base {\n .data-grid .spinner-border {\n --cui-spinner-width: 2rem;\n --cui-spinner-height: 2rem;\n --cui-spinner-vertical-align: -.125em;\n --cui-spinner-border-width: 0.25em;\n --cui-spinner-animation-speed: 0.75s;\n --cui-spinner-animation-name: data-grid-spinner-border;\n display: inline-block;\n flex-shrink: 0;\n width: var(--cui-spinner-width);\n height: var(--cui-spinner-height);\n vertical-align: var(--cui-spinner-vertical-align);\n border: var(--cui-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--cui-spinner-animation-speed) linear infinite var(--cui-spinner-animation-name);\n }\n .data-grid .spinner-border-sm {\n --cui-spinner-width: 1rem;\n --cui-spinner-height: 1rem;\n --cui-spinner-border-width: .2em;\n }\n}\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n@layer data-grid-base {\n .data-grid .visually-hidden:not(caption) {\n position: absolute !important;\n }\n .data-grid .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n}\n.data-grid {\n position: relative;\n display: flex;\n flex-direction: column;\n --cui-data-grid-viewport-max-height: 30rem;\n --cui-data-grid-header-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-header-shadow: inset 0 calc(-1 * var(--cui-border-width, 1px)) 0 var(--cui-border-color, #dee2e6);\n --cui-data-grid-cell-selected-bg: rgba(var(--cui-primary-rgb, 50, 31, 219), 0.12);\n --cui-data-grid-cell-selected-border-color: var(--cui-primary, #321fdb);\n --cui-data-grid-cell-selected-border-width: 1px;\n --cui-data-grid-row-handle-width: 2rem;\n --cui-data-grid-select-cell-width: 2.5rem;\n --cui-data-grid-sorter-margin: 0.25rem;\n --cui-data-grid-sorter-opacity: 0.3;\n --cui-data-grid-spacing: 0.5rem;\n --cui-data-grid-resizer-width: 0.625rem;\n --cui-data-grid-resizer-grip-height: 60%;\n --cui-data-grid-resizer-grip-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-resizer-grip-color-hover: var(--cui-secondary-color, #6c757d);\n --cui-data-grid-pinned-border-width: var(--cui-border-width);\n --cui-data-grid-pinned-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-drop-indicator: var(--cui-primary, #321fdb);\n --cui-data-grid-drag-transition: 0.15s ease;\n --cui-data-grid-menu-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-menu-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-menu-shadow: var(--cui-box-shadow, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));\n --cui-data-grid-menu-min-width: 10rem;\n --cui-data-grid-menu-item-hover-bg: var(--cui-tertiary-bg, #f8f9fa);\n --cui-data-grid-loading-bg: rgba(var(--cui-body-bg-rgb, 255, 255, 255), 0.6);\n --cui-data-grid-pinned-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-focus-ring-width: 2px;\n --cui-data-grid-focus-ring-color: var(--cui-primary, #321fdb);\n}\n.data-grid .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-toolbar-actions {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n}\n.data-grid .data-grid-toolbar-search {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--cui-data-grid-viewport-max-height);\n overflow-y: auto;\n overflow-anchor: none;\n}\n.data-grid .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n}\n.data-grid .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: 0.25rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid [role=grid] :is(td, th):focus-visible {\n outline: var(--cui-data-grid-focus-ring-width) solid var(--cui-data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--cui-data-grid-focus-ring-width));\n}\n.data-grid .data-grid-viewport:focus-visible {\n outline: 0;\n}\n.data-grid .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--cui-data-grid-header-bg);\n box-shadow: var(--cui-data-grid-header-shadow);\n}\n.data-grid .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: 48px;\n vertical-align: middle;\n}\n.data-grid .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n}\n.data-grid .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n}\n.data-grid .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.data-grid .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid .btn-ghost {\n --cui-btn-padding-x: var(--cui-btn-padding-y);\n --cui-btn-line-height: 1;\n}\n.data-grid .data-grid-menu-button {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--cui-data-grid-menu-min-width);\n padding: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.25rem 0.75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-menu-item:hover, .data-grid .data-grid-menu-item:focus-visible {\n background-color: var(--cui-data-grid-menu-item-hover-bg);\n}\n.data-grid .data-grid-menu-item[aria-disabled=true] {\n color: var(--cui-secondary-color, #6c757d);\n cursor: default;\n background: none;\n}\n.data-grid .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n padding: 0.75rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-filter-menu > div {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.data-grid .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.data-grid .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n}\n.data-grid .data-grid-filter-menu-join label {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n}\n.data-grid .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n max-height: 14rem;\n overflow-y: auto;\n}\n.data-grid .data-grid-filter-menu-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n}\n.data-grid .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n max-height: 20rem;\n padding: 0.75rem;\n overflow-y: auto;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-column-chooser-option {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n margin-bottom: 0;\n}\n.data-grid .data-grid-column-chooser-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n padding-top: 0.25rem;\n margin-top: 0.25rem;\n border-top: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-filter-button {\n position: relative;\n margin-inline-start: auto;\n}\n.data-grid .data-grid-filter-button ~ .data-grid-menu-button {\n margin-inline-start: 0;\n}\n.data-grid .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: 0.125rem;\n inset-inline-end: 0.125rem;\n width: 0.375rem;\n height: 0.375rem;\n content: \"\";\n background-color: var(--cui-primary, #321fdb);\n border-radius: 50%;\n}\n.data-grid .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: 0.75;\n}\n.data-grid .data-grid-menu-item-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-menu-divider {\n height: var(--cui-border-width, 1px);\n margin: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-dragging {\n opacity: 0.5;\n}\n.data-grid.data-grid-drag-active {\n cursor: grabbing;\n -webkit-user-select: none;\n user-select: none;\n}\n.data-grid .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1080;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--cui-data-grid-cell-padding-x, 0.5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--cui-data-grid-pinned-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-drop-indicator);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n transform: translate(-9999px, -9999px);\n opacity: 0.9;\n}\n.data-grid .data-grid-drag-ghost-settle {\n transition: transform var(--cui-data-grid-drag-transition), opacity var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drop-indicator {\n position: fixed;\n z-index: 1080;\n pointer-events: none;\n background-color: var(--cui-data-grid-drop-indicator);\n transition: top var(--cui-data-grid-drag-transition), left var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drag-preview {\n transition: transform var(--cui-data-grid-drag-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .data-grid :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n}\n.data-grid .data-grid-drop-indicator-x {\n width: 0.125rem;\n}\n.data-grid .data-grid-drop-indicator-y {\n height: 0.125rem;\n}\n.data-grid .data-grid-cell-selected {\n position: relative;\n background-color: var(--cui-data-grid-cell-selected-bg);\n}\n.data-grid .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--cui-data-grid-cell-selected-border-color);\n}\n.data-grid .data-grid-cell-selected-top::after {\n border-top-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-right::after {\n border-right-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-left::after {\n border-left-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-row-handle-cell {\n width: var(--cui-data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n}\n.data-grid .data-grid-row-handle {\n display: inline-flex;\n color: var(--cui-secondary-color, #6c757d);\n cursor: grab;\n touch-action: none;\n}\n.data-grid .data-grid-select-cell {\n width: var(--cui-data-grid-select-cell-width);\n text-align: center;\n}\n.data-grid .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--cui-data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-sort-icon {\n display: inline-flex;\n font-size: 0.875em;\n opacity: 0;\n}\n.data-grid .data-grid-sort-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n}\n.data-grid[data-coreui-sorter-visibility=always] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon, .data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n}\n.data-grid:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid.data-grid-resizable .data-grid-viewport, .data-grid.data-grid-pinned .data-grid-viewport {\n overflow-x: auto;\n}\n.data-grid.data-grid-resizable .table, .data-grid.data-grid-pinned .table {\n width: max-content;\n min-width: 100%;\n}\n.data-grid.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n}\n.data-grid.data-grid-pinned .table {\n border-collapse: separate;\n border-spacing: 0;\n}\n.data-grid .data-grid-cell-pinned-start,\n.data-grid .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--cui-data-grid-pinned-bg);\n}\n.data-grid .data-grid-header .data-grid-cell-pinned-start,\n.data-grid .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n}\n.data-grid .data-grid-cell-pinned-start-last,\n.data-grid .data-grid-cell-pinned-end-first {\n position: sticky;\n}\n.data-grid .data-grid-cell-pinned-start-last::after,\n.data-grid .data-grid-cell-pinned-end-first::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--cui-data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n}\n.data-grid .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-0.5 * var(--cui-data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cui-data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.data-grid .data-grid-resizer::after {\n width: 2px;\n height: var(--cui-data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--cui-data-grid-resizer-grip-color);\n transition: background-color 0.15s ease;\n}\n.data-grid .data-grid-resizer:hover::after, .data-grid .data-grid-resizer.data-grid-resizer-active::after {\n background-color: var(--cui-data-grid-resizer-grip-color-hover);\n}\n.data-grid .data-grid-spacer > td {\n padding: 0;\n border: 0;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n}\n.data-grid .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n}\n.data-grid .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--cui-data-grid-spacing);\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-tooltip {\n position: fixed;\n z-index: 1080;\n max-width: 12rem;\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.4;\n color: var(--cui-body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--cui-emphasis-color, #000);\n border-radius: var(--cui-border-radius, 0.375rem);\n}\n.data-grid .data-grid-empty > td {\n padding: 2rem 1rem;\n color: var(--cui-secondary-color, #6c757d);\n text-align: center;\n}\n.data-grid .data-grid-pagination {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-top: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination.data-grid-pagination-top {\n border-top: 0;\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination .pagination {\n margin-bottom: 0;\n}\n.data-grid .data-grid-pagination .data-grid-pagination-info {\n margin-inline-start: auto;\n color: var(--cui-secondary-color, #6c757d);\n}\n.data-grid .data-grid-pagination .form-select {\n width: auto;\n}\n\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n }\n .data-grid-print-root h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n .data-grid-print-root table {\n width: 100%;\n border-collapse: collapse;\n }\n .data-grid-print-root :is(th, td) {\n padding: 0.25rem 0.5rem;\n text-align: start;\n border: 1px solid #000;\n }\n .data-grid-print-root thead {\n display: table-header-group;\n }\n .data-grid-print-root tr {\n break-inside: avoid;\n }\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=data-grid.standalone.css.map */","@use \"../config\" as *;\n\n// scss-docs-start base-table-variables\n$base-table-cell-padding-y: .5rem !default;\n$base-table-cell-padding-x: .5rem !default;\n$base-table-striped-factor: .05 !default;\n$base-table-active-factor: .1 !default;\n$base-table-hover-factor: .075 !default;\n// scss-docs-end base-table-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .table {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n --#{$prefix}table-color-state: initial;\n --#{$prefix}table-bg-state: initial;\n --#{$prefix}table-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-bg: var(--#{$prefix}body-bg);\n --#{$prefix}table-border-color: var(--#{$prefix}border-color);\n --#{$prefix}table-accent-bg: transparent;\n --#{$prefix}table-striped-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-striped-factor});\n --#{$prefix}table-active-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-active-factor});\n --#{$prefix}table-hover-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-hover-factor});\n\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--#{$prefix}table-border-color);\n\n > :not(caption) > * > * {\n padding: $base-table-cell-padding-y $base-table-cell-padding-x;\n color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));\n background-color: var(--#{$prefix}table-bg);\n border-bottom-width: var(--#{$prefix}border-width);\n box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-sm > :not(caption) > * > * {\n padding: .25rem .25rem;\n }\n\n .table-bordered > :not(caption) > * > * {\n border-width: var(--#{$prefix}border-width) 0;\n }\n\n .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n .table-hover > tbody > tr:hover > * {\n --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);\n }\n\n .table-active {\n --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-button-variables\n$base-btn-padding-y: .375rem !default;\n$base-btn-padding-x: .75rem !default;\n$base-btn-font-size: 1rem !default;\n$base-btn-padding-y-sm: .25rem !default;\n$base-btn-padding-x-sm: .5rem !default;\n$base-btn-font-size-sm: .875rem !default;\n$base-btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-button-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .btn {\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x};\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y};\n --#{$prefix}btn-font-size: #{$base-btn-font-size};\n --#{$prefix}btn-font-weight: 400;\n --#{$prefix}btn-line-height: 1.5;\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-bg: transparent;\n --#{$prefix}btn-border-width: var(--#{$prefix}border-width);\n --#{$prefix}btn-border-color: transparent;\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}btn-hover-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-hover-bg: transparent;\n --#{$prefix}btn-hover-border-color: transparent;\n --#{$prefix}btn-active-color: var(--#{$prefix}btn-hover-color);\n --#{$prefix}btn-active-bg: var(--#{$prefix}btn-hover-bg);\n --#{$prefix}btn-active-border-color: var(--#{$prefix}btn-hover-border-color);\n --#{$prefix}btn-disabled-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-disabled-opacity: .65;\n\n display: inline-block;\n padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n font-size: var(--#{$prefix}btn-font-size);\n font-weight: var(--#{$prefix}btn-font-weight);\n line-height: var(--#{$prefix}btn-line-height);\n color: var(--#{$prefix}btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--#{$prefix}btn-bg);\n border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n border-radius: var(--#{$prefix}btn-border-radius);\n transition: $base-btn-transition;\n\n &:hover {\n color: var(--#{$prefix}btn-hover-color);\n background-color: var(--#{$prefix}btn-hover-bg);\n border-color: var(--#{$prefix}btn-hover-border-color);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:active {\n color: var(--#{$prefix}btn-active-color);\n background-color: var(--#{$prefix}btn-active-bg);\n border-color: var(--#{$prefix}btn-active-border-color);\n }\n\n &:disabled {\n color: var(--#{$prefix}btn-disabled-color);\n pointer-events: none;\n opacity: var(--#{$prefix}btn-disabled-opacity);\n }\n }\n\n .btn-sm {\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y-sm};\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x-sm};\n --#{$prefix}btn-font-size: #{$base-btn-font-size-sm};\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .btn-primary {\n --#{$prefix}btn-color: #fff;\n --#{$prefix}btn-bg: var(--#{$prefix}primary);\n --#{$prefix}btn-border-color: var(--#{$prefix}primary);\n --#{$prefix}btn-hover-color: #fff;\n --#{$prefix}btn-hover-bg: color-mix(in srgb, var(--#{$prefix}primary) 85%, #000);\n --#{$prefix}btn-hover-border-color: color-mix(in srgb, var(--#{$prefix}primary) 80%, #000);\n }\n\n .btn-outline-secondary {\n --#{$prefix}btn-color: var(--#{$prefix}secondary-color);\n --#{$prefix}btn-border-color: var(--#{$prefix}border-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-hover-border-color: var(--#{$prefix}border-color);\n }\n\n .btn-ghost {\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-active-bg: var(--#{$prefix}secondary-bg);\n }\n\n .btn-link {\n --#{$prefix}btn-color: var(--#{$prefix}link-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}link-hover-color);\n\n text-decoration: underline;\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-form-variables\n$base-input-padding-y: .375rem !default;\n$base-input-padding-x: .75rem !default;\n$base-input-font-size: 1rem !default;\n$base-input-padding-y-sm: .25rem !default;\n$base-input-padding-x-sm: .5rem !default;\n$base-input-font-size-sm: .875rem !default;\n$base-input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n$base-form-select-indicator: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-select-indicator-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-input-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-radio-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\") !default;\n$base-form-check-indeterminate-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\") !default;\n// scss-docs-end base-form-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .form-control,\n .form-select {\n display: block;\n width: 100%;\n padding: $base-input-padding-y $base-input-padding-x;\n font-size: $base-input-font-size;\n font-weight: 400;\n line-height: 1.5;\n color: var(--#{$prefix}body-color);\n appearance: none;\n background-color: var(--#{$prefix}body-bg);\n background-clip: padding-box;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n border-radius: var(--#{$prefix}border-radius);\n transition: $base-input-transition;\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:disabled {\n background-color: var(--#{$prefix}secondary-bg);\n opacity: 1;\n }\n\n &::placeholder {\n color: var(--#{$prefix}secondary-color);\n opacity: 1;\n }\n }\n\n .form-select {\n padding-inline-end: 2.25rem;\n background-image: $base-form-select-indicator;\n background-repeat: no-repeat;\n background-position: right .75rem center;\n background-size: 16px 12px;\n }\n\n .form-control-sm,\n .form-select-sm {\n padding: $base-input-padding-y-sm $base-input-padding-x-sm;\n font-size: $base-input-font-size-sm;\n border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n\n .form-control.is-invalid {\n border-color: var(--#{$prefix}danger);\n }\n\n .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: .125rem;\n }\n\n .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n\n .form-check-input {\n --#{$prefix}form-check-bg: var(--#{$prefix}body-bg);\n\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: .25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--#{$prefix}form-check-bg);\n background-image: var(--#{$prefix}form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n print-color-adjust: exact;\n\n &[type=\"checkbox\"] {\n border-radius: .25em;\n }\n\n &[type=\"radio\"] {\n border-radius: 50%;\n }\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:checked {\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:checked[type=\"checkbox\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-input-checked-bg-image};\n }\n\n &:checked[type=\"radio\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-radio-checked-bg-image};\n }\n\n &[type=\"checkbox\"]:indeterminate {\n --#{$prefix}form-check-bg-image: #{$base-form-check-indeterminate-bg-image};\n\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:disabled {\n pointer-events: none;\n filter: none;\n opacity: .5;\n }\n }\n\n .form-check-label {\n cursor: pointer;\n }\n\n .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: .5;\n }\n }\n\n [data-coreui-theme=\"dark\"] .data-grid .form-select {\n background-image: $base-form-select-indicator-dark;\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-pagination-variables\n$base-pagination-padding-y: .375rem !default;\n$base-pagination-padding-x: .75rem !default;\n$base-pagination-padding-y-sm: .25rem !default;\n$base-pagination-padding-x-sm: .5rem !default;\n$base-pagination-font-size-sm: .875rem !default;\n$base-pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-pagination-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .pagination {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y};\n --#{$prefix}pagination-font-size: 1rem;\n --#{$prefix}pagination-color: var(--#{$prefix}link-color);\n --#{$prefix}pagination-bg: var(--#{$prefix}body-bg);\n --#{$prefix}pagination-border-width: var(--#{$prefix}border-width);\n --#{$prefix}pagination-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}pagination-hover-color: var(--#{$prefix}link-hover-color);\n --#{$prefix}pagination-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}pagination-hover-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-active-color: #fff;\n --#{$prefix}pagination-active-bg: var(--#{$prefix}primary);\n --#{$prefix}pagination-active-border-color: var(--#{$prefix}primary);\n --#{$prefix}pagination-disabled-color: var(--#{$prefix}secondary-color);\n --#{$prefix}pagination-disabled-bg: var(--#{$prefix}secondary-bg);\n --#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);\n\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n\n .page-link {\n position: relative;\n display: block;\n padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n font-size: var(--#{$prefix}pagination-font-size);\n color: var(--#{$prefix}pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--#{$prefix}pagination-bg);\n border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n transition: $base-pagination-transition;\n\n &:hover {\n z-index: 2;\n color: var(--#{$prefix}pagination-hover-color);\n background-color: var(--#{$prefix}pagination-hover-bg);\n border-color: var(--#{$prefix}pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n }\n\n .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--#{$prefix}border-width));\n }\n\n .page-item:first-child .page-link {\n border-top-left-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-left-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item:last-child .page-link {\n border-top-right-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-right-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item.active .page-link {\n z-index: 3;\n color: var(--#{$prefix}pagination-active-color);\n background-color: var(--#{$prefix}pagination-active-bg);\n border-color: var(--#{$prefix}pagination-active-border-color);\n }\n\n .page-item.disabled .page-link {\n color: var(--#{$prefix}pagination-disabled-color);\n pointer-events: none;\n background-color: var(--#{$prefix}pagination-disabled-bg);\n border-color: var(--#{$prefix}pagination-disabled-border-color);\n }\n\n .pagination-sm {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x-sm};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y-sm};\n --#{$prefix}pagination-font-size: #{$base-pagination-font-size-sm};\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius-sm);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-spinner-variables\n$base-spinner-width: 2rem !default;\n$base-spinner-height: $base-spinner-width !default;\n$base-spinner-border-width: .25em !default;\n$base-spinner-animation-speed: .75s !default;\n// scss-docs-end base-spinner-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .spinner-border {\n --#{$prefix}spinner-width: #{$base-spinner-width};\n --#{$prefix}spinner-height: #{$base-spinner-height};\n --#{$prefix}spinner-vertical-align: -.125em;\n --#{$prefix}spinner-border-width: #{$base-spinner-border-width};\n --#{$prefix}spinner-animation-speed: #{$base-spinner-animation-speed};\n --#{$prefix}spinner-animation-name: data-grid-spinner-border;\n\n display: inline-block;\n flex-shrink: 0;\n width: var(--#{$prefix}spinner-width);\n height: var(--#{$prefix}spinner-height);\n vertical-align: var(--#{$prefix}spinner-vertical-align);\n border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n }\n\n .spinner-border-sm {\n --#{$prefix}spinner-width: 1rem;\n --#{$prefix}spinner-height: 1rem;\n --#{$prefix}spinner-border-width: .2em;\n }\n }\n}\n\n// Keyframes cannot be scoped; the name is namespaced instead so it can never\n// collide with the host page's own animations.\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n","@use \"../config\" as *;\n\n// `!important` declarations invert the layer order — a layered `!important`\n// beats an unlayered one — so this block wins even when CoreUI is loaded.\n// It is byte-for-byte the same rule, so that costs nothing.\n\n@layer #{$base-layer} {\n .data-grid {\n .visually-hidden:not(caption) {\n position: absolute !important;\n }\n\n .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n }\n}\n","@use \"../functions/defaults\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../config\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n\n// Everything resolves through CoreUI semantic variables, so light/dark theming\n// via [data-coreui-theme] works with no extra rules. The fallbacks keep the grid\n// legible when the CoreUI stylesheet is absent; `data-grid.standalone.css` fills\n// the rest in.\n\n// scss-docs-start data-grid-variables\n$data-grid-viewport-max-height: 30rem !default;\n$data-grid-header-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-header-shadow: inset 0 calc(-1 * var(--#{$prefix}border-width, 1px)) 0 var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-cell-selected-bg: rgba(var(--#{$prefix}primary-rgb, 50, 31, 219), .12) !default;\n$data-grid-cell-selected-border-color: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-cell-selected-border-width: 1px !default;\n$data-grid-row-handle-width: 2rem !default;\n$data-grid-select-cell-width: 2.5rem !default;\n$data-grid-sorter-margin: .25rem !default;\n$data-grid-sorter-opacity: .3 !default;\n$data-grid-spacing: .5rem !default;\n$data-grid-resizer-width: .625rem !default;\n$data-grid-resizer-grip-height: 60% !default;\n$data-grid-resizer-grip-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-resizer-grip-color-hover: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-pinned-border-width: var(--#{$prefix}border-width) !default;\n$data-grid-pinned-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-drop-indicator: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-drag-transition: .15s ease !default;\n$data-grid-menu-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-menu-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-menu-shadow: var(--#{$prefix}box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)) !default;\n$data-grid-menu-min-width: 10rem !default;\n$data-grid-menu-item-hover-bg: var(--#{$prefix}tertiary-bg, #f8f9fa) !default;\n$data-grid-loading-bg: rgba(var(--#{$prefix}body-bg-rgb, 255, 255, 255), .6) !default;\n$data-grid-pinned-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-focus-ring-width: 2px !default;\n$data-grid-focus-ring-color: var(--#{$prefix}primary, #321fdb) !default;\n// scss-docs-end data-grid-variables\n\n// Values that shape the grid but have no runtime knob. Sass-only on purpose:\n// a token here would be a new public custom property, which is a separate call.\n// scss-docs-start data-grid-layout-variables\n$data-grid-bar-min-height: 48px !default;\n$data-grid-border-width: var(--#{$prefix}border-width, 1px) !default;\n$data-grid-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-border-radius: var(--#{$prefix}border-radius, .375rem) !default;\n$data-grid-muted-color: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-popup-max-width: 18rem !default;\n$data-grid-gap-sm: .25rem !default;\n$data-grid-tooltip-z-index: 1080 !default;\n// scss-docs-end data-grid-layout-variables\n\n$data-grid-tokens: () !default;\n\n// scss-docs-start data-grid-css-vars\n// stylelint-disable-next-line scss/dollar-variable-default\n$data-grid-tokens: defaults(\n (\n --#{$prefix}data-grid-viewport-max-height: #{$data-grid-viewport-max-height},\n --#{$prefix}data-grid-header-bg: #{$data-grid-header-bg},\n --#{$prefix}data-grid-header-shadow: #{$data-grid-header-shadow},\n --#{$prefix}data-grid-cell-selected-bg: #{$data-grid-cell-selected-bg},\n --#{$prefix}data-grid-cell-selected-border-color: #{$data-grid-cell-selected-border-color},\n --#{$prefix}data-grid-cell-selected-border-width: #{$data-grid-cell-selected-border-width},\n --#{$prefix}data-grid-row-handle-width: #{$data-grid-row-handle-width},\n --#{$prefix}data-grid-select-cell-width: #{$data-grid-select-cell-width},\n --#{$prefix}data-grid-sorter-margin: #{$data-grid-sorter-margin},\n --#{$prefix}data-grid-sorter-opacity: #{$data-grid-sorter-opacity},\n --#{$prefix}data-grid-spacing: #{$data-grid-spacing},\n --#{$prefix}data-grid-resizer-width: #{$data-grid-resizer-width},\n --#{$prefix}data-grid-resizer-grip-height: #{$data-grid-resizer-grip-height},\n --#{$prefix}data-grid-resizer-grip-color: #{$data-grid-resizer-grip-color},\n --#{$prefix}data-grid-resizer-grip-color-hover: #{$data-grid-resizer-grip-color-hover},\n --#{$prefix}data-grid-pinned-border-width: #{$data-grid-pinned-border-width},\n --#{$prefix}data-grid-pinned-border-color: #{$data-grid-pinned-border-color},\n --#{$prefix}data-grid-drop-indicator: #{$data-grid-drop-indicator},\n --#{$prefix}data-grid-drag-transition: #{$data-grid-drag-transition},\n --#{$prefix}data-grid-menu-bg: #{$data-grid-menu-bg},\n --#{$prefix}data-grid-menu-border-color: #{$data-grid-menu-border-color},\n --#{$prefix}data-grid-menu-shadow: #{$data-grid-menu-shadow},\n --#{$prefix}data-grid-menu-min-width: #{$data-grid-menu-min-width},\n --#{$prefix}data-grid-menu-item-hover-bg: #{$data-grid-menu-item-hover-bg},\n --#{$prefix}data-grid-loading-bg: #{$data-grid-loading-bg},\n --#{$prefix}data-grid-pinned-bg: #{$data-grid-pinned-bg},\n --#{$prefix}data-grid-focus-ring-width: #{$data-grid-focus-ring-width},\n --#{$prefix}data-grid-focus-ring-color: #{$data-grid-focus-ring-color},\n ),\n $data-grid-tokens\n);\n// scss-docs-end data-grid-css-vars\n\n.data-grid {\n // The column menu is positioned against the grid root (it must escape the\n // viewport's overflow while staying inside the token scope).\n position: relative;\n // A column so that a root given an explicit height actually constrains the\n // scroller: the viewport takes what the toolbar and pagination leave, and\n // min-height: 0 lets it shrink below its content instead of overflowing the\n // root. With no height set, this changes nothing — the viewport is sized by\n // its content up to the max-height token.\n display: flex;\n flex-direction: column;\n\n @include tokens($data-grid-tokens);\n\n .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .data-grid-toolbar-actions {\n display: flex;\n gap: $data-grid-gap-sm;\n align-items: center;\n }\n\n .data-grid-toolbar-search {\n margin-inline-start: auto;\n }\n\n .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--#{$prefix}data-grid-viewport-max-height);\n overflow-y: auto;\n // Windowed rendering resizes the spacer rows and recycles row elements on\n // every frame; browser scroll anchoring chases those mutations and keeps\n // adjusting scrollTop, which turns wheel scrolling into a feedback loop.\n overflow-anchor: none;\n }\n\n // Inline editing: the in-cell editor fills the cell; the popup layer hosts\n // rich editors (date pickers, selects) anchored over the cell.\n .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n }\n\n .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: $data-grid-gap-sm;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n // cellNavigation: the roving-tabindex active cell. The ring is inset so the\n // sticky header and pinned columns don't clip it.\n [role=\"grid\"] :is(td, th):focus-visible {\n outline: var(--#{$prefix}data-grid-focus-ring-width) solid var(--#{$prefix}data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--#{$prefix}data-grid-focus-ring-width));\n }\n\n .data-grid-viewport:focus-visible {\n outline: 0;\n }\n\n .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--#{$prefix}data-grid-header-bg);\n box-shadow: var(--#{$prefix}data-grid-header-shadow);\n }\n\n // Header label row: fixed 48px with vertically centered content (height on a\n // table cell acts as a min; min-height is ignored on table-cell).\n .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: $data-grid-bar-min-height;\n vertical-align: middle;\n }\n\n .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n }\n\n .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n }\n\n .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Icon-only ghost buttons: square them by matching horizontal padding to\n // vertical (follows .btn / .btn-sm automatically) and collapsing the text\n // line-height so height follows the icon, not a 1.5em text line.\n .btn-ghost {\n --#{$prefix}btn-padding-x: var(--#{$prefix}btn-padding-y);\n --#{$prefix}btn-line-height: 1;\n }\n\n .data-grid-menu-button {\n margin-inline-start: auto;\n }\n\n .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n padding: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: .5rem;\n width: 100%;\n padding: $data-grid-gap-sm .75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n\n &:hover,\n &:focus-visible {\n background-color: var(--#{$prefix}data-grid-menu-item-hover-bg);\n }\n\n // Disabled items stay focusable (aria-disabled, APG menu pattern) so the\n // roving arrow cycle can reach them.\n &[aria-disabled=\"true\"] {\n color: $data-grid-muted-color;\n cursor: default;\n background: none;\n }\n }\n\n .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n padding: .75rem;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n\n > div {\n display: flex;\n flex-direction: column;\n gap: .5rem;\n }\n }\n\n .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n\n label {\n display: flex;\n gap: .375rem;\n align-items: center;\n }\n }\n\n .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n max-height: 14rem;\n overflow-y: auto;\n }\n\n .data-grid-filter-menu-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n }\n\n .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n max-height: 20rem;\n padding: .75rem;\n overflow-y: auto;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-column-chooser-option {\n display: flex;\n gap: .375rem;\n align-items: center;\n margin-bottom: 0;\n }\n\n .data-grid-column-chooser-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n padding-top: $data-grid-gap-sm;\n margin-top: $data-grid-gap-sm;\n border-top: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-filter-button {\n position: relative;\n // Right-align the trailing controls as a group: the filter button takes the\n // auto margin (menu drops its own below) so filter and menu sit together at\n // the end, matching a menu-only header.\n margin-inline-start: auto;\n\n ~ .data-grid-menu-button {\n margin-inline-start: 0;\n }\n }\n\n // Active-filter indicator dot on the filter button.\n .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: .125rem;\n inset-inline-end: .125rem;\n width: .375rem;\n height: .375rem;\n content: \"\";\n background-color: var(--#{$prefix}primary, #321fdb);\n border-radius: 50%;\n }\n\n .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: .75;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n .data-grid-menu-divider {\n height: $data-grid-border-width;\n margin: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-dragging {\n opacity: .5;\n }\n\n // While a drag is live the whole grid keeps the grabbing cursor and stops\n // painting a text selection under the pointer.\n &.data-grid-drag-active {\n cursor: grabbing;\n user-select: none;\n }\n\n // Both overlays are position: fixed (placed from viewport coordinates in JS)\n // so they escape the viewport's overflow, like the tooltip.\n .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $data-grid-tooltip-z-index;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--#{$prefix}data-grid-cell-padding-x, .5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-drop-indicator);\n border-radius: $data-grid-border-radius;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);\n transform: translate(-9999px, -9999px);\n opacity: .9;\n }\n\n // The settling ghost: on release it flies from the pointer to the slot the\n // item landed in (or back home on cancel) and fades out there.\n .data-grid-drag-ghost-settle {\n transition: transform var(--#{$prefix}data-grid-drag-transition), opacity var(--#{$prefix}data-grid-drag-transition);\n }\n\n .data-grid-drop-indicator {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-drop-indicator);\n transition: top var(--#{$prefix}data-grid-drag-transition), left var(--#{$prefix}data-grid-drag-transition);\n }\n\n // The live reorder preview: cells slide to the layout the drop will produce.\n // Transform only, so nothing reflows and the real order still changes once.\n .data-grid-drag-preview {\n transition: transform var(--#{$prefix}data-grid-drag-transition);\n }\n\n // Someone who asked the OS to stop moving things still gets the preview —\n // it snaps to the final layout instead of gliding there.\n @media (prefers-reduced-motion: reduce) {\n :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n }\n\n // The line is 2px across its short axis and spans the grid along the other;\n // JS sets the spanning size, the axis class sets the thickness.\n .data-grid-drop-indicator-x {\n width: .125rem;\n }\n\n .data-grid-drop-indicator-y {\n height: .125rem;\n }\n\n // Cell selection: a tinted fill on every selected cell, plus an outline\n // drawn only on the sides that sit on the selection's boundary — so a\n // rectangle reads as one region instead of a grid of boxes. The outline is\n // an overlay rather than a border: a border on a table cell would shift the\n // whole row's layout the moment a range is selected.\n .data-grid-cell-selected {\n position: relative;\n background-color: var(--#{$prefix}data-grid-cell-selected-bg);\n }\n\n .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--#{$prefix}data-grid-cell-selected-border-color);\n }\n\n .data-grid-cell-selected-top::after {\n border-top-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-right::after {\n border-right-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-left::after {\n border-left-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n // The reorder column: as narrow as the grip, and the grip itself is the only\n // thing that starts a row drag (a row is full of interactive content that a\n // whole-row handle would swallow).\n .data-grid-row-handle-cell {\n width: var(--#{$prefix}data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n }\n\n .data-grid-row-handle {\n display: inline-flex;\n color: $data-grid-resizer-grip-color-hover;\n cursor: grab;\n touch-action: none;\n }\n\n .data-grid-select-cell {\n width: var(--#{$prefix}data-grid-select-cell-width);\n text-align: center;\n }\n\n .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--#{$prefix}data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n user-select: none;\n background: none;\n border: 0;\n }\n\n .data-grid-sort-icon {\n display: inline-flex;\n font-size: .875em;\n opacity: 0;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n // The active sort direction is always visible; the neutral (unsorted) icon is\n // hidden unless `sorterVisibility` opts it in (steadily via \"always\", or on\n // header hover/focus via \"hover\").\n .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n }\n\n &[data-coreui-sorter-visibility=\"always\"] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon,\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n }\n\n // Body cells render on a single line and truncate with an ellipsis instead of\n // spilling their content across the fixed-layout column boundary onto the next\n // column. Matches the default of AG Grid / MUI X Data Grid and TanStack's\n // virtualized-table guidance, and keeps every row a uniform height for the\n // fixed-height virtualizer (wrapping would desync `estimateSize`). Pinned cells\n // are excluded so their shadow pseudo-element (painted outside the box via a\n // translate) isn't clipped; the select cell holds only a checkbox.\n //\n // Auto row height is the deliberate exception: there the virtualizer measures\n // each row, so cells are free to wrap. Scoping the rule out is what keeps the\n // two modes from fighting over specificity.\n &:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Widths applied to each header cell drive the column layout; letting the\n // table grow to its content (min-width keeps it filling a wide viewport)\n // turns a resize or a pin into horizontal scroll rather than squeezing\n // neighbours. Both features share this layout mode.\n &.data-grid-resizable,\n &.data-grid-pinned {\n .data-grid-viewport {\n overflow-x: auto;\n }\n\n .table {\n width: max-content;\n min-width: 100%;\n }\n }\n\n // A pinned th is already sticky (a positioned containing block for the\n // resizer), so only non-pinned header cells need explicit relative here.\n &.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n }\n\n &.data-grid-pinned .table {\n // position: sticky is unreliable on collapsed-border tables; the grid opts\n // into separate borders so pinned cells stay put on horizontal scroll.\n border-collapse: separate;\n border-spacing: 0;\n }\n\n .data-grid-cell-pinned-start,\n .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n }\n\n .data-grid-header .data-grid-cell-pinned-start,\n .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n }\n\n // Edge cells cast a shadow over the scrolling content. A pseudo-element is\n // used because the cell's own box-shadow carries the table striping accent.\n .data-grid-cell-pinned-start-last,\n .data-grid-cell-pinned-end-first {\n position: sticky;\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--#{$prefix}data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n }\n }\n\n .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-.5 * var(--#{$prefix}data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--#{$prefix}data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n user-select: none;\n\n // Always-visible grip so the resizable edge is discoverable, not just a\n // bare hover target.\n &::after {\n width: 2px;\n height: var(--#{$prefix}data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--#{$prefix}data-grid-resizer-grip-color);\n transition: background-color .15s ease;\n }\n\n &:hover::after,\n &.data-grid-resizer-active::after {\n background-color: var(--#{$prefix}data-grid-resizer-grip-color-hover);\n }\n }\n\n .data-grid-spacer > td {\n padding: 0;\n border: 0;\n }\n\n // Spacer rows break `nth-of-type` striping, so striping inside the grid is\n // driven by the absolute row index (.data-grid-row-odd) instead.\n .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n }\n\n .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n // The last row closes on the viewport edge (or the pagination border), so it\n // doesn't need its own separator line.\n .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n }\n\n .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Infinite scroll's \"next page arriving\" strip. Sticky, not an overlay: the\n // rows already loaded stay readable while the grid appends to them.\n .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--#{$prefix}data-grid-spacing);\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Shared icon-button tooltip. position: fixed (set in JS) so it escapes the\n // viewport overflow; theme-inverted like CoreUI's own tooltip.\n .data-grid-tooltip {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n max-width: 12rem;\n padding: $data-grid-gap-sm .5rem;\n font-size: .875rem;\n line-height: 1.4;\n color: var(--#{$prefix}body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--#{$prefix}emphasis-color, #000);\n border-radius: $data-grid-border-radius;\n }\n\n .data-grid-empty > td {\n padding: 2rem 1rem;\n color: $data-grid-muted-color;\n text-align: center;\n }\n\n .data-grid-pagination {\n display: flex;\n // Wrap the page controls, count and page-size select onto multiple rows on\n // narrow viewports; without this the fixed row overflows and scrolls the page\n // instead of staying inside the grid.\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-top: $data-grid-border-width solid $data-grid-border-color;\n\n &.data-grid-pagination-top {\n border-top: 0;\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .pagination {\n margin-bottom: 0;\n }\n\n .data-grid-pagination-info {\n margin-inline-start: auto;\n color: $data-grid-muted-color;\n }\n\n .form-select {\n width: auto;\n }\n }\n}\n\n// Print: the grid renders a plain, complete table into the document (see\n// util/print.ts) and hides everything else, so a virtualized grid prints all\n// its rows instead of the twenty in the window.\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n\n h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n\n :is(th, td) {\n padding: $data-grid-gap-sm .5rem;\n text-align: start;\n border: 1px solid #000;\n }\n\n thead {\n display: table-header-group;\n }\n\n tr {\n break-inside: avoid;\n }\n }\n\n // :has() is inside the browser floor (.browserslistrc), and scoping to the\n // body's own children keeps the clone's ancestors from being hidden.\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n","// Vendored from @coreui/coreui-pro (scss/mixins/_tokens.scss, v6 line).\n// Sync manually — do not diverge.\n\n// Output a token map as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n"]}
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * CoreUI PRO data-grid v0.3.0-rc.0 (https://coreui.io)
2
+ * CoreUI PRO data-grid v0.4.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * License (https://coreui.io/pro/license/)
5
5
  */
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
- //#region src/util/clipboard.ts
7
+ // src/util/clipboard.ts
8
8
  const DELIMITER = " ";
9
9
  const ROW_SEPARATOR = "\n";
10
10
  const REGION_SEPARATOR = "\n\n";
@@ -49,7 +49,6 @@ const copyCellSelection = async (table, columns) => {
49
49
  }
50
50
  return text;
51
51
  };
52
- //#endregion
53
52
  exports.copyCellSelection = copyCellSelection;
54
53
  exports.serializeCellSelection = serializeCellSelection;
55
54
 
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * CoreUI PRO data-grid v0.3.0-rc.0 (https://coreui.io)
2
+ * CoreUI PRO data-grid v0.4.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * License (https://coreui.io/pro/license/)
5
5
  */
6
- //#region src/util/clipboard.ts
6
+ // src/util/clipboard.ts
7
7
  const DELIMITER = " ";
8
8
  const ROW_SEPARATOR = "\n";
9
9
  const REGION_SEPARATOR = "\n\n";
@@ -48,7 +48,6 @@ const copyCellSelection = async (table, columns) => {
48
48
  }
49
49
  return text;
50
50
  };
51
- //#endregion
52
51
  export { copyCellSelection, serializeCellSelection };
53
52
 
54
53
  //# sourceMappingURL=clipboard.mjs.map
package/dist/js/csv.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * CoreUI PRO data-grid v0.3.0-rc.0 (https://coreui.io)
2
+ * CoreUI PRO data-grid v0.4.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * License (https://coreui.io/pro/license/)
5
5
  */
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
- const require_export_table = require("./export-table-D762wrZ1.cjs");
8
- //#region src/util/csv.ts
7
+ const require_export_table = require("./export-table-BiB3_lVo.cjs");
8
+ // src/util/csv.ts
9
9
  /**
10
10
  * --------------------------------------------------------------------------
11
11
  * CoreUI PRO data-grid util/csv.ts
@@ -22,9 +22,9 @@ const exportCsv = (table, options = {}) => {
22
22
  const csv = [line(columns.map((column) => require_export_table.headerFor(column))), ...require_export_table.rowsFor(table, options.scope).map((row) => line(columns.map((column) => {
23
23
  const value = row.getValue(column.id);
24
24
  const formatter = require_export_table.formatterFor(column);
25
- return formatter ? String(formatter(value, row.original) ?? "") : String(value ?? "");
25
+ return String(formatter ? formatter(value, row.original) ?? "" : value ?? "");
26
26
  })))].join("\r\n");
27
- return options.bom ? `\uFEFF${csv}` : csv;
27
+ return options.bom ? `\u{FEFF}${csv}` : csv;
28
28
  };
29
29
  const downloadCsv = (table, options = {}) => {
30
30
  const blob = new Blob([exportCsv(table, options)], { type: "text/csv;charset=utf-8;" });
@@ -38,7 +38,6 @@ const downloadCsv = (table, options = {}) => {
38
38
  anchor.remove();
39
39
  setTimeout(() => URL.revokeObjectURL(url));
40
40
  };
41
- //#endregion
42
41
  exports.downloadCsv = downloadCsv;
43
42
  exports.exportCsv = exportCsv;
44
43
 
@@ -1 +1 @@
1
- {"version":3,"file":"csv.cjs","names":["columnsFor","headerFor","rowsFor","formatterFor"],"sources":["../../src/util/csv.ts"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/csv.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n columnsFor, formatterFor, headerFor, rowsFor, type ExportScope, type ExportTable\n} from './export-table'\n\nexport interface CsvOptions {\n scope?: ExportScope\n delimiter?: string\n bom?: boolean\n sanitize?: boolean\n}\n\nexport interface CsvDownloadOptions extends CsvOptions {\n filename?: string\n}\n\nexport type CsvTable = ExportTable\n\nconst escapeField = (value: string, delimiter: string): string =>\n /[\"\\r\\n]/.test(value) || value.includes(delimiter) ? `\"${value.replace(/\"/g, '\"\"')}\"` : value\n\n// CSV formula injection: a leading =, +, -, @, tab or CR makes spreadsheets treat\n// the cell as a formula. Opt-in guard prefixes such fields with an apostrophe.\nconst sanitizeField = (value: string): string =>\n /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value\n\nexport const exportCsv = (table: CsvTable, options: CsvOptions = {}): string => {\n const delimiter = options.delimiter ?? ','\n const columns = columnsFor(table)\n\n const process = (field: string) => escapeField(options.sanitize ? sanitizeField(field) : field, delimiter)\n const line = (fields: string[]) => fields.map(process).join(delimiter)\n\n const header = line(columns.map(column => headerFor(column)))\n const body = rowsFor(table, options.scope).map(row =>\n line(columns.map(column => {\n const value = row.getValue(column.id)\n const formatter = formatterFor(column)\n // Coerce: a formatter may return a number/null in plain-JS usage.\n return formatter ? String(formatter(value, row.original) ?? '') : String(value ?? '')\n }))\n )\n\n const csv = [header, ...body].join('\\r\\n')\n return options.bom ? `\\uFEFF${csv}` : csv\n}\n\nexport const downloadCsv = (table: CsvTable, options: CsvDownloadOptions = {}): void => {\n const blob = new Blob([exportCsv(table, options)], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const anchor = document.createElement('a')\n anchor.href = url\n anchor.download = options.filename ?? 'export.csv'\n anchor.style.display = 'none'\n // Attach before clicking (older Firefox) and defer revoke (Safari race).\n document.body.append(anchor)\n anchor.click()\n anchor.remove()\n setTimeout(() => URL.revokeObjectURL(url))\n}\n"],"mappings":";;;;;;;;;;;;;;AAwBA,MAAM,eAAe,OAAe,cAClC,UAAU,KAAK,KAAK,KAAK,MAAM,SAAS,SAAS,IAAI,IAAI,MAAM,QAAQ,MAAM,MAAI,EAAE,KAAK;AAI1F,MAAM,iBAAiB,UACrB,eAAe,KAAK,KAAK,IAAI,IAAI,UAAU;AAE7C,MAAa,aAAa,OAAiB,UAAsB,CAAC,MAAc;CAC9E,MAAM,YAAY,QAAQ,aAAa;CACvC,MAAM,UAAUA,qBAAAA,WAAW,KAAK;CAEhC,MAAM,WAAW,UAAkB,YAAY,QAAQ,WAAW,cAAc,KAAK,IAAI,OAAO,SAAS;CACzG,MAAM,QAAQ,WAAqB,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;CAYrE,MAAM,MAAM,CAVG,KAAK,QAAQ,KAAI,WAAUC,qBAAAA,UAAU,MAAM,CAAC,CAUzC,GAAG,GATRC,qBAAAA,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAI,QAC7C,KAAK,QAAQ,KAAI,WAAU;EACzB,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;EACpC,MAAM,YAAYC,qBAAAA,aAAa,MAAM;EAErC,OAAO,YAAY,OAAO,UAAU,OAAO,IAAI,QAAQ,KAAK,EAAE,IAAI,OAAO,SAAS,EAAE;CACtF,CAAC,CAAC,CAGuB,CAAC,CAAC,CAAC,KAAK,MAAM;CACzC,OAAO,QAAQ,MAAM,SAAS,QAAQ;AACxC;AAEA,MAAa,eAAe,OAAiB,UAA8B,CAAC,MAAY;CACtF,MAAM,OAAO,IAAI,KAAK,CAAC,UAAU,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,0BAA0B,CAAC;CACtF,MAAM,MAAM,IAAI,gBAAgB,IAAI;CACpC,MAAM,SAAS,SAAS,cAAc,GAAG;CACzC,OAAO,OAAO;CACd,OAAO,WAAW,QAAQ,YAAY;CACtC,OAAO,MAAM,UAAU;CAEvB,SAAS,KAAK,OAAO,MAAM;CAC3B,OAAO,MAAM;CACb,OAAO,OAAO;CACd,iBAAiB,IAAI,gBAAgB,GAAG,CAAC;AAC3C"}
1
+ {"version":3,"file":"csv.cjs","names":["columnsFor","headerFor","rowsFor","formatterFor"],"sources":["../../src/util/csv.ts"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/csv.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n columnsFor, formatterFor, headerFor, rowsFor, type ExportScope, type ExportTable\n} from './export-table'\n\nexport interface CsvOptions {\n scope?: ExportScope\n delimiter?: string\n bom?: boolean\n sanitize?: boolean\n}\n\nexport interface CsvDownloadOptions extends CsvOptions {\n filename?: string\n}\n\nexport type CsvTable = ExportTable\n\nconst escapeField = (value: string, delimiter: string): string =>\n /[\"\\r\\n]/.test(value) || value.includes(delimiter) ? `\"${value.replace(/\"/g, '\"\"')}\"` : value\n\n// CSV formula injection: a leading =, +, -, @, tab or CR makes spreadsheets treat\n// the cell as a formula. Opt-in guard prefixes such fields with an apostrophe.\nconst sanitizeField = (value: string): string =>\n /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value\n\nexport const exportCsv = (table: CsvTable, options: CsvOptions = {}): string => {\n const delimiter = options.delimiter ?? ','\n const columns = columnsFor(table)\n\n const process = (field: string) => escapeField(options.sanitize ? sanitizeField(field) : field, delimiter)\n const line = (fields: string[]) => fields.map(process).join(delimiter)\n\n const header = line(columns.map(column => headerFor(column)))\n const body = rowsFor(table, options.scope).map(row =>\n line(columns.map(column => {\n const value = row.getValue(column.id)\n const formatter = formatterFor(column)\n // Coerce: a formatter may return a number/null in plain-JS usage.\n return String(formatter ? formatter(value, row.original) ?? '' : value ?? '')\n }))\n )\n\n const csv = [header, ...body].join('\\r\\n')\n return options.bom ? `\\u{FEFF}${csv}` : csv\n}\n\nexport const downloadCsv = (table: CsvTable, options: CsvDownloadOptions = {}): void => {\n const blob = new Blob([exportCsv(table, options)], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const anchor = document.createElement('a')\n anchor.href = url\n anchor.download = options.filename ?? 'export.csv'\n anchor.style.display = 'none'\n // Attach before clicking (older Firefox) and defer revoke (Safari race).\n document.body.append(anchor)\n anchor.click()\n anchor.remove()\n setTimeout(() => URL.revokeObjectURL(url))\n}\n"],"mappings":";;;;;;;;;;;;;;AAwBA,MAAM,eAAe,OAAe,cAClC,UAAU,KAAK,KAAK,KAAK,MAAM,SAAS,SAAS,IAAI,IAAI,MAAM,QAAQ,MAAM,MAAI,EAAE,KAAK;AAI1F,MAAM,iBAAiB,UACrB,eAAe,KAAK,KAAK,IAAI,IAAI,UAAU;AAE7C,MAAa,aAAa,OAAiB,UAAsB,CAAC,MAAc;CAC9E,MAAM,YAAY,QAAQ,aAAa;CACvC,MAAM,UAAUA,qBAAAA,WAAW,KAAK;CAEhC,MAAM,WAAW,UAAkB,YAAY,QAAQ,WAAW,cAAc,KAAK,IAAI,OAAO,SAAS;CACzG,MAAM,QAAQ,WAAqB,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;CAYrE,MAAM,MAAM,CAVG,KAAK,QAAQ,KAAI,WAAUC,qBAAAA,UAAU,MAAM,CAAC,CAUzC,GAAG,GATRC,qBAAAA,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAI,QAC7C,KAAK,QAAQ,KAAI,WAAU;EACzB,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;EACpC,MAAM,YAAYC,qBAAAA,aAAa,MAAM;EAErC,OAAO,OAAO,YAAY,UAAU,OAAO,IAAI,QAAQ,KAAK,KAAK,SAAS,EAAE;CAC9E,CAAC,CAAC,CAGuB,CAAC,CAAC,CAAC,KAAK,MAAM;CACzC,OAAO,QAAQ,MAAM,WAAW,QAAQ;AAC1C;AAEA,MAAa,eAAe,OAAiB,UAA8B,CAAC,MAAY;CACtF,MAAM,OAAO,IAAI,KAAK,CAAC,UAAU,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,0BAA0B,CAAC;CACtF,MAAM,MAAM,IAAI,gBAAgB,IAAI;CACpC,MAAM,SAAS,SAAS,cAAc,GAAG;CACzC,OAAO,OAAO;CACd,OAAO,WAAW,QAAQ,YAAY;CACtC,OAAO,MAAM,UAAU;CAEvB,SAAS,KAAK,OAAO,MAAM;CAC3B,OAAO,MAAM;CACb,OAAO,OAAO;CACd,iBAAiB,IAAI,gBAAgB,GAAG,CAAC;AAC3C"}