@king-design/react 2.0.0-beta.1 → 2.0.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 (136) hide show
  1. package/__tests__/__snapshots__/React Demos.md +317 -291
  2. package/__tests__/index.ts +5 -2
  3. package/__tests__/karma.conf.js +1 -1
  4. package/components/breadcrumb/item.d.ts +1 -1
  5. package/components/breadcrumb/item.js +3 -14
  6. package/components/breadcrumb/styles.js +1 -1
  7. package/components/button/index.vdt.js +26 -17
  8. package/components/button/styles.d.ts +82 -1
  9. package/components/button/styles.js +16 -2
  10. package/components/card/styles.js +1 -1
  11. package/components/carousel/styles.js +4 -1
  12. package/components/carousel/useSlide.js +10 -9
  13. package/components/cascader/index.spec.js +1 -1
  14. package/components/checkbox/index.vdt.js +15 -10
  15. package/components/checkbox/styles.js +2 -2
  16. package/components/collapse/item.vdt.js +2 -1
  17. package/components/collapse/styles.js +5 -1
  18. package/components/colorpicker/index.d.ts +2 -0
  19. package/components/colorpicker/index.js +2 -1
  20. package/components/colorpicker/index.spec.js +1 -1
  21. package/components/colorpicker/index.vdt.js +3 -1
  22. package/components/context.d.ts +5 -2
  23. package/components/context.js +7 -4
  24. package/components/datepicker/helpers.d.ts +2 -1
  25. package/components/datepicker/helpers.js +8 -2
  26. package/components/datepicker/index.spec.js +1 -1
  27. package/components/datepicker/styles.d.ts +46 -1
  28. package/components/diagram/shapes/generateShapes.js +3 -3
  29. package/components/diagram/shapes/line.d.ts +2 -2
  30. package/components/diagram/shapes/line.js +0 -1
  31. package/components/dialog/base.d.ts +2 -0
  32. package/components/dialog/base.js +2 -1
  33. package/components/dialog/index.spec.js +59 -94
  34. package/components/dialog/styles.js +5 -1
  35. package/components/dialog/useFixBody.d.ts +6 -0
  36. package/components/dialog/useFixBody.js +12 -0
  37. package/components/drawer/index.spec.js +5 -5
  38. package/components/drawer/styles.js +1 -1
  39. package/components/dropdown/index.js +1 -2
  40. package/components/dropdown/index.spec.js +3 -3
  41. package/components/dropdown/styles.js +1 -1
  42. package/components/editable/index.vdt.js +2 -1
  43. package/components/editable/styles.d.ts +8 -1
  44. package/components/form/index.spec.js +8 -8
  45. package/components/form/item.vdt.js +13 -9
  46. package/components/form/useError.d.ts +5 -1
  47. package/components/form/useError.js +3 -1
  48. package/components/form/useValidate.js +2 -2
  49. package/components/grid/col.vdt.js +4 -2
  50. package/components/grid/styles.js +1 -1
  51. package/components/grid/useGutter.d.ts +1 -1
  52. package/components/icon/index.vdt.js +3 -2
  53. package/components/icon/styles.js +8 -4
  54. package/components/input/index.d.ts +1 -0
  55. package/components/input/index.js +2 -1
  56. package/components/input/index.vdt.js +47 -32
  57. package/components/input/search.vdt.js +4 -2
  58. package/components/input/styles.js +8 -3
  59. package/components/layout/styles.d.ts +1 -1
  60. package/components/layout/styles.js +7 -3
  61. package/components/menu/index.spec.js +2 -2
  62. package/components/menu/item.d.ts +1 -1
  63. package/components/menu/item.js +4 -13
  64. package/components/menu/styles.d.ts +62 -1
  65. package/components/menu/styles.js +6 -2
  66. package/components/message/index.spec.js +1 -1
  67. package/components/message/styles.js +6 -2
  68. package/components/pagination/styles.js +1 -1
  69. package/components/radio/index.vdt.js +14 -9
  70. package/components/radio/styles.js +9 -1
  71. package/components/rate/styles.js +5 -1
  72. package/components/scrollSelect/styles.d.ts +14 -1
  73. package/components/scrollSelect/styles.js +9 -1
  74. package/components/select/base.vdt.js +135 -121
  75. package/components/select/index.spec.js +1 -1
  76. package/components/select/menu.vdt.js +1 -0
  77. package/components/select/styles.js +9 -4
  78. package/components/select/useSearchable.d.ts +1 -1
  79. package/components/slider/styles.js +5 -1
  80. package/components/spinner/index.d.ts +1 -1
  81. package/components/spinner/index.js +1 -1
  82. package/components/split/style.js +1 -1
  83. package/components/steps/context.d.ts +1 -1
  84. package/components/steps/styles.js +5 -1
  85. package/components/switch/styles.js +5 -1
  86. package/components/table/index.d.ts +1 -0
  87. package/components/table/index.spec.js +2 -1
  88. package/components/table/row.vdt.js +12 -4
  89. package/components/table/styles.js +6 -1
  90. package/components/table/table.d.ts +1 -0
  91. package/components/table/table.js +2 -1
  92. package/components/table/table.vdt.js +30 -27
  93. package/components/table/useColumns.d.ts +1 -1
  94. package/components/table/useFixedColumns.d.ts +1 -1
  95. package/components/table/useFixedColumns.js +5 -2
  96. package/components/table/useGroup.d.ts +1 -1
  97. package/components/table/useResizable.d.ts +1 -1
  98. package/components/table/useSortable.d.ts +1 -1
  99. package/components/table/useWidth.js +7 -1
  100. package/components/tabs/index.spec.js +1 -1
  101. package/components/tabs/styles.js +9 -2
  102. package/components/tabs/tab.vdt.js +2 -1
  103. package/components/tabs/useActiveBar.js +6 -3
  104. package/components/tag/base.js +1 -0
  105. package/components/tag/styles.js +8 -2
  106. package/components/timepicker/constants.d.ts +2 -1
  107. package/components/timepicker/constants.js +3 -2
  108. package/components/timepicker/index.spec.js +36 -35
  109. package/components/timepicker/useStep.js +3 -3
  110. package/components/timepicker/useValue.js +2 -2
  111. package/components/tooltip/index.spec.js +28 -24
  112. package/components/transfer/index.spec.js +20 -19
  113. package/components/tree/index.d.ts +1 -1
  114. package/components/tree/index.js +1 -1
  115. package/components/tree/index.spec.js +20 -19
  116. package/components/tree/index.vdt.js +1 -0
  117. package/components/tree/styles.js +5 -1
  118. package/components/treeSelect/index.spec.js +5 -5
  119. package/components/treeSelect/styles.js +5 -1
  120. package/components/upload/index.d.ts +1 -1
  121. package/components/upload/index.spec.js +1 -1
  122. package/components/upload/index.vdt.js +10 -11
  123. package/components/upload/styles.js +5 -1
  124. package/components/utils.d.ts +1 -1
  125. package/components/wave/index.d.ts +19 -0
  126. package/components/wave/index.js +120 -0
  127. package/components/wave/styles.d.ts +2 -0
  128. package/components/wave/styles.js +17 -0
  129. package/hooks/useRouter.d.ts +1 -0
  130. package/hooks/useRouter.js +10 -0
  131. package/index.d.ts +3 -2
  132. package/index.js +3 -2
  133. package/package.json +2 -2
  134. package/styles/global.js +4 -3
  135. package/styles/theme.d.ts +16 -7
  136. package/styles/theme.js +15 -7
@@ -3,6 +3,10 @@ import { theme, setDefault } from '../../styles/theme';
3
3
  import { deepDefaults } from '../../styles/utils';
4
4
  import '../../styles/global';
5
5
  var defaults = {
6
+ get transition() {
7
+ return theme.transition.middle;
8
+ },
9
+
6
10
  height: '4px',
7
11
  bgColor: '#e5e5e5',
8
12
 
@@ -73,5 +77,5 @@ setDefault(function () {
73
77
  }).slider;
74
78
  });
75
79
  export function makeStyles() {
76
- return /*#__PURE__*/css("position:relative;outline:none;display:flex;.k-slider-main{flex:1;}.k-slider-track-wrapper{cursor:pointer;height:32px;display:flex;align-items:center;}.k-slider-track{flex:1;height:", slider.height, ";background-color:", slider.bgColor, ";border-radius:", slider.borderRadius, ";position:relative;user-select:none;}.k-slider-bar{background-color:", slider.barColor, ";position:absolute;height:100%;border-radius:", slider.borderRadius, ";transition:all ", theme.transition, ";}.k-slider-thumb-wrapper{position:absolute;top:50%;transform:translate(-50%, -50%);transition:left ", theme.transition, ";z-index:1;}.k-slider-thumb{height:", slider.thumb.height, ";width:", slider.thumb.width, ";transition:all ", theme.transition, ";border:", slider.thumb.border, ";border-radius:", slider.thumb.borderRadius, ";background-color:", slider.thumb.bgColor, ";outline:none;&:hover,&:focus{transform:", slider.thumb.hoverTransform, ";cursor:grab;background-color:", slider.thumb.hoverBgColor, ";}}.k-slider-ends{display:flex;justify-content:space-between;span{cursor:pointer;}}.k-slider-spinner{margin-left:", slider.spinnerGap, ";}&.k-dragging{.k-slider-bar{transition:none;}.k-slider-thumb-wrapper{transition:none;}}&.k-disabled{color:", slider.disabled.color, ";.k-slider-track-wrapper{cursor:not-allowed;}.k-slider-bar{background-color:", slider.disabled.color, ";}.k-slider-thumb{border-color:", slider.disabled.color, ";&:hover,&:focus{background-color:", slider.disabled.bgColor, ";cursor:not-allowed;transform:none;}}.k-slider-ends{span{cursor:not-allowed;}}}.k-slider-point{position:absolute;top:calc((", slider.height, " - ", slider.point.height, ") / 2 );width:", slider.point.width, ";height:", slider.point.height, ";background:", slider.point.bgColor, ";transform:translateX(-50%);border-radius:", slider.point.borderRadius, ";border:", slider.point.border, ";&.k-active{border-color:", slider.point.activeBorderColor, ";}}.k-slider-marks{position:relative;height:", slider.marks.height, ";>span{position:absolute;transform:translateX(-50%);white-space:nowrap;cursor:pointer;&:first-child{transform:none;}&:last-child{transform:translateX(-100%);}&.k-active{color:", slider.marks.activeColor, ";}}}.k-slider-tooltip{white-space:nowrap;}");
80
+ return /*#__PURE__*/css("position:relative;outline:none;display:flex;.k-slider-main{flex:1;}.k-slider-track-wrapper{cursor:pointer;height:32px;display:flex;align-items:center;}.k-slider-track{flex:1;height:", slider.height, ";background-color:", slider.bgColor, ";border-radius:", slider.borderRadius, ";position:relative;user-select:none;}.k-slider-bar{background-color:", slider.barColor, ";position:absolute;height:100%;border-radius:", slider.borderRadius, ";transition:all ", slider.transition, ";}.k-slider-thumb-wrapper{position:absolute;top:50%;transform:translate(-50%, -50%);transition:left ", slider.transition, ";z-index:1;}.k-slider-thumb{height:", slider.thumb.height, ";width:", slider.thumb.width, ";transition:all ", slider.transition, ";border:", slider.thumb.border, ";border-radius:", slider.thumb.borderRadius, ";background-color:", slider.thumb.bgColor, ";outline:none;&:hover,&:focus{transform:", slider.thumb.hoverTransform, ";cursor:grab;background-color:", slider.thumb.hoverBgColor, ";}}.k-slider-ends{display:flex;justify-content:space-between;span{cursor:pointer;}}.k-slider-spinner{margin-left:", slider.spinnerGap, ";}&.k-dragging{.k-slider-bar{transition:none;}.k-slider-thumb-wrapper{transition:none;}}&.k-disabled{color:", slider.disabled.color, ";.k-slider-track-wrapper{cursor:not-allowed;}.k-slider-bar{background-color:", slider.disabled.color, ";}.k-slider-thumb{border-color:", slider.disabled.color, ";&:hover,&:focus{background-color:", slider.disabled.bgColor, ";cursor:not-allowed;transform:none;}}.k-slider-ends{span{cursor:not-allowed;}}}.k-slider-point{position:absolute;top:calc((", slider.height, " - ", slider.point.height, ") / 2 );width:", slider.point.width, ";height:", slider.point.height, ";background:", slider.point.bgColor, ";transform:translateX(-50%);border-radius:", slider.point.borderRadius, ";border:", slider.point.border, ";&.k-active{border-color:", slider.point.activeBorderColor, ";}}.k-slider-marks{position:relative;height:", slider.marks.height, ";>span{position:absolute;transform:translateX(-50%);white-space:nowrap;cursor:pointer;&:first-child{transform:none;}&:last-child{transform:translateX(-100%);}&.k-active{color:", slider.marks.activeColor, ";}}}.k-slider-tooltip{white-space:nowrap;}");
77
81
  }
@@ -2,8 +2,8 @@ import { Component, TypeDefs } from 'intact-react';
2
2
  import { Sizes } from '../../styles/utils';
3
3
  import type { Events } from '../types';
4
4
  export interface SpinnerProps {
5
- disabled?: boolean;
6
5
  value?: number;
6
+ disabled?: boolean;
7
7
  max?: number;
8
8
  min?: number;
9
9
  step?: number | StepObject | StepFunction;
@@ -11,8 +11,8 @@ import { useFormatter } from './useFormatter';
11
11
  import { useValue } from './useValue';
12
12
  import { useChange } from './useChange';
13
13
  var typeDefs = {
14
- disabled: Boolean,
15
14
  value: Number,
15
+ disabled: Boolean,
16
16
  max: Number,
17
17
  min: Number,
18
18
  step: [Number, Object, Function],
@@ -20,7 +20,7 @@ var defaults = {
20
20
  },
21
21
 
22
22
  get transition() {
23
- return theme.transition;
23
+ return theme.transition.middle;
24
24
  },
25
25
 
26
26
  get boderColor() {
@@ -1,4 +1,4 @@
1
1
  export declare const context: {
2
2
  Provider: import("misstime").ComponentConstructor<import('intact-react').Component<import("../context").ProviderProps<any>, {}, {}, {}>>;
3
- Consumer: import("misstime").ComponentConstructor<import("intact").Component<{}, {}, {}, {}>>;
3
+ Consumer: import("misstime").ComponentConstructor<import("intact").Component<import("../context").ConsumerProps<any>, {}, {}, {}>>;
4
4
  };
@@ -4,6 +4,10 @@ import { theme, setDefault } from '../../styles/theme';
4
4
  import { deepDefaults } from '../../styles/utils';
5
5
  import '../../styles/global';
6
6
  var defaults = {
7
+ get transition() {
8
+ return theme.transition.middle;
9
+ },
10
+
7
11
  get height() {
8
12
  return theme.default.height;
9
13
  },
@@ -150,5 +154,5 @@ export function makeStepsStyles() {
150
154
  }), ";.k-step,.k-step-main{color:", steps.simple.color, ";}.k-step-head{padding-right:", steps.simple.headPaddingRight, ";vertical-align:top;}}&.k-clickable{.k-done{cursor:pointer;}}");
151
155
  }
152
156
  export function makeStepStyles() {
153
- return /*#__PURE__*/css("position:relative;flex:1;.k-step-icon:before{font-size:", steps.head.iconFontSize, ";}.k-step-title{display:inline-block;padding-right:", steps.main.titlePaddingRight, ";white-space:nowrap;}.k-step-content{font-size:", steps.main.contentFontSize, ";}.k-step-inner,.k-step-main{transition:all ", theme.transition, ";}");
157
+ return /*#__PURE__*/css("position:relative;flex:1;.k-step-icon:before{font-size:", steps.head.iconFontSize, ";}.k-step-title{display:inline-block;padding-right:", steps.main.titlePaddingRight, ";white-space:nowrap;}.k-step-content{font-size:", steps.main.contentFontSize, ";}.k-step-inner,.k-step-main{transition:all ", steps.transition, ";}");
154
158
  }
@@ -4,6 +4,10 @@ import { theme, setDefault } from '../../styles/theme';
4
4
  import { deepDefaults, sizes } from '../../styles/utils';
5
5
  import '../../styles/global';
6
6
  var defaults = {
7
+ get transition() {
8
+ return theme.transition.middle;
9
+ },
10
+
7
11
  bgColor: "#fff",
8
12
  fontSize: "12px",
9
13
 
@@ -75,7 +79,7 @@ setDefault(function () {
75
79
  }).switch;
76
80
  });
77
81
  export function makeStyles() {
78
- return /*#__PURE__*/css("display:inline-block;vertical-align:middle;background:", kswitch.bgColor, ";position:relative;cursor:pointer;user-select:none;overflow:hidden;border:", kswitch.border, ";box-sizing:content-box;input{opacity:0;position:absolute;}.k-switch-bar,.k-switch-off{box-sizing:border-box;}.k-switch-bar{position:absolute;text-align:right;overflow:hidden;}.k-switch-wrapper{display:inline-block;position:relative;z-index:1;border-radius:", kswitch.handleBorderRadius, ";}.k-switch-bar,.k-switch-wrapper{height:100%;background:", kswitch.bgColor, ";transition:all ", theme.transition, ";}.k-switch-handle{border-radius:", kswitch.handleBorderRadius, ";background:", kswitch.handleBgColor, ";height:100%;cursor:pointer;transition:left ", theme.transition, ";display:inline-block;img{height:100%;visibility:hidden;}}.k-switch-on,.k-switch-off{position:absolute;font-size:", kswitch.fontSize, ";color:", kswitch.color, ";text-align:center;}&.k-dragging{.k-switch-bar,.k-switch-wrapper{background:", kswitch.checkedBgColor, ";transition:background ", theme.transition, ";}}&:focus{outline:none;border-color:", kswitch.checked.borderColor, ";}", _mapInstanceProperty(sizes).call(sizes, function (size) {
82
+ return /*#__PURE__*/css("display:inline-block;vertical-align:middle;background:", kswitch.bgColor, ";position:relative;cursor:pointer;user-select:none;overflow:hidden;border:", kswitch.border, ";box-sizing:content-box;input{opacity:0;position:absolute;}.k-switch-bar,.k-switch-off{box-sizing:border-box;}.k-switch-bar{position:absolute;text-align:right;overflow:hidden;}.k-switch-wrapper{display:inline-block;position:relative;z-index:1;border-radius:", kswitch.handleBorderRadius, ";}.k-switch-bar,.k-switch-wrapper{height:100%;background:", kswitch.bgColor, ";transition:all ", kswitch.transition, ";}.k-switch-handle{border-radius:", kswitch.handleBorderRadius, ";background:", kswitch.handleBgColor, ";height:100%;cursor:pointer;transition:left ", kswitch.transition, ";display:inline-block;img{height:100%;visibility:hidden;}}.k-switch-on,.k-switch-off{position:absolute;font-size:", kswitch.fontSize, ";color:", kswitch.color, ";text-align:center;}&.k-dragging{.k-switch-bar,.k-switch-wrapper{background:", kswitch.checkedBgColor, ";transition:background ", kswitch.transition, ";}}&:focus{outline:none;border-color:", kswitch.checked.borderColor, ";}", _mapInstanceProperty(sizes).call(sizes, function (size) {
79
83
  var _kswitch$size = kswitch[size],
80
84
  width = _kswitch$size.width,
81
85
  height = _kswitch$size.height,
@@ -1,2 +1,3 @@
1
1
  export * from './table';
2
2
  export * from './column';
3
+ export type { TableMerge, TableMergeConfig } from './useMerge';
@@ -25,7 +25,8 @@ import MergeCellDemo from '~/components/table/demos/mergeCell';
25
25
  import { AllCheckedStatus } from './useChecked';
26
26
  describe('Table', function () {
27
27
  afterEach(function () {
28
- return unmount();
28
+ unmount();
29
+ localStorage.removeItem('resizableTable');
29
30
  });
30
31
  it('check & uncheck', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
31
32
  var _mount, instance, element, table, checked, spy, _element$querySelecto, tr1, tr2, all;
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/extends";
2
2
  import { createVNode as _$cv, createUnknownComponentVNode as _$cc } from 'intact-react';
3
+ import { TransitionGroup } from 'intact';
3
4
  import { getClassAndStyleForFixed } from './useFixedColumns';
4
5
  import { Checkbox } from '../checkbox';
5
6
  import { Radio } from '../radio';
@@ -108,11 +109,18 @@ export default function ($props, $blocks, $__proto__) {
108
109
  'hasChildren': hasChildren,
109
110
  'key': columnKey
110
111
  }, columnKey));
111
- }); // for performance, no normalize
112
+ });
113
+
114
+ var rows = _$cc(TransitionGroup, {
115
+ 'name': 'k-fade-expand',
116
+ 'move': false,
117
+ 'children': vNodes
118
+ });
119
+ /* const rows = vNodes; */
120
+ // for performance, no normalize
121
+
112
122
 
113
- return createElementVNode(2, 'tr', vNodes, 8
114
- /* HasKeyedChildren */
115
- , cx(classNameObj), {
123
+ return createElementVNode(2, 'tr', rows, 2, cx(classNameObj), {
116
124
  'data-key': key,
117
125
  'ev-mouseenter': this.onMouseEnter,
118
126
  'ev-mouseleave': this.onMouseLeave,
@@ -4,6 +4,11 @@ import { theme, setDefault } from '../../styles/theme';
4
4
  import { deepDefaults, palette } from '../../styles/utils';
5
5
  import '../../styles/global';
6
6
  var defaults = {
7
+ get transition() {
8
+ return theme.transition.large;
9
+ },
10
+
11
+ // transition: '15000s',
7
12
  border: "1px solid #e5e5e5",
8
13
  fontSize: "12px",
9
14
  bgColor: "#fff",
@@ -77,7 +82,7 @@ setDefault(function () {
77
82
  }).table;
78
83
  });
79
84
  export function makeStyles() {
80
- return /*#__PURE__*/css("font-size:", table.fontSize, ";color:", table.color, ";border-top:", table.border, ";position:relative;z-index:0;.k-table-wrapper{border-bottom:", table.border, ";overflow:auto;}table{width:100%;border-spacing:0;table-layout:fixed;}thead{text-align:", table.thead.textAlign, ";font-size:", table.thead.fontSize, ";font-weight:", table.thead.fontWeight, ";position:sticky;top:0;z-index:2;tr{height:", table.thead.height, ";}}th{padding:", table.thead.padding, ";position:relative;background:", table.thead.bgColor, ";border-bottom:", table.border, ";&:before{content:'';height:", table.thead.delimiterHeight, ";position:absolute;background-color:", table.thead.delimiterColor, ";width:1px;left:1px;top:50%;transform:translateY(-50%);}&:first-of-type:before{display:none;}}.k-table-title{display:inline-flex;align-items:center;max-width:100%;}.k-table-title-text{flex:1;}tbody{tr{&:hover td{background:", table.tbody.hoverBgcolor, ";}&:last-of-type td{border-bottom:none;}}}td{padding:", table.tbody.padding, ";border-bottom:", table.border, ";background:", table.bgColor, ";word-wrap:break-word;}.k-fixed-left,.k-fixed-right{position:sticky;z-index:1;&:after{content:'';display:block;transition:box-shadow ", theme.transition, ";position:absolute;top:0;bottom:0px;width:10px;pointer-events:none;}}.k-fixed-left:after{right:-11px;}.k-fixed-right:after{left:-11px;}&.k-scroll-left .k-fixed-right:after{box-shadow:", table.fixRightShadow, ";}&.k-scroll-right .k-fixed-left:after{box-shadow:", table.fixLeftShadow, ";}&.k-scroll-middle{.k-fixed-left:after{box-shadow:", table.fixLeftShadow, ";}.k-fixed-right:after{box-shadow:", table.fixRightShadow, ";}}.k-fixed-right+.k-fixed-right:after{display:none;}.k-table-affix-header{position:sticky;top:0;left:0;.k-affix-wrapper{overflow:hidden;}}&.k-border,&.k-grid{.k-table-wrapper{border-left:", table.border, ";border-right:", table.border, ";}}&.k-grid{td:not(:last-of-type),th:not(:last-of-type){border-right:", table.border, ";}th:before{display:none;}}&.k-stripe{tr:nth-child(even):not(:hover) td{background:", table.stripeBgColor, ";}}.k-table-group{width:", table.group.width, "!important;height:", table.group.width, "!important;margin-left:", table.group.gap, ";position:relative;color:", table.group.color, ";&:hover{color:", theme.color.primary, ";}.k-icon{transition:transform ", theme.transition, ";}&.k-dropdown-open .k-icon{transform:rotate(180deg);}}.k-table-check{.k-checkbox,.k-radio{position:relative;top:-1px;}}.k-column-sortable{cursor:pointer;}.k-column-sort{.k-icon{display:block;height:", _sortInstanceProperty(table).iconHeight, ";line-height:", _sortInstanceProperty(table).iconHeight, ";margin-left:", _sortInstanceProperty(table).gap, ";color:", _sortInstanceProperty(table).color, ";}&.k-asc .k-icon.k-desc,&.k-desc .k-icon.k-asc{color:", _sortInstanceProperty(table).disabledColor, ";}}.k-table-spin.k-overlay{z-index:2;}.k-table-empty{text-align:center;}tr.k-expand{td{padding:0;background:#fdfcff;}}&.k-with-expand{tr:not(.k-expand){td{border-bottom:none;}}}.k-table-expand{border-top:", table.border, ";}tbody tr.k-selected td{background:", table.selectedBgColor, ";}.k-table-arrow{margin-right:", table.arrow.gap, ";transition:transform ", theme.transition, ";position:relative;top:-1px;}tr.k-spreaded{.k-table-arrow{transform:rotate(90deg);}}.k-table-resize{height:100%;width:", table.resizeWidth, ";position:absolute;top:0;left:-1px;cursor:ew-resize;}tr.k-dragging{opacity:", table.draggingOpacity, ";}.k-table-scrollbar{overflow-x:auto;overflow-y:hidden;}.k-table-scrollbar-inner{height:1px;}");
85
+ return /*#__PURE__*/css("font-size:", table.fontSize, ";color:", table.color, ";border-top:", table.border, ";position:relative;z-index:0;.k-table-wrapper{border-bottom:", table.border, ";overflow:auto;}table{width:100%;border-spacing:0;table-layout:fixed;td,th{transition:all ", table.transition, ";}}thead{text-align:", table.thead.textAlign, ";font-size:", table.thead.fontSize, ";font-weight:", table.thead.fontWeight, ";position:sticky;top:0;z-index:2;tr{height:", table.thead.height, ";}}th{padding:", table.thead.padding, ";position:relative;background:", table.thead.bgColor, ";border-bottom:", table.border, ";&:before{content:'';height:", table.thead.delimiterHeight, ";position:absolute;background-color:", table.thead.delimiterColor, ";width:1px;left:1px;top:50%;transform:translateY(-50%);}&:first-of-type:before{display:none;}}.k-table-title{display:inline-flex;align-items:center;max-width:100%;}.k-table-title-text{flex:1;}tbody{tr{&:hover td{background:", table.tbody.hoverBgcolor, ";}&:last-of-type td{border-bottom-color:transparent;}}}td{padding:", table.tbody.padding, ";border-bottom:", table.border, ";background:", table.bgColor, ";word-wrap:break-word;}.k-fixed-left,.k-fixed-right{position:sticky;z-index:1;&:after{content:'';display:block;transition:box-shadow ", table.transition, ";position:absolute;top:0;bottom:0px;width:10px;pointer-events:none;}}.k-fixed-left:after{right:-11px;}.k-fixed-right:after{left:-11px;}&.k-scroll-left .k-fixed-right:after{box-shadow:", table.fixRightShadow, ";}&.k-scroll-right .k-fixed-left:after{box-shadow:", table.fixLeftShadow, ";}&.k-scroll-middle{.k-fixed-left:after{box-shadow:", table.fixLeftShadow, ";}.k-fixed-right:after{box-shadow:", table.fixRightShadow, ";}}.k-fixed-right+.k-fixed-right:after{display:none;}.k-table-affix-header{position:sticky;top:0;left:0;.k-affix-wrapper{overflow:hidden;}&.k-fixed{position:relative;}}&.k-border,&.k-grid{.k-table-wrapper{border-left:", table.border, ";border-right:", table.border, ";}}&.k-grid{td:not(:last-of-type),th:not(:last-of-type){border-right:", table.border, ";}th:before{display:none;}}&.k-stripe{tr:nth-child(even):not(:hover) td{background:", table.stripeBgColor, ";}}.k-table-group{width:", table.group.width, "!important;height:", table.group.width, "!important;margin-left:", table.group.gap, ";position:relative;color:", table.group.color, ";&:hover{color:", theme.color.primary, ";}.k-icon{transition:transform ", table.transition, ";}&.k-dropdown-open .k-icon{transform:rotate(180deg);}}.k-table-check{.k-checkbox,.k-radio{position:relative;top:-1px;}}.k-column-sortable{cursor:pointer;}.k-column-sort{.k-icon{display:block;height:", _sortInstanceProperty(table).iconHeight, ";line-height:", _sortInstanceProperty(table).iconHeight, ";margin-left:", _sortInstanceProperty(table).gap, ";color:", _sortInstanceProperty(table).color, ";}&.k-asc .k-icon.k-desc,&.k-desc .k-icon.k-asc{color:", _sortInstanceProperty(table).disabledColor, ";}}.k-table-spin.k-overlay{z-index:2;}.k-table-empty{text-align:center;}tr.k-expand{td{padding:0;background:#fdfcff;}}&.k-with-expand{tr:not(.k-expand){td{border-bottom:none;}}}.k-table-expand{border-top:", table.border, ";box-sizing:content-box;}tbody tr.k-selected td{background:", table.selectedBgColor, ";}.k-table-arrow{margin-right:", table.arrow.gap, ";transition:transform ", table.transition, ";position:relative;top:-1px;}tr.k-spreaded{.k-table-arrow{transform:rotate(90deg);}}.k-table-resize{height:100%;width:", table.resizeWidth, ";position:absolute;top:0;left:-1px;cursor:ew-resize;}tr.k-dragging{opacity:", table.draggingOpacity, ";}.k-table-scrollbar{overflow-x:auto;overflow-y:hidden;}.k-table-scrollbar-inner{height:1px;}");
81
86
  }
82
87
  export function makeGroupMenuStyles() {
83
88
  return /*#__PURE__*/css("max-height:", table.group.menuMaxHeight, ";overflow:auto;.k-dropdown-item.k-active{color:", table.group.activeColor, ";}");
@@ -33,6 +33,7 @@ export interface TableProps<T = any, K extends TableRowKey = TableRowKey, C exte
33
33
  resizable?: boolean;
34
34
  minColWidth?: number;
35
35
  widthStoreKey?: string;
36
+ draggable?: boolean;
36
37
  }
37
38
  export interface TableEvents<T = any, K extends TableRowKey = number> {
38
39
  clickRow: [T, number, K];
@@ -55,7 +55,8 @@ var typeDefs = {
55
55
  showIndeterminate: Boolean,
56
56
  resizable: Boolean,
57
57
  minColWidth: Number,
58
- widthStoreKey: String
58
+ widthStoreKey: String,
59
+ draggable: Boolean
59
60
  };
60
61
 
61
62
  var defaults = function defaults() {
@@ -66,7 +66,6 @@ export default function ($props, $blocks, $__proto__) {
66
66
  maxCols = _this$columns$getData.maxCols;
67
67
 
68
68
  var _this$fixedColumns = this.fixedColumns,
69
- setScrollPosition = _this$fixedColumns.setScrollPosition,
70
69
  scrollPosition = _this$fixedColumns.scrollPosition,
71
70
  hasFixed = _this$fixedColumns.hasFixed,
72
71
  getHasFixedLeft = _this$fixedColumns.getHasFixedLeft,
@@ -131,16 +130,21 @@ export default function ($props, $blocks, $__proto__) {
131
130
  'children': _$cc(FixedColumnsContext.Provider, {
132
131
  'value': offsetMap,
133
132
  'children': _$ce(2, 'thead', _$ma(columns, function ($value, $key) {
134
- return _$ce(2, 'tr', [$key === 0 && checkType !== 'none' ? _$cv('th', _extends({}, getClassAndStyleForFixed({
135
- fixed: hasFixedLeft ? 'left' : false
136
- }, 0), {
137
- 'rowspan': maxRows
138
- }), checkType === 'checkbox' ? _$cc(Checkbox, {
139
- 'value': allCheckedStatus === AllCheckedStatus.All,
140
- 'indeterminate': showIndeterminate && allCheckedStatus == AllCheckedStatus.Indeterminate,
141
- 'ev-$change:value': toggleCheckedAll,
142
- 'disabled': !hasData
143
- }) : undefined) : undefined, $value], 0);
133
+ return _$ce(2, 'tr', _$cc(TransitionGroup, {
134
+ 'name': 'k-fade-expand',
135
+ 'move': false,
136
+ 'children': [$key === 0 && checkType !== 'none' ? _$cv('th', _extends({}, getClassAndStyleForFixed({
137
+ fixed: hasFixedLeft ? 'left' : false
138
+ }, 0), {
139
+ 'rowspan': maxRows,
140
+ 'key': '$checktype'
141
+ }), checkType === 'checkbox' ? _$cc(Checkbox, {
142
+ 'value': allCheckedStatus === AllCheckedStatus.All,
143
+ 'indeterminate': showIndeterminate && allCheckedStatus == AllCheckedStatus.Indeterminate,
144
+ 'ev-$change:value': toggleCheckedAll,
145
+ 'disabled': !hasData
146
+ }) : undefined) : undefined, $value]
147
+ }), 2);
144
148
  }, $this), 4)
145
149
  })
146
150
  })
@@ -165,23 +169,22 @@ export default function ($props, $blocks, $__proto__) {
165
169
  onRowDragEnd = _this$draggable.onRowDragEnd,
166
170
  draggingKey = _this$draggable.draggingKey;
167
171
 
168
- var tbody = _$cc(TransitionGroup, {
169
- 'tag': 'tbody',
170
- 'name': 'k-fade',
171
- 'move': !draggingKey.value,
172
- 'children': !hasData ? _$ce(2, 'tr', _$ce(2, 'td', (_$blocks['empty'] = function ($super) {
173
- return _$('/(ㄒoㄒ)/~~ 没有找到亲要的数据哦~');
174
- }, __$blocks['empty'] = function ($super, data) {
175
- var block = $blocks['empty'];
172
+ var tbody = _$ce(2, 'tbody', !hasData ? _$ce(2, 'tr', _$ce(2, 'td', (_$blocks['empty'] = function ($super) {
173
+ return _$('/(ㄒoㄒ)/~~ 没有找到亲要的数据哦~');
174
+ }, __$blocks['empty'] = function ($super, data) {
175
+ var block = $blocks['empty'];
176
176
 
177
- var callBlock = function callBlock() {
178
- return _$blocks['empty'].call($this, $super, data);
179
- };
177
+ var callBlock = function callBlock() {
178
+ return _$blocks['empty'].call($this, $super, data);
179
+ };
180
180
 
181
- return block ? block.call($this, callBlock, data) : callBlock();
182
- }, __$blocks['empty'](_$no)), 0, 'k-table-empty', {
183
- 'colspan': colCount
184
- }), 2, null, null, 'table-empty') : function () {
181
+ return block ? block.call($this, callBlock, data) : callBlock();
182
+ }, __$blocks['empty'](_$no)), 0, 'k-table-empty', {
183
+ 'colspan': colCount
184
+ }), 2, null, null, 'table-empty') : _$cc(TransitionGroup, {
185
+ 'name': 'k-fade-in-left',
186
+ 'move': !draggingKey.value,
187
+ 'children': function () {
185
188
  var rows = [];
186
189
  loopData(function (value, index, level, hidden) {
187
190
  // don't render if row is hidden
@@ -286,7 +289,7 @@ export default function ($props, $blocks, $__proto__) {
286
289
  });
287
290
  return rows;
288
291
  }()
289
- });
292
+ }), 0);
290
293
 
291
294
  var tableWidthPx = tableWidth.value ? tableWidth.value + "px" : null;
292
295
  var _this$stickyScrollbar = this.stickyScrollbar,
@@ -2,7 +2,7 @@ import { VNodeComponentClass, Props } from 'intact-react';
2
2
  import { TableColumn, TableColumnProps } from './column';
3
3
  export declare const context: {
4
4
  Provider: import("intact").ComponentConstructor<import("intact").Component<import("../context").ProviderProps<("none" | "radio" | "checkbox") | undefined>, {}, {}, {}>>;
5
- Consumer: import("intact").ComponentConstructor<import("intact").Component<{}, {}, {}, {}>>;
5
+ Consumer: import("intact").ComponentConstructor<import("intact").Component<import("../context").ConsumerProps<("none" | "radio" | "checkbox") | undefined>, {}, {}, {}>>;
6
6
  };
7
7
  export declare function useColumns(): {
8
8
  getColumns: () => VNodeComponentClass<TableColumn<any>>[][];
@@ -6,7 +6,7 @@ import type { useScroll } from './useScroll';
6
6
  declare type ScrollPosition = 'left' | 'middle' | 'right';
7
7
  export declare const context: {
8
8
  Provider: import("intact").ComponentConstructor<import("intact").Component<import("../context").ProviderProps<any>, {}, {}, {}>>;
9
- Consumer: import("intact").ComponentConstructor<import("intact").Component<{}, {}, {}, {}>>;
9
+ Consumer: import("intact").ComponentConstructor<import("intact").Component<import("../context").ConsumerProps<any>, {}, {}, {}>>;
10
10
  };
11
11
  export declare function useFixedColumns(getColumns: () => VNodeComponentClass<TableColumn>[][], { scrollRef, callbacks }: ReturnType<typeof useScroll>, widthMap: State<Record<TableRowKey, number>>): {
12
12
  scrollPosition: State<ScrollPosition | null>;
@@ -17,7 +17,10 @@ export function useFixedColumns(getColumns, _ref, widthMap) {
17
17
  var offsetMap = {};
18
18
  callbacks.push(setScrollPosition);
19
19
  instance.on('$receive:children', handleFixedColumns);
20
- watchState(widthMap, handleFixedColumns);
20
+ watchState(widthMap, function () {
21
+ handleFixedColumns();
22
+ updateScrollPositionOnResize();
23
+ });
21
24
  var throttleUpdate = throttle(function () {
22
25
  if (instance.$unmounted) return;
23
26
  updateScrollPositionOnResize();
@@ -102,7 +105,7 @@ export function useFixedColumns(getColumns, _ref, widthMap) {
102
105
  if (scrollDom.scrollWidth - scrollDom.offsetWidth <= 0) {
103
106
  scrollPosition.set(null);
104
107
  } else {
105
- scrollPosition.set('left');
108
+ setScrollPosition(scrollRef.value.scrollLeft);
106
109
  }
107
110
  }
108
111
 
@@ -4,7 +4,7 @@ declare type ContextValue = {
4
4
  };
5
5
  export declare const context: {
6
6
  Provider: import('intact-react').ComponentConstructor<import("intact").Component<import("../context").ProviderProps<ContextValue>, {}, {}, {}>>;
7
- Consumer: import("intact").ComponentConstructor<import("intact").Component<{}, {}, {}, {}>>;
7
+ Consumer: import("intact").ComponentConstructor<import("intact").Component<import("../context").ConsumerProps<ContextValue>, {}, {}, {}>>;
8
8
  };
9
9
  export declare function useGroup(): {
10
10
  onSelect: (value: any, groupValue: any, onChange: ContextValue['onChange']) => void;
@@ -3,7 +3,7 @@ import type { TableRowKey } from './table';
3
3
  import { State } from '../../hooks/useState';
4
4
  export declare const context: {
5
5
  Provider: import("intact").ComponentConstructor<import("intact").Component<import("../context").ProviderProps<any>, {}, {}, {}>>;
6
- Consumer: import("intact").ComponentConstructor<import("intact").Component<{}, {}, {}, {}>>;
6
+ Consumer: import("intact").ComponentConstructor<import("intact").Component<import("../context").ConsumerProps<any>, {}, {}, {}>>;
7
7
  };
8
8
  export declare function useResizable(scrollRef: RefObject<HTMLElement>, tableRef: RefObject<HTMLElement>, tableWidth: State<number | null>, widthMap: State<Record<TableRowKey, number>>, storeWidth: () => void): {
9
9
  start: (e: MouseEvent) => void;
@@ -1,6 +1,6 @@
1
1
  export declare const context: {
2
2
  Provider: import('intact-react').ComponentConstructor<import("intact").Component<import("../context").ProviderProps<any>, {}, {}, {}>>;
3
- Consumer: import("intact").ComponentConstructor<import("intact").Component<{}, {}, {}, {}>>;
3
+ Consumer: import("intact").ComponentConstructor<import("intact").Component<import("../context").ConsumerProps<any>, {}, {}, {}>>;
4
4
  };
5
5
  export declare function useSortable(): {
6
6
  onChange: (key: string) => void;
@@ -4,6 +4,7 @@ import { useInstance, onMounted, onBeforeUnmount, createRef } from 'intact-react
4
4
  import ResizeObserver from 'resize-observer-polyfill';
5
5
  import { useState } from '../../hooks/useState';
6
6
  import { debounce } from '../utils';
7
+ import { scrollbarWidth } from '../position';
7
8
  var hasLocalStorage = typeof localStorage !== 'undefined';
8
9
  export function useWidth(scrollRef, getColumns) {
9
10
  var instance = useInstance();
@@ -75,7 +76,12 @@ export function useWidth(scrollRef, getColumns) {
75
76
  if (resizable) {
76
77
  var hasBorder = type === 'grid' || type === 'border';
77
78
  var _tableWidth = tableRef.value.offsetWidth;
78
- var containerWidth = scrollRef.value.offsetWidth + (hasBorder ? -2 : 0);
79
+ var container = scrollRef.value;
80
+ var containerWidth = container.offsetWidth + (hasBorder ? -2 : 0); // detect whether the table has vertical scrollbar or not
81
+
82
+ if (container.scrollHeight > container.clientHeight) {
83
+ containerWidth = containerWidth - scrollbarWidth();
84
+ }
79
85
 
80
86
  if (_tableWidth < containerWidth) {
81
87
  tableWidth.set(isMount ? null : containerWidth);
@@ -22,7 +22,7 @@ describe('Tabs', function () {
22
22
  instance._add();
23
23
 
24
24
  _context.next = 7;
25
- return wait(300);
25
+ return wait(500);
26
26
 
27
27
  case 7:
28
28
  expect(tabs.outerHTML).to.matchSnapshot(); // prev & next
@@ -10,6 +10,10 @@ var closeFontSizeMap = {
10
10
  mini: '16px'
11
11
  };
12
12
  var defaults = deepDefaults({
13
+ get transition() {
14
+ return theme.transition.middle;
15
+ },
16
+
13
17
  get borderColor() {
14
18
  return theme.color.border;
15
19
  },
@@ -55,7 +59,10 @@ var defaults = deepDefaults({
55
59
  },
56
60
  // no-border-card
57
61
  noBorderCard: {
58
- bgColor: "#eee",
62
+ get bgColor() {
63
+ return theme.color.bg;
64
+ },
65
+
59
66
  gutter: "4px"
60
67
  }
61
68
  }, sizes.reduce(function (memo, size) {
@@ -86,7 +93,7 @@ setDefault(function () {
86
93
  }).tabs;
87
94
  });
88
95
  export function makeStyles() {
89
- return /*#__PURE__*/css("border-bottom:", tabs.border, ";position:relative;line-height:1;.k-tab{margin:", tabs.margin, ";cursor:pointer;display:inline-block;text-align:center;color:", tabs.color, ";position:relative;vertical-align:middle;&:hover,&.k-active{color:", tabs.activeColor, ";}&.k-disabled{color:", theme.color.disabled, ";cursor:not-allowed;}}.k-tab-close{margin-right:-", tabs.closeGutter, ";margin-left:", tabs.closeGutter, ";position:relative;top:-1px;}.k-tabs-active-bar{transition:all ", theme.transition, ";position:absolute;left:0;height:", tabs.highlight.height, ";background:", tabs.highlight.bgColor, ";bottom:calc(-", tabs.highlight.height, " / 2);}&.k-vertical{display:inline-block;border-bottom:none;border-right:", tabs.border, ";.k-tab{display:block;margin:0;padding:", tabs.verticalPadding, ";}.k-tabs-active-bar{left:auto;top:0;right:calc(-", tabs.highlight.height, " / 2);width:", tabs.highlight.height, ";height:auto;}}&.k-tabs-card{.k-tab{margin:0;}.k-tabs-active-bar{background:#fff;top:0;height:auto;z-index:-1;border-left:", tabs.border, ";border-right:", tabs.border, ";&:before{content:'';display:block;position:absolute;height:", tabs.highlight.height, ";background:", theme.color.primary, ";top:0;left:-", tabs.borderWidth, ";right:-", tabs.borderWidth, ";}}&.k-vertical{.k-tabs-active-bar{left:0;width:auto;border-left:none;border-right:none;border-top:", tabs.border, ";border-bottom:", tabs.border, ";&:before{width:", tabs.highlight.height, ";left:0;right:auto;bottom:0;height:auto;}}}}&.k-tabs-border-card{border:", tabs.border, ";border-bottom:none;background:", tabs.borderCard.bgColor, ";.k-tab{margin:0;}.k-tabs-active-bar{background:#fff;top:0;height:auto;z-index:-1;}&.k-vertical{border-right:none;border-bottom:", tabs.border, ";.k-tabs-active-bar{width:auto;height:0;left:0;bottom:0;right:0;}}}&.k-tabs-no-border-card{border-bottom:none;.k-tab{margin-right:", tabs.noBorderCard.gutter, ";&:before{content:'';display:block;position:absolute;background:", tabs.noBorderCard.bgColor, ";top:0;bottom:0;left:0;right:0;z-index:-1;}}.k-tabs-acitve-bar{border:none;&:before{left:0;right:0;}}.k-vertical{border-right:none;.k-tab{margin-top:", tabs.noBorderCard.gutter, ";}.k-tabs-active-bar{border:none;}}}&:not(.k-vertical){.k-tabs-scroll{overflow:hidden;position:relative;padding-bottom:1px;margin-bottom:-1px;}&.k-tabs-border-card,&.k-tabs-no-border-card{.k-tabs-scroll{padding-bottom:0;margin-bottom:0;}}.k-tabs-wrapper{white-space:nowrap;float:left;transition:transform ", theme.transition, ";}.k-tabs-prev,.k-tabs-next{position:absolute;top:0;width:", tabs.navigatorWidth, "!important;}.k-tabs-prev{left:0;}.k-tabs-next{right:0;}&.k-is-scroll{padding:0 ", tabs.navigatorWidth, ";}}", _mapInstanceProperty(sizes).call(sizes, function (size) {
96
+ return /*#__PURE__*/css("border-bottom:", tabs.border, ";position:relative;line-height:1;.k-tab{margin:", tabs.margin, ";cursor:pointer;display:inline-block;text-align:center;color:", tabs.color, ";position:relative;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;&:hover,&.k-active{color:", tabs.activeColor, ";}&.k-disabled{color:", theme.color.disabled, ";cursor:not-allowed;}}.k-tab-close{margin-right:-", tabs.closeGutter, ";margin-left:", tabs.closeGutter, ";position:relative;top:-1px;}.k-tabs-active-bar{transition:all ", tabs.transition, ";position:absolute;left:0;height:", tabs.highlight.height, ";background:", tabs.highlight.bgColor, ";bottom:calc(-", tabs.highlight.height, " / 2);}&.k-vertical{display:inline-block;border-bottom:none;border-right:", tabs.border, ";.k-tab{display:block;margin:0;padding:", tabs.verticalPadding, ";}.k-tabs-active-bar{left:auto;top:0;right:calc(-", tabs.highlight.height, " / 2);width:", tabs.highlight.height, ";height:auto;}}&.k-tabs-card{.k-tab{margin:0;}.k-tabs-active-bar{background:#fff;top:0;height:auto;z-index:-1;border-left:", tabs.border, ";border-right:", tabs.border, ";&:before{content:'';display:block;position:absolute;height:", tabs.highlight.height, ";background:", theme.color.primary, ";top:0;left:-", tabs.borderWidth, ";right:-", tabs.borderWidth, ";}}&.k-vertical{.k-tabs-active-bar{left:0;width:auto;border-left:none;border-right:none;border-top:", tabs.border, ";border-bottom:", tabs.border, ";&:before{width:", tabs.highlight.height, ";left:0;right:auto;bottom:0;height:auto;}}}}&.k-tabs-border-card{border:", tabs.border, ";border-bottom:none;background:", tabs.borderCard.bgColor, ";.k-tab{margin:0;}.k-tabs-active-bar{background:#fff;top:0;height:auto;z-index:-1;}&.k-vertical{border-right:none;border-bottom:", tabs.border, ";.k-tabs-active-bar{width:auto;height:0;left:0;bottom:0;right:0;}}}&.k-tabs-no-border-card{border-bottom:none;.k-tab{margin-right:", tabs.noBorderCard.gutter, ";&:before{content:'';display:block;position:absolute;background:", tabs.noBorderCard.bgColor, ";top:0;bottom:0;left:0;right:0;z-index:-1;}}.k-tabs-acitve-bar{border:none;&:before{left:0;right:0;}}&.k-vertical{border-right:none;.k-tab:not(:first-of-type){margin:", tabs.noBorderCard.gutter, " 0 0;}.k-tabs-active-bar{border:none;}}}&:not(.k-vertical){.k-tabs-scroll{overflow:hidden;position:relative;padding-bottom:1px;margin-bottom:-1px;}&.k-tabs-border-card,&.k-tabs-no-border-card{.k-tabs-scroll{padding-bottom:0;margin-bottom:0;}}.k-tabs-wrapper{white-space:nowrap;float:left;transition:transform ", tabs.transition, ";}.k-tabs-prev,.k-tabs-next{position:absolute;top:0;width:", tabs.navigatorWidth, "!important;}.k-tabs-prev{left:0;}.k-tabs-next{right:0;}&.k-is-scroll{padding:0 ", tabs.navigatorWidth, ";}}", _mapInstanceProperty(sizes).call(sizes, function (size) {
90
97
  var styles = tabs[size];
91
98
  return "\n &.k-" + size + " {\n .k-tab {\n font-size: " + styles.fontSize + ";\n height: " + styles.height + ";\n line-height: " + styles.height + ";\n padding: " + styles.padding + ";\n }\n .k-tab-close .k-icon {\n font-size: " + styles.closeFontSize + ";\n }\n }\n ";
92
99
  }), ";");
@@ -5,7 +5,8 @@ import { Icon } from '../icon';
5
5
  import { getRestProps } from '../utils';
6
6
  import { isNullOrUndefined } from 'intact-shared';
7
7
  var _$tmp0 = {
8
- 'className': 'ion-ios-close-empty'
8
+ 'className': 'ion-ios-close-empty',
9
+ 'hoverable': true
9
10
  };
10
11
  export default function ($props, $blocks, $__proto__) {
11
12
  var _classNameObj;
@@ -1,4 +1,4 @@
1
- import { useInstance, onMounted, onUpdated, findDomFromVNode } from 'intact-react';
1
+ import { useInstance, onMounted, onUpdated, findDomFromVNode, nextTick } from 'intact-react';
2
2
  import { useState } from '../../hooks/useState';
3
3
  export function useActiveBar() {
4
4
  var instance = useInstance();
@@ -53,7 +53,10 @@ export function useActiveBar() {
53
53
  }
54
54
  }
55
55
 
56
- onMounted(generateStyle);
57
- onUpdated(generateStyle);
56
+ onMounted(generateStyle); // Tabs maybe embed into Transition, therefore handle style nextTick
57
+
58
+ onUpdated(function () {
59
+ return nextTick(generateStyle);
60
+ });
58
61
  return styles;
59
62
  }
@@ -35,6 +35,7 @@ export var Tag = /*#__PURE__*/function (_Component) {
35
35
 
36
36
  _proto.onClose = function onClose(e) {
37
37
  e.stopPropagation();
38
+ if (this.get('disabled')) return;
38
39
  this.trigger('close', e);
39
40
 
40
41
  if (!e.defaultPrevented) {
@@ -60,6 +60,12 @@ var defaults = deepDefaults({
60
60
  fontSize: '16px',
61
61
  gap: '2px'
62
62
  }
63
+ },
64
+ none: {
65
+ get bgColor() {
66
+ return theme.color.bg;
67
+ }
68
+
63
69
  }
64
70
  }, types.reduce(function (memo, type) {
65
71
  if (type === 'disabled') return memo;
@@ -82,12 +88,12 @@ setDefault(function () {
82
88
  }).tag;
83
89
  });
84
90
  export function makeStyles() {
85
- return /*#__PURE__*/css("display:inline-flex;align-items:center;padding:", tag.padding, ";border:1px solid ", tag.borderColor, ";border-radius:", tag.borderRadius, ";font-size:", tag.fontSize, ";height:", tag.height, ";.k-tag-close{font-size:", tag.close.fontSize, ";margin-left:", tag.close.gap, ";}", _mapInstanceProperty(types).call(types, function (t) {
91
+ return /*#__PURE__*/css("display:inline-flex;align-items:center;padding:", tag.padding, ";border:1px solid ", tag.borderColor, ";border-radius:", tag.borderRadius, ";font-size:", tag.fontSize, ";height:", tag.height, ";.k-tag-close{font-size:", tag.close.fontSize, ";margin-left:", tag.close.gap, ";}&.k-none{border:none;background:", tag.none.bgColor, ";}", _mapInstanceProperty(types).call(types, function (t) {
86
92
  var styles = tag[t];
87
93
  return /*#__PURE__*/css("&.k-", t, "{color:", styles.color, ";border-color:", styles.color, ";background:", styles.bgColor, ";}");
88
94
  }), " ", _mapInstanceProperty(sizes).call(sizes, function (s) {
89
95
  if (s === 'default') return;
90
96
  var styles = tag[s];
91
97
  return /*#__PURE__*/css("&.k-", s, "{padding:", styles.padding, ";height:", styles.height, ";.k-tag-close{font-size:", styles.close.fontSize, ";margin-left:", styles.close.gap, ";}}");
92
- }), "&.k-dashed{border-style:dashed;}&.k-none{border:none;}");
98
+ }), "&.k-dashed{border-style:dashed;}");
93
99
  }
@@ -3,7 +3,8 @@ import { BasePickerProps, BasePickerEvents, BasePickerBlocks } from '../datepick
3
3
  import { TypeDefs } from 'intact-react';
4
4
  export declare const YEAR_FORMAT = "YYYY-MM-DD ";
5
5
  export declare const TIME_FORMAT = "HH:mm:ss";
6
- export declare const NOW: dayjs.Dayjs;
6
+ export declare const NOW_START: dayjs.Dayjs;
7
+ export declare const NOW_END: dayjs.Dayjs;
7
8
  export declare const PREFIX: string;
8
9
  export interface TimepickerProps<M extends boolean = boolean, R extends boolean = boolean> extends BasePickerProps<string, M, R> {
9
10
  step?: string;
@@ -3,8 +3,9 @@ import { getNowDate } from '../datepicker/helpers';
3
3
  import { BasePicker } from '../datepicker/basepicker';
4
4
  export var YEAR_FORMAT = 'YYYY-MM-DD ';
5
5
  export var TIME_FORMAT = 'HH:mm:ss';
6
- export var NOW = getNowDate();
7
- export var PREFIX = NOW.format(YEAR_FORMAT);
6
+ export var NOW_START = getNowDate();
7
+ export var NOW_END = getNowDate(true);
8
+ export var PREFIX = NOW_START.format(YEAR_FORMAT);
8
9
  export var typeDefs = _extends({}, BasePicker.typeDefs, {
9
10
  value: [String, Array],
10
11
  min: String,