@cratis/components 4.5.2 → 4.7.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 (93) hide show
  1. package/compat-manifest.json +18 -18
  2. package/dist/esm/Canvas/CanvasOverlay.d.ts.map +1 -1
  3. package/dist/esm/Canvas/canvasGesture.d.ts.map +1 -1
  4. package/dist/esm/Canvas/canvasTransformActivity.d.ts.map +1 -1
  5. package/dist/esm/Canvas/selfSuspendingFrameLoop.d.ts.map +1 -1
  6. package/dist/esm/Canvas/shapes/Note/NoteTextChanged.d.ts.map +1 -1
  7. package/dist/esm/Canvas/shapes/Region/ItemAddedToRegion.d.ts.map +1 -1
  8. package/dist/esm/Canvas/shapes/Region/ItemRemovedFromRegion.d.ts.map +1 -1
  9. package/dist/esm/Canvas/shapes/Region/Region.d.ts.map +1 -1
  10. package/dist/esm/Chat/ChatIdentifier.d.ts.map +1 -1
  11. package/dist/esm/Chat/Kit/Avatar/PersonAvatarCircle.d.ts.map +1 -1
  12. package/dist/esm/Chat/Kit/Avatar/getAvatarColor.d.ts.map +1 -1
  13. package/dist/esm/Chat/Kit/Avatar/getInitials.d.ts.map +1 -1
  14. package/dist/esm/Chat/Kit/ChatMessageAdded.d.ts.map +1 -1
  15. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts +1 -1
  16. package/dist/esm/Chat/Kit/Mentions/extractMentions.d.ts.map +1 -1
  17. package/dist/esm/Chat/Kit/Mentions/findMentionRanges.d.ts.map +1 -1
  18. package/dist/esm/Chat/Kit/Mentions/mentionSegments.d.ts.map +1 -1
  19. package/dist/esm/Chat/relativeTimestamp.d.ts.map +1 -1
  20. package/dist/esm/Chat/shouldRequestTopicName.d.ts.map +1 -1
  21. package/dist/esm/CommandDialog/CommandDialog.d.ts +124 -5
  22. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts +88 -1
  23. package/dist/esm/CommandDialog/StepperPanel.d.ts +4 -24
  24. package/dist/esm/CommandDialog/StepperPanel.d.ts.map +1 -1
  25. package/dist/esm/CommandForm/AutoCommandForm.d.ts.map +1 -1
  26. package/dist/esm/CommandForm/AutoCommandForm.js +1 -1
  27. package/dist/esm/CommandForm/AutoCommandForm.js.map +1 -1
  28. package/dist/esm/CommandForm/fields/chipValues.d.ts.map +1 -1
  29. package/dist/esm/CommandForm/fields/fieldAccessibility.d.ts.map +1 -1
  30. package/dist/esm/Common/ActionMenubar.d.ts +1 -1
  31. package/dist/esm/Common/ComboBox.d.ts +118 -0
  32. package/dist/esm/Common/ComboBox.d.ts.map +1 -0
  33. package/dist/esm/Common/ComboBox.js +84 -0
  34. package/dist/esm/Common/ComboBox.js.map +1 -0
  35. package/dist/esm/Common/DatePickerInputImplementation.d.ts +1 -1
  36. package/dist/esm/Common/ErrorBoundary.d.ts +1 -1
  37. package/dist/esm/Common/ErrorBoundary.d.ts.map +1 -1
  38. package/dist/esm/Common/FormElement.d.ts.map +1 -1
  39. package/dist/esm/Common/Icon.d.ts.map +1 -1
  40. package/dist/esm/Common/NumberInput.d.ts +5 -1
  41. package/dist/esm/Common/NumberInput.js +4 -4
  42. package/dist/esm/Common/NumberInput.js.map +1 -1
  43. package/dist/esm/Common/Page.d.ts.map +1 -1
  44. package/dist/esm/Common/Tooltip.d.ts.map +1 -1
  45. package/dist/esm/Common/index.d.ts +1 -0
  46. package/dist/esm/Common/index.js +1 -0
  47. package/dist/esm/Common/index.js.map +1 -1
  48. package/dist/esm/Common/reactAriaProps.d.ts.map +1 -1
  49. package/dist/esm/Common/useNativeCheckedState.d.ts.map +1 -1
  50. package/dist/esm/DataPage/DataPage.d.ts +6 -114
  51. package/dist/esm/DataPage/DataPageLayout.d.ts.map +1 -1
  52. package/dist/esm/DataTables/Column.d.ts +4 -20
  53. package/dist/esm/DataTables/DataTableFilterMeta.d.ts +16 -16
  54. package/dist/esm/DataTables/DataTableFilterMeta.d.ts.map +1 -1
  55. package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -1
  56. package/dist/esm/Dialogs/Dialog.d.ts +20 -0
  57. package/dist/esm/Dialogs/Dialog.js.map +1 -1
  58. package/dist/esm/Dialogs/DialogImplementation.d.ts +1 -1
  59. package/dist/esm/Dialogs/DialogImplementation.js +7 -5
  60. package/dist/esm/Dialogs/DialogImplementation.js.map +1 -1
  61. package/dist/esm/Display/Avatar.d.ts.map +1 -1
  62. package/dist/esm/Display/Badge.d.ts.map +1 -1
  63. package/dist/esm/Display/Chip.d.ts.map +1 -1
  64. package/dist/esm/Display/Message.d.ts.map +1 -1
  65. package/dist/esm/Display/ProgressBar.d.ts.map +1 -1
  66. package/dist/esm/Display/ProgressBarImplementation.d.ts +1 -1
  67. package/dist/esm/Display/ProgressSpinner.d.ts +1 -1
  68. package/dist/esm/Display/ProgressSpinner.d.ts.map +1 -1
  69. package/dist/esm/Display/Skeleton.d.ts.map +1 -1
  70. package/dist/esm/Display/Tag.d.ts.map +1 -1
  71. package/dist/esm/Dropdown/Dropdown.d.ts +4 -5
  72. package/dist/esm/Dropdown/DropdownImplementation.d.ts +4 -5
  73. package/dist/esm/Notifications/Toaster.d.ts.map +1 -1
  74. package/dist/esm/Notifications/toast.d.ts.map +1 -1
  75. package/dist/esm/PivotViewer/components/pivot/constants.d.ts.map +1 -1
  76. package/dist/esm/Toolbar/Toolbar.d.ts +1 -1
  77. package/dist/esm/Toolbar/Toolbar.d.ts.map +1 -1
  78. package/dist/esm/Toolbar/ToolbarGroup.d.ts.map +1 -1
  79. package/dist/esm/Toolbar/ToolbarLayout.d.ts.map +1 -1
  80. package/dist/esm/Toolbar/ToolbarSection.d.ts.map +1 -1
  81. package/dist/esm/Toolbar/ToolbarSeparator.d.ts.map +1 -1
  82. package/dist/esm/Toolbar/ToolbarSlot.d.ts.map +1 -1
  83. package/dist/esm/renderer/RendererScope.d.ts +1 -1
  84. package/dist/esm/renderer/coreSlots.d.ts +14 -14
  85. package/dist/esm/renderer/dialogStack.d.ts.map +1 -1
  86. package/dist/esm/renderer/errors.d.ts +9 -9
  87. package/dist/esm/renderer/presentation.d.ts +1 -1
  88. package/dist/esm/styles.css +159 -375
  89. package/dist/esm/types/parts.d.ts +78 -57
  90. package/dist/esm/types/parts.d.ts.map +1 -1
  91. package/dist/esm/types/parts.js +25 -4
  92. package/dist/esm/types/parts.js.map +1 -1
  93. package/package.json +5 -5
@@ -2920,6 +2920,103 @@
2920
2920
  }
2921
2921
  }
2922
2922
 
2923
+ /* ── ./Common/ComboBox.css ─────────────────────────────────────── */
2924
+ /* Copyright (c) Cratis. All rights reserved. */
2925
+ /* Licensed under the MIT license. See LICENSE file in the project root for full license information. */
2926
+
2927
+ .cratis-combobox {
2928
+ display: inline-flex;
2929
+ flex-direction: column;
2930
+ min-width: 10rem;
2931
+ color: var(--cratis-text-color);
2932
+ }
2933
+ .cratis-combobox__control {
2934
+ display: flex;
2935
+ min-height: var(--cratis-control-height);
2936
+ border: 1px solid var(--cratis-control-border);
2937
+ border-radius: var(--cratis-border-radius);
2938
+ background: var(--cratis-control-background);
2939
+ }
2940
+ .cratis-combobox__control:focus-within {
2941
+ border-color: var(--cratis-primary-color);
2942
+ box-shadow: var(--cratis-focus-ring);
2943
+ }
2944
+ .cratis-combobox[data-invalid='true'] .cratis-combobox__control {
2945
+ border-color: var(--cratis-red-500);
2946
+ }
2947
+ .cratis-combobox[data-disabled='true'] {
2948
+ cursor: not-allowed;
2949
+ opacity: var(--cratis-disabled-opacity);
2950
+ }
2951
+ .cratis-combobox__input,
2952
+ .cratis-combobox__trigger {
2953
+ border: 0;
2954
+ background: transparent;
2955
+ color: inherit;
2956
+ font: inherit;
2957
+ }
2958
+ .cratis-combobox__input {
2959
+ flex: 1 1 auto;
2960
+ min-width: 0;
2961
+ padding: 0.625rem 0.75rem;
2962
+ outline: 0;
2963
+ }
2964
+ .cratis-combobox__trigger {
2965
+ padding: 0 0.75rem;
2966
+ color: var(--cratis-text-color-secondary);
2967
+ }
2968
+ .cratis-combobox__popover {
2969
+ width: var(--trigger-width);
2970
+ overflow: auto;
2971
+ border: 1px solid var(--cratis-surface-border);
2972
+ border-radius: var(--cratis-border-radius);
2973
+ background: var(--cratis-surface-overlay);
2974
+ box-shadow: var(--cratis-shadow-overlay);
2975
+ }
2976
+ .cratis-combobox__listbox {
2977
+ max-height: 18rem;
2978
+ padding: 0.25rem;
2979
+ }
2980
+ .cratis-combobox__option,
2981
+ .cratis-combobox__action,
2982
+ .cratis-combobox__message {
2983
+ display: flex;
2984
+ gap: 0.5rem;
2985
+ padding: 0.5rem 0.75rem;
2986
+ border-radius: var(--cratis-border-radius);
2987
+ }
2988
+ .cratis-combobox__listbox[data-option-layout='stacked'] .cratis-combobox__option {
2989
+ flex-direction: column;
2990
+ }
2991
+ .cratis-combobox__option[data-focused],
2992
+ .cratis-combobox__action[data-focused] {
2993
+ background: var(--cratis-surface-hover);
2994
+ }
2995
+ .cratis-combobox__option[data-selected='true'] {
2996
+ background: var(--cratis-highlight-bg);
2997
+ color: var(--cratis-highlight-text-color);
2998
+ }
2999
+ .cratis-combobox__option[data-disabled='true'] {
3000
+ opacity: var(--cratis-disabled-opacity);
3001
+ }
3002
+ .cratis-combobox__option-description,
3003
+ .cratis-combobox__message,
3004
+ .cratis-combobox__description {
3005
+ color: var(--cratis-text-color-secondary);
3006
+ }
3007
+ .cratis-combobox__action {
3008
+ border-top: 1px solid var(--cratis-surface-border);
3009
+ color: var(--cratis-primary-color);
3010
+ }
3011
+ .cratis-combobox__description,
3012
+ .cratis-combobox__error {
3013
+ margin-top: 0.25rem;
3014
+ font-size: 0.875em;
3015
+ }
3016
+ .cratis-combobox__error {
3017
+ color: var(--cratis-red-500);
3018
+ }
3019
+
2923
3020
  /* ── ./Common/DatePickerInput.css ─────────────────────────────────────── */
2924
3021
  /* Copyright (c) Cratis. All rights reserved. */
2925
3022
  /* Licensed under the MIT license. See LICENSE file in the project root for full license information. */
@@ -3272,8 +3369,6 @@
3272
3369
  .cratis-number-input__steps {
3273
3370
  width: 100%;
3274
3371
  flex-basis: 100%;
3275
- }
3276
- .cratis-number-input__steps {
3277
3372
  border-block-start: 1px solid var(--cratis-control-border);
3278
3373
  }
3279
3374
  .cratis-number-input__step {
@@ -3766,6 +3861,17 @@
3766
3861
  .cratis-dialog__backdrop[data-exiting] {
3767
3862
  animation: cratis-dialog-fade 120ms reverse ease-in;
3768
3863
  }
3864
+ .cratis-dialog__backdrop[data-placement='start'],
3865
+ .cratis-dialog__backdrop[data-placement='end'] {
3866
+ padding: 0;
3867
+ align-items: stretch;
3868
+ }
3869
+ .cratis-dialog__backdrop[data-placement='start'] {
3870
+ justify-content: flex-start;
3871
+ }
3872
+ .cratis-dialog__backdrop[data-placement='end'] {
3873
+ justify-content: flex-end;
3874
+ }
3769
3875
  .cratis-dialog__positioner {
3770
3876
  display: flex;
3771
3877
  max-width: 100%;
@@ -3786,6 +3892,36 @@
3786
3892
  box-shadow: var(--cratis-shadow-dialog);
3787
3893
  outline: none;
3788
3894
  }
3895
+ .cratis-dialog[data-placement='start'],
3896
+ .cratis-dialog[data-placement='end'] {
3897
+ height: 100%;
3898
+ max-width: 100%;
3899
+ max-height: 100%;
3900
+ border-radius: 0;
3901
+ border-block-width: 0;
3902
+ }
3903
+ .cratis-dialog[data-placement='start'] {
3904
+ --cratis-dialog-slide-from: -100%;
3905
+ border-inline-start-width: 0;
3906
+ }
3907
+ .cratis-dialog[data-placement='end'] {
3908
+ --cratis-dialog-slide-from: 100%;
3909
+ border-inline-end-width: 0;
3910
+ }
3911
+ .cratis-dialog[data-placement='start']:dir(rtl) {
3912
+ --cratis-dialog-slide-from: 100%;
3913
+ }
3914
+ .cratis-dialog[data-placement='end']:dir(rtl) {
3915
+ --cratis-dialog-slide-from: -100%;
3916
+ }
3917
+ .cratis-dialog[data-placement='start'][data-entering],
3918
+ .cratis-dialog[data-placement='end'][data-entering] {
3919
+ animation: cratis-dialog-slide 200ms ease-out;
3920
+ }
3921
+ .cratis-dialog[data-placement='start'][data-exiting],
3922
+ .cratis-dialog[data-placement='end'][data-exiting] {
3923
+ animation: cratis-dialog-slide 150ms reverse ease-in;
3924
+ }
3789
3925
  .cratis-dialog__document {
3790
3926
  display: flex;
3791
3927
  min-height: 0;
@@ -3794,26 +3930,35 @@
3794
3930
  outline: none;
3795
3931
  }
3796
3932
  .cratis-dialog__header {
3797
- display: flex;
3933
+ display: grid;
3934
+ grid-template-columns: minmax(0, 1fr) auto;
3798
3935
  padding: 1rem 1.25rem;
3799
3936
  align-items: center;
3800
- justify-content: space-between;
3801
- gap: 1rem;
3937
+ column-gap: 1rem;
3802
3938
  flex: 0 0 auto;
3803
3939
  border-bottom: 1px solid var(--cratis-surface-border);
3804
3940
  }
3805
3941
  .cratis-dialog__title {
3942
+ grid-column: 1;
3943
+ justify-self: start;
3806
3944
  margin: 0;
3807
3945
  font-size: 1.1rem;
3808
3946
  font-weight: 700;
3809
3947
  outline: none;
3810
3948
  }
3949
+ .cratis-dialog__subtitle {
3950
+ grid-column: 1;
3951
+ margin: 0.25rem 0 0;
3952
+ color: var(--cratis-text-color-secondary);
3953
+ font-size: 0.9rem;
3954
+ }
3811
3955
  .cratis-dialog__title:focus-visible {
3812
3956
  border-radius: var(--cratis-border-radius);
3813
- box-shadow: var(--cratis-focus-ring);
3814
3957
  }
3815
3958
  .cratis-dialog__close {
3816
3959
  display: inline-flex;
3960
+ grid-column: 2;
3961
+ grid-row: 1;
3817
3962
  width: 2rem;
3818
3963
  height: 2rem;
3819
3964
  padding: 0;
@@ -3830,10 +3975,6 @@
3830
3975
  background: var(--cratis-surface-hover);
3831
3976
  color: var(--cratis-text-color);
3832
3977
  }
3833
- .cratis-dialog__close:focus-visible {
3834
- outline: none;
3835
- box-shadow: var(--cratis-focus-ring);
3836
- }
3837
3978
  .cratis-dialog__content {
3838
3979
  min-height: 0;
3839
3980
  padding: 1.25rem;
@@ -3892,6 +4033,8 @@
3892
4033
  .cratis-dialog__button--secondary:active:not(:disabled) {
3893
4034
  background: color-mix(in srgb, var(--cratis-action-background) 16%, transparent);
3894
4035
  }
4036
+ .cratis-dialog__title:focus-visible,
4037
+ .cratis-dialog__close:focus-visible,
3895
4038
  .cratis-dialog__button:focus-visible {
3896
4039
  outline: none;
3897
4040
  box-shadow: var(--cratis-focus-ring);
@@ -3922,9 +4065,15 @@
3922
4065
  transform: rotate(360deg);
3923
4066
  }
3924
4067
  }
4068
+ @keyframes cratis-dialog-slide {
4069
+ from {
4070
+ translate: var(--cratis-dialog-slide-from) 0;
4071
+ }
4072
+ }
3925
4073
 
3926
4074
  @media (prefers-reduced-motion: reduce) {
3927
4075
  .cratis-dialog__backdrop,
4076
+ .cratis-dialog[data-placement],
3928
4077
  .cratis-dialog__spinner {
3929
4078
  animation: none;
3930
4079
  }
@@ -5098,257 +5247,6 @@
5098
5247
  flex: 1 1 0%;
5099
5248
  }
5100
5249
 
5101
- .pv-filter-panel {
5102
- position: fixed;
5103
- width: min(280px, calc(100% - 2rem));
5104
- max-height: calc(100vh - 6.5rem);
5105
- background: linear-gradient(
5106
- 180deg,
5107
- var(--cratis-surface-card),
5108
- var(--cratis-surface-ground)
5109
- );
5110
- border: 1px solid var(--cratis-surface-border);
5111
- border-radius: 1rem;
5112
- box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
5113
- backdrop-filter: blur(14px);
5114
- overflow: hidden;
5115
- z-index: 12;
5116
- display: flex;
5117
- flex-direction: column;
5118
- }
5119
-
5120
- .pv-filter-panel.dragging {
5121
- cursor: grabbing;
5122
- user-select: none;
5123
- }
5124
-
5125
- .pv-filter-panel.minimized {
5126
- max-height: none;
5127
- }
5128
-
5129
- .pv-filter-panel-header {
5130
- display: flex;
5131
- align-items: center;
5132
- gap: 0.5rem;
5133
- padding: 0.75rem 1rem;
5134
- cursor: grab;
5135
- background: var(--cratis-surface-section);
5136
- border-bottom: 1px solid var(--cratis-surface-border);
5137
- flex-shrink: 0;
5138
- }
5139
-
5140
- .pv-filter-panel.dragging .pv-filter-panel-header {
5141
- cursor: grabbing;
5142
- }
5143
-
5144
- .pv-filter-panel-header h2 {
5145
- margin: 0;
5146
- font-size: 0.85rem;
5147
- letter-spacing: 0.04em;
5148
- text-transform: uppercase;
5149
- color: var(--cratis-text-color);
5150
- flex: 1;
5151
- pointer-events: none;
5152
- }
5153
-
5154
- .pv-minimize-btn,
5155
- .pv-close-btn {
5156
- appearance: none;
5157
- border: none;
5158
- border-radius: 0.4rem;
5159
- width: 1.5rem;
5160
- height: 1.5rem;
5161
- display: flex;
5162
- align-items: center;
5163
- justify-content: center;
5164
- background: var(--cratis-highlight-bg);
5165
- color: var(--cratis-text-color);
5166
- font-size: 1rem;
5167
- font-weight: 500;
5168
- cursor: pointer;
5169
- transition: background 120ms ease;
5170
- }
5171
-
5172
- .pv-minimize-btn:hover,
5173
- .pv-close-btn:hover {
5174
- background: var(--cratis-surface-hover);
5175
- }
5176
-
5177
- .pv-close-btn {
5178
- font-size: 1.2rem;
5179
- }
5180
-
5181
- .pv-filter-panel-content {
5182
- overflow: hidden;
5183
- max-height: 0;
5184
- opacity: 0;
5185
- padding: 0 1.25rem;
5186
- transition:
5187
- max-height 150ms ease-out,
5188
- opacity 100ms ease-out,
5189
- padding 150ms ease-out;
5190
- }
5191
-
5192
- .pv-filter-panel-content.expanded {
5193
- overflow-y: auto;
5194
- flex: 1;
5195
- max-height: 600px;
5196
- opacity: 1;
5197
- padding: 1rem 1.25rem 1.25rem;
5198
- }
5199
-
5200
- .pv-search {
5201
- padding-bottom: 1rem;
5202
- }
5203
-
5204
- .pv-search input {
5205
- width: 100%;
5206
- padding: 0.65rem 0.85rem;
5207
- border-radius: 0.75rem;
5208
- border: 1px solid var(--cratis-surface-border);
5209
- background: var(--cratis-surface-ground);
5210
- color: inherit;
5211
- font-size: 0.95rem;
5212
- box-shadow: inset 0 1px 0 var(--cratis-surface-border);
5213
- }
5214
-
5215
- .pv-search input:focus {
5216
- outline: none;
5217
- border-color: var(--cratis-primary-color);
5218
- box-shadow: var(--cratis-focus-ring);
5219
- }
5220
-
5221
- .pv-filter-groups {
5222
- display: flex;
5223
- flex-direction: column;
5224
- gap: 0.85rem;
5225
- }
5226
-
5227
- .pv-filter {
5228
- background: var(--cratis-surface-overlay);
5229
- border: 1px solid var(--cratis-surface-border);
5230
- border-radius: 0.85rem;
5231
- padding: 0.75rem 0.85rem;
5232
- transition:
5233
- border-color 180ms ease,
5234
- box-shadow 180ms ease;
5235
- }
5236
-
5237
- .pv-filter.expanded {
5238
- border-color: var(--cratis-primary-color);
5239
- box-shadow: 0 15px 38px rgba(0, 0, 0, 0.3);
5240
- }
5241
-
5242
- .pv-filter-label {
5243
- display: flex;
5244
- align-items: center;
5245
- gap: 0.4rem;
5246
- }
5247
-
5248
- .pv-filter-trigger-meta {
5249
- display: inline-flex;
5250
- align-items: center;
5251
- gap: 0.5rem;
5252
- }
5253
-
5254
- .pv-filter-count {
5255
- display: inline-flex;
5256
- align-items: center;
5257
- justify-content: center;
5258
- min-width: 1.5rem;
5259
- padding: 0.15rem 0.45rem;
5260
- border-radius: 999px;
5261
- background: var(--cratis-highlight-bg);
5262
- color: var(--cratis-text-color);
5263
- font-size: 0.7rem;
5264
- }
5265
-
5266
- .pv-filter-chevron {
5267
- width: 0.65rem;
5268
- height: 0.65rem;
5269
- border-right: 2px solid var(--cratis-text-color);
5270
- border-bottom: 2px solid var(--cratis-text-color);
5271
- transform: rotate(45deg);
5272
- transition: transform 180ms ease;
5273
- }
5274
-
5275
- .pv-filter.expanded .pv-filter-chevron {
5276
- transform: rotate(225deg);
5277
- }
5278
-
5279
- .pv-filter-content {
5280
- overflow: hidden;
5281
- max-height: 0;
5282
- opacity: 0;
5283
- margin-top: 0;
5284
- padding-top: 0;
5285
- border-top: 1px solid transparent;
5286
- transition:
5287
- max-height 120ms ease-out,
5288
- opacity 80ms ease-out,
5289
- margin-top 120ms ease-out,
5290
- padding-top 120ms ease-out,
5291
- border-color 120ms ease-out;
5292
- }
5293
-
5294
- .pv-filter-content.expanded {
5295
- max-height: 350px;
5296
- opacity: 1;
5297
- margin-top: 0.75rem;
5298
- padding-top: 0.75rem;
5299
- border-top-color: var(--cratis-surface-border);
5300
- overflow-y: auto;
5301
- }
5302
-
5303
- .pv-filter-content ul {
5304
- list-style: none;
5305
- margin: 0;
5306
- padding: 0;
5307
- display: grid;
5308
- gap: 0.45rem;
5309
- }
5310
-
5311
- .pv-filter-content li label {
5312
- display: grid;
5313
- grid-template-columns: auto 1fr auto;
5314
- gap: 0.6rem;
5315
- align-items: center;
5316
- padding: 0.45rem 0.5rem;
5317
- border-radius: 0.55rem;
5318
- border: 1px solid transparent;
5319
- cursor: pointer;
5320
- transition:
5321
- background 160ms ease,
5322
- border-color 160ms ease;
5323
- }
5324
-
5325
- .pv-filter-content li label:hover {
5326
- background: var(--cratis-surface-hover);
5327
- }
5328
-
5329
- .pv-filter-content input[type='checkbox'],
5330
- .pv-filter-content input[type='radio'] {
5331
- accent-color: var(--cratis-primary-color);
5332
- }
5333
-
5334
- .pv-filter-content li label span {
5335
- font-size: 0.85rem;
5336
- }
5337
-
5338
- .pv-filter-clear {
5339
- margin-top: 0.75rem;
5340
- appearance: none;
5341
- border: none;
5342
- border-radius: 0.55rem;
5343
- padding: 0.4rem 0.75rem;
5344
- background: var(--cratis-highlight-bg);
5345
- color: var(--cratis-text-color);
5346
- font-size: 0.72rem;
5347
- text-transform: uppercase;
5348
- letter-spacing: 0.08em;
5349
- cursor: pointer;
5350
- }
5351
-
5352
5250
  .pv-main {
5353
5251
  position: relative;
5354
5252
  display: flex;
@@ -5484,11 +5382,6 @@
5484
5382
  }
5485
5383
 
5486
5384
  /* Filter Dropdown */
5487
- .pv-filter-dropdown-content {
5488
- padding: 1rem;
5489
- overflow-y: auto;
5490
- flex: 1;
5491
- }
5492
5385
 
5493
5386
  .pv-view-toggle {
5494
5387
  display: inline-flex;
@@ -6281,115 +6174,6 @@
6281
6174
  }
6282
6175
 
6283
6176
  /* Range Histogram Filter */
6284
- .pv-range-histogram {
6285
- padding: 0.5rem 0;
6286
- }
6287
-
6288
- .pv-histogram-bars {
6289
- display: flex;
6290
- align-items: flex-end;
6291
- gap: 2px;
6292
- height: 80px;
6293
- padding: 0 2px;
6294
- margin-bottom: 0.5rem;
6295
- }
6296
-
6297
- .pv-histogram-bar {
6298
- flex: 1;
6299
- min-width: 8px;
6300
- background: var(--cratis-highlight-bg);
6301
- border: none;
6302
- border-radius: 2px 2px 0 0;
6303
- cursor: pointer;
6304
- transition:
6305
- background 160ms ease,
6306
- transform 120ms ease;
6307
- padding: 0;
6308
- }
6309
-
6310
- .pv-histogram-bar:hover {
6311
- background: var(--cratis-surface-hover);
6312
- transform: scaleY(1.02);
6313
- }
6314
-
6315
- .pv-histogram-bar.in-range {
6316
- background: var(--cratis-primary-color);
6317
- }
6318
-
6319
- .pv-histogram-bar.partial {
6320
- background: var(--cratis-highlight-bg);
6321
- }
6322
-
6323
- .pv-range-slider {
6324
- position: relative;
6325
- height: 24px;
6326
- margin: 0.5rem 0;
6327
- }
6328
-
6329
- .pv-range-track {
6330
- position: absolute;
6331
- top: 50%;
6332
- left: 0;
6333
- right: 0;
6334
- height: 4px;
6335
- background: var(--cratis-surface-border);
6336
- border-radius: 2px;
6337
- transform: translateY(-50%);
6338
- }
6339
-
6340
- .pv-range-selection {
6341
- position: absolute;
6342
- top: 50%;
6343
- height: 4px;
6344
- background: var(--cratis-primary-color);
6345
- border-radius: 2px;
6346
- transform: translateY(-50%);
6347
- cursor: grab;
6348
- }
6349
-
6350
- .pv-range-selection:active {
6351
- cursor: grabbing;
6352
- }
6353
-
6354
- .pv-range-handle {
6355
- position: absolute;
6356
- top: 50%;
6357
- width: 16px;
6358
- height: 16px;
6359
- background: var(--cratis-primary-color);
6360
- border: 2px solid var(--cratis-text-color);
6361
- border-radius: 50%;
6362
- transform: translate(-50%, -50%);
6363
- cursor: ew-resize;
6364
- transition:
6365
- transform 120ms ease,
6366
- box-shadow 120ms ease;
6367
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
6368
- }
6369
-
6370
- .pv-range-handle:hover {
6371
- transform: translate(-50%, -50%) scale(1.15);
6372
- box-shadow: 0 4px 12px var(--cratis-primary-color);
6373
- }
6374
-
6375
- .pv-range-clear {
6376
- margin-top: 0.75rem;
6377
- appearance: none;
6378
- border: none;
6379
- border-radius: 0.55rem;
6380
- padding: 0.4rem 0.75rem;
6381
- background: var(--cratis-highlight-bg);
6382
- color: var(--cratis-text-color);
6383
- font-size: 0.72rem;
6384
- text-transform: uppercase;
6385
- letter-spacing: 0.08em;
6386
- cursor: pointer;
6387
- width: 100%;
6388
- }
6389
-
6390
- .pv-range-clear:hover {
6391
- background: var(--cratis-surface-hover);
6392
- }
6393
6177
 
6394
6178
  @media (max-width: 900px) {
6395
6179
  .pv-toolbar {