mantine-composite-filters 0.1.2 → 0.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 (28) hide show
  1. package/README.md +2 -2
  2. package/dist/styles.css +1 -1
  3. package/dist/styles.layer.css +1 -1
  4. package/dist/types/components/CompositeFiltersInput/CompositeFiltersInput.classes.d.ts +6 -0
  5. package/dist/types/components/{MultiFiltersInput/MultiFiltersInput.d.ts → CompositeFiltersInput/CompositeFiltersInput.d.ts} +8 -4
  6. package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/dropdowns/FieldDropdown.d.ts +0 -1
  7. package/dist/types/components/CompositeFiltersInput/index.d.ts +13 -0
  8. package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/value-inputs/DateRangeValueInput.d.ts +1 -0
  9. package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/value-inputs/DateValueInput.d.ts +1 -0
  10. package/dist/types/components/MultiFiltersInput/index.d.ts +11 -11
  11. package/dist/types/hooks/useFilterHistory.d.ts +2 -14
  12. package/dist/types/hooks/useFilterPresets.d.ts +2 -16
  13. package/dist/types/hooks/useFilters.d.ts +2 -24
  14. package/dist/types/index.d.mts +5 -4
  15. package/dist/types/index.d.ts +5 -4
  16. package/dist/types/types/filter.types.d.ts +68 -6
  17. package/package.json +1 -1
  18. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/CurrentFieldIndicator.d.ts +0 -0
  19. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/FilterActionsMenu.d.ts +0 -0
  20. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/FilterMaxReached.d.ts +0 -0
  21. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/FilterPill.d.ts +0 -0
  22. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/FilterStatusBar.d.ts +0 -0
  23. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/context/FilterContext.d.ts +0 -0
  24. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/context/index.d.ts +0 -0
  25. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/dropdowns/OperatorDropdown.d.ts +0 -0
  26. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/dropdowns/ValueDropdown.d.ts +0 -0
  27. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/dropdowns/index.d.ts +0 -0
  28. /package/dist/types/components/{MultiFiltersInput → CompositeFiltersInput}/value-inputs/index.d.ts +0 -0
package/README.md CHANGED
@@ -26,7 +26,7 @@ npm install @mantine/core @mantine/hooks @mantine/dates @mantine/notifications @
26
26
  ## Usage
27
27
 
28
28
  ```tsx
29
- import { MultiFiltersInput } from 'mantine-composite-filters';
29
+ import { CompositeFiltersInput } from 'mantine-composite-filters';
30
30
  import 'mantine-composite-filters/styles.css';
31
31
 
32
32
  const filterFields = [
@@ -40,7 +40,7 @@ function App() {
40
40
  const [filters, setFilters] = useState([]);
41
41
 
42
42
  return (
43
- <MultiFiltersInput
43
+ <CompositeFiltersInput
44
44
  fields={filterFields}
45
45
  value={filters}
46
46
  onChange={setFilters}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- .me_7e10d93c{align-items:center;background-color:var(--mantine-color-gray-0);border:1px solid var(--mantine-color-gray-3);border-radius:var(--mantine-radius-md);cursor:text;display:flex;gap:var(--mantine-spacing-xs);padding-left:var(--mantine-spacing-sm);padding-right:var(--mantine-spacing-sm);position:relative;transition:all var(--mantine-transition-duration)}.me_7e10d93c:hover{border-color:var(--mantine-color-gray-4)}.me_7e10d93c:focus-within{border-color:var(--mantine-color-primary-6);box-shadow:0 0 0 1px var(--mantine-color-primary-1)}.me_20867b6c{align-items:center;display:flex;flex:1;gap:var(--mantine-spacing-xs)}.me_a6ea0d59{display:flex;flex-wrap:nowrap;min-height:calc(var(--mantine-spacing-xl)*1);overflow-x:auto;padding-right:calc(var(--mantine-spacing-xl)*2);padding-top:calc(var(--mantine-spacing-xs)/2.5)}.me_a6ea0d59::-webkit-scrollbar{height:4px}.me_a6ea0d59::-webkit-scrollbar-thumb{background-color:rgba(var(--mantine-color-primary-5-rgb),.2);border-radius:var(--mantine-radius-sm)}.me_a6ea0d59::-webkit-scrollbar-track{background:transparent}.me_38ec29d6{flex-wrap:wrap;min-height:calc(var(--mantine-spacing-xl)*1.5)}.me_7aac7a05{background:transparent;border:0;color:var(--mantine-color-text);flex:1;font-family:var(--mantine-font-family);font-size:var(--mantine-font-size-sm);line-height:var(--mantine-line-height);min-width:calc(var(--mantine-spacing-xl)*7.5);outline:none;padding:0}.me_7aac7a05:focus{box-shadow:none;outline:none}.me_7aac7a05::placeholder{color:var(--mantine-color-dimmed);opacity:1}.me_7aac7a05:disabled{cursor:not-allowed;opacity:.6}.me_d9fcf28e{align-items:center;display:flex;flex-shrink:0;gap:var(--mantine-spacing-xs);padding-left:var(--mantine-spacing-xs)}.me_777db3f6{background-color:var(--mantine-color-white);border:1px solid var(--mantine-color-gray-3);border-radius:var(--mantine-radius-md);box-shadow:var(--mantine-shadow-sm);max-width:400px;min-width:200px;overflow:hidden}.me_7605a562{flex-shrink:0;gap:2px;white-space:nowrap}.me_7605a562,.me_fb6e536c{align-items:center;display:inline-flex}.me_fb6e536c{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);font-size:var(--mantine-font-size-sm);gap:calc(var(--mantine-spacing-xs)/2);height:24px;line-height:1;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}.me_9bac9170{border-bottom-right-radius:0;border-top-right-radius:0}.me_6e20f28{border-radius:0}.me_7efeb999{border-bottom-left-radius:0;border-top-left-radius:0}.me_37c53a7b{align-items:center;color:var(--mantine-color-gray-6);display:flex;flex-shrink:0;justify-content:center}.me_d9ad7055{color:var(--mantine-color-gray-7);font-weight:400}.me_f6f8490e{font-size:var(--mantine-font-size-xs)}.me_f9b6c59c{font-size:var(--mantine-font-size-sm)}.me_b536afa3{color:var(--mantine-color-gray-7);font-weight:400}.me_cff5d600{font-size:var(--mantine-font-size-xs)}.me_113ad26a{font-size:var(--mantine-font-size-sm)}.me_725f1af8{color:var(--mantine-color-gray-6)}.me_8a790ddc{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_534e04b6{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_dc57724{color:var(--mantine-color-gray-5)}.me_dca7fd8{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}.me_d2eb2177{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_d2eb2177:hover{background-color:var(--mantine-color-gray-1)}.me_d2eb2177[data-combobox-selected]{background-color:var(--mantine-color-primary-1);color:var(--mantine-color-primary-7)}.me_b196702{gap:var(--mantine-spacing-sm)}.me_b196702,.me_b6b44e18{align-items:center;display:flex}.me_b6b44e18{color:var(--mantine-color-gray-6);flex-shrink:0;justify-content:center}.me_c95c21c{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}.me_d9b5c915{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_88a0d5c6{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_ba15b44d{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_ba15b44d:hover{background-color:var(--mantine-color-gray-1)}.me_ba15b44d[data-combobox-selected]{background-color:var(--mantine-color-primary-1);color:var(--mantine-color-primary-7)}.me_2e027dd8{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}.me_c0e05beb{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_f06d3053{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_447b7e5f{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_c73ad7db{color:var(--mantine-color-gray-5)}.me_c73fe08f{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}.me_f73d5420{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_f73d5420:hover{background-color:var(--mantine-color-gray-1)}.me_b2178adb,.me_f73d5420[data-combobox-selected]{background-color:var(--mantine-color-primary-1);color:var(--mantine-color-primary-7)}.me_54f19439{gap:var(--mantine-spacing-sm)}.me_54f19439,.me_7d89a8ae{align-items:center;display:flex}.me_7d89a8ae{background-color:var(--mantine-color-white);border:1px solid var(--mantine-color-gray-4);border-radius:var(--mantine-radius-xs);color:var(--mantine-color-white);flex-shrink:0;height:calc(var(--mantine-spacing-md) - 2px);justify-content:center;transition:all var(--mantine-transition-duration);width:calc(var(--mantine-spacing-md) - 2px)}.me_dec57169{background-color:var(--mantine-color-primary-6);border-color:var(--mantine-color-primary-6)}.me_98eeceb4{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}.me_e7d18146{align-items:center;border-top:1px solid var(--mantine-color-gray-2);display:flex;gap:var(--mantine-spacing-sm);justify-content:space-between;margin-top:calc(var(--mantine-spacing-xs)/2);padding:var(--mantine-spacing-sm)}.me_b52b2793{color:var(--mantine-color-gray-6);font-weight:400}.me_23329375,.me_b52b2793{font-size:var(--mantine-font-size-xs)}.me_23329375{align-items:center;background-color:var(--mantine-color-primary-6);border:none;border-radius:var(--mantine-radius-sm);color:var(--mantine-color-white);cursor:pointer;display:flex;font-weight:500;gap:calc(var(--mantine-spacing-xs)/2);outline:none;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all var(--mantine-transition-duration)}.me_23329375:hover{background-color:var(--mantine-color-primary-7)}.me_fe07fbbe{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_53ad7594{color:var(--mantine-color-yellow-5);font-size:var(--mantine-font-size-xs);margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_55847095{flex-shrink:0;gap:2px;white-space:nowrap}.me_1b8832ef,.me_55847095{align-items:center;display:inline-flex}.me_1b8832ef{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);cursor:pointer;font-size:var(--mantine-font-size-sm);gap:calc(var(--mantine-spacing-xs)/2);height:24px;line-height:1;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}.me_1b8832ef:hover{background-color:var(--mantine-color-gray-2)}.me_b70ebcd{border-bottom-right-radius:0;border-top-right-radius:0}.me_8a849702{cursor:default}.me_8a849702:hover{background-color:var(--mantine-color-gray-1)}.me_79b1bbab{border-radius:0}.me_eec313f6{border-bottom-left-radius:0;border-top-left-radius:0}.me_5efde86e{flex-shrink:0;margin-left:2px}.me_aa94e6fe{align-items:center;color:var(--mantine-color-gray-6);display:flex;flex-shrink:0;justify-content:center}.me_5acd7b18{color:var(--mantine-color-gray-7);font-weight:400}.me_de1e2ceb{font-size:var(--mantine-font-size-xs)}.me_6c86721f{font-size:var(--mantine-font-size-sm)}.me_24fb0a00{color:var(--mantine-color-gray-7);font-weight:400}.me_c2458903{font-size:var(--mantine-font-size-xs)}.me_c6773307{font-size:var(--mantine-font-size-sm)}.me_5b5a8d95{color:var(--mantine-color-gray-9);font-weight:400;max-width:calc(var(--mantine-spacing-xl)*12.5);overflow:hidden;text-overflow:ellipsis}.me_230bc3ce{font-size:var(--mantine-font-size-xs)}.me_13e8f2dc{font-size:var(--mantine-font-size-sm)}.me_9b80753c,.me_dc3a6d7b{align-items:center;display:flex;flex-shrink:0;height:calc(var(--mantine-spacing-md)*1.5)}.me_fed841bd{align-items:center;display:flex;gap:var(--mantine-spacing-xs);margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_755acd29{background:linear-gradient(to bottom right,var(--mantine-color-primary-filled),var(--mantine-color-primary-filled));border:0;border-radius:var(--mantine-radius-md);box-shadow:none;outline:none;padding:calc(var(--mantine-spacing-xs) + 2px);transition:all var(--mantine-transition-duration)}.me_755acd29,.me_755acd29:hover{color:var(--mantine-color-primary-filled)}.me_755acd29:focus{box-shadow:none;outline:none}.me_36f1fa71{color:var(--mantine-color-primary-filled);font-size:var(--mantine-font-size-xs)}
1
+ .me_180d780a{align-items:center;border:1px solid var(--mantine-color-gray-3);border-radius:var(--mantine-radius-md);cursor:text;display:flex;gap:var(--mantine-spacing-xs);position:relative;transition:all var(--mantine-transition-duration)}[data-mantine-color-scheme=dark] .me_180d780a{border:1px solid var(--mantine-color-dark-4)}.me_180d780a{background-color:var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .me_180d780a{background-color:var(--mantine-color-dark-6)}.me_180d780a:hover{border-color:var(--mantine-color-gray-4)}[data-mantine-color-scheme=dark] .me_180d780a:hover{border-color:var(--mantine-color-dark-3)}.me_180d780a:focus-within{border-color:var(--mantine-color-blue-6);box-shadow:0 0 0 1px var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .me_180d780a:focus-within{box-shadow:0 0 0 1px var(--mantine-color-dark-4)}.me_6142ed5e{align-items:center;display:flex;flex:1;gap:var(--mantine-spacing-xs)}.me_c71c1cb{display:flex;flex-wrap:nowrap;min-height:calc(var(--mantine-spacing-xl)*1);overflow-x:auto;padding-bottom:calc(var(--mantine-spacing-xs)*.75);padding-right:calc(var(--mantine-spacing-xl)*2);padding-top:calc(var(--mantine-spacing-xs)*.75)}.me_c71c1cb::-webkit-scrollbar{height:4px}.me_c71c1cb::-webkit-scrollbar-thumb{background-color:rgba(var(--mantine-color-gray-5-rgb),.2);border-radius:var(--mantine-radius-sm)}.me_c71c1cb::-webkit-scrollbar-track{background:transparent}.me_15a52c8{column-gap:var(--mantine-spacing-xs);flex-wrap:wrap;min-height:calc(var(--mantine-spacing-xl)*1.5);padding:calc(var(--mantine-spacing-xs)*.75) 0;row-gap:calc(var(--mantine-spacing-xs)*.75)}.me_4274afd3{background:transparent;border:0;color:var(--mantine-color-text);flex:1;font-family:var(--mantine-font-family);font-size:var(--mantine-font-size-sm);line-height:var(--mantine-line-height);min-width:calc(var(--mantine-spacing-xl)*7.5);outline:none;padding:0}.me_4274afd3:focus{box-shadow:none;outline:none}.me_4274afd3::placeholder{color:var(--mantine-color-dimmed);opacity:1}.me_4274afd3:disabled{cursor:not-allowed;opacity:.6}.me_76b13900{align-items:center;display:flex;flex-shrink:0;gap:var(--mantine-spacing-xs);padding-left:var(--mantine-spacing-xs)}.me_532b0368{border:1px solid var(--mantine-color-gray-3)}[data-mantine-color-scheme=dark] .me_532b0368{border:1px solid var(--mantine-color-dark-4)}.me_532b0368{background-color:var(--mantine-color-white);border-radius:var(--mantine-radius-md);max-width:400px;min-width:200px;overflow:hidden}[data-mantine-color-scheme=dark] .me_532b0368{background-color:var(--mantine-color-dark-7)}.me_532b0368{box-shadow:var(--mantine-shadow-sm)}.me_7605a562{flex-shrink:0;gap:2px;white-space:nowrap}.me_7605a562,.me_fb6e536c{align-items:center;display:inline-flex}.me_fb6e536c{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);gap:calc(var(--mantine-spacing-xs)/2);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}[data-mantine-color-scheme=dark] .me_fb6e536c{background-color:var(--mantine-color-dark-5)}.me_fb6e536c{font-size:var(--mantine-font-size-sm);height:24px;line-height:1}.me_9bac9170{border-bottom-right-radius:0;border-top-right-radius:0}.me_6e20f28{border-radius:0}.me_7efeb999{border-bottom-left-radius:0;border-top-left-radius:0}.me_37c53a7b{align-items:center;color:var(--mantine-color-gray-6);display:flex;justify-content:center}[data-mantine-color-scheme=dark] .me_37c53a7b{color:var(--mantine-color-dark-2)}.me_37c53a7b{flex-shrink:0}.me_d9ad7055{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_d9ad7055{color:var(--mantine-color-dark-1)}.me_f6f8490e{font-size:var(--mantine-font-size-xs)}.me_f9b6c59c{font-size:var(--mantine-font-size-sm)}.me_b536afa3{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_b536afa3{color:var(--mantine-color-dark-1)}.me_cff5d600{font-size:var(--mantine-font-size-xs)}.me_113ad26a{font-size:var(--mantine-font-size-sm)}.me_725f1af8{color:var(--mantine-color-gray-6)}[data-mantine-color-scheme=dark] .me_725f1af8{color:var(--mantine-color-dark-2)}.me_8a790ddc{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_534e04b6{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_dc57724{color:var(--mantine-color-gray-5)}[data-mantine-color-scheme=dark] .me_dc57724{color:var(--mantine-color-dark-3)}.me_dca7fd8{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_dca7fd8{color:var(--mantine-color-dark-2)}.me_d2eb2177{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_d2eb2177:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_d2eb2177:hover{background-color:var(--mantine-color-dark-5)}.me_d2eb2177[data-combobox-selected]{background-color:var(--mantine-color-gray-2)!important}[data-mantine-color-scheme=dark] .me_d2eb2177[data-combobox-selected]{background-color:var(--mantine-color-gray-8)!important}.me_d2eb2177[data-combobox-selected]{color:var(--mantine-color-gray-8)!important}[data-mantine-color-scheme=dark] .me_d2eb2177[data-combobox-selected]{color:var(--mantine-color-gray-2)!important}.me_b196702{gap:var(--mantine-spacing-sm)}.me_b196702,.me_b6b44e18{align-items:center;display:flex}.me_b6b44e18{color:var(--mantine-color-gray-6);justify-content:center}[data-mantine-color-scheme=dark] .me_b6b44e18{color:var(--mantine-color-dark-2)}.me_b6b44e18{flex-shrink:0}.me_c95c21c{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_c95c21c{color:var(--mantine-color-dark-0)}.me_d9b5c915{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_88a0d5c6{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_ba15b44d{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_ba15b44d:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_ba15b44d:hover{background-color:var(--mantine-color-dark-5)}.me_ba15b44d[data-combobox-selected]{background-color:var(--mantine-color-gray-2)!important}[data-mantine-color-scheme=dark] .me_ba15b44d[data-combobox-selected]{background-color:var(--mantine-color-gray-8)!important}.me_ba15b44d[data-combobox-selected]{color:var(--mantine-color-gray-8)!important}[data-mantine-color-scheme=dark] .me_ba15b44d[data-combobox-selected]{color:var(--mantine-color-gray-2)!important}.me_2e027dd8{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_2e027dd8{color:var(--mantine-color-dark-0)}.me_c0e05beb{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_f06d3053{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_447b7e5f{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_c73ad7db{color:var(--mantine-color-gray-5)}[data-mantine-color-scheme=dark] .me_c73ad7db{color:var(--mantine-color-dark-3)}.me_c73fe08f{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_c73fe08f{color:var(--mantine-color-dark-2)}.me_f73d5420{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_f73d5420:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_f73d5420:hover{background-color:var(--mantine-color-dark-5)}.me_f73d5420[data-combobox-selected]{background-color:var(--mantine-color-gray-2)!important}[data-mantine-color-scheme=dark] .me_f73d5420[data-combobox-selected]{background-color:var(--mantine-color-gray-8)!important}.me_f73d5420[data-combobox-selected]{color:var(--mantine-color-gray-8)!important}[data-mantine-color-scheme=dark] .me_f73d5420[data-combobox-selected]{color:var(--mantine-color-gray-2)!important}.me_54f19439{align-items:center;display:flex;gap:var(--mantine-spacing-sm)}.me_7d89a8ae{pointer-events:none}.me_98eeceb4{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_98eeceb4{color:var(--mantine-color-dark-0)}.me_e7d18146{border-top:1px solid var(--mantine-color-gray-2);margin-top:calc(var(--mantine-spacing-xs)/2);padding:var(--mantine-spacing-sm)}[data-mantine-color-scheme=dark] .me_e7d18146{border-top:1px solid var(--mantine-color-dark-5)}.me_e7d18146{align-items:center;display:flex;gap:var(--mantine-spacing-sm);justify-content:space-between}.me_b52b2793{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-xs);font-weight:400}[data-mantine-color-scheme=dark] .me_b52b2793{color:var(--mantine-color-dark-2)}.me_23329375{align-items:center;border:none;border-radius:var(--mantine-radius-sm);cursor:pointer;font-size:var(--mantine-font-size-xs);font-weight:500;outline:none;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all var(--mantine-transition-duration)}.me_23329375,.me_fe07fbbe{display:flex;gap:calc(var(--mantine-spacing-xs)/2)}.me_fe07fbbe{flex-direction:column}.me_53ad7594{color:var(--mantine-color-yellow-6);font-size:var(--mantine-font-size-xs)}[data-mantine-color-scheme=dark] .me_53ad7594{color:var(--mantine-color-yellow-4)}.me_53ad7594{margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_55847095{flex-shrink:0;gap:2px;white-space:nowrap}.me_1b8832ef,.me_55847095{align-items:center;display:inline-flex}.me_1b8832ef{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);gap:calc(var(--mantine-spacing-xs)/2);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}[data-mantine-color-scheme=dark] .me_1b8832ef{background-color:var(--mantine-color-dark-5)}.me_1b8832ef{cursor:pointer;font-size:var(--mantine-font-size-sm);height:24px;line-height:1}.me_1b8832ef:hover{background-color:var(--mantine-color-gray-2)}[data-mantine-color-scheme=dark] .me_1b8832ef:hover{background-color:var(--mantine-color-dark-4)}.me_b70ebcd{border-bottom-right-radius:0;border-top-right-radius:0}.me_8a849702{cursor:default}.me_8a849702:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_8a849702:hover{background-color:var(--mantine-color-dark-5)}.me_79b1bbab{border-radius:0}.me_eec313f6{border-bottom-left-radius:0;border-top-left-radius:0}.me_5efde86e{flex-shrink:0;margin-left:2px}.me_aa94e6fe{align-items:center;color:var(--mantine-color-gray-6);display:flex;justify-content:center}[data-mantine-color-scheme=dark] .me_aa94e6fe{color:var(--mantine-color-dark-2)}.me_aa94e6fe{flex-shrink:0}.me_5acd7b18{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_5acd7b18{color:var(--mantine-color-dark-1)}.me_de1e2ceb{font-size:var(--mantine-font-size-xs)}.me_6c86721f{font-size:var(--mantine-font-size-sm)}.me_24fb0a00{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_24fb0a00{color:var(--mantine-color-dark-1)}.me_c2458903{font-size:var(--mantine-font-size-xs)}.me_c6773307{font-size:var(--mantine-font-size-sm)}.me_5b5a8d95{color:var(--mantine-color-gray-9);font-weight:400}[data-mantine-color-scheme=dark] .me_5b5a8d95{color:var(--mantine-color-dark-0)}.me_5b5a8d95{max-width:calc(var(--mantine-spacing-xl)*12.5);overflow:hidden;text-overflow:ellipsis}.me_230bc3ce{font-size:var(--mantine-font-size-xs)}.me_13e8f2dc{font-size:var(--mantine-font-size-sm)}.me_dc3a6d7b{align-items:center;display:flex;flex-shrink:0;height:calc(var(--mantine-spacing-md)*1.5)}.me_111005c4{background:transparent;border:none;font-size:var(--mantine-font-size-sm);height:auto;min-height:unset;min-width:100px;padding:0}.me_111005c4::placeholder{color:var(--mantine-color-dimmed)}.me_9b80753c{align-items:center;display:flex;flex-shrink:0;height:calc(var(--mantine-spacing-md)*1.5)}.me_184a1605{background:transparent;border:none;font-size:var(--mantine-font-size-sm);height:auto;min-height:unset;min-width:180px;padding:0}.me_184a1605::placeholder{color:var(--mantine-color-dimmed)}.me_fed841bd{align-items:center;display:flex;gap:var(--mantine-spacing-xs);margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_755acd29{background:linear-gradient(to bottom right,var(--mantine-color-gray-1),var(--mantine-color-gray-1));border:0;border-radius:var(--mantine-radius-md);box-shadow:none;outline:none;padding:calc(var(--mantine-spacing-xs) + 2px);transition:all var(--mantine-transition-duration)}.me_755acd29,.me_755acd29:hover{color:var(--mantine-color-gray-7)}.me_755acd29:focus{box-shadow:none;outline:none}.me_36f1fa71{color:var(--mantine-color-gray-7);font-size:var(--mantine-font-size-xs)}
@@ -1 +1 @@
1
- @layer mantine {.me_7e10d93c{align-items:center;background-color:var(--mantine-color-gray-0);border:1px solid var(--mantine-color-gray-3);border-radius:var(--mantine-radius-md);cursor:text;display:flex;gap:var(--mantine-spacing-xs);padding-left:var(--mantine-spacing-sm);padding-right:var(--mantine-spacing-sm);position:relative;transition:all var(--mantine-transition-duration)}.me_7e10d93c:hover{border-color:var(--mantine-color-gray-4)}.me_7e10d93c:focus-within{border-color:var(--mantine-color-primary-6);box-shadow:0 0 0 1px var(--mantine-color-primary-1)}.me_20867b6c{align-items:center;display:flex;flex:1;gap:var(--mantine-spacing-xs)}.me_a6ea0d59{display:flex;flex-wrap:nowrap;min-height:calc(var(--mantine-spacing-xl)*1);overflow-x:auto;padding-right:calc(var(--mantine-spacing-xl)*2);padding-top:calc(var(--mantine-spacing-xs)/2.5)}.me_a6ea0d59::-webkit-scrollbar{height:4px}.me_a6ea0d59::-webkit-scrollbar-thumb{background-color:rgba(var(--mantine-color-primary-5-rgb),.2);border-radius:var(--mantine-radius-sm)}.me_a6ea0d59::-webkit-scrollbar-track{background:transparent}.me_38ec29d6{flex-wrap:wrap;min-height:calc(var(--mantine-spacing-xl)*1.5)}.me_7aac7a05{background:transparent;border:0;color:var(--mantine-color-text);flex:1;font-family:var(--mantine-font-family);font-size:var(--mantine-font-size-sm);line-height:var(--mantine-line-height);min-width:calc(var(--mantine-spacing-xl)*7.5);outline:none;padding:0}.me_7aac7a05:focus{box-shadow:none;outline:none}.me_7aac7a05::placeholder{color:var(--mantine-color-dimmed);opacity:1}.me_7aac7a05:disabled{cursor:not-allowed;opacity:.6}.me_d9fcf28e{align-items:center;display:flex;flex-shrink:0;gap:var(--mantine-spacing-xs);padding-left:var(--mantine-spacing-xs)}.me_777db3f6{background-color:var(--mantine-color-white);border:1px solid var(--mantine-color-gray-3);border-radius:var(--mantine-radius-md);box-shadow:var(--mantine-shadow-sm);max-width:400px;min-width:200px;overflow:hidden}.me_7605a562{flex-shrink:0;gap:2px;white-space:nowrap}.me_7605a562,.me_fb6e536c{align-items:center;display:inline-flex}.me_fb6e536c{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);font-size:var(--mantine-font-size-sm);gap:calc(var(--mantine-spacing-xs)/2);height:24px;line-height:1;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}.me_9bac9170{border-bottom-right-radius:0;border-top-right-radius:0}.me_6e20f28{border-radius:0}.me_7efeb999{border-bottom-left-radius:0;border-top-left-radius:0}.me_37c53a7b{align-items:center;color:var(--mantine-color-gray-6);display:flex;flex-shrink:0;justify-content:center}.me_d9ad7055{color:var(--mantine-color-gray-7);font-weight:400}.me_f6f8490e{font-size:var(--mantine-font-size-xs)}.me_f9b6c59c{font-size:var(--mantine-font-size-sm)}.me_b536afa3{color:var(--mantine-color-gray-7);font-weight:400}.me_cff5d600{font-size:var(--mantine-font-size-xs)}.me_113ad26a{font-size:var(--mantine-font-size-sm)}.me_725f1af8{color:var(--mantine-color-gray-6)}.me_8a790ddc{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_534e04b6{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_dc57724{color:var(--mantine-color-gray-5)}.me_dca7fd8{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}.me_d2eb2177{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_d2eb2177:hover{background-color:var(--mantine-color-gray-1)}.me_d2eb2177[data-combobox-selected]{background-color:var(--mantine-color-primary-1);color:var(--mantine-color-primary-7)}.me_b196702{gap:var(--mantine-spacing-sm)}.me_b196702,.me_b6b44e18{align-items:center;display:flex}.me_b6b44e18{color:var(--mantine-color-gray-6);flex-shrink:0;justify-content:center}.me_c95c21c{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}.me_d9b5c915{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_88a0d5c6{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_ba15b44d{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_ba15b44d:hover{background-color:var(--mantine-color-gray-1)}.me_ba15b44d[data-combobox-selected]{background-color:var(--mantine-color-primary-1);color:var(--mantine-color-primary-7)}.me_2e027dd8{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}.me_c0e05beb{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_f06d3053{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_447b7e5f{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_c73ad7db{color:var(--mantine-color-gray-5)}.me_c73fe08f{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}.me_f73d5420{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_f73d5420:hover{background-color:var(--mantine-color-gray-1)}.me_b2178adb,.me_f73d5420[data-combobox-selected]{background-color:var(--mantine-color-primary-1);color:var(--mantine-color-primary-7)}.me_54f19439{gap:var(--mantine-spacing-sm)}.me_54f19439,.me_7d89a8ae{align-items:center;display:flex}.me_7d89a8ae{background-color:var(--mantine-color-white);border:1px solid var(--mantine-color-gray-4);border-radius:var(--mantine-radius-xs);color:var(--mantine-color-white);flex-shrink:0;height:calc(var(--mantine-spacing-md) - 2px);justify-content:center;transition:all var(--mantine-transition-duration);width:calc(var(--mantine-spacing-md) - 2px)}.me_dec57169{background-color:var(--mantine-color-primary-6);border-color:var(--mantine-color-primary-6)}.me_98eeceb4{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}.me_e7d18146{align-items:center;border-top:1px solid var(--mantine-color-gray-2);display:flex;gap:var(--mantine-spacing-sm);justify-content:space-between;margin-top:calc(var(--mantine-spacing-xs)/2);padding:var(--mantine-spacing-sm)}.me_b52b2793{color:var(--mantine-color-gray-6);font-weight:400}.me_23329375,.me_b52b2793{font-size:var(--mantine-font-size-xs)}.me_23329375{align-items:center;background-color:var(--mantine-color-primary-6);border:none;border-radius:var(--mantine-radius-sm);color:var(--mantine-color-white);cursor:pointer;display:flex;font-weight:500;gap:calc(var(--mantine-spacing-xs)/2);outline:none;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all var(--mantine-transition-duration)}.me_23329375:hover{background-color:var(--mantine-color-primary-7)}.me_fe07fbbe{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_53ad7594{color:var(--mantine-color-yellow-5);font-size:var(--mantine-font-size-xs);margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_55847095{flex-shrink:0;gap:2px;white-space:nowrap}.me_1b8832ef,.me_55847095{align-items:center;display:inline-flex}.me_1b8832ef{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);cursor:pointer;font-size:var(--mantine-font-size-sm);gap:calc(var(--mantine-spacing-xs)/2);height:24px;line-height:1;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}.me_1b8832ef:hover{background-color:var(--mantine-color-gray-2)}.me_b70ebcd{border-bottom-right-radius:0;border-top-right-radius:0}.me_8a849702{cursor:default}.me_8a849702:hover{background-color:var(--mantine-color-gray-1)}.me_79b1bbab{border-radius:0}.me_eec313f6{border-bottom-left-radius:0;border-top-left-radius:0}.me_5efde86e{flex-shrink:0;margin-left:2px}.me_aa94e6fe{align-items:center;color:var(--mantine-color-gray-6);display:flex;flex-shrink:0;justify-content:center}.me_5acd7b18{color:var(--mantine-color-gray-7);font-weight:400}.me_de1e2ceb{font-size:var(--mantine-font-size-xs)}.me_6c86721f{font-size:var(--mantine-font-size-sm)}.me_24fb0a00{color:var(--mantine-color-gray-7);font-weight:400}.me_c2458903{font-size:var(--mantine-font-size-xs)}.me_c6773307{font-size:var(--mantine-font-size-sm)}.me_5b5a8d95{color:var(--mantine-color-gray-9);font-weight:400;max-width:calc(var(--mantine-spacing-xl)*12.5);overflow:hidden;text-overflow:ellipsis}.me_230bc3ce{font-size:var(--mantine-font-size-xs)}.me_13e8f2dc{font-size:var(--mantine-font-size-sm)}.me_9b80753c,.me_dc3a6d7b{align-items:center;display:flex;flex-shrink:0;height:calc(var(--mantine-spacing-md)*1.5)}.me_fed841bd{align-items:center;display:flex;gap:var(--mantine-spacing-xs);margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_755acd29{background:linear-gradient(to bottom right,var(--mantine-color-primary-filled),var(--mantine-color-primary-filled));border:0;border-radius:var(--mantine-radius-md);box-shadow:none;outline:none;padding:calc(var(--mantine-spacing-xs) + 2px);transition:all var(--mantine-transition-duration)}.me_755acd29,.me_755acd29:hover{color:var(--mantine-color-primary-filled)}.me_755acd29:focus{box-shadow:none;outline:none}.me_36f1fa71{color:var(--mantine-color-primary-filled);font-size:var(--mantine-font-size-xs)}}
1
+ @layer mantine {.me_180d780a{align-items:center;border:1px solid var(--mantine-color-gray-3);border-radius:var(--mantine-radius-md);cursor:text;display:flex;gap:var(--mantine-spacing-xs);position:relative;transition:all var(--mantine-transition-duration)}[data-mantine-color-scheme=dark] .me_180d780a{border:1px solid var(--mantine-color-dark-4)}.me_180d780a{background-color:var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .me_180d780a{background-color:var(--mantine-color-dark-6)}.me_180d780a:hover{border-color:var(--mantine-color-gray-4)}[data-mantine-color-scheme=dark] .me_180d780a:hover{border-color:var(--mantine-color-dark-3)}.me_180d780a:focus-within{border-color:var(--mantine-color-blue-6);box-shadow:0 0 0 1px var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .me_180d780a:focus-within{box-shadow:0 0 0 1px var(--mantine-color-dark-4)}.me_6142ed5e{align-items:center;display:flex;flex:1;gap:var(--mantine-spacing-xs)}.me_c71c1cb{display:flex;flex-wrap:nowrap;min-height:calc(var(--mantine-spacing-xl)*1);overflow-x:auto;padding-bottom:calc(var(--mantine-spacing-xs)*.75);padding-right:calc(var(--mantine-spacing-xl)*2);padding-top:calc(var(--mantine-spacing-xs)*.75)}.me_c71c1cb::-webkit-scrollbar{height:4px}.me_c71c1cb::-webkit-scrollbar-thumb{background-color:rgba(var(--mantine-color-gray-5-rgb),.2);border-radius:var(--mantine-radius-sm)}.me_c71c1cb::-webkit-scrollbar-track{background:transparent}.me_15a52c8{column-gap:var(--mantine-spacing-xs);flex-wrap:wrap;min-height:calc(var(--mantine-spacing-xl)*1.5);padding:calc(var(--mantine-spacing-xs)*.75) 0;row-gap:calc(var(--mantine-spacing-xs)*.75)}.me_4274afd3{background:transparent;border:0;color:var(--mantine-color-text);flex:1;font-family:var(--mantine-font-family);font-size:var(--mantine-font-size-sm);line-height:var(--mantine-line-height);min-width:calc(var(--mantine-spacing-xl)*7.5);outline:none;padding:0}.me_4274afd3:focus{box-shadow:none;outline:none}.me_4274afd3::placeholder{color:var(--mantine-color-dimmed);opacity:1}.me_4274afd3:disabled{cursor:not-allowed;opacity:.6}.me_76b13900{align-items:center;display:flex;flex-shrink:0;gap:var(--mantine-spacing-xs);padding-left:var(--mantine-spacing-xs)}.me_532b0368{border:1px solid var(--mantine-color-gray-3)}[data-mantine-color-scheme=dark] .me_532b0368{border:1px solid var(--mantine-color-dark-4)}.me_532b0368{background-color:var(--mantine-color-white);border-radius:var(--mantine-radius-md);max-width:400px;min-width:200px;overflow:hidden}[data-mantine-color-scheme=dark] .me_532b0368{background-color:var(--mantine-color-dark-7)}.me_532b0368{box-shadow:var(--mantine-shadow-sm)}.me_7605a562{flex-shrink:0;gap:2px;white-space:nowrap}.me_7605a562,.me_fb6e536c{align-items:center;display:inline-flex}.me_fb6e536c{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);gap:calc(var(--mantine-spacing-xs)/2);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}[data-mantine-color-scheme=dark] .me_fb6e536c{background-color:var(--mantine-color-dark-5)}.me_fb6e536c{font-size:var(--mantine-font-size-sm);height:24px;line-height:1}.me_9bac9170{border-bottom-right-radius:0;border-top-right-radius:0}.me_6e20f28{border-radius:0}.me_7efeb999{border-bottom-left-radius:0;border-top-left-radius:0}.me_37c53a7b{align-items:center;color:var(--mantine-color-gray-6);display:flex;justify-content:center}[data-mantine-color-scheme=dark] .me_37c53a7b{color:var(--mantine-color-dark-2)}.me_37c53a7b{flex-shrink:0}.me_d9ad7055{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_d9ad7055{color:var(--mantine-color-dark-1)}.me_f6f8490e{font-size:var(--mantine-font-size-xs)}.me_f9b6c59c{font-size:var(--mantine-font-size-sm)}.me_b536afa3{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_b536afa3{color:var(--mantine-color-dark-1)}.me_cff5d600{font-size:var(--mantine-font-size-xs)}.me_113ad26a{font-size:var(--mantine-font-size-sm)}.me_725f1af8{color:var(--mantine-color-gray-6)}[data-mantine-color-scheme=dark] .me_725f1af8{color:var(--mantine-color-dark-2)}.me_8a790ddc{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_534e04b6{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_dc57724{color:var(--mantine-color-gray-5)}[data-mantine-color-scheme=dark] .me_dc57724{color:var(--mantine-color-dark-3)}.me_dca7fd8{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_dca7fd8{color:var(--mantine-color-dark-2)}.me_d2eb2177{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_d2eb2177:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_d2eb2177:hover{background-color:var(--mantine-color-dark-5)}.me_d2eb2177[data-combobox-selected]{background-color:var(--mantine-color-gray-2)!important}[data-mantine-color-scheme=dark] .me_d2eb2177[data-combobox-selected]{background-color:var(--mantine-color-gray-8)!important}.me_d2eb2177[data-combobox-selected]{color:var(--mantine-color-gray-8)!important}[data-mantine-color-scheme=dark] .me_d2eb2177[data-combobox-selected]{color:var(--mantine-color-gray-2)!important}.me_b196702{gap:var(--mantine-spacing-sm)}.me_b196702,.me_b6b44e18{align-items:center;display:flex}.me_b6b44e18{color:var(--mantine-color-gray-6);justify-content:center}[data-mantine-color-scheme=dark] .me_b6b44e18{color:var(--mantine-color-dark-2)}.me_b6b44e18{flex-shrink:0}.me_c95c21c{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_c95c21c{color:var(--mantine-color-dark-0)}.me_d9b5c915{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_88a0d5c6{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_ba15b44d{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_ba15b44d:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_ba15b44d:hover{background-color:var(--mantine-color-dark-5)}.me_ba15b44d[data-combobox-selected]{background-color:var(--mantine-color-gray-2)!important}[data-mantine-color-scheme=dark] .me_ba15b44d[data-combobox-selected]{background-color:var(--mantine-color-gray-8)!important}.me_ba15b44d[data-combobox-selected]{color:var(--mantine-color-gray-8)!important}[data-mantine-color-scheme=dark] .me_ba15b44d[data-combobox-selected]{color:var(--mantine-color-gray-2)!important}.me_2e027dd8{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_2e027dd8{color:var(--mantine-color-dark-0)}.me_c0e05beb{display:flex;flex-direction:column;gap:calc(var(--mantine-spacing-xs)/2)}.me_f06d3053{border-radius:var(--mantine-radius-md);padding:calc(var(--mantine-spacing-xs)/2)}.me_447b7e5f{align-items:center;display:flex;flex-direction:column;gap:var(--mantine-spacing-sm);padding:var(--mantine-spacing-lg) var(--mantine-spacing-md)}.me_c73ad7db{color:var(--mantine-color-gray-5)}[data-mantine-color-scheme=dark] .me_c73ad7db{color:var(--mantine-color-dark-3)}.me_c73fe08f{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_c73fe08f{color:var(--mantine-color-dark-2)}.me_f73d5420{background:transparent;border:none;border-radius:var(--mantine-radius-sm);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all .15s}.me_f73d5420:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_f73d5420:hover{background-color:var(--mantine-color-dark-5)}.me_f73d5420[data-combobox-selected]{background-color:var(--mantine-color-gray-2)!important}[data-mantine-color-scheme=dark] .me_f73d5420[data-combobox-selected]{background-color:var(--mantine-color-gray-8)!important}.me_f73d5420[data-combobox-selected]{color:var(--mantine-color-gray-8)!important}[data-mantine-color-scheme=dark] .me_f73d5420[data-combobox-selected]{color:var(--mantine-color-gray-2)!important}.me_54f19439{align-items:center;display:flex;gap:var(--mantine-spacing-sm)}.me_7d89a8ae{pointer-events:none}.me_98eeceb4{color:var(--mantine-color-gray-9);font-size:var(--mantine-font-size-sm);font-weight:400}[data-mantine-color-scheme=dark] .me_98eeceb4{color:var(--mantine-color-dark-0)}.me_e7d18146{border-top:1px solid var(--mantine-color-gray-2);margin-top:calc(var(--mantine-spacing-xs)/2);padding:var(--mantine-spacing-sm)}[data-mantine-color-scheme=dark] .me_e7d18146{border-top:1px solid var(--mantine-color-dark-5)}.me_e7d18146{align-items:center;display:flex;gap:var(--mantine-spacing-sm);justify-content:space-between}.me_b52b2793{color:var(--mantine-color-gray-6);font-size:var(--mantine-font-size-xs);font-weight:400}[data-mantine-color-scheme=dark] .me_b52b2793{color:var(--mantine-color-dark-2)}.me_23329375{align-items:center;border:none;border-radius:var(--mantine-radius-sm);cursor:pointer;font-size:var(--mantine-font-size-xs);font-weight:500;outline:none;padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-sm);transition:all var(--mantine-transition-duration)}.me_23329375,.me_fe07fbbe{display:flex;gap:calc(var(--mantine-spacing-xs)/2)}.me_fe07fbbe{flex-direction:column}.me_53ad7594{color:var(--mantine-color-yellow-6);font-size:var(--mantine-font-size-xs)}[data-mantine-color-scheme=dark] .me_53ad7594{color:var(--mantine-color-yellow-4)}.me_53ad7594{margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_55847095{flex-shrink:0;gap:2px;white-space:nowrap}.me_1b8832ef,.me_55847095{align-items:center;display:inline-flex}.me_1b8832ef{background-color:var(--mantine-color-gray-1);border:none;border-radius:var(--mantine-radius-sm);gap:calc(var(--mantine-spacing-xs)/2);padding:calc(var(--mantine-spacing-xs)/2) var(--mantine-spacing-xs);transition:all var(--mantine-transition-duration)}[data-mantine-color-scheme=dark] .me_1b8832ef{background-color:var(--mantine-color-dark-5)}.me_1b8832ef{cursor:pointer;font-size:var(--mantine-font-size-sm);height:24px;line-height:1}.me_1b8832ef:hover{background-color:var(--mantine-color-gray-2)}[data-mantine-color-scheme=dark] .me_1b8832ef:hover{background-color:var(--mantine-color-dark-4)}.me_b70ebcd{border-bottom-right-radius:0;border-top-right-radius:0}.me_8a849702{cursor:default}.me_8a849702:hover{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .me_8a849702:hover{background-color:var(--mantine-color-dark-5)}.me_79b1bbab{border-radius:0}.me_eec313f6{border-bottom-left-radius:0;border-top-left-radius:0}.me_5efde86e{flex-shrink:0;margin-left:2px}.me_aa94e6fe{align-items:center;color:var(--mantine-color-gray-6);display:flex;justify-content:center}[data-mantine-color-scheme=dark] .me_aa94e6fe{color:var(--mantine-color-dark-2)}.me_aa94e6fe{flex-shrink:0}.me_5acd7b18{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_5acd7b18{color:var(--mantine-color-dark-1)}.me_de1e2ceb{font-size:var(--mantine-font-size-xs)}.me_6c86721f{font-size:var(--mantine-font-size-sm)}.me_24fb0a00{color:var(--mantine-color-gray-7);font-weight:400}[data-mantine-color-scheme=dark] .me_24fb0a00{color:var(--mantine-color-dark-1)}.me_c2458903{font-size:var(--mantine-font-size-xs)}.me_c6773307{font-size:var(--mantine-font-size-sm)}.me_5b5a8d95{color:var(--mantine-color-gray-9);font-weight:400}[data-mantine-color-scheme=dark] .me_5b5a8d95{color:var(--mantine-color-dark-0)}.me_5b5a8d95{max-width:calc(var(--mantine-spacing-xl)*12.5);overflow:hidden;text-overflow:ellipsis}.me_230bc3ce{font-size:var(--mantine-font-size-xs)}.me_13e8f2dc{font-size:var(--mantine-font-size-sm)}.me_dc3a6d7b{align-items:center;display:flex;flex-shrink:0;height:calc(var(--mantine-spacing-md)*1.5)}.me_111005c4{background:transparent;border:none;font-size:var(--mantine-font-size-sm);height:auto;min-height:unset;min-width:100px;padding:0}.me_111005c4::placeholder{color:var(--mantine-color-dimmed)}.me_9b80753c{align-items:center;display:flex;flex-shrink:0;height:calc(var(--mantine-spacing-md)*1.5)}.me_184a1605{background:transparent;border:none;font-size:var(--mantine-font-size-sm);height:auto;min-height:unset;min-width:180px;padding:0}.me_184a1605::placeholder{color:var(--mantine-color-dimmed)}.me_fed841bd{align-items:center;display:flex;gap:var(--mantine-spacing-xs);margin-left:var(--mantine-spacing-xs);margin-top:var(--mantine-spacing-sm)}.me_755acd29{background:linear-gradient(to bottom right,var(--mantine-color-gray-1),var(--mantine-color-gray-1));border:0;border-radius:var(--mantine-radius-md);box-shadow:none;outline:none;padding:calc(var(--mantine-spacing-xs) + 2px);transition:all var(--mantine-transition-duration)}.me_755acd29,.me_755acd29:hover{color:var(--mantine-color-gray-7)}.me_755acd29:focus{box-shadow:none;outline:none}.me_36f1fa71{color:var(--mantine-color-gray-7);font-size:var(--mantine-font-size-xs)}}
@@ -0,0 +1,6 @@
1
+ import type { CompositeFiltersInputStylesNames } from '../../types/filter.types';
2
+ export type { CompositeFiltersInputStylesNames };
3
+ export declare const COMPONENT_NAME = "CompositeFiltersInput";
4
+ export declare const staticClasses: Record<CompositeFiltersInputStylesNames, string>;
5
+ export declare const cssModuleClasses: Record<CompositeFiltersInputStylesNames, string | undefined>;
6
+ export declare const CompositeFiltersInputClasses: Record<CompositeFiltersInputStylesNames, string>;
@@ -1,7 +1,8 @@
1
1
  import React from "react";
2
- import type { ActiveFilter, FilterAction, MultiFiltersInputProps } from "../../types/filter.types";
2
+ import { type CompositeFiltersInputStylesNames } from "./CompositeFiltersInput.classes";
3
+ import type { ActiveFilter, FilterAction, CompositeFiltersInputProps } from "../../types/filter.types";
3
4
  export type FilterOverflowMode = "scroll" | "wrap";
4
- export interface MultiFiltersInputExtendedProps extends MultiFiltersInputProps {
5
+ export interface CompositeFiltersInputExtendedProps extends CompositeFiltersInputProps {
5
6
  /** Custom renderer for filter pills */
6
7
  renderPill?: (filter: ActiveFilter, onRemove: () => void) => React.ReactNode;
7
8
  /** Disable presets feature */
@@ -21,5 +22,8 @@ export interface MultiFiltersInputExtendedProps extends MultiFiltersInputProps {
21
22
  /** Custom placeholder for options search step */
22
23
  searchPlaceholder?: string;
23
24
  }
24
- export declare const MultiFiltersInput: React.FC<MultiFiltersInputExtendedProps>;
25
- export default MultiFiltersInput;
25
+ type CompositeFiltersInputComponent = React.FC<CompositeFiltersInputExtendedProps> & {
26
+ classes: Record<CompositeFiltersInputStylesNames, string>;
27
+ };
28
+ export declare const CompositeFiltersInput: CompositeFiltersInputComponent;
29
+ export default CompositeFiltersInput;
@@ -2,7 +2,6 @@ import React from "react";
2
2
  import type { FilterDefinition } from "../../../types/filter.types";
3
3
  export interface FieldDropdownProps {
4
4
  fields: FilterDefinition[];
5
- totalAvailable: number;
6
5
  }
7
6
  export declare const FieldDropdown: React.FC<FieldDropdownProps>;
8
7
  export default FieldDropdown;
@@ -0,0 +1,13 @@
1
+ export { CompositeFiltersInput as default } from "./CompositeFiltersInput";
2
+ export { CompositeFiltersInput } from "./CompositeFiltersInput";
3
+ export type { CompositeFiltersInputExtendedProps } from "./CompositeFiltersInput";
4
+ export { CompositeFiltersInput as MultiFiltersInput } from "./CompositeFiltersInput";
5
+ export { CompositeFiltersInputClasses, staticClasses as CompositeFiltersInputStaticClasses, type CompositeFiltersInputStylesNames } from "./CompositeFiltersInput.classes";
6
+ export { FilterPill } from "./FilterPill";
7
+ export { CurrentFieldIndicator } from "./CurrentFieldIndicator";
8
+ export { FilterActionsMenu } from "./FilterActionsMenu";
9
+ export { FilterStatusBar } from "./FilterStatusBar";
10
+ export { FilterMaxReached } from "./FilterMaxReached";
11
+ export * from "./dropdowns";
12
+ export * from "./value-inputs";
13
+ export * from "./context";
@@ -3,6 +3,7 @@ export interface DateRangeValueInputProps {
3
3
  value: [Date | null, Date | null];
4
4
  onChange: (range: [Date | null, Date | null]) => void;
5
5
  onComplete: (formatted: string, rangeValue: [Date | null, Date | null]) => void;
6
+ onCancel?: () => void;
6
7
  }
7
8
  export declare const DateRangeValueInput: React.FC<DateRangeValueInputProps>;
8
9
  export default DateRangeValueInput;
@@ -3,6 +3,7 @@ export interface DateValueInputProps {
3
3
  value: Date | null;
4
4
  onChange: (date: Date | null) => void;
5
5
  onComplete: (formatted: string, isoValue: string) => void;
6
+ onCancel?: () => void;
6
7
  }
7
8
  export declare const DateValueInput: React.FC<DateValueInputProps>;
8
9
  export default DateValueInput;
@@ -1,11 +1,11 @@
1
- export { MultiFiltersInput as default } from "./MultiFiltersInput";
2
- export { MultiFiltersInput } from "./MultiFiltersInput";
3
- export type { MultiFiltersInputExtendedProps } from "./MultiFiltersInput";
4
- export { FilterPill } from "./FilterPill";
5
- export { CurrentFieldIndicator } from "./CurrentFieldIndicator";
6
- export { FilterActionsMenu } from "./FilterActionsMenu";
7
- export { FilterStatusBar } from "./FilterStatusBar";
8
- export { FilterMaxReached } from "./FilterMaxReached";
9
- export * from "./dropdowns";
10
- export * from "./value-inputs";
11
- export * from "./context";
1
+ export { CompositeFiltersInput as default } from "../CompositeFiltersInput";
2
+ export { CompositeFiltersInput as MultiFiltersInput } from "../CompositeFiltersInput";
3
+ export { CompositeFiltersInputClasses as MultiFiltersInputClasses, staticClasses as MultiFiltersInputStaticClasses, type CompositeFiltersInputStylesNames as MultiFiltersInputStylesNames } from "../CompositeFiltersInput/CompositeFiltersInput.classes";
4
+ export { FilterPill } from "../CompositeFiltersInput/FilterPill";
5
+ export { CurrentFieldIndicator } from "../CompositeFiltersInput/CurrentFieldIndicator";
6
+ export { FilterActionsMenu } from "../CompositeFiltersInput/FilterActionsMenu";
7
+ export { FilterStatusBar } from "../CompositeFiltersInput/FilterStatusBar";
8
+ export { FilterMaxReached } from "../CompositeFiltersInput/FilterMaxReached";
9
+ export * from "../CompositeFiltersInput/dropdowns";
10
+ export * from "../CompositeFiltersInput/value-inputs";
11
+ export * from "../CompositeFiltersInput/context";
@@ -1,14 +1,2 @@
1
- import type { ActiveFilter, FilterHistory } from "../types/filter.types";
2
- interface UseFilterHistoryOptions {
3
- storageKey?: string;
4
- maxHistory?: number;
5
- enabled?: boolean;
6
- }
7
- export declare const useFilterHistory: (activeFilters: ActiveFilter[], options?: UseFilterHistoryOptions) => {
8
- history: FilterHistory[];
9
- recentHistory: FilterHistory[];
10
- clearHistory: () => void;
11
- removeHistoryItem: (timestamp: number) => void;
12
- hasHistory: boolean;
13
- };
14
- export {};
1
+ import type { ActiveFilter, UseFilterHistoryOptions, UseFilterHistoryReturn } from "../types/filter.types";
2
+ export declare const useFilterHistory: (activeFilters: ActiveFilter[], options?: UseFilterHistoryOptions) => UseFilterHistoryReturn;
@@ -1,16 +1,2 @@
1
- import type { ActiveFilter, SavedFilterPreset } from "../types/filter.types";
2
- interface UseFilterPresetsOptions {
3
- storageKey?: string;
4
- onLoad?: (filters: ActiveFilter[]) => void;
5
- }
6
- export declare const useFilterPresets: (options?: UseFilterPresetsOptions) => {
7
- presets: SavedFilterPreset[];
8
- sortedPresets: SavedFilterPreset[];
9
- savePreset: (filters: ActiveFilter[], name?: string) => SavedFilterPreset;
10
- loadPreset: (preset: SavedFilterPreset) => void;
11
- toggleFavorite: (presetId: string) => void;
12
- deletePreset: (presetId: string) => void;
13
- updatePreset: (presetId: string, updates: Partial<Omit<SavedFilterPreset, "id">>) => void;
14
- hasPresets: boolean;
15
- };
16
- export {};
1
+ import type { UseFilterPresetsOptions, UseFilterPresetsReturn } from "../types/filter.types";
2
+ export declare const useFilterPresets: (options?: UseFilterPresetsOptions) => UseFilterPresetsReturn;
@@ -1,24 +1,2 @@
1
- import type { ActiveFilter, FilterDefinition } from "../types/filter.types";
2
- interface UseFiltersOptions {
3
- initialFilters?: ActiveFilter[];
4
- onFiltersChange?: (filters: ActiveFilter[]) => void;
5
- }
6
- export declare const useFilters: (filterDefinitions: FilterDefinition[], options?: UseFiltersOptions) => {
7
- activeFilters: ActiveFilter[];
8
- setActiveFilters: (newFilters: ActiveFilter[]) => void;
9
- filterDefinitions: FilterDefinition[];
10
- addFilter: (filter: Omit<ActiveFilter, "id">) => void;
11
- removeFilter: (id: string) => void;
12
- clearFilters: () => void;
13
- updateFilter: (id: string, updates: Partial<ActiveFilter>) => void;
14
- getFilterByKey: (key: string) => ActiveFilter;
15
- hasFilter: (key: string) => boolean;
16
- toQueryParams: Record<string, string | string[]>;
17
- toApiFormat: {
18
- field: string;
19
- operator: import("../types/filter.types").FilterOperator;
20
- value: string | [Date, Date] | string[];
21
- }[];
22
- filtersCount: number;
23
- };
24
- export {};
1
+ import type { FilterDefinition, UseFiltersOptions, UseFiltersReturn } from "../types/filter.types";
2
+ export declare const useFilters: (filterDefinitions: FilterDefinition[], options?: UseFiltersOptions) => UseFiltersReturn;
@@ -1,8 +1,9 @@
1
- export { default as MultiFiltersInput } from "./components/MultiFiltersInput";
2
- export { MultiFiltersInput as MultiFiltersInputComponent, FilterPill, CurrentFieldIndicator, FilterActionsMenu, FilterStatusBar, FilterMaxReached, FieldDropdown, OperatorDropdown, ValueDropdown, DateValueInput, DateRangeValueInput, FilterProvider, useFilterContext, } from "./components/MultiFiltersInput";
3
- export type { FilterOverflowMode, MultiFiltersInputExtendedProps } from "./components/MultiFiltersInput/MultiFiltersInput";
1
+ export { default as CompositeFiltersInput } from "./components/CompositeFiltersInput";
2
+ export { CompositeFiltersInput as CompositeFiltersInputComponent, MultiFiltersInput as MultiFiltersInputComponent, FilterPill, CurrentFieldIndicator, FilterActionsMenu, FilterStatusBar, FilterMaxReached, FieldDropdown, OperatorDropdown, ValueDropdown, DateValueInput, DateRangeValueInput, FilterProvider, useFilterContext, CompositeFiltersInputClasses, CompositeFiltersInputStaticClasses, } from "./components/CompositeFiltersInput";
3
+ export type { FilterOverflowMode, CompositeFiltersInputExtendedProps } from "./components/CompositeFiltersInput/CompositeFiltersInput";
4
+ export type { CompositeFiltersInputStylesNames as CompositeFiltersInputStylesNamesType } from "./components/CompositeFiltersInput/CompositeFiltersInput.classes";
4
5
  export { useFilters } from "./hooks/useFilters";
5
6
  export { useFilterPresets } from "./hooks/useFilterPresets";
6
7
  export { useFilterHistory } from "./hooks/useFilterHistory";
7
8
  export * from "./utils";
8
- export type { ActiveFilter, FilterDefinition, FilterOperator, FilterOption, FilterType, MultiFiltersInputProps, MultiFiltersInputStylesNames, MultiFiltersInputStyles, MultiFiltersInputClassNames, InputStep, SavedFilterPreset, FilterHistory, FilterInputState, FilterInputActions, FilterInputContextType, FilterDropdownConfig, FieldDropdownProps, OperatorDropdownProps, ValueDropdownProps, FilterAction, FilterVariant, } from "./types/filter.types";
9
+ export type { ActiveFilter, FilterDefinition, FilterOperator, FilterOption, FilterType, FilterValue, FilterVariant, CompositeFiltersInputProps, CompositeFiltersInputStylesNames, CompositeFiltersInputStyles, CompositeFiltersInputClassNames, FilterPillProps, FilterDropdownConfig, FieldDropdownProps, OperatorDropdownProps, ValueDropdownProps, InputStep, FilterInputState, FilterInputActions, FilterInputContextType, SavedFilterPreset, FilterHistory, UseFiltersOptions, UseFilterPresetsOptions, UseFilterHistoryOptions, UseFiltersReturn, UseFilterPresetsReturn, UseFilterHistoryReturn, ApiFilterFormat, FilterAction, } from "./types/filter.types";
@@ -1,8 +1,9 @@
1
- export { default as MultiFiltersInput } from "./components/MultiFiltersInput";
2
- export { MultiFiltersInput as MultiFiltersInputComponent, FilterPill, CurrentFieldIndicator, FilterActionsMenu, FilterStatusBar, FilterMaxReached, FieldDropdown, OperatorDropdown, ValueDropdown, DateValueInput, DateRangeValueInput, FilterProvider, useFilterContext, } from "./components/MultiFiltersInput";
3
- export type { FilterOverflowMode, MultiFiltersInputExtendedProps } from "./components/MultiFiltersInput/MultiFiltersInput";
1
+ export { default as CompositeFiltersInput } from "./components/CompositeFiltersInput";
2
+ export { CompositeFiltersInput as CompositeFiltersInputComponent, MultiFiltersInput as MultiFiltersInputComponent, FilterPill, CurrentFieldIndicator, FilterActionsMenu, FilterStatusBar, FilterMaxReached, FieldDropdown, OperatorDropdown, ValueDropdown, DateValueInput, DateRangeValueInput, FilterProvider, useFilterContext, CompositeFiltersInputClasses, CompositeFiltersInputStaticClasses, } from "./components/CompositeFiltersInput";
3
+ export type { FilterOverflowMode, CompositeFiltersInputExtendedProps } from "./components/CompositeFiltersInput/CompositeFiltersInput";
4
+ export type { CompositeFiltersInputStylesNames as CompositeFiltersInputStylesNamesType } from "./components/CompositeFiltersInput/CompositeFiltersInput.classes";
4
5
  export { useFilters } from "./hooks/useFilters";
5
6
  export { useFilterPresets } from "./hooks/useFilterPresets";
6
7
  export { useFilterHistory } from "./hooks/useFilterHistory";
7
8
  export * from "./utils";
8
- export type { ActiveFilter, FilterDefinition, FilterOperator, FilterOption, FilterType, MultiFiltersInputProps, MultiFiltersInputStylesNames, MultiFiltersInputStyles, MultiFiltersInputClassNames, InputStep, SavedFilterPreset, FilterHistory, FilterInputState, FilterInputActions, FilterInputContextType, FilterDropdownConfig, FieldDropdownProps, OperatorDropdownProps, ValueDropdownProps, FilterAction, FilterVariant, } from "./types/filter.types";
9
+ export type { ActiveFilter, FilterDefinition, FilterOperator, FilterOption, FilterType, FilterValue, FilterVariant, CompositeFiltersInputProps, CompositeFiltersInputStylesNames, CompositeFiltersInputStyles, CompositeFiltersInputClassNames, FilterPillProps, FilterDropdownConfig, FieldDropdownProps, OperatorDropdownProps, ValueDropdownProps, InputStep, FilterInputState, FilterInputActions, FilterInputContextType, SavedFilterPreset, FilterHistory, UseFiltersOptions, UseFilterPresetsOptions, UseFilterHistoryOptions, UseFiltersReturn, UseFilterPresetsReturn, UseFilterHistoryReturn, ApiFilterFormat, FilterAction, } from "./types/filter.types";
@@ -26,8 +26,8 @@ export interface ActiveFilter {
26
26
  displayValue: string;
27
27
  icon?: React.ReactNode;
28
28
  }
29
- export type MultiFiltersInputStylesNames = 'root' | 'container' | 'leftIcon' | 'pillsContainer' | 'input' | 'rightSection' | 'dropdown' | 'badge' | 'clearButton';
30
- export interface MultiFiltersInputStyles {
29
+ export type CompositeFiltersInputStylesNames = 'root' | 'container' | 'leftIcon' | 'pillsContainer' | 'input' | 'rightSection' | 'dropdown' | 'badge' | 'clearButton';
30
+ export interface CompositeFiltersInputStyles {
31
31
  root?: React.CSSProperties;
32
32
  container?: React.CSSProperties;
33
33
  leftIcon?: React.CSSProperties;
@@ -38,7 +38,7 @@ export interface MultiFiltersInputStyles {
38
38
  badge?: React.CSSProperties;
39
39
  clearButton?: React.CSSProperties;
40
40
  }
41
- export interface MultiFiltersInputClassNames {
41
+ export interface CompositeFiltersInputClassNames {
42
42
  root?: string;
43
43
  container?: string;
44
44
  leftIcon?: string;
@@ -49,7 +49,7 @@ export interface MultiFiltersInputClassNames {
49
49
  badge?: string;
50
50
  clearButton?: string;
51
51
  }
52
- export interface MultiFiltersInputProps extends Omit<BoxProps, 'children'> {
52
+ export interface CompositeFiltersInputProps extends Omit<BoxProps, 'children'> {
53
53
  filters: FilterDefinition[];
54
54
  value: ActiveFilter[];
55
55
  onChange: (filters: ActiveFilter[]) => void;
@@ -71,9 +71,9 @@ export interface MultiFiltersInputProps extends Omit<BoxProps, 'children'> {
71
71
  /** Variants for different UI styles */
72
72
  variant?: FilterVariant;
73
73
  /** Styles applied to different parts of the component */
74
- styles?: MultiFiltersInputStyles | ((theme: any) => MultiFiltersInputStyles);
74
+ styles?: CompositeFiltersInputStyles | ((theme: any) => CompositeFiltersInputStyles);
75
75
  /** ClassNames applied to different parts of the component */
76
- classNames?: MultiFiltersInputClassNames;
76
+ classNames?: CompositeFiltersInputClassNames;
77
77
  }
78
78
  export type InputStep = "field" | "operator" | "value";
79
79
  export interface SavedFilterPreset {
@@ -163,3 +163,65 @@ export interface FilterAction {
163
163
  disabled?: boolean;
164
164
  }
165
165
  export type FilterVariant = "default" | "compact" | "minimal" | "bordered";
166
+ export interface UseFiltersOptions {
167
+ initialFilters?: ActiveFilter[];
168
+ onFiltersChange?: (filters: ActiveFilter[]) => void;
169
+ }
170
+ export interface UseFilterPresetsOptions {
171
+ storageKey?: string;
172
+ onLoad?: (filters: ActiveFilter[]) => void;
173
+ }
174
+ export interface UseFilterHistoryOptions {
175
+ storageKey?: string;
176
+ maxHistory?: number;
177
+ enabled?: boolean;
178
+ }
179
+ export interface UseFiltersReturn {
180
+ activeFilters: ActiveFilter[];
181
+ setActiveFilters: (filters: ActiveFilter[]) => void;
182
+ filterDefinitions: FilterDefinition[];
183
+ addFilter: (filter: Omit<ActiveFilter, "id">) => void;
184
+ removeFilter: (id: string) => void;
185
+ clearFilters: () => void;
186
+ updateFilter: (id: string, updates: Partial<ActiveFilter>) => void;
187
+ getFilterByKey: (key: string) => ActiveFilter | undefined;
188
+ hasFilter: (key: string) => boolean;
189
+ toQueryParams: Record<string, string | string[]>;
190
+ toApiFormat: Array<{
191
+ field: string;
192
+ operator: FilterOperator;
193
+ value: ActiveFilter["value"];
194
+ }>;
195
+ filtersCount: number;
196
+ }
197
+ export interface UseFilterPresetsReturn {
198
+ presets: SavedFilterPreset[];
199
+ sortedPresets: SavedFilterPreset[];
200
+ savePreset: (filters: ActiveFilter[], name?: string) => SavedFilterPreset | null;
201
+ loadPreset: (preset: SavedFilterPreset) => void;
202
+ toggleFavorite: (presetId: string) => void;
203
+ deletePreset: (presetId: string) => void;
204
+ updatePreset: (presetId: string, updates: Partial<Omit<SavedFilterPreset, "id">>) => void;
205
+ hasPresets: boolean;
206
+ }
207
+ export interface UseFilterHistoryReturn {
208
+ history: FilterHistory[];
209
+ recentHistory: FilterHistory[];
210
+ clearHistory: () => void;
211
+ removeHistoryItem: (timestamp: number) => void;
212
+ hasHistory: boolean;
213
+ }
214
+ export interface ApiFilterFormat {
215
+ field: string;
216
+ operator: FilterOperator;
217
+ value: ActiveFilter["value"];
218
+ }
219
+ export type FilterValue = string | string[] | [Date | null, Date | null];
220
+ export interface FilterPillProps {
221
+ filter: ActiveFilter;
222
+ onRemove: (id: string) => void;
223
+ onOperatorClick?: (filter: ActiveFilter) => void;
224
+ onValueClick?: (filter: ActiveFilter) => void;
225
+ isHighlighted?: boolean;
226
+ isCompact?: boolean;
227
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mantine-composite-filters",
3
- "version": "0.1.2",
3
+ "version": "0.3.0",
4
4
  "description": "A powerful composite filters component for Mantine",
5
5
  "homepage": "https://dvlprroshan.github.io/mantine-composite-filters",
6
6
  "packageManager": "yarn@4.0.1",