@payloadcms/ui 4.0.0-internal.183b315 → 4.0.0-internal.293e026

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 (96) hide show
  1. package/dist/css/colors.css +107 -60
  2. package/dist/elements/Chip/index.css +1 -1
  3. package/dist/elements/Combobox/index.css +8 -8
  4. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  5. package/dist/elements/DatePicker/DatePicker.js +4 -2
  6. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  7. package/dist/elements/DatePicker/index.css +5 -0
  8. package/dist/elements/DatePicker/index.js +1 -1
  9. package/dist/elements/DatePicker/index.js.map +1 -1
  10. package/dist/elements/GroupByControl/index.d.ts.map +1 -1
  11. package/dist/elements/GroupByControl/index.js +3 -0
  12. package/dist/elements/GroupByControl/index.js.map +1 -1
  13. package/dist/elements/ListControls/index.d.ts.map +1 -1
  14. package/dist/elements/ListControls/index.js +1 -1
  15. package/dist/elements/ListControls/index.js.map +1 -1
  16. package/dist/elements/ListSelection/index.css +1 -1
  17. package/dist/elements/Pill/index.css +1 -1
  18. package/dist/elements/PillSelector/index.css +1 -1
  19. package/dist/elements/Popup/index.d.ts.map +1 -1
  20. package/dist/elements/Popup/index.js +27 -10
  21. package/dist/elements/Popup/index.js.map +1 -1
  22. package/dist/elements/ReactSelect/index.css +53 -52
  23. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  24. package/dist/elements/ReactSelect/index.js +68 -9
  25. package/dist/elements/ReactSelect/index.js.map +1 -1
  26. package/dist/elements/ReactSelect/types.d.ts +6 -1
  27. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  28. package/dist/elements/ReactSelect/types.js.map +1 -1
  29. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
  30. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  31. package/dist/elements/TimezonePicker/index.css +73 -24
  32. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  33. package/dist/elements/TimezonePicker/index.js +31 -4
  34. package/dist/elements/TimezonePicker/index.js.map +1 -1
  35. package/dist/elements/WhereBuilder/Condition/index.css +1 -1
  36. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  37. package/dist/elements/WhereBuilder/Condition/index.js +3 -0
  38. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  39. package/dist/exports/client/index.d.ts +1 -1
  40. package/dist/exports/client/index.d.ts.map +1 -1
  41. package/dist/exports/client/index.js +1 -1
  42. package/dist/exports/client/index.js.map +3 -3
  43. package/dist/exports/shared/index.js +1 -1
  44. package/dist/exports/shared/index.js.map +2 -2
  45. package/dist/fields/Blocks/index.d.ts.map +1 -1
  46. package/dist/fields/Blocks/index.js +6 -11
  47. package/dist/fields/Blocks/index.js.map +1 -1
  48. package/dist/fields/Group/index.css +1 -1
  49. package/dist/fields/Join/index.js +1 -1
  50. package/dist/fields/Join/index.js.map +1 -1
  51. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +3 -3
  52. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  53. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  54. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  55. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  56. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  57. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  58. package/dist/icons/Dots/index.css +4 -4
  59. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  60. package/dist/providers/ListQuery/index.js +1 -8
  61. package/dist/providers/ListQuery/index.js.map +1 -1
  62. package/dist/providers/Theme/index.d.ts +17 -2
  63. package/dist/providers/Theme/index.d.ts.map +1 -1
  64. package/dist/providers/Theme/index.js +122 -73
  65. package/dist/providers/Theme/index.js.map +1 -1
  66. package/dist/styles.css +1 -1
  67. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -1
  68. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  69. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -1
  70. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  71. package/dist/utilities/copyDataFromLocale.js +1 -1
  72. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  73. package/dist/utilities/renderTable.js +1 -1
  74. package/dist/utilities/renderTable.js.map +1 -1
  75. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  76. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  77. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  78. package/dist/views/List/index.js +2 -2
  79. package/dist/views/List/index.js.map +1 -1
  80. package/dist/views/Verify/index.client.d.ts +4 -0
  81. package/dist/views/Verify/index.client.d.ts.map +1 -1
  82. package/dist/views/Verify/index.client.js +81 -0
  83. package/dist/views/Verify/index.client.js.map +1 -1
  84. package/dist/views/Verify/index.css +38 -0
  85. package/dist/views/Verify/index.d.ts +1 -1
  86. package/dist/views/Verify/index.d.ts.map +1 -1
  87. package/dist/views/Verify/index.js +13 -19
  88. package/dist/views/Verify/index.js.map +1 -1
  89. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
  90. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  91. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  92. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
  93. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  94. package/package.json +4 -4
  95. package/dist/views/Unauthorized/index.scss +0 -14
  96. package/dist/views/Verify/index.scss +0 -18
@@ -35,68 +35,17 @@
35
35
  /* Modal */
36
36
  --color-modalbackdrop: rgba(0, 0, 0, 0.5);
37
37
 
38
- /* Field — override these to theme all form fields at once */
39
- --field-color-bg: var(--color-bg);
40
- --field-color-border: var(--special-border-translucent);
41
- --field-color-text: var(--color-text);
42
- --field-color-placeholder: var(--color-text-tertiary);
43
-
44
- /* Field hover */
45
- --field-color-border-hover: var(--special-border-translucent-strong);
46
-
47
- /* Field focus */
48
- --field-color-border-focus: var(--accessibility-focus-color);
38
+ /* ——————————————————————————————————————————————
39
+ Light Theme (default)
49
40
 
50
- /* Field disabled */
51
- --field-color-bg-disabled: transparent;
52
- --field-color-border-disabled: var(--color-border);
53
- --field-color-text-disabled: var(--color-text-disabled);
54
-
55
- /* Field read-only */
56
- --field-color-bg-readonly: var(--color-bg);
57
- --field-color-border-readonly: var(--color-border);
58
- --field-color-text-readonly: var(--color-text-secondary);
41
+ Naming rules (UI3 parity — matches fpl/tokens):
42
+ - Every semantic color is prefixed with `--color-`.
43
+ - The `default` category is implicit. `--color-bg-secondary` (not `--color-bg-default-secondary`).
44
+ - The `default` variant is implicit. `--color-bg` (not `--color-bg-default`); `--color-bg-brand` (not `--color-bg-brand-default`).
45
+ - `on{X}` is one segment. `--color-text-onbrand`, `--color-icon-ondisabled`.
46
+ - Palette tokens live in the `--ramp-*` namespace.
47
+ ————————————————————————————————————————————— */
59
48
 
60
- /* Field error */
61
- --field-color-border-error: var(--color-border-danger-strong);
62
-
63
- /* Field label */
64
- --field-color-label: var(--color-text);
65
- --field-color-label-required: var(--color-text-danger);
66
-
67
- /* Field description */
68
- --field-color-description: var(--color-text-secondary);
69
-
70
- /* Field error message */
71
- --field-color-error-bg: var(--color-bg-danger);
72
- --field-color-error-text: var(--color-text-ondanger);
73
-
74
- /* Field toggle controls (checkbox, radio) */
75
- --field-color-toggle-border: var(--color-border-strong);
76
- --field-color-toggle-border-hover: var(--color-border-selected-strong);
77
- --field-color-toggle-bg-checked: var(--color-bg-brand);
78
- --field-color-toggle-border-checked: var(--color-border-selected);
79
- --field-color-toggle-icon: var(--color-icon-onbrand);
80
- --field-color-toggle-bg-disabled: var(--color-bg-disabled);
81
- --field-color-toggle-border-disabled: var(--color-border-disabled);
82
-
83
- /* Field upload card */
84
- --field-color-upload-bg: var(--color-bg-secondary);
85
- --field-color-upload-border: var(--color-border);
86
- }
87
-
88
- /* ——————————————————————————————————————————————
89
- Light Theme (default)
90
-
91
- Naming rules (UI3 parity — matches fpl/tokens):
92
- - Every semantic color is prefixed with `--color-`.
93
- - The `default` category is implicit. `--color-bg-secondary` (not `--color-bg-default-secondary`).
94
- - The `default` variant is implicit. `--color-bg` (not `--color-bg-default`); `--color-bg-brand` (not `--color-bg-brand-default`).
95
- - `on{X}` is one segment. `--color-text-onbrand`, `--color-icon-ondisabled`.
96
- - Palette tokens live in the `--ramp-*` namespace.
97
- ————————————————————————————————————————————— */
98
-
99
- :root {
100
49
  /* Background */
101
50
  --color-bg-assistive: var(--ramp-pink-500);
102
51
  --color-bg-assistive-hover: var(--ramp-pink-600);
@@ -295,6 +244,55 @@
295
244
  --multiplayer-yellow: var(--special-multiplayer-yellow);
296
245
  --multiplayer-green: var(--special-multiplayer-green);
297
246
  --multiplayer-grey: var(--special-multiplayer-grey);
247
+
248
+ /* ——————————————————————————————————————————————
249
+ Field Tokens
250
+ ——————————————————————————————————————————————
251
+ Override these to retheme all "light" themed
252
+ form fields at once
253
+ ————————————————————————————————————————————— */
254
+
255
+ --field-color-bg: var(--color-bg);
256
+ --field-color-border: var(--special-border-translucent);
257
+ --field-color-text: var(--color-text);
258
+ --field-color-placeholder: var(--color-text-tertiary);
259
+
260
+ --field-color-border-hover: var(--special-border-translucent-strong);
261
+
262
+ --field-color-border-focus: var(--accessibility-focus-color);
263
+
264
+ --field-color-bg-disabled: transparent;
265
+ --field-color-border-disabled: var(--color-border);
266
+ --field-color-text-disabled: var(--color-text-disabled);
267
+
268
+ --field-color-bg-readonly: var(--color-bg);
269
+ --field-color-border-readonly: var(--color-border);
270
+ --field-color-text-readonly: var(--color-text-secondary);
271
+
272
+ --field-color-border-error: var(--color-border-danger-strong);
273
+
274
+ --field-color-label: var(--color-text);
275
+ --field-color-label-required: var(--color-text-danger);
276
+
277
+ --field-color-description: var(--color-text-secondary);
278
+
279
+ --field-color-error-bg: var(--color-bg-danger);
280
+ --field-color-error-text: var(--color-text-ondanger);
281
+
282
+ --field-color-toggle-border: var(--color-border-strong);
283
+ --field-color-toggle-border-hover: var(--color-border-selected-strong);
284
+ --field-color-toggle-bg-checked: var(--color-bg-brand);
285
+ --field-color-toggle-border-checked: var(--color-border-selected);
286
+ --field-color-toggle-icon: var(--color-icon-onbrand);
287
+ --field-color-toggle-bg-disabled: var(--color-bg-disabled);
288
+ --field-color-toggle-border-disabled: var(--color-border-disabled);
289
+
290
+ --field-color-upload-bg: var(--color-bg-secondary);
291
+ --field-color-upload-border: var(--color-border);
292
+
293
+ /* ——————————————————————————————————————————————
294
+ End Field Tokens
295
+ ————————————————————————————————————————————— */
298
296
  }
299
297
 
300
298
  /* ——————————————————————————————————————————————
@@ -433,5 +431,54 @@
433
431
  --special-bg-transparent-secondary-hover: var(--ramp-white-200);
434
432
  --special-border-translucent: var(--ramp-white-200);
435
433
  --special-border-translucent-strong: var(--ramp-white-300);
434
+
435
+ /* ————————————————————————————————————————————————
436
+ Field Tokens
437
+ ————————————————————————————————————————————————
438
+ Override these to retheme all "dark" themed
439
+ form fields at once
440
+ ——————————————————————————————————————————————— */
441
+
442
+ --field-color-bg: var(--color-bg);
443
+ --field-color-border: var(--special-border-translucent);
444
+ --field-color-text: var(--color-text);
445
+ --field-color-placeholder: var(--color-text-tertiary);
446
+
447
+ --field-color-border-hover: var(--special-border-translucent-strong);
448
+
449
+ --field-color-border-focus: var(--accessibility-focus-color);
450
+
451
+ --field-color-bg-disabled: transparent;
452
+ --field-color-border-disabled: var(--color-border);
453
+ --field-color-text-disabled: var(--color-text-disabled);
454
+
455
+ --field-color-bg-readonly: var(--color-bg);
456
+ --field-color-border-readonly: var(--color-border);
457
+ --field-color-text-readonly: var(--color-text-secondary);
458
+
459
+ --field-color-border-error: var(--color-border-danger-strong);
460
+
461
+ --field-color-label: var(--color-text);
462
+ --field-color-label-required: var(--color-text-danger);
463
+
464
+ --field-color-description: var(--color-text-secondary);
465
+
466
+ --field-color-error-bg: var(--color-bg-danger);
467
+ --field-color-error-text: var(--color-text-ondanger);
468
+
469
+ --field-color-toggle-border: var(--color-border-strong);
470
+ --field-color-toggle-border-hover: var(--color-border-selected-strong);
471
+ --field-color-toggle-bg-checked: var(--color-bg-brand);
472
+ --field-color-toggle-border-checked: var(--color-border-selected);
473
+ --field-color-toggle-icon: var(--color-icon-onbrand);
474
+ --field-color-toggle-bg-disabled: var(--color-bg-disabled);
475
+ --field-color-toggle-border-disabled: var(--color-border-disabled);
476
+
477
+ --field-color-upload-bg: var(--color-bg-secondary);
478
+ --field-color-upload-border: var(--color-border);
479
+
480
+ /* ——————————————————————————————————————————————
481
+ End Field Tokens
482
+ ————————————————————————————————————————————— */
436
483
  }
437
484
  }
@@ -10,7 +10,7 @@
10
10
  font-size: var(--text-body-medium-font-size);
11
11
  font-weight: var(--text-body-medium-font-weight);
12
12
  line-height: var(--text-body-medium-line-height);
13
- color: var(--text-default);
13
+ color: var(--color-text);
14
14
  background-color: var(--color-bg);
15
15
  user-select: none;
16
16
 
@@ -13,9 +13,9 @@
13
13
  .combobox__search-wrapper {
14
14
  display: none;
15
15
  padding-top: var(--popup-padding);
16
- padding-bottom: calc(var(--base) * 0.5);
17
- border-bottom: 1px solid var(--border-default);
18
- margin-bottom: calc(var(--base) * 0.5);
16
+ padding-bottom: var(--spacer-2);
17
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
18
+ margin-bottom: var(--spacer-2);
19
19
  }
20
20
 
21
21
  .combobox__search-wrapper--no-results {
@@ -25,22 +25,22 @@
25
25
 
26
26
  .combobox__search-input {
27
27
  width: 100%;
28
- background: var(--bg-default-secondary);
29
- color: var(--text-default);
28
+ background: var(--color-bg-secondary);
29
+ color: var(--color-text);
30
30
  border: none;
31
31
  border-radius: var(--button-radius);
32
- padding: calc(var(--base) * 0.25) calc(var(--base) * 0.5);
32
+ padding: var(--spacer-1) var(--spacer-2);
33
33
  outline: none;
34
34
  box-shadow: none;
35
35
  }
36
36
 
37
37
  .combobox__search-input::placeholder {
38
- color: var(--text-default-tertiary);
38
+ color: var(--color-text-tertiary);
39
39
  }
40
40
 
41
41
  .combobox__search-input:focus,
42
42
  .combobox__search-input:focus-visible {
43
- background: var(--bg-default-secondary-hover);
43
+ background: var(--color-bg-secondary-hover);
44
44
  outline: none;
45
45
  border: none;
46
46
  box-shadow: none;
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,OAAO,aAAa,CAAA;AAIpB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyH/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,OAAO,aAAa,CAAA;AAIpB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2H/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
@@ -84,12 +84,14 @@ const DatePicker = props => {
84
84
  nextMonthButtonLabel: _jsx(ChevronIcon, {
85
85
  direction: "right"
86
86
  }),
87
+ nextYearButtonLabel: "\u203A",
87
88
  onChange,
88
89
  placeholderText,
89
90
  popperPlacement: "bottom-start",
90
91
  previousMonthButtonLabel: _jsx(ChevronIcon, {
91
92
  direction: "left"
92
93
  }),
94
+ previousYearButtonLabel: "\u2039",
93
95
  selected: value && new Date(value),
94
96
  shouldCloseOnSelect: false,
95
97
  showMonthYearPicker: pickerAppearance === "monthOnly",
@@ -143,8 +145,8 @@ const DatePicker = props => {
143
145
  children: [_jsx(ReactDatePicker, {
144
146
  ...dateTimePickerProps,
145
147
  dropdownMode: "select",
146
- showMonthDropdown: true,
147
- showYearDropdown: true
148
+ showMonthDropdown: pickerAppearance !== "monthOnly",
149
+ showYearDropdown: pickerAppearance !== "monthOnly"
148
150
  }), _jsx(CalendarIcon, {})]
149
151
  })
150
152
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["c","_c","React","ReactDatePickerDefaultImport","registerLocale","setDefaultLocale","ReactDatePicker","default","CalendarIcon","ChevronIcon","useTranslation","getFormattedLocale","baseClass","DatePicker","props","$","id","displayFormat","customDisplayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","t0","onChange","onChangeFromProps","overrides","pickerAppearance","t1","placeholder","placeholderText","readOnly","timeFormat","t2","timeIntervals","t3","value","undefined","i18n","dateFormat","incomingDate","newDate","Date","includes","tzOffset","getTimezoneOffset","setHours","setMilliseconds","dateTimePickerProps","customInputRef","disabled","monthsShown","Math","min","nextMonthButtonLabel","_jsx","direction","previousMonthButtonLabel","shouldCloseOnSelect","showMonthYearPicker","showPopperArrow","showTimeSelect","showTimeSelectOnly","t4","t5","filter","Boolean","classes","join","t6","t7","dateFNS","language","datepickerLocale","t8","console","warn","useEffect","className","children","_jsxs","dropdownMode","showMonthDropdown","showYearDropdown"],"sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"sourcesContent":["'use client'\nimport type { DatePickerProps } from 'react-datepicker'\n\nimport React from 'react'\nimport ReactDatePickerDefaultImport, { registerLocale, setDefaultLocale } from 'react-datepicker'\nconst ReactDatePicker =\n 'default' in ReactDatePickerDefaultImport\n ? ReactDatePickerDefaultImport.default\n : ReactDatePickerDefaultImport\n\nimport type { Props } from './types.js'\n\nimport { CalendarIcon } from '../../icons/Calendar/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormattedLocale } from './getFormattedLocale.js'\nimport './index.css'\n\nconst baseClass = 'date-time-picker'\n\nconst DatePicker: React.FC<Props> = (props) => {\n const {\n id,\n displayFormat: customDisplayFormat,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsToShow = 1,\n onChange: onChangeFromProps,\n overrides,\n pickerAppearance = 'default',\n placeholder: placeholderText,\n readOnly,\n timeFormat = 'h:mm aa',\n timeIntervals = 30,\n value,\n } = props\n\n // Use the user's AdminUI language preference for the locale\n const { i18n } = useTranslation()\n\n let dateFormat = customDisplayFormat\n\n if (!customDisplayFormat) {\n // when no displayFormat is provided, determine format based on the picker appearance\n if (pickerAppearance === 'default') {\n dateFormat = 'MM/dd/yyyy'\n } else if (pickerAppearance === 'dayAndTime') {\n dateFormat = 'MMM d, yyy h:mm a'\n } else if (pickerAppearance === 'timeOnly') {\n dateFormat = 'h:mm a'\n } else if (pickerAppearance === 'dayOnly') {\n dateFormat = 'MMM dd'\n } else if (pickerAppearance === 'monthOnly') {\n dateFormat = 'MMMM'\n }\n }\n\n const onChange: Extract<\n DatePickerProps,\n { selectsMultiple?: never; selectsRange?: never }\n >['onChange'] = (incomingDate) => {\n const newDate = incomingDate\n if (newDate instanceof Date && ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)) {\n const tzOffset = incomingDate.getTimezoneOffset() / 60\n newDate.setHours(12 - tzOffset, 0)\n }\n\n if (newDate instanceof Date && !dateFormat.includes('SSS')) {\n // Unless the dateFormat includes milliseconds, set milliseconds to 0\n // This is to ensure that the timestamp is consistent with the displayFormat\n newDate.setMilliseconds(0)\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newDate)\n }\n }\n\n const dateTimePickerProps: Extract<\n DatePickerProps,\n { selectsMultiple?: never; selectsRange?: never }\n > = {\n customInputRef: 'ref',\n dateFormat,\n disabled: readOnly,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsShown: Math.min(2, monthsToShow),\n nextMonthButtonLabel: <ChevronIcon direction=\"right\" />,\n onChange,\n placeholderText,\n popperPlacement: 'bottom-start',\n previousMonthButtonLabel: <ChevronIcon direction=\"left\" />,\n selected: value && new Date(value),\n shouldCloseOnSelect: false,\n showMonthYearPicker: pickerAppearance === 'monthOnly',\n showPopperArrow: false,\n showTimeSelect: pickerAppearance === 'dayAndTime' || pickerAppearance === 'timeOnly',\n showTimeSelectOnly: pickerAppearance === 'timeOnly',\n timeFormat,\n timeIntervals,\n ...(overrides as Extract<\n DatePickerProps,\n { selectsMultiple?: never; selectsRange?: never } // to satisfy TypeScript. Overrides can enable selectsMultiple or selectsRange but then it's up to the user to ensure they pass in the correct onChange\n >),\n }\n\n const classes = [baseClass, `${baseClass}__appearance--${pickerAppearance}`]\n .filter(Boolean)\n .join(' ')\n\n React.useEffect(() => {\n if (i18n.dateFNS) {\n try {\n const datepickerLocale = getFormattedLocale(i18n.language)\n registerLocale(datepickerLocale, i18n.dateFNS)\n setDefaultLocale(datepickerLocale)\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(`Could not find DatePicker locale for ${i18n.language}`)\n }\n }\n }, [i18n.language, i18n.dateFNS])\n\n return (\n <div className={classes} id={id}>\n <div className={`${baseClass}__input-wrapper`}>\n <ReactDatePicker\n {...dateTimePickerProps}\n dropdownMode=\"select\"\n showMonthDropdown\n showYearDropdown\n />\n <CalendarIcon />\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default DatePicker\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePicker.js","names":["c","_c","React","ReactDatePickerDefaultImport","registerLocale","setDefaultLocale","ReactDatePicker","default","CalendarIcon","ChevronIcon","useTranslation","getFormattedLocale","baseClass","DatePicker","props","$","id","displayFormat","customDisplayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","t0","onChange","onChangeFromProps","overrides","pickerAppearance","t1","placeholder","placeholderText","readOnly","timeFormat","t2","timeIntervals","t3","value","undefined","i18n","dateFormat","incomingDate","newDate","Date","includes","tzOffset","getTimezoneOffset","setHours","setMilliseconds","dateTimePickerProps","customInputRef","disabled","monthsShown","Math","min","nextMonthButtonLabel","_jsx","direction","popperPlacement","previousMonthButtonLabel","selected","shouldCloseOnSelect","showMonthYearPicker","showPopperArrow","showTimeSelect","showTimeSelectOnly","t4","t5","filter","Boolean","classes","join","t6","t7","dateFNS","language","datepickerLocale","t8","console","warn","useEffect","className","children","_jsxs","dropdownMode","showMonthDropdown","showYearDropdown"],"sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"sourcesContent":["'use client'\nimport type { DatePickerProps } from 'react-datepicker'\n\nimport React from 'react'\nimport ReactDatePickerDefaultImport, { registerLocale, setDefaultLocale } from 'react-datepicker'\nconst ReactDatePicker =\n 'default' in ReactDatePickerDefaultImport\n ? ReactDatePickerDefaultImport.default\n : ReactDatePickerDefaultImport\n\nimport type { Props } from './types.js'\n\nimport { CalendarIcon } from '../../icons/Calendar/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormattedLocale } from './getFormattedLocale.js'\nimport './index.css'\n\nconst baseClass = 'date-time-picker'\n\nconst DatePicker: React.FC<Props> = (props) => {\n const {\n id,\n displayFormat: customDisplayFormat,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsToShow = 1,\n onChange: onChangeFromProps,\n overrides,\n pickerAppearance = 'default',\n placeholder: placeholderText,\n readOnly,\n timeFormat = 'h:mm aa',\n timeIntervals = 30,\n value,\n } = props\n\n // Use the user's AdminUI language preference for the locale\n const { i18n } = useTranslation()\n\n let dateFormat = customDisplayFormat\n\n if (!customDisplayFormat) {\n // when no displayFormat is provided, determine format based on the picker appearance\n if (pickerAppearance === 'default') {\n dateFormat = 'MM/dd/yyyy'\n } else if (pickerAppearance === 'dayAndTime') {\n dateFormat = 'MMM d, yyy h:mm a'\n } else if (pickerAppearance === 'timeOnly') {\n dateFormat = 'h:mm a'\n } else if (pickerAppearance === 'dayOnly') {\n dateFormat = 'MMM dd'\n } else if (pickerAppearance === 'monthOnly') {\n dateFormat = 'MMMM'\n }\n }\n\n const onChange: Extract<\n DatePickerProps,\n { selectsMultiple?: never; selectsRange?: never }\n >['onChange'] = (incomingDate) => {\n const newDate = incomingDate\n if (newDate instanceof Date && ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)) {\n const tzOffset = incomingDate.getTimezoneOffset() / 60\n newDate.setHours(12 - tzOffset, 0)\n }\n\n if (newDate instanceof Date && !dateFormat.includes('SSS')) {\n // Unless the dateFormat includes milliseconds, set milliseconds to 0\n // This is to ensure that the timestamp is consistent with the displayFormat\n newDate.setMilliseconds(0)\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newDate)\n }\n }\n\n const dateTimePickerProps: Extract<\n DatePickerProps,\n { selectsMultiple?: never; selectsRange?: never }\n > = {\n customInputRef: 'ref',\n dateFormat,\n disabled: readOnly,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsShown: Math.min(2, monthsToShow),\n nextMonthButtonLabel: <ChevronIcon direction=\"right\" />,\n nextYearButtonLabel: '›',\n onChange,\n placeholderText,\n popperPlacement: 'bottom-start',\n previousMonthButtonLabel: <ChevronIcon direction=\"left\" />,\n previousYearButtonLabel: '‹',\n selected: value && new Date(value),\n shouldCloseOnSelect: false,\n showMonthYearPicker: pickerAppearance === 'monthOnly',\n showPopperArrow: false,\n showTimeSelect: pickerAppearance === 'dayAndTime' || pickerAppearance === 'timeOnly',\n showTimeSelectOnly: pickerAppearance === 'timeOnly',\n timeFormat,\n timeIntervals,\n ...(overrides as Extract<\n DatePickerProps,\n { selectsMultiple?: never; selectsRange?: never } // to satisfy TypeScript. Overrides can enable selectsMultiple or selectsRange but then it's up to the user to ensure they pass in the correct onChange\n >),\n }\n\n const classes = [baseClass, `${baseClass}__appearance--${pickerAppearance}`]\n .filter(Boolean)\n .join(' ')\n\n React.useEffect(() => {\n if (i18n.dateFNS) {\n try {\n const datepickerLocale = getFormattedLocale(i18n.language)\n registerLocale(datepickerLocale, i18n.dateFNS)\n setDefaultLocale(datepickerLocale)\n } catch (_error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not find DatePicker locale for ${i18n.language}`)\n }\n }\n }, [i18n.language, i18n.dateFNS])\n\n return (\n <div className={classes} id={id}>\n <div className={`${baseClass}__input-wrapper`}>\n <ReactDatePicker\n {...dateTimePickerProps}\n dropdownMode=\"select\"\n showMonthDropdown={pickerAppearance !== 'monthOnly'}\n showYearDropdown={pickerAppearance !== 'monthOnly'}\n />\n <CalendarIcon />\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default DatePicker\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAClB,OAAOC,4BAAA,IAAgCC,cAAc,EAAEC,gBAAgB,QAAQ;AAC/E,MAAMC,eAAA,GACJ,aAAaH,4BAAA,GACTA,4BAAA,CAA6BI,OAAO,GACpCJ,4BAAA;AAIN,SAASK,YAAY,QAAQ;AAC7B,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,UAAA,GAA8BC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAClC;IAAAe,EAAA;IAAAC,aAAA,EAAAC,mBAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,YAAA,EAAAC,EAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,SAAA;IAAAC,gBAAA,EAAAC,EAAA;IAAAC,WAAA,EAAAC,eAAA;IAAAC,QAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,aAAA,EAAAC,EAAA;IAAAC;EAAA,IAgBIvB,KAAA;EATF,MAAAS,YAAA,GAAAC,EAAgB,KAAAc,SAAA,OAAhBd,EAAgB;EAGhB,MAAAI,gBAAA,GAAAC,EAA4B,KAAAS,SAAA,GAAT,SAAS,GAA5BT,EAA4B;EAG5B,MAAAI,UAAA,GAAAC,EAAsB,KAAAI,SAAA,GAAT,SAAS,GAAtBJ,EAAsB;EACtB,MAAAC,aAAA,GAAAC,EAAkB,KAAAE,SAAA,QAAlBF,EAAkB;EAKpB;IAAAG;EAAA,IAAiB7B,cAAA;EAEjB,IAAA8B,UAAA,GAAiBtB,mBAAA;EAAA,KAEZA,mBAAA;IAAA,IAECU,gBAAA,KAAqB;MACvBY,UAAA,CAAAA,CAAA,CAAaA,YAAA;IAAb;MAAA,IACSZ,gBAAA,KAAqB;QAC9BY,UAAA,CAAAA,CAAA,CAAaA,mBAAA;MAAb;QAAA,IACSZ,gBAAA,KAAqB;UAC9BY,UAAA,CAAAA,CAAA,CAAaA,QAAA;QAAb;UAAA,IACSZ,gBAAA,KAAqB;YAC9BY,UAAA,CAAAA,CAAA,CAAaA,QAAA;UAAb;YAAA,IACSZ,gBAAA,KAAqB;cAC9BY,UAAA,CAAAA,CAAA,CAAaA,MAAA;YAAb;UAAA;QAAA;MAAA;IAAA;EAAA;EAIJ,MAAAf,QAAA,GAAAgB,YAAA;IAIE,MAAAC,OAAA,GAAgBD,YAAA;IAAA,IACZC,OAAA,YAAAC,IAAmB,IAAQ,CAAC,WAAW,WAAW,aAAAC,QAAA,CAAsBhB,gBAAA;MAC1E,MAAAiB,QAAA,GAAiBJ,YAAA,CAAAK,iBAAA,CAA8B,MAAK;MACpDJ,OAAA,CAAAK,QAAA,CAAiB,KAAKF,QAAA,GAAU;IAAA;IAAA,IAG9BH,OAAA,YAAAC,IAAmB,KAASH,UAAA,CAAAI,QAAA,CAAoB;MAGlDF,OAAA,CAAAM,eAAA,EAAwB;IAAA;IAAA,IAGtB,OAAOtB,iBAAA,KAAsB;MAC/BA,iBAAA,CAAkBgB,OAAA;IAAA;EAAA;EAItB,MAAAO,mBAAA;IAAAC,cAAA,EAIkB;IAAAV,UAAA;IAAAW,QAAA,EAENnB,QAAA;IAAAb,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAA8B,WAAA,EAKGC,IAAA,CAAAC,GAAA,IAAY/B,YAAA;IAAAgC,oBAAA,EACHC,IAAA,CAAA/C,WAAA;MAAAgD,SAAA,EAAuB;IAAA,C;yBACxB;IAAAhC,QAAA;IAAAM,eAAA;IAAA2B,eAAA,EAGJ;IAAAC,wBAAA,EACSH,IAAA,CAAA/C,WAAA;MAAAgD,SAAA,EAAuB;IAAA,C;6BACxB;IAAAG,QAAA,EACfvB,KAAA,QAAAM,IAAA,CAAkBN,KAAA;IAAAwB,mBAAA;IAAAC,mBAAA,EAEPlC,gBAAA,KAAqB;IAAAmC,eAAA;IAAAC,cAAA,EAE1BpC,gBAAA,KAAqB,gBAAgBA,gBAAA,KAAqB;IAAAqC,kBAAA,EACtDrC,gBAAA,KAAqB;IAAAK,UAAA;IAAAE,aAAA;IAAA,GAGrCR;EAAS;EAMa,MAAAuC,EAAA,MAAAtD,SAAA,iBAA6BgB,gBAAA,EAAkB;EAAA,IAAAuC,EAAA;EAAA,IAAApD,CAAA,QAAAmD,EAAA;IAA3DC,EAAA,IAAAvD,SAAA,EAAYsD,EAA+C,EAAAE,MAAA,CAAAC,OACjE;IAAAtD,CAAA,MAAAmD,EAAA;IAAAnD,CAAA,MAAAoD,EAAA;EAAA;IAAAA,EAAA,GAAApD,CAAA;EAAA;EADV,MAAAuD,OAAA,GAAgBH,EACN,CAAAI,IAAA,CACF;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA1D,CAAA,QAAAwB,IAAA,CAAAmC,OAAA,IAAA3D,CAAA,QAAAwB,IAAA,CAAAoC,QAAA;IAEQH,EAAA,GAAAA,CAAA;MAAA,IACVjC,IAAA,CAAAmC,OAAA;QAAA;QAAA;UAEA,MAAAE,gBAAA,GAAyBjE,kBAAA,CAAmB4B,IAAA,CAAAoC,QAAa;UACzDvE,cAAA,CAAewE,gBAAA,EAAkBrC,IAAA,CAAAmC,OAAY;UAC7CrE,gBAAA,CAAiBuE,gBAAA;QAAA,SAAAC,EAAA;UAGjBC,OAAA,CAAAC,IAAA,CAAa,wCAAwCxC,IAAA,CAAAoC,QAAA,EAAe;QAAA;MAAA;IAAA;IAGvEF,EAAA,IAAClC,IAAA,CAAAoC,QAAA,EAAepC,IAAA,CAAAmC,OAAA;IAAa3D,CAAA,MAAAwB,IAAA,CAAAmC,OAAA;IAAA3D,CAAA,MAAAwB,IAAA,CAAAoC,QAAA;IAAA5D,CAAA,MAAAyD,EAAA;IAAAzD,CAAA,MAAA0D,EAAA;EAAA;IAAAD,EAAA,GAAAzD,CAAA;IAAA0D,EAAA,GAAA1D,CAAA;EAAA;EAXhCb,KAAA,CAAA8E,SAAA,CAAgBR,EAWhB,EAAGC,EAA6B;EAAA,OAG9BjB,IAAA,CAAC;IAAAyB,SAAA,EAAeX,OAAA;IAAAtD,EAAA;IAAAkE,QAAA,EACdC,KAAA,CAAC;MAAAF,SAAA,EAAe,GAAArE,SAAA,iBAA6B;MAAAsE,QAAA,GAC3C1B,IAAA,CAAAlD,eAAA;QAAA,GACM2C,mBAAmB;QAAAmC,YAAA,EACV;QAAAC,iBAAA,EACMzD,gBAAA,KAAqB;QAAA0D,gBAAA,EACtB1D,gBAAA,KAAqB;MAAA,C,GAEzC4B,IAAA,CAAAhD,YAAA,IAAC;IAAA,C;;CAIT;AAEA;AACA,eAAeK,UAAA","ignoreList":[]}
@@ -180,6 +180,11 @@
180
180
  }
181
181
  }
182
182
 
183
+ .date-time-picker__appearance--monthOnly .react-datepicker__navigation {
184
+ font-size: 18px;
185
+ font-weight: 300;
186
+ }
187
+
183
188
  .react-datepicker__navigation-icon {
184
189
  display: flex;
185
190
  align-items: center;
@@ -6,7 +6,7 @@ import { ShimmerEffect } from '../ShimmerEffect/index.js';
6
6
  const DatePicker = /*#__PURE__*/lazy(() => import('./DatePicker.js'));
7
7
  export const DatePickerField = props => /*#__PURE__*/_jsx(Suspense, {
8
8
  fallback: /*#__PURE__*/_jsx(ShimmerEffect, {
9
- height: 50
9
+ height: "var(--field-min-height)"
10
10
  }),
11
11
  children: /*#__PURE__*/_jsx(DatePicker, {
12
12
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","lazy","Suspense","ShimmerEffect","DatePicker","DatePickerField","props","_jsx","fallback","height"],"sources":["../../../src/elements/DatePicker/index.tsx"],"sourcesContent":["'use client'\nimport React, { lazy, Suspense } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nconst DatePicker = lazy(() => import('./DatePicker.js'))\n\nexport const DatePickerField: React.FC<Props> = (props) => (\n <Suspense fallback={<ShimmerEffect height={50} />}>\n <DatePicker {...props} />\n </Suspense>\n)\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,IAAI,EAAEC,QAAQ,QAAQ;AAItC,SAASC,aAAa,QAAQ;AAE9B,MAAMC,UAAA,gBAAaH,IAAA,CAAK,MAAM,MAAM,CAAC;AAErC,OAAO,MAAMI,eAAA,GAAoCC,KAAA,iBAC/CC,IAAA,CAACL,QAAA;EAASM,QAAA,eAAUD,IAAA,CAACJ,aAAA;IAAcM,MAAA,EAAQ;;YACzC,aAAAF,IAAA,CAACH,UAAA;IAAY,GAAGE","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","lazy","Suspense","ShimmerEffect","DatePicker","DatePickerField","props","_jsx","fallback","height"],"sources":["../../../src/elements/DatePicker/index.tsx"],"sourcesContent":["'use client'\nimport React, { lazy, Suspense } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nconst DatePicker = lazy(() => import('./DatePicker.js'))\n\nexport const DatePickerField: React.FC<Props> = (props) => (\n <Suspense fallback={<ShimmerEffect height=\"var(--field-min-height)\" />}>\n <DatePicker {...props} />\n </Suspense>\n)\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,IAAI,EAAEC,QAAQ,QAAQ;AAItC,SAASC,aAAa,QAAQ;AAE9B,MAAMC,UAAA,gBAAaH,IAAA,CAAK,MAAM,MAAM,CAAC;AAErC,OAAO,MAAMI,eAAA,GAAoCC,KAAA,iBAC/CC,IAAA,CAACL,QAAA;EAASM,QAAA,eAAUD,IAAA,CAACJ,aAAA;IAAcM,MAAA,EAAO;;YACxC,aAAAF,IAAA,CAACH,UAAA;IAAY,GAAGE","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/GroupByControl/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAS,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG5E,OAAO,KAAuC,MAAM,OAAO,CAAA;AAY3D,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAC/B,CAAA;AAoBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqPxD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/GroupByControl/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAS,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG5E,OAAO,KAAuC,MAAM,OAAO,CAAA;AAY3D,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAC/B,CAAA;AAoBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyPxD,CAAA"}
@@ -75,6 +75,9 @@ export const GroupByControl = ({
75
75
  });
76
76
  })();
77
77
  }, [groupByFieldName, listQuery]);
78
+ if (filteredFields.length === 0) {
79
+ return null;
80
+ }
78
81
  const directionValue = !groupByRaw || typeof groupByRaw !== 'string' ? 'asc' : groupByRaw.startsWith('-') ? 'desc' : 'asc';
79
82
  // Build the trigger button label
80
83
  const triggerLabel = isActive ? t('general:groupByLabel', {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isFieldDisabled","React","useCallback","useMemo","useRef","CheckIcon","ChevronIcon","TrashIcon","XIcon","useAuth","useListQuery","useTranslation","reduceFieldsToOptions","Button","Popup","PopupList","baseClass","supportedFieldTypes","GroupByControl","collectionSlug","fields","i18n","t","permissions","listQuery","closeRef","groupByRaw","query","groupBy","groupByFieldName","replace","fieldPermissions","collections","reducedFields","filteredFields","filter","field","fieldPath","includes","type","groupByField","find","isActive","Boolean","handleFieldSelect","value","refineListData","startsWith","page","handleClear","current","handleDirectionSelect","directionValue","triggerLabel","label","_jsx","className","horizontalAlign","portalClassName","render","close","_jsxs","buttonStyle","icon","onClick","round","size","closeFieldPopup","ButtonGroup","map","i","active","undefined","renderButton","onKeyDown","direction","verticalAlign","disabled","closeSortPopup","RadioGroup","RadioGroupItem","join","ariaProps","extraButtonProps","id","selected","theme"],"sources":["../../../src/elements/GroupByControl/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, Field, SanitizedCollectionConfig } from 'payload'\n\nimport { isFieldDisabled } from 'payload/shared'\nimport React, { useCallback, useMemo, useRef } from 'react'\n\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { TrashIcon } from '../../icons/Trash/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js'\nimport { Button } from '../Button/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nexport type GroupByControlProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly fields: ClientField[]\n}\n\nconst baseClass = 'group-by-control'\n\n/**\n * Supported field types for group by functionality.\n */\nconst supportedFieldTypes: Field['type'][] = [\n 'text',\n 'textarea',\n 'number',\n 'select',\n 'relationship',\n 'date',\n 'checkbox',\n 'radio',\n 'email',\n 'upload',\n]\n\nexport const GroupByControl: React.FC<GroupByControlProps> = ({ collectionSlug, fields }) => {\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const listQuery = useListQuery()\n const closeRef = useRef<(() => void) | null>(null)\n\n const groupByRaw = listQuery.query?.groupBy\n const groupByFieldName = groupByRaw?.replace(/^-/, '')\n\n const fieldPermissions = permissions?.collections?.[collectionSlug]?.fields\n\n const reducedFields = useMemo(\n () =>\n reduceFieldsToOptions({\n fieldPermissions,\n fields,\n i18n,\n }),\n [fields, fieldPermissions, i18n],\n )\n\n const filteredFields = useMemo(\n () =>\n reducedFields.filter(\n (field) =>\n !isFieldDisabled(field.field, 'groupBy') &&\n field.fieldPath !== 'id' &&\n supportedFieldTypes.includes(field.field.type),\n ),\n [reducedFields],\n )\n\n const groupByField = reducedFields.find((field) => field.fieldPath === groupByFieldName)\n const isActive = Boolean(groupByFieldName && groupByField)\n\n const handleFieldSelect = useCallback(\n (value: string) => {\n void (async () => {\n if (typeof listQuery.refineListData !== 'function') {\n return\n }\n await listQuery.refineListData({\n groupBy: listQuery.query?.groupBy?.startsWith('-') ? `-${value}` : value,\n page: 1,\n })\n })()\n },\n [listQuery],\n )\n\n const handleClear = useCallback(() => {\n void (async () => {\n if (typeof listQuery.refineListData === 'function') {\n await listQuery.refineListData({ groupBy: '' })\n }\n closeRef.current?.()\n })()\n }, [listQuery])\n\n const handleDirectionSelect = useCallback(\n (value: 'asc' | 'desc') => {\n void (async () => {\n if (!groupByFieldName || typeof listQuery.refineListData !== 'function') {\n return\n }\n await listQuery.refineListData({\n groupBy: value === 'asc' ? groupByFieldName : `-${groupByFieldName}`,\n page: 1,\n })\n })()\n },\n [groupByFieldName, listQuery],\n )\n\n const directionValue =\n !groupByRaw || typeof groupByRaw !== 'string'\n ? 'asc'\n : groupByRaw.startsWith('-')\n ? 'desc'\n : 'asc'\n\n // Build the trigger button label\n const triggerLabel = isActive\n ? t('general:groupByLabel', { label: groupByField?.label || '' })\n : t('general:groupByLabel', { label: '' })\n\n return (\n <Popup\n className={baseClass}\n horizontalAlign=\"right\"\n portalClassName={`${baseClass}__popup`}\n render={({ close }) => {\n closeRef.current = close\n return (\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__header`}>\n <span className={`${baseClass}__title`}>\n {t('general:groupByLabel', { label: '' })}\n </span>\n <div className={`${baseClass}__header-actions`}>\n {isActive && (\n <Button\n aria-label={t('general:clear')}\n buttonStyle=\"ghost\"\n icon={<TrashIcon />}\n onClick={handleClear}\n round\n size=\"medium\"\n />\n )}\n <Button\n aria-label={t('general:close')}\n buttonStyle=\"ghost\"\n icon={<XIcon size={24} />}\n onClick={close}\n round\n size=\"medium\"\n />\n </div>\n </div>\n <div className={`${baseClass}__body`}>\n <div className={`${baseClass}__row`}>\n <label className={`${baseClass}__label`}>{t('general:field')}</label>\n <div className={`${baseClass}__input`} data-popup-prevent-close>\n <Popup\n className={`${baseClass}__select-popup`}\n horizontalAlign=\"right\"\n render={({ close: closeFieldPopup }) => (\n <PopupList.ButtonGroup>\n {filteredFields.map((field, i) => (\n <PopupList.Button\n active={field.fieldPath === groupByFieldName}\n icon={\n field.fieldPath === groupByFieldName ? (\n <CheckIcon size={16} />\n ) : undefined\n }\n key={i}\n onClick={() => {\n handleFieldSelect(field.fieldPath)\n closeFieldPopup()\n }}\n >\n {field.label}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active, onClick, onKeyDown }) => (\n <button\n className={`${baseClass}__select-trigger`}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className={`${baseClass}__select-value`}>\n {groupByField?.label || t('general:selectValue')}\n </span>\n <ChevronIcon direction={active ? 'up' : 'down'} size={16} />\n </button>\n )}\n size=\"medium\"\n verticalAlign=\"bottom\"\n />\n </div>\n </div>\n <div className={`${baseClass}__row`}>\n <label className={`${baseClass}__label`}>{t('general:sort')}</label>\n <div className={`${baseClass}__input`} data-popup-prevent-close>\n <Popup\n className={`${baseClass}__select-popup`}\n disabled={!groupByFieldName}\n horizontalAlign=\"right\"\n render={({ close: closeSortPopup }) => (\n <PopupList.RadioGroup>\n <PopupList.RadioGroupItem\n active={directionValue === 'desc'}\n onClick={() => {\n handleDirectionSelect('desc')\n closeSortPopup()\n }}\n >\n {t('general:descending')}\n </PopupList.RadioGroupItem>\n <PopupList.RadioGroupItem\n active={directionValue === 'asc'}\n onClick={() => {\n handleDirectionSelect('asc')\n closeSortPopup()\n }}\n >\n {t('general:ascending')}\n </PopupList.RadioGroupItem>\n </PopupList.RadioGroup>\n )}\n renderButton={({ active, onClick, onKeyDown }) => (\n <button\n className={[\n `${baseClass}__select-trigger`,\n !groupByFieldName && `${baseClass}__select-trigger--disabled`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={!groupByFieldName}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className={`${baseClass}__select-value`}>\n {directionValue === 'desc'\n ? t('general:descending')\n : t('general:ascending')}\n </span>\n <ChevronIcon direction={active ? 'up' : 'down'} size={16} />\n </button>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n </div>\n </div>\n </div>\n </div>\n )\n }}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__trigger`}\n extraButtonProps={{ onKeyDown }}\n icon={<ChevronIcon direction={active ? 'up' : 'down'} size={16} />}\n id=\"toggle-group-by\"\n onClick={onClick}\n selected={active || isActive}\n size=\"medium\"\n {...ariaProps}\n >\n {triggerLabel}\n </Button>\n )}\n size=\"large\"\n theme=\"auto\"\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["isFieldDisabled","React","useCallback","useMemo","useRef","CheckIcon","ChevronIcon","TrashIcon","XIcon","useAuth","useListQuery","useTranslation","reduceFieldsToOptions","Button","Popup","PopupList","baseClass","supportedFieldTypes","GroupByControl","collectionSlug","fields","i18n","t","permissions","listQuery","closeRef","groupByRaw","query","groupBy","groupByFieldName","replace","fieldPermissions","collections","reducedFields","filteredFields","filter","field","fieldPath","includes","type","groupByField","find","isActive","Boolean","handleFieldSelect","value","refineListData","startsWith","page","handleClear","current","handleDirectionSelect","length","directionValue","triggerLabel","label","_jsx","className","horizontalAlign","portalClassName","render","close","_jsxs","buttonStyle","icon","onClick","round","size","closeFieldPopup","ButtonGroup","map","i","active","undefined","renderButton","onKeyDown","direction","verticalAlign","disabled","closeSortPopup","RadioGroup","RadioGroupItem","join","ariaProps","extraButtonProps","id","selected","theme"],"sources":["../../../src/elements/GroupByControl/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, Field, SanitizedCollectionConfig } from 'payload'\n\nimport { isFieldDisabled } from 'payload/shared'\nimport React, { useCallback, useMemo, useRef } from 'react'\n\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { TrashIcon } from '../../icons/Trash/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js'\nimport { Button } from '../Button/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nexport type GroupByControlProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly fields: ClientField[]\n}\n\nconst baseClass = 'group-by-control'\n\n/**\n * Supported field types for group by functionality.\n */\nconst supportedFieldTypes: Field['type'][] = [\n 'text',\n 'textarea',\n 'number',\n 'select',\n 'relationship',\n 'date',\n 'checkbox',\n 'radio',\n 'email',\n 'upload',\n]\n\nexport const GroupByControl: React.FC<GroupByControlProps> = ({ collectionSlug, fields }) => {\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const listQuery = useListQuery()\n const closeRef = useRef<(() => void) | null>(null)\n\n const groupByRaw = listQuery.query?.groupBy\n const groupByFieldName = groupByRaw?.replace(/^-/, '')\n\n const fieldPermissions = permissions?.collections?.[collectionSlug]?.fields\n\n const reducedFields = useMemo(\n () =>\n reduceFieldsToOptions({\n fieldPermissions,\n fields,\n i18n,\n }),\n [fields, fieldPermissions, i18n],\n )\n\n const filteredFields = useMemo(\n () =>\n reducedFields.filter(\n (field) =>\n !isFieldDisabled(field.field, 'groupBy') &&\n field.fieldPath !== 'id' &&\n supportedFieldTypes.includes(field.field.type),\n ),\n [reducedFields],\n )\n\n const groupByField = reducedFields.find((field) => field.fieldPath === groupByFieldName)\n const isActive = Boolean(groupByFieldName && groupByField)\n\n const handleFieldSelect = useCallback(\n (value: string) => {\n void (async () => {\n if (typeof listQuery.refineListData !== 'function') {\n return\n }\n await listQuery.refineListData({\n groupBy: listQuery.query?.groupBy?.startsWith('-') ? `-${value}` : value,\n page: 1,\n })\n })()\n },\n [listQuery],\n )\n\n const handleClear = useCallback(() => {\n void (async () => {\n if (typeof listQuery.refineListData === 'function') {\n await listQuery.refineListData({ groupBy: '' })\n }\n closeRef.current?.()\n })()\n }, [listQuery])\n\n const handleDirectionSelect = useCallback(\n (value: 'asc' | 'desc') => {\n void (async () => {\n if (!groupByFieldName || typeof listQuery.refineListData !== 'function') {\n return\n }\n await listQuery.refineListData({\n groupBy: value === 'asc' ? groupByFieldName : `-${groupByFieldName}`,\n page: 1,\n })\n })()\n },\n [groupByFieldName, listQuery],\n )\n\n if (filteredFields.length === 0) {\n return null\n }\n\n const directionValue =\n !groupByRaw || typeof groupByRaw !== 'string'\n ? 'asc'\n : groupByRaw.startsWith('-')\n ? 'desc'\n : 'asc'\n\n // Build the trigger button label\n const triggerLabel = isActive\n ? t('general:groupByLabel', { label: groupByField?.label || '' })\n : t('general:groupByLabel', { label: '' })\n\n return (\n <Popup\n className={baseClass}\n horizontalAlign=\"right\"\n portalClassName={`${baseClass}__popup`}\n render={({ close }) => {\n closeRef.current = close\n return (\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__header`}>\n <span className={`${baseClass}__title`}>\n {t('general:groupByLabel', { label: '' })}\n </span>\n <div className={`${baseClass}__header-actions`}>\n {isActive && (\n <Button\n aria-label={t('general:clear')}\n buttonStyle=\"ghost\"\n icon={<TrashIcon />}\n onClick={handleClear}\n round\n size=\"medium\"\n />\n )}\n <Button\n aria-label={t('general:close')}\n buttonStyle=\"ghost\"\n icon={<XIcon size={24} />}\n onClick={close}\n round\n size=\"medium\"\n />\n </div>\n </div>\n <div className={`${baseClass}__body`}>\n <div className={`${baseClass}__row`}>\n <label className={`${baseClass}__label`}>{t('general:field')}</label>\n <div className={`${baseClass}__input`} data-popup-prevent-close>\n <Popup\n className={`${baseClass}__select-popup`}\n horizontalAlign=\"right\"\n render={({ close: closeFieldPopup }) => (\n <PopupList.ButtonGroup>\n {filteredFields.map((field, i) => (\n <PopupList.Button\n active={field.fieldPath === groupByFieldName}\n icon={\n field.fieldPath === groupByFieldName ? (\n <CheckIcon size={16} />\n ) : undefined\n }\n key={i}\n onClick={() => {\n handleFieldSelect(field.fieldPath)\n closeFieldPopup()\n }}\n >\n {field.label}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active, onClick, onKeyDown }) => (\n <button\n className={`${baseClass}__select-trigger`}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className={`${baseClass}__select-value`}>\n {groupByField?.label || t('general:selectValue')}\n </span>\n <ChevronIcon direction={active ? 'up' : 'down'} size={16} />\n </button>\n )}\n size=\"medium\"\n verticalAlign=\"bottom\"\n />\n </div>\n </div>\n <div className={`${baseClass}__row`}>\n <label className={`${baseClass}__label`}>{t('general:sort')}</label>\n <div className={`${baseClass}__input`} data-popup-prevent-close>\n <Popup\n className={`${baseClass}__select-popup`}\n disabled={!groupByFieldName}\n horizontalAlign=\"right\"\n render={({ close: closeSortPopup }) => (\n <PopupList.RadioGroup>\n <PopupList.RadioGroupItem\n active={directionValue === 'desc'}\n onClick={() => {\n handleDirectionSelect('desc')\n closeSortPopup()\n }}\n >\n {t('general:descending')}\n </PopupList.RadioGroupItem>\n <PopupList.RadioGroupItem\n active={directionValue === 'asc'}\n onClick={() => {\n handleDirectionSelect('asc')\n closeSortPopup()\n }}\n >\n {t('general:ascending')}\n </PopupList.RadioGroupItem>\n </PopupList.RadioGroup>\n )}\n renderButton={({ active, onClick, onKeyDown }) => (\n <button\n className={[\n `${baseClass}__select-trigger`,\n !groupByFieldName && `${baseClass}__select-trigger--disabled`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={!groupByFieldName}\n onClick={onClick}\n onKeyDown={onKeyDown}\n type=\"button\"\n >\n <span className={`${baseClass}__select-value`}>\n {directionValue === 'desc'\n ? t('general:descending')\n : t('general:ascending')}\n </span>\n <ChevronIcon direction={active ? 'up' : 'down'} size={16} />\n </button>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n </div>\n </div>\n </div>\n </div>\n )\n }}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__trigger`}\n extraButtonProps={{ onKeyDown }}\n icon={<ChevronIcon direction={active ? 'up' : 'down'} size={16} />}\n id=\"toggle-group-by\"\n onClick={onClick}\n selected={active || isActive}\n size=\"medium\"\n {...ariaProps}\n >\n {triggerLabel}\n </Button>\n )}\n size=\"large\"\n theme=\"auto\"\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAgD,MAAM,OAAO,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD,OAAO,aAAa,CAAA;AAIpB;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6JpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAgD,MAAM,OAAO,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD,OAAO,aAAa,CAAA;AAIpB;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwJpD,CAAA"}
@@ -138,7 +138,7 @@ export const ListControls = props => {
138
138
  selected: isWhereOpen || hasActiveFilters,
139
139
  size: "medium",
140
140
  children: t("general:filters")
141
- }), collectionConfig.admin.groupBy && _jsx(GroupByControl, {
141
+ }), _jsx(GroupByControl, {
142
142
  collectionSlug: collectionConfig.slug,
143
143
  fields: collectionConfig.fields
144
144
  }), enableColumns && _jsx(ColumnsButton, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","React","Fragment","useEffect","useRef","useState","Popup","PopupList","ChevronIcon","Dots","useListQuery","useTranslation","Button","ColumnsButton","GroupByControl","QueryPresetBar","ListSearchFilter","WhereBuilder","baseClass","ListControls","props","$","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","t0","enableFilters","t1","enableSort","t2","hasCreatePermission","isWhereOpen","isWhereOpenFromProps","listMenuItems","newDocumentURL","onWhereToggle","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","undefined","isControlled","handleSearchChange","hasActiveFilters","query","t","breakpoints","t3","s","smallBreak","searchLabelTranslated","label","split","hasWhereParam","Boolean","where","visibleDrawer","setVisibleDrawer","t4","current","t5","t6","t7","handleWhereToggle","_jsxs","className","children","_jsx","onSearchChange","searchQueryParam","search","enableQueryPresets","buttonStyle","extraButtonProps","icon","direction","size","onClick","selected","admin","groupBy","slug","fields","el","id","to","Array","isArray","length","button","ariaLabel","horizontalAlign","verticalAlign","ButtonGroup","map","_temp","collectionPluralLabel","labels","plural","onClose","item","i"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ColumnsButton } from '../ColumnsButton/index.js'\nimport { GroupByControl } from '../GroupByControl/index.js'\nimport { QueryPresetBar } from '../QueryPresets/QueryPresetBar/index.js'\nimport { ListSearchFilter } from '../Search/ListSearchFilter/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport './index.css'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableFilters = true,\n enableSort = false,\n hasCreatePermission,\n isWhereOpen: isWhereOpenFromProps,\n listMenuItems,\n newDocumentURL,\n onWhereToggle,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const isControlled = typeof onWhereToggle === 'function'\n\n const { handleSearchChange, hasActiveFilters, query } = useListQuery()\n\n const { t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n // Simplified placeholder - just \"Search\" instead of \"Search by X, Y, Z\"\n const searchLabelTranslated = t('general:searchBy', { label: '' }).split(' ')[0]\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n hasActiveFilters ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n const isWhereOpen = isControlled ? Boolean(isWhereOpenFromProps) : visibleDrawer === 'where'\n const handleWhereToggle = isControlled\n ? onWhereToggle\n : () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__search-row`}>\n <div className={`${baseClass}__left`}>\n <ListSearchFilter\n key={collectionSlug}\n label={searchLabelTranslated}\n onSearchChange={handleSearchChange}\n searchQueryParam={query?.search}\n />\n {collectionConfig?.enableQueryPresets && !disableQueryPresets && (\n <QueryPresetBar\n activePreset={activePreset}\n collectionSlug={collectionSlug}\n queryPresetPermissions={queryPresetPermissions}\n />\n )}\n </div>\n <div className={`${baseClass}__spacer`} />\n <div className={`${baseClass}__actions`}>\n {!smallBreak && beforeActions}\n {enableFilters && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-where`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-where`,\n 'aria-expanded': visibleDrawer === 'where',\n }}\n icon={<ChevronIcon direction={isWhereOpen ? 'up' : 'down'} size={16} />}\n id=\"toggle-list-filters\"\n onClick={handleWhereToggle}\n selected={isWhereOpen || hasActiveFilters}\n size=\"medium\"\n >\n {t('general:filters')}\n </Button>\n )}\n {collectionConfig.admin.groupBy && (\n <GroupByControl\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig.fields}\n />\n )}\n {enableColumns && <ColumnsButton collectionSlug={collectionConfig.slug} />}\n {enableSort && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-sort`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-sort`,\n 'aria-expanded': visibleDrawer === 'sort',\n }}\n icon={<ChevronIcon size={16} />}\n id=\"toggle-list-sort\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n size=\"medium\"\n >\n {t('general:sort')}\n </Button>\n )}\n {hasCreatePermission && newDocumentURL && (\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-new`}\n el=\"link\"\n id=\"create-new-doc\"\n size=\"medium\"\n to={newDocumentURL}\n >\n {t('general:createNew')}\n </Button>\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n size=\"medium\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n {!isControlled && isWhereOpen && (\n <div className={`${baseClass}__where`} id={`${baseClass}-where`}>\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n onClose={() => setVisibleDrawer(undefined)}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","React","Fragment","useEffect","useRef","useState","Popup","PopupList","ChevronIcon","Dots","useListQuery","useTranslation","Button","ColumnsButton","GroupByControl","QueryPresetBar","ListSearchFilter","WhereBuilder","baseClass","ListControls","props","$","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","t0","enableFilters","t1","enableSort","t2","hasCreatePermission","isWhereOpen","isWhereOpenFromProps","listMenuItems","newDocumentURL","onWhereToggle","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","undefined","isControlled","handleSearchChange","hasActiveFilters","query","t","breakpoints","t3","s","smallBreak","searchLabelTranslated","label","split","hasWhereParam","Boolean","where","visibleDrawer","setVisibleDrawer","t4","current","t5","t6","t7","handleWhereToggle","_jsxs","className","children","_jsx","onSearchChange","searchQueryParam","search","enableQueryPresets","buttonStyle","extraButtonProps","icon","direction","size","onClick","selected","slug","fields","el","id","to","Array","isArray","length","button","ariaLabel","horizontalAlign","verticalAlign","ButtonGroup","map","_temp","collectionPluralLabel","labels","plural","onClose","item","i"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ColumnsButton } from '../ColumnsButton/index.js'\nimport { GroupByControl } from '../GroupByControl/index.js'\nimport { QueryPresetBar } from '../QueryPresets/QueryPresetBar/index.js'\nimport { ListSearchFilter } from '../Search/ListSearchFilter/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport './index.css'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableFilters = true,\n enableSort = false,\n hasCreatePermission,\n isWhereOpen: isWhereOpenFromProps,\n listMenuItems,\n newDocumentURL,\n onWhereToggle,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const isControlled = typeof onWhereToggle === 'function'\n\n const { handleSearchChange, hasActiveFilters, query } = useListQuery()\n\n const { t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n // Simplified placeholder - just \"Search\" instead of \"Search by X, Y, Z\"\n const searchLabelTranslated = t('general:searchBy', { label: '' }).split(' ')[0]\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n hasActiveFilters ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n const isWhereOpen = isControlled ? Boolean(isWhereOpenFromProps) : visibleDrawer === 'where'\n const handleWhereToggle = isControlled\n ? onWhereToggle\n : () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__search-row`}>\n <div className={`${baseClass}__left`}>\n <ListSearchFilter\n key={collectionSlug}\n label={searchLabelTranslated}\n onSearchChange={handleSearchChange}\n searchQueryParam={query?.search}\n />\n {collectionConfig?.enableQueryPresets && !disableQueryPresets && (\n <QueryPresetBar\n activePreset={activePreset}\n collectionSlug={collectionSlug}\n queryPresetPermissions={queryPresetPermissions}\n />\n )}\n </div>\n <div className={`${baseClass}__spacer`} />\n <div className={`${baseClass}__actions`}>\n {!smallBreak && beforeActions}\n {enableFilters && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-where`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-where`,\n 'aria-expanded': visibleDrawer === 'where',\n }}\n icon={<ChevronIcon direction={isWhereOpen ? 'up' : 'down'} size={16} />}\n id=\"toggle-list-filters\"\n onClick={handleWhereToggle}\n selected={isWhereOpen || hasActiveFilters}\n size=\"medium\"\n >\n {t('general:filters')}\n </Button>\n )}\n <GroupByControl collectionSlug={collectionConfig.slug} fields={collectionConfig.fields} />\n {enableColumns && <ColumnsButton collectionSlug={collectionConfig.slug} />}\n {enableSort && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-sort`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-sort`,\n 'aria-expanded': visibleDrawer === 'sort',\n }}\n icon={<ChevronIcon size={16} />}\n id=\"toggle-list-sort\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n size=\"medium\"\n >\n {t('general:sort')}\n </Button>\n )}\n {hasCreatePermission && newDocumentURL && (\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-new`}\n el=\"link\"\n id=\"create-new-doc\"\n size=\"medium\"\n to={newDocumentURL}\n >\n {t('general:createNew')}\n </Button>\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n size=\"medium\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n {!isControlled && isWhereOpen && (\n <div className={`${baseClass}__where`} id={`${baseClass}-where`}>\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n onClose={() => setVisibleDrawer(undefined)}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
  .list-selection {
3
3
  display: flex;
4
4
  margin-left: auto;
5
- color: var(--theme-elevation-500);
5
+ color: var(--color-text-secondary);
6
6
  gap: var(--spacer-1);
7
7
  align-items: center;
8
8
  }
@@ -13,7 +13,7 @@
13
13
  line-height: var(--text-body-medium-line-height);
14
14
  letter-spacing: var(--text-body-medium-letter-spacing);
15
15
  display: inline-flex;
16
- background: var(--ramp-black-200);
16
+ background: var(--color-bg-secondary);
17
17
  color: var(--color-text);
18
18
  border-radius: var(--button-radius);
19
19
  cursor: inherit;
@@ -2,7 +2,7 @@
2
2
  .pill-selector {
3
3
  display: flex;
4
4
  flex-wrap: wrap;
5
- background: var(--theme-elevation-50);
5
+ background: var(--color-bg-secondary);
6
6
  padding: var(--spacer-4);
7
7
  gap: var(--spacer-2-5);
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Popup/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD,OAAO,KAAmD,MAAM,OAAO,CAAA;AAIvE,OAAO,aAAa,CAAA;AAuBpB,MAAM,MAAM,UAAU,GAAG;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC/B,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IACzD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QACrB,MAAM,EAAE,OAAO,CAAA;QACf,eAAe,EAAE,OAAO,CAAA;QACxB,eAAe,EAAE,IAAI,CAAA;QACrB,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAA;QAChC,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAAA;KACtC,KAAK,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IACjC;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CACjC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAoZtC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Popup/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD,OAAO,KAAmD,MAAM,OAAO,CAAA;AAKvE,OAAO,aAAa,CAAA;AAuBpB,MAAM,MAAM,UAAU,GAAG;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC/B,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IACzD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QACrB,MAAM,EAAE,OAAO,CAAA;QACf,eAAe,EAAE,OAAO,CAAA;QACxB,eAAe,EAAE,IAAI,CAAA;QACrB,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAA;QAChC,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAAA;KACtC,KAAK,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IACjC;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CACjC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAsatC,CAAA"}