@caratlogic/design-system 0.1.33 → 0.1.34

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 (113) hide show
  1. package/dist/components/molecules/FilterSelect/FilterMultiSelect.d.ts.map +1 -1
  2. package/dist/components/molecules/FilterSelect/FilterSelect.d.ts.map +1 -1
  3. package/dist/components/molecules/FilterSelect/FilterSelect.utils.d.ts +1 -1
  4. package/dist/components/molecules/FilterSelect/FilterSelect.utils.d.ts.map +1 -1
  5. package/dist/components/molecules/Filters/ActiveFilterChips/ActiveFilterChips.d.ts +1 -1
  6. package/dist/components/molecules/Filters/ActiveFilterChips/ActiveFilterChips.d.ts.map +1 -1
  7. package/dist/components/molecules/Filters/ActiveFilterChips/ActiveFilterChips.types.d.ts +3 -0
  8. package/dist/components/molecules/Filters/ActiveFilterChips/ActiveFilterChips.types.d.ts.map +1 -1
  9. package/dist/components/molecules/Filters/ActiveFilterChips/ActiveFilterChips.utils.d.ts +1 -1
  10. package/dist/components/molecules/Filters/ActiveFilterChips/ActiveFilterChips.utils.d.ts.map +1 -1
  11. package/dist/components/molecules/Filters/DateRangeFilter/DateRangeFilter.d.ts.map +1 -1
  12. package/dist/components/molecules/Filters/DateRangeFilter/DateRangeFilter.utils.d.ts +1 -1
  13. package/dist/components/molecules/Filters/DateRangeFilter/DateRangeFilter.utils.d.ts.map +1 -1
  14. package/dist/components/molecules/Filters/FilterCardSkeleton/FilterCardSkeleton.d.ts +6 -0
  15. package/dist/components/molecules/Filters/FilterCardSkeleton/FilterCardSkeleton.d.ts.map +1 -0
  16. package/dist/components/molecules/Filters/FilterCardSkeleton/FilterCardSkeleton.types.d.ts +8 -0
  17. package/dist/components/molecules/Filters/FilterCardSkeleton/FilterCardSkeleton.types.d.ts.map +1 -0
  18. package/dist/components/molecules/Filters/FilterCardSkeleton/FilterCardSkeleton.utils.d.ts +6 -0
  19. package/dist/components/molecules/Filters/FilterCardSkeleton/FilterCardSkeleton.utils.d.ts.map +1 -0
  20. package/dist/components/molecules/Filters/FilterCardSkeleton/index.d.ts +3 -0
  21. package/dist/components/molecules/Filters/FilterCardSkeleton/index.d.ts.map +1 -0
  22. package/dist/components/molecules/Filters/FilterPanel/FilterPanel.d.ts.map +1 -1
  23. package/dist/components/molecules/Filters/Filters.types.d.ts +9 -0
  24. package/dist/components/molecules/Filters/Filters.types.d.ts.map +1 -1
  25. package/dist/components/molecules/Filters/Filters.utils.d.ts +16 -3
  26. package/dist/components/molecules/Filters/Filters.utils.d.ts.map +1 -1
  27. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.d.ts +1 -1
  28. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.d.ts.map +1 -1
  29. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.hooks.d.ts +2 -0
  30. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.hooks.d.ts.map +1 -1
  31. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.types.d.ts +3 -1
  32. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.types.d.ts.map +1 -1
  33. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.utils.d.ts +12 -1
  34. package/dist/components/molecules/Filters/NumberExpressionFilter/NumberExpressionFilter.utils.d.ts.map +1 -1
  35. package/dist/components/molecules/Filters/NumberRangeInputs/NumberRangeInputs.utils.d.ts +2 -1
  36. package/dist/components/molecules/Filters/NumberRangeInputs/NumberRangeInputs.utils.d.ts.map +1 -1
  37. package/dist/components/molecules/Filters/PickListFilter/PickListFilter.d.ts +2 -2
  38. package/dist/components/molecules/Filters/PickListFilter/PickListFilter.d.ts.map +1 -1
  39. package/dist/components/molecules/Filters/PickListFilter/PickListFilter.types.d.ts +2 -0
  40. package/dist/components/molecules/Filters/PickListFilter/PickListFilter.types.d.ts.map +1 -1
  41. package/dist/components/molecules/Filters/PickListFilter/PickListFilter.utils.d.ts +8 -3
  42. package/dist/components/molecules/Filters/PickListFilter/PickListFilter.utils.d.ts.map +1 -1
  43. package/dist/components/molecules/Filters/ScaleRangeFilter/ScaleRangeFilter.d.ts.map +1 -1
  44. package/dist/components/molecules/Filters/TriStateFilter/TriStateFilter.utils.d.ts +1 -1
  45. package/dist/components/molecules/Filters/TriStateFilter/TriStateFilter.utils.d.ts.map +1 -1
  46. package/dist/components/molecules/Filters/index.d.ts +3 -2
  47. package/dist/components/molecules/Filters/index.d.ts.map +1 -1
  48. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.accessibility.d.ts +11 -0
  49. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.accessibility.d.ts.map +1 -0
  50. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.d.ts +6 -0
  51. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.d.ts.map +1 -0
  52. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.hooks.d.ts +9 -0
  53. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.hooks.d.ts.map +1 -0
  54. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.parts.d.ts +5 -0
  55. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.parts.d.ts.map +1 -0
  56. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.types.d.ts +66 -0
  57. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.types.d.ts.map +1 -0
  58. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.utils.d.ts +14 -0
  59. package/dist/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.utils.d.ts.map +1 -0
  60. package/dist/components/molecules/SavedSearches/SaveSearchDialog/index.d.ts +5 -0
  61. package/dist/components/molecules/SavedSearches/SaveSearchDialog/index.d.ts.map +1 -0
  62. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.d.ts +6 -0
  63. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.d.ts.map +1 -0
  64. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.hooks.d.ts +7 -0
  65. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.hooks.d.ts.map +1 -0
  66. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.types.d.ts +19 -0
  67. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.types.d.ts.map +1 -0
  68. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.utils.d.ts +5 -0
  69. package/dist/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.utils.d.ts.map +1 -0
  70. package/dist/components/molecules/SavedSearches/SavedSearchChipList/index.d.ts +3 -0
  71. package/dist/components/molecules/SavedSearches/SavedSearchChipList/index.d.ts.map +1 -0
  72. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.accessibility.d.ts +6 -0
  73. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.accessibility.d.ts.map +1 -0
  74. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.d.ts +6 -0
  75. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.d.ts.map +1 -0
  76. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.hooks.d.ts +3 -0
  77. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.hooks.d.ts.map +1 -0
  78. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.parts.d.ts +7 -0
  79. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.parts.d.ts.map +1 -0
  80. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.types.d.ts +56 -0
  81. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.types.d.ts.map +1 -0
  82. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.utils.d.ts +18 -0
  83. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.utils.d.ts.map +1 -0
  84. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/index.d.ts +4 -0
  85. package/dist/components/molecules/SavedSearches/SavedSearchesMenu/index.d.ts.map +1 -0
  86. package/dist/components/molecules/SavedSearches/index.d.ts +4 -0
  87. package/dist/components/molecules/SavedSearches/index.d.ts.map +1 -0
  88. package/dist/components/organisms/Filters/FilterField/FilterField.d.ts.map +1 -1
  89. package/dist/components/organisms/Filters/FilterField/FilterField.types.d.ts +6 -4
  90. package/dist/components/organisms/Filters/FilterField/FilterField.types.d.ts.map +1 -1
  91. package/dist/components/organisms/Filters/FilterField/FilterField.utils.d.ts +5 -5
  92. package/dist/components/organisms/Filters/FilterField/FilterField.utils.d.ts.map +1 -1
  93. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.accessibility.d.ts +4 -0
  94. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.accessibility.d.ts.map +1 -1
  95. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.d.ts +2 -2
  96. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.d.ts.map +1 -1
  97. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.hooks.d.ts.map +1 -1
  98. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.parts.d.ts +7 -0
  99. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.parts.d.ts.map +1 -0
  100. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.types.d.ts +16 -0
  101. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.types.d.ts.map +1 -1
  102. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.utils.d.ts +4 -0
  103. package/dist/components/organisms/Filters/FilterSurface/FilterSurface.utils.d.ts.map +1 -0
  104. package/dist/components/organisms/Filters/FilterSurface/index.d.ts +1 -1
  105. package/dist/components/organisms/Filters/FilterSurface/index.d.ts.map +1 -1
  106. package/dist/hooks/useTruncatedText.d.ts.map +1 -1
  107. package/dist/index.cjs.js +690 -238
  108. package/dist/index.cjs.js.map +1 -1
  109. package/dist/index.d.ts +1 -0
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.esm.js +682 -240
  112. package/dist/index.esm.js.map +1 -1
  113. package/package.json +1 -1
@@ -0,0 +1,66 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface SaveSearchDialogProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ /** Receives the trimmed name. */
6
+ onSave: (name: string) => void;
7
+ /** Name filled in each time the dialog opens. */
8
+ defaultName?: string;
9
+ /** Filter summaries being saved; omit to hide the "Filters saved" block (e.g. when renaming). */
10
+ chips?: string[];
11
+ /** Default `Save search`. */
12
+ title?: string;
13
+ /** Header tile icon. Default a bookmark. */
14
+ icon?: ReactNode;
15
+ /** Default `Save search`. */
16
+ submitLabel?: string;
17
+ /** Small print under the filters, e.g. a limit on how many searches are kept. */
18
+ note?: ReactNode;
19
+ /** Names already taken (e.g. the user's other saved searches); reusing one (ignoring case) asks for confirmation first. */
20
+ existingNames?: string[];
21
+ /** Asked before saving, e.g. when the saved-search limit means the oldest one will be removed. */
22
+ limitWarning?: SaveSearchWarning;
23
+ /** Asked before the form opens, e.g. when these filters are already saved; Cancel closes, confirming shows the form. */
24
+ existingWarning?: SaveSearchWarning;
25
+ saving?: boolean;
26
+ }
27
+ export interface SaveSearchWarning {
28
+ title: string;
29
+ /** One short line under the title (dialog rule: no wrapping subtitles); details go in `detail`. */
30
+ description: string;
31
+ /** Shown in the body, e.g. the name of the search involved. */
32
+ detail?: SaveSearchWarningDetail;
33
+ /** Default `Save anyway`. */
34
+ confirmLabel?: string;
35
+ }
36
+ export interface SaveSearchWarningDetail {
37
+ label: string;
38
+ value: string;
39
+ }
40
+ /** The form, or one of the follow-up warnings that replace it until confirmed or sent back. */
41
+ export type SaveSearchStep = 'existing' | 'form' | 'duplicate' | 'limit';
42
+ export interface UseSaveSearchDialogArgs {
43
+ open: boolean;
44
+ defaultName: string;
45
+ onSave: (name: string) => void;
46
+ saving: boolean;
47
+ existingNames: readonly string[];
48
+ hasLimitWarning: boolean;
49
+ hasExistingWarning: boolean;
50
+ onClose: () => void;
51
+ }
52
+ export interface UseSaveSearchDialogResult {
53
+ formId: string;
54
+ inputId: string;
55
+ name: string;
56
+ setName: (name: string) => void;
57
+ /** Shown under the name once a save is tried with an invalid name. */
58
+ error: string | undefined;
59
+ submit: () => void;
60
+ step: SaveSearchStep;
61
+ /** Moves past the current warning: to the next one, or saves. */
62
+ confirmWarning: () => void;
63
+ /** Back to the form, keeping the typed name (or closes, from the warning shown before the form). */
64
+ cancelWarning: () => void;
65
+ }
66
+ //# sourceMappingURL=SaveSearchDialog.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveSearchDialog.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iCAAiC;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2HAA2H;IAC3H,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kGAAkG;IAClG,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,wHAAwH;IACxH,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+FAA+F;AAC/F,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,iEAAiE;IACjE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,oGAAoG;IACpG,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,14 @@
1
+ import type { SaveSearchStep, SaveSearchWarning } from './SaveSearchDialog.types';
2
+ export declare const SAVED_SEARCH_NAME_MAX_LENGTH = 100;
3
+ export declare const isValidSearchName: (name: string) => boolean;
4
+ export declare const isDuplicateSearchName: (name: string, existingNames: readonly string[]) => boolean;
5
+ export declare const FILTERS_PANEL_CLASS_NAME = "rounded-lg border border-border bg-muted/40 p-3";
6
+ /** The warning for a step: the caller's for the limit and already-saved steps, built-in copy for a reused name. */
7
+ export declare function getStepWarning(step: SaveSearchStep, name: string, warnings: {
8
+ limitWarning?: SaveSearchWarning;
9
+ existingWarning?: SaveSearchWarning;
10
+ }): SaveSearchWarning | undefined;
11
+ /** Cancel closes before the form; later warnings go back to it. */
12
+ export declare function getWarningCancelLabel(step: SaveSearchStep): string;
13
+ export declare const WARNING_DETAIL_CLASS_NAME = "flex min-w-0 flex-col gap-0.5 rounded-xl border border-border bg-muted/30 px-3.5 py-3";
14
+ //# sourceMappingURL=SaveSearchDialog.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveSearchDialog.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SaveSearchDialog/SaveSearchDialog.utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OAGhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,eAAe,SAAS,MAAM,EAAE,KAC/B,OAGF,CAAC;AAEF,eAAO,MAAM,wBAAwB,oDACc,CAAC;AAEpD,mHAAmH;AACnH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;IACR,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,eAAe,CAAC,EAAE,iBAAiB,CAAC;CACrC,GACA,iBAAiB,GAAG,SAAS,CAW/B;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAIlE;AAED,eAAO,MAAM,yBAAyB,0FACmD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { SaveSearchDialog } from './SaveSearchDialog';
2
+ export type { SaveSearchDialogProps } from './SaveSearchDialog';
3
+ export type { SaveSearchWarning, SaveSearchWarningDetail, } from './SaveSearchDialog.types';
4
+ export { isDuplicateSearchName, isValidSearchName, SAVED_SEARCH_NAME_MAX_LENGTH, } from './SaveSearchDialog.utils';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SaveSearchDialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { SavedSearchChipListProps } from './SavedSearchChipList.types';
3
+ export type { SavedSearchChipListProps } from './SavedSearchChipList.types';
4
+ /** Read-only filter summaries of a saved search, as pills; optionally one line ending in "+N more". */
5
+ export declare function SavedSearchChipList({ chips, emptyText, collapsible, className, }: SavedSearchChipListProps): ReactElement;
6
+ //# sourceMappingURL=SavedSearchChipList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchChipList.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAM5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAwB,EACxB,WAAmB,EACnB,SAAS,GACV,EAAE,wBAAwB,GAAG,YAAY,CAyCzC"}
@@ -0,0 +1,7 @@
1
+ import type { UseChipOverflowResult } from './SavedSearchChipList.types';
2
+ /**
3
+ * Fits chips on one line with the "+N more" link right after the last one. Renders every chip, counts
4
+ * how many wrap, then drops chips until the link itself fits; a resize starts the measurement over.
5
+ */
6
+ export declare function useChipOverflow(chips: string[], enabled: boolean): UseChipOverflowResult;
7
+ //# sourceMappingURL=SavedSearchChipList.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchChipList.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.hooks.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,OAAO,GACf,qBAAqB,CAgDvB"}
@@ -0,0 +1,19 @@
1
+ export interface SavedSearchChipListProps {
2
+ /** One short summary per filter, e.g. `Red, Blue` or `1.00 – 3.00`. */
3
+ chips: string[];
4
+ /** Shown when there are no chips. */
5
+ emptyText?: string;
6
+ /** Keep to one line, ending in a "+N more" link that reveals the rest. */
7
+ collapsible?: boolean;
8
+ className?: string;
9
+ }
10
+ export interface UseChipOverflowResult {
11
+ listRef: (node: HTMLUListElement | null) => void;
12
+ expanded: boolean;
13
+ toggle: () => void;
14
+ /** Chips shown (all of them unless collapsed and too many to fit one line). */
15
+ visibleChips: string[];
16
+ /** Chips folded into "+N more". */
17
+ hiddenCount: number;
18
+ }
19
+ //# sourceMappingURL=SavedSearchChipList.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchChipList.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,uEAAuE;IACvE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,5 @@
1
+ export declare const SAVED_SEARCH_CHIP_CLASS_NAME = "inline-flex h-6 min-w-0 max-w-full items-center rounded-full border border-primary/30 bg-primary/5 px-2 text-xs text-foreground";
2
+ /** Children laid out below the first one's line. */
3
+ export declare function countWrapped(items: readonly HTMLElement[]): number;
4
+ export declare const getShowMoreLabel: (hiddenCount: number) => string;
5
+ //# sourceMappingURL=SavedSearchChipList.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchChipList.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchChipList/SavedSearchChipList.utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,oIAC0F,CAAC;AAEpI,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAIlE;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,KAAG,MAC/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SavedSearchChipList } from './SavedSearchChipList';
2
+ export type { SavedSearchChipListProps } from './SavedSearchChipList';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchChipList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const SEARCH_INPUT_LABEL = "Find a saved search";
2
+ export declare const getRenameLabel: (name: string) => string;
3
+ export declare const getDeleteLabel: (name: string) => string;
4
+ export declare const NO_MATCH_TITLE = "No matches";
5
+ export declare const getNoMatchText: (query: string) => string;
6
+ //# sourceMappingURL=SavedSearchesMenu.accessibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchesMenu.accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.accessibility.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAA0B,CAAC;AAEzE,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAA0B,CAAC;AAEzE,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MACD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { SavedSearchesMenuProps } from './SavedSearchesMenu.types';
3
+ export type { SavedSearchItem, SavedSearchesMenuProps, } from './SavedSearchesMenu.types';
4
+ /** "Saved searches" dropdown: find, pick, rename or delete a saved filter set. */
5
+ export declare function SavedSearchesMenu({ items, onSelect, onRename, onDelete, loading, onOpenChange, label, footnote, emptyTitle, emptyDescription, align, triggerClassName, }: SavedSearchesMenuProps): ReactElement;
6
+ //# sourceMappingURL=SavedSearchesMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchesMenu.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAwB1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMxE,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAe,EACf,YAAY,EACZ,KAAwB,EACxB,QAAQ,EACR,UAAoC,EACpC,gBAAmF,EACnF,KAAe,EACf,gBAAgB,GACjB,EAAE,sBAAsB,GAAG,YAAY,CAiFvC"}
@@ -0,0 +1,3 @@
1
+ import type { SavedSearchItem, UseSavedSearchesMenuResult } from './SavedSearchesMenu.types';
2
+ export declare function useSavedSearchesMenu(items: readonly SavedSearchItem[], onOpenChange?: (open: boolean) => void): UseSavedSearchesMenuResult;
3
+ //# sourceMappingURL=SavedSearchesMenu.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchesMenu.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.hooks.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GACrC,0BAA0B,CAsB5B"}
@@ -0,0 +1,7 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { SavedSearchesEmptyProps, SavedSearchRowProps } from './SavedSearchesMenu.types';
3
+ /** One saved search: name, filter pills, when it was saved, and Rename / Delete buttons. */
4
+ export declare function SavedSearchRow({ item, onSelect, onRename, onDelete, }: SavedSearchRowProps): ReactElement;
5
+ /** Centered empty / no-match state inside the dropdown. */
6
+ export declare function SavedSearchesEmpty({ icon, title, description, }: SavedSearchesEmptyProps): ReactElement;
7
+ //# sourceMappingURL=SavedSearchesMenu.parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchesMenu.parts.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.parts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAiB1C,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AA0CnC,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,mBAAmB,GAAG,YAAY,CAsDpC;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,GACZ,EAAE,uBAAuB,GAAG,YAAY,CAUxC"}
@@ -0,0 +1,56 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface SavedSearchItem {
3
+ id: string;
4
+ name: string;
5
+ /** Filter summaries shown under the name. */
6
+ chips: string[];
7
+ /** Live match count; omit to hide it. */
8
+ count?: number;
9
+ /** Count as shown, with its unit, e.g. `284 gems`. Defaults to the bare number. */
10
+ countLabel?: string;
11
+ countLoading?: boolean;
12
+ /** Secondary text under the count, e.g. `3 days ago`. */
13
+ meta?: string;
14
+ }
15
+ export interface SavedSearchesMenuProps {
16
+ items: SavedSearchItem[];
17
+ onSelect: (item: SavedSearchItem) => void;
18
+ onRename?: (item: SavedSearchItem) => void;
19
+ onDelete?: (item: SavedSearchItem) => void;
20
+ /** The list is still loading. */
21
+ loading?: boolean;
22
+ /** Fires when the dropdown opens or closes, e.g. to fetch counts only while it is open. */
23
+ onOpenChange?: (open: boolean) => void;
24
+ /** Trigger text. Default `Saved searches`. */
25
+ label?: string;
26
+ /** Note under the list, e.g. what picking a search does. */
27
+ footnote?: ReactNode;
28
+ /** Empty-state heading when nothing has been saved yet. */
29
+ emptyTitle?: string;
30
+ /** Empty-state hint, e.g. how to save a search. */
31
+ emptyDescription?: string;
32
+ /** Dropdown edge lined up with the trigger; `end` for a trigger near the right edge. Default `start`. */
33
+ align?: 'start' | 'end';
34
+ triggerClassName?: string;
35
+ }
36
+ export interface SavedSearchesEmptyProps {
37
+ icon: ReactNode;
38
+ title: string;
39
+ description: string;
40
+ }
41
+ export interface SavedSearchRowProps {
42
+ item: SavedSearchItem;
43
+ onSelect: () => void;
44
+ onRename?: () => void;
45
+ onDelete?: () => void;
46
+ }
47
+ export interface UseSavedSearchesMenuResult {
48
+ open: boolean;
49
+ setOpen: (open: boolean) => void;
50
+ query: string;
51
+ setQuery: (query: string) => void;
52
+ visibleItems: SavedSearchItem[];
53
+ /** Closes the dropdown, then runs the action (so a dialog it opens gets focus). */
54
+ closeThen: (action: (item: SavedSearchItem) => void, item: SavedSearchItem) => () => void;
55
+ }
56
+ //# sourceMappingURL=SavedSearchesMenu.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchesMenu.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,iCAAiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yGAAyG;IACzG,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,mFAAmF;IACnF,SAAS,EAAE,CACT,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,EACvC,IAAI,EAAE,eAAe,KAClB,MAAM,IAAI,CAAC;CACjB"}
@@ -0,0 +1,18 @@
1
+ import type { SavedSearchItem } from './SavedSearchesMenu.types';
2
+ /** Matches the name or any filter summary, ignoring case. */
3
+ export declare function filterSavedSearches(items: readonly SavedSearchItem[], query: string): SavedSearchItem[];
4
+ export { FILTER_SEARCH_BOX_CLASS_NAME as SEARCH_BOX_CLASS_NAME } from '@/components/molecules/Filters/Filters.utils';
5
+ export declare const ROW_CLASS_NAME = "relative flex items-center gap-4 rounded-md px-2 py-2.5 transition-colors hover:bg-muted/60";
6
+ /** The name is the row's button; its `::after` stretches over the whole row so the row is the click target. */
7
+ export declare const ROW_BUTTON_CLASS_NAME = "block min-w-0 max-w-full cursor-pointer text-left text-sm font-semibold text-foreground outline-none after:absolute after:inset-0 after:rounded-md after:content-[''] focus-visible:after:ring-2 focus-visible:after:ring-primary/30";
8
+ /** Lifts the name above the button's stretched area so its overflow tooltip gets the hover; clicks still reach the button. */
9
+ export declare const ROW_NAME_CLASS_NAME = "relative z-10 block min-w-0";
10
+ /** Rename / Delete as one outlined, button-shaped group with a divider between them. */
11
+ export declare const ROW_ACTIONS_CLASS_NAME = "flex shrink-0 items-center divide-x divide-border overflow-hidden rounded-md border border-border bg-card shadow-xs";
12
+ /** A cell of the actions group; Delete turns destructive on hover. */
13
+ export declare function getRowActionClassName(destructive: boolean): string;
14
+ /** Controls inside the row that sit above the stretched button. */
15
+ export declare const ROW_CONTROL_CLASS_NAME = "relative z-10";
16
+ /** About three rows (name line + one pill line each) before the list scrolls. */
17
+ export declare const LIST_SCROLL_CLASS_NAME = "max-h-54 overflow-y-auto";
18
+ //# sourceMappingURL=SavedSearchesMenu.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedSearchesMenu.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/SavedSearchesMenu.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,6DAA6D;AAC7D,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,KAAK,EAAE,MAAM,GACZ,eAAe,EAAE,CAQnB;AAED,OAAO,EAAE,4BAA4B,IAAI,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErH,eAAO,MAAM,cAAc,gGACoE,CAAC;AAEhG,+GAA+G;AAC/G,eAAO,MAAM,qBAAqB,yOACsM,CAAC;AAEzO,8HAA8H;AAC9H,eAAO,MAAM,mBAAmB,gCAAgC,CAAC;AAEjE,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,wHACoF,CAAC;AAExH,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAOlE;AAED,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,6BAA6B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { SavedSearchesMenu } from './SavedSearchesMenu';
2
+ export type { SavedSearchItem, SavedSearchesMenuProps, } from './SavedSearchesMenu';
3
+ export { filterSavedSearches } from './SavedSearchesMenu.utils';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/SavedSearches/SavedSearchesMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './SavedSearchChipList';
2
+ export * from './SavedSearchesMenu';
3
+ export * from './SaveSearchDialog';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/SavedSearches/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterField.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterField/FilterField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAe1C,OAAO,KAAK,EACV,oBAAoB,EAEpB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAsB7B,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AA0B7B,iIAAiI;AACjI,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,IAAI,EACJ,SAAS,GACV,EAAE,uBAAuB,GAAG,YAAY,CAwFxC;AAED,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,SAAS,GACV,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,YAAY,CAsD/C;AAED,yJAAyJ;AACzJ,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,MAAM,EACN,SAAS,EACT,IAAI,GACL,EAAE,oBAAoB,GAAG,YAAY,CAoCrC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAOjE"}
1
+ {"version":3,"file":"FilterField.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterField/FilterField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAe1C,OAAO,KAAK,EACV,oBAAoB,EAEpB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAsB7B,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AA0B7B,iIAAiI;AACjI,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,IAAI,EACJ,SAAS,GACV,EAAE,uBAAuB,GAAG,YAAY,CA0FxC;AAED,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,SAAS,GACV,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,YAAY,CAwD/C;AAED,yJAAyJ;AACzJ,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,MAAM,EACN,SAAS,EACT,IAAI,GACL,EAAE,oBAAoB,GAAG,YAAY,CAoCrC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAOjE"}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { PickListLayout } from '@/components/molecules/Filters/PickListFilter';
3
- import type { FilterControlType, FilterFieldOption, FilterValue } from '@/components/molecules/Filters/Filters.types';
3
+ import type { FilterControlType, FilterFieldOption, FilterValue, NumberRuleExamples } from '@/components/molecules/Filters/Filters.types';
4
4
  /** Everything needed to render one filter anywhere: filter-row cell, card, or section inside a card. */
5
5
  export interface FilterFieldConfig {
6
6
  key: string;
@@ -10,9 +10,9 @@ export interface FilterFieldConfig {
10
10
  options?: FilterFieldOption[];
11
11
  /** Filter-row placeholder, e.g. `>2000`; each type has a default. */
12
12
  placeholder?: string;
13
- /** Example text inside the ID-list / contains box, or the empty single-select dropdown (the filter-row pill keeps `placeholder`). */
13
+ /** Example text inside the ID-list / contains box, or the empty single-select dropdown on cards (the filter-row pill keeps `placeholder`). */
14
14
  inputPlaceholder?: string;
15
- /** `list`: one value at a time — a dropdown on cards (e.g. Vendor). */
15
+ /** `list`: one value at a time (e.g. a vendor) — a dropdown on cards, a pick-one list in the filter row. */
16
16
  single?: boolean;
17
17
  /** `list` popover search box placeholder, e.g. `Search colors`. */
18
18
  searchPlaceholder?: string;
@@ -22,8 +22,10 @@ export interface FilterFieldConfig {
22
22
  columns?: number;
23
23
  /** `scale`: the filter-row pill summarises with initials (VG – F). */
24
24
  shortLabels?: boolean;
25
- /** Extra info in the number popover (e.g. how stored ranges are matched). */
25
+ /** Extra info in the filter-row number popover (e.g. how stored ranges are matched). */
26
26
  note?: ReactNode;
27
+ /** `number`: typical values for the filter-row rule examples (e.g. thousands for prices). */
28
+ ruleExamples?: NumberRuleExamples;
27
29
  /** Helper text under a card's body. */
28
30
  hint?: ReactNode;
29
31
  /** `number` card presets, e.g. common sizes. */
@@ -1 +1 @@
1
- {"version":3,"file":"FilterField.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterField/FilterField.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,8CAA8C,CAAC;AAEtD,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,wDAAwD;IACxD,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qIAAqI;IACrI,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uLAAuL;IACvL,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,IAAI,EAAE,eAAe,CAAC;IACtB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CACnD,gBAAgB,EAChB,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,sBAAsB,CACxD;IACC,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1E,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC"}
1
+ {"version":3,"file":"FilterField.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterField/FilterField.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EACnB,MAAM,8CAA8C,CAAC;AAEtD,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,wDAAwD;IACxD,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8IAA8I;IAC9I,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4GAA4G;IAC5G,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uLAAuL;IACvL,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,IAAI,EAAE,eAAe,CAAC;IACtB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CACnD,gBAAgB,EAChB,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,sBAAsB,CACxD;IACC,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1E,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC"}
@@ -18,7 +18,7 @@ export declare const DEFAULT_CELL_PLACEHOLDERS: Record<FilterControlType, string
18
18
  export declare function getCellState(field: FilterFieldConfig, value: FilterValue | undefined): FilterFieldState;
19
19
  /** Human-readable value for chips and card summaries, e.g. `Red, Blue`, `1–3`, `Last 30 days`. */
20
20
  export declare function describeFilterValue(field: FilterFieldConfig, value: FilterValue | undefined): string;
21
- /** Short value shown on the filter-row trigger, e.g. `Red +1`, `VG – F`, `3 IDs`. */
21
+ /** Short value shown on the filter-row trigger, e.g. `Red +1`, `VG – F`, `A-102`, `3 IDs`. */
22
22
  export declare function getCellLabel(field: FilterFieldConfig, value: FilterValue | undefined): string;
23
23
  /** Filter-row popovers hold the filter's card at a compact, fixed width. */
24
24
  export declare function getPopoverWidthClassName(field: FilterFieldConfig): string;
@@ -26,13 +26,13 @@ export declare function getPopoverWidthClassName(field: FilterFieldConfig): stri
26
26
  export declare const MAX_PILL_OPTIONS = 10;
27
27
  /** The list layout actually used: the configured one, or the checkbox list once there are too many options for pills. */
28
28
  export declare function resolveListLayout(field: FilterFieldConfig): PickListLayout;
29
- /** Popover variant: tile and option grids drop to two columns; chip lists become the checkbox list. */
29
+ /** The empty single-select dropdown on a card: `inputPlaceholder`, else `Any <label>` (set `inputPlaceholder` for acronyms). */
30
+ export declare const getSingleSelectPlaceholder: (field: FilterFieldConfig) => string;
31
+ /** Popover variant: the same control and layout as the card (pills up to 10 options, then the list); tile grids drop to two columns. */
30
32
  export declare function toPopoverField(field: FilterFieldConfig): FilterFieldConfig;
31
33
  /** ID lists and searchable lists carry their own "x selected · Clear" row, so the card skips its Clear (and, in a popover, its title). */
32
34
  export declare const ownsClearRow: (field: FilterFieldConfig) => boolean;
33
- /** Popover header text in place of the title: `2 of 17 selected`, or the applied value (`VG – F`, `Last 30 days`). */
35
+ /** Popover header text in place of the title: `2 of 17 selected`, or the applied value (`VG – F`, `Last 30 days`); none when nothing is applied. */
34
36
  export declare function getPopoverStatus(field: FilterFieldConfig, value: FilterValue | undefined): string | undefined;
35
- /** The empty single-select trigger: `inputPlaceholder`, else `Any <label>` (lowercased — set `inputPlaceholder` for acronyms). */
36
- export declare const getSingleSelectPlaceholder: (field: FilterFieldConfig) => string;
37
37
  export {};
38
38
  //# sourceMappingURL=FilterField.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterField.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterField/FilterField.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACd,MAAM,8CAA8C,CAAC;AAUtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,KAAK,OAAO,CAAC,CAAC,SAAS,iBAAiB,IAAI,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE9E,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,CAAC,SAAS,iBAAiB,EACrD,KAAK,EAAE,WAAW,GAAG,SAAS,EAC9B,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAExB;AAED,oGAAoG;AACpG,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,KAAG,WAAW,GAAG,SACP,CAAC;AAEvD,eAAO,MAAM,YAAY,GACvB,OAAO,eAAe,GAAG,SAAS,KACjC,WAAW,GAAG,SAA2D,CAAC;AAE7E,eAAO,MAAM,aAAa,GACxB,OAAO,gBAAgB,GAAG,SAAS,KAClC,WAAW,GAAG,SAGF,CAAC;AAEhB,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,KAAG,WAAW,GAAG,SACV,CAAC;AAEhD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,WAAW,GAAG,SACM,CAAC;AAEpE,eAAO,MAAM,WAAW,GACtB,OAAO,cAAc,GAAG,SAAS,KAChC,WAAW,GAAG,SAGF,CAAC;AAEhB,eAAO,MAAM,WAAW,GAAI,OAAO,aAAa,KAAG,WAAW,GAAG,SACV,CAAC;AAExD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAQvE,CAAC;AAEF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,gBAAgB,CAGlB;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,MAAM,CAiCR;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,MAAM,CAYR;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAIzE;AAID,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,yHAAyH;AACzH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAI1E;AAED,uGAAuG;AACvG,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAS1E;AAED,0IAA0I;AAC1I,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,KAAG,OAEQ,CAAC;AAEjE,sHAAsH;AACtH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,MAAM,GAAG,SAAS,CASpB;AAED,kIAAkI;AAClI,eAAO,MAAM,0BAA0B,GAAI,OAAO,iBAAiB,KAAG,MACR,CAAC"}
1
+ {"version":3,"file":"FilterField.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterField/FilterField.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACd,MAAM,8CAA8C,CAAC;AAUtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,KAAK,OAAO,CAAC,CAAC,SAAS,iBAAiB,IAAI,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE9E,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,CAAC,SAAS,iBAAiB,EACrD,KAAK,EAAE,WAAW,GAAG,SAAS,EAC9B,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAExB;AAED,oGAAoG;AACpG,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,KAAG,WAAW,GAAG,SACP,CAAC;AAEvD,eAAO,MAAM,YAAY,GACvB,OAAO,eAAe,GAAG,SAAS,KACjC,WAAW,GAAG,SAA2D,CAAC;AAE7E,eAAO,MAAM,aAAa,GACxB,OAAO,gBAAgB,GAAG,SAAS,KAClC,WAAW,GAAG,SAGF,CAAC;AAEhB,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,KAAG,WAAW,GAAG,SACV,CAAC;AAEhD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,WAAW,GAAG,SACM,CAAC;AAEpE,eAAO,MAAM,WAAW,GACtB,OAAO,cAAc,GAAG,SAAS,KAChC,WAAW,GAAG,SAGF,CAAC;AAEhB,eAAO,MAAM,WAAW,GAAI,OAAO,aAAa,KAAG,WAAW,GAAG,SACV,CAAC;AAExD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAQvE,CAAC;AAEF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,gBAAgB,CAGlB;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,MAAM,CAiCR;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAC1B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,MAAM,CAWR;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAIzE;AAID,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,yHAAyH;AACzH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAI1E;AAED,gIAAgI;AAChI,eAAO,MAAM,0BAA0B,GAAI,OAAO,iBAAiB,KAAG,MACR,CAAC;AAE/D,wIAAwI;AACxI,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAQ1E;AAED,0IAA0I;AAC1I,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,KAAG,OAEQ,CAAC;AAEjE,oJAAoJ;AACpJ,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,MAAM,GAAG,SAAS,CAUpB"}
@@ -1,4 +1,8 @@
1
1
  /** Both leave without applying — the draft is discarded. */
2
2
  export declare const BACK_LABEL = "Back without applying";
3
3
  export declare const CLOSE_LABEL = "Close without applying";
4
+ export declare const LOADING_LABEL = "Loading filters";
5
+ export declare const ERROR_TITLE = "Couldn't load filters";
6
+ export declare const DEFAULT_ERROR_MESSAGE = "Something went wrong while loading the filters. Check your connection and try again.";
7
+ export declare const RETRY_LABEL = "Try again";
4
8
  //# sourceMappingURL=FilterSurface.accessibility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSurface.accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.accessibility.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAClD,eAAO,MAAM,WAAW,2BAA2B,CAAC"}
1
+ {"version":3,"file":"FilterSurface.accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.accessibility.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAClD,eAAO,MAAM,WAAW,2BAA2B,CAAC;AAEpD,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAC/C,eAAO,MAAM,WAAW,0BAA0B,CAAC;AACnD,eAAO,MAAM,qBAAqB,yFACsD,CAAC;AACzF,eAAO,MAAM,WAAW,cAAc,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { FilterSurfaceGroupProps, FilterSurfaceMoreProps, FilterSurfaceProps } from './FilterSurface.types';
3
- export type { FilterSurfaceGroupProps, FilterSurfaceMoreProps, FilterSurfaceProps, } from './FilterSurface.types';
3
+ export type { FilterSurfaceGroupProps, FilterSurfaceMoreProps, FilterSurfaceProps, FilterSurfaceStatus, } from './FilterSurface.types';
4
4
  /** Full-page filter screen (e.g. an advanced search): header, scrolling card grid, sticky apply footer. */
5
- export declare function FilterSurface({ title, headerActions, footerChips, footerActions, onClose, children, }: FilterSurfaceProps): ReactElement;
5
+ export declare function FilterSurface({ title, headerActions, footerChips, footerActions, onClose, status, errorMessage, onRetry, skeleton, children, }: FilterSurfaceProps): ReactElement;
6
6
  export declare function FilterSurfaceGroup({ title, className, children, }: FilterSurfaceGroupProps): ReactElement;
7
7
  /** Collapsed "More filters" divider that reveals extra cards. */
8
8
  export declare function FilterSurfaceMore({ label, defaultExpanded, children, }: FilterSurfaceMoreProps): ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSurface.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,OAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,GAAG,YAAY,CAiDnC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,uBAAuB,GAAG,YAAY,CAaxC;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,eAAe,EACf,QAAQ,GACT,EAAE,sBAAsB,GAAG,YAAY,CA0BvC"}
1
+ {"version":3,"file":"FilterSurface.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAc1C,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,OAAO,EACP,MAAgB,EAChB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,GAAG,YAAY,CA2DnC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,uBAAuB,GAAG,YAAY,CAaxC;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,eAAe,EACf,QAAQ,GACT,EAAE,sBAAsB,GAAG,YAAY,CA0BvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSurface.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.hooks.tsx"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAe1D;AAED,wBAAgB,oBAAoB,CAAC,eAAe,UAAQ,GAAG;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAGA"}
1
+ {"version":3,"file":"FilterSurface.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.hooks.tsx"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAe1D;AAED,wBAAgB,oBAAoB,CAAC,eAAe,UAAQ,GAAG;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAGA"}
@@ -0,0 +1,7 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { FilterSurfaceErrorProps, FilterSurfaceSkeletonProps } from './FilterSurface.types';
3
+ /** Loading placeholder: the page's own skeleton, or generic list cards. */
4
+ export declare function FilterSurfaceSkeleton({ children, }: FilterSurfaceSkeletonProps): ReactElement;
5
+ /** Shown in place of the cards when the filters couldn't load. */
6
+ export declare function FilterSurfaceError({ message, onRetry, }: FilterSurfaceErrorProps): ReactElement;
7
+ //# sourceMappingURL=FilterSurface.parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSurface.parts.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.parts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAS1C,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAC;AAW/B,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,GACT,EAAE,0BAA0B,GAAG,YAAY,CAY3C;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GACR,EAAE,uBAAuB,GAAG,YAAY,CA2BxC"}
@@ -9,8 +9,24 @@ export interface FilterSurfaceProps {
9
9
  footerActions?: ReactNode;
10
10
  /** Escape closes the surface without applying. */
11
11
  onClose: () => void;
12
+ /** `loading` shows skeleton cards and `error` an error panel in place of the cards; the footer shows only when `ready`. */
13
+ status?: FilterSurfaceStatus;
14
+ /** Error panel text. Default explains the filters couldn't load. */
15
+ errorMessage?: string;
16
+ /** Error panel "Try again" action. */
17
+ onRetry?: () => void;
18
+ /** Placeholder shown while `loading`, ideally the page's own card layout (see `FilterCardSkeleton`). */
19
+ skeleton?: ReactNode;
12
20
  children: ReactNode;
13
21
  }
22
+ export type FilterSurfaceStatus = 'ready' | 'loading' | 'error';
23
+ export interface FilterSurfaceSkeletonProps {
24
+ children?: ReactNode;
25
+ }
26
+ export interface FilterSurfaceErrorProps {
27
+ message: string;
28
+ onRetry?: () => void;
29
+ }
14
30
  export interface FilterSurfaceGroupProps {
15
31
  /** Small uppercase heading over a group of cards, e.g. `General`. */
16
32
  title?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSurface.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,qDAAqD;IACrD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oEAAoE;IACpE,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,kDAAkD;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB"}
1
+ {"version":3,"file":"FilterSurface.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,qDAAqD;IACrD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oEAAoE;IACpE,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,kDAAkD;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2HAA2H;IAC3H,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB"}
@@ -0,0 +1,4 @@
1
+ /** Placeholder cards while the filters load; roughly the first rows of a card grid. */
2
+ export declare const SKELETON_CARD_COUNT = 8;
3
+ export declare const SKELETON_GRID_CLASS_NAME = "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4";
4
+ //# sourceMappingURL=FilterSurface.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSurface.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/FilterSurface.utils.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,wBAAwB,yDACmB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { FilterSurface, FilterSurfaceGroup, FilterSurfaceMore, } from './FilterSurface';
2
- export type { FilterSurfaceGroupProps, FilterSurfaceMoreProps, FilterSurfaceProps, } from './FilterSurface';
2
+ export type { FilterSurfaceGroupProps, FilterSurfaceMoreProps, FilterSurfaceProps, FilterSurfaceStatus, } from './FilterSurface';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Filters/FilterSurface/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTruncatedText.d.ts","sourceRoot":"","sources":["../../src/hooks/useTruncatedText.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACjC,MAAM,GAAG,IAAI,CAqCf"}
1
+ {"version":3,"file":"useTruncatedText.d.ts","sourceRoot":"","sources":["../../src/hooks/useTruncatedText.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAoBvC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACjC,MAAM,GAAG,IAAI,CAqCf"}