@aquera/nile-elements 0.1.57-beta-1.6 → 0.1.57-beta-1.7

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 (248) hide show
  1. package/README.md +11 -2
  2. package/demo/index.html +35 -19
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  6. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  7. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  8. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  9. package/dist/nile-calendar/nile-calendar.css.esm.js +168 -29
  10. package/dist/nile-calendar/nile-calendar.esm.js +124 -37
  11. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  12. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  13. package/dist/nile-file-preview/nile-file-preview.css.esm.js +38 -5
  14. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  15. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  16. package/dist/nile-file-preview/nile-file-preview.template.esm.js +31 -31
  17. package/dist/nile-file-preview/utils/index.cjs.js +1 -1
  18. package/dist/nile-file-preview/utils/index.esm.js +1 -1
  19. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
  20. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
  21. package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
  22. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  23. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
  24. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
  25. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
  26. package/dist/nile-file-upload/nile-file-upload.css.esm.js +22 -1
  27. package/dist/nile-file-upload/nile-file-upload.esm.js +1 -1
  28. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -2
  29. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
  30. package/dist/nile-file-upload/nile-file-upload.template.esm.js +4 -4
  31. package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
  32. package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
  33. package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
  34. package/dist/nile-icon/icons/svg/agent.cjs.js +1 -1
  35. package/dist/nile-icon/icons/svg/agent.cjs.js.map +1 -1
  36. package/dist/nile-icon/icons/svg/agent.esm.js +1 -1
  37. package/dist/nile-icon/icons/svg/api.cjs.js +1 -1
  38. package/dist/nile-icon/icons/svg/api.cjs.js.map +1 -1
  39. package/dist/nile-icon/icons/svg/api.esm.js +1 -1
  40. package/dist/nile-icon/icons/svg/apply-filter.cjs.js +1 -1
  41. package/dist/nile-icon/icons/svg/apply-filter.cjs.js.map +1 -1
  42. package/dist/nile-icon/icons/svg/apply-filter.esm.js +1 -1
  43. package/dist/nile-icon/icons/svg/arrowdropdown.cjs.js +1 -1
  44. package/dist/nile-icon/icons/svg/arrowdropdown.cjs.js.map +1 -1
  45. package/dist/nile-icon/icons/svg/arrowdropdown.esm.js +1 -1
  46. package/dist/nile-icon/icons/svg/arrowdropup.cjs.js +1 -1
  47. package/dist/nile-icon/icons/svg/arrowdropup.cjs.js.map +1 -1
  48. package/dist/nile-icon/icons/svg/arrowdropup.esm.js +1 -1
  49. package/dist/nile-icon/icons/svg/database.cjs.js +1 -1
  50. package/dist/nile-icon/icons/svg/database.cjs.js.map +1 -1
  51. package/dist/nile-icon/icons/svg/database.esm.js +1 -1
  52. package/dist/nile-icon/icons/svg/done.cjs.js +1 -1
  53. package/dist/nile-icon/icons/svg/done.cjs.js.map +1 -1
  54. package/dist/nile-icon/icons/svg/done.esm.js +1 -1
  55. package/dist/nile-icon/icons/svg/dontmap.cjs.js +1 -1
  56. package/dist/nile-icon/icons/svg/dontmap.cjs.js.map +1 -1
  57. package/dist/nile-icon/icons/svg/dontmap.esm.js +1 -1
  58. package/dist/nile-icon/icons/svg/doublearrowleft.cjs.js +1 -1
  59. package/dist/nile-icon/icons/svg/doublearrowleft.cjs.js.map +1 -1
  60. package/dist/nile-icon/icons/svg/doublearrowleft.esm.js +1 -1
  61. package/dist/nile-icon/icons/svg/doublearrowright.cjs.js +1 -1
  62. package/dist/nile-icon/icons/svg/doublearrowright.cjs.js.map +1 -1
  63. package/dist/nile-icon/icons/svg/doublearrowright.esm.js +1 -1
  64. package/dist/nile-icon/icons/svg/drag.cjs.js +1 -1
  65. package/dist/nile-icon/icons/svg/drag.cjs.js.map +1 -1
  66. package/dist/nile-icon/icons/svg/drag.esm.js +1 -1
  67. package/dist/nile-icon/icons/svg/expand-06.cjs.js +1 -1
  68. package/dist/nile-icon/icons/svg/expand-06.cjs.js.map +1 -1
  69. package/dist/nile-icon/icons/svg/expand-06.esm.js +1 -1
  70. package/dist/nile-icon/icons/svg/expand.cjs.js +1 -1
  71. package/dist/nile-icon/icons/svg/expand.cjs.js.map +1 -1
  72. package/dist/nile-icon/icons/svg/expand.esm.js +1 -1
  73. package/dist/nile-icon/icons/svg/integer.cjs.js +1 -1
  74. package/dist/nile-icon/icons/svg/integer.cjs.js.map +1 -1
  75. package/dist/nile-icon/icons/svg/integer.esm.js +1 -1
  76. package/dist/nile-icon/icons/svg/pluscircle.cjs.js +1 -1
  77. package/dist/nile-icon/icons/svg/pluscircle.cjs.js.map +1 -1
  78. package/dist/nile-icon/icons/svg/pluscircle.esm.js +1 -1
  79. package/dist/nile-icon/icons/svg/question.cjs.js +1 -1
  80. package/dist/nile-icon/icons/svg/question.cjs.js.map +1 -1
  81. package/dist/nile-icon/icons/svg/question.esm.js +1 -1
  82. package/dist/nile-icon/icons/svg/resource.cjs.js +1 -1
  83. package/dist/nile-icon/icons/svg/resource.cjs.js.map +1 -1
  84. package/dist/nile-icon/icons/svg/resource.esm.js +1 -1
  85. package/dist/nile-icon/icons/svg/sendescalation.cjs.js +1 -1
  86. package/dist/nile-icon/icons/svg/sendescalation.cjs.js.map +1 -1
  87. package/dist/nile-icon/icons/svg/sendescalation.esm.js +1 -1
  88. package/dist/nile-icon/icons/svg/sendreminder.cjs.js +1 -1
  89. package/dist/nile-icon/icons/svg/sendreminder.cjs.js.map +1 -1
  90. package/dist/nile-icon/icons/svg/sendreminder.esm.js +1 -1
  91. package/dist/nile-icon/icons/svg/timezone.cjs.js +1 -1
  92. package/dist/nile-icon/icons/svg/timezone.cjs.js.map +1 -1
  93. package/dist/nile-icon/icons/svg/timezone.esm.js +1 -1
  94. package/dist/nile-icon/icons/svg/unmute.cjs.js +1 -1
  95. package/dist/nile-icon/icons/svg/unmute.cjs.js.map +1 -1
  96. package/dist/nile-icon/icons/svg/unmute.esm.js +1 -1
  97. package/dist/nile-icon/icons/svg/upgrade.cjs.js +1 -1
  98. package/dist/nile-icon/icons/svg/upgrade.cjs.js.map +1 -1
  99. package/dist/nile-icon/icons/svg/upgrade.esm.js +1 -1
  100. package/dist/nile-option/nile-option.cjs.js +1 -1
  101. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  102. package/dist/nile-option/nile-option.esm.js +2 -2
  103. package/dist/nile-select/nile-select.cjs.js +1 -1
  104. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  105. package/dist/nile-select/nile-select.esm.js +1 -1
  106. package/dist/src/index.d.ts +0 -1
  107. package/dist/src/index.js +0 -1
  108. package/dist/src/index.js.map +1 -1
  109. package/dist/src/nile-calendar/nile-calendar.css.js +166 -27
  110. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  111. package/dist/src/nile-calendar/nile-calendar.d.ts +8 -0
  112. package/dist/src/nile-calendar/nile-calendar.js +173 -34
  113. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  114. package/dist/src/nile-file-preview/nile-file-preview.css.js +40 -7
  115. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  116. package/dist/src/nile-file-preview/nile-file-preview.d.ts +1 -0
  117. package/dist/src/nile-file-preview/nile-file-preview.js +5 -1
  118. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
  119. package/dist/src/nile-file-preview/nile-file-preview.template.js +9 -9
  120. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  121. package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +2 -1
  122. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +1 -0
  123. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +1 -1
  124. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +3 -0
  125. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +10 -0
  126. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
  127. package/dist/src/nile-file-upload/nile-file-upload.css.js +27 -4
  128. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
  129. package/dist/src/nile-file-upload/nile-file-upload.d.ts +1 -0
  130. package/dist/src/nile-file-upload/nile-file-upload.js +10 -6
  131. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
  132. package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +2 -2
  133. package/dist/src/nile-file-upload/nile-file-upload.template.js +17 -11
  134. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
  135. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +7 -4
  136. package/dist/src/nile-file-upload/types/file-upload.enums.js +5 -2
  137. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
  138. package/dist/src/nile-file-upload/utils/file-validation.util.js +8 -2
  139. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  140. package/dist/src/nile-icon/icons/svg/agent.d.ts +1 -1
  141. package/dist/src/nile-icon/icons/svg/agent.js +1 -1
  142. package/dist/src/nile-icon/icons/svg/agent.js.map +1 -1
  143. package/dist/src/nile-icon/icons/svg/api.d.ts +1 -1
  144. package/dist/src/nile-icon/icons/svg/api.js +1 -1
  145. package/dist/src/nile-icon/icons/svg/api.js.map +1 -1
  146. package/dist/src/nile-icon/icons/svg/apply-filter.d.ts +1 -1
  147. package/dist/src/nile-icon/icons/svg/apply-filter.js +1 -1
  148. package/dist/src/nile-icon/icons/svg/apply-filter.js.map +1 -1
  149. package/dist/src/nile-icon/icons/svg/arrowdropdown.d.ts +1 -1
  150. package/dist/src/nile-icon/icons/svg/arrowdropdown.js +1 -1
  151. package/dist/src/nile-icon/icons/svg/arrowdropdown.js.map +1 -1
  152. package/dist/src/nile-icon/icons/svg/arrowdropup.d.ts +1 -1
  153. package/dist/src/nile-icon/icons/svg/arrowdropup.js +1 -1
  154. package/dist/src/nile-icon/icons/svg/arrowdropup.js.map +1 -1
  155. package/dist/src/nile-icon/icons/svg/database.d.ts +1 -1
  156. package/dist/src/nile-icon/icons/svg/database.js +1 -1
  157. package/dist/src/nile-icon/icons/svg/database.js.map +1 -1
  158. package/dist/src/nile-icon/icons/svg/done.d.ts +1 -1
  159. package/dist/src/nile-icon/icons/svg/done.js +1 -1
  160. package/dist/src/nile-icon/icons/svg/done.js.map +1 -1
  161. package/dist/src/nile-icon/icons/svg/dontmap.d.ts +1 -1
  162. package/dist/src/nile-icon/icons/svg/dontmap.js +1 -1
  163. package/dist/src/nile-icon/icons/svg/dontmap.js.map +1 -1
  164. package/dist/src/nile-icon/icons/svg/doublearrowleft.d.ts +1 -1
  165. package/dist/src/nile-icon/icons/svg/doublearrowleft.js +1 -1
  166. package/dist/src/nile-icon/icons/svg/doublearrowleft.js.map +1 -1
  167. package/dist/src/nile-icon/icons/svg/doublearrowright.d.ts +1 -1
  168. package/dist/src/nile-icon/icons/svg/doublearrowright.js +1 -1
  169. package/dist/src/nile-icon/icons/svg/doublearrowright.js.map +1 -1
  170. package/dist/src/nile-icon/icons/svg/drag.d.ts +1 -1
  171. package/dist/src/nile-icon/icons/svg/drag.js +1 -1
  172. package/dist/src/nile-icon/icons/svg/drag.js.map +1 -1
  173. package/dist/src/nile-icon/icons/svg/expand-06.d.ts +1 -1
  174. package/dist/src/nile-icon/icons/svg/expand-06.js +1 -1
  175. package/dist/src/nile-icon/icons/svg/expand-06.js.map +1 -1
  176. package/dist/src/nile-icon/icons/svg/expand.d.ts +1 -1
  177. package/dist/src/nile-icon/icons/svg/expand.js +1 -1
  178. package/dist/src/nile-icon/icons/svg/expand.js.map +1 -1
  179. package/dist/src/nile-icon/icons/svg/integer.d.ts +1 -1
  180. package/dist/src/nile-icon/icons/svg/integer.js +1 -1
  181. package/dist/src/nile-icon/icons/svg/integer.js.map +1 -1
  182. package/dist/src/nile-icon/icons/svg/pluscircle.d.ts +1 -1
  183. package/dist/src/nile-icon/icons/svg/pluscircle.js +1 -1
  184. package/dist/src/nile-icon/icons/svg/pluscircle.js.map +1 -1
  185. package/dist/src/nile-icon/icons/svg/question.d.ts +1 -1
  186. package/dist/src/nile-icon/icons/svg/question.js +1 -1
  187. package/dist/src/nile-icon/icons/svg/question.js.map +1 -1
  188. package/dist/src/nile-icon/icons/svg/resource.d.ts +1 -1
  189. package/dist/src/nile-icon/icons/svg/resource.js +1 -1
  190. package/dist/src/nile-icon/icons/svg/resource.js.map +1 -1
  191. package/dist/src/nile-icon/icons/svg/sendescalation.d.ts +1 -1
  192. package/dist/src/nile-icon/icons/svg/sendescalation.js +1 -1
  193. package/dist/src/nile-icon/icons/svg/sendescalation.js.map +1 -1
  194. package/dist/src/nile-icon/icons/svg/sendreminder.d.ts +1 -1
  195. package/dist/src/nile-icon/icons/svg/sendreminder.js +1 -1
  196. package/dist/src/nile-icon/icons/svg/sendreminder.js.map +1 -1
  197. package/dist/src/nile-icon/icons/svg/timezone.d.ts +1 -1
  198. package/dist/src/nile-icon/icons/svg/timezone.js +1 -1
  199. package/dist/src/nile-icon/icons/svg/timezone.js.map +1 -1
  200. package/dist/src/nile-icon/icons/svg/unmute.d.ts +1 -1
  201. package/dist/src/nile-icon/icons/svg/unmute.js +1 -1
  202. package/dist/src/nile-icon/icons/svg/unmute.js.map +1 -1
  203. package/dist/src/nile-icon/icons/svg/upgrade.d.ts +1 -1
  204. package/dist/src/nile-icon/icons/svg/upgrade.js +1 -1
  205. package/dist/src/nile-icon/icons/svg/upgrade.js.map +1 -1
  206. package/dist/src/nile-option/nile-option.d.ts +3 -1
  207. package/dist/src/nile-option/nile-option.js +9 -0
  208. package/dist/src/nile-option/nile-option.js.map +1 -1
  209. package/dist/src/nile-select/nile-select.d.ts +3 -1
  210. package/dist/src/nile-select/nile-select.js +11 -0
  211. package/dist/src/nile-select/nile-select.js.map +1 -1
  212. package/dist/tsconfig.tsbuildinfo +1 -1
  213. package/package.json +4 -4
  214. package/src/index.ts +1 -2
  215. package/src/nile-calendar/nile-calendar.css.ts +166 -27
  216. package/src/nile-calendar/nile-calendar.ts +191 -41
  217. package/src/nile-icon/icons/svg/agent.ts +1 -1
  218. package/src/nile-icon/icons/svg/api.ts +1 -1
  219. package/src/nile-icon/icons/svg/apply-filter.ts +1 -1
  220. package/src/nile-icon/icons/svg/arrowdropdown.ts +1 -1
  221. package/src/nile-icon/icons/svg/arrowdropup.ts +1 -1
  222. package/src/nile-icon/icons/svg/database.ts +1 -1
  223. package/src/nile-icon/icons/svg/done.ts +1 -1
  224. package/src/nile-icon/icons/svg/dontmap.ts +1 -1
  225. package/src/nile-icon/icons/svg/doublearrowleft.ts +1 -1
  226. package/src/nile-icon/icons/svg/doublearrowright.ts +1 -1
  227. package/src/nile-icon/icons/svg/drag.ts +1 -1
  228. package/src/nile-icon/icons/svg/expand-06.ts +1 -1
  229. package/src/nile-icon/icons/svg/expand.ts +1 -1
  230. package/src/nile-icon/icons/svg/integer.ts +1 -1
  231. package/src/nile-icon/icons/svg/pluscircle.ts +1 -1
  232. package/src/nile-icon/icons/svg/question.ts +1 -1
  233. package/src/nile-icon/icons/svg/resource.ts +1 -1
  234. package/src/nile-icon/icons/svg/sendescalation.ts +1 -1
  235. package/src/nile-icon/icons/svg/sendreminder.ts +1 -1
  236. package/src/nile-icon/icons/svg/timezone.ts +1 -1
  237. package/src/nile-icon/icons/svg/unmute.ts +1 -1
  238. package/src/nile-icon/icons/svg/upgrade.ts +1 -1
  239. package/src/nile-option/nile-option.ts +9 -1
  240. package/src/nile-select/nile-select.ts +14 -1
  241. package/vscode-html-custom-data.json +71 -146
  242. package/src/nile-slider/index.ts +0 -1
  243. package/src/nile-slider/nile-slider.css.ts +0 -119
  244. package/src/nile-slider/nile-slider.template.ts +0 -77
  245. package/src/nile-slider/nile-slider.ts +0 -215
  246. package/src/nile-slider/types/nile-slider.enums.ts +0 -10
  247. package/src/nile-slider/types/nile-slider.types.ts +0 -13
  248. package/src/nile-slider/utils/nile-slider.utils.ts +0 -136
@@ -1,119 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2025
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import { css } from 'lit';
8
-
9
- /**
10
- * Slider CSS
11
- */
12
- export const styles = css`
13
- :host {
14
- display: block;
15
- }
16
-
17
- .container {
18
- display: flex;
19
- justify-content: center;
20
- align-items: center;
21
- gap: 10px;
22
- height: 100px;
23
- }
24
-
25
- .align-item-center {
26
- align-items: center;
27
- }
28
-
29
- slot.span {
30
- font-size: var(--nile-font-size-micro);
31
- margin-top: 14px;
32
- }
33
-
34
- .range-container {
35
- display: flex;
36
- flex-direction: column;
37
- gap: var(--nile-spacing-sm);
38
- }
39
-
40
- .column-reverse {
41
- flex-direction: column-reverse;
42
- }
43
-
44
- .label-container {
45
- display: flex;
46
- justify-content: space-between;
47
- }
48
-
49
- .label-container span {
50
- margin: var(--nile-spacing-none);
51
- padding: var(--nile-spacing-none);
52
- font-size: var(--nile-font-size-micro);
53
- }
54
-
55
- .range {
56
- position: relative;
57
- width: 228px;
58
- height: 4px;
59
- background-color: #EDEEF1;
60
- user-select: none;
61
- border-radius: var(--nile-radius-radius-3xl);
62
- }
63
-
64
- .range:hover {
65
- cursor: pointer;
66
- }
67
-
68
- .range-completed {
69
- position: absolute;
70
- height: 100%;
71
- width: 0%;
72
- background-color: var(--nile-colors-primary-600);
73
- top: 0px;
74
- left: 0px;
75
- z-index: 98;
76
- border-radius: var(--nile-radius-radius-3xl);
77
- }
78
-
79
- .range-button {
80
- height: 12px;
81
- width: 12px;
82
- background-color: var(--nile-colors-primary-600);
83
- position: absolute;
84
- top: 50%;
85
- transform: translate(-50%, -50%);
86
- border-radius: var(--nile-radius-radius-3xl);
87
- left: 0;
88
- z-index: 100;
89
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
90
- transition: box-shadow var(--nile-transition-duration-default) ease;
91
- }
92
-
93
- .range-button:hover, .range-button-two:hover {
94
- cursor: pointer;
95
- background-color: var(--nile-colors-primary-700);
96
- }
97
-
98
- .range-button:active, .range-button-two:active {
99
- transition: box-shadow var(--nile-transition-duration-default) ease;
100
- background-color: var(--nile-colors-primary-700);
101
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;
102
- }
103
-
104
- .range-button-two {
105
- height: 12px;
106
- width: 12px;
107
- background-color: var(--nile-colors-primary-600);
108
- position: absolute;
109
- top: 50%;
110
- transform: translate(-50%, -50%);
111
- border-radius: var(--nile-radius-radius-3xl);
112
- left: 100%;
113
- z-index: 100;
114
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
115
- transition: box-shadow var(--nile-transition-duration-default) ease;
116
- }
117
- `;
118
-
119
- export default [styles];
@@ -1,77 +0,0 @@
1
- import { TemplateResult, html } from 'lit';
2
- import NileSlider from './nile-slider';
3
- import { classMap } from 'lit/directives/class-map.js';
4
-
5
- export const rangeSlider = (nileSlider: NileSlider): TemplateResult => {
6
- return html`
7
- <div>
8
- <nile-tooltip
9
- content=${nileSlider.rangeOneValue}
10
- placement=${nileSlider.tooltipPosition}
11
- >
12
- <div
13
- id="range-one"
14
- class="range-button"
15
- part="range-button"
16
- role="slider"
17
- tabindex="0"
18
- aria-valuemin=${nileSlider.minValue}
19
- aria-valuemax=${nileSlider.maxValue}
20
- aria-valuenow=${nileSlider.rangeOneValue}
21
- aria-label="Minimum value"
22
- ></div>
23
- </nile-tooltip>
24
- <nile-tooltip
25
- content=${nileSlider.rangeTwoValue}
26
- placement=${nileSlider.tooltipPosition}
27
- >
28
- <div
29
- id="range-two"
30
- class="range-button-two"
31
- part="range-button-two"
32
- role="slider"
33
- tabindex="0"
34
- aria-valuemin=${nileSlider.minValue}
35
- aria-valuemax=${nileSlider.maxValue}
36
- aria-valuenow=${nileSlider.rangeTwoValue}
37
- aria-label="Maximum value"
38
- ></div>
39
- </nile-tooltip>
40
- </div>
41
- `;
42
- };
43
-
44
- export const singleSlider = (nileSlider: NileSlider): TemplateResult => {
45
- return html`
46
- <div>
47
- <nile-tooltip
48
- content=${nileSlider.value}
49
- placement=${nileSlider.tooltipPosition}
50
- >
51
- <div
52
- class=${classMap({
53
- 'range-button': true,
54
- 'range-button-active': nileSlider.activeThumb === 'one',
55
- })}
56
- part="range-button"
57
- role="slider"
58
- tabindex="0"
59
- aria-valuemin=${nileSlider.minValue}
60
- aria-valuemax=${nileSlider.maxValue}
61
- aria-valuenow=${nileSlider.value}
62
- aria-label=${nileSlider.ariaLabel || "Slider value"}
63
- ></div>
64
- </nile-tooltip>
65
- </div>
66
- `;
67
- };
68
-
69
-
70
- export const lableContaier = (nileSlider: NileSlider): TemplateResult => {
71
- return html`
72
- <div part="label-container" class="label-container">
73
- <span id="label-start">${nileSlider.labelStart}</span>
74
- <span id="label-end">${nileSlider.labelEnd}</span>
75
- </div>
76
- `;
77
- };
@@ -1,215 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2025
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import { styles } from './nile-slider.css';
9
- import NileElement from '../internal/nile-element';
10
- import { classMap } from 'lit/directives/class-map.js';
11
- import { html, CSSResultArray, TemplateResult } from 'lit';
12
- import { customElement, property } from 'lit/decorators.js';
13
- import { TooltipPosition } from './types/nile-slider.types';
14
- import { NileSliderEvents } from './types/nile-slider.enums';
15
- import { rangeSlider, singleSlider, lableContaier } from './nile-slider.template';
16
- import {
17
- handleSingleSlider,
18
- handleRangeOne,
19
- handleRangeTwo,
20
- getHtmlElements,
21
- removeMoveListeners,
22
- valueToPercent,
23
- handleTwoThumbClick,
24
- addMoveListeners
25
- } from './utils/nile-slider.utils'
26
-
27
- /**
28
- * Nile slider component.
29
- *
30
- * @tag nile-slider
31
- */
32
- @customElement('nile-slider')
33
- export class NileSlider extends NileElement {
34
- public static get styles(): CSSResultArray {
35
- return [styles];
36
- }
37
-
38
- @property({ type: Number }) minValue: number = 0;
39
- @property({ type: Number }) value: number = this.minValue;
40
- @property({ type: Number }) maxValue: number = 100;
41
- @property({ type: Number }) rangeOneValue: number = this.minValue;
42
- @property({ type: Number }) rangeTwoValue: number = this.maxValue;
43
- @property({ type: Boolean}) showLabel: boolean = false;
44
- @property({ type: String }) labelStart: string = "";
45
- @property({ type: String }) labelEnd: string = "";
46
- @property({ type: Boolean}) rangeSlider: boolean = false;
47
- @property({ type: String }) labelPosition: string = "top";
48
- @property({ type: String }) tooltipPosition: TooltipPosition = "top";
49
-
50
- public buttonOne!: HTMLElement;
51
- public buttonTwo!: HTMLElement;
52
- public range!: HTMLElement;
53
- public completed!: HTMLElement;
54
- public activeThumb: 'one' | 'two' | null = null;
55
-
56
- connectedCallback(): void {
57
- super.connectedCallback();
58
- this.emit(NileSliderEvents.NILE_INIT);
59
-
60
- if(this.rangeSlider) {
61
- this.checkRangeValidity();
62
- }
63
- }
64
-
65
- firstUpdated(changedProps: Map<string, any>): void {
66
- getHtmlElements(this);
67
-
68
- if (!this.rangeSlider && changedProps.has('value')) {
69
- this.value = this.checkValueValidity(this.value, this.minValue, this.maxValue);
70
- const percent = valueToPercent(this.value, this);
71
-
72
- this.buttonOne.style.left = `${percent}%`;
73
- this.completed.style.width = `${percent}%`;
74
- } else if (this.rangeSlider) {
75
-
76
- const percentOne = valueToPercent(this.rangeOneValue, this);
77
- const percentTwo = valueToPercent(this.rangeTwoValue, this);
78
-
79
- if (this.buttonOne) this.buttonOne.style.left = `${percentOne}%`;
80
- if (this.buttonTwo) this.buttonTwo.style.left = `${percentTwo}%`;
81
-
82
- const left = Math.min(percentOne, percentTwo);
83
- const width = Math.abs(percentTwo - percentOne);
84
-
85
- this.completed.style.left = `${left}%`;
86
- this.completed.style.width = `${width}%`;
87
- }
88
- }
89
-
90
- checkValueValidity(value: number, min: number, max: number): number {
91
- if(max - min <= 1) {
92
- return Math.max(min, Math.min(value, max));
93
- }
94
- return Math.floor(Math.max(min, Math.min(value, max)));
95
- }
96
-
97
- checkRangeValidity(): void {
98
- if(this.rangeTwoValue > this.maxValue) {
99
- this.rangeTwoValue = this.maxValue;
100
- } else if(this.rangeTwoValue < this.rangeOneValue) {
101
- this.rangeTwoValue = this.rangeOneValue;
102
- }
103
-
104
- if(this.rangeOneValue < this.minValue) {
105
- this.rangeOneValue = this.minValue;
106
- } else if(this.rangeOneValue > this.rangeTwoValue) {
107
- this.rangeOneValue = this.rangeTwoValue;
108
- }
109
- }
110
-
111
- public onMouseMove = (e: MouseEvent): void => {
112
- const rect = this.range.getBoundingClientRect();
113
-
114
- if (!this.rangeSlider) {
115
- handleSingleSlider(e, rect, this);
116
- } else {
117
- if (this.activeThumb === 'one') {
118
- handleRangeOne(e, rect, this);
119
- } else if (this.activeThumb === 'two') {
120
- handleRangeTwo(e, rect, this);
121
- }
122
-
123
- const start = valueToPercent(this.rangeOneValue, this);
124
- const end = valueToPercent(this.rangeTwoValue, this);
125
- const left = Math.min(start, end);
126
- const width = Math.abs(end - start);
127
-
128
- if(this.rangeTwoValue >= this.rangeOneValue) {
129
- this.completed.style.left = `${left}%`;
130
- this.completed.style.width = `${width}%`;
131
- }
132
- }
133
- };
134
-
135
- public onMouseUp = (): void => {
136
- if(!this.rangeSlider) this.emit(NileSliderEvents.NILE_CHANGE_END, { value: this.value });
137
- else {
138
- this.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE_END, { value: this.rangeOneValue });
139
- this.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE_END, { value: this.rangeTwoValue });
140
- }
141
- this.activeThumb = null;
142
- removeMoveListeners(this);
143
- };
144
-
145
- public onMouseDown = (e: MouseEvent): void => {
146
- const rect = this.range.getBoundingClientRect();
147
- const clickX = e.clientX - rect.left;
148
- const percent = (clickX / rect.width) * 100;
149
- const value = this.minValue + (percent / 100) * (this.maxValue - this.minValue);
150
-
151
- if (!this.rangeSlider) {
152
- handleSingleSlider(e, rect, this);
153
- this.activeThumb = 'one';
154
- addMoveListeners(this);
155
- } else {
156
- handleTwoThumbClick(value, this);
157
- const distToOne = Math.abs(value - this.rangeOneValue);
158
- const distToTwo = Math.abs(value - this.rangeTwoValue);
159
- this.activeThumb = distToOne <= distToTwo ? 'one' : 'two';
160
- addMoveListeners(this);
161
- }
162
- };
163
-
164
- public render(): TemplateResult {
165
- const hasLabels = this.showLabel;
166
- const ariaLabelledby = hasLabels ? 'label-start label-end' : undefined;
167
-
168
- return html`
169
- <div
170
- part="base"
171
- class=${classMap({
172
- 'container': true,
173
- 'align-item-center': !hasLabels
174
- })}
175
- >
176
- <slot class="span" name="prefix"></slot>
177
-
178
- <div
179
- part="range-container"
180
- class=${classMap({
181
- 'range-container': true,
182
- 'column-reverse': this.labelPosition === 'bottom'
183
- })}
184
- >
185
- ${hasLabels ? lableContaier(this) : html``}
186
-
187
- <div
188
- class="range"
189
- part="range"
190
- role="group"
191
- aria-labelledby=${ariaLabelledby}
192
- >
193
- <span class="range-completed" part="range-completed"></span>
194
- ${this.rangeSlider ? rangeSlider(this) : singleSlider(this)}
195
- </div>
196
- </div>
197
-
198
- <slot class="span" name="suffix"></slot>
199
- </div>
200
- `;
201
- }
202
-
203
- disconnectedCallback(): void {
204
- super.disconnectedCallback();
205
- this.emit(NileSliderEvents.NILE_DESTROY);
206
- }
207
- }
208
-
209
- export default NileSlider;
210
-
211
- declare global {
212
- interface HTMLElementTagNameMap {
213
- 'nile-slider': NileSlider;
214
- }
215
- }
@@ -1,10 +0,0 @@
1
- export const enum NileSliderEvents {
2
- NILE_INIT = "nile-init",
3
- NILE_CHANGE = "nile-change",
4
- NILE_CHANGE_END = "nile-change-end",
5
- NILE_BUTTON_FIRST_CHANGE = "nile-button-first-change",
6
- NILE_BUTTON_LAST_CHANGE = "nile-button-last-change",
7
- NILE_BUTTON_FIRST_CHANGE_END = "nile-button-first-change-end",
8
- NILE_BUTTON_LAST_CHANGE_END = "nile-button-last-change-end",
9
- NILE_DESTROY = "nile-destroy",
10
- }
@@ -1,13 +0,0 @@
1
- export type TooltipPosition =
2
- | 'top'
3
- | 'top-start'
4
- | 'top-end'
5
- | 'right'
6
- | 'right-start'
7
- | 'right-end'
8
- | 'bottom'
9
- | 'bottom-start'
10
- | 'bottom-end'
11
- | 'left'
12
- | 'left-start'
13
- | 'left-end';
@@ -1,136 +0,0 @@
1
- import NileSlider from '../nile-slider';
2
- import { NileSliderEvents } from '../types/nile-slider.enums';
3
-
4
- export const getClampedPercent = (
5
- rect: DOMRect,
6
- x: number,
7
- ): number => {
8
- const clampedX = Math.max(0, Math.min(x, rect.width));
9
- const percent = (clampedX / rect.width) * 100;
10
- return percent;
11
- };
12
-
13
- export const percentToValue = (percent: number, nileSlider: NileSlider): number => {
14
- const value = nileSlider.minValue + (percent / 100) * (nileSlider.maxValue - nileSlider.minValue);
15
- if(nileSlider.maxValue - nileSlider.minValue < 1) {
16
- return parseFloat(value.toFixed(2));
17
- } else {
18
- return Math.floor(value);
19
- }
20
- };
21
-
22
- export const valueToPercent = (value: number, nileSlider: NileSlider): number => {
23
- return ((value - nileSlider.minValue) / (nileSlider.maxValue - nileSlider.minValue)) * 100;
24
- };
25
-
26
- export const handleSingleSlider = (
27
- e: MouseEvent,
28
- rect: DOMRect,
29
- nileSlider: NileSlider
30
- ): void => {
31
- const x = e.clientX - rect.left;
32
- const percent = getClampedPercent(rect, x);
33
- nileSlider.value = percentToValue(percent, nileSlider);
34
- nileSlider.emit(NileSliderEvents.NILE_CHANGE, { value: nileSlider.value });
35
- nileSlider.buttonOne.style.left = `${percent}%`;
36
- nileSlider.completed.style.width = `${percent}%`;
37
- };
38
-
39
- export const handleRangeOne = (
40
- e: MouseEvent,
41
- rect: DOMRect,
42
- nileSlider: NileSlider
43
- ): void => {
44
- const x = e.clientX - rect.left;
45
- const percent = getClampedPercent(rect, x);
46
- nileSlider.rangeOneValue = percentToValue(percent, nileSlider);
47
- nileSlider.rangeOneValue = Math.min(nileSlider.rangeOneValue, nileSlider.rangeTwoValue);
48
- nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {
49
- value: nileSlider.rangeOneValue,
50
- });
51
- if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {
52
- nileSlider.buttonOne.style.left = `${percent}%`;
53
- }
54
- };
55
-
56
- export const handleRangeTwo = (
57
- e: MouseEvent,
58
- rect: DOMRect,
59
- nileSlider: NileSlider
60
- ): void => {
61
- const x = e.clientX - rect.left;
62
- const percent = getClampedPercent(rect, x);
63
- nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);
64
- nileSlider.rangeTwoValue = Math.max(nileSlider.rangeTwoValue, nileSlider.rangeOneValue);
65
- nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {
66
- value: nileSlider.rangeTwoValue,
67
- });
68
-
69
- if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {
70
- nileSlider.buttonTwo.style.left = `${percent}%`;
71
- }
72
- };
73
-
74
- export const getHtmlElements = (nileSlider: NileSlider) => {
75
- nileSlider.range = nileSlider.renderRoot.querySelector('.range') as HTMLElement;
76
- nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button') as HTMLElement;
77
- nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two') as HTMLElement;
78
- nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed') as HTMLElement;
79
-
80
- nileSlider.range.addEventListener('mousedown', nileSlider.onMouseDown);
81
-
82
- nileSlider.buttonOne?.addEventListener('mousedown', () => {
83
- nileSlider.activeThumb = 'one';
84
- addMoveListeners(nileSlider);
85
- });
86
-
87
- nileSlider.buttonTwo?.addEventListener('mousedown', () => {
88
- nileSlider.activeThumb = 'two';
89
- addMoveListeners(nileSlider);
90
- });
91
- };
92
-
93
- export const addMoveListeners = (nileSlider: NileSlider): void => {
94
- window.addEventListener('mousemove', nileSlider.onMouseMove);
95
- window.addEventListener('mouseup', nileSlider.onMouseUp);
96
- };
97
-
98
- export const removeMoveListeners = (nileSlider: NileSlider): void => {
99
- window.removeEventListener('mousemove', nileSlider.onMouseMove);
100
- window.removeEventListener('mouseup', nileSlider.onMouseUp);
101
- };
102
-
103
- export const handleTwoThumbClick = (
104
- value: number,
105
- nileSlider: NileSlider
106
- ): void => {
107
- const distToOne = Math.abs(value - nileSlider.rangeOneValue);
108
- const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);
109
-
110
- if (distToOne <= distToTwo) {
111
- const clamped = Math.min(value, nileSlider.rangeTwoValue);
112
- nileSlider.rangeOneValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);
113
- } else {
114
- const clamped = Math.max(value, nileSlider.rangeOneValue);
115
- nileSlider.rangeTwoValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);
116
- }
117
-
118
- const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);
119
- const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);
120
-
121
- nileSlider.buttonOne.style.left = `${percentOne}%`;
122
- nileSlider.buttonTwo.style.left = `${percentTwo}%`;
123
-
124
- const left = Math.min(percentOne, percentTwo);
125
- const width = Math.abs(percentTwo - percentOne);
126
-
127
- nileSlider.completed.style.left = `${left}%`;
128
- nileSlider.completed.style.width = `${width}%`;
129
-
130
- nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {
131
- value: nileSlider.rangeOneValue,
132
- });
133
- nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {
134
- value: nileSlider.rangeTwoValue,
135
- });
136
- };