@indico-data/design-system 2.37.0 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/lib/index.css +40 -408
  2. package/lib/index.d.ts +120 -82
  3. package/lib/index.esm.css +40 -408
  4. package/lib/index.esm.js +15630 -16558
  5. package/lib/index.esm.js.map +1 -1
  6. package/lib/index.js +14164 -15091
  7. package/lib/index.js.map +1 -1
  8. package/lib/src/components/forms/date/datePicker/DatePicker.d.ts +3 -0
  9. package/lib/src/components/forms/date/datePicker/DatePicker.stories.d.ts +9 -0
  10. package/lib/src/components/forms/date/datePicker/contants.d.ts +21 -0
  11. package/lib/src/components/forms/date/datePicker/types.d.ts +48 -0
  12. package/lib/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.d.ts +22 -0
  13. package/lib/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.stories.d.ts +6 -0
  14. package/lib/src/components/forms/date/iconTriggerDatePicker/index.d.ts +1 -0
  15. package/lib/src/components/forms/date/inputDatePicker/SingleInputDatePicker.d.ts +23 -0
  16. package/lib/src/components/forms/date/inputDatePicker/SingleInputDatePicker.stories.d.ts +6 -0
  17. package/lib/src/components/forms/date/inputDatePicker/index.d.ts +1 -0
  18. package/lib/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.d.ts +23 -0
  19. package/lib/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.stories.d.ts +6 -0
  20. package/lib/src/components/forms/date/inputDateRangePicker/index.d.ts +1 -0
  21. package/lib/src/components/forms/input/Input.d.ts +1 -0
  22. package/lib/src/components/index.d.ts +3 -0
  23. package/lib/src/index.d.ts +4 -1
  24. package/lib/src/legacy/components/index.d.ts +1 -1
  25. package/lib/src/legacy/components/inputs/index.d.ts +0 -2
  26. package/package.json +2 -2
  27. package/src/components/forms/date/datePicker/DatePicker.mdx +41 -0
  28. package/src/components/forms/date/datePicker/DatePicker.stories.tsx +307 -0
  29. package/src/components/forms/date/datePicker/DatePicker.tsx +68 -0
  30. package/src/components/forms/date/datePicker/contants.ts +22 -0
  31. package/src/components/forms/date/datePicker/styles/DatePicker.scss +85 -0
  32. package/src/components/forms/date/datePicker/types.ts +59 -0
  33. package/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.mdx +17 -0
  34. package/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.stories.tsx +201 -0
  35. package/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.tsx +89 -0
  36. package/src/components/forms/date/iconTriggerDatePicker/index.ts +1 -0
  37. package/src/components/forms/date/inputDatePicker/SingleInputDatePicker.mdx +18 -0
  38. package/src/components/forms/date/inputDatePicker/SingleInputDatePicker.stories.tsx +208 -0
  39. package/src/components/forms/date/inputDatePicker/SingleInputDatePicker.tsx +117 -0
  40. package/src/components/forms/date/inputDatePicker/index.ts +1 -0
  41. package/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.mdx +18 -0
  42. package/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.stories.tsx +208 -0
  43. package/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.tsx +117 -0
  44. package/src/components/forms/date/inputDateRangePicker/index.ts +1 -0
  45. package/src/components/forms/input/Input.tsx +3 -0
  46. package/src/components/index.ts +3 -0
  47. package/src/index.ts +3 -2
  48. package/src/legacy/components/index.ts +0 -2
  49. package/src/legacy/components/inputs/index.ts +0 -2
  50. package/src/styles/index.scss +2 -1
  51. package/lib/src/legacy/components/inputs/DatePicker/DatePicker.d.ts +0 -15
  52. package/lib/src/legacy/components/inputs/DatePicker/DatePicker.stories.d.ts +0 -6
  53. package/lib/src/legacy/components/inputs/DatePicker/DatePicker.styles.d.ts +0 -1
  54. package/lib/src/legacy/components/inputs/DatePicker/index.d.ts +0 -1
  55. package/lib/src/legacy/components/inputs/NoInputDatePicker/NoInputDatePicker.d.ts +0 -21
  56. package/lib/src/legacy/components/inputs/NoInputDatePicker/NoInputDatePicker.stories.d.ts +0 -7
  57. package/lib/src/legacy/components/inputs/NoInputDatePicker/index.d.ts +0 -1
  58. package/src/legacy/components/inputs/DatePicker/DatePicker.stories.tsx +0 -30
  59. package/src/legacy/components/inputs/DatePicker/DatePicker.styles.ts +0 -437
  60. package/src/legacy/components/inputs/DatePicker/DatePicker.tsx +0 -165
  61. package/src/legacy/components/inputs/DatePicker/index.ts +0 -1
  62. package/src/legacy/components/inputs/NoInputDatePicker/NoInputDatePicker.scss +0 -441
  63. package/src/legacy/components/inputs/NoInputDatePicker/NoInputDatePicker.stories.tsx +0 -52
  64. package/src/legacy/components/inputs/NoInputDatePicker/NoInputDatePicker.tsx +0 -245
  65. package/src/legacy/components/inputs/NoInputDatePicker/index.ts +0 -1
  66. /package/src/{legacy/components/inputs/NoInputDatePicker/__tests__/NoInputDatePicker.test.tsx → components/forms/date/iconTriggerDatePicker/__tests__/IconTriggerDatePicker.test.tsx} +0 -0
package/src/index.ts CHANGED
@@ -27,7 +27,6 @@ export {
27
27
  CirclePulse,
28
28
  CircleSpinner,
29
29
  ConfirmModal,
30
- DatePicker,
31
30
  EditableInput,
32
31
  IconButton,
33
32
  ListTable,
@@ -35,7 +34,6 @@ export {
35
34
  LoadingList,
36
35
  ModalBase,
37
36
  MultiCombobox,
38
- NoInputDatePicker,
39
37
  NumberInput,
40
38
  Pagination,
41
39
  PercentageRing,
@@ -71,6 +69,9 @@ export { Toggle as ToggleInput } from './components/forms/toggle';
71
69
  export { Textarea } from './components/forms/textarea';
72
70
  export { PasswordInput } from './components/forms/passwordInput';
73
71
  export { Select as SelectInput } from './components/forms/select';
72
+ export { DatePicker } from './components/forms/date/datePicker/DatePicker';
73
+ export { IconTriggerDatePicker } from './components/forms/date/iconTriggerDatePicker';
74
+ export { SingleInputDatePicker } from './components/forms/date/inputDatePicker';
74
75
  export { Form } from './components/forms/form';
75
76
  export { Skeleton } from './components/skeleton';
76
77
  export { Card } from './components/card';
@@ -12,8 +12,6 @@ export {
12
12
  RadioGroup,
13
13
  AbstractRadio,
14
14
  AbstractRadioGroup,
15
- DatePicker,
16
- NoInputDatePicker,
17
15
  } from './inputs';
18
16
  export {
19
17
  BarSpinner,
@@ -4,5 +4,3 @@ export { SearchInput } from './SearchInput';
4
4
  export { TextInput } from './TextInput';
5
5
  export { Radio, RadioGroup } from './RadioButtons';
6
6
  export { AbstractRadio, AbstractRadioGroup } from './RadioGroup';
7
- export { DatePicker } from './DatePicker';
8
- export { NoInputDatePicker } from './NoInputDatePicker';
@@ -19,7 +19,8 @@
19
19
  @import '../components/card/styles/Card.scss';
20
20
  @import '../components/menu/styles/Menu.scss';
21
21
  @import '../components/floatUI/styles/FloatUI.scss';
22
- @import '../legacy/components/inputs/NoInputDatePicker/NoInputDatePicker.scss';
22
+ @import '../components/forms/date/datePicker/styles/DatePicker.scss';
23
+
23
24
  @import '../components/pill/styles/Pill.scss';
24
25
  @import 'sheets'; // Port to an sheets component when we build it
25
26
  @import 'typography';
@@ -1,15 +0,0 @@
1
- import { PermafrostComponent } from '@/types';
2
- type Props = PermafrostComponent & {
3
- ariaLabel?: string;
4
- disableBeforeDate?: Date;
5
- disableAfterDate?: Date;
6
- disabled?: boolean;
7
- id: string;
8
- label?: string;
9
- onChange: (value: Date | undefined) => void;
10
- placeholder?: string;
11
- selected?: Date | undefined;
12
- value: Date | undefined;
13
- };
14
- export declare const DatePicker: (props: Props) => import("react/jsx-runtime").JSX.Element;
15
- export {};
@@ -1,6 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { DatePicker } from '@/legacy/components/inputs/DatePicker';
3
- declare const meta: Meta<typeof DatePicker>;
4
- export default meta;
5
- type Story = StoryObj<typeof DatePicker>;
6
- export declare const Normal: Story;
@@ -1 +0,0 @@
1
- export declare const StyledDatePicker: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -1 +0,0 @@
1
- export { DatePicker } from './DatePicker';
@@ -1,21 +0,0 @@
1
- import { DateRange } from 'react-day-picker';
2
- import { IconName, IconSizes, PermafrostComponent } from '@/types';
3
- type Props = PermafrostComponent & {
4
- ariaLabel?: string;
5
- disableBeforeDate?: Date;
6
- disableAfterDate?: Date;
7
- disabled?: boolean;
8
- id: string;
9
- label?: string;
10
- onChange: (value: Date | DateRange | undefined) => void;
11
- selected?: Date | undefined;
12
- selectedRange?: DateRange | undefined;
13
- value: Date | undefined;
14
- triggerIcon: IconName;
15
- triggerIconSize: IconSizes;
16
- isRangePicker?: boolean;
17
- isOpen?: boolean;
18
- clearOnClose?: boolean;
19
- };
20
- export declare const NoInputDatePicker: (props: Props) => import("react/jsx-runtime").JSX.Element;
21
- export {};
@@ -1,7 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { NoInputDatePicker } from '@/legacy/components/inputs/NoInputDatePicker';
3
- declare const meta: Meta<typeof NoInputDatePicker>;
4
- export default meta;
5
- type Story = StoryObj<typeof NoInputDatePicker>;
6
- export declare const Single: Story;
7
- export declare const Range: Story;
@@ -1 +0,0 @@
1
- export { NoInputDatePicker } from './NoInputDatePicker';
@@ -1,30 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import React from 'react';
3
-
4
- import { DatePicker } from '@/legacy/components/inputs/DatePicker';
5
-
6
- const meta: Meta<typeof DatePicker> = {
7
- component: DatePicker,
8
- tags: ['autodocs'],
9
- title: 'legacy/Inputs/DatePicker',
10
- decorators: [(Story) => <Story />],
11
- };
12
-
13
- export default meta;
14
-
15
- type Story = StoryObj<typeof DatePicker>;
16
-
17
- const today = new Date();
18
-
19
- export const Normal: Story = {
20
- args: {
21
- id: 'date-picker',
22
- label: 'Pick a date:',
23
- placeholder: 'This Week',
24
- value: today,
25
- onChange: (date: Date | undefined) => {
26
- // eslint-disable-next-line no-console
27
- console.log(date);
28
- },
29
- },
30
- };
@@ -1,437 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- import { COLORS } from '@/index';
4
-
5
- export const StyledDatePicker = styled.div`
6
- /************************************
7
- * Default react-day-picker styling - this needed to be added because we were unable to import styling as specified by the docs (most likely because we are not using webpack)
8
- *************************************/
9
-
10
- .rdp {
11
- --rdp-cell-size: 40px;
12
- --rdp-accent-color: #0000ff;
13
- --rdp-background-color: #e7edff;
14
- --rdp-accent-color-dark: #3003e1;
15
- --rdp-background-color-dark: #180270;
16
- --rdp-outline: 2px solid var(--rdp-accent-color); /* Outline border for focused elements */
17
- --rdp-outline-selected: 3px solid var(--rdp-accent-color); /* Outline border for focused _and_ selected elements */
18
-
19
- margin: 1em;
20
- }
21
-
22
- /* Hide elements for devices that are not screen readers */
23
- .rdp-vhidden {
24
- box-sizing: border-box;
25
- padding: 0;
26
- margin: 0;
27
- background: transparent;
28
- border: 0;
29
- -moz-appearance: none;
30
- -webkit-appearance: none;
31
- appearance: none;
32
- position: absolute !important;
33
- top: 0;
34
- width: 1px !important;
35
- height: 1px !important;
36
- padding: 0 !important;
37
- overflow: hidden !important;
38
- clip: rect(1px, 1px, 1px, 1px) !important;
39
- border: 0 !important;
40
- }
41
-
42
- /* Buttons */
43
- .rdp-button_reset {
44
- appearance: none;
45
- position: relative;
46
- margin: 0;
47
- padding: 0;
48
- cursor: default;
49
- color: inherit;
50
- background: none;
51
- font: inherit;
52
-
53
- -moz-appearance: none;
54
- -webkit-appearance: none;
55
- }
56
-
57
- .rdp-button_reset:focus-visible {
58
- /* Make sure to reset outline only when :focus-visible is supported */
59
- outline: none;
60
- }
61
-
62
- .rdp-button {
63
- border: 2px solid transparent;
64
- }
65
-
66
- .rdp-button[disabled]:not(.rdp-day_selected) {
67
- opacity: 0.25;
68
- }
69
-
70
- .rdp-button:not([disabled]) {
71
- cursor: pointer;
72
- }
73
-
74
- .rdp-button:focus-visible:not([disabled]) {
75
- color: inherit;
76
- background-color: var(--rdp-background-color);
77
- border: var(--rdp-outline);
78
- }
79
-
80
- .rdp-button:hover:not([disabled]):not(.rdp-day_selected) {
81
- background-color: var(--rdp-background-color);
82
- }
83
-
84
- .rdp-months {
85
- display: flex;
86
- }
87
-
88
- .rdp-month {
89
- margin: 0 1em;
90
- }
91
-
92
- .rdp-month:first-child {
93
- margin-left: 0;
94
- }
95
-
96
- .rdp-month:last-child {
97
- margin-right: 0;
98
- }
99
-
100
- .rdp-table {
101
- margin: 0;
102
- max-width: calc(var(--rdp-cell-size) * 7);
103
- border-collapse: collapse;
104
- }
105
-
106
- .rdp-with_weeknumber .rdp-table {
107
- max-width: calc(var(--rdp-cell-size) * 8);
108
- border-collapse: collapse;
109
- }
110
-
111
- .rdp-caption {
112
- display: flex;
113
- align-items: center;
114
- justify-content: space-between;
115
- padding: 0;
116
- text-align: left;
117
- }
118
-
119
- .rdp-multiple_months .rdp-caption {
120
- position: relative;
121
- display: block;
122
- text-align: center;
123
- }
124
-
125
- .rdp-caption_dropdowns {
126
- position: relative;
127
- display: inline-flex;
128
- }
129
-
130
- .rdp-caption_label {
131
- position: relative;
132
- z-index: 1;
133
- display: inline-flex;
134
- align-items: center;
135
- margin: 0;
136
- padding: 0 0.25em;
137
- white-space: nowrap;
138
- color: currentColor;
139
- border: 0;
140
- border: 2px solid transparent;
141
- font-family: inherit;
142
- font-size: 140%;
143
- font-weight: bold;
144
- }
145
-
146
- .rdp-nav {
147
- white-space: nowrap;
148
- }
149
-
150
- .rdp-multiple_months .rdp-caption_start .rdp-nav {
151
- position: absolute;
152
- top: 50%;
153
- left: 0;
154
- transform: translateY(-50%);
155
- }
156
-
157
- .rdp-multiple_months .rdp-caption_end .rdp-nav {
158
- position: absolute;
159
- top: 50%;
160
- right: 0;
161
- transform: translateY(-50%);
162
- }
163
-
164
- .rdp-nav_button {
165
- display: inline-flex;
166
- align-items: center;
167
- justify-content: center;
168
- width: var(--rdp-cell-size);
169
- height: var(--rdp-cell-size);
170
- padding: 0.25em;
171
- border-radius: 100%;
172
- }
173
-
174
- /* ---------- */
175
- /* Dropdowns */
176
- /* ---------- */
177
-
178
- .rdp-dropdown_year,
179
- .rdp-dropdown_month {
180
- position: relative;
181
- display: inline-flex;
182
- align-items: center;
183
- }
184
-
185
- .rdp-dropdown {
186
- appearance: none;
187
- position: absolute;
188
- z-index: 2;
189
- top: 0;
190
- bottom: 0;
191
- left: 0;
192
- width: 100%;
193
- margin: 0;
194
- padding: 0;
195
- cursor: inherit;
196
- opacity: 0;
197
- border: none;
198
- background-color: transparent;
199
- font-family: inherit;
200
- font-size: inherit;
201
- line-height: inherit;
202
- }
203
-
204
- .rdp-dropdown[disabled] {
205
- opacity: unset;
206
- color: unset;
207
- }
208
-
209
- .rdp-dropdown:focus-visible:not([disabled]) + .rdp-caption_label {
210
- background-color: var(--rdp-background-color);
211
- border: var(--rdp-outline);
212
- border-radius: 6px;
213
- }
214
-
215
- .rdp-dropdown_icon {
216
- margin: 0 0 0 5px;
217
- }
218
-
219
- .rdp-head {
220
- border: 0;
221
- }
222
-
223
- .rdp-head_row,
224
- .rdp-row {
225
- height: 100%;
226
- }
227
-
228
- .rdp-head_cell {
229
- vertical-align: middle;
230
- font-size: 0.75em;
231
- font-weight: 700;
232
- text-align: center;
233
- height: 100%;
234
- height: var(--rdp-cell-size);
235
- padding: 0;
236
- }
237
-
238
- .rdp-tbody {
239
- border: 0;
240
- }
241
-
242
- .rdp-tfoot {
243
- margin: 0.5em;
244
- }
245
-
246
- .rdp-cell {
247
- width: var(--rdp-cell-size);
248
- height: 100%;
249
- height: var(--rdp-cell-size);
250
- padding: 0;
251
- text-align: center;
252
- }
253
-
254
- .rdp-weeknumber {
255
- font-size: 0.75em;
256
- }
257
-
258
- .rdp-weeknumber,
259
- .rdp-day {
260
- display: flex;
261
- overflow: hidden;
262
- align-items: center;
263
- justify-content: center;
264
- box-sizing: border-box;
265
- width: var(--rdp-cell-size);
266
- max-width: var(--rdp-cell-size);
267
- height: var(--rdp-cell-size);
268
- margin: 0;
269
- border: 2px solid transparent;
270
- border-radius: 100%;
271
- }
272
-
273
- .rdp-day_today:not(.rdp-day_outside) {
274
- font-weight: bold;
275
- }
276
-
277
- .rdp-day_selected,
278
- .rdp-day_selected:focus-visible,
279
- .rdp-day_selected:hover {
280
- color: white;
281
- opacity: 1;
282
- background-color: var(--rdp-accent-color);
283
- }
284
-
285
- .rdp-day_outside {
286
- opacity: 0.5;
287
- }
288
-
289
- .rdp-day_selected:focus-visible {
290
- /* Since the background is the same use again the outline */
291
- outline: var(--rdp-outline);
292
- outline-offset: 2px;
293
- z-index: 1;
294
- }
295
-
296
- .rdp:not([dir='rtl']) .rdp-day_range_start:not(.rdp-day_range_end) {
297
- border-top-right-radius: 0;
298
- border-bottom-right-radius: 0;
299
- }
300
-
301
- .rdp:not([dir='rtl']) .rdp-day_range_end:not(.rdp-day_range_start) {
302
- border-top-left-radius: 0;
303
- border-bottom-left-radius: 0;
304
- }
305
-
306
- .rdp[dir='rtl'] .rdp-day_range_start:not(.rdp-day_range_end) {
307
- border-top-left-radius: 0;
308
- border-bottom-left-radius: 0;
309
- }
310
-
311
- .rdp[dir='rtl'] .rdp-day_range_end:not(.rdp-day_range_start) {
312
- border-top-right-radius: 0;
313
- border-bottom-right-radius: 0;
314
- }
315
-
316
- .rdp-day_range_end.rdp-day_range_start {
317
- border-radius: 100%;
318
- }
319
-
320
- .rdp-day_range_middle {
321
- border-radius: 0;
322
- }
323
-
324
- /*# sourceMappingURL=style.css.map */
325
-
326
- /******************************
327
- * Indico Custom Styling
328
- *******************************/
329
-
330
- .datepicker--inputParent {
331
- position: relative;
332
- width: 150px;
333
- }
334
-
335
- .datepicker-label {
336
- padding: 10px 10px 10px 0;
337
- color: ${COLORS.white};
338
- font-size: 14px;
339
- }
340
-
341
- .datepicker--input {
342
- width: 150px;
343
- border: solid ${COLORS.baliHai} 1px;
344
- border-radius: 4px;
345
- text-align: center;
346
- color: ${COLORS.white};
347
-
348
- &::placeholder {
349
- opacity: 0.5;
350
- }
351
- }
352
-
353
- .remove-btn {
354
- position: absolute;
355
- top: 0;
356
- right: 0;
357
- }
358
-
359
- .remove-btn svg {
360
- height: 8px;
361
- margin-right: 10px;
362
- width: 8px;
363
- }
364
-
365
- .remove-btn,
366
- .remove-btn:hover,
367
- .remove-btn:focus {
368
- color: ${COLORS.defaultFontColor};
369
- background: transparent;
370
- box-shadow: none;
371
- font-size: 16px;
372
- padding: 0 !important;
373
- }
374
-
375
- .DayPickerInput-Overlay {
376
- background: ${COLORS.oxfordBlue};
377
- border-radius: 4px;
378
- z-index: 999;
379
- .rdp {
380
- background: ${COLORS.oxfordBlue};
381
- z-index: 999;
382
- }
383
- }
384
-
385
- .rdp-caption_label {
386
- font-weight: 500;
387
- font-size: 1.15em;
388
- }
389
-
390
- .rdp-button,
391
- .rdp-day {
392
- box-shadow: none;
393
- }
394
-
395
- .rdp-head_cell,
396
- .rdp-cell {
397
- border: none;
398
- }
399
-
400
- .rdp-head_cell {
401
- color: ${COLORS.mediumGray};
402
- }
403
-
404
- .rdp-day_today {
405
- color: ${COLORS.ebony} !important;
406
- }
407
-
408
- //on hover font color
409
- .rdp:not(.rdp-day_disabled)
410
- .rdp-day:not(.rdp-day_disabled):not(.rdp-day_selected):not(.rdp-day_outside):hover {
411
- color: ${COLORS.mirage};
412
- background-color: ${COLORS.white};
413
- }
414
-
415
- .rdp-day_today:not(.rdp-day_disabled):not(.rdp-day_selected):not(.rdp-day_outside) {
416
- color: ${COLORS.red} !important;
417
- }
418
-
419
- .rdp-day_selected:not(.rdp-day_disabled):not(.rdp-day_outside) {
420
- position: relative;
421
- background-color: ${COLORS.curiousBlue};
422
- color: ${COLORS.white};
423
- }
424
-
425
- .rdp-day_disabled:not(.rdp-day_today) {
426
- opacity: 0.3;
427
- }
428
-
429
- .rdp-day_disabled {
430
- background-color: inherit !important;
431
- cursor: auto !important;
432
- }
433
-
434
- .rdp-day_disabled:hover {
435
- color: inherit !important;
436
- }
437
- `;