@coreui/data-grid 0.2.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 (143) hide show
  1. package/README.md +4 -2
  2. package/dist/css/data-grid.css +11 -11
  3. package/dist/css/data-grid.css.map +1 -1
  4. package/dist/css/data-grid.min.css +2 -2
  5. package/dist/css/data-grid.min.css.map +1 -1
  6. package/dist/css/data-grid.standalone.css +1066 -0
  7. package/dist/css/data-grid.standalone.css.map +1 -0
  8. package/dist/css/data-grid.standalone.min.css +5 -0
  9. package/dist/css/data-grid.standalone.min.css.map +1 -0
  10. package/dist/js/clipboard.cjs +2 -3
  11. package/dist/js/clipboard.mjs +2 -3
  12. package/dist/js/csv.cjs +5 -6
  13. package/dist/js/csv.cjs.map +1 -1
  14. package/dist/js/csv.mjs +5 -6
  15. package/dist/js/csv.mjs.map +1 -1
  16. package/dist/js/data-grid.esm.js +5685 -5422
  17. package/dist/js/data-grid.esm.js.map +1 -1
  18. package/dist/js/data-grid.esm.min.js +2 -2
  19. package/dist/js/data-grid.esm.min.js.map +1 -1
  20. package/dist/js/data-grid.js +5685 -5423
  21. package/dist/js/data-grid.js.map +1 -1
  22. package/dist/js/data-grid.lite.esm.js +2707 -2629
  23. package/dist/js/data-grid.lite.esm.js.map +1 -1
  24. package/dist/js/data-grid.lite.esm.min.js +2 -2
  25. package/dist/js/data-grid.lite.esm.min.js.map +1 -1
  26. package/dist/js/data-grid.lite.js +2707 -2630
  27. package/dist/js/data-grid.lite.js.map +1 -1
  28. package/dist/js/data-grid.lite.min.js +2 -2
  29. package/dist/js/data-grid.lite.min.js.map +1 -1
  30. package/dist/js/data-grid.lite.mjs +2707 -2629
  31. package/dist/js/data-grid.lite.mjs.map +1 -1
  32. package/dist/js/data-grid.min.js +2 -2
  33. package/dist/js/data-grid.min.js.map +1 -1
  34. package/dist/js/data-grid.mjs +5685 -5422
  35. package/dist/js/data-grid.mjs.map +1 -1
  36. package/dist/js/direction.cjs +25 -0
  37. package/dist/js/direction.cjs.map +1 -0
  38. package/dist/js/direction.mjs +23 -0
  39. package/dist/js/direction.mjs.map +1 -0
  40. package/dist/js/drag.cjs +20 -12
  41. package/dist/js/drag.cjs.map +1 -1
  42. package/dist/js/drag.mjs +20 -12
  43. package/dist/js/drag.mjs.map +1 -1
  44. package/dist/js/{export-table-CNAKStzj.mjs → export-table-BggGRmzQ.mjs} +3 -4
  45. package/dist/js/{export-table-CNAKStzj.mjs.map → export-table-BggGRmzQ.mjs.map} +1 -1
  46. package/dist/js/{export-table-doIwvE5U.cjs → export-table-BiB3_lVo.cjs} +3 -4
  47. package/dist/js/{export-table-doIwvE5U.cjs.map → export-table-BiB3_lVo.cjs.map} +1 -1
  48. package/dist/js/filters.cjs +2 -3
  49. package/dist/js/filters.mjs +2 -3
  50. package/dist/js/labels.cjs +2 -3
  51. package/dist/js/labels.mjs +2 -3
  52. package/dist/js/print.cjs +2 -3
  53. package/dist/js/print.mjs +2 -3
  54. package/dist/js/selector.cjs +22 -0
  55. package/dist/js/selector.cjs.map +1 -0
  56. package/dist/js/selector.mjs +21 -0
  57. package/dist/js/selector.mjs.map +1 -0
  58. package/dist/js/validate.cjs +2 -3
  59. package/dist/js/validate.mjs +2 -3
  60. package/dist/js/xlsx.cjs +5 -7
  61. package/dist/js/xlsx.cjs.map +1 -1
  62. package/dist/js/xlsx.mjs +5 -7
  63. package/dist/js/xlsx.mjs.map +1 -1
  64. package/dist/types/base-component.d.mts +29 -0
  65. package/dist/types/data-grid.d.mts +141 -0
  66. package/dist/types/dom/data.d.mts +15 -0
  67. package/dist/types/dom/event-handler.d.mts +22 -0
  68. package/dist/types/dom/manipulator.d.mts +16 -0
  69. package/dist/types/engine/active-cell.d.mts +33 -0
  70. package/dist/types/engine/active-cell.d.ts +1 -0
  71. package/dist/types/engine/data-source.d.mts +19 -0
  72. package/dist/types/engine/features-lite.d.mts +25 -0
  73. package/dist/types/engine/features.d.mts +35 -0
  74. package/dist/types/engine/scheduler.d.mts +11 -0
  75. package/dist/types/engine/table.d.mts +9 -0
  76. package/dist/types/engine/table.d.ts +1 -1
  77. package/dist/types/engine/validate.d.mts +20 -1
  78. package/dist/types/engine/virtualizer.d.mts +23 -0
  79. package/dist/types/filters.d.mts +13 -1
  80. package/dist/types/icons.d.mts +23 -0
  81. package/dist/types/index-lite.d.mts +19 -1
  82. package/dist/types/index.d.mts +21 -1
  83. package/dist/types/labels.d.mts +9 -1
  84. package/dist/types/types.d.mts +284 -0
  85. package/dist/types/ui/body.d.mts +37 -0
  86. package/dist/types/ui/column-chooser.d.mts +27 -0
  87. package/dist/types/ui/editor.d.mts +8 -0
  88. package/dist/types/ui/filter-menu.d.mts +21 -0
  89. package/dist/types/ui/header.d.mts +51 -0
  90. package/dist/types/ui/loading.d.mts +12 -0
  91. package/dist/types/ui/menu.d.mts +17 -0
  92. package/dist/types/ui/pagination.d.mts +17 -0
  93. package/dist/types/ui/pinning.d.mts +17 -0
  94. package/dist/types/ui/toolbar.d.mts +42 -0
  95. package/dist/types/ui/tooltip.d.mts +10 -0
  96. package/dist/types/util/clipboard.d.mts +29 -1
  97. package/dist/types/util/config.d.mts +28 -0
  98. package/dist/types/util/csv.d.mts +19 -1
  99. package/dist/types/util/debounce.d.mts +7 -0
  100. package/dist/types/util/direction.d.mts +17 -0
  101. package/dist/types/util/direction.d.ts +17 -0
  102. package/dist/types/util/drag.d.mts +48 -1
  103. package/dist/types/util/export-table.d.mts +47 -0
  104. package/dist/types/util/index.d.mts +66 -0
  105. package/dist/types/util/print.d.mts +32 -1
  106. package/dist/types/util/sanitizer.d.mts +15 -0
  107. package/dist/types/util/selector.d.mts +12 -0
  108. package/dist/types/util/selector.d.ts +12 -0
  109. package/dist/types/util/xlsx.d.mts +17 -1
  110. package/dist/types/util/zip.d.mts +11 -0
  111. package/package.json +42 -16
  112. package/scss/_base.scss +13 -0
  113. package/scss/_config.scss +14 -0
  114. package/scss/_functions.scss +1 -0
  115. package/scss/_mixins.scss +1 -0
  116. package/scss/base/_buttons.scss +113 -0
  117. package/scss/base/_forms.scss +157 -0
  118. package/scss/base/_helpers.scss +24 -0
  119. package/scss/base/_pagination.scss +100 -0
  120. package/scss/base/_reboot.scss +93 -0
  121. package/scss/base/_root.scss +85 -0
  122. package/scss/base/_spinner.scss +45 -0
  123. package/scss/base/_table.scss +78 -0
  124. package/scss/components/_data-grid.scss +807 -0
  125. package/scss/data-grid.scss +7 -743
  126. package/scss/data-grid.standalone.scss +16 -0
  127. package/scss/functions/_defaults.scss +25 -0
  128. package/scss/mixins/_tokens.scss +12 -0
  129. package/src/data-grid.ts +22 -6
  130. package/src/engine/active-cell.ts +6 -3
  131. package/src/engine/table.ts +9 -1
  132. package/src/index-lite.ts +1 -1
  133. package/src/index.ts +1 -1
  134. package/src/ui/column-chooser.ts +4 -4
  135. package/src/ui/filter-menu.ts +5 -5
  136. package/src/ui/menu.ts +4 -4
  137. package/src/ui/pagination.ts +1 -1
  138. package/src/ui/tooltip.ts +2 -2
  139. package/src/util/csv.ts +2 -2
  140. package/src/util/direction.ts +38 -0
  141. package/src/util/drag.ts +45 -9
  142. package/src/util/selector.ts +16 -0
  143. package/src/util/xlsx.ts +1 -1
@@ -0,0 +1,113 @@
1
+ @use "../config" as *;
2
+
3
+ // scss-docs-start base-button-variables
4
+ $base-btn-padding-y: .375rem !default;
5
+ $base-btn-padding-x: .75rem !default;
6
+ $base-btn-font-size: 1rem !default;
7
+ $base-btn-padding-y-sm: .25rem !default;
8
+ $base-btn-padding-x-sm: .5rem !default;
9
+ $base-btn-font-size-sm: .875rem !default;
10
+ $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;
11
+ // scss-docs-end base-button-variables
12
+
13
+ @layer #{$base-layer} {
14
+ .data-grid {
15
+ .btn {
16
+ --#{$prefix}btn-padding-x: #{$base-btn-padding-x};
17
+ --#{$prefix}btn-padding-y: #{$base-btn-padding-y};
18
+ --#{$prefix}btn-font-size: #{$base-btn-font-size};
19
+ --#{$prefix}btn-font-weight: 400;
20
+ --#{$prefix}btn-line-height: 1.5;
21
+ --#{$prefix}btn-color: var(--#{$prefix}body-color);
22
+ --#{$prefix}btn-bg: transparent;
23
+ --#{$prefix}btn-border-width: var(--#{$prefix}border-width);
24
+ --#{$prefix}btn-border-color: transparent;
25
+ --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius);
26
+ --#{$prefix}btn-hover-color: var(--#{$prefix}btn-color);
27
+ --#{$prefix}btn-hover-bg: transparent;
28
+ --#{$prefix}btn-hover-border-color: transparent;
29
+ --#{$prefix}btn-active-color: var(--#{$prefix}btn-hover-color);
30
+ --#{$prefix}btn-active-bg: var(--#{$prefix}btn-hover-bg);
31
+ --#{$prefix}btn-active-border-color: var(--#{$prefix}btn-hover-border-color);
32
+ --#{$prefix}btn-disabled-color: var(--#{$prefix}btn-color);
33
+ --#{$prefix}btn-disabled-opacity: .65;
34
+
35
+ display: inline-block;
36
+ padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);
37
+ font-size: var(--#{$prefix}btn-font-size);
38
+ font-weight: var(--#{$prefix}btn-font-weight);
39
+ line-height: var(--#{$prefix}btn-line-height);
40
+ color: var(--#{$prefix}btn-color);
41
+ text-align: center;
42
+ text-decoration: none;
43
+ vertical-align: middle;
44
+ cursor: pointer;
45
+ user-select: none;
46
+ background-color: var(--#{$prefix}btn-bg);
47
+ border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
48
+ border-radius: var(--#{$prefix}btn-border-radius);
49
+ transition: $base-btn-transition;
50
+
51
+ &:hover {
52
+ color: var(--#{$prefix}btn-hover-color);
53
+ background-color: var(--#{$prefix}btn-hover-bg);
54
+ border-color: var(--#{$prefix}btn-hover-border-color);
55
+ }
56
+
57
+ &:focus-visible {
58
+ outline: 0;
59
+ box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);
60
+ }
61
+
62
+ &:active {
63
+ color: var(--#{$prefix}btn-active-color);
64
+ background-color: var(--#{$prefix}btn-active-bg);
65
+ border-color: var(--#{$prefix}btn-active-border-color);
66
+ }
67
+
68
+ &:disabled {
69
+ color: var(--#{$prefix}btn-disabled-color);
70
+ pointer-events: none;
71
+ opacity: var(--#{$prefix}btn-disabled-opacity);
72
+ }
73
+ }
74
+
75
+ .btn-sm {
76
+ --#{$prefix}btn-padding-y: #{$base-btn-padding-y-sm};
77
+ --#{$prefix}btn-padding-x: #{$base-btn-padding-x-sm};
78
+ --#{$prefix}btn-font-size: #{$base-btn-font-size-sm};
79
+ --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius-sm);
80
+ }
81
+
82
+ .btn-primary {
83
+ --#{$prefix}btn-color: #fff;
84
+ --#{$prefix}btn-bg: var(--#{$prefix}primary);
85
+ --#{$prefix}btn-border-color: var(--#{$prefix}primary);
86
+ --#{$prefix}btn-hover-color: #fff;
87
+ --#{$prefix}btn-hover-bg: color-mix(in srgb, var(--#{$prefix}primary) 85%, #000);
88
+ --#{$prefix}btn-hover-border-color: color-mix(in srgb, var(--#{$prefix}primary) 80%, #000);
89
+ }
90
+
91
+ .btn-outline-secondary {
92
+ --#{$prefix}btn-color: var(--#{$prefix}secondary-color);
93
+ --#{$prefix}btn-border-color: var(--#{$prefix}border-color);
94
+ --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);
95
+ --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);
96
+ --#{$prefix}btn-hover-border-color: var(--#{$prefix}border-color);
97
+ }
98
+
99
+ .btn-ghost {
100
+ --#{$prefix}btn-color: var(--#{$prefix}body-color);
101
+ --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);
102
+ --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);
103
+ --#{$prefix}btn-active-bg: var(--#{$prefix}secondary-bg);
104
+ }
105
+
106
+ .btn-link {
107
+ --#{$prefix}btn-color: var(--#{$prefix}link-color);
108
+ --#{$prefix}btn-hover-color: var(--#{$prefix}link-hover-color);
109
+
110
+ text-decoration: underline;
111
+ }
112
+ }
113
+ }
@@ -0,0 +1,157 @@
1
+ @use "../config" as *;
2
+
3
+ // scss-docs-start base-form-variables
4
+ $base-input-padding-y: .375rem !default;
5
+ $base-input-padding-x: .75rem !default;
6
+ $base-input-font-size: 1rem !default;
7
+ $base-input-padding-y-sm: .25rem !default;
8
+ $base-input-padding-x-sm: .5rem !default;
9
+ $base-input-font-size-sm: .875rem !default;
10
+ $base-input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
11
+ $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;
12
+ $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;
13
+ $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;
14
+ $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;
15
+ $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;
16
+ // scss-docs-end base-form-variables
17
+
18
+ @layer #{$base-layer} {
19
+ .data-grid {
20
+ .form-control,
21
+ .form-select {
22
+ display: block;
23
+ width: 100%;
24
+ padding: $base-input-padding-y $base-input-padding-x;
25
+ font-size: $base-input-font-size;
26
+ font-weight: 400;
27
+ line-height: 1.5;
28
+ color: var(--#{$prefix}body-color);
29
+ appearance: none;
30
+ background-color: var(--#{$prefix}body-bg);
31
+ background-clip: padding-box;
32
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);
33
+ border-radius: var(--#{$prefix}border-radius);
34
+ transition: $base-input-transition;
35
+
36
+ &:focus {
37
+ outline: 0;
38
+ box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);
39
+ }
40
+
41
+ &:disabled {
42
+ background-color: var(--#{$prefix}secondary-bg);
43
+ opacity: 1;
44
+ }
45
+
46
+ &::placeholder {
47
+ color: var(--#{$prefix}secondary-color);
48
+ opacity: 1;
49
+ }
50
+ }
51
+
52
+ .form-select {
53
+ padding-inline-end: 2.25rem;
54
+ background-image: $base-form-select-indicator;
55
+ background-repeat: no-repeat;
56
+ background-position: right .75rem center;
57
+ background-size: 16px 12px;
58
+ }
59
+
60
+ .form-control-sm,
61
+ .form-select-sm {
62
+ padding: $base-input-padding-y-sm $base-input-padding-x-sm;
63
+ font-size: $base-input-font-size-sm;
64
+ border-radius: var(--#{$prefix}border-radius-sm);
65
+ }
66
+
67
+ .form-select-sm {
68
+ padding-inline-end: 2.25rem;
69
+ }
70
+
71
+ .form-control.is-invalid {
72
+ border-color: var(--#{$prefix}danger);
73
+ }
74
+
75
+ .form-check {
76
+ display: block;
77
+ min-height: 1.5rem;
78
+ padding-inline-start: 1.5em;
79
+ margin-bottom: .125rem;
80
+ }
81
+
82
+ .form-check .form-check-input {
83
+ float: left;
84
+ margin-inline-start: -1.5em;
85
+ }
86
+
87
+ .form-check-input {
88
+ --#{$prefix}form-check-bg: var(--#{$prefix}body-bg);
89
+
90
+ flex-shrink: 0;
91
+ width: 1em;
92
+ height: 1em;
93
+ margin-top: .25em;
94
+ vertical-align: top;
95
+ appearance: none;
96
+ background-color: var(--#{$prefix}form-check-bg);
97
+ background-image: var(--#{$prefix}form-check-bg-image);
98
+ background-repeat: no-repeat;
99
+ background-position: center;
100
+ background-size: contain;
101
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);
102
+ print-color-adjust: exact;
103
+
104
+ &[type="checkbox"] {
105
+ border-radius: .25em;
106
+ }
107
+
108
+ &[type="radio"] {
109
+ border-radius: 50%;
110
+ }
111
+
112
+ &:focus {
113
+ outline: 0;
114
+ box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);
115
+ }
116
+
117
+ &:checked {
118
+ background-color: var(--#{$prefix}primary);
119
+ border-color: var(--#{$prefix}primary);
120
+ }
121
+
122
+ &:checked[type="checkbox"] {
123
+ --#{$prefix}form-check-bg-image: #{$base-form-check-input-checked-bg-image};
124
+ }
125
+
126
+ &:checked[type="radio"] {
127
+ --#{$prefix}form-check-bg-image: #{$base-form-check-radio-checked-bg-image};
128
+ }
129
+
130
+ &[type="checkbox"]:indeterminate {
131
+ --#{$prefix}form-check-bg-image: #{$base-form-check-indeterminate-bg-image};
132
+
133
+ background-color: var(--#{$prefix}primary);
134
+ border-color: var(--#{$prefix}primary);
135
+ }
136
+
137
+ &:disabled {
138
+ pointer-events: none;
139
+ filter: none;
140
+ opacity: .5;
141
+ }
142
+ }
143
+
144
+ .form-check-label {
145
+ cursor: pointer;
146
+ }
147
+
148
+ .form-check-input:disabled ~ .form-check-label {
149
+ cursor: default;
150
+ opacity: .5;
151
+ }
152
+ }
153
+
154
+ [data-coreui-theme="dark"] .data-grid .form-select {
155
+ background-image: $base-form-select-indicator-dark;
156
+ }
157
+ }
@@ -0,0 +1,24 @@
1
+ @use "../config" as *;
2
+
3
+ // `!important` declarations invert the layer order — a layered `!important`
4
+ // beats an unlayered one — so this block wins even when CoreUI is loaded.
5
+ // It is byte-for-byte the same rule, so that costs nothing.
6
+
7
+ @layer #{$base-layer} {
8
+ .data-grid {
9
+ .visually-hidden:not(caption) {
10
+ position: absolute !important;
11
+ }
12
+
13
+ .visually-hidden {
14
+ width: 1px !important;
15
+ height: 1px !important;
16
+ padding: 0 !important;
17
+ margin: -1px !important;
18
+ overflow: hidden !important;
19
+ clip: rect(0, 0, 0, 0) !important;
20
+ white-space: nowrap !important;
21
+ border: 0 !important;
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,100 @@
1
+ @use "../config" as *;
2
+
3
+ // scss-docs-start base-pagination-variables
4
+ $base-pagination-padding-y: .375rem !default;
5
+ $base-pagination-padding-x: .75rem !default;
6
+ $base-pagination-padding-y-sm: .25rem !default;
7
+ $base-pagination-padding-x-sm: .5rem !default;
8
+ $base-pagination-font-size-sm: .875rem !default;
9
+ $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;
10
+ // scss-docs-end base-pagination-variables
11
+
12
+ @layer #{$base-layer} {
13
+ .data-grid {
14
+ .pagination {
15
+ --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x};
16
+ --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y};
17
+ --#{$prefix}pagination-font-size: 1rem;
18
+ --#{$prefix}pagination-color: var(--#{$prefix}link-color);
19
+ --#{$prefix}pagination-bg: var(--#{$prefix}body-bg);
20
+ --#{$prefix}pagination-border-width: var(--#{$prefix}border-width);
21
+ --#{$prefix}pagination-border-color: var(--#{$prefix}border-color);
22
+ --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius);
23
+ --#{$prefix}pagination-hover-color: var(--#{$prefix}link-hover-color);
24
+ --#{$prefix}pagination-hover-bg: var(--#{$prefix}tertiary-bg);
25
+ --#{$prefix}pagination-hover-border-color: var(--#{$prefix}border-color);
26
+ --#{$prefix}pagination-active-color: #fff;
27
+ --#{$prefix}pagination-active-bg: var(--#{$prefix}primary);
28
+ --#{$prefix}pagination-active-border-color: var(--#{$prefix}primary);
29
+ --#{$prefix}pagination-disabled-color: var(--#{$prefix}secondary-color);
30
+ --#{$prefix}pagination-disabled-bg: var(--#{$prefix}secondary-bg);
31
+ --#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);
32
+
33
+ display: flex;
34
+ padding-left: 0;
35
+ margin-bottom: 1rem;
36
+ list-style: none;
37
+ }
38
+
39
+ .page-link {
40
+ position: relative;
41
+ display: block;
42
+ padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);
43
+ font-size: var(--#{$prefix}pagination-font-size);
44
+ color: var(--#{$prefix}pagination-color);
45
+ text-decoration: none;
46
+ cursor: pointer;
47
+ background-color: var(--#{$prefix}pagination-bg);
48
+ border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);
49
+ transition: $base-pagination-transition;
50
+
51
+ &:hover {
52
+ z-index: 2;
53
+ color: var(--#{$prefix}pagination-hover-color);
54
+ background-color: var(--#{$prefix}pagination-hover-bg);
55
+ border-color: var(--#{$prefix}pagination-hover-border-color);
56
+ }
57
+
58
+ &:focus-visible {
59
+ z-index: 3;
60
+ outline: 0;
61
+ box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);
62
+ }
63
+ }
64
+
65
+ .page-item:not(:first-child) .page-link {
66
+ margin-left: calc(-1 * var(--#{$prefix}border-width));
67
+ }
68
+
69
+ .page-item:first-child .page-link {
70
+ border-top-left-radius: var(--#{$prefix}pagination-border-radius);
71
+ border-bottom-left-radius: var(--#{$prefix}pagination-border-radius);
72
+ }
73
+
74
+ .page-item:last-child .page-link {
75
+ border-top-right-radius: var(--#{$prefix}pagination-border-radius);
76
+ border-bottom-right-radius: var(--#{$prefix}pagination-border-radius);
77
+ }
78
+
79
+ .page-item.active .page-link {
80
+ z-index: 3;
81
+ color: var(--#{$prefix}pagination-active-color);
82
+ background-color: var(--#{$prefix}pagination-active-bg);
83
+ border-color: var(--#{$prefix}pagination-active-border-color);
84
+ }
85
+
86
+ .page-item.disabled .page-link {
87
+ color: var(--#{$prefix}pagination-disabled-color);
88
+ pointer-events: none;
89
+ background-color: var(--#{$prefix}pagination-disabled-bg);
90
+ border-color: var(--#{$prefix}pagination-disabled-border-color);
91
+ }
92
+
93
+ .pagination-sm {
94
+ --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x-sm};
95
+ --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y-sm};
96
+ --#{$prefix}pagination-font-size: #{$base-pagination-font-size-sm};
97
+ --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius-sm);
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,93 @@
1
+ @use "../config" as *;
2
+
3
+ // The slice of CoreUI's reboot the grid actually relies on, scoped to the grid
4
+ // so the sheet never restyles the host page.
5
+
6
+ @layer #{$base-layer} {
7
+ .data-grid {
8
+ box-sizing: border-box;
9
+ font-family: var(--#{$prefix}body-font-family);
10
+ font-size: var(--#{$prefix}body-font-size);
11
+ font-weight: 400;
12
+ line-height: var(--#{$prefix}body-line-height);
13
+ color: var(--#{$prefix}body-color);
14
+ text-align: start;
15
+ background-color: var(--#{$prefix}body-bg);
16
+ -webkit-text-size-adjust: 100%;
17
+
18
+ *,
19
+ *::before,
20
+ *::after {
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ table {
25
+ caption-side: bottom;
26
+ border-collapse: collapse;
27
+ }
28
+
29
+ th {
30
+ text-align: inherit;
31
+ text-align: -webkit-match-parent;
32
+ }
33
+
34
+ thead,
35
+ tbody,
36
+ tr,
37
+ td,
38
+ th {
39
+ border-color: inherit;
40
+ border-style: solid;
41
+ border-width: 0;
42
+ }
43
+
44
+ label {
45
+ display: inline-block;
46
+ }
47
+
48
+ button,
49
+ input,
50
+ optgroup,
51
+ select,
52
+ textarea {
53
+ margin: 0;
54
+ font-family: inherit;
55
+ font-size: inherit;
56
+ line-height: inherit;
57
+ }
58
+
59
+ button,
60
+ select {
61
+ text-transform: none;
62
+ }
63
+
64
+ button,
65
+ [type="button"],
66
+ [type="reset"],
67
+ [type="submit"] {
68
+ -webkit-appearance: button;
69
+ }
70
+
71
+ button:not(:disabled),
72
+ [type="button"]:not(:disabled),
73
+ [type="reset"]:not(:disabled),
74
+ [type="submit"]:not(:disabled) {
75
+ cursor: pointer;
76
+ }
77
+
78
+ ::-moz-focus-inner {
79
+ padding: 0;
80
+ border-style: none;
81
+ }
82
+
83
+ svg {
84
+ vertical-align: middle;
85
+ }
86
+
87
+ ul {
88
+ padding-left: 0;
89
+ margin-bottom: 0;
90
+ list-style: none;
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,85 @@
1
+ @use "../config" as *;
2
+
3
+ // Semantic tokens the grid resolves against. Values mirror @coreui/coreui-pro 5.
4
+ // They are emitted unlayered-free: any real CoreUI stylesheet (or app CSS)
5
+ // declaring the same properties outside a layer takes precedence.
6
+
7
+ // scss-docs-start base-root-variables
8
+ $base-white: #fff !default;
9
+ $base-primary: #5856d6 !default;
10
+ $base-primary-rgb: 88, 86, 214 !default;
11
+ $base-danger: #e55353 !default;
12
+ $base-body-color: rgba(37, 42.92, 54.02, .95) !default;
13
+ $base-body-bg: #fff !default;
14
+ $base-body-bg-rgb: 255, 255, 255 !default;
15
+ $base-emphasis-color: #080a0c !default;
16
+ $base-emphasis-color-rgb: 8, 10, 12 !default;
17
+ $base-secondary-color: rgba(37, 42.92, 54.02, .681) !default;
18
+ $base-secondary-bg: #e7eaee !default;
19
+ $base-tertiary-bg: #f3f4f7 !default;
20
+ $base-border-color: #dbdfe6 !default;
21
+ $base-link-color: #5856d6 !default;
22
+ $base-link-hover-color: #4645ab !default;
23
+ // scss-docs-end base-root-variables
24
+
25
+ // scss-docs-start base-root-dark-variables
26
+ $base-body-color-dark: rgba(255, 255, 255, .87) !default;
27
+ $base-body-bg-dark: #212631 !default;
28
+ $base-body-bg-rgb-dark: 33, 38, 49 !default;
29
+ $base-emphasis-color-dark: #fff !default;
30
+ $base-emphasis-color-rgb-dark: 255, 255, 255 !default;
31
+ $base-secondary-color-dark: rgba(255, 255, 255, .6) !default;
32
+ $base-secondary-bg-dark: #323a49 !default;
33
+ $base-tertiary-bg-dark: rgb(41.5, 48, 61) !default;
34
+ $base-border-color-dark: #4a566d !default;
35
+ $base-primary-dark: rgb(94.2, 92.4, 207.6) !default;
36
+ $base-link-color-dark: rgb(151.2, 150, 226.8) !default;
37
+ $base-link-hover-color-dark: rgb(171.36, 170.4, 233.04) !default;
38
+ // scss-docs-end base-root-dark-variables
39
+
40
+ @layer #{$base-layer} {
41
+ :root {
42
+ color-scheme: light;
43
+
44
+ --#{$prefix}white: #{$base-white};
45
+ --#{$prefix}primary: #{$base-primary};
46
+ --#{$prefix}primary-rgb: #{$base-primary-rgb};
47
+ --#{$prefix}danger: #{$base-danger};
48
+ --#{$prefix}body-font-family: system-ui, -apple-system, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;
49
+ --#{$prefix}body-font-size: 1rem;
50
+ --#{$prefix}body-line-height: 1.5;
51
+ --#{$prefix}body-color: #{$base-body-color};
52
+ --#{$prefix}body-bg: #{$base-body-bg};
53
+ --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb};
54
+ --#{$prefix}emphasis-color: #{$base-emphasis-color};
55
+ --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb};
56
+ --#{$prefix}secondary-color: #{$base-secondary-color};
57
+ --#{$prefix}secondary-bg: #{$base-secondary-bg};
58
+ --#{$prefix}tertiary-bg: #{$base-tertiary-bg};
59
+ --#{$prefix}border-width: 1px;
60
+ --#{$prefix}border-color: #{$base-border-color};
61
+ --#{$prefix}border-radius: .375rem;
62
+ --#{$prefix}border-radius-sm: .25rem;
63
+ --#{$prefix}box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);
64
+ --#{$prefix}focus-ring-color: rgba(#{$base-primary-rgb}, .25);
65
+ --#{$prefix}link-color: #{$base-link-color};
66
+ --#{$prefix}link-hover-color: #{$base-link-hover-color};
67
+ }
68
+
69
+ [data-coreui-theme="dark"] {
70
+ color-scheme: dark;
71
+
72
+ --#{$prefix}body-color: #{$base-body-color-dark};
73
+ --#{$prefix}body-bg: #{$base-body-bg-dark};
74
+ --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb-dark};
75
+ --#{$prefix}emphasis-color: #{$base-emphasis-color-dark};
76
+ --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb-dark};
77
+ --#{$prefix}secondary-color: #{$base-secondary-color-dark};
78
+ --#{$prefix}secondary-bg: #{$base-secondary-bg-dark};
79
+ --#{$prefix}tertiary-bg: #{$base-tertiary-bg-dark};
80
+ --#{$prefix}border-color: #{$base-border-color-dark};
81
+ --#{$prefix}primary: #{$base-primary-dark};
82
+ --#{$prefix}link-color: #{$base-link-color-dark};
83
+ --#{$prefix}link-hover-color: #{$base-link-hover-color-dark};
84
+ }
85
+ }
@@ -0,0 +1,45 @@
1
+ @use "../config" as *;
2
+
3
+ // scss-docs-start base-spinner-variables
4
+ $base-spinner-width: 2rem !default;
5
+ $base-spinner-height: $base-spinner-width !default;
6
+ $base-spinner-border-width: .25em !default;
7
+ $base-spinner-animation-speed: .75s !default;
8
+ // scss-docs-end base-spinner-variables
9
+
10
+ @layer #{$base-layer} {
11
+ .data-grid {
12
+ .spinner-border {
13
+ --#{$prefix}spinner-width: #{$base-spinner-width};
14
+ --#{$prefix}spinner-height: #{$base-spinner-height};
15
+ --#{$prefix}spinner-vertical-align: -.125em;
16
+ --#{$prefix}spinner-border-width: #{$base-spinner-border-width};
17
+ --#{$prefix}spinner-animation-speed: #{$base-spinner-animation-speed};
18
+ --#{$prefix}spinner-animation-name: data-grid-spinner-border;
19
+
20
+ display: inline-block;
21
+ flex-shrink: 0;
22
+ width: var(--#{$prefix}spinner-width);
23
+ height: var(--#{$prefix}spinner-height);
24
+ vertical-align: var(--#{$prefix}spinner-vertical-align);
25
+ border: var(--#{$prefix}spinner-border-width) solid currentcolor;
26
+ border-right-color: transparent;
27
+ border-radius: 50%;
28
+ animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
29
+ }
30
+
31
+ .spinner-border-sm {
32
+ --#{$prefix}spinner-width: 1rem;
33
+ --#{$prefix}spinner-height: 1rem;
34
+ --#{$prefix}spinner-border-width: .2em;
35
+ }
36
+ }
37
+ }
38
+
39
+ // Keyframes cannot be scoped; the name is namespaced instead so it can never
40
+ // collide with the host page's own animations.
41
+ @keyframes data-grid-spinner-border {
42
+ to {
43
+ transform: rotate(360deg);
44
+ }
45
+ }
@@ -0,0 +1,78 @@
1
+ @use "../config" as *;
2
+
3
+ // scss-docs-start base-table-variables
4
+ $base-table-cell-padding-y: .5rem !default;
5
+ $base-table-cell-padding-x: .5rem !default;
6
+ $base-table-striped-factor: .05 !default;
7
+ $base-table-active-factor: .1 !default;
8
+ $base-table-hover-factor: .075 !default;
9
+ // scss-docs-end base-table-variables
10
+
11
+ @layer #{$base-layer} {
12
+ .data-grid {
13
+ .table {
14
+ --#{$prefix}table-color-type: initial;
15
+ --#{$prefix}table-bg-type: initial;
16
+ --#{$prefix}table-color-state: initial;
17
+ --#{$prefix}table-bg-state: initial;
18
+ --#{$prefix}table-color: var(--#{$prefix}emphasis-color);
19
+ --#{$prefix}table-bg: var(--#{$prefix}body-bg);
20
+ --#{$prefix}table-border-color: var(--#{$prefix}border-color);
21
+ --#{$prefix}table-accent-bg: transparent;
22
+ --#{$prefix}table-striped-color: var(--#{$prefix}emphasis-color);
23
+ --#{$prefix}table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-striped-factor});
24
+ --#{$prefix}table-active-color: var(--#{$prefix}emphasis-color);
25
+ --#{$prefix}table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-active-factor});
26
+ --#{$prefix}table-hover-color: var(--#{$prefix}emphasis-color);
27
+ --#{$prefix}table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-hover-factor});
28
+
29
+ width: 100%;
30
+ margin-bottom: 1rem;
31
+ vertical-align: top;
32
+ border-color: var(--#{$prefix}table-border-color);
33
+
34
+ > :not(caption) > * > * {
35
+ padding: $base-table-cell-padding-y $base-table-cell-padding-x;
36
+ color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));
37
+ background-color: var(--#{$prefix}table-bg);
38
+ border-bottom-width: var(--#{$prefix}border-width);
39
+ box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));
40
+ }
41
+
42
+ > tbody {
43
+ vertical-align: inherit;
44
+ }
45
+
46
+ > thead {
47
+ vertical-align: bottom;
48
+ }
49
+ }
50
+
51
+ .table-sm > :not(caption) > * > * {
52
+ padding: .25rem .25rem;
53
+ }
54
+
55
+ .table-bordered > :not(caption) > * > * {
56
+ border-width: var(--#{$prefix}border-width) 0;
57
+ }
58
+
59
+ .table-borderless > :not(caption) > * > * {
60
+ border-bottom-width: 0;
61
+ }
62
+
63
+ .table-striped > tbody > tr:nth-of-type(odd) > * {
64
+ --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
65
+ --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
66
+ }
67
+
68
+ .table-hover > tbody > tr:hover > * {
69
+ --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);
70
+ --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);
71
+ }
72
+
73
+ .table-active {
74
+ --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);
75
+ --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);
76
+ }
77
+ }
78
+ }