@broxus/react-uikit 0.16.1 → 0.17.1

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.
@@ -1,6 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { type ButtonProps } from '../../components/Button';
3
+ import { type PickerLocale } from '../../components/DatePicker';
3
4
  import { type ColorMode } from '../../components/Inverse';
5
+ import { type TimePickerLocale } from '../../components/TimePicker';
4
6
  import { type BreakpointsConfig, type Direction, type TooltipOptions } from '../../types';
5
7
  type PropsWithMouseHandler = {
6
8
  onClick: React.HTMLAttributes<HTMLElement>['onClick'];
@@ -31,6 +33,7 @@ export type ConfigContextConsumedProps = {
31
33
  };
32
34
  datePicker?: {
33
35
  direction?: Direction;
36
+ locale?: PickerLocale;
34
37
  prefixCls?: string;
35
38
  clearIcon?: React.ReactNode | (() => React.ReactElement);
36
39
  nextIcon?: React.ReactNode;
@@ -71,6 +74,7 @@ export type ConfigContextConsumedProps = {
71
74
  };
72
75
  timePicker?: {
73
76
  direction?: Direction;
77
+ locale?: TimePickerLocale;
74
78
  prefixCls?: string;
75
79
  clearIcon?: React.ReactNode | (() => React.ReactElement);
76
80
  suffixIcon?: React.ReactNode;
@@ -2,17 +2,18 @@ import { type BaseSelectRef, OptGroup, Option, type SelectProps as RcSelectProps
2
2
  import { type OptionProps } from 'rc-select/lib/Option';
3
3
  import { type BaseOptionType, type DefaultOptionType } from 'rc-select/lib/Select';
4
4
  import * as React from 'react';
5
- import { type ControlProps } from '../../../components/Control/types';
5
+ import { type ControlProps, type SelectPlacement } from '../../../components/Control/types';
6
6
  import { type SizeType } from '../../../types';
7
7
  import './index.scss';
8
8
  import '../index.scss';
9
9
  export type { BaseSelectRef, OptionProps };
10
- export interface InternalSelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<RcSelectProps<ValueType, OptionType>, 'allowClear' | 'mode'> {
10
+ export interface InternalSelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<RcSelectProps<ValueType, OptionType>, 'allowClear' | 'mode' | 'placement'> {
11
11
  mode?: 'multiple' | 'tags' | 'SECRET_COMBOBOX_MODE_DO_NOT_USE';
12
12
  size?: SizeType;
13
13
  }
14
14
  export interface SelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType> extends Omit<ControlProps<ValueType>, 'value' | 'defaultValue'>, Omit<InternalSelectProps<ValueType, OptionType>, 'inputIcon' | 'mode' | 'getInputElement' | 'backfill'> {
15
15
  mode?: 'multiple' | 'tags';
16
+ placement?: SelectPlacement;
16
17
  showArrow?: boolean;
17
18
  }
18
19
  export declare const Select: (<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(props: SelectProps<ValueType, OptionType> & {
@@ -15,3 +15,4 @@ export interface ControlProps<T> {
15
15
  value?: T;
16
16
  onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;
17
17
  }
18
+ export type SelectPlacement = 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
@@ -16,7 +16,8 @@
16
16
 
17
17
  @import '../../styles/variables.scss';
18
18
 
19
- /* Layout
19
+
20
+ /* Picker
20
21
  ========================================================================== */
21
22
 
22
23
  [class^='uk-datepicker'],
@@ -35,7 +36,7 @@
35
36
  border-radius: var(--control-border-radius);
36
37
  color: var(--control-color);
37
38
  cursor: text;
38
- display: inline-flex;
39
+ display: flex;
39
40
  font-size: inherit;
40
41
  min-height: var(--control-height);
41
42
  padding-left: var(--control-padding-horizontal);
@@ -88,14 +89,21 @@
88
89
  display: inline-flex;
89
90
  position: relative;
90
91
  width: 100%;
92
+ @if mixin-exists(hook-datepicker-input) {
93
+ @include hook-datepicker-input;
94
+ }
91
95
  }
92
96
 
93
97
  .uk-datepicker .uk-datepicker-input .uk-control {
94
98
  border: 0 none;
99
+ flex: 1;
100
+ min-width: 1px;
95
101
  padding: 0;
96
102
  }
97
103
 
98
- /* Panel */
104
+
105
+ /* Panel
106
+ ========================================================================== */
99
107
 
100
108
  .uk-datepicker-panel-layout {
101
109
  align-items: stretch;
@@ -147,6 +155,43 @@
147
155
  }
148
156
  }
149
157
 
158
+ .uk-datepicker-date-panel {
159
+ @if mixin-exists(hook-datepicker-date-panel) {
160
+ @include hook-datepicker-date-panel;
161
+ }
162
+ }
163
+
164
+ .uk-datepicker-month-panel {
165
+ @if mixin-exists(hook-datepicker-month-panel) {
166
+ @include hook-datepicker-month-panel;
167
+ }
168
+ }
169
+
170
+ .uk-datepicker-quarter-panel {
171
+ @if mixin-exists(hook-datepicker-quarter-panel) {
172
+ @include hook-datepicker-quarter-panel;
173
+ }
174
+ }
175
+
176
+ .uk-datepicker-decade-panel {
177
+ @if mixin-exists(hook-datepicker-decade-panel) {
178
+ @include hook-datepicker-decade-panel;
179
+ }
180
+ }
181
+
182
+ .uk-datepicker-week-panel {
183
+ @if mixin-exists(hook-datepicker-week-panel) {
184
+ @include hook-datepicker-week-panel;
185
+ }
186
+ }
187
+
188
+ .uk-datepicker-year-panel {
189
+ @if mixin-exists(hook-datepicker-year-panel) {
190
+ @include hook-datepicker-year-panel;
191
+ }
192
+ }
193
+
194
+ /* Header */
150
195
  .uk-datepicker-header {
151
196
  align-items: center;
152
197
  border-bottom: var(--datepicker-border-width) var(--datepicker-border-style) var(--datepicker-border);
@@ -171,6 +216,7 @@
171
216
  }
172
217
  }
173
218
 
219
+ /* Body and content */
174
220
  .uk-datepicker-body {
175
221
  padding: var(--datepicker-body-padding-vertical) var(--datepicker-body-padding-horizontal);
176
222
  @if mixin-exists(hook-datepicker-body) {
@@ -188,14 +234,7 @@
188
234
  }
189
235
  }
190
236
 
191
- /* Elements */
192
-
193
- .uk-datepicker-content th {
194
- box-sizing: border-box;
195
- height: var(--datepicker-cell-height);
196
- padding: 0;
197
- }
198
-
237
+ // Elements
199
238
  .uk-datepicker-header button {
200
239
  align-items: center;
201
240
  appearance: none;
@@ -215,30 +254,18 @@
215
254
  padding: 0 var(--datepicker-header-button-padding-horizontal);
216
255
  text-align: center;
217
256
  transition: color var(--transition-medium-fast-duration);
218
- @if mixin-exists(hook-datepicker-header-button) {
219
- @include hook-datepicker-header-button;
220
- }
221
257
  }
222
258
 
223
259
  .uk-datepicker-header-view button {
224
260
  color: inherit;
225
- @if mixin-exists(hook-datepicker-header-view-button) {
226
- @include hook-datepicker-header-view-button;
227
- }
228
261
  }
229
262
 
230
263
  .uk-datepicker-header-view button:hover {
231
264
  color: var(--datepicker-header-view-button-hover-color);
232
- @if mixin-exists(hook-datepicker-header-view-button-hover) {
233
- @include hook-datepicker-header-view-button-hover;
234
- }
235
265
  }
236
266
 
237
267
  .uk-datepicker-header > button:hover {
238
268
  color: var(--datepicker-header-button-hover-color);
239
- @if mixin-exists(hook-datepicker-header-button-hover) {
240
- @include hook-datepicker-header-button-hover;
241
- }
242
269
  }
243
270
 
244
271
  .uk-datepicker-prev-icon,
@@ -291,48 +318,13 @@
291
318
  width: 7px;
292
319
  }
293
320
 
294
- /*
295
- * Time panel
296
- */
297
-
298
- .uk-datepicker-time-panel .uk-datepicker-content {
299
- display: flex;
300
- flex: auto;
301
- height: var(--datepicker-time-column-height);
302
- @if mixin-exists(hook-datepicker-time-panel-content) {
303
- @include hook-datepicker-time-panel-content;
304
- }
305
- }
306
-
307
- .uk-datepicker-time-panel-column {
308
- flex: 1 0 auto;
309
- margin: var(--global-xsmall-margin) 0;
310
- overflow: hidden;
311
- padding: 0;
312
- scrollbar-color: var(--global-scroll-background, var(--global-muted-backgrounf, rgba(#000, 0.15))) transparent;
313
- scrollbar-width: thin;
314
- text-align: start;
315
- transition: background var(--transition-medium-fast-duration);
316
- width: var(--datepicker-time-column-width);
317
- @if mixin-exists(hook-datepicker-time-panel-column) {
318
- @include hook-datepicker-time-panel-column;
319
- }
320
- }
321
-
322
- .uk-datepicker-time-panel-column:hover {
323
- overflow-y: auto;
324
- }
325
-
326
- .uk-datepicker-time-panel-column ul {
327
- list-style: none;
328
- margin: 0;
321
+ .uk-datepicker-content th {
322
+ box-sizing: border-box;
323
+ height: var(--datepicker-cell-height);
329
324
  padding: 0;
330
325
  }
331
326
 
332
- /*
333
- * Footer
334
- */
335
-
327
+ /* Footer */
336
328
  .uk-datepicker-footer {
337
329
  border-top: var(--datepicker-border-width) var(--datepicker-border-style) var(--datepicker-border);
338
330
  padding: var(--datepicker-footer-padding-vertical) var(--datepicker-footer-padding-horizontal);
@@ -386,6 +378,10 @@
386
378
  z-index: 1;
387
379
  }
388
380
 
381
+ .uk-datepicker-cell-in-view {
382
+ color: var(--datepicker-cell-color);
383
+ }
384
+
389
385
  .uk-datepicker-cell-inner {
390
386
  border-radius: var(--datepicker-cell-border-radius);
391
387
  display: inline-block;
@@ -394,13 +390,12 @@
394
390
  min-width: var(--datepicker-cell-height);
395
391
  position: relative;
396
392
  z-index: 2;
393
+ @if mixin-exists(hook-datepicker-cell-inner) {
394
+ @include hook-datepicker-cell-inner;
395
+ }
397
396
  }
398
397
 
399
- .uk-datepicker-cell-in-view {
400
- color: var(--datepicker-cell-color);
401
- }
402
-
403
- /* Hover Cell */
398
+ /* Hover cell state */
404
399
  .uk-datepicker-cell:hover:not(.uk-datepicker-cell-in-view, .uk-datepicker-cell-disabled) .uk-datepicker-cell-inner,
405
400
  .uk-datepicker-cell:hover:not(
406
401
  .uk-datepicker-cell-selected,
@@ -418,17 +413,7 @@
418
413
  color: var(--datepicker-cell-active-color);
419
414
  }
420
415
 
421
- .uk-datepicker-cell-in-view.uk-datepicker-cell-today .uk-datepicker-cell-inner::before {
422
- border: var(--datepicker-border-width) var(--datepicker-border-style) var(--datepicker-border);
423
- border-radius: var(--datepicker-cell-border-radius);
424
- bottom: 0;
425
- content: '';
426
- inset-inline: 0;
427
- position: absolute;
428
- top: 0;
429
- z-index: 1;
430
- }
431
-
416
+ /* Disabled cell state */
432
417
  .uk-datepicker-cell-disabled:not(.uk-datepicker-cell-selected) {
433
418
  color: var(--datepicker-cell-disabled-color);
434
419
  cursor: not-allowed;
@@ -442,6 +427,18 @@
442
427
  background: none;
443
428
  }
444
429
 
430
+ /* Today */
431
+ .uk-datepicker-cell-in-view.uk-datepicker-cell-today .uk-datepicker-cell-inner::before {
432
+ border: var(--datepicker-border-width) var(--datepicker-border-style) var(--datepicker-border);
433
+ border-radius: var(--datepicker-cell-border-radius);
434
+ bottom: 0;
435
+ content: '';
436
+ inset-inline: 0;
437
+ position: absolute;
438
+ top: 0;
439
+ z-index: 1;
440
+ }
441
+
445
442
  .uk-datepicker-cell-disabled.uk-datepicker-cell-today .uk-datepicker-cell-inner::before {
446
443
  border-color: var(--datepicker-cell-disabled-border);
447
444
  }
@@ -490,6 +487,39 @@
490
487
  }
491
488
 
492
489
 
490
+ /* Time panel */
491
+ .uk-datepicker-time-panel .uk-datepicker-content {
492
+ display: flex;
493
+ flex: auto;
494
+ height: var(--datepicker-time-column-height);
495
+ }
496
+
497
+ .uk-datepicker-time-panel-column {
498
+ flex: 1 0 auto;
499
+ margin: var(--global-xsmall-margin) 0;
500
+ overflow: hidden;
501
+ padding: 0;
502
+ scrollbar-color: var(--global-scroll-background, var(--global-muted-backgrounf, rgba(#000, 0.15))) transparent;
503
+ scrollbar-width: thin;
504
+ text-align: start;
505
+ transition: background var(--transition-medium-fast-duration);
506
+ width: var(--datepicker-time-column-width);
507
+ @if mixin-exists(hook-datepicker-time-panel-column) {
508
+ @include hook-datepicker-time-panel-column;
509
+ }
510
+ }
511
+
512
+ .uk-datepicker-time-panel-column:hover {
513
+ overflow-y: auto;
514
+ }
515
+
516
+ .uk-datepicker-time-panel-column ul {
517
+ list-style: none;
518
+ margin: 0;
519
+ padding: 0;
520
+ }
521
+
522
+
493
523
  /* Time
494
524
  ========================================================================== */
495
525
 
@@ -570,8 +600,7 @@
570
600
 
571
601
  .uk-datepicker-dropdown {
572
602
  background-color: var(--datepicker-dropdown-background);
573
- border: var(--datepicker-dropdown-border-width) var(--datepicker-dropdown-border-style)
574
- var(--datepicker-dropdown-border);
603
+ border: var(--datepicker-dropdown-border-width) var(--datepicker-dropdown-border-style) var(--datepicker-dropdown-border);
575
604
  border-radius: var(--datepicker-dropdown-border-radius);
576
605
  font-variant: initial;
577
606
  left: -9999px;
@@ -1,9 +1,9 @@
1
1
  import { type PickerRef, type PickerPanelProps as RcPickerPanelProps, type PickerProps as RcPickerProps, type RangePickerProps as RcRangePickerProps } from 'rc-picker';
2
2
  import { type Locale as RcPickerLocale } from 'rc-picker/lib/interface';
3
+ import { type PickerPanelRef } from 'rc-picker/lib/PickerPanel';
3
4
  import type * as React from 'react';
4
5
  import { type TimePickerLocale } from '../../components/TimePicker';
5
6
  import { type AnyObject, type SizeType, type StateType } from '../../types';
6
- import { PickerPanelRef } from 'rc-picker/lib/PickerPanel';
7
7
  export interface AdditionalPickerLocaleProps {
8
8
  dateFormat?: string;
9
9
  dateTimeFormat?: string;
@@ -26,8 +26,7 @@ export interface PickerLocale extends AdditionalPickerLocaleProps {
26
26
  lang: RcPickerLocale & AdditionalPickerLocaleLangProps;
27
27
  timePickerLocale: TimePickerLocale;
28
28
  }
29
- declare const DatePickerPlacements: readonly ["bottomLeft", "bottomRight", "topLeft", "topRight"];
30
- type DatePickerPlacement = (typeof DatePickerPlacements)[number];
29
+ export type DatePickerPlacement = 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
31
30
  type InjectDefaultProps<Props> = Omit<Props, 'locale' | 'generateConfig' | 'hideHeader'> & {
32
31
  locale?: PickerLocale;
33
32
  placement?: DatePickerPlacement;
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const DatePickerPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];
@@ -3,6 +3,7 @@ import { type BuildInPlacements, type TriggerProps } from 'rc-trigger';
3
3
  import { type AlignType } from 'rc-trigger/lib/interface';
4
4
  import * as React from 'react';
5
5
  import './index.scss';
6
+ export type DropPlacement = 'bottom-center' | 'bottom-left' | 'bottom-right' | 'top-center' | 'top-left' | 'top-right';
6
7
  export interface DropProps extends Pick<TriggerProps, 'alignPoint' | 'action' | 'autoDestroy' | 'blurDelay' | 'children' | 'focusDelay' | 'getPopupContainer' | 'hideAction' | 'mask' | 'maskClosable' | 'maskMotion' | 'mouseEnterDelay' | 'mouseLeaveDelay' | 'prefixCls' | 'showAction' | 'stretch' | 'zIndex'> {
7
8
  align?: AlignType;
8
9
  arrow?: boolean;
@@ -16,7 +17,7 @@ export interface DropProps extends Pick<TriggerProps, 'alignPoint' | 'action' |
16
17
  overlay?: (() => React.ReactElement) | React.ReactElement;
17
18
  overlayClassName?: string;
18
19
  overlayStyle?: React.CSSProperties;
19
- placement?: string;
20
+ placement?: DropPlacement;
20
21
  rootCls?: string;
21
22
  visible?: boolean;
22
23
  onAlign?: (element: HTMLElement, align: AlignType) => void;
@@ -824,6 +824,29 @@
824
824
 
825
825
  @mixin hook-cover-misc() {}
826
826
 
827
+ @mixin hook-datepicker() {}
828
+ @mixin hook-datepicker-hover() {}
829
+ @mixin hook-datepicker-focus() {}
830
+ @mixin hook-datepicker-input() {}
831
+ @mixin hook-datepicker-panel-layout() {}
832
+ @mixin hook-datepicker-panel() {}
833
+ @mixin hook-datepicker-datetime-panel() {}
834
+ @mixin hook-datepicker-time-panel() {}
835
+ @mixin hook-datepicker-date-panel() {}
836
+ @mixin hook-datepicker-month-panel() {}
837
+ @mixin hook-datepicker-quarter-panel() {}
838
+ @mixin hook-datepicker-decade-panel() {}
839
+ @mixin hook-datepicker-week-panel() {}
840
+ @mixin hook-datepicker-year-panel() {}
841
+ @mixin hook-datepicker-header() {}
842
+ @mixin hook-datepicker-header-view() {}
843
+ @mixin hook-datepicker-body() {}
844
+ @mixin hook-datepicker-content() {}
845
+ @mixin hook-datepicker-footer() {}
846
+ @mixin hook-datepicker-ranges() {}
847
+ @mixin hook-datepicker-cell() {}
848
+ @mixin hook-datepicker-cell-inner() {}
849
+ @mixin hook-datepicker-time-panel-column() {}
827
850
  @mixin hook-datepicker-dropdown() {}
828
851
 
829
852
  @mixin hook-description-list-term() {}