@pathscale/ui 1.2.10 → 1.3.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 (126) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +132 -59
  3. package/dist/components/accordion/Accordion.css +158 -158
  4. package/dist/components/alert/Alert.css +116 -116
  5. package/dist/components/avatar/Avatar.css +124 -124
  6. package/dist/components/badge/Badge.css +164 -164
  7. package/dist/components/breadcrumbs/Breadcrumbs.css +63 -63
  8. package/dist/components/button/Button.css +194 -194
  9. package/dist/components/button-group/ButtonGroup.css +117 -117
  10. package/dist/components/calendar/Calendar.css +258 -258
  11. package/dist/components/card/Card.css +110 -110
  12. package/dist/components/chatbubble/ChatBubble.css +164 -164
  13. package/dist/components/checkbox/Checkbox.css +183 -183
  14. package/dist/components/checkbox-group/CheckboxGroup.css +10 -10
  15. package/dist/components/chip/Chip.css +197 -197
  16. package/dist/components/close-button/CloseButton.css +81 -81
  17. package/dist/components/color-area/ColorArea.css +54 -54
  18. package/dist/components/color-field/ColorField.css +88 -88
  19. package/dist/components/color-picker/ColorPicker.css +28 -28
  20. package/dist/components/color-slider/ColorSlider.css +57 -57
  21. package/dist/components/color-swatch/ColorSwatch.css +84 -84
  22. package/dist/components/color-swatch-picker/ColorSwatchPicker.css +12 -12
  23. package/dist/components/color-wheel-flower/ColorWheelFlower.css +147 -147
  24. package/dist/components/combo-box/ComboBox.css +344 -344
  25. package/dist/components/date-field/DateField.css +215 -215
  26. package/dist/components/date-picker/DatePicker.css +143 -143
  27. package/dist/components/date-range-picker/DateRangePicker.css +149 -149
  28. package/dist/components/description/Description.css +10 -10
  29. package/dist/components/disclosure/Disclosure.css +84 -84
  30. package/dist/components/disclosure-group/DisclosureGroup.css +9 -9
  31. package/dist/components/drawer/Drawer.css +463 -463
  32. package/dist/components/dropdown/Dropdown.css +211 -211
  33. package/dist/components/empty-state/EmptyState.css +39 -39
  34. package/dist/components/error-message/ErrorMessage.css +20 -20
  35. package/dist/components/field-error/FieldError.css +27 -27
  36. package/dist/components/fieldset/Fieldset.css +30 -30
  37. package/dist/components/flex/Flex.css +5 -5
  38. package/dist/components/floating-dock/FloatingDock.css +208 -208
  39. package/dist/components/footer/footer.css +51 -51
  40. package/dist/components/form/Form.css +5 -5
  41. package/dist/components/glass-panel/GlassPanel.css +359 -359
  42. package/dist/components/glow-card/GlowCard.css +100 -100
  43. package/dist/components/grid/Grid.css +5 -5
  44. package/dist/components/header/Header.css +13 -13
  45. package/dist/components/icon/Icon.css +10 -10
  46. package/dist/components/immersive-landing/ImmersiveLanding.css +565 -565
  47. package/dist/components/input/Input.css +155 -155
  48. package/dist/components/input-group/InputGroup.css +172 -172
  49. package/dist/components/input-otp/InputOTP.css +170 -170
  50. package/dist/components/kbd/Kbd.css +60 -60
  51. package/dist/components/label/Label.css +30 -30
  52. package/dist/components/language-switcher/LanguageSwitcher.css +56 -56
  53. package/dist/components/language-switcher/createI18n.d.ts +2 -1
  54. package/dist/components/link/Link.css +131 -131
  55. package/dist/components/list-box/ListBox.css +148 -148
  56. package/dist/components/live-chat/LiveChat.css +324 -324
  57. package/dist/components/menu/Menu.css +199 -199
  58. package/dist/components/metal-border/MetalBorder.classes.d.ts +26 -0
  59. package/dist/components/metal-border/MetalBorder.classes.js +27 -0
  60. package/dist/components/metal-border/MetalBorder.css +40 -0
  61. package/dist/components/metal-border/MetalBorder.d.ts +20 -0
  62. package/dist/components/metal-border/MetalBorder.js +322 -0
  63. package/dist/components/metal-border/engine/color.d.ts +4 -0
  64. package/dist/components/metal-border/engine/color.js +69 -0
  65. package/dist/components/metal-border/engine/glow/geometry.d.ts +35 -0
  66. package/dist/components/metal-border/engine/glow/geometry.js +176 -0
  67. package/dist/components/metal-border/engine/glow/glow.d.ts +38 -0
  68. package/dist/components/metal-border/engine/glow/glow.js +246 -0
  69. package/dist/components/metal-border/engine/index.d.ts +4 -0
  70. package/dist/components/metal-border/engine/index.js +2 -0
  71. package/dist/components/metal-border/engine/perfConfig.d.ts +9 -0
  72. package/dist/components/metal-border/engine/perfConfig.js +10 -0
  73. package/dist/components/metal-border/engine/presets.d.ts +57 -0
  74. package/dist/components/metal-border/engine/presets.js +214 -0
  75. package/dist/components/metal-border/engine/renderer/core.d.ts +69 -0
  76. package/dist/components/metal-border/engine/renderer/core.js +156 -0
  77. package/dist/components/metal-border/engine/renderer/loop.d.ts +30 -0
  78. package/dist/components/metal-border/engine/renderer/loop.js +248 -0
  79. package/dist/components/metal-border/engine/renderer/sampling.d.ts +14 -0
  80. package/dist/components/metal-border/engine/renderer/sampling.js +145 -0
  81. package/dist/components/metal-border/engine/shaders.d.ts +36 -0
  82. package/dist/components/metal-border/engine/shaders.js +215 -0
  83. package/dist/components/metal-border/engine/tween.d.ts +17 -0
  84. package/dist/components/metal-border/engine/tween.js +28 -0
  85. package/dist/components/metal-border/index.d.ts +2 -0
  86. package/dist/components/metal-border/index.js +1 -0
  87. package/dist/components/meter/Meter.css +89 -89
  88. package/dist/components/modal/Modal.css +320 -320
  89. package/dist/components/navbar/Navbar.css +110 -110
  90. package/dist/components/noise-background/NoiseBackground.css +66 -66
  91. package/dist/components/number-field/NumberField.css +198 -198
  92. package/dist/components/pagination/Pagination.css +121 -121
  93. package/dist/components/popover/Popover.css +117 -117
  94. package/dist/components/progress-bar/ProgressBar.css +104 -104
  95. package/dist/components/progress-circle/ProgressCircle.css +82 -82
  96. package/dist/components/radio/Radio.css +129 -129
  97. package/dist/components/radio-group/RadioGroup.css +58 -58
  98. package/dist/components/range-calendar/RangeCalendar.css +51 -51
  99. package/dist/components/scroll-shadow/ScrollShadow.css +93 -93
  100. package/dist/components/search-field/SearchField.css +183 -183
  101. package/dist/components/select/Select.css +284 -284
  102. package/dist/components/separator/Separator.css +35 -35
  103. package/dist/components/skeleton/Skeleton.css +95 -95
  104. package/dist/components/slider/Slider.css +122 -122
  105. package/dist/components/spinner/Spinner.css +131 -131
  106. package/dist/components/surface/Surface.css +37 -37
  107. package/dist/components/table/Table.css +426 -426
  108. package/dist/components/tabs/Tabs.css +203 -203
  109. package/dist/components/tag/Tag.css +121 -121
  110. package/dist/components/tag-group/TagGroup.css +22 -22
  111. package/dist/components/text/Text.css +66 -66
  112. package/dist/components/text-area/TextArea.css +95 -95
  113. package/dist/components/text-field/TextField.css +33 -33
  114. package/dist/components/time-field/TimeField.css +215 -215
  115. package/dist/components/toast/Toast.css +344 -344
  116. package/dist/components/toggle/Toggle.css +237 -237
  117. package/dist/components/toolbar/Toolbar.css +55 -55
  118. package/dist/components/tooltip/Tooltip.css +153 -153
  119. package/dist/index.css +74 -74
  120. package/dist/index.d.ts +2 -0
  121. package/dist/index.js +1 -0
  122. package/dist/purge-manifest.json +15836 -15583
  123. package/dist/styles/base/index.css +43 -43
  124. package/dist/styles/themes/dark.css +141 -141
  125. package/dist/styles/themes/light.css +143 -143
  126. package/package.json +17 -8
@@ -1,426 +1,426 @@
1
- /* ==========================================================================
2
- Table — HeroUI-style data display component for structured tabular data.
3
- ========================================================================== */
4
-
5
- @layer components {
6
- /* --------------------------------------------------------------------------
7
- Table Root — Outer container for table + optional footer.
8
- -------------------------------------------------------------------------- */
9
- .table-root {
10
- position: relative;
11
- display: grid;
12
- width: 100%;
13
- overflow: clip;
14
- grid-template-columns: minmax(0, 1fr);
15
- }
16
-
17
- .table-root--primary {
18
- background-color: var(--color-base-200);
19
- padding-inline: 0.25rem;
20
- padding-bottom: 0.25rem;
21
- border-radius: calc(var(--radius-box, 1rem) + 0.25rem);
22
- }
23
-
24
- /* --------------------------------------------------------------------------
25
- Scroll Container
26
- -------------------------------------------------------------------------- */
27
- .table__scroll-container {
28
- overflow-x: auto;
29
- scrollbar-width: thin;
30
- scrollbar-color: oklch(0% 0 0 / 0.15) transparent;
31
- }
32
-
33
- .table__scroll-container::-webkit-scrollbar {
34
- width: 6px;
35
- height: 6px;
36
- }
37
-
38
- .table__scroll-container::-webkit-scrollbar-track {
39
- background: transparent;
40
- }
41
-
42
- .table__scroll-container::-webkit-scrollbar-thumb {
43
- background: oklch(0% 0 0 / 0.15);
44
- border-radius: 3px;
45
- }
46
-
47
- .table__scroll-container::-webkit-scrollbar-thumb:hover {
48
- background: oklch(0% 0 0 / 0.25);
49
- }
50
-
51
- :is([data-theme="dark"], .dark) .table__scroll-container {
52
- scrollbar-color: oklch(100% 0 0 / 0.15) transparent;
53
- }
54
-
55
- :is([data-theme="dark"], .dark) .table__scroll-container::-webkit-scrollbar-thumb {
56
- background: oklch(100% 0 0 / 0.15);
57
- }
58
-
59
- :is([data-theme="dark"], .dark) .table__scroll-container::-webkit-scrollbar-thumb:hover {
60
- background: oklch(100% 0 0 / 0.25);
61
- }
62
-
63
- /* --------------------------------------------------------------------------
64
- Table Content (<table>)
65
- -------------------------------------------------------------------------- */
66
- .table__content {
67
- width: 100%;
68
- border-collapse: separate;
69
- border-spacing: 0;
70
- font-size: 0.875rem;
71
- text-align: left;
72
- }
73
-
74
- .table__content:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
75
- text-align: right;
76
- }
77
-
78
- .table-root--primary .table__content {
79
- overflow: clip;
80
- }
81
-
82
- /* --------------------------------------------------------------------------
83
- Table Header (<thead>)
84
- -------------------------------------------------------------------------- */
85
- .table__header {
86
- background-color: var(--color-base-200);
87
- }
88
-
89
- @supports (color: color-mix(in lab, red, red)) {
90
- .table__header {
91
- border-bottom: 1px solid color-mix(in oklch, var(--color-base-content) 8%, transparent);
92
- }
93
- }
94
-
95
- .table-root--secondary .table__header {
96
- border-bottom: 0;
97
- background: transparent;
98
- }
99
-
100
- .table-root--secondary .table__column {
101
- background-color: var(--color-base-200);
102
- }
103
-
104
- .table-root--secondary .table__column:first-child {
105
- border-top-left-radius: var(--radius-box, 1rem);
106
- border-bottom-left-radius: var(--radius-box, 1rem);
107
- }
108
-
109
- .table-root--secondary .table__column:last-child {
110
- border-top-right-radius: var(--radius-box, 1rem);
111
- border-bottom-right-radius: var(--radius-box, 1rem);
112
- }
113
-
114
- .table-root--secondary .table__body tr:first-child td:first-child,
115
- .table-root--secondary .table__body tr:first-child td:last-child,
116
- .table-root--secondary .table__body tr:last-child td:first-child,
117
- .table-root--secondary .table__body tr:last-child td:last-child {
118
- border-radius: 0;
119
- }
120
-
121
- .table-root--secondary .table__row .table__cell {
122
- background-color: transparent;
123
- }
124
-
125
- @supports (color: color-mix(in lab, red, red)) {
126
- .table-root--secondary .table__row .table__cell {
127
- border-bottom: 1px solid color-mix(in oklch, var(--color-base-content) 5%, transparent);
128
- }
129
- }
130
-
131
- @media (hover: hover) {
132
- .table-root--secondary .table__row:hover .table__cell {
133
- background-color: var(--color-base-200);
134
- }
135
-
136
- .table-root--secondary .table__row:hover .table__cell:first-child {
137
- border-top-left-radius: var(--radius-box, 1rem);
138
- border-bottom-left-radius: var(--radius-box, 1rem);
139
- }
140
-
141
- .table-root--secondary .table__row:hover .table__cell:last-child {
142
- border-top-right-radius: var(--radius-box, 1rem);
143
- border-bottom-right-radius: var(--radius-box, 1rem);
144
- }
145
- }
146
-
147
- /* --------------------------------------------------------------------------
148
- Table Column (<th>)
149
- -------------------------------------------------------------------------- */
150
- .table__column {
151
- position: relative;
152
- overflow: hidden;
153
- padding-inline: 1rem;
154
- padding-block: 0.625rem;
155
- text-align: left;
156
- font-size: 0.75rem;
157
- font-weight: 500;
158
- white-space: nowrap;
159
- vertical-align: middle;
160
- }
161
-
162
- .table__column > * {
163
- min-width: 0;
164
- max-width: 100%;
165
- }
166
-
167
- @supports (color: color-mix(in lab, red, red)) {
168
- .table__column {
169
- color: color-mix(in oklab, var(--color-base-content) 60%, transparent);
170
- }
171
- }
172
-
173
- .table__column::after {
174
- content: "";
175
- position: absolute;
176
- top: 50%;
177
- right: 0;
178
- height: 1rem;
179
- width: 1px;
180
- transform: translateY(-50%);
181
- border-radius: 1px;
182
- }
183
-
184
- @supports (color: color-mix(in lab, red, red)) {
185
- .table__column::after {
186
- background-color: color-mix(in oklch, var(--color-base-content) 10%, transparent);
187
- }
188
- }
189
-
190
- .table__column:last-child:not(:only-child)::after {
191
- content: none;
192
- }
193
-
194
- .table__column[data-allows-sorting="true"] {
195
- cursor: pointer;
196
- }
197
-
198
- @media (hover: hover) {
199
- .table__column[data-allows-sorting="true"]:hover {
200
- color: var(--color-base-content);
201
- }
202
- }
203
-
204
- .table__column[data-sort-direction="ascending"],
205
- .table__column[data-sort-direction="descending"] {
206
- color: var(--color-base-content);
207
- }
208
-
209
- .table__column:focus-visible {
210
- border-radius: 0.5rem;
211
- outline: none;
212
- box-shadow: inset 0 0 0 2px var(--color-accent);
213
- }
214
-
215
- /* --------------------------------------------------------------------------
216
- Table Body (<tbody>)
217
- -------------------------------------------------------------------------- */
218
- .table__body tr:first-child td:first-child {
219
- border-top-left-radius: var(--radius-box, 1rem);
220
- }
221
-
222
- .table__body tr:first-child td:last-child {
223
- border-top-right-radius: var(--radius-box, 1rem);
224
- }
225
-
226
- .table__body tr:last-child td:first-child {
227
- border-bottom-left-radius: var(--radius-box, 1rem);
228
- }
229
-
230
- .table__body tr:last-child td:last-child {
231
- border-bottom-right-radius: var(--radius-box, 1rem);
232
- }
233
-
234
- /* --------------------------------------------------------------------------
235
- Table Row (<tr>)
236
- -------------------------------------------------------------------------- */
237
- .table__row {
238
- position: relative;
239
- height: 100%;
240
- }
241
-
242
- @media (hover: hover) {
243
- .table__row:hover .table__cell {
244
- background-color: var(--color-base-200);
245
- }
246
- }
247
-
248
- .table__row[data-selected="true"] .table__cell {
249
- background-color: var(--color-base-200);
250
- }
251
-
252
- .table__row[aria-disabled="true"],
253
- .table__row[data-disabled="true"] {
254
- opacity: 0.5;
255
- cursor: not-allowed;
256
- }
257
-
258
- .table__row:focus-visible {
259
- outline: none;
260
- box-shadow: inset 0 0 0 2px var(--color-accent);
261
- }
262
-
263
- .table__row[data-hovered="true"] .table__cell {
264
- background-color: var(--color-base-200);
265
- }
266
-
267
- /* --------------------------------------------------------------------------
268
- Table Cell (<td>)
269
- -------------------------------------------------------------------------- */
270
- .table__cell {
271
- height: 100%;
272
- background-color: var(--color-base-100);
273
- padding-inline: 1rem;
274
- padding-block: 0.75rem;
275
- vertical-align: middle;
276
- font-size: 0.875rem;
277
- color: var(--color-base-content);
278
- }
279
-
280
- @supports (color: color-mix(in lab, red, red)) {
281
- .table__cell {
282
- border-bottom: 1px solid color-mix(in oklch, var(--color-base-content) 5%, transparent);
283
- }
284
- }
285
-
286
- .table__body tr:last-child .table__cell {
287
- border-bottom: none;
288
- }
289
-
290
- .table__cell:focus-visible {
291
- border-radius: 0.5rem;
292
- outline: none;
293
- box-shadow: inset 0 0 0 2px var(--color-accent);
294
- }
295
-
296
- .table__expanded-row .table__expanded-cell {
297
- background-color: color-mix(in oklch, var(--color-base-200) 75%, var(--color-base-100));
298
- }
299
-
300
- .table__expanded-cell {
301
- padding-block: 0.875rem;
302
- }
303
-
304
- /* --------------------------------------------------------------------------
305
- Table Footer (div outside <table>)
306
- -------------------------------------------------------------------------- */
307
- .table__footer {
308
- display: flex;
309
- align-items: center;
310
- padding-inline: 1rem;
311
- padding-block: 0.625rem;
312
- }
313
-
314
- .table__page-size {
315
- display: inline-flex;
316
- align-items: center;
317
- gap: 0.5rem;
318
- font-size: 0.75rem;
319
- font-weight: 600;
320
- letter-spacing: 0.16em;
321
- text-transform: uppercase;
322
- }
323
-
324
- .table__page-size-label {
325
- opacity: 0.7;
326
- }
327
-
328
- .table__page-size-select {
329
- min-width: 4.5rem;
330
- border-radius: 0.75rem;
331
- border: 1px solid color-mix(in oklch, var(--color-base-content) 10%, transparent);
332
- background-color: var(--color-base-100);
333
- padding-inline: 0.75rem;
334
- padding-block: 0.5rem;
335
- font-size: 0.875rem;
336
- font-weight: 500;
337
- letter-spacing: normal;
338
- text-transform: none;
339
- color: var(--color-base-content);
340
- }
341
-
342
- .table__page-size-select:focus-visible {
343
- outline: none;
344
- box-shadow: 0 0 0 2px var(--color-accent);
345
- }
346
-
347
- /* --------------------------------------------------------------------------
348
- Resizable Container
349
- -------------------------------------------------------------------------- */
350
- .table__resizable-container {
351
- position: relative;
352
- overflow: auto;
353
- }
354
-
355
- /* --------------------------------------------------------------------------
356
- Column Resizer
357
- -------------------------------------------------------------------------- */
358
- .table__column-resizer {
359
- position: absolute;
360
- top: 50%;
361
- right: 0;
362
- box-sizing: content-box;
363
- height: 1rem;
364
- width: 1px;
365
- padding-inline: 0.5rem;
366
- transform: translate(50%, -50%);
367
- border: 0;
368
- border-radius: 1px;
369
- background-color: transparent;
370
- background-clip: content-box;
371
- cursor: col-resize;
372
- touch-action: none;
373
- outline: none;
374
- }
375
-
376
- @supports (color: color-mix(in lab, red, red)) {
377
- .table__column-resizer {
378
- background-color: color-mix(in oklch, var(--color-base-content) 10%, transparent);
379
- }
380
- }
381
-
382
- .table__column-resizer[data-hovered="true"],
383
- .table__column-resizer:hover,
384
- .table__column-resizer[data-resizing="true"] {
385
- top: 0;
386
- height: 100%;
387
- width: 2px;
388
- transform: translateX(50%);
389
- background-color: var(--color-accent);
390
- }
391
-
392
- .table__column-resizer[data-focus-visible="true"],
393
- .table__column-resizer:focus-visible {
394
- top: 0;
395
- height: 100%;
396
- width: 2px;
397
- transform: translateX(50%);
398
- background-color: var(--color-focus, var(--color-accent));
399
- }
400
-
401
- .table__column:has(.table__column-resizer)::after {
402
- content: none;
403
- }
404
-
405
- /* --------------------------------------------------------------------------
406
- Load More
407
- -------------------------------------------------------------------------- */
408
- .table__load-more td,
409
- .table__load-more [role="rowheader"] {
410
- padding-block: 0.75rem;
411
- text-align: center;
412
- }
413
-
414
- .table__load-more td > *,
415
- .table__load-more [role="rowheader"] > * {
416
- margin-inline: auto;
417
- }
418
-
419
- .table__load-more-content {
420
- display: flex;
421
- align-items: center;
422
- justify-content: center;
423
- gap: 0.5rem;
424
- padding-block: 0.5rem;
425
- }
426
- }
1
+ /* ==========================================================================
2
+ Table — HeroUI-style data display component for structured tabular data.
3
+ ========================================================================== */
4
+
5
+ @layer components {
6
+ /* --------------------------------------------------------------------------
7
+ Table Root — Outer container for table + optional footer.
8
+ -------------------------------------------------------------------------- */
9
+ .table-root {
10
+ position: relative;
11
+ display: grid;
12
+ width: 100%;
13
+ overflow: clip;
14
+ grid-template-columns: minmax(0, 1fr);
15
+ }
16
+
17
+ .table-root--primary {
18
+ background-color: var(--color-base-200);
19
+ padding-inline: 0.25rem;
20
+ padding-bottom: 0.25rem;
21
+ border-radius: calc(var(--radius-box, 1rem) + 0.25rem);
22
+ }
23
+
24
+ /* --------------------------------------------------------------------------
25
+ Scroll Container
26
+ -------------------------------------------------------------------------- */
27
+ .table__scroll-container {
28
+ overflow-x: auto;
29
+ scrollbar-width: thin;
30
+ scrollbar-color: oklch(0% 0 0 / 0.15) transparent;
31
+ }
32
+
33
+ .table__scroll-container::-webkit-scrollbar {
34
+ width: 6px;
35
+ height: 6px;
36
+ }
37
+
38
+ .table__scroll-container::-webkit-scrollbar-track {
39
+ background: transparent;
40
+ }
41
+
42
+ .table__scroll-container::-webkit-scrollbar-thumb {
43
+ background: oklch(0% 0 0 / 0.15);
44
+ border-radius: 3px;
45
+ }
46
+
47
+ .table__scroll-container::-webkit-scrollbar-thumb:hover {
48
+ background: oklch(0% 0 0 / 0.25);
49
+ }
50
+
51
+ :is([data-theme="dark"], .dark) .table__scroll-container {
52
+ scrollbar-color: oklch(100% 0 0 / 0.15) transparent;
53
+ }
54
+
55
+ :is([data-theme="dark"], .dark) .table__scroll-container::-webkit-scrollbar-thumb {
56
+ background: oklch(100% 0 0 / 0.15);
57
+ }
58
+
59
+ :is([data-theme="dark"], .dark) .table__scroll-container::-webkit-scrollbar-thumb:hover {
60
+ background: oklch(100% 0 0 / 0.25);
61
+ }
62
+
63
+ /* --------------------------------------------------------------------------
64
+ Table Content (<table>)
65
+ -------------------------------------------------------------------------- */
66
+ .table__content {
67
+ width: 100%;
68
+ border-collapse: separate;
69
+ border-spacing: 0;
70
+ font-size: 0.875rem;
71
+ text-align: left;
72
+ }
73
+
74
+ .table__content:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
75
+ text-align: right;
76
+ }
77
+
78
+ .table-root--primary .table__content {
79
+ overflow: clip;
80
+ }
81
+
82
+ /* --------------------------------------------------------------------------
83
+ Table Header (<thead>)
84
+ -------------------------------------------------------------------------- */
85
+ .table__header {
86
+ background-color: var(--color-base-200);
87
+ }
88
+
89
+ @supports (color: color-mix(in lab, red, red)) {
90
+ .table__header {
91
+ border-bottom: 1px solid color-mix(in oklch, var(--color-base-content) 8%, transparent);
92
+ }
93
+ }
94
+
95
+ .table-root--secondary .table__header {
96
+ border-bottom: 0;
97
+ background: transparent;
98
+ }
99
+
100
+ .table-root--secondary .table__column {
101
+ background-color: var(--color-base-200);
102
+ }
103
+
104
+ .table-root--secondary .table__column:first-child {
105
+ border-top-left-radius: var(--radius-box, 1rem);
106
+ border-bottom-left-radius: var(--radius-box, 1rem);
107
+ }
108
+
109
+ .table-root--secondary .table__column:last-child {
110
+ border-top-right-radius: var(--radius-box, 1rem);
111
+ border-bottom-right-radius: var(--radius-box, 1rem);
112
+ }
113
+
114
+ .table-root--secondary .table__body tr:first-child td:first-child,
115
+ .table-root--secondary .table__body tr:first-child td:last-child,
116
+ .table-root--secondary .table__body tr:last-child td:first-child,
117
+ .table-root--secondary .table__body tr:last-child td:last-child {
118
+ border-radius: 0;
119
+ }
120
+
121
+ .table-root--secondary .table__row .table__cell {
122
+ background-color: transparent;
123
+ }
124
+
125
+ @supports (color: color-mix(in lab, red, red)) {
126
+ .table-root--secondary .table__row .table__cell {
127
+ border-bottom: 1px solid color-mix(in oklch, var(--color-base-content) 5%, transparent);
128
+ }
129
+ }
130
+
131
+ @media (hover: hover) {
132
+ .table-root--secondary .table__row:hover .table__cell {
133
+ background-color: var(--color-base-200);
134
+ }
135
+
136
+ .table-root--secondary .table__row:hover .table__cell:first-child {
137
+ border-top-left-radius: var(--radius-box, 1rem);
138
+ border-bottom-left-radius: var(--radius-box, 1rem);
139
+ }
140
+
141
+ .table-root--secondary .table__row:hover .table__cell:last-child {
142
+ border-top-right-radius: var(--radius-box, 1rem);
143
+ border-bottom-right-radius: var(--radius-box, 1rem);
144
+ }
145
+ }
146
+
147
+ /* --------------------------------------------------------------------------
148
+ Table Column (<th>)
149
+ -------------------------------------------------------------------------- */
150
+ .table__column {
151
+ position: relative;
152
+ overflow: hidden;
153
+ padding-inline: 1rem;
154
+ padding-block: 0.625rem;
155
+ text-align: left;
156
+ font-size: 0.75rem;
157
+ font-weight: 500;
158
+ white-space: nowrap;
159
+ vertical-align: middle;
160
+ }
161
+
162
+ .table__column > * {
163
+ min-width: 0;
164
+ max-width: 100%;
165
+ }
166
+
167
+ @supports (color: color-mix(in lab, red, red)) {
168
+ .table__column {
169
+ color: color-mix(in oklab, var(--color-base-content) 60%, transparent);
170
+ }
171
+ }
172
+
173
+ .table__column::after {
174
+ content: "";
175
+ position: absolute;
176
+ top: 50%;
177
+ right: 0;
178
+ height: 1rem;
179
+ width: 1px;
180
+ transform: translateY(-50%);
181
+ border-radius: 1px;
182
+ }
183
+
184
+ @supports (color: color-mix(in lab, red, red)) {
185
+ .table__column::after {
186
+ background-color: color-mix(in oklch, var(--color-base-content) 10%, transparent);
187
+ }
188
+ }
189
+
190
+ .table__column:last-child:not(:only-child)::after {
191
+ content: none;
192
+ }
193
+
194
+ .table__column[data-allows-sorting="true"] {
195
+ cursor: pointer;
196
+ }
197
+
198
+ @media (hover: hover) {
199
+ .table__column[data-allows-sorting="true"]:hover {
200
+ color: var(--color-base-content);
201
+ }
202
+ }
203
+
204
+ .table__column[data-sort-direction="ascending"],
205
+ .table__column[data-sort-direction="descending"] {
206
+ color: var(--color-base-content);
207
+ }
208
+
209
+ .table__column:focus-visible {
210
+ border-radius: 0.5rem;
211
+ outline: none;
212
+ box-shadow: inset 0 0 0 2px var(--color-accent);
213
+ }
214
+
215
+ /* --------------------------------------------------------------------------
216
+ Table Body (<tbody>)
217
+ -------------------------------------------------------------------------- */
218
+ .table__body tr:first-child td:first-child {
219
+ border-top-left-radius: var(--radius-box, 1rem);
220
+ }
221
+
222
+ .table__body tr:first-child td:last-child {
223
+ border-top-right-radius: var(--radius-box, 1rem);
224
+ }
225
+
226
+ .table__body tr:last-child td:first-child {
227
+ border-bottom-left-radius: var(--radius-box, 1rem);
228
+ }
229
+
230
+ .table__body tr:last-child td:last-child {
231
+ border-bottom-right-radius: var(--radius-box, 1rem);
232
+ }
233
+
234
+ /* --------------------------------------------------------------------------
235
+ Table Row (<tr>)
236
+ -------------------------------------------------------------------------- */
237
+ .table__row {
238
+ position: relative;
239
+ height: 100%;
240
+ }
241
+
242
+ @media (hover: hover) {
243
+ .table__row:hover .table__cell {
244
+ background-color: var(--color-base-200);
245
+ }
246
+ }
247
+
248
+ .table__row[data-selected="true"] .table__cell {
249
+ background-color: var(--color-base-200);
250
+ }
251
+
252
+ .table__row[aria-disabled="true"],
253
+ .table__row[data-disabled="true"] {
254
+ opacity: 0.5;
255
+ cursor: not-allowed;
256
+ }
257
+
258
+ .table__row:focus-visible {
259
+ outline: none;
260
+ box-shadow: inset 0 0 0 2px var(--color-accent);
261
+ }
262
+
263
+ .table__row[data-hovered="true"] .table__cell {
264
+ background-color: var(--color-base-200);
265
+ }
266
+
267
+ /* --------------------------------------------------------------------------
268
+ Table Cell (<td>)
269
+ -------------------------------------------------------------------------- */
270
+ .table__cell {
271
+ height: 100%;
272
+ background-color: var(--color-base-100);
273
+ padding-inline: 1rem;
274
+ padding-block: 0.75rem;
275
+ vertical-align: middle;
276
+ font-size: 0.875rem;
277
+ color: var(--color-base-content);
278
+ }
279
+
280
+ @supports (color: color-mix(in lab, red, red)) {
281
+ .table__cell {
282
+ border-bottom: 1px solid color-mix(in oklch, var(--color-base-content) 5%, transparent);
283
+ }
284
+ }
285
+
286
+ .table__body tr:last-child .table__cell {
287
+ border-bottom: none;
288
+ }
289
+
290
+ .table__cell:focus-visible {
291
+ border-radius: 0.5rem;
292
+ outline: none;
293
+ box-shadow: inset 0 0 0 2px var(--color-accent);
294
+ }
295
+
296
+ .table__expanded-row .table__expanded-cell {
297
+ background-color: color-mix(in oklch, var(--color-base-200) 75%, var(--color-base-100));
298
+ }
299
+
300
+ .table__expanded-cell {
301
+ padding-block: 0.875rem;
302
+ }
303
+
304
+ /* --------------------------------------------------------------------------
305
+ Table Footer (div outside <table>)
306
+ -------------------------------------------------------------------------- */
307
+ .table__footer {
308
+ display: flex;
309
+ align-items: center;
310
+ padding-inline: 1rem;
311
+ padding-block: 0.625rem;
312
+ }
313
+
314
+ .table__page-size {
315
+ display: inline-flex;
316
+ align-items: center;
317
+ gap: 0.5rem;
318
+ font-size: 0.75rem;
319
+ font-weight: 600;
320
+ letter-spacing: 0.16em;
321
+ text-transform: uppercase;
322
+ }
323
+
324
+ .table__page-size-label {
325
+ opacity: 0.7;
326
+ }
327
+
328
+ .table__page-size-select {
329
+ min-width: 4.5rem;
330
+ border-radius: 0.75rem;
331
+ border: 1px solid color-mix(in oklch, var(--color-base-content) 10%, transparent);
332
+ background-color: var(--color-base-100);
333
+ padding-inline: 0.75rem;
334
+ padding-block: 0.5rem;
335
+ font-size: 0.875rem;
336
+ font-weight: 500;
337
+ letter-spacing: normal;
338
+ text-transform: none;
339
+ color: var(--color-base-content);
340
+ }
341
+
342
+ .table__page-size-select:focus-visible {
343
+ outline: none;
344
+ box-shadow: 0 0 0 2px var(--color-accent);
345
+ }
346
+
347
+ /* --------------------------------------------------------------------------
348
+ Resizable Container
349
+ -------------------------------------------------------------------------- */
350
+ .table__resizable-container {
351
+ position: relative;
352
+ overflow: auto;
353
+ }
354
+
355
+ /* --------------------------------------------------------------------------
356
+ Column Resizer
357
+ -------------------------------------------------------------------------- */
358
+ .table__column-resizer {
359
+ position: absolute;
360
+ top: 50%;
361
+ right: 0;
362
+ box-sizing: content-box;
363
+ height: 1rem;
364
+ width: 1px;
365
+ padding-inline: 0.5rem;
366
+ transform: translate(50%, -50%);
367
+ border: 0;
368
+ border-radius: 1px;
369
+ background-color: transparent;
370
+ background-clip: content-box;
371
+ cursor: col-resize;
372
+ touch-action: none;
373
+ outline: none;
374
+ }
375
+
376
+ @supports (color: color-mix(in lab, red, red)) {
377
+ .table__column-resizer {
378
+ background-color: color-mix(in oklch, var(--color-base-content) 10%, transparent);
379
+ }
380
+ }
381
+
382
+ .table__column-resizer[data-hovered="true"],
383
+ .table__column-resizer:hover,
384
+ .table__column-resizer[data-resizing="true"] {
385
+ top: 0;
386
+ height: 100%;
387
+ width: 2px;
388
+ transform: translateX(50%);
389
+ background-color: var(--color-accent);
390
+ }
391
+
392
+ .table__column-resizer[data-focus-visible="true"],
393
+ .table__column-resizer:focus-visible {
394
+ top: 0;
395
+ height: 100%;
396
+ width: 2px;
397
+ transform: translateX(50%);
398
+ background-color: var(--color-focus, var(--color-accent));
399
+ }
400
+
401
+ .table__column:has(.table__column-resizer)::after {
402
+ content: none;
403
+ }
404
+
405
+ /* --------------------------------------------------------------------------
406
+ Load More
407
+ -------------------------------------------------------------------------- */
408
+ .table__load-more td,
409
+ .table__load-more [role="rowheader"] {
410
+ padding-block: 0.75rem;
411
+ text-align: center;
412
+ }
413
+
414
+ .table__load-more td > *,
415
+ .table__load-more [role="rowheader"] > * {
416
+ margin-inline: auto;
417
+ }
418
+
419
+ .table__load-more-content {
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ gap: 0.5rem;
424
+ padding-block: 0.5rem;
425
+ }
426
+ }