@flux-ui/components 3.0.0-next.61 → 3.0.0-next.63

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 (123) hide show
  1. package/dist/component/FluxActionStack.vue.d.ts +25 -19
  2. package/dist/component/FluxAspectRatio.vue.d.ts +4 -3
  3. package/dist/component/FluxBorderShine.vue.d.ts +1 -1
  4. package/dist/component/FluxCalendar.vue.d.ts +2 -6
  5. package/dist/component/FluxContainer.vue.d.ts +3 -2
  6. package/dist/component/FluxFilter.vue.d.ts +6 -7
  7. package/dist/component/FluxFilterBar.vue.d.ts +5 -4
  8. package/dist/component/FluxFilterBase.vue.d.ts +14 -11
  9. package/dist/component/FluxFilterDate.vue.d.ts +3 -6
  10. package/dist/component/FluxFilterDateRange.vue.d.ts +3 -6
  11. package/dist/component/FluxFilterOption.vue.d.ts +3 -6
  12. package/dist/component/FluxFilterOptionAsync.vue.d.ts +3 -6
  13. package/dist/component/FluxFilterOptions.vue.d.ts +3 -6
  14. package/dist/component/FluxFilterOptionsAsync.vue.d.ts +3 -6
  15. package/dist/component/FluxFilterRange.vue.d.ts +3 -7
  16. package/dist/component/FluxFilterWindow.vue.d.ts +3 -8
  17. package/dist/component/FluxFlex.vue.d.ts +30 -0
  18. package/dist/component/{FluxRow.vue.d.ts → FluxFlexItem.vue.d.ts} +5 -3
  19. package/dist/component/FluxGrid.vue.d.ts +3 -2
  20. package/dist/component/FluxGridColumn.vue.d.ts +3 -2
  21. package/dist/component/FluxKanbanColumn.vue.d.ts +3 -0
  22. package/dist/component/FluxScroller.vue.d.ts +32 -0
  23. package/dist/component/{FluxStack.vue.d.ts → FluxSplitView.vue.d.ts} +7 -6
  24. package/dist/component/{FluxColumn.vue.d.ts → FluxSplitViewPane.vue.d.ts} +4 -1
  25. package/dist/component/FluxSticky.vue.d.ts +34 -0
  26. package/dist/component/index.d.ts +6 -3
  27. package/dist/component/primitive/FilterBadge.vue.d.ts +2 -2
  28. package/dist/component/primitive/FilterItem.vue.d.ts +3 -2
  29. package/dist/component/primitive/SelectBase.vue.d.ts +4 -4
  30. package/dist/composable/private/index.d.ts +1 -0
  31. package/dist/composable/private/useSplitView.d.ts +23 -0
  32. package/dist/data/di.d.ts +19 -2
  33. package/dist/data/index.d.ts +0 -1
  34. package/dist/index.css +583 -331
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.js +8755 -8109
  37. package/dist/index.js.map +1 -1
  38. package/dist/util/defineFilter.d.ts +3 -0
  39. package/dist/util/filter.d.ts +7 -0
  40. package/dist/util/index.d.ts +2 -0
  41. package/dist/vite/defineFilterMacro.d.ts +3 -0
  42. package/dist/vite/index.d.ts +1 -0
  43. package/dist/vite.js +217 -0
  44. package/dist/vite.js.map +1 -0
  45. package/package.json +11 -7
  46. package/src/component/FluxActionBar.vue +3 -4
  47. package/src/component/FluxActionStack.vue +3 -3
  48. package/src/component/FluxAspectRatio.vue +5 -3
  49. package/src/component/FluxBadgeStack.vue +4 -4
  50. package/src/component/FluxButtonStack.vue +6 -4
  51. package/src/component/FluxCalendar.vue +160 -157
  52. package/src/component/FluxContainer.vue +4 -2
  53. package/src/component/FluxFilter.vue +10 -11
  54. package/src/component/FluxFilterBar.vue +71 -15
  55. package/src/component/FluxFilterBase.vue +65 -51
  56. package/src/component/FluxFilterDate.vue +24 -8
  57. package/src/component/FluxFilterDateRange.vue +27 -9
  58. package/src/component/FluxFilterOption.vue +20 -10
  59. package/src/component/FluxFilterOptionAsync.vue +19 -11
  60. package/src/component/FluxFilterOptions.vue +26 -11
  61. package/src/component/FluxFilterOptionsAsync.vue +28 -12
  62. package/src/component/FluxFilterRange.vue +25 -11
  63. package/src/component/FluxFilterWindow.vue +25 -11
  64. package/src/component/FluxFlex.vue +53 -0
  65. package/src/component/FluxFlexItem.vue +40 -0
  66. package/src/component/FluxFormDateTimeInput.vue +3 -4
  67. package/src/component/FluxGrid.vue +4 -2
  68. package/src/component/FluxGridColumn.vue +4 -2
  69. package/src/component/FluxInfoStack.vue +3 -3
  70. package/src/component/FluxItemStack.vue +4 -4
  71. package/src/component/FluxKanbanColumn.vue +16 -3
  72. package/src/component/FluxNoticeStack.vue +3 -3
  73. package/src/component/FluxProgressBar.vue +4 -3
  74. package/src/component/FluxScroller.vue +63 -0
  75. package/src/component/FluxSplitView.vue +101 -0
  76. package/src/component/FluxSplitViewPane.vue +23 -0
  77. package/src/component/FluxSticky.vue +67 -0
  78. package/src/component/FluxTagStack.vue +4 -4
  79. package/src/component/FluxToolbar.vue +3 -4
  80. package/src/component/FluxToolbarGroup.vue +3 -4
  81. package/src/component/FluxTooltipProvider.vue +56 -25
  82. package/src/component/index.ts +6 -3
  83. package/src/component/primitive/FilterBadge.vue +2 -2
  84. package/src/component/primitive/FilterItem.vue +4 -2
  85. package/src/component/primitive/FilterMenuRenderer.ts +10 -5
  86. package/src/component/primitive/FilterOptionBase.vue +1 -1
  87. package/src/composable/private/index.ts +1 -0
  88. package/src/composable/private/useAsyncFilterOptions.ts +1 -1
  89. package/src/composable/private/useFilterOption.ts +1 -1
  90. package/src/composable/private/useSplitView.ts +249 -0
  91. package/src/composable/useFilterInjection.ts +3 -1
  92. package/src/css/component/Calendar.module.scss +11 -17
  93. package/src/css/component/Comment.module.scss +3 -11
  94. package/src/css/component/Filter.module.scss +6 -2
  95. package/src/css/component/Flex.module.scss +84 -0
  96. package/src/css/component/Flyout.module.scss +1 -0
  97. package/src/css/component/Kanban.module.scss +31 -28
  98. package/src/css/component/LayerPane.module.scss +5 -0
  99. package/src/css/component/Layout.module.scss +0 -41
  100. package/src/css/component/Legend.module.scss +3 -4
  101. package/src/css/component/Menu.module.scss +1 -0
  102. package/src/css/component/Pagination.module.scss +1 -1
  103. package/src/css/component/Pane.module.scss +1 -1
  104. package/src/css/component/Progress.module.scss +2 -2
  105. package/src/css/component/Scroller.module.scss +109 -0
  106. package/src/css/component/SplitView.module.scss +78 -0
  107. package/src/css/component/Sticky.module.scss +35 -0
  108. package/src/css/component/Tab.module.scss +1 -0
  109. package/src/css/component/Table.module.scss +1 -0
  110. package/src/css/component/Tooltip.module.scss +14 -0
  111. package/src/data/di.ts +22 -2
  112. package/src/data/index.ts +0 -1
  113. package/src/index.ts +11 -0
  114. package/src/util/defineFilter.ts +10 -0
  115. package/src/util/filter.ts +63 -0
  116. package/src/util/index.ts +2 -0
  117. package/src/vite/defineFilterMacro.ts +335 -0
  118. package/src/vite/index.ts +1 -0
  119. package/dist/data/filter.d.ts +0 -7
  120. package/src/component/FluxColumn.vue +0 -24
  121. package/src/component/FluxRow.vue +0 -24
  122. package/src/component/FluxStack.vue +0 -41
  123. package/src/data/filter.ts +0 -165
package/dist/index.css CHANGED
@@ -333,178 +333,6 @@
333
333
  :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, blockquote, img, [data-typography-aware]) + :where([data-typography-aware]) {
334
334
  margin-top: 21px;
335
335
  }
336
- }.overlay-view {
337
- position: fixed;
338
- inset: 0;
339
- height: 100dvh;
340
- width: 100dvw;
341
- }
342
-
343
- .overlay-provider {
344
- pointer-events: none;
345
- z-index: 10000;
346
- }
347
-
348
- .overlay-shade {
349
- background: var(--overlay);
350
- backdrop-filter: blur(3px) saturate(180%);
351
- pointer-events: none;
352
- transition: opacity 600ms var(--swift-out);
353
- }
354
-
355
- .overlay-provider:not(:has(.overlay:not(.overlay-transition-leave-active):not(.slide-over-transition-leave-active))) .overlay-shade {
356
- opacity: 0;
357
- }
358
-
359
- .overlay {
360
- position: fixed;
361
- display: flex;
362
- inset: 0;
363
- height: 100dvh;
364
- width: 100dvw;
365
- outline: 0;
366
- }
367
- .overlay > .base-pane-structure {
368
- display: flex;
369
- margin: auto;
370
- max-height: min(840px, 100dvh - 180px);
371
- width: calc(100dvw - 90px);
372
- flex-flow: column nowrap;
373
- box-shadow: var(--shadow-lg);
374
- overflow: auto;
375
- transition: 420ms var(--swift-out);
376
- transition-property: filter, scale;
377
- }
378
- .overlay > .base-pane-structure .pane-footer {
379
- position: sticky;
380
- bottom: 0;
381
- margin-top: auto;
382
- }
383
- .overlay > .base-pane-structure::after {
384
- position: absolute;
385
- display: block;
386
- inset: 0;
387
- content: "";
388
- background: var(--overlay-secondary);
389
- opacity: 0;
390
- pointer-events: none;
391
- transition: opacity 420ms var(--swift-out);
392
- z-index: 1;
393
- }
394
- .overlay.is-current > .base-pane-structure {
395
- pointer-events: auto;
396
- }
397
- .overlay:not(.is-current) > .base-pane-structure {
398
- filter: blur(3px);
399
- scale: 0.95;
400
- }
401
- .overlay:not(.is-current) > .base-pane-structure::after {
402
- opacity: 1;
403
- }
404
-
405
- .overlay-small {
406
- }
407
- .overlay-small > .base-pane-structure {
408
- max-width: 420px;
409
- }
410
-
411
- .overlay-medium {
412
- }
413
- .overlay-medium > .base-pane-structure {
414
- max-width: 540px;
415
- }
416
-
417
- .overlay-large {
418
- }
419
- .overlay-large > .base-pane-structure {
420
- max-width: 720px;
421
- }
422
-
423
- .slide-over {
424
- justify-content: flex-end;
425
- }
426
- .slide-over > .base-pane-structure {
427
- margin: 9px;
428
- max-height: calc(100% - 18px);
429
- width: min(100dvw, 720px);
430
- contain: paint;
431
- overflow: auto;
432
- }
433
- .slide-over > .base-pane-structure > .pane-header,
434
- .slide-over > .base-pane-structure > .pane-footer {
435
- position: sticky;
436
- z-index: 100;
437
- }
438
- .slide-over > .base-pane-structure > .pane-header {
439
- top: 0;
440
- padding-bottom: 18px;
441
- border-bottom: 1px solid var(--gray-100);
442
- box-shadow: var(--shadow-xs);
443
- }
444
- .slide-over > .base-pane-structure > .pane-header:has(+ :where(.tabs, .tab-bar-default)) {
445
- padding-bottom: 0;
446
- border-bottom: 0;
447
- box-shadow: none;
448
- }
449
- .slide-over > .base-pane-structure > .pane-header:not(:has(+ :where(.tabs, .tab-bar-default))) {
450
- background: inherit;
451
- }
452
- .slide-over > .base-pane-structure > .pane-header + .tab-bar-default {
453
- position: sticky;
454
- top: 45px;
455
- z-index: 100;
456
- }
457
- .slide-over > .base-pane-structure > .pane-header:has(.pane-header-caption > :is(span)) + .tab-bar-default {
458
- top: 66px;
459
- }
460
- .slide-over > .base-pane-structure > .pane-footer {
461
- bottom: 0;
462
- }
463
-
464
- .overlay-transition-enter-active,
465
- .overlay-transition-leave-active {
466
- transition: opacity 420ms var(--swift-out);
467
- }
468
- .overlay-transition-enter-active > .base-pane-structure,
469
- .overlay-transition-leave-active > .base-pane-structure {
470
- transition: 420ms var(--swift-out);
471
- transition-property: opacity, scale;
472
- }
473
-
474
- .overlay-transition-enter-from {
475
- opacity: 0;
476
- }
477
- .overlay-transition-enter-from > .base-pane-structure {
478
- opacity: 0;
479
- scale: 0.9;
480
- }
481
-
482
- .overlay-transition-leave-to {
483
- opacity: 0;
484
- }
485
- .overlay-transition-leave-to > .base-pane-structure {
486
- opacity: 0;
487
- scale: 0.95;
488
- }
489
-
490
- .slide-over-transition-enter-active,
491
- .slide-over-transition-leave-active {
492
- transition: opacity 600ms var(--swift-out);
493
- }
494
- .slide-over-transition-enter-active > .base-pane-structure,
495
- .slide-over-transition-leave-active > .base-pane-structure {
496
- transition: 600ms var(--swift-out);
497
- transition-property: opacity, transform;
498
- }
499
-
500
- .slide-over-transition-enter-from,
501
- .slide-over-transition-leave-to {
502
- opacity: 0;
503
- transition-delay: 210ms;
504
- }
505
- .slide-over-transition-enter-from > .base-pane-structure,
506
- .slide-over-transition-leave-to > .base-pane-structure {
507
- transform: translate3d(100%, 0, 0);
508
336
  }.base-pane {
509
337
  background: var(--surface);
510
338
  background-clip: padding-box;
@@ -821,6 +649,178 @@
821
649
  }
822
650
  .action-pane-body.pane-body {
823
651
  padding: 0;
652
+ }.overlay-view {
653
+ position: fixed;
654
+ inset: 0;
655
+ height: 100dvh;
656
+ width: 100dvw;
657
+ }
658
+
659
+ .overlay-provider {
660
+ pointer-events: none;
661
+ z-index: 10000;
662
+ }
663
+
664
+ .overlay-shade {
665
+ background: var(--overlay);
666
+ backdrop-filter: blur(3px) saturate(180%);
667
+ pointer-events: none;
668
+ transition: opacity 600ms var(--swift-out);
669
+ }
670
+
671
+ .overlay-provider:not(:has(.overlay:not(.overlay-transition-leave-active):not(.slide-over-transition-leave-active))) .overlay-shade {
672
+ opacity: 0;
673
+ }
674
+
675
+ .overlay {
676
+ position: fixed;
677
+ display: flex;
678
+ inset: 0;
679
+ height: 100dvh;
680
+ width: 100dvw;
681
+ outline: 0;
682
+ }
683
+ .overlay > .base-pane-structure {
684
+ display: flex;
685
+ margin: auto;
686
+ max-height: min(840px, 100dvh - 180px);
687
+ width: calc(100dvw - 90px);
688
+ flex-flow: column nowrap;
689
+ box-shadow: var(--shadow-lg);
690
+ overflow: auto;
691
+ transition: 420ms var(--swift-out);
692
+ transition-property: filter, scale;
693
+ }
694
+ .overlay > .base-pane-structure .pane-footer {
695
+ position: sticky;
696
+ bottom: 0;
697
+ margin-top: auto;
698
+ }
699
+ .overlay > .base-pane-structure::after {
700
+ position: absolute;
701
+ display: block;
702
+ inset: 0;
703
+ content: "";
704
+ background: var(--overlay-secondary);
705
+ opacity: 0;
706
+ pointer-events: none;
707
+ transition: opacity 420ms var(--swift-out);
708
+ z-index: 1;
709
+ }
710
+ .overlay.is-current > .base-pane-structure {
711
+ pointer-events: auto;
712
+ }
713
+ .overlay:not(.is-current) > .base-pane-structure {
714
+ filter: blur(3px);
715
+ scale: 0.95;
716
+ }
717
+ .overlay:not(.is-current) > .base-pane-structure::after {
718
+ opacity: 1;
719
+ }
720
+
721
+ .overlay-small {
722
+ }
723
+ .overlay-small > .base-pane-structure {
724
+ max-width: 420px;
725
+ }
726
+
727
+ .overlay-medium {
728
+ }
729
+ .overlay-medium > .base-pane-structure {
730
+ max-width: 540px;
731
+ }
732
+
733
+ .overlay-large {
734
+ }
735
+ .overlay-large > .base-pane-structure {
736
+ max-width: 720px;
737
+ }
738
+
739
+ .slide-over {
740
+ justify-content: flex-end;
741
+ }
742
+ .slide-over > .base-pane-structure {
743
+ margin: 9px;
744
+ max-height: calc(100% - 18px);
745
+ width: min(100dvw, 720px);
746
+ contain: paint;
747
+ overflow: auto;
748
+ }
749
+ .slide-over > .base-pane-structure > .pane-header,
750
+ .slide-over > .base-pane-structure > .pane-footer {
751
+ position: sticky;
752
+ z-index: 100;
753
+ }
754
+ .slide-over > .base-pane-structure > .pane-header {
755
+ top: 0;
756
+ padding-bottom: 18px;
757
+ border-bottom: 1px solid var(--gray-100);
758
+ box-shadow: var(--shadow-xs);
759
+ }
760
+ .slide-over > .base-pane-structure > .pane-header:has(+ :where(.tabs, .tab-bar-default)) {
761
+ padding-bottom: 0;
762
+ border-bottom: 0;
763
+ box-shadow: none;
764
+ }
765
+ .slide-over > .base-pane-structure > .pane-header:not(:has(+ :where(.tabs, .tab-bar-default))) {
766
+ background: inherit;
767
+ }
768
+ .slide-over > .base-pane-structure > .pane-header + .tab-bar-default {
769
+ position: sticky;
770
+ top: 45px;
771
+ z-index: 100;
772
+ }
773
+ .slide-over > .base-pane-structure > .pane-header:has(.pane-header-caption > :is(span)) + .tab-bar-default {
774
+ top: 66px;
775
+ }
776
+ .slide-over > .base-pane-structure > .pane-footer {
777
+ bottom: 0;
778
+ }
779
+
780
+ .overlay-transition-enter-active,
781
+ .overlay-transition-leave-active {
782
+ transition: opacity 420ms var(--swift-out);
783
+ }
784
+ .overlay-transition-enter-active > .base-pane-structure,
785
+ .overlay-transition-leave-active > .base-pane-structure {
786
+ transition: 420ms var(--swift-out);
787
+ transition-property: opacity, scale;
788
+ }
789
+
790
+ .overlay-transition-enter-from {
791
+ opacity: 0;
792
+ }
793
+ .overlay-transition-enter-from > .base-pane-structure {
794
+ opacity: 0;
795
+ scale: 0.9;
796
+ }
797
+
798
+ .overlay-transition-leave-to {
799
+ opacity: 0;
800
+ }
801
+ .overlay-transition-leave-to > .base-pane-structure {
802
+ opacity: 0;
803
+ scale: 0.95;
804
+ }
805
+
806
+ .slide-over-transition-enter-active,
807
+ .slide-over-transition-leave-active {
808
+ transition: opacity 600ms var(--swift-out);
809
+ }
810
+ .slide-over-transition-enter-active > .base-pane-structure,
811
+ .slide-over-transition-leave-active > .base-pane-structure {
812
+ transition: 600ms var(--swift-out);
813
+ transition-property: opacity, transform;
814
+ }
815
+
816
+ .slide-over-transition-enter-from,
817
+ .slide-over-transition-leave-to {
818
+ opacity: 0;
819
+ transition-delay: 210ms;
820
+ }
821
+ .slide-over-transition-enter-from > .base-pane-structure,
822
+ .slide-over-transition-leave-to > .base-pane-structure {
823
+ transform: translate3d(100%, 0, 0);
824
824
  }.primary-button {
825
825
  background: var(--primary-600);
826
826
  border-color: var(--primary-700);
@@ -1089,6 +1089,86 @@
1089
1089
  opacity: 0;
1090
1090
  translate: 0 -512px;
1091
1091
  }
1092
+ }.flex {
1093
+ --gap: 0;
1094
+ display: flex;
1095
+ gap: var(--gap);
1096
+ }
1097
+
1098
+ .flex-inline {
1099
+ display: inline-flex;
1100
+ }
1101
+
1102
+ .flex-direction-horizontal {
1103
+ flex-direction: row;
1104
+ }
1105
+
1106
+ .flex-direction-vertical {
1107
+ flex-direction: column;
1108
+ }
1109
+
1110
+ .flex-align-start {
1111
+ align-items: flex-start;
1112
+ }
1113
+
1114
+ .flex-align-center {
1115
+ align-items: center;
1116
+ }
1117
+
1118
+ .flex-align-end {
1119
+ align-items: flex-end;
1120
+ }
1121
+
1122
+ .flex-align-stretch {
1123
+ align-items: stretch;
1124
+ }
1125
+
1126
+ .flex-align-baseline {
1127
+ align-items: baseline;
1128
+ }
1129
+
1130
+ .flex-justify-start {
1131
+ justify-content: flex-start;
1132
+ }
1133
+
1134
+ .flex-justify-center {
1135
+ justify-content: center;
1136
+ }
1137
+
1138
+ .flex-justify-end {
1139
+ justify-content: flex-end;
1140
+ }
1141
+
1142
+ .flex-justify-between {
1143
+ justify-content: space-between;
1144
+ }
1145
+
1146
+ .flex-justify-around {
1147
+ justify-content: space-around;
1148
+ }
1149
+
1150
+ .flex-justify-evenly {
1151
+ justify-content: space-evenly;
1152
+ }
1153
+
1154
+ .flex-wrap-wrap {
1155
+ flex-wrap: wrap;
1156
+ }
1157
+
1158
+ .flex-wrap-nowrap {
1159
+ flex-wrap: nowrap;
1160
+ }
1161
+
1162
+ .flex-wrap-wrap-reverse {
1163
+ flex-wrap: wrap-reverse;
1164
+ }
1165
+
1166
+ .flex-fill {
1167
+ width: 100%;
1168
+ }
1169
+
1170
+ .flex-item {
1171
+ min-width: 0;
1092
1172
  }.pane {
1093
1173
  }
1094
1174
 
@@ -1100,7 +1180,7 @@
1100
1180
  }
1101
1181
 
1102
1182
  .pane-well {
1103
- --surface: var(--background);
1183
+ background-color: var(--gray-50);
1104
1184
  }
1105
1185
 
1106
1186
  :is(.pane-default, .pane-flat, .pane-well):is(a) {
@@ -1324,6 +1404,7 @@
1324
1404
 
1325
1405
  .flyout-pane {
1326
1406
  max-height: calc(100dvh - 120px);
1407
+ width: max-content;
1327
1408
  box-shadow: var(--shadow-md);
1328
1409
  overflow: auto;
1329
1410
  transform: translate3d(var(--pane-mx), var(--pane-my), 0);
@@ -1400,42 +1481,8 @@
1400
1481
  }
1401
1482
  }
1402
1483
 
1403
- .column {
1404
- display: flex;
1405
- flex-flow: column;
1406
- gap: var(--gap, 0);
1407
- }
1408
-
1409
- .row {
1410
- display: flex;
1411
- gap: var(--gap, 0);
1412
- }
1413
-
1414
1484
  .spacer {
1415
1485
  flex-grow: 1;
1416
- }
1417
-
1418
- .stack {
1419
- gap: var(--gap, 0);
1420
- }
1421
- .stack.is-centered {
1422
- place-content: center;
1423
- place-items: center;
1424
- }
1425
- .stack.is-fill {
1426
- width: 100%;
1427
- }
1428
- .stack.is-wrapping {
1429
- flex-wrap: wrap;
1430
- }
1431
-
1432
- .stack-horizontal {
1433
- display: flex;
1434
- }
1435
-
1436
- .stack-vertical {
1437
- display: flex;
1438
- flex-flow: column;
1439
1486
  }.adaptive-group {
1440
1487
  display: flex;
1441
1488
  min-width: 0;
@@ -1972,11 +2019,14 @@
1972
2019
 
1973
2020
  .tag-warning {
1974
2021
  }.calendar {
2022
+ flex-grow: 1;
2023
+ }
2024
+
2025
+ .calendar-view {
2026
+ contain: paint;
1975
2027
  display: flex;
1976
2028
  flex-flow: column;
1977
2029
  flex-grow: 1;
1978
- box-shadow: var(--shadow-sm);
1979
- contain: paint;
1980
2030
  }
1981
2031
 
1982
2032
  .calendar-item-registry {
@@ -2053,15 +2103,14 @@
2053
2103
  outline-offset: 2px;
2054
2104
  }
2055
2105
 
2056
- /* region Month view */
2057
2106
  .calendar-cells {
2058
2107
  display: grid;
2059
2108
  flex-grow: 1;
2060
2109
  gap: 1px;
2061
2110
  grid-template-columns: repeat(7, minmax(180px, 1fr));
2062
- grid-auto-rows: auto;
2063
- overflow-x: auto;
2111
+ grid-template-rows: min-content repeat(6, auto);
2064
2112
  background: var(--gray-100);
2113
+ overflow-x: auto;
2065
2114
  }
2066
2115
 
2067
2116
  .calendar-cell {
@@ -2073,9 +2122,9 @@
2073
2122
  padding-left: 0;
2074
2123
  padding-right: 0;
2075
2124
  color: var(--foreground-secondary);
2076
- font-size: 12px;
2077
- font-weight: 400;
2078
- line-height: 1em;
2125
+ font-size: 13px;
2126
+ font-weight: 500;
2127
+ line-height: 30px;
2079
2128
  text-align: center;
2080
2129
  text-transform: capitalize;
2081
2130
  }
@@ -2085,7 +2134,7 @@
2085
2134
  min-height: 90px;
2086
2135
  padding-top: 33px;
2087
2136
  outline: 2px dashed transparent;
2088
- outline-offset: 2px;
2137
+ outline-offset: -2px;
2089
2138
  transition: 210ms var(--swift-out);
2090
2139
  transition-property: background, outline-color, z-index;
2091
2140
  z-index: 0;
@@ -2131,8 +2180,6 @@
2131
2180
  gap: 3px;
2132
2181
  }
2133
2182
 
2134
- /* endregion */
2135
- /* region Time-grid view */
2136
2183
  .time-grid {
2137
2184
  display: flex;
2138
2185
  flex-flow: column;
@@ -2326,9 +2373,7 @@
2326
2373
  background: var(--primary-500);
2327
2374
  z-index: 5;
2328
2375
  pointer-events: none;
2329
- }
2330
-
2331
- /* endregion */.date-picker {
2376
+ }.date-picker {
2332
2377
  display: flex;
2333
2378
  max-height: 420px;
2334
2379
  flex-flow: column;
@@ -2459,37 +2504,81 @@
2459
2504
  position: relative;
2460
2505
  }
2461
2506
 
2462
- .date-picker-dates-grid {
2463
- display: grid;
2464
- gap: 3px 0;
2465
- grid-template-columns: repeat(7, 1fr);
2507
+ .date-picker-dates-grid {
2508
+ display: grid;
2509
+ gap: 3px 0;
2510
+ grid-template-columns: repeat(7, 1fr);
2511
+ }
2512
+
2513
+ .date-picker-day {
2514
+ margin-bottom: 6px;
2515
+ color: var(--foreground-secondary);
2516
+ font-size: 12px;
2517
+ font-weight: 500;
2518
+ text-align: center;
2519
+ text-transform: uppercase;
2520
+ }
2521
+
2522
+ .date-picker-months,
2523
+ .date-picker-years {
2524
+ display: grid;
2525
+ margin-left: auto;
2526
+ margin-right: auto;
2527
+ max-width: 300px;
2528
+ width: 100%;
2529
+ gap: 9px;
2530
+ grid-template-columns: repeat(3, 1fr);
2531
+ }
2532
+ .date-picker-months .button,
2533
+ .date-picker-years .button {
2534
+ contain: size layout;
2535
+ contain-intrinsic-size: 0 42px;
2536
+ content-visibility: auto;
2537
+ text-transform: capitalize;
2538
+ }.layer-pane {
2539
+ display: flex;
2540
+ flex-flow: column;
2541
+ border: 1px solid var(--surface-stroke-out);
2542
+ border-radius: var(--radius);
2543
+ background: var(--gray-50);
2544
+ background-clip: padding-box;
2545
+ }
2546
+
2547
+ .layer-pane > .base-pane-structure {
2548
+ border-right-width: 0;
2549
+ border-left-width: 0;
2550
+ }
2551
+
2552
+ .layer-pane > .base-pane-structure:first-child {
2553
+ border-top-width: 0;
2554
+ }
2555
+
2556
+ .layer-pane > .base-pane-structure:last-child {
2557
+ border-bottom-width: 0;
2558
+ }
2559
+
2560
+ .layer-pane > .base-pane-structure + .base-pane-structure {
2561
+ border-top-width: 0;
2562
+ border-top-left-radius: 0;
2563
+ border-top-right-radius: 0;
2564
+ }
2565
+
2566
+ .layer-pane > .base-pane-structure:has(+ .base-pane-structure) {
2567
+ border-bottom-left-radius: 0;
2568
+ border-bottom-right-radius: 0;
2466
2569
  }
2467
2570
 
2468
- .date-picker-day {
2469
- margin-bottom: 6px;
2470
- color: var(--foreground-secondary);
2471
- font-size: 12px;
2472
- font-weight: 500;
2473
- text-align: center;
2474
- text-transform: uppercase;
2571
+ .layer-pane > .pane-footer {
2572
+ background: unset;
2573
+ border: 0;
2475
2574
  }
2476
2575
 
2477
- .date-picker-months,
2478
- .date-picker-years {
2479
- display: grid;
2480
- margin-left: auto;
2481
- margin-right: auto;
2482
- max-width: 300px;
2483
- width: 100%;
2576
+ .layer-pane-secondary {
2577
+ display: flex;
2578
+ align-items: center;
2484
2579
  gap: 9px;
2485
- grid-template-columns: repeat(3, 1fr);
2486
- }
2487
- .date-picker-months .button,
2488
- .date-picker-years .button {
2489
- contain: size layout;
2490
- contain-intrinsic-size: 0 42px;
2491
- content-visibility: auto;
2492
- text-transform: capitalize;
2580
+ padding: 12px 18px;
2581
+ color: var(--foreground-prominent);
2493
2582
  }.form-input-group > .button-group > .button, .form-input-group > :is(.form-input, .form-select, .button) {
2494
2583
  height: 100%;
2495
2584
  min-height: unset;
@@ -3685,8 +3774,8 @@
3685
3774
  .comment-content {
3686
3775
  min-width: 0;
3687
3776
  padding: 12px 18px;
3688
- background: linear-gradient(to bottom, var(--gray-25), var(--gray-50));
3689
- border: 1px solid var(--gray-200);
3777
+ background: var(--primary-50);
3778
+ border: 1px solid var(--primary-200);
3690
3779
  border-radius: calc(var(--radius) * 2);
3691
3780
  box-shadow: var(--shadow-xs);
3692
3781
  }
@@ -3696,7 +3785,7 @@
3696
3785
  }
3697
3786
 
3698
3787
  .comment.is-received .comment-content {
3699
- background: linear-gradient(to bottom, var(--gray-50), var(--gray-100));
3788
+ background: var(--gray-50);
3700
3789
  border-color: var(--gray-200);
3701
3790
  border-bottom-left-radius: var(--radius);
3702
3791
  }
@@ -3729,14 +3818,6 @@
3729
3818
  color: var(--foreground-secondary);
3730
3819
  }
3731
3820
 
3732
- [dark] .comment-content {
3733
- background: linear-gradient(to bottom, var(--gray-50), var(--gray-25));
3734
- }
3735
-
3736
- [dark] .comment.is-received .comment-content {
3737
- background: linear-gradient(to bottom, var(--gray-100), var(--gray-50));
3738
- }
3739
-
3740
3821
  @keyframes comment-typing {
3741
3822
  0%, 80%, 100% {
3742
3823
  background: var(--gray-200);
@@ -3885,7 +3966,7 @@
3885
3966
  max-height: 50dvh;
3886
3967
  max-width: 100%;
3887
3968
  padding: 9px;
3888
- width: 270px;
3969
+ width: 300px;
3889
3970
  overflow: auto;
3890
3971
  scrollbar-width: none;
3891
3972
  transition: height 150ms var(--deceleration-curve);
@@ -3956,11 +4037,15 @@
3956
4037
  flex-grow: 1;
3957
4038
  }
3958
4039
 
3959
- .filter-reset {
4040
+ .filter-action {
3960
4041
  width: 42px;
3961
4042
  justify-content: center;
3962
4043
  }
3963
4044
 
4045
+ .filter-header-actions {
4046
+ justify-content: flex-end;
4047
+ }
4048
+
3964
4049
  .filter-date-picker {
3965
4050
  margin: -9px;
3966
4051
  }
@@ -4023,6 +4108,7 @@
4023
4108
  box-shadow: none;
4024
4109
  color: var(--foreground);
4025
4110
  text-align: left;
4111
+ transition-duration: 0s;
4026
4112
  }
4027
4113
  @media (hover: hover) {
4028
4114
  .menu-item:hover {
@@ -4685,7 +4771,7 @@
4685
4771
  @media (max-width: 767.98px) {
4686
4772
  .pagination-bar {
4687
4773
  flex-flow: column;
4688
- gap: 15px;
4774
+ gap: 9px;
4689
4775
  }
4690
4776
  }.table {
4691
4777
  position: relative;
@@ -4813,6 +4899,7 @@ tfoot .table-cell {
4813
4899
 
4814
4900
  .table-pagination {
4815
4901
  position: sticky;
4902
+ left: 0;
4816
4903
  bottom: 0;
4817
4904
  margin-top: auto;
4818
4905
  margin-bottom: -1px;
@@ -5464,8 +5551,6 @@ tfoot .table-cell {
5464
5551
  grid-auto-flow: column;
5465
5552
  grid-auto-columns: minmax(300px, 1fr);
5466
5553
  grid-template-rows: auto 1fr auto;
5467
- margin: -9px;
5468
- padding: 9px;
5469
5554
  gap: 0 15px;
5470
5555
  overflow-x: auto;
5471
5556
  }
@@ -5492,7 +5577,7 @@ tfoot .table-cell {
5492
5577
  border: 1px solid var(--surface-stroke);
5493
5578
  border-radius: var(--radius);
5494
5579
  outline: 2px dashed transparent;
5495
- outline-offset: 2px;
5580
+ outline-offset: -2px;
5496
5581
  overflow: hidden;
5497
5582
  transition: 210ms var(--swift-out);
5498
5583
  transition-property: background, border, outline-color, opacity, z-index;
@@ -5526,6 +5611,19 @@ tfoot .table-cell {
5526
5611
  outline-offset: -2;
5527
5612
  }
5528
5613
 
5614
+ .kanban-column-header-caption {
5615
+ display: flex;
5616
+ padding-left: 9px;
5617
+ align-items: center;
5618
+ gap: 9px;
5619
+ }
5620
+ .kanban-column-header-caption .icon {
5621
+ font-size: 16px;
5622
+ }
5623
+ .kanban-column-header-caption span {
5624
+ font-weight: 500;
5625
+ }
5626
+
5529
5627
  .kanban-column.is-reorderable .kanban-column-header {
5530
5628
  cursor: grab;
5531
5629
  }
@@ -5534,14 +5632,6 @@ tfoot .table-cell {
5534
5632
  cursor: grabbing;
5535
5633
  }
5536
5634
 
5537
- .kanban-column-label {
5538
- flex: 1;
5539
- font-size: 14px;
5540
- font-weight: 600;
5541
- color: var(--foreground);
5542
- text-transform: uppercase;
5543
- }
5544
-
5545
5635
  .kanban-column-body {
5546
5636
  position: relative;
5547
5637
  display: flex;
@@ -5577,9 +5667,7 @@ tfoot .table-cell {
5577
5667
  flex: 1;
5578
5668
  align-items: center;
5579
5669
  justify-content: center;
5580
- padding: 18px 12px;
5581
- font-size: 0.8125rem;
5582
- color: var(--gray-500);
5670
+ color: var(--foreground-secondary);
5583
5671
  text-align: center;
5584
5672
  }
5585
5673
 
@@ -5590,9 +5678,9 @@ tfoot .table-cell {
5590
5678
 
5591
5679
  .kanban-drop-indicator {
5592
5680
  position: absolute;
5593
- top: -3px;
5681
+ top: -2px;
5594
5682
  inset-inline: 15px;
5595
- height: 4px;
5683
+ height: 2px;
5596
5684
  border-radius: 999px;
5597
5685
  background: var(--primary-500);
5598
5686
  opacity: 0;
@@ -5629,25 +5717,23 @@ tfoot .table-cell {
5629
5717
  .kanban-item:active {
5630
5718
  cursor: grabbing;
5631
5719
  }
5632
-
5633
- .kanban-item.is-disabled {
5634
- cursor: not-allowed;
5635
- opacity: 0.6;
5636
- }
5637
- .kanban-item.is-disabled:active {
5638
- cursor: not-allowed;
5639
- }
5640
-
5641
- .is-dragging {
5720
+ .kanban-item.is-dragging {
5642
5721
  opacity: 0.4;
5643
5722
  cursor: grabbing;
5644
5723
  }
5645
-
5646
- .is-grabbed {
5724
+ .kanban-item.is-grabbed {
5647
5725
  transform: scale(1.04);
5648
5726
  outline: 2px solid var(--primary-500);
5649
5727
  outline-offset: 2px;
5650
5728
  z-index: 1;
5729
+ }
5730
+
5731
+ .kanban-item.is-disabled {
5732
+ cursor: not-allowed;
5733
+ opacity: 0.6;
5734
+ }
5735
+ .kanban-item.is-disabled:active {
5736
+ cursor: not-allowed;
5651
5737
  }.item {
5652
5738
  display: flex;
5653
5739
  flex-flow: row nowrap;
@@ -5717,50 +5803,14 @@ tfoot .table-cell {
5717
5803
 
5718
5804
  .base-pane-structure:is(a, button):hover:has(> .item) {
5719
5805
  background-color: color-mix(in srgb, rgb(from var(--surface-hover) r g b/0.125), var(--surface));
5720
- }.layer-pane {
5721
- display: flex;
5722
- flex-flow: column;
5723
- border: 1px solid var(--surface-stroke-out);
5724
- border-radius: var(--radius);
5725
- background: var(--gray-50);
5726
- background-clip: padding-box;
5727
- }
5728
-
5729
- .layer-pane > .base-pane-structure {
5730
- border-right-width: 0;
5731
- border-left-width: 0;
5732
- }
5733
-
5734
- .layer-pane > .base-pane-structure:first-child {
5735
- border-top-width: 0;
5736
- }
5737
-
5738
- .layer-pane > .base-pane-structure:last-child {
5739
- border-bottom-width: 0;
5740
- }
5741
-
5742
- .layer-pane > .base-pane-structure + .base-pane-structure {
5743
- border-top-width: 0;
5744
- border-top-left-radius: 0;
5745
- border-top-right-radius: 0;
5746
- }
5747
-
5748
- .layer-pane > .base-pane-structure:has(+ .base-pane-structure) {
5749
- border-bottom-left-radius: 0;
5750
- border-bottom-right-radius: 0;
5751
- }
5752
-
5753
- .layer-pane-secondary {
5754
- display: flex;
5755
- align-items: center;
5756
- gap: 9px;
5757
- padding: 12px 18px;
5758
- color: var(--foreground-prominent);
5759
5806
  }.legend-horizontal {
5807
+ display: flex;
5760
5808
  gap: 12px 18px;
5761
5809
  }
5762
5810
 
5763
5811
  .legend-vertical {
5812
+ display: flex;
5813
+ flex-flow: column;
5764
5814
  gap: 12px;
5765
5815
  }
5766
5816
 
@@ -6061,7 +6111,7 @@ tfoot .table-cell {
6061
6111
  }
6062
6112
 
6063
6113
  .progress-bar-value-incomplete {
6064
- background: linear-gradient(to right, var(--primary-600) 20%, var(--primary-500), var(--primary-600) 80%);
6114
+ background: var(--primary-600) linear-gradient(-45deg, transparent 20%, rgb(from var(--primary-500) r g b/0.5), transparent 80%);
6065
6115
  background-size: 150px 100%;
6066
6116
  animation: progress-bar-value 1s linear infinite;
6067
6117
  }
@@ -6069,7 +6119,7 @@ tfoot .table-cell {
6069
6119
  .progress-bar-track-indeterminate {
6070
6120
  }
6071
6121
  .progress-bar-track-indeterminate .progress-bar-value {
6072
- background: linear-gradient(to right, var(--primary-600) 20%, var(--primary-500), var(--primary-600) 80%);
6122
+ background: var(--primary-600) linear-gradient(-45deg, transparent 20%, rgb(from var(--primary-500) r g b/0.5), transparent 80%);
6073
6123
  background-size: 90px 100%;
6074
6124
  animation: progress-bar-indeterminate 1s linear infinite;
6075
6125
  }
@@ -6317,7 +6367,21 @@ tfoot .table-cell {
6317
6367
  scale: 0.95;
6318
6368
  translate: 0 -15px;
6319
6369
  z-index: -1;
6320
- }.tooltip {
6370
+ }.tooltip-host {
6371
+ position: fixed;
6372
+ inset: 0;
6373
+ width: 0;
6374
+ height: 0;
6375
+ margin: 0;
6376
+ padding: 0;
6377
+ background: transparent;
6378
+ border: 0;
6379
+ color: inherit;
6380
+ overflow: visible;
6381
+ pointer-events: none;
6382
+ }
6383
+
6384
+ .tooltip {
6321
6385
  position: fixed;
6322
6386
  display: flex;
6323
6387
  top: 0;
@@ -6376,6 +6440,103 @@ tfoot .table-cell {
6376
6440
  .root.is-locked {
6377
6441
  cursor: default;
6378
6442
  overflow: hidden;
6443
+ }.scroller {
6444
+ position: relative;
6445
+ overflow: auto;
6446
+ overscroll-behavior: contain;
6447
+ scrollbar-color: var(--surface-stroke) transparent;
6448
+ scrollbar-width: thin;
6449
+ }
6450
+ .scroller::-webkit-scrollbar {
6451
+ width: 8px;
6452
+ height: 8px;
6453
+ }
6454
+ .scroller::-webkit-scrollbar-track {
6455
+ background: transparent;
6456
+ }
6457
+ .scroller::-webkit-scrollbar-thumb {
6458
+ background-color: var(--surface-stroke);
6459
+ border-radius: 4px;
6460
+ }
6461
+ .scroller:hover::-webkit-scrollbar-thumb {
6462
+ background-color: var(--gray-400);
6463
+ }
6464
+
6465
+ .scroller-direction-vertical {
6466
+ overflow-x: hidden;
6467
+ overflow-y: auto;
6468
+ }
6469
+
6470
+ .scroller-direction-horizontal {
6471
+ overflow-x: auto;
6472
+ overflow-y: hidden;
6473
+ }
6474
+
6475
+ .scroller-direction-both {
6476
+ overflow: auto;
6477
+ }
6478
+
6479
+ .scroller-snap-mandatory-horizontal {
6480
+ scroll-snap-type: x mandatory;
6481
+ }
6482
+
6483
+ .scroller-snap-mandatory-vertical {
6484
+ scroll-snap-type: y mandatory;
6485
+ }
6486
+
6487
+ .scroller-snap-mandatory-both {
6488
+ scroll-snap-type: both mandatory;
6489
+ }
6490
+
6491
+ .scroller-snap-proximity-horizontal {
6492
+ scroll-snap-type: x proximity;
6493
+ }
6494
+
6495
+ .scroller-snap-proximity-vertical {
6496
+ scroll-snap-type: y proximity;
6497
+ }
6498
+
6499
+ .scroller-snap-proximity-both {
6500
+ scroll-snap-type: both proximity;
6501
+ }
6502
+
6503
+ .scroller-snap-align-start > * {
6504
+ scroll-snap-align: start;
6505
+ }
6506
+
6507
+ .scroller-snap-align-center > * {
6508
+ scroll-snap-align: center;
6509
+ }
6510
+
6511
+ .scroller-snap-align-end > * {
6512
+ scroll-snap-align: end;
6513
+ }
6514
+
6515
+ .scroller-fade {
6516
+ --fade-mask-vertical: linear-gradient(
6517
+ to bottom,
6518
+ transparent 0,
6519
+ black var(--fade-start, 0px),
6520
+ black calc(100% - var(--fade-end, 0px)),
6521
+ transparent 100%
6522
+ );
6523
+ --fade-mask-horizontal: linear-gradient(
6524
+ to right,
6525
+ transparent 0,
6526
+ black var(--fade-start, 0px),
6527
+ black calc(100% - var(--fade-end, 0px)),
6528
+ transparent 100%
6529
+ );
6530
+ }
6531
+
6532
+ .scroller-fade-vertical {
6533
+ -webkit-mask-image: var(--fade-mask-vertical);
6534
+ mask-image: var(--fade-mask-vertical);
6535
+ }
6536
+
6537
+ .scroller-fade-horizontal {
6538
+ -webkit-mask-image: var(--fade-mask-horizontal);
6539
+ mask-image: var(--fade-mask-horizontal);
6379
6540
  }.segmented-control {
6380
6541
  position: relative;
6381
6542
  align-items: center;
@@ -6450,6 +6611,69 @@ tfoot .table-cell {
6450
6611
  }
6451
6612
  .segmented-control-separator.is-active {
6452
6613
  opacity: 0;
6614
+ }.split-view {
6615
+ display: grid;
6616
+ width: 100%;
6617
+ height: 100%;
6618
+ overflow: hidden;
6619
+ }
6620
+
6621
+ .split-view-horizontal {
6622
+ grid-auto-flow: column;
6623
+ }
6624
+
6625
+ .split-view-vertical {
6626
+ grid-auto-flow: row;
6627
+ }
6628
+
6629
+ .split-view-dragging {
6630
+ user-select: none;
6631
+ }
6632
+ .split-view-dragging * {
6633
+ pointer-events: none;
6634
+ }
6635
+
6636
+ .split-view-pane {
6637
+ min-width: 0;
6638
+ min-height: 0;
6639
+ overflow: auto;
6640
+ }
6641
+
6642
+ .split-view-handle {
6643
+ appearance: none;
6644
+ position: relative;
6645
+ display: block;
6646
+ border: 0;
6647
+ margin: 0;
6648
+ padding: 0;
6649
+ background: transparent;
6650
+ cursor: col-resize;
6651
+ }
6652
+ .split-view-handle::before {
6653
+ position: absolute;
6654
+ top: 0;
6655
+ left: calc(50% - 1px);
6656
+ height: 100%;
6657
+ width: 2px;
6658
+ content: "";
6659
+ background: var(--surface-stroke);
6660
+ transition: background 0.15s var(--swift-out);
6661
+ }
6662
+ .split-view-handle:hover::before, .split-view-handle:focus-visible::before {
6663
+ background: var(--primary-500);
6664
+ }
6665
+ .split-view-handle:focus-visible {
6666
+ outline: none;
6667
+ }
6668
+
6669
+ .split-view-handle-vertical {
6670
+ cursor: row-resize;
6671
+ }
6672
+ .split-view-handle-vertical::before {
6673
+ top: calc(50% - 1px);
6674
+ left: 0;
6675
+ height: 2px;
6676
+ width: 100%;
6453
6677
  }.statistic {
6454
6678
  padding: 18px;
6455
6679
  flex-basis: 0;
@@ -6694,11 +6918,39 @@ tfoot .table-cell {
6694
6918
  }
6695
6919
 
6696
6920
  .stepper-steps-item-particles {
6921
+ }.sticky-sentinel {
6922
+ position: relative;
6923
+ height: 1px;
6924
+ width: 100%;
6925
+ pointer-events: none;
6926
+ visibility: hidden;
6927
+ }
6928
+
6929
+ .sticky {
6930
+ position: sticky;
6931
+ z-index: 1;
6932
+ }
6933
+
6934
+ .sticky-top {
6935
+ top: var(--offset, 0);
6936
+ }
6937
+
6938
+ .sticky-bottom {
6939
+ bottom: var(--offset, 0);
6940
+ }
6941
+
6942
+ .has-shadow {
6943
+ transition: box-shadow 0.15s var(--swift-out);
6944
+ }
6945
+
6946
+ .has-shadow[data-stuck=true] {
6947
+ box-shadow: var(--surface-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));
6697
6948
  }.tab {
6698
6949
  position: relative;
6699
6950
  display: flex;
6700
6951
  flex-flow: column;
6701
6952
  flex-grow: 1;
6953
+ gap: 18px;
6702
6954
  }
6703
6955
 
6704
6956
  .base-tab-bar {