jsl-ui 9.28.7 → 10.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 (166) hide show
  1. package/docs/AutoSuggestComponent.md +17 -0
  2. package/docs/ButtonComponent.md +14 -0
  3. package/docs/CheckBoxComponent.md +12 -0
  4. package/docs/DateComponent.md +12 -0
  5. package/docs/DateRangeComponent.md +13 -0
  6. package/docs/DateTimeComponent.md +13 -0
  7. package/docs/DialogComponent.md +15 -0
  8. package/docs/ExpanderComponent.md +13 -0
  9. package/docs/FormComponent.md +15 -0
  10. package/docs/FormFieldComponent.md +15 -0
  11. package/docs/GridComponent.md +19 -0
  12. package/docs/InputComponent.md +15 -0
  13. package/docs/IntervalComponent.md +13 -0
  14. package/docs/LoadingComponent.md +12 -0
  15. package/docs/NavigationComponent.md +17 -0
  16. package/docs/Notification.md +14 -0
  17. package/docs/NotificationComponent.md +13 -0
  18. package/docs/NumberComponent.md +12 -0
  19. package/docs/OverlayComponent.md +12 -0
  20. package/docs/ProgressComponent.md +12 -0
  21. package/docs/README.md +24 -0
  22. package/docs/RibbonMenuComponent.md +14 -0
  23. package/docs/SelectComponent.md +15 -0
  24. package/docs/SplitterComponent.md +14 -0
  25. package/docs/StackPanelComponent.md +13 -0
  26. package/docs/TabsComponent.md +16 -0
  27. package/docs/TimeComponent.md +13 -0
  28. package/docs/TreeViewComponent.md +16 -0
  29. package/examples/showcase/checks-and-expanders.ts +163 -0
  30. package/examples/showcase/cultures.ts +39 -0
  31. package/examples/showcase/dates.ts +182 -0
  32. package/examples/showcase/dialogs.ts +184 -0
  33. package/examples/showcase/feedback-and-navigation.ts +174 -0
  34. package/examples/showcase/fields.ts +178 -0
  35. package/examples/showcase/fonts/Jost-Variable.ttf +0 -0
  36. package/examples/showcase/fonts/OFL-Jost.txt +93 -0
  37. package/examples/showcase/grids.ts +150 -0
  38. package/examples/showcase/index.html +60 -0
  39. package/examples/showcase/layout-and-navigation.ts +47 -0
  40. package/examples/showcase/nivona.css +98 -0
  41. package/examples/showcase/selects.ts +158 -0
  42. package/examples/showcase/showcase.css +231 -0
  43. package/examples/showcase/showcase.ts +214 -0
  44. package/examples/showcase/tabs.ts +161 -0
  45. package/examples/showcase/themes.css +83 -0
  46. package/examples/showcase/themes.ts +54 -0
  47. package/lib/components/IntervalComponent.d.ts +5 -0
  48. package/lib/components/IntervalComponent.js +29 -13
  49. package/lib/components/auto-suggest/AutoSuggestComponent.d.ts +11 -9
  50. package/lib/components/auto-suggest/AutoSuggestComponent.js +25 -38
  51. package/lib/components/button/ButtonComponent.d.ts +30 -1
  52. package/lib/components/button/ButtonComponent.js +85 -4
  53. package/lib/components/checkbox/CheckBoxComponent.d.ts +11 -1
  54. package/lib/components/checkbox/CheckBoxComponent.js +66 -56
  55. package/lib/components/checkbox/CheckBoxStyle.scss +72 -85
  56. package/lib/components/date/DateComponent.d.ts +10 -0
  57. package/lib/components/date/DateComponent.js +92 -44
  58. package/lib/components/date-range/DateRangeComponent.d.ts +14 -3
  59. package/lib/components/date-range/DateRangeComponent.js +96 -86
  60. package/lib/components/date-range/DateRangeStyle.scss +35 -11
  61. package/lib/components/date-time/DateTimeComponent.d.ts +8 -0
  62. package/lib/components/date-time/DateTimeComponent.js +64 -23
  63. package/lib/components/date-time/DateTimeStyle.scss +10 -7
  64. package/lib/components/dialog/DialogComponent.d.ts +21 -7
  65. package/lib/components/dialog/DialogComponent.js +179 -122
  66. package/lib/components/expander/ExpanderComponent.d.ts +15 -1
  67. package/lib/components/expander/ExpanderComponent.js +85 -64
  68. package/lib/components/expander/ExpanderStyle.scss +61 -47
  69. package/lib/components/form-field/FormFieldComponent.d.ts +45 -15
  70. package/lib/components/form-field/FormFieldComponent.js +249 -96
  71. package/lib/components/form-field/FormFieldStyle.scss +36 -87
  72. package/lib/components/form-field/create-control.d.ts +7 -0
  73. package/lib/components/form-field/create-control.js +48 -0
  74. package/lib/components/input/InputComponent.d.ts +18 -1
  75. package/lib/components/input/InputComponent.js +68 -93
  76. package/lib/components/loading/LoadingComponent.d.ts +9 -2
  77. package/lib/components/loading/LoadingComponent.js +13 -12
  78. package/lib/components/loading/LoadingStyle.css +19 -29
  79. package/lib/components/navigation/NavigationComponent.d.ts +34 -10
  80. package/lib/components/navigation/NavigationComponent.js +261 -33
  81. package/lib/components/navigation/NavigationStyle.scss +62 -226
  82. package/lib/components/notification/Notification.d.ts +37 -4
  83. package/lib/components/notification/Notification.js +160 -41
  84. package/lib/components/notification/Notification.scss +103 -19
  85. package/lib/components/number/NumberComponent.d.ts +16 -2
  86. package/lib/components/number/NumberComponent.js +54 -53
  87. package/lib/components/overlay/OverlayComponent.d.ts +13 -7
  88. package/lib/components/overlay/OverlayComponent.js +46 -114
  89. package/lib/components/overlay/overlay.css +18 -57
  90. package/lib/components/progress/ProgressComponent.d.ts +1 -0
  91. package/lib/components/progress/ProgressComponent.js +6 -6
  92. package/lib/components/progress/ProgressStyle.scss +5 -15
  93. package/lib/components/ribbon-menu/RibbonMenuComponent.js +2 -2
  94. package/lib/components/ribbon-menu/RibbonMenuStyle.scss +6 -76
  95. package/lib/components/select/SelectComponent.d.ts +33 -3
  96. package/lib/components/select/SelectComponent.js +312 -278
  97. package/lib/components/select/SelectDDAreaComponent.d.ts +13 -7
  98. package/lib/components/select/SelectDDAreaComponent.js +215 -256
  99. package/lib/components/select/SelectStyle.scss +204 -186
  100. package/lib/components/slider/nouislider.css +40 -54
  101. package/lib/components/stack-panel/SplitterComponent.d.ts +19 -3
  102. package/lib/components/stack-panel/SplitterComponent.js +94 -111
  103. package/lib/components/stack-panel/SplitterStyle.scss +9 -45
  104. package/lib/components/stack-panel/StackPanelComponent.js +3 -3
  105. package/lib/components/stack-panel/StackPanelStyle.scss +10 -52
  106. package/lib/components/tabs/TabsComponent.d.ts +17 -1
  107. package/lib/components/tabs/TabsComponent.js +247 -123
  108. package/lib/components/tabs/TabsStyle.scss +138 -75
  109. package/lib/components/time/TimeComponent.d.ts +5 -0
  110. package/lib/components/time/TimeComponent.js +61 -69
  111. package/lib/components/time/TimeComponent.scss +4 -4
  112. package/lib/components/tree-view/TreeViewComponent.d.ts +10 -4
  113. package/lib/components/tree-view/TreeViewComponent.js +65 -32
  114. package/lib/components/tree-view/TreeViewStyle.scss +12 -96
  115. package/lib/core/date.d.ts +2 -0
  116. package/lib/core/date.js +6 -0
  117. package/lib/core/jq.js +11 -8
  118. package/lib/grid/slick-default-theme.css +107 -31
  119. package/lib/grid/slick.creator.js +23 -5
  120. package/lib/grid/slick.formatters.js +4 -3
  121. package/lib/grid/slick.grid.css +38 -26
  122. package/lib/grid/slick.grid.d.ts +1 -0
  123. package/lib/grid/slick.grid.js +2 -3
  124. package/lib/grid.css +3413 -454
  125. package/lib/index.css +2500 -1031
  126. package/lib/index.css.map +1 -1
  127. package/lib/index.d.ts +1 -0
  128. package/lib/index.js +1 -1
  129. package/lib/index.js.map +1 -1
  130. package/lib/interaction/moveable.d.ts +1 -0
  131. package/lib/interaction/moveable.js +8 -0
  132. package/lib/interaction/resizable.d.ts +1 -0
  133. package/lib/interaction/resizable.js +9 -0
  134. package/lib/ui/auto.suggest.css +31 -14
  135. package/lib/ui/auto.suggest.d.ts +1 -0
  136. package/lib/ui/auto.suggest.js +88 -18
  137. package/lib/ui/base.css +2 -48
  138. package/lib/ui/button.css +134 -0
  139. package/lib/ui/date-input.css +11 -0
  140. package/lib/ui/date.picker/css/tiny-date-picker.css +124 -325
  141. package/lib/ui/date.picker/date-picker-options.js +4 -3
  142. package/lib/ui/date.picker/lib/date-manip.js +9 -0
  143. package/lib/ui/date.picker/mode/base-mode.d.ts +2 -1
  144. package/lib/ui/date.picker/mode/base-mode.js +112 -22
  145. package/lib/ui/date.picker/mode/dropdown-mode.d.ts +2 -4
  146. package/lib/ui/date.picker/mode/dropdown-mode.js +29 -42
  147. package/lib/ui/date.picker/mode/index.d.ts +2 -1
  148. package/lib/ui/date.picker/mode/modal-mode.d.ts +2 -1
  149. package/lib/ui/date.picker/mode/modal-mode.js +4 -2
  150. package/lib/ui/date.picker/mode/permanent-mode.d.ts +2 -1
  151. package/lib/ui/date.picker/views/day-picker.js +24 -15
  152. package/lib/ui/date.picker/views/month-picker.js +1 -1
  153. package/lib/ui/date.picker/views/year-picker.js +3 -2
  154. package/lib/ui/date.picker.d.ts +2 -1
  155. package/lib/ui/dialog.css +144 -108
  156. package/lib/ui/dialog.d.ts +19 -1
  157. package/lib/ui/dialog.js +178 -60
  158. package/lib/ui/input.css +35 -0
  159. package/lib/ui/number.input.js +50 -37
  160. package/lib/ui/theme.css +28 -0
  161. package/package.json +12 -8
  162. package/lib/components/drop-down/DropDownComponent.d.ts +0 -27
  163. package/lib/components/drop-down/DropDownComponent.js +0 -60
  164. package/lib/components/expander/OldExpanderStyle.scss +0 -37
  165. package/lib/ui/drop.down.d.ts +0 -52
  166. package/lib/ui/drop.down.js +0 -2112
@@ -1,187 +1,205 @@
1
- .select-comp {
2
- border: solid 1px #bdbdbd;
3
- border-radius: 0.2rem;
4
- position: relative;
5
- min-width: 8rem;
6
- display: inline-block;
7
- box-sizing: border-box;
8
- padding-left: 0.2rem;
9
- height: 1.6rem;
10
- line-height: 1.6rem;
11
- vertical-align: middle;
12
-
13
- &.expanded {
14
- border-color: #3B99FF;
15
- }
16
-
17
- &.disabled {
18
- color:#999999;
19
- }
20
-
21
- .sel-result {
22
-
23
- .clear-btn {
24
- position: absolute;
25
- right: 1.2rem;
26
- top: 0;
27
- font-size: 1.4rem;
28
- line-height: 1.4rem;
29
- font-weight: bold;
30
- color: #999999;
31
- font-family: sans-serif;
32
- cursor: pointer;
33
- opacity: 0.3;
34
- z-index: 10;
35
- border: none;
36
- background: none;
37
-
38
- &:not([disabled]):hover {
39
- color:#d00000;
40
- }
41
- }
42
-
43
- &:hover .clear-btn:not([disabled]) {
44
- opacity: 1;
45
- }
46
- }
47
-
48
- .sel-expander {
49
- position: absolute;
50
- top: 0;
51
- right: 0;
52
- bottom: 0;
53
- width: 1.5rem;
54
- box-sizing: border-box;
55
- border: none;
56
- // border-left: solid 2px #bdbdbd;
57
- // border-bottom-left-radius: 3px;
58
- // border-top-left-radius: 3px;
59
- text-align: center;
60
- border-bottom-right-radius: 0.2rem;
61
- border-top-right-radius: 0.2rem;
62
- background: white;
63
- opacity: 0.7;
64
- cursor: pointer;
65
- font-size: 0.65em;
66
-
67
- &:focus {
68
- outline:0;
69
- color: white;
70
- background: #3b9aff;
71
- }
72
- }
73
-
74
- .sel-expander::before {
75
- content: "";
76
- display: block;
77
- position: absolute;
78
- left: 0;
79
- top: 2px;
80
- bottom: 2px;
81
- width: 0;
82
- box-sizing: content-box;
83
- padding: 0;
84
- margin: 0;
85
- border-left: solid 1px #bdbdbd;
86
- // box-shadow: -1px 0px 1px 1px #f0f0f0;
87
- }
88
-
89
- .sel-dd-item {
90
- overflow: hidden;
91
- display: block;
92
- height: 100%;
93
- margin-right: 2.6rem;
94
- white-space: nowrap;
95
- }
96
-
97
- &:hover .sel-expander {
98
- opacity: 1;
99
- background: #dadada;
100
- }
1
+ @import "../../ui/theme.css";
2
+
3
+ .select-comp {
4
+ position: relative;
5
+ display: inline-flex;
6
+ box-sizing: border-box;
7
+ width: 14rem;
8
+ max-width: 100%;
9
+ min-width: 0;
10
+ min-height: 2.5rem;
11
+ vertical-align: middle;
12
+ color: var(--jsl-color-text);
13
+ font: inherit;
14
+ font-size: .875rem;
15
+ }
16
+ .select-comp *, .sel-comp-dd * { box-sizing: border-box; }
17
+ .select-comp .sel-expander {
18
+ appearance: none;
19
+ display: flex;
20
+ align-items: center;
21
+ gap: .625rem;
22
+ width: 100%;
23
+ min-width: 0;
24
+ min-height: inherit;
25
+ padding: .5rem .75rem;
26
+ border: 1px solid var(--jsl-color-border);
27
+ border-radius: .5rem;
28
+ background: var(--jsl-color-surface);
29
+ color: inherit;
30
+ font: inherit;
31
+ line-height: 1.4;
32
+ text-align: left;
33
+ cursor: pointer;
34
+ transition: border-color .15s;
35
+ }
36
+ .select-comp:has(.clear-btn:not([hidden])) .sel-expander { padding-right: 3.5rem; }
37
+ .select-comp .sel-expander:hover:not(:disabled) { border-color: var(--jsl-color-text-muted); }
38
+ .select-comp.expanded .sel-expander { border-color: var(--jsl-color-accent); }
39
+ .select-comp .sel-expander:focus-visible, .select-comp .clear-btn:focus-visible {
40
+ outline: 2px solid var(--jsl-color-focus);
41
+ outline-offset: 2px;
42
+ }
43
+ .select-comp .sel-result {
44
+ flex: 1;
45
+ min-width: 0;
46
+ overflow: hidden;
47
+ text-overflow: ellipsis;
48
+ white-space: nowrap;
49
+ }
50
+ .select-comp .sel-placeholder { color: var(--jsl-color-text-muted); }
51
+ .select-comp .sel-result > .sel-dd-item { display: block; overflow: hidden; text-overflow: ellipsis; }
52
+ .select-comp .sel-chevron {
53
+ flex: 0 0 7px;
54
+ width: 7px;
55
+ height: 7px;
56
+ border: solid var(--jsl-color-text-muted);
57
+ border-width: 0 1.5px 1.5px 0;
58
+ transform: rotate(45deg) translateY(-2px);
59
+ margin-left: auto;
60
+ }
61
+ .select-comp.expanded .sel-chevron { transform: rotate(225deg) translate(-2px, -1px); }
62
+ .select-comp:has(.clear-btn:not([hidden])) .sel-chevron { position: absolute; right: .875rem; }
63
+ .select-comp .clear-btn {
64
+ appearance: none;
65
+ display: grid;
66
+ place-items: center;
67
+ position: absolute;
68
+ right: 1.875rem;
69
+ top: 50%;
70
+ transform: translateY(-50%);
71
+ width: 1.5rem;
72
+ height: 1.5rem;
73
+ border: 0;
74
+ border-radius: .25rem;
75
+ padding: 0;
76
+ font: inherit;
77
+ font-size: 1.125rem;
78
+ line-height: 1;
79
+ background: transparent;
80
+ color: var(--jsl-color-text-muted);
81
+ cursor: pointer;
82
+ }
83
+ .select-comp .clear-btn:hover:not(:disabled) { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }
84
+ .select-comp .clear-btn[hidden] { display: none; }
85
+ .select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-expander {
86
+ background: var(--jsl-color-disabled-surface);
87
+ color: var(--jsl-color-disabled-text);
88
+ cursor: not-allowed;
89
+ }
90
+ .select-comp:is(.disabled, :has(> .sel-expander:disabled)) .clear-btn { color: var(--jsl-color-disabled-text); cursor: not-allowed; }
91
+ .select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-result,
92
+ .select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-chevron { opacity: .65; }
93
+ .select-comp.multiple .sel-result:not(.sel-placeholder) { display: flex; flex-wrap: wrap; gap: .25rem; white-space: normal; }
94
+ .select-comp.multiple .sel-expander { padding-top: .375rem; padding-bottom: .375rem; }
95
+ .sel-chip {
96
+ display: inline-block;
97
+ min-width: 0;
98
+ max-width: 100%;
99
+ padding: .125rem .4375rem;
100
+ border-radius: .25rem;
101
+ background: var(--jsl-color-surface-selected);
102
+ color: var(--jsl-color-text-secondary);
103
+ font-size: .75rem;
104
+ line-height: 1.5;
105
+ overflow: hidden;
106
+ text-overflow: ellipsis;
107
+ white-space: nowrap;
108
+ }
109
+ .sel-chip-count { color: var(--jsl-color-text-muted); background: var(--jsl-color-surface-hover); }
110
+ .sel-comp-dd {
111
+ position: absolute;
112
+ z-index: 2200;
113
+ box-sizing: border-box;
114
+ overflow: hidden;
115
+ padding: 4px;
116
+ border: 1px solid var(--jsl-color-border);
117
+ border-radius: .625rem;
118
+ background: var(--jsl-color-surface);
119
+ color: var(--jsl-color-text);
120
+ font: inherit;
121
+ font-size: .875rem;
122
+ box-shadow: 0 12px 32px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .06);
123
+ }
124
+ .sel-dd-panel { height: 100%; display: flex; flex-direction: column; min-height: 0; }
125
+ .sel-search { flex: 0 0 44px; padding: 3px 4px 7px; }
126
+ .sel-search[hidden] { display: none; }
127
+ .sel-search input {
128
+ appearance: none;
129
+ width: 100%;
130
+ height: 34px;
131
+ border: 1px solid var(--jsl-color-border-subtle);
132
+ border-radius: .375rem;
133
+ background: var(--jsl-color-surface-subtle);
134
+ color: var(--jsl-color-text);
135
+ padding: .375rem .625rem .375rem 2rem;
136
+ font: inherit;
137
+ font-size: .8125rem;
138
+ line-height: 1.4;
139
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717a' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cpath d='m10.5 10.5 3 3'/%3E%3C/svg%3E");
140
+ background-position: .625rem center;
141
+ background-repeat: no-repeat;
142
+ }
143
+ .sel-search input::placeholder { color: var(--jsl-color-text-muted); }
144
+ .sel-search input:focus { outline: 0; border-color: var(--jsl-color-focus); }
145
+ .sel-listbox { position: relative; min-height: 0; flex: 1; outline: none; }
146
+ .sel-comp-dd .sel-dd-items { overscroll-behavior: contain; scrollbar-width: thin; }
147
+ .sel-comp-dd .sel-dd-item {
148
+ position: relative;
149
+ display: flex;
150
+ align-items: center;
151
+ height: 100%;
152
+ padding: 0 2rem 0 .625rem;
153
+ border-radius: .375rem;
154
+ font-size: .8125rem;
155
+ line-height: 1.4;
156
+ overflow: hidden;
157
+ text-overflow: ellipsis;
158
+ white-space: nowrap;
159
+ cursor: pointer;
160
+ }
161
+ .sel-comp-dd .sel-dd-item:hover:not(.sel-dd-group) { background: var(--jsl-color-surface-hover); }
162
+ .sel-comp-dd .sel-dd-item.selected { background: var(--jsl-color-surface-selected); }
163
+ .sel-comp-dd .sel-dd-item.focused { outline: 1px solid var(--jsl-color-focus); outline-offset: -2px; }
164
+ .sel-comp-dd .sel-dd-item.selected::after {
165
+ content: "";
166
+ position: absolute;
167
+ right: .875rem;
168
+ width: 5px;
169
+ height: 9px;
170
+ border: solid var(--jsl-color-text);
171
+ border-width: 0 1.5px 1.5px 0;
172
+ transform: rotate(45deg) translateY(-2px);
173
+ }
174
+ .sel-comp-dd .multiple .sel-dd-item:not(.sel-dd-group) { padding-left: 2rem; padding-right: .625rem; }
175
+ .sel-comp-dd .multiple .sel-dd-item:not(.sel-dd-group)::before {
176
+ content: "";
177
+ position: absolute;
178
+ left: .625rem;
179
+ width: 14px;
180
+ height: 14px;
181
+ border: 1px solid var(--jsl-color-border);
182
+ border-radius: .25rem;
183
+ background: var(--jsl-color-surface);
184
+ }
185
+ .sel-comp-dd .multiple .sel-dd-item.selected::before { border-color: var(--jsl-color-accent); background: var(--jsl-color-accent); }
186
+ .sel-comp-dd .multiple .sel-dd-item.selected::after { left: .875rem; right: auto; width: 4px; height: 7px; border-color: var(--jsl-color-on-accent); }
187
+ .sel-comp-dd .sel-dd-group {
188
+ padding: 0 .625rem;
189
+ color: var(--jsl-color-text-muted);
190
+ font-size: .6875rem;
191
+ font-weight: 600;
192
+ cursor: default;
193
+ }
194
+ .sel-empty { padding: 1.25rem .625rem; color: var(--jsl-color-text-muted); font-size: .8125rem; text-align: center; }
195
+ .sel-empty[hidden] { display: none; }
196
+ .sel-dd-animate { animation: jsl-select-appear .12s ease-out; }
197
+ @keyframes jsl-select-appear { from { opacity: 0; } to { opacity: 1; } }
198
+ @media (prefers-reduced-motion: reduce) {
199
+ .sel-dd-animate { animation: none; }
200
+ .select-comp .sel-expander { transition: none; }
201
+ }
202
+ @media (forced-colors: active) {
203
+ .sel-comp-dd .sel-dd-item.selected { outline: 2px solid Highlight; outline-offset: -2px; }
204
+ .sel-chip { border: 1px solid ButtonText; }
101
205
  }
102
-
103
- .sel-comp-dd {
104
- position: absolute;
105
- // overflow: hidden;
106
- box-sizing: border-box;
107
- background: white;
108
- z-index:2010;
109
-
110
- > div {
111
- position: absolute;
112
- top: 0; left: 0; right: 0; bottom: 0;
113
- box-sizing: border-box;
114
- border: solid 1px #bcbcbc;
115
- border-radius: 2px;
116
- white-space: nowrap;
117
- overflow: hidden;
118
- cursor: pointer;
119
- }
120
-
121
- .sel-search {
122
- height: 1.8rem;
123
- padding: 0.1rem;
124
- overflow: hidden;
125
- box-sizing: border-box;
126
- }
127
-
128
- .sel-search > input {
129
- height: 1.6rem;
130
- line-height: 1.6rem;
131
- border: none;
132
- border-bottom: 2px solid #c8c8c8;
133
- margin: 0 2px;
134
- width: calc(100% - 4px);
135
- box-sizing: border-box;
136
-
137
- &:focus {
138
- outline: none;
139
- }
140
- }
141
-
142
- .sel-dd-item:not(.sel-dd-group) {
143
- &:hover {
144
- background: #d0d0d0;
145
- }
146
- }
147
-
148
- .sel-dd-items {
149
-
150
- .focused {
151
- background: #CCE8FF;
152
- }
153
- .selected {
154
- background: #3B99FF;
155
- }
156
- }
157
-
158
- .sel-dd-items.multiple {
159
- .sel-dd-item {
160
- padding-left: 1rem;
161
- }
162
- .sel-dd-item.selected {
163
- // padding-left: 0;
164
- &::before {
165
- content: "✓";
166
- position: absolute;
167
- color: #404040;
168
- font-weight: bold;
169
- left: 0;
170
- }
171
- }
172
- }
173
-
174
- .sel-dd-item {
175
- height: 100%;
176
- line-height: 26px;
177
- }
178
-
179
- .sel-dd-group {
180
- font-weight: bold;
181
- background: #e0e0e0;
182
- text-align: center;
183
- // &:hover {
184
- // background: #d0d0d0;
185
- // }
186
- }
187
- }
@@ -1,3 +1,5 @@
1
+ @import "../../ui/theme.css";
2
+
1
3
  /*! nouislider - 14.6.0 - 6/27/2020 */
2
4
  /* Functional styling;
3
5
  * These styles are required for noUiSlider to function.
@@ -88,41 +90,41 @@
88
90
  /* Slider size and handle placement;
89
91
  */
90
92
  .noUi-horizontal {
91
- height: 18px;
93
+ height: 6px;
92
94
  }
93
95
  .noUi-horizontal .noUi-handle {
94
- width: 34px;
95
- height: 28px;
96
- right: -17px;
96
+ width: 18px;
97
+ height: 18px;
98
+ right: -9px;
97
99
  top: -6px;
98
100
  }
99
101
  .noUi-vertical {
100
- width: 18px;
102
+ width: 6px;
101
103
  }
102
104
  .noUi-vertical .noUi-handle {
103
- width: 28px;
104
- height: 34px;
105
+ width: 18px;
106
+ height: 18px;
105
107
  right: -6px;
106
- top: -17px;
108
+ top: -9px;
107
109
  }
108
110
  .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {
109
- left: -17px;
111
+ left: -9px;
110
112
  right: auto;
111
113
  }
112
114
  /* Styling;
113
115
  * Giving the connect element a border radius causes issues with using transform: scale
114
116
  */
115
117
  .noUi-target {
116
- background: #FAFAFA;
117
- border-radius: 4px;
118
- border: 1px solid #D3D3D3;
119
- box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
118
+ background: var(--jsl-slider-track, var(--jsl-color-border-subtle));
119
+ border-radius: 999px;
120
+ border: 0;
121
+ box-shadow: none;
120
122
  }
121
123
  .noUi-connects {
122
124
  border-radius: 3px;
123
125
  }
124
126
  .noUi-connect {
125
- background: #3B99FF;
127
+ background: var(--jsl-slider-connect, var(--jsl-color-accent));
126
128
  }
127
129
  /* Handles and cursors;
128
130
  */
@@ -133,45 +135,19 @@
133
135
  cursor: ns-resize;
134
136
  }
135
137
  .noUi-handle {
136
- border: 1px solid #D9D9D9;
137
- border-radius: 3px;
138
- background: #FFF;
138
+ border: 2px solid var(--jsl-color-accent);
139
+ border-radius: 50%;
140
+ background: var(--jsl-color-surface);
139
141
  cursor: default;
140
- box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;
142
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16);
141
143
  }
142
144
  .noUi-active {
143
- box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB;
144
- }
145
- /* Handle stripes;
146
- */
147
- .noUi-handle:before,
148
- .noUi-handle:after {
149
- content: "";
150
- display: block;
151
- position: absolute;
152
- height: 14px;
153
- width: 1px;
154
- background: #E8E7E6;
155
- left: 14px;
156
- top: 6px;
157
- }
158
- .noUi-handle:after {
159
- left: 17px;
160
- }
161
- .noUi-vertical .noUi-handle:before,
162
- .noUi-vertical .noUi-handle:after {
163
- width: 14px;
164
- height: 1px;
165
- left: 6px;
166
- top: 14px;
167
- }
168
- .noUi-vertical .noUi-handle:after {
169
- top: 17px;
145
+ border-color: var(--jsl-color-accent);
170
146
  }
171
147
  /* Disabled state;
172
148
  */
173
149
  [disabled] .noUi-connect {
174
- background: #B8B8B8;
150
+ background: var(--jsl-color-disabled-text);
175
151
  }
176
152
  [disabled].noUi-target,
177
153
  [disabled].noUi-handle,
@@ -188,7 +164,7 @@
188
164
  }
189
165
  .noUi-pips {
190
166
  position: absolute;
191
- color: #999;
167
+ color: var(--jsl-color-text-muted);
192
168
  }
193
169
  /* Values;
194
170
  *
@@ -199,7 +175,7 @@
199
175
  text-align: center;
200
176
  }
201
177
  .noUi-value-sub {
202
- color: #ccc;
178
+ color: var(--jsl-color-text-muted);
203
179
  font-size: 10px;
204
180
  }
205
181
  /* Markings;
@@ -207,13 +183,13 @@
207
183
  */
208
184
  .noUi-marker {
209
185
  position: absolute;
210
- background: #CCC;
186
+ background: var(--jsl-color-border);
211
187
  }
212
188
  .noUi-marker-sub {
213
- background: #AAA;
189
+ background: var(--jsl-color-border);
214
190
  }
215
191
  .noUi-marker-large {
216
- background: #AAA;
192
+ background: var(--jsl-color-border);
217
193
  }
218
194
  /* Horizontal layout;
219
195
  *
@@ -276,10 +252,10 @@
276
252
  .noUi-tooltip {
277
253
  display: block;
278
254
  position: absolute;
279
- border: 1px solid #D9D9D9;
255
+ border: 1px solid var(--jsl-color-border);
280
256
  border-radius: 3px;
281
- background: #fff;
282
- color: #000;
257
+ background: var(--jsl-color-surface);
258
+ color: var(--jsl-color-text);
283
259
  padding: 5px;
284
260
  text-align: center;
285
261
  white-space: nowrap;
@@ -308,3 +284,13 @@
308
284
  top: auto;
309
285
  right: 28px;
310
286
  }
287
+
288
+ /* Larger interaction targets without changing slider geometry. */
289
+ .noUi-touch-area { position: absolute; inset: -6px; width: auto; height: auto; }
290
+ .noUi-base::before { content: ""; position: absolute; inset: -10px 0; }
291
+ .noUi-vertical .noUi-base::before { inset: 0 -10px; }
292
+ .noUi-handle { cursor: grab; }
293
+ .noUi-handle:active { cursor: grabbing; }
294
+ .noUi-handle:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }
295
+ [disabled] .noUi-handle, .noUi-handle[disabled] { border-color: var(--jsl-color-disabled-text); background: var(--jsl-color-disabled-surface); }
296
+ .noUi-tooltip { font: inherit; font-size: 0.75rem; border-radius: 0.375rem; padding: 4px 8px; }
@@ -6,16 +6,32 @@ export interface ISplitterComponentOptions {
6
6
  maxSizesInPX?: number[];
7
7
  onResize?: EventHandler<void>;
8
8
  onResizeDone?: EventHandler<ISplitterDoneArgs>;
9
+ ariaLabel?: string;
9
10
  }
10
11
  export interface ISplitterDoneArgs {
11
12
  size1InPX?: number;
12
13
  }
13
14
  export declare class SplitterComponent implements IJSLComponent {
14
- private static listenerRegistered;
15
- _is_splitter: boolean;
16
15
  private options;
16
+ _is_splitter: boolean;
17
+ State: {
18
+ dom?: HTMLElement;
19
+ drag?: {
20
+ id: number;
21
+ start: number;
22
+ first: number;
23
+ total: number;
24
+ };
25
+ };
17
26
  constructor(options?: ISplitterComponentOptions);
18
27
  isEqual(node: IJSLComponent): boolean;
19
28
  render(): IJSLVNode;
20
- private registerListener;
29
+ onCreate(node: IJSLVNode): void;
30
+ onRemove(): void;
31
+ private vertical;
32
+ private panels;
33
+ private size;
34
+ private resize;
35
+ private updateAria;
36
+ private finish;
21
37
  }