@aquera/nile-elements 1.5.4 → 1.5.6

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 (297) hide show
  1. package/README.md +10 -0
  2. package/demo/index.css +9 -0
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +871 -255
  6. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
  7. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
  8. package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +13 -2
  9. package/dist/nile-button/nile-button.cjs.js +1 -1
  10. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  11. package/dist/nile-button/nile-button.css.cjs.js +1 -1
  12. package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
  13. package/dist/nile-button/nile-button.css.esm.js +89 -33
  14. package/dist/nile-button/nile-button.esm.js +2 -2
  15. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  16. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  17. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  18. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  19. package/dist/nile-calendar/nile-calendar.css.esm.js +59 -2
  20. package/dist/nile-calendar/nile-calendar.esm.js +16 -10
  21. package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
  22. package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
  23. package/dist/nile-checkbox/nile-checkbox.css.esm.js +4 -5
  24. package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
  25. package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
  26. package/dist/nile-chip/nile-chip.css.esm.js +37 -23
  27. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  28. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  29. package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
  30. package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
  31. package/dist/nile-code-editor/nile-code-editor.css.esm.js +7 -6
  32. package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
  33. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  34. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  35. package/dist/nile-date-picker/nile-date-picker.esm.js +4 -4
  36. package/dist/nile-detail/index.cjs.js +2 -0
  37. package/dist/nile-detail/index.cjs.js.map +1 -0
  38. package/dist/nile-detail/index.esm.js +1 -0
  39. package/dist/nile-detail/nile-detail.cjs.js +2 -0
  40. package/dist/nile-detail/nile-detail.cjs.js.map +1 -0
  41. package/dist/nile-detail/nile-detail.css.cjs.js +2 -0
  42. package/dist/nile-detail/nile-detail.css.cjs.js.map +1 -0
  43. package/dist/nile-detail/nile-detail.css.esm.js +149 -0
  44. package/dist/nile-detail/nile-detail.esm.js +45 -0
  45. package/dist/nile-detail/nile-detail.utils.cjs.js +2 -0
  46. package/dist/nile-detail/nile-detail.utils.cjs.js.map +1 -0
  47. package/dist/nile-detail/nile-detail.utils.esm.js +1 -0
  48. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  49. package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
  50. package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
  51. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -2
  52. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
  53. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
  54. package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
  55. package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
  56. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +1 -1
  57. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +1 -1
  58. package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +24 -2
  59. package/dist/nile-filter-chip/nile-filter-chip.esm.js +2 -2
  60. package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
  61. package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
  62. package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js +1 -1
  63. package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js.map +1 -1
  64. package/dist/nile-inline-edit/nile-inline-edit.css.esm.js +15 -6
  65. package/dist/nile-inline-edit/nile-inline-edit.esm.js +2 -2
  66. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  67. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  68. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  69. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  70. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +19 -0
  71. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +16 -14
  72. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  73. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  74. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +8 -3
  75. package/dist/nile-input/nile-input.css.cjs.js +1 -1
  76. package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
  77. package/dist/nile-input/nile-input.css.esm.js +4 -4
  78. package/dist/nile-link/nile-link.cjs.js +1 -1
  79. package/dist/nile-link/nile-link.cjs.js.map +1 -1
  80. package/dist/nile-link/nile-link.css.cjs.js +1 -1
  81. package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
  82. package/dist/nile-link/nile-link.css.esm.js +3 -4
  83. package/dist/nile-link/nile-link.esm.js +2 -2
  84. package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
  85. package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
  86. package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
  87. package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
  88. package/dist/nile-pagination/nile-pagination.css.esm.js +109 -5
  89. package/dist/nile-pagination/nile-pagination.esm.js +70 -3
  90. package/dist/nile-qr-code/index.cjs.js +2 -0
  91. package/dist/nile-qr-code/index.cjs.js.map +1 -0
  92. package/dist/nile-qr-code/index.esm.js +1 -0
  93. package/dist/nile-qr-code/nile-qr-code-utils.cjs.js +2 -0
  94. package/dist/nile-qr-code/nile-qr-code-utils.cjs.js.map +1 -0
  95. package/dist/nile-qr-code/nile-qr-code-utils.esm.js +1 -0
  96. package/dist/nile-qr-code/nile-qr-code.cjs.js +2 -0
  97. package/dist/nile-qr-code/nile-qr-code.cjs.js.map +1 -0
  98. package/dist/nile-qr-code/nile-qr-code.css.cjs.js +2 -0
  99. package/dist/nile-qr-code/nile-qr-code.css.cjs.js.map +1 -0
  100. package/dist/nile-qr-code/nile-qr-code.css.esm.js +12 -0
  101. package/dist/nile-qr-code/nile-qr-code.esm.js +9 -0
  102. package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
  103. package/dist/nile-radio/nile-radio.css.cjs.js.map +1 -1
  104. package/dist/nile-radio/nile-radio.css.esm.js +1 -1
  105. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  106. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  107. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  108. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  109. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +25 -6
  110. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  111. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +1 -1
  112. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -1
  113. package/dist/nile-rich-text-editor/nile-rte-select.esm.js +4 -3
  114. package/dist/nile-select/nile-select.css.cjs.js +1 -1
  115. package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
  116. package/dist/nile-select/nile-select.css.esm.js +7 -4
  117. package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js +1 -1
  118. package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js.map +1 -1
  119. package/dist/nile-slide-toggle/nile-slide-toggle.css.esm.js +5 -1
  120. package/dist/nile-textarea/nile-textarea.css.cjs.js +1 -1
  121. package/dist/nile-textarea/nile-textarea.css.cjs.js.map +1 -1
  122. package/dist/nile-textarea/nile-textarea.css.esm.js +10 -5
  123. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
  124. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
  125. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +5 -3
  126. package/dist/src/index.d.ts +2 -0
  127. package/dist/src/index.js +2 -0
  128. package/dist/src/index.js.map +1 -1
  129. package/dist/src/nile-auto-complete/nile-auto-complete.css.js +11 -0
  130. package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
  131. package/dist/src/nile-button/nile-button.css.js +89 -33
  132. package/dist/src/nile-button/nile-button.css.js.map +1 -1
  133. package/dist/src/nile-button/nile-button.js +5 -5
  134. package/dist/src/nile-button/nile-button.js.map +1 -1
  135. package/dist/src/nile-calendar/nile-calendar.css.js +57 -0
  136. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  137. package/dist/src/nile-calendar/nile-calendar.d.ts +1 -0
  138. package/dist/src/nile-calendar/nile-calendar.js +24 -6
  139. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  140. package/dist/src/nile-checkbox/nile-checkbox.css.js +4 -5
  141. package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
  142. package/dist/src/nile-chip/nile-chip.css.js +35 -21
  143. package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
  144. package/dist/src/nile-code-editor/nile-code-editor.css.js +7 -6
  145. package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
  146. package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
  147. package/dist/src/nile-code-editor/nile-code-editor.js +7 -1
  148. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  149. package/dist/src/nile-date-picker/nile-date-picker.d.ts +3 -0
  150. package/dist/src/nile-date-picker/nile-date-picker.js +22 -2
  151. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  152. package/dist/src/nile-detail/index.d.ts +1 -0
  153. package/dist/src/nile-detail/index.js +2 -0
  154. package/dist/src/nile-detail/index.js.map +1 -0
  155. package/dist/src/nile-detail/nile-detail.css.d.ts +3 -0
  156. package/dist/src/nile-detail/nile-detail.css.js +152 -0
  157. package/dist/src/nile-detail/nile-detail.css.js.map +1 -0
  158. package/dist/src/nile-detail/nile-detail.d.ts +29 -0
  159. package/dist/src/nile-detail/nile-detail.js +143 -0
  160. package/dist/src/nile-detail/nile-detail.js.map +1 -0
  161. package/dist/src/nile-detail/nile-detail.test.d.ts +1 -0
  162. package/dist/src/nile-detail/nile-detail.test.js +168 -0
  163. package/dist/src/nile-detail/nile-detail.test.js.map +1 -0
  164. package/dist/src/nile-detail/nile-detail.utils.d.ts +8 -0
  165. package/dist/src/nile-detail/nile-detail.utils.js +117 -0
  166. package/dist/src/nile-detail/nile-detail.utils.js.map +1 -0
  167. package/dist/src/nile-dropdown/nile-dropdown.d.ts +1 -0
  168. package/dist/src/nile-dropdown/nile-dropdown.js +11 -0
  169. package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
  170. package/dist/src/nile-file-upload/utils/file-validation.util.js +11 -6
  171. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  172. package/dist/src/nile-filter-chip/nile-filter-chip.css.js +22 -0
  173. package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +1 -1
  174. package/dist/src/nile-filter-chip/nile-filter-chip.d.ts +1 -0
  175. package/dist/src/nile-filter-chip/nile-filter-chip.js +6 -0
  176. package/dist/src/nile-filter-chip/nile-filter-chip.js.map +1 -1
  177. package/dist/src/nile-inline-edit/nile-inline-edit.css.js +15 -6
  178. package/dist/src/nile-inline-edit/nile-inline-edit.css.js.map +1 -1
  179. package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +2 -0
  180. package/dist/src/nile-inline-edit/nile-inline-edit.js +7 -0
  181. package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -1
  182. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +19 -0
  183. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  184. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +6 -0
  185. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +88 -4
  186. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  187. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.d.ts +3 -0
  188. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.js +110 -0
  189. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.js.map +1 -0
  190. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.d.ts +2 -0
  191. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js +109 -0
  192. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js.map +1 -0
  193. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +4 -0
  194. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +30 -2
  195. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  196. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.d.ts +2 -0
  197. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js +109 -0
  198. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js.map +1 -0
  199. package/dist/src/nile-input/nile-input.css.js +4 -4
  200. package/dist/src/nile-input/nile-input.css.js.map +1 -1
  201. package/dist/src/nile-link/nile-link.css.js +1 -2
  202. package/dist/src/nile-link/nile-link.css.js.map +1 -1
  203. package/dist/src/nile-link/nile-link.js +1 -0
  204. package/dist/src/nile-link/nile-link.js.map +1 -1
  205. package/dist/src/nile-pagination/nile-pagination.css.js +107 -3
  206. package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
  207. package/dist/src/nile-pagination/nile-pagination.d.ts +5 -1
  208. package/dist/src/nile-pagination/nile-pagination.js +84 -1
  209. package/dist/src/nile-pagination/nile-pagination.js.map +1 -1
  210. package/dist/src/nile-pagination/nile-pagination.test.js +1187 -103
  211. package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -1
  212. package/dist/src/nile-qr-code/index.d.ts +1 -0
  213. package/dist/src/nile-qr-code/index.js +2 -0
  214. package/dist/src/nile-qr-code/index.js.map +1 -0
  215. package/dist/src/nile-qr-code/nile-qr-code-utils.d.ts +15 -0
  216. package/dist/src/nile-qr-code/nile-qr-code-utils.js +678 -0
  217. package/dist/src/nile-qr-code/nile-qr-code-utils.js.map +1 -0
  218. package/dist/src/nile-qr-code/nile-qr-code.css.d.ts +12 -0
  219. package/dist/src/nile-qr-code/nile-qr-code.css.js +24 -0
  220. package/dist/src/nile-qr-code/nile-qr-code.css.js.map +1 -0
  221. package/dist/src/nile-qr-code/nile-qr-code.d.ts +127 -0
  222. package/dist/src/nile-qr-code/nile-qr-code.js +381 -0
  223. package/dist/src/nile-qr-code/nile-qr-code.js.map +1 -0
  224. package/dist/src/nile-qr-code/nile-qr-code.test.d.ts +1 -0
  225. package/dist/src/nile-qr-code/nile-qr-code.test.js +719 -0
  226. package/dist/src/nile-qr-code/nile-qr-code.test.js.map +1 -0
  227. package/dist/src/nile-radio/nile-radio.css.js +1 -1
  228. package/dist/src/nile-radio/nile-radio.css.js.map +1 -1
  229. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +25 -6
  230. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  231. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +1 -0
  232. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +17 -6
  233. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  234. package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +1 -0
  235. package/dist/src/nile-rich-text-editor/nile-rte-select.js +7 -2
  236. package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -1
  237. package/dist/src/nile-select/nile-select.css.js +7 -4
  238. package/dist/src/nile-select/nile-select.css.js.map +1 -1
  239. package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js +5 -1
  240. package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js.map +1 -1
  241. package/dist/src/nile-textarea/nile-textarea.css.js +10 -5
  242. package/dist/src/nile-textarea/nile-textarea.css.js.map +1 -1
  243. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +5 -3
  244. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
  245. package/dist/src/version.js +1 -1
  246. package/dist/src/version.js.map +1 -1
  247. package/dist/tsconfig.tsbuildinfo +1 -1
  248. package/package.json +3 -2
  249. package/src/index.ts +3 -2
  250. package/src/nile-auto-complete/nile-auto-complete.css.ts +11 -0
  251. package/src/nile-button/nile-button.css.ts +89 -33
  252. package/src/nile-button/nile-button.ts +6 -5
  253. package/src/nile-calendar/nile-calendar.css.ts +57 -0
  254. package/src/nile-calendar/nile-calendar.ts +17 -6
  255. package/src/nile-checkbox/nile-checkbox.css.ts +4 -5
  256. package/src/nile-chip/nile-chip.css.ts +35 -21
  257. package/src/nile-code-editor/nile-code-editor.css.ts +7 -6
  258. package/src/nile-code-editor/nile-code-editor.ts +7 -1
  259. package/src/nile-date-picker/nile-date-picker.ts +22 -2
  260. package/src/nile-detail/index.ts +1 -0
  261. package/src/nile-detail/nile-detail.css.ts +153 -0
  262. package/src/nile-detail/nile-detail.test.ts +215 -0
  263. package/src/nile-detail/nile-detail.ts +140 -0
  264. package/src/nile-detail/nile-detail.utils.ts +133 -0
  265. package/src/nile-dropdown/nile-dropdown.ts +11 -0
  266. package/src/nile-file-upload/utils/file-validation.util.ts +10 -5
  267. package/src/nile-filter-chip/nile-filter-chip.css.ts +22 -0
  268. package/src/nile-filter-chip/nile-filter-chip.ts +2 -0
  269. package/src/nile-inline-edit/nile-inline-edit.css.ts +15 -6
  270. package/src/nile-inline-edit/nile-inline-edit.ts +4 -0
  271. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +19 -0
  272. package/src/nile-inline-sidebar/nile-inline-sidebar.test.ts +108 -0
  273. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +108 -5
  274. package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.ts +107 -0
  275. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.ts +107 -0
  276. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +34 -3
  277. package/src/nile-input/nile-input.css.ts +4 -4
  278. package/src/nile-link/nile-link.css.ts +1 -2
  279. package/src/nile-link/nile-link.ts +1 -0
  280. package/src/nile-pagination/nile-pagination.css.ts +107 -3
  281. package/src/nile-pagination/nile-pagination.test.ts +1388 -101
  282. package/src/nile-pagination/nile-pagination.ts +87 -2
  283. package/src/nile-qr-code/index.ts +1 -0
  284. package/src/nile-qr-code/nile-qr-code-utils.ts +733 -0
  285. package/src/nile-qr-code/nile-qr-code.css.ts +26 -0
  286. package/src/nile-qr-code/nile-qr-code.test.ts +879 -0
  287. package/src/nile-qr-code/nile-qr-code.ts +431 -0
  288. package/src/nile-radio/nile-radio.css.ts +1 -1
  289. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +25 -6
  290. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +14 -6
  291. package/src/nile-rich-text-editor/nile-rte-select.ts +5 -2
  292. package/src/nile-select/nile-select.css.ts +7 -4
  293. package/src/nile-slide-toggle/nile-slide-toggle.css.ts +5 -1
  294. package/src/nile-textarea/nile-textarea.css.ts +10 -5
  295. package/src/nile-virtual-select/nile-virtual-select.css.ts +5 -3
  296. package/vscode-html-custom-data.json +163 -10
  297. package/web-test-runner.config.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nile-calendar.css.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0jBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * DatePicker CSS\n */\nexport const styles = css`\n :host {\n display: inline-block;\n }\n \n .base {\n background-color: var(\n --nile-colors-white-base,\n var(--ng-colors-bg-primary)\n );\n border-radius: var(--nile-radius-radius-sm, var(--ng-radius-2xl));\n width: var(--nile-width-288px, var(--ng-width-312));\n border: 1px solid\n var(--nile-colors-neutral-400, var(--ng-colors-border-secondary-alt));\n box-shadow: var(\n --nile-box-shadow-15,\n 0px 20px 24px -4px var(--ng-colors-effects-shadow-xl-01)\n ); // Need to fix the token for this\n border: var(\n --nile-spacing-spacing-none,\n 1px solid var(--ng-colors-border-secondary-alt)\n );\n -webkit-font-smoothing: var(\n --nile-webkit-font-smoothing,\n var(--ng-webkit-font-smoothing)\n );\n -moz-osx-font-smoothing: var(\n --nile-moz-osx-font-smoothing,\n var(--ng-moz-osx-font-smoothing)\n );\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .calendar-container {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n width: 100%;\n height: auto;\n text-align: center;\n background: white;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-2xl));\n }\n\n .calendar-wrapper {\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n display: flex;\n justify-content: space-between;\n width: 100%;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-2xl));\n }\n\n .calendar-header {\n display: flex;\n justify-content: space-between;\n padding: var(--nile-spacing-22px, var(--ng-spacing-2xl))\n var(--nile-spacing-2xl, var(--ng-spacing-2xl));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .calendar-header__month-navigation {\n cursor: pointer;\n }\n\n /* Date CSS_START */\n\n .days_container {\n display: grid;\n padding: var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-lg, var(--ng-spacing-lg))\n var(--nile-spacing-lg, var(--ng-spacing-lg))\n var(--nile-spacing-lg, var(--ng-spacing-lg));\n grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;\n grid-row-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n .day_date,\n .day_name {\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n font-style: normal;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm));\n line-height: var(--nile-line-height-20px, var(--ng-line-height-text-sm));\n text-align: center;\n width: 100%;\n height: var(--nile-width-32px, var(--ng-width-10));\n display: grid;\n place-items: center;\n }\n\n .day_name {\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n }\n\n .day_date {\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n user-select: none;\n cursor: pointer;\n }\n\n .current__date__dot {\n background-color: var(\n --nile-colors-primary-600,\n var(--ng-colors-text-white)\n );\n position: absolute;\n border-radius: 50%;\n height: 5px;\n width: 5px;\n left: 25%;\n top: 90%;\n }\n\n .day_date:not(.range-start, .selected-date, .range-end) .current__date__dot {\n background-color: var(\n --nile-colors-primary-600,\n var(--ng-colors-bg-brand-solid)\n );\n }\n\n .day_date:hover {\n background-color: var(\n --nile-colors-neutral-100,\n var(--ng-colors-bg-secondary-hover)\n );\n }\n\n .filler {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events: none;\n }\n\n .selected-date {\n color: white;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n .selected-date:hover {\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n .selected-date,\n .range-start,\n .range-end {\n cursor: pointer;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-white));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-regular)\n );\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n\n .selected-date:hover,\n .range-start:hover,\n .range-end:hover,\n .day_date.in-range:hover {\n background: var(\n --nile-colors-blue-500,\n var(--ng-colors-bg-brand-solid-hover)\n );\n }\n\n .range-start.in-range {\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs))\n var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-xs, var(--ng-radius-xs));\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-primary));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-regular)\n );\n }\n\n .range-end {\n cursor: pointer;\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n border-radius: var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-xs, var(--ng-radius-xs))\n var(--nile-radius-radius-xs, var(--ng-radius-xs))\n var(--nile-radius-radius-none, var(--ng-radius-none));\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-primary));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm));\n letter-spacing: 0.2px;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-regular)\n );\n }\n\n .range-middle {\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-none, var(--ng-radius-none));\n }\n\n .day_date.selected {\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n }\n\n .day_date.in-range:not(.range-start, .range-end, .selected-date) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-active));\n }\n\n .selected-date {\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n }\n\n .not-allowed {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events: none;\n }\n\n /* Date CSS_END */\n\n .calender-input {\n box-sizing: border-box;\n padding: var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-xl, var(--ng-spacing-xl));\n width: 100%;\n justify-content: space-between;\n display: flex;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n flex-wrap: wrap;\n }\n\n .from {\n display: flex;\n justify-content: space-between;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n width: auto;\n align-items: flex-end;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n flex-wrap: nowrap;\n width: 100%;\n }\n\n .manual-input-label {\n color: var(--nile-colors-dark-500);\n font-family: Colfax-regular;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: 12px;\n letter-spacing: 0.2px;\n }\n\n .button-container {\n width: 100%;\n display: flex;\n justify-content: end;\n gap: var(--nile-spacing-xl, var(--ng-spacing-lg));\n padding: var(--nile-spacing-xl, var(--ng-spacing-lg))\n var(--nile-spacing-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-spacing-xl, var(--ng-spacing-xl));\n box-sizing: border-box;\n }\n\n .calendar-config {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n nile-tab::part(base) {\n padding-bottom: 12px;\n justify-content: center;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n }\n\n .calendar-switcher {\n width: 100%;\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .units-wrapper {\n width: min-content;\n margin: auto;\n }\n\n .unit-container {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .unit-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .duration-name {\n display: flex;\n align-items: center;\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n line-height: var(--nile-line-height-small, var(--ng-line-height-text-sm));\n }\n\n .duration-units {\n display: flex;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n line-height: var(--nile-line-height-small, var(--ng-line-height-text-sm));\n gap: 6px;\n }\n\n .duration__value {\n display: grid;\n place-items: center;\n width: var(--nile-width-32px, var(--ng-width-10));\n height: var(--nile-width-32px, var(--ng-width-10));\n cursor: pointer;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-md));\n border: 1px solid\n var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n }\n\n .duration__value:hover {\n background: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary));\n }\n\n .duration__value--selected {\n background-color: var(\n --nile-colors-blue-400,\n var(--ng-colors-bg-brand-solid)\n );\n color: var(--nile-colors-dark-900, var(--ng-colors-text-white));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semi-bold)\n );\n border: 1px solid transparent;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n\n .duration__value--selected:hover {\n background: var(\n --nile-colors-blue-500,\n var(--ng-colors-bg-brand-solid-hover)\n );\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semi-bold)\n );\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n\n nile-input::part(input)::-webkit-inner-spin-button,\n nile-input::part(input)::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n\n .hidden {\n display: none !important;\n }\n\n .unit-input-container {\n display: flex;\n line-height: 0;\n justify-content: space-between;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n padding: var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-none, var(--ng-spacing-xl))\n var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .duration-input,\n .time-input,\n .manual-input {\n width: 125px;\n }\n\n /* New Styles */\n\n nile-dropdown[open] > span[slot='trigger'] .calendar-header__caret {\n transform: rotate(180deg);\n }\n\n .calendar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 14px;\n font-weight: 600;\n line-height: 14px;\n letter-spacing: 0.2px;\n font-feature-settings: 'liga' off, 'clig' off;\n }\n\n .calendar-header__center {\n display: flex;\n align-items: center;\n gap: 6px;\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n }\n\n .calendar-header__trigger {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n font-size: 14px;\n font-weight: 600;\n line-height: 1;\n background: transparent;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-medium, var(--ng-font-family-body));\n }\n\n .calendar-header__caret {\n width: 16px;\n height: 16px;\n transition: transform 0.2s ease;\n transform-origin: center;\n }\n\n .calendar-menu {\n max-height: 194px;\n overflow-y: auto;\n width: 100px;\n }\n\n .month-scroll-wrapper {\n max-height: 196px;\n overflow-y: auto;\n width: 100px;\n overflow-x: hidden;\n }\n\n .month-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .year-scroll-wrapper {\n max-height: 196px;\n overflow-y: auto;\n width: 65px;\n overflow-x: hidden;\n }\n\n .year-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .month-dropdown nile-menu-item::part(base) {\n padding: 0px 12px;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n .year-dropdown nile-menu-item::part(base) {\n padding: 0px 12px;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n nile-menu-item[selected] {\n background: var(--nile-colors-primary-100);\n }\n\n nile-menu-item[selected]::part(base):hover {\n background: var(--nile-colors-primary-100);\n border-radius: 0px;\n }\n\n nile-icon[disabled] {\n opacity: 0.4;\n pointer-events: none;\n }\n\n .units-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n width: auto;\n }\n\n .calendar-input {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n padding: var(--nile-spacing-lg, var(--ng-spacing-xl)) var(--nile-spacing-xl, var(--ng-spacing-3xl))\n var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-xl, var(--ng-spacing-3xl));\n box-sizing: border-box;\n }\n\n .manual-input {\n flex: 1;\n min-width: 120px;\n }\n\n .date-input nile-input::part(base),\n .time-input nile-input::part(base) {\n width: 100%;\n }\n\n .manual-input-label {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n }\n\n .day_date.in-range:hover:not(.range-start):not(.range-end) {\n background-color: var(\n --nile-colors-neutral-400,\n var(--ng-colors-bg-quaternary)\n );\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n nile-input.date-input::part(base),\n .from-date {\n width: var(--nile-width-150px, var(--ng-width-164));\n }\n\n nile-input.time-input::part(base),\n .from-time {\n width: var(--nile-width-99px, var(--ng-width-108));\n }\n\n .month-dropdown, .year-dropdown {\n cursor: pointer;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-calendar.css.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmnBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * DatePicker CSS\n */\nexport const styles = css`\n :host {\n display: inline-block;\n }\n \n .base {\n background-color: var(\n --nile-colors-white-base,\n var(--ng-colors-bg-primary)\n );\n border-radius: var(--nile-radius-radius-sm, var(--ng-radius-2xl));\n width: var(--nile-width-288px, var(--ng-width-312));\n border: 1px solid\n var(--nile-colors-neutral-400, var(--ng-colors-border-secondary-alt));\n box-shadow: var(\n --nile-box-shadow-15,\n 0px 20px 24px -4px var(--ng-colors-effects-shadow-xl-01)\n ); // Need to fix the token for this\n border: var(\n --nile-spacing-spacing-none,\n 1px solid var(--ng-colors-border-secondary-alt)\n );\n -webkit-font-smoothing: var(\n --nile-webkit-font-smoothing,\n var(--ng-webkit-font-smoothing)\n );\n -moz-osx-font-smoothing: var(\n --nile-moz-osx-font-smoothing,\n var(--ng-moz-osx-font-smoothing)\n );\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .calendar-container {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n width: 100%;\n height: auto;\n text-align: center;\n background: white;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-2xl));\n }\n\n .calendar-wrapper {\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n display: flex;\n justify-content: space-between;\n width: 100%;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-2xl));\n }\n\n .calendar-header {\n display: flex;\n justify-content: space-between;\n padding: var(--nile-spacing-22px, var(--ng-spacing-2xl))\n var(--nile-spacing-2xl, var(--ng-spacing-2xl));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .calendar-header__month-navigation {\n cursor: pointer;\n }\n\n /* Date CSS_START */\n\n .days_container {\n display: grid;\n padding: var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-lg, var(--ng-spacing-lg))\n var(--nile-spacing-lg, var(--ng-spacing-lg))\n var(--nile-spacing-lg, var(--ng-spacing-lg));\n grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;\n grid-row-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n .day_date,\n .day_name {\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n font-style: normal;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm));\n line-height: var(--nile-line-height-20px, var(--ng-line-height-text-sm));\n text-align: center;\n width: 100%;\n height: var(--nile-width-32px, var(--ng-width-10));\n display: grid;\n place-items: center;\n }\n\n .day_name {\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n }\n\n .day_date {\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n user-select: none;\n cursor: pointer;\n }\n\n .current__date__dot {\n background-color: var(\n --nile-colors-primary-600,\n var(--ng-colors-text-white)\n );\n position: absolute;\n border-radius: 50%;\n height: 5px;\n width: 5px;\n left: 25%;\n top: 90%;\n }\n\n .day_date:not(.range-start, .selected-date, .range-end) .current__date__dot {\n background-color: var(\n --nile-colors-primary-600,\n var(--ng-colors-bg-brand-solid)\n );\n }\n\n .day_date:hover {\n background-color: var(\n --nile-colors-neutral-100,\n var(--ng-colors-bg-secondary-hover)\n );\n }\n\n .filler {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events: none;\n }\n\n .selected-date {\n color: white;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n .selected-date:hover {\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n .selected-date,\n .range-start,\n .range-end {\n cursor: pointer;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-white));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-regular)\n );\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n\n .selected-date:hover,\n .range-start:hover,\n .range-end:hover,\n .day_date.in-range:hover {\n background: var(\n --nile-colors-blue-500,\n var(--ng-colors-bg-brand-solid-hover)\n );\n }\n\n .range-start.in-range {\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs))\n var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-xs, var(--ng-radius-xs));\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-primary));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-regular)\n );\n }\n\n .range-end {\n cursor: pointer;\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n border-radius: var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-xs, var(--ng-radius-xs))\n var(--nile-radius-radius-xs, var(--ng-radius-xs))\n var(--nile-radius-radius-none, var(--ng-radius-none));\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-primary));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm));\n letter-spacing: 0.2px;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-regular)\n );\n }\n\n .range-middle {\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-none, var(--ng-radius-none));\n }\n\n .day_date.selected {\n background: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n }\n\n .day_date.in-range:not(.range-start, .range-end, .selected-date) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-active));\n }\n\n .selected-date {\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n background: var(--nile-colors-blue-400, var(--ng-colors-bg-brand-solid));\n }\n\n .not-allowed {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events: none;\n }\n\n /* Date CSS_END */\n\n .calender-input {\n box-sizing: border-box;\n padding: var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-xl, var(--ng-spacing-xl));\n width: 100%;\n justify-content: space-between;\n display: flex;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n flex-wrap: wrap;\n }\n\n .from {\n display: flex;\n justify-content: space-between;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n width: auto;\n align-items: flex-end;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n flex-wrap: nowrap;\n width: 100%;\n }\n\n .manual-input-label {\n color: var(--nile-colors-dark-500);\n font-family: Colfax-regular;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: 12px;\n letter-spacing: 0.2px;\n }\n\n .button-container {\n width: 100%;\n display: flex;\n justify-content: end;\n gap: var(--nile-spacing-xl, var(--ng-spacing-lg));\n padding: var(--nile-spacing-xl, var(--ng-spacing-lg))\n var(--nile-spacing-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-spacing-xl, var(--ng-spacing-xl));\n box-sizing: border-box;\n }\n\n .calendar-config {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n nile-tab::part(base) {\n padding-bottom: 12px;\n justify-content: center;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n }\n\n .calendar-switcher {\n width: 100%;\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .units-wrapper {\n width: min-content;\n margin: auto;\n }\n\n .unit-container {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .unit-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .duration-name {\n display: flex;\n align-items: center;\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semibold)\n );\n line-height: var(--nile-line-height-small, var(--ng-line-height-text-sm));\n }\n\n .duration-units {\n display: flex;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n line-height: var(--nile-line-height-small, var(--ng-line-height-text-sm));\n gap: 6px;\n }\n\n .duration__value {\n display: grid;\n place-items: center;\n width: var(--nile-width-32px, var(--ng-width-10));\n height: var(--nile-width-32px, var(--ng-width-10));\n cursor: pointer;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-md));\n border: 1px solid\n var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n }\n\n .duration__value:hover {\n background: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary));\n }\n\n .duration__value--selected {\n background-color: var(\n --nile-colors-blue-400,\n var(--ng-colors-bg-brand-solid)\n );\n color: var(--nile-colors-dark-900, var(--ng-colors-text-white));\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semi-bold)\n );\n border: 1px solid transparent;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n\n .duration__value--selected:hover {\n background: var(\n --nile-colors-blue-500,\n var(--ng-colors-bg-brand-solid-hover)\n );\n font-weight: var(\n --nile-font-weight-semi-bold,\n var(--ng-font-weight-semi-bold)\n );\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n\n nile-input::part(input)::-webkit-inner-spin-button,\n nile-input::part(input)::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n\n .hidden {\n display: none !important;\n }\n\n .unit-input-container {\n display: flex;\n line-height: 0;\n justify-content: space-between;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n padding: var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-none, var(--ng-spacing-xl))\n var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .duration-input,\n .time-input,\n .manual-input {\n width: 125px;\n }\n\n /* New Styles */\n\n nile-dropdown[open] > span[slot='trigger'] .calendar-header__caret {\n transform: rotate(180deg);\n }\n\n .calendar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 14px;\n font-weight: 600;\n line-height: 14px;\n letter-spacing: 0.2px;\n font-feature-settings: 'liga' off, 'clig' off;\n }\n\n .calendar-header__center {\n display: flex;\n align-items: center;\n gap: 6px;\n font-family: var(\n --nile-font-family-serif-colfax-medium,\n var(--ng-font-family-body)\n );\n }\n\n .calendar-header__trigger {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n font-size: 14px;\n font-weight: 600;\n line-height: 1;\n background: transparent;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-medium, var(--ng-font-family-body));\n }\n\n .calendar-header__caret {\n width: 16px;\n height: 16px;\n transition: transform 0.2s ease;\n transform-origin: center;\n }\n\n .calendar-menu {\n max-height: 194px;\n overflow-y: auto;\n width: 100px;\n }\n\n .month-scroll-wrapper {\n max-height: 196px;\n overflow-y: auto;\n width: 100px;\n overflow-x: hidden;\n }\n\n .month-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .year-scroll-wrapper {\n max-height: 196px;\n overflow-y: auto;\n width: 65px;\n overflow-x: hidden;\n }\n\n .year-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .month-dropdown nile-menu-item::part(base) {\n padding: 0px 12px;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n .year-dropdown nile-menu-item::part(base) {\n padding: 0px 12px;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n }\n nile-menu-item[selected] {\n background: var(--nile-colors-primary-100);\n }\n\n nile-menu-item[selected]::part(base):hover {\n background: var(--nile-colors-primary-100);\n border-radius: 0px;\n }\n\n nile-icon[disabled] {\n opacity: 0.4;\n pointer-events: none;\n }\n\n .units-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n width: auto;\n }\n\n .calendar-input {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n padding: var(--nile-spacing-lg, var(--ng-spacing-xl)) var(--nile-spacing-xl, var(--ng-spacing-3xl))\n var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-xl, var(--ng-spacing-3xl));\n box-sizing: border-box;\n }\n\n .manual-input {\n flex: 1;\n min-width: 120px;\n }\n\n .date-input nile-input::part(base),\n .time-input nile-input::part(base) {\n width: 100%;\n }\n\n .manual-input-label {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n }\n\n .day_date.in-range:hover:not(.range-start):not(.range-end) {\n background-color: var(\n --nile-colors-neutral-400,\n var(--ng-colors-bg-quaternary)\n );\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n nile-input.date-input::part(base),\n .from-date {\n width: var(--nile-width-150px, var(--ng-width-164));\n }\n\n nile-input.time-input::part(base),\n .from-time {\n width: var(--nile-width-99px, var(--ng-width-108));\n }\n\n .month-dropdown, .year-dropdown {\n cursor: pointer;\n }\n\n\n\n:host([disabled]) .calendar-header__month-navigation,\n:host([disabled]) .calendar-header__trigger,\n:host([disabled]) .day_date {\n cursor: not-allowed;\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n}\n\n\n\n:host([disabled]) .base {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed;\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n}\n\n:host([disabled]) .calendar-container {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n}\n\n:host([disabled]) .day_name {\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n}\n\n:host([disabled]) nile-input::part(form-control-label) {\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n}\n:host([disabled]) nile-select::part(form-control-label) {\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n}\n\n\n\n:host([disabled]) .calendar-switcher {\n pointer-events: none;\n opacity:var(--nile-opacity-50, var(--ng-opacity-50));\n}\n\n\n:host([disabled]) .day_date{\n pointer-events:none;\n}\n:host([disabled]) .day_date:not(.range-start, .selected-date, .range-end) .current__date__dot {\n background-color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n}\n\n:host([disabled]) .duration_unit{\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n}\n:host([disabled]) .duration__value {\n cursor: not-allowed;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-disabled));\n border-color: var(--nile-colors-neutral-400, var(--ng-colors-border-disabled));\n}\n`;\n\nexport default [styles];\n"]}
@@ -49,6 +49,7 @@ export declare class NileCalendar extends NileElement {
49
49
  currentMonth: number;
50
50
  currentYear: number;
51
51
  allowedDatesLocal: NileCalendarDateRange | any;
52
+ disabled: boolean;
52
53
  connectedCallback(): void;
53
54
  disconnectedCallback(): void;
54
55
  protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
@@ -40,6 +40,7 @@ let NileCalendar = class NileCalendar extends NileElement {
40
40
  this.currentMonth = new Date().getMonth();
41
41
  this.currentYear = new Date().getFullYear();
42
42
  this.allowedDatesLocal = null;
43
+ this.disabled = false;
43
44
  }
44
45
  /**
45
46
  * The styles for NileCalendar
@@ -255,6 +256,7 @@ let NileCalendar = class NileCalendar extends NileElement {
255
256
  <div class="from">
256
257
  <div class="from-date">
257
258
  <nile-input
259
+ ?disabled="${this.disabled}"
258
260
  label="From"
259
261
  class="manual-input date-input"
260
262
  placeholder="${this.dateFormat}"
@@ -265,6 +267,7 @@ let NileCalendar = class NileCalendar extends NileElement {
265
267
 
266
268
  <div class="from-time">
267
269
  <nile-input
270
+ ?disabled="${this.disabled}"
268
271
  class="manual-input time-input"
269
272
  placeholder="HH:MM:SS"
270
273
  value="${this.formatTime(this.startDate)}"
@@ -277,6 +280,7 @@ let NileCalendar = class NileCalendar extends NileElement {
277
280
  <div class="from">
278
281
  <div class="from-date">
279
282
  <nile-input
283
+ ?disabled="${this.disabled}"
280
284
  label="To"
281
285
  class="manual-input date-input"
282
286
  placeholder="${this.dateFormat}"
@@ -286,6 +290,7 @@ let NileCalendar = class NileCalendar extends NileElement {
286
290
  </div>
287
291
  <div class="from-time">
288
292
  <nile-input
293
+ ?disabled="${this.disabled}"
289
294
  class="manual-input time-input"
290
295
  placeholder="HH:MM:SS"
291
296
  value="${this.formatTime(this.endDate)}"
@@ -357,6 +362,7 @@ let NileCalendar = class NileCalendar extends NileElement {
357
362
  <div class="unit-input-container">
358
363
  <nile-input
359
364
  class="manual-input duration-input"
365
+ ?disabled="${this.disabled}"
360
366
  label="Duration"
361
367
  inputmode="numeric"
362
368
  type="number"
@@ -367,6 +373,7 @@ let NileCalendar = class NileCalendar extends NileElement {
367
373
 
368
374
  <nile-select
369
375
  class="manual-input time-input"
376
+ ?disabled="${this.disabled}"
370
377
  label="Unit of time"
371
378
  value="${this.selectedUnit}"
372
379
  @nile-change="${this.handleUnitChange}"
@@ -456,7 +463,7 @@ let NileCalendar = class NileCalendar extends NileElement {
456
463
  class="calendar-header__month-navigation"
457
464
  name="var(--nile-icon-arrow-left, var(--ng-icon-chevron-left))"
458
465
  method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
459
- color="black"
466
+ color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'}
460
467
  role="button"
461
468
  tabindex="${this.isPrevDisabled() ? '-1' : '0'}"
462
469
  @keydown="${(e) => { if (e.key === 'Enter' || e.key === ' ')
@@ -468,7 +475,7 @@ let NileCalendar = class NileCalendar extends NileElement {
468
475
 
469
476
  ${this.showMonthDropdown || this.showYearDropdown ? html `
470
477
  ${this.showMonthDropdown ? html `
471
- <nile-dropdown class="month-dropdown">
478
+ <nile-dropdown ?disabled="${this.disabled}" class="month-dropdown">
472
479
  <span
473
480
  slot="trigger"
474
481
  class="calendar-header__trigger month-trigger"
@@ -476,7 +483,7 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
476
483
  part="trigger"
477
484
  >
478
485
  ${new Date(year, month).toLocaleString('default', { month: 'long' })}
479
- <nile-icon name="arrowdropdown" color="black" class="calendar-header__caret"></nile-icon>
486
+ <nile-icon name="arrowdropdown" color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'} class="calendar-header__caret"></nile-icon>
480
487
  </span>
481
488
  <nile-menu>
482
489
  <div class="month-scroll-wrapper">
@@ -498,7 +505,7 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
498
505
  >
499
506
  `}
500
507
  ${this.showYearDropdown ? html `
501
- <nile-dropdown class="year-dropdown">
508
+ <nile-dropdown ?disabled="${this.disabled}" class="year-dropdown">
502
509
  <span
503
510
  slot="trigger"
504
511
  class="calendar-header__trigger"
@@ -506,7 +513,7 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
506
513
  part="trigger"
507
514
  >
508
515
  ${year}
509
- <nile-icon name="arrowdropdown" color="black" class="calendar-header__caret"></nile-icon>
516
+ <nile-icon name="arrowdropdown" color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'} class="calendar-header__caret"></nile-icon>
510
517
  </span>
511
518
  <nile-menu>
512
519
  <div class="year-scroll-wrapper">
@@ -539,7 +546,7 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
539
546
  class="calendar-header__month-navigation"
540
547
  name="var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))"
541
548
  method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
542
- color="black"
549
+ color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'}
543
550
  role="button"
544
551
  tabindex="${this.isNextDisabled() ? '-1' : '0'}"
545
552
  @keydown="${(e) => { if (e.key === 'Enter' || e.key === ' ')
@@ -628,6 +635,8 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
628
635
  * @param year
629
636
  */
630
637
  selectDate(day, month, year) {
638
+ if (this.disabled)
639
+ return;
631
640
  const selectedDate = new Date(year, month, day);
632
641
  if (this.range) {
633
642
  if (this.startDate && this.endDate) {
@@ -809,6 +818,8 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
809
818
  return `${hours}:${minutes}:${seconds}`;
810
819
  }
811
820
  nextMonth() {
821
+ if (this.disabled)
822
+ return;
812
823
  if (this.currentMonth === 11) {
813
824
  const newYear = this.currentYear + 1;
814
825
  if (this.endYear !== undefined && newYear > this.endYear)
@@ -821,6 +832,8 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
821
832
  }
822
833
  }
823
834
  prevMonth() {
835
+ if (this.disabled)
836
+ return;
824
837
  if (this.currentMonth === 0) {
825
838
  const newYear = this.currentYear - 1;
826
839
  if (this.startYear !== undefined && newYear < this.startYear)
@@ -841,6 +854,8 @@ ${this.showMonthDropdown || this.showYearDropdown ? html `
841
854
  });
842
855
  }
843
856
  onTypeChange(event) {
857
+ if (this.disabled)
858
+ return;
844
859
  this.type = event.detail.value;
845
860
  this.emit('nile-type-change', { value: this.type });
846
861
  }
@@ -928,6 +943,9 @@ __decorate([
928
943
  __decorate([
929
944
  state()
930
945
  ], NileCalendar.prototype, "allowedDatesLocal", void 0);
946
+ __decorate([
947
+ property({ type: Boolean, attribute: true, reflect: true })
948
+ ], NileCalendar.prototype, "disabled", void 0);
931
949
  __decorate([
932
950
  watch('allowedDates')
933
951
  ], NileCalendar.prototype, "checkValidAllowedDate", null);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-calendar.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n nothing\n} from 'lit';\nimport { customElement, state, property } from 'lit/decorators.js';\nimport { styles } from './nile-calendar.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport { ClearMode } from './nile-calendar.enum';\nimport type { PropertyValueMap } from 'lit';\ntype NileCalendarDateRange={ startDate: string, endDate: string }\ntype TimeUnits= 'minutes'|'hours'|'days'|'weeks'|'months';\n/**\n * Nile icon component.\n *\n * @tag nile-calendar\n *\n */\n@customElement('nile-calendar')\nexport class NileCalendar extends NileElement {\n /**\n * The styles for NileCalendar\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n\n\n @property({ type: String, attribute: 'value' }) valueAttribute: | string | null = null;\n\n @property({ type: String, attribute:true, reflect:true }) allowedDates: string = JSON.stringify({});\n\n @property({ type: Boolean, reflect: true }) range = false;\n\n @property({ type: Boolean, attribute: true, reflect:true }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: String }) selectedUnit: TimeUnits;\n\n @property({ type: Number }) selectedValue: number;\n\n @property({ type: Array, attribute: 'hide-duration-fields' }) hideDurationFields: String[] = [];\n \n @property({ type: Boolean}) showManualInputs :boolean=false;\n\n @property({ type: Number , attribute: true, reflect: true }) startYear: number;\n\n @property({ type: Number , attribute: true, reflect: true }) endYear: number;\n\n @property({ type: Boolean, attribute:true, reflect: true}) showMonthDropdown = false;\n \n @property({ type: Boolean, attribute:true, reflect: true}) showYearDropdown = false;\n\n @property({ type: String, reflect: true, attribute: true}) dateFormat: string = 'MM/DD/YYYY';\n\n\n @state() startDate: Date | null = null;\n\n @state() endDate: Date | null = null;\n\n @state() isSelectingStart = true;\n\n @state() hideInput: Boolean = false;\n\n @state() value: Date | null;\n\n @state() currentMonth: number = new Date().getMonth();\n\n @state() currentYear: number = new Date().getFullYear();\n\n @state() allowedDatesLocal: NileCalendarDateRange | any = null;\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeValue();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('valueAttribute')) {\n if(!this.valueAttribute){\n this.value=null;\n this.startDate=null;\n this.endDate=null;\n this.isSelectingStart=true;\n }\n const date = new Date(this.valueAttribute || '');\n if (!isNaN(date.getTime())) {\n const offset = date.getTimezoneOffset();\n this.value = new Date(date.getTime() - offset * 60 * 1000);\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n this.initializeValue();\n }\n }\n\n private get monthNames() {\n return Array.from({ length: 12 }, (_, i) =>\n new Date(0, i).toLocaleString('default', { month: 'long' })\n );\n }\n\n private get yearOptions(): number[] {\n const fallbackStart = 2000;\n const fallbackEnd = 2050;\n \n const start = this.startYear ?? fallbackStart;\n const end = this.endYear ?? fallbackEnd;\n \n if (start > end) return [];\n \n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n }\n \n private onMonthSelected(monthIndex: number) {\n this.currentMonth = monthIndex;\n this.emit('nile-month-change', { month: monthIndex });\n }\n\n private onYearSelected(year: number) {\n this.currentYear = year;\n this.emit('nile-year-change', { year });\n }\n\n @watch('allowedDates')\n checkValidAllowedDate() {\n let newDateRange: NileCalendarDateRange | null;\n try {\n newDateRange=JSON.parse(this.allowedDates);\n } catch (error) {\n newDateRange=null;\n }\n if (!newDateRange || Object.keys(newDateRange).length == 0) {\n this.allowedDatesLocal=null;\n return;\n }\n this.hideInput=true;\n const startDate = this.getUTCDate(newDateRange.startDate)\n const endDate = this.getUTCDate(newDateRange.endDate)\n\n if (startDate > endDate) {\n console.error('StartDate must be greater than endDate');\n }\n else\n {\n this.allowedDatesLocal=newDateRange;\n }\n }\n\n private isPrevDisabled(): boolean {\n return (\n this.currentMonth === 0 &&\n this.startYear !== undefined &&\n this.currentYear <= this.startYear\n );\n }\n \n private isNextDisabled(): boolean {\n return (\n this.currentMonth === 11 &&\n this.endYear !== undefined &&\n this.currentYear >= this.endYear\n );\n }\n\n private formatDate(date: Date | null): string {\n if (!date) return '';\n \n const yyyy = date.getFullYear();\n const mm = String(date.getMonth() + 1).padStart(2, '0');\n const dd = String(date.getDate()).padStart(2, '0');\n \n let formatted = this.dateFormat;\n formatted = formatted.replace(/YYYY/g, String(yyyy));\n formatted = formatted.replace(/MM/g, mm);\n formatted = formatted.replace(/DD/g, dd);\n formatted = formatted.replace(/YY/g, String(yyyy).slice(-2));\n \n return formatted;\n }\n \n\n private parseDate(input: string, existingDate?: Date | null): Date | null {\n if (!input || !this.dateFormat) return null;\n const formatPattern = this.dateFormat\n .replace(/YYYY/, '(?<year>\\\\d{4})')\n .replace(/YY/, '(?<year>\\\\d{2})')\n .replace(/MM/, '(?<month>\\\\d{1,2})')\n .replace(/DD/, '(?<day>\\\\d{1,2})');\n \n const regex = new RegExp(`^${formatPattern}$`);\n const match = input.match(regex);\n if (!match || !match.groups) return null;\n \n const year = match.groups.year.length === 2 ? Number(`20${match.groups.year}`) : Number(match.groups.year);\n const month = Number(match.groups.month) - 1; \n const day = Number(match.groups.day);\n \n const date = new Date(year, month, day);\n if (existingDate) {\n date.setHours(\n existingDate.getHours(),\n existingDate.getMinutes(),\n existingDate.getSeconds(),\n );\n } else {\n date.setHours(0, 0, 0);\n }\n return date;\n }\n\nprivate handleStartDateInput(event: CustomEvent): void {\n event.stopPropagation();\n const newDate = this.parseDate(event.detail.value, this.startDate);\n if (newDate) {\n newDate.setHours(0, 0, 0);\n this.startDate = newDate;\n this.currentMonth = newDate.getMonth();\n this.currentYear = newDate.getFullYear();\n this.requestUpdate();\n }\n }\nprivate handleEndDateInput(event: CustomEvent): void {\n event.stopPropagation();\n const newDate = this.parseDate(event.detail.value, this.endDate);\n if (newDate) {\n newDate.setHours(23, 59, 59);\n this.endDate = newDate;\n this.currentMonth = newDate.getMonth();\n this.currentYear = newDate.getFullYear();\n this.requestUpdate();\n }\n }\n\n \n\n /**\n * Render method\n */\n render(): TemplateResult {\n return html`\n <div\n class=${classMap({\n base:true,\n base__range:this.range,\n })}\n part=\"calendar-container\"\n >\n <div class=${classMap({\n \"calendar-config\":true,\n \"hidden\": !this.range || (this.range && this.hideTypes)\n })}>\n <div class=\"calendar-switcher\" part=\"calendar-switcher\">\n <nile-tab-group centered @nile-tab-show=\"${this.onTypeChange}\" value=\"${this.type}\">\n <nile-tab slot=\"nav\" panel=\"absolute\" tabindex=\"0\">Absolute</nile-tab>\n <nile-tab slot=\"nav\" panel=\"relative\" tabindex=\"0\">Relative</nile-tab>\n </nile-tab-group>\n </div>\n </div>\n \n ${this.type == 'relative' ? this.renderRelativeCalendar():''}\n ${this.type == 'absolute' ? this.renderAbsoluteCalendar():''}\n\n ${!this.range?'':html`\n <div class=\"button-container\" part=\"button-container\">\n ${this.allowClear?\n html`\n <nile-button \n class=\"clear-button\"\n variant=\"secondary\"\n role=\"button\"\n ?disabled=\"${ !this.startDate || !this.endDate }\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.clearDate();}}\"\n @click=\"${this.clearDate}\"\n\n > Reset</nile-button>`:nothing\n }\n <nile-button \n class=\"apply-button\" \n ?disabled=\"${ !this.startDate || !this.endDate }\" \n @click=\"${this.confimRange}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.confimRange();}}\"\n > Apply</nile-button>\n </div>\n `}\n </div>\n `;\n }\n\n /**\n * @returns HTML content for absolute calendar\n */\n renderAbsoluteCalendar(){\n return html`\n <div class=\"calendar-wrapper\" part=\"calendar-wrapper\">\n <div class=\"calendar-container\" >\n ${this.renderMonth(\n this.currentYear,\n this.currentMonth,\n this.getDaysArray(this.currentYear, this.currentMonth)\n )}\n </div>\n </div>\n ${this.range ? html`\n <div class=\"calender-input ${this.showManualInputs ? '' : 'hidden'}\" >\n <div class=\"from\">\n <div class=\"from-date\">\n <nile-input\n label=\"From\"\n class=\"manual-input date-input\"\n placeholder=\"${this.dateFormat}\"\n value=\"${this.formatDate(this.startDate)}\"\n @nile-change=\"${this.handleStartDateInput}\"\n ></nile-input>\n </div>\n\n <div class=\"from-time\">\n <nile-input\n class=\"manual-input time-input\"\n placeholder=\"HH:MM:SS\"\n value=\"${this.formatTime(this.startDate)}\"\n @nile-change=\"${this.handleStartTimeInput}\"\n ></nile-input>\n </div>\n</div>\n\n\n <div class=\"from\">\n <div class=\"from-date\">\n <nile-input\n label=\"To\"\n class=\"manual-input date-input\"\n placeholder=\"${this.dateFormat}\"\n value=\"${this.formatDate(this.endDate)}\"\n @nile-change=\"${this.handleEndDateInput}\"\n ></nile-input>\n </div>\n <div class=\"from-time\">\n <nile-input\n class=\"manual-input time-input\"\n placeholder=\"HH:MM:SS\"\n value=\"${this.formatTime(this.endDate)}\"\n @nile-change=\"${this.handleEndTimeInput}\"\n ></nile-input>\n </div>\n </div>\n </div>\n `:''}\n `\n }\n\n /**\n * @returns HTML content for relative calendar\n */\n renderRelativeCalendar() {\n return html`\n <div class=\"units-wrapper\">\n <div class=\"unit-container\">\n \n ${this.hideDurationFields?.includes('minutes') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Minutes</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('minutes', [1, 5, 15, 30, 45])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('hours') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Hours</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('hours', [1, 2, 3, 6, 8, 12])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('days') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Days</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('days', [1, 2, 3, 4, 5, 6])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('weeks') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Weeks</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('weeks', [1, 2, 4, 6])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('months') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Months</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('months', [3, 6, 12, 15])}\n </div>\n </div>\n `}\n </div>\n </div>\n \n ${this.range ? html`\n <div>\n <div class=\"unit-input-container\">\n <nile-input \n class=\"manual-input duration-input\" \n label=\"Duration\"\n inputmode=\"numeric\"\n type=\"number\"\n value=\"${this.selectedValue}\" \n @nile-change=\"${this.handleDurationChange}\"\n placeholder=\"Enter Value\"\n ></nile-input>\n \n <nile-select \n class=\"manual-input time-input\" \n label=\"Unit of time\" \n value=\"${this.selectedUnit}\"\n @nile-change=\"${this.handleUnitChange}\"\n >\n <nile-option value=\"minutes\" class=\"${this.hideDurationFields?.includes('minutes') ? 'hidden' : ''}\">Minutes</nile-option>\n <nile-option value=\"hours\" class=\"${this.hideDurationFields?.includes('hours') ? 'hidden' : ''}\">Hours</nile-option>\n <nile-option value=\"days\" class=\"${this.hideDurationFields?.includes('days') ? 'hidden' : ''}\">Days</nile-option>\n <nile-option value=\"weeks\" class=\"${this.hideDurationFields?.includes('weeks') ? 'hidden' : ''}\">Weeks</nile-option>\n <nile-option value=\"months\" class=\"${this.hideDurationFields?.includes('months') ? 'hidden' : ''}\">Months</nile-option>\n </nile-select>\n </div>\n </div>\n ` : ''}\n `;\n }\n \n \n /**\n * \n * @param unit \n * @param values \n * @returns html for the option\n */\n renderTimeValues(unit: TimeUnits, values: any[]) {\n return values.map(\n value =>\n html`\n <div\n class=\"duration__value ${this.selectedUnit === unit && this.selectedValue === value ? 'duration__value--selected':''}\"\n @click=${(e: any) => this.handleTimeValueClick(unit, value, e)}\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.handleTimeValueClick(unit, value, e);}}\"\n >${value}\n </div>`\n );\n }\n\n /**\n * \n * @param year \n * @param month \n * @param daysArray \n * @returns HTML for rendered month\n */\n private renderMonth(\n year: number,\n month: number,\n daysArray: number[]\n ): TemplateResult {\n const firstDay = new Date(year, month, 1).getDay();\n const lastDay = new Date(year, month + 1, 0).getDay();\n const prevMonthDays = this.getDaysArray(\n month === 0 ? year - 1 : year,\n month === 0 ? 11 : month - 1\n );\n const nextMonthDays = this.getDaysArray(\n month === 11 ? year + 1 : year,\n month === 11 ? 0 : month + 1\n );\n const fillerDaysBefore = prevMonthDays.slice(\n prevMonthDays.length - firstDay\n );\n const fillerDaysAfter = nextMonthDays.slice(0, 6 - lastDay);\n const allDays = [...fillerDaysBefore, ...daysArray, ...fillerDaysAfter];\n\n const isSelectedDate = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return '';\n\n if (!this.range && this.value) {\n const isSelected =\n day === this.value.getDate() &&\n month === this.value.getMonth() &&\n year === this.value.getFullYear();\n if (isSelected) return 'selected-date';\n }\n\n const isStartDate =\n this.startDate &&\n day === this.startDate.getDate() &&\n month === this.startDate.getMonth() &&\n year === this.startDate.getFullYear();\n const isEndDate =\n this.endDate &&\n day === this.endDate.getDate() &&\n month === this.endDate.getMonth() &&\n year === this.endDate.getFullYear();\n\n return isStartDate ? 'range-start' : isEndDate ? 'range-end' : '';\n };\n\n const isInRange = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return false;\n if (this.startDate && this.endDate) {\n const date = new Date(year, month, day);\n return date >= this.startDate && date <= this.endDate;\n }\n return false;\n };\n\n const isCurrentDate = (day: number, month: number, year: number) => {\n const today = new Date();\n return (\n day === today.getDate() &&\n month + 1 === today.getMonth() + 1 &&\n year === today.getFullYear()\n );\n };\n const dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n return html`\n <div class=\"calendar\">\n <div class=\"calendar-header\">\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"var(--nile-icon-arrow-left, var(--ng-icon-chevron-left))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n color=\"black\"\n role=\"button\"\n tabindex=\"${this.isPrevDisabled() ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.prevMonth();}}\"\n @click=\"${this.prevMonth}\"\n >\n </nile-icon>\n <div class=\"calendar-header__center\">\n\n${this.showMonthDropdown || this.showYearDropdown ? html`\n ${this.showMonthDropdown ? html`\n <nile-dropdown class=\"month-dropdown\">\n <span\n slot=\"trigger\"\n class=\"calendar-header__trigger month-trigger\"\n role=\"button\"\n part=\"trigger\"\n >\n ${new Date(year, month).toLocaleString('default', { month: 'long' })}\n <nile-icon name=\"arrowdropdown\" color=\"black\" class=\"calendar-header__caret\"></nile-icon>\n </span>\n <nile-menu>\n <div class=\"month-scroll-wrapper\">\n ${this.monthNames.map((m, idx) => html`\n <nile-menu-item\n class=\"month-menu-item\"\n ?selected=\"${idx === month}\"\n @click=\"${() => this.onMonthSelected(idx)}\"\n >\n ${m}\n </nile-menu-item>\n `)}\n </div>\n </nile-menu>\n </nile-dropdown>\n ` : html`\n <span\n >${new Date(year, month).toLocaleString('default', { month: 'long' })}</span\n >\n `}\n ${this.showYearDropdown ? html`\n <nile-dropdown class=\"year-dropdown\">\n <span\n slot=\"trigger\"\n class=\"calendar-header__trigger\"\n role=\"button\"\n part=\"trigger\"\n >\n ${year}\n <nile-icon name=\"arrowdropdown\" color=\"black\" class=\"calendar-header__caret\"></nile-icon>\n </span>\n <nile-menu>\n <div class=\"year-scroll-wrapper\">\n ${this.yearOptions.map(\n y => html`\n <nile-menu-item\n class=\"year-menu-item\"\n ?selected=\"${y === year}\"\n @click=\"${() => this.onYearSelected(y)}\"\n >\n ${y}\n </nile-menu-item>\n `\n )}\n </div>\n </nile-menu>\n </nile-dropdown>\n ` : html`\n <span>${year}</span>\n `}\n` : html`\n <span\n >${new Date(year, month).toLocaleString('default', {\n month: 'long',\n })}\n ${year}</span\n >\n`}\n</div>\n\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n color=\"black\"\n role=\"button\"\n tabindex=\"${this.isNextDisabled() ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.nextMonth();}}\"\n @click=\"${this.nextMonth}\"\n >\n </nile-icon>\n </div>\n \n <div class=\"days_container\">\n ${dayNames.map(day => html`<div class=\"day_name\">${day}</div>`)}\n ${allDays.map((day, index) => {\n const isCurrentMonth =\n index >= fillerDaysBefore.length &&\n index < fillerDaysBefore.length + daysArray.length;\n const datePlacement:''|'selected-date'|'range-start'|'range-end' = isSelectedDate(day, month, year, isCurrentMonth)\n const classMapObj:any={\n 'day_date' : true,\n 'not-allowed' : !this.isAllowedDate(day, month, year),\n 'in-range' : isInRange(day, month, year, isCurrentMonth) ,\n 'filler' : !isCurrentMonth,\n }\n if(datePlacement) classMapObj[datePlacement]=true\n \n return html` \n <div\n part=\"calendar-day-${day}\"\n class=${classMap(classMapObj)}\n tabindex=\"${isCurrentMonth && this.isAllowedDate(day, month, year) ? '0' : '-1'}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.selectDate(day, month, year);}}\"\n @click=\"${() => { if (isCurrentMonth) this.selectDate(day, month, year)}}\"\n >\n <span style=\"position:relative;\">\n ${day}\n ${isCurrentDate(day, month, year) && isCurrentMonth?html`<div class=\"current__date__dot\" part=\"current-date-dot\"></div>`:nothing}\n </span>\n </div>`;\n })}\n </div>\n </div>\n `;\n }\n\n /**\n * Function to validate if date is not in allowedDates range\n * @param day \n * @param month \n * @param year \n * @returns \n */\n isAllowedDate(day: number, month: number, year: number) {\n if (!this.allowedDatesLocal) {\n return true;\n }\n const dateToCheck = new Date(Date.UTC(year, month, day));\n const startDate = this.getUTCDate(this.allowedDatesLocal.startDate)\n const endDate = this.getUTCDate(this.allowedDatesLocal.endDate)\n endDate.setUTCHours(23, 59, 59, 999);\n const isWithinRange = dateToCheck >= startDate && dateToCheck <= endDate;\n return isWithinRange;\n }\n\n clearDate(mode?: ClearMode) {\n const clearType =\n mode ??\n (this.range\n ? this.type === 'relative'\n ? ClearMode.Relative\n : ClearMode.Range\n : ClearMode.Single);\n \n if (clearType === ClearMode.Single) {\n this.value = null;\n } else {\n this.valueAttribute = '';\n this.startDate = null;\n this.endDate = null;\n this.selectedUnit = undefined!;\n this.selectedValue = undefined!;\n }\n \n this.requestUpdate();\n this.emit('nile-clear');\n } \n\n \n\n /**\n * @function handle_date-click/select\n * @param day \n * @param month \n * @param year \n */\n selectDate(day: number, month: number, year: number): void {\n const selectedDate = new Date(year, month, day);\n\n if (this.range) {\n if (this.startDate && this.endDate) {\n this.startDate = null;\n this.endDate = null;\n }\n\n if (this.isSelectingStart) {\n this.startDate = selectedDate;\n if (this.endDate && selectedDate > this.endDate) {\n this.endDate = null;\n }\n this.isSelectingStart = false;\n } else {\n this.isSelectingStart = true;\n\n if (this.startDate && selectedDate < this.startDate) {\n this.startDate = selectedDate;\n this.endDate = null;\n this.isSelectingStart = false;\n } else {\n const endDate = selectedDate;\n endDate.setHours(23, 59, 59, 999);\n this.endDate = endDate;\n }\n }\n } else {\n if(String(this.value)==String(selectedDate) && this.doubleClickUnselect){\n this.clearDate()\n return\n }\n this.value = selectedDate;\n this.emitChangedData({ value: this.value });\n }\n }\n\n /**\n * Function to be called on initialization to set all other properties\n */\n initializeValue() {\n if (this.range) {\n try {\n const rangeValue = JSON.parse(this.valueAttribute || '');\n this.startDate = new Date(rangeValue.startDate);\n this.endDate = new Date(rangeValue.endDate);\n\n // Convert to local time\n this.startDate = new Date(this.startDate.getTime());\n this.endDate = new Date(this.endDate.getTime());\n\n this.value = null;\n } catch (e) {\n // console.error('Invalid range value');\n }\n } else {\n if (this.valueAttribute) {\n let date: Date = new Date(this.valueAttribute);\n\n date = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n\n if (!isNaN(date.getTime())) {\n this.value = date;\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n }\n }\n }\n\n /**\n * Function to handle relative date selection\n */\n handleDurationChange(event: CustomEvent) {\n event.stopPropagation()\n event.detail.value = event.detail.value.replace(/e/gi, \"\");\n const duration=Number(event.detail.value);\n if(!duration) {\n return\n };\n this.selectedValue = duration\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleUnitChange(event: CustomEvent) {\n event.stopPropagation()\n this.selectedUnit = event.detail.value;\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleTimeValueClick(unit: TimeUnits, value: number, event: any) {\n this.createRelativePeriod(unit, value)\n this.selectedUnit = unit;\n this.selectedValue = value;\n }\n\n createRelativePeriod(unit: String, value: number) {\n const endTime = new Date();\n const startTime = new Date();\n\n switch (unit) {\n case 'minutes':\n startTime.setMinutes(startTime.getMinutes() - value);\n break;\n case 'hours':\n startTime.setHours(startTime.getHours() - value);\n break;\n case 'days':\n startTime.setDate(startTime.getDate() - value);\n break;\n case 'weeks':\n startTime.setDate(startTime.getDate() - 7 * value); // Subtract weeks as days\n break;\n case 'months':\n startTime.setMonth(startTime.getMonth() - value);\n break;\n }\n\n this.startDate = new Date(startTime.getTime());\n this.endDate = new Date(endTime.getTime());\n\n return {\n startDate: this.startDate,\n endDate: this.endDate,\n };\n }\n \n /**\n * Function to handle start time selecion\n */\n private handleStartTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.startDate) {\n this.startDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.startDate);\n if (time) {\n this.startDate = time;\n } else {\n this.startDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n \n /**\n * Function to handle end time selecion\n */\n private handleEndTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.endDate) {\n this.endDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.endDate);\n if (time) {\n this.endDate = time;\n } else {\n this.endDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n\n // Parse time string to a Date object\n private parseTime(input: string, date: Date): Date | null {\n if (!this.isValidTimeInput(input)) {\n return null;\n }\n const [hour, minute, second] = input.split(':').map(Number);\n const newDate = new Date(date.getTime());\n newDate.setHours(hour, minute, second);\n return newDate;\n }\n\n // Validate time in HH:MM:SS format\n private isValidTimeInput(input: string): boolean {\n const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;\n return regex.test(input);\n }\n\n private formatTime(date: Date | null): string {\n if (!date) return '';\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n }\n\n private nextMonth(): void {\n if (this.currentMonth === 11) {\n const newYear = this.currentYear + 1;\n if(this.endYear !== undefined && newYear > this.endYear) return;\n this.currentMonth = 0;\n this.currentYear = newYear;\n } else {\n this.currentMonth++;\n }\n }\n\n private prevMonth(): void {\n if (this.currentMonth === 0) {\n const newYear = this.currentYear - 1;\n if(this.startYear !== undefined && newYear < this.startYear) return;\n this.currentMonth = 11;\n this.currentYear = newYear;\n } else {\n this.currentMonth--;\n }\n }\n\n private confimRange() {\n if (!(this.startDate && this.endDate)) return;\n this.emitChangedData( {\n startDate: this.startDate,\n endDate: this.endDate,\n });\n }\n\n onTypeChange(event: CustomEvent) {\n this.type = event.detail.value;\n this.emit('nile-type-change', { value: this.type })\n }\n getUTCDate(dateStr:any){\n return new Date(\n Date.UTC(\n dateStr.slice(0, 4),\n dateStr.slice(5, 7) - 1,\n dateStr.slice(8, 10)\n )\n )\n }\n\n emitChangedData(data:{startDate:Date,endDate:Date}|{value:any}|null){\n this.emit('nile-changed',data); // deprecated. Use nile-change instead\n this.emit('nile-change',data)\n }\n\n private getDaysArray(year: number, month: number): number[] {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return Array.from({ length: daysInMonth }, (_, i) => i + 1);\n }\n}\n\nexport default NileCalendar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-calendar': NileCalendar;\n }\n}"]}
1
+ {"version":3,"file":"nile-calendar.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n nothing\n} from 'lit';\nimport { customElement, state, property } from 'lit/decorators.js';\nimport { styles } from './nile-calendar.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport { ClearMode } from './nile-calendar.enum';\nimport type { PropertyValueMap } from 'lit';\ntype NileCalendarDateRange={ startDate: string, endDate: string }\ntype TimeUnits= 'minutes'|'hours'|'days'|'weeks'|'months';\n/**\n * Nile icon component.\n *\n * @tag nile-calendar\n *\n */\n@customElement('nile-calendar')\nexport class NileCalendar extends NileElement {\n /**\n * The styles for NileCalendar\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n\n\n @property({ type: String, attribute: 'value' }) valueAttribute: | string | null = null;\n\n @property({ type: String, attribute:true, reflect:true }) allowedDates: string = JSON.stringify({});\n\n @property({ type: Boolean, reflect: true }) range = false;\n\n @property({ type: Boolean, attribute: true, reflect:true }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: String }) selectedUnit: TimeUnits;\n\n @property({ type: Number }) selectedValue: number;\n\n @property({ type: Array, attribute: 'hide-duration-fields' }) hideDurationFields: String[] = [];\n \n @property({ type: Boolean}) showManualInputs :boolean=false;\n\n @property({ type: Number , attribute: true, reflect: true }) startYear: number;\n\n @property({ type: Number , attribute: true, reflect: true }) endYear: number;\n\n @property({ type: Boolean, attribute:true, reflect: true}) showMonthDropdown = false;\n \n @property({ type: Boolean, attribute:true, reflect: true}) showYearDropdown = false;\n\n @property({ type: String, reflect: true, attribute: true}) dateFormat: string = 'MM/DD/YYYY';\n\n\n @state() startDate: Date | null = null;\n\n @state() endDate: Date | null = null;\n\n @state() isSelectingStart = true;\n\n @state() hideInput: Boolean = false;\n\n @state() value: Date | null;\n\n @state() currentMonth: number = new Date().getMonth();\n\n @state() currentYear: number = new Date().getFullYear();\n\n @state() allowedDatesLocal: NileCalendarDateRange | any = null;\n\n @property({ type: Boolean, attribute: true, reflect: true }) disabled = false;\n connectedCallback() {\n super.connectedCallback();\n this.initializeValue();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('valueAttribute')) {\n if(!this.valueAttribute){\n this.value=null;\n this.startDate=null;\n this.endDate=null;\n this.isSelectingStart=true;\n }\n const date = new Date(this.valueAttribute || '');\n if (!isNaN(date.getTime())) {\n const offset = date.getTimezoneOffset();\n this.value = new Date(date.getTime() - offset * 60 * 1000);\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n this.initializeValue();\n }\n }\n\n private get monthNames() {\n return Array.from({ length: 12 }, (_, i) =>\n new Date(0, i).toLocaleString('default', { month: 'long' })\n );\n }\n\n private get yearOptions(): number[] {\n const fallbackStart = 2000;\n const fallbackEnd = 2050;\n \n const start = this.startYear ?? fallbackStart;\n const end = this.endYear ?? fallbackEnd;\n \n if (start > end) return [];\n \n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n }\n \n private onMonthSelected(monthIndex: number) {\n this.currentMonth = monthIndex;\n this.emit('nile-month-change', { month: monthIndex });\n }\n\n private onYearSelected(year: number) {\n this.currentYear = year;\n this.emit('nile-year-change', { year });\n }\n\n @watch('allowedDates')\n checkValidAllowedDate() {\n let newDateRange: NileCalendarDateRange | null;\n try {\n newDateRange=JSON.parse(this.allowedDates);\n } catch (error) {\n newDateRange=null;\n }\n if (!newDateRange || Object.keys(newDateRange).length == 0) {\n this.allowedDatesLocal=null;\n return;\n }\n this.hideInput=true;\n const startDate = this.getUTCDate(newDateRange.startDate)\n const endDate = this.getUTCDate(newDateRange.endDate)\n\n if (startDate > endDate) {\n console.error('StartDate must be greater than endDate');\n }\n else\n {\n this.allowedDatesLocal=newDateRange;\n }\n }\n\n private isPrevDisabled(): boolean {\n return (\n this.currentMonth === 0 &&\n this.startYear !== undefined &&\n this.currentYear <= this.startYear\n );\n }\n \n private isNextDisabled(): boolean {\n return (\n this.currentMonth === 11 &&\n this.endYear !== undefined &&\n this.currentYear >= this.endYear\n );\n }\n\n private formatDate(date: Date | null): string {\n if (!date) return '';\n \n const yyyy = date.getFullYear();\n const mm = String(date.getMonth() + 1).padStart(2, '0');\n const dd = String(date.getDate()).padStart(2, '0');\n \n let formatted = this.dateFormat;\n formatted = formatted.replace(/YYYY/g, String(yyyy));\n formatted = formatted.replace(/MM/g, mm);\n formatted = formatted.replace(/DD/g, dd);\n formatted = formatted.replace(/YY/g, String(yyyy).slice(-2));\n \n return formatted;\n }\n \n\n private parseDate(input: string, existingDate?: Date | null): Date | null {\n if (!input || !this.dateFormat) return null;\n const formatPattern = this.dateFormat\n .replace(/YYYY/, '(?<year>\\\\d{4})')\n .replace(/YY/, '(?<year>\\\\d{2})')\n .replace(/MM/, '(?<month>\\\\d{1,2})')\n .replace(/DD/, '(?<day>\\\\d{1,2})');\n \n const regex = new RegExp(`^${formatPattern}$`);\n const match = input.match(regex);\n if (!match || !match.groups) return null;\n \n const year = match.groups.year.length === 2 ? Number(`20${match.groups.year}`) : Number(match.groups.year);\n const month = Number(match.groups.month) - 1; \n const day = Number(match.groups.day);\n \n const date = new Date(year, month, day);\n if (existingDate) {\n date.setHours(\n existingDate.getHours(),\n existingDate.getMinutes(),\n existingDate.getSeconds(),\n );\n } else {\n date.setHours(0, 0, 0);\n }\n return date;\n }\n\nprivate handleStartDateInput(event: CustomEvent): void {\n event.stopPropagation();\n const newDate = this.parseDate(event.detail.value, this.startDate);\n if (newDate) {\n newDate.setHours(0, 0, 0);\n this.startDate = newDate;\n this.currentMonth = newDate.getMonth();\n this.currentYear = newDate.getFullYear();\n this.requestUpdate();\n }\n }\nprivate handleEndDateInput(event: CustomEvent): void {\n event.stopPropagation();\n const newDate = this.parseDate(event.detail.value, this.endDate);\n if (newDate) {\n newDate.setHours(23, 59, 59);\n this.endDate = newDate;\n this.currentMonth = newDate.getMonth();\n this.currentYear = newDate.getFullYear();\n this.requestUpdate();\n }\n }\n\n \n\n /**\n * Render method\n */\n render(): TemplateResult {\n return html`\n <div\n class=${classMap({\n base:true,\n base__range:this.range,\n })}\n part=\"calendar-container\"\n >\n <div class=${classMap({\n \"calendar-config\":true,\n \"hidden\": !this.range || (this.range && this.hideTypes)\n })}>\n <div class=\"calendar-switcher\" part=\"calendar-switcher\">\n <nile-tab-group centered @nile-tab-show=\"${this.onTypeChange}\" value=\"${this.type}\">\n <nile-tab slot=\"nav\" panel=\"absolute\" tabindex=\"0\">Absolute</nile-tab>\n <nile-tab slot=\"nav\" panel=\"relative\" tabindex=\"0\">Relative</nile-tab>\n </nile-tab-group>\n </div>\n </div>\n \n ${this.type == 'relative' ? this.renderRelativeCalendar():''}\n ${this.type == 'absolute' ? this.renderAbsoluteCalendar():''}\n\n ${!this.range?'':html`\n <div class=\"button-container\" part=\"button-container\">\n ${this.allowClear?\n html`\n <nile-button \n class=\"clear-button\"\n variant=\"secondary\"\n role=\"button\"\n ?disabled=\"${ !this.startDate || !this.endDate }\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.clearDate();}}\"\n @click=\"${this.clearDate}\"\n\n > Reset</nile-button>`:nothing\n }\n <nile-button \n class=\"apply-button\" \n ?disabled=\"${ !this.startDate || !this.endDate }\" \n @click=\"${this.confimRange}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.confimRange();}}\"\n > Apply</nile-button>\n </div>\n `}\n </div>\n `;\n }\n\n /**\n * @returns HTML content for absolute calendar\n */\n renderAbsoluteCalendar(){\n return html`\n <div class=\"calendar-wrapper\" part=\"calendar-wrapper\">\n <div class=\"calendar-container\" >\n ${this.renderMonth(\n this.currentYear,\n this.currentMonth,\n this.getDaysArray(this.currentYear, this.currentMonth)\n )}\n </div>\n </div>\n ${this.range ? html`\n <div class=\"calender-input ${this.showManualInputs ? '' : 'hidden'}\" >\n <div class=\"from\">\n <div class=\"from-date\">\n <nile-input\n ?disabled=\"${this.disabled}\"\n label=\"From\"\n class=\"manual-input date-input\"\n placeholder=\"${this.dateFormat}\"\n value=\"${this.formatDate(this.startDate)}\"\n @nile-change=\"${this.handleStartDateInput}\"\n ></nile-input>\n </div>\n\n <div class=\"from-time\">\n <nile-input\n ?disabled=\"${this.disabled}\"\n class=\"manual-input time-input\"\n placeholder=\"HH:MM:SS\"\n value=\"${this.formatTime(this.startDate)}\"\n @nile-change=\"${this.handleStartTimeInput}\"\n ></nile-input>\n </div>\n</div>\n\n\n <div class=\"from\">\n <div class=\"from-date\">\n <nile-input\n ?disabled=\"${this.disabled}\"\n label=\"To\"\n class=\"manual-input date-input\"\n placeholder=\"${this.dateFormat}\"\n value=\"${this.formatDate(this.endDate)}\"\n @nile-change=\"${this.handleEndDateInput}\"\n ></nile-input>\n </div>\n <div class=\"from-time\">\n <nile-input\n ?disabled=\"${this.disabled}\"\n class=\"manual-input time-input\"\n placeholder=\"HH:MM:SS\"\n value=\"${this.formatTime(this.endDate)}\"\n @nile-change=\"${this.handleEndTimeInput}\"\n ></nile-input>\n </div>\n </div>\n </div>\n `:''}\n `\n }\n\n /**\n * @returns HTML content for relative calendar\n */\n renderRelativeCalendar() {\n return html`\n <div class=\"units-wrapper\">\n <div class=\"unit-container\">\n \n ${this.hideDurationFields?.includes('minutes') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Minutes</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('minutes', [1, 5, 15, 30, 45])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('hours') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Hours</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('hours', [1, 2, 3, 6, 8, 12])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('days') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Days</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('days', [1, 2, 3, 4, 5, 6])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('weeks') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Weeks</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('weeks', [1, 2, 4, 6])}\n </div>\n </div>\n `}\n \n ${this.hideDurationFields?.includes('months') ? '' : html`\n <div class=\"unit-group\">\n <div class=\"duration-name\">Months</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('months', [3, 6, 12, 15])}\n </div>\n </div>\n `}\n </div>\n </div>\n \n ${this.range ? html`\n <div>\n <div class=\"unit-input-container\">\n <nile-input \n class=\"manual-input duration-input\" \n ?disabled=\"${this.disabled}\"\n label=\"Duration\"\n inputmode=\"numeric\"\n type=\"number\"\n value=\"${this.selectedValue}\" \n @nile-change=\"${this.handleDurationChange}\"\n placeholder=\"Enter Value\"\n ></nile-input>\n \n <nile-select \n class=\"manual-input time-input\" \n ?disabled=\"${this.disabled}\"\n label=\"Unit of time\" \n value=\"${this.selectedUnit}\"\n @nile-change=\"${this.handleUnitChange}\"\n >\n <nile-option value=\"minutes\" class=\"${this.hideDurationFields?.includes('minutes') ? 'hidden' : ''}\">Minutes</nile-option>\n <nile-option value=\"hours\" class=\"${this.hideDurationFields?.includes('hours') ? 'hidden' : ''}\">Hours</nile-option>\n <nile-option value=\"days\" class=\"${this.hideDurationFields?.includes('days') ? 'hidden' : ''}\">Days</nile-option>\n <nile-option value=\"weeks\" class=\"${this.hideDurationFields?.includes('weeks') ? 'hidden' : ''}\">Weeks</nile-option>\n <nile-option value=\"months\" class=\"${this.hideDurationFields?.includes('months') ? 'hidden' : ''}\">Months</nile-option>\n </nile-select>\n </div>\n </div>\n ` : ''}\n `;\n }\n \n \n /**\n * \n * @param unit \n * @param values \n * @returns html for the option\n */\n renderTimeValues(unit: TimeUnits, values: any[]) {\n return values.map(\n value =>\n html`\n <div\n class=\"duration__value ${this.selectedUnit === unit && this.selectedValue === value ? 'duration__value--selected':''}\"\n @click=${(e: any) => this.handleTimeValueClick(unit, value, e)}\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.handleTimeValueClick(unit, value, e);}}\"\n >${value}\n </div>`\n );\n }\n\n /**\n * \n * @param year \n * @param month \n * @param daysArray \n * @returns HTML for rendered month\n */\n private renderMonth(\n year: number,\n month: number,\n daysArray: number[]\n ): TemplateResult {\n const firstDay = new Date(year, month, 1).getDay();\n const lastDay = new Date(year, month + 1, 0).getDay();\n const prevMonthDays = this.getDaysArray(\n month === 0 ? year - 1 : year,\n month === 0 ? 11 : month - 1\n );\n const nextMonthDays = this.getDaysArray(\n month === 11 ? year + 1 : year,\n month === 11 ? 0 : month + 1\n );\n const fillerDaysBefore = prevMonthDays.slice(\n prevMonthDays.length - firstDay\n );\n const fillerDaysAfter = nextMonthDays.slice(0, 6 - lastDay);\n const allDays = [...fillerDaysBefore, ...daysArray, ...fillerDaysAfter];\n\n const isSelectedDate = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return '';\n\n if (!this.range && this.value) {\n const isSelected =\n day === this.value.getDate() &&\n month === this.value.getMonth() &&\n year === this.value.getFullYear();\n if (isSelected) return 'selected-date';\n }\n\n const isStartDate =\n this.startDate &&\n day === this.startDate.getDate() &&\n month === this.startDate.getMonth() &&\n year === this.startDate.getFullYear();\n const isEndDate =\n this.endDate &&\n day === this.endDate.getDate() &&\n month === this.endDate.getMonth() &&\n year === this.endDate.getFullYear();\n\n return isStartDate ? 'range-start' : isEndDate ? 'range-end' : '';\n };\n\n const isInRange = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return false;\n if (this.startDate && this.endDate) {\n const date = new Date(year, month, day);\n return date >= this.startDate && date <= this.endDate;\n }\n return false;\n };\n\n const isCurrentDate = (day: number, month: number, year: number) => {\n const today = new Date();\n return (\n day === today.getDate() &&\n month + 1 === today.getMonth() + 1 &&\n year === today.getFullYear()\n );\n };\n const dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n return html`\n <div class=\"calendar\">\n <div class=\"calendar-header\">\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"var(--nile-icon-arrow-left, var(--ng-icon-chevron-left))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'}\n role=\"button\"\n tabindex=\"${this.isPrevDisabled() ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.prevMonth();}}\"\n @click=\"${this.prevMonth}\"\n >\n </nile-icon>\n <div class=\"calendar-header__center\">\n\n${this.showMonthDropdown || this.showYearDropdown ? html`\n ${this.showMonthDropdown ? html`\n <nile-dropdown ?disabled=\"${this.disabled}\" class=\"month-dropdown\">\n <span\n slot=\"trigger\"\n class=\"calendar-header__trigger month-trigger\"\n role=\"button\"\n part=\"trigger\"\n >\n ${new Date(year, month).toLocaleString('default', { month: 'long' })}\n <nile-icon name=\"arrowdropdown\" color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'} class=\"calendar-header__caret\"></nile-icon>\n </span>\n <nile-menu>\n <div class=\"month-scroll-wrapper\">\n ${this.monthNames.map((m, idx) => html`\n <nile-menu-item\n class=\"month-menu-item\"\n ?selected=\"${idx === month}\"\n @click=\"${() => this.onMonthSelected(idx)}\"\n >\n ${m}\n </nile-menu-item>\n `)}\n </div>\n </nile-menu>\n </nile-dropdown>\n ` : html`\n <span\n >${new Date(year, month).toLocaleString('default', { month: 'long' })}</span\n >\n `}\n ${this.showYearDropdown ? html`\n <nile-dropdown ?disabled=\"${this.disabled}\" class=\"year-dropdown\">\n <span\n slot=\"trigger\"\n class=\"calendar-header__trigger\"\n role=\"button\"\n part=\"trigger\"\n >\n ${year}\n <nile-icon name=\"arrowdropdown\" color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'} class=\"calendar-header__caret\"></nile-icon>\n </span>\n <nile-menu>\n <div class=\"year-scroll-wrapper\">\n ${this.yearOptions.map(\n y => html`\n <nile-menu-item\n class=\"year-menu-item\"\n ?selected=\"${y === year}\"\n @click=\"${() => this.onYearSelected(y)}\"\n >\n ${y}\n </nile-menu-item>\n `\n )}\n </div>\n </nile-menu>\n </nile-dropdown>\n ` : html`\n <span>${year}</span>\n `}\n` : html`\n <span\n >${new Date(year, month).toLocaleString('default', {\n month: 'long',\n })}\n ${year}</span\n >\n`}\n</div>\n\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n color=${this.disabled ? 'var(--nile-colors-dark-500, var(--ng-colors-fg-disabled))' : 'black'}\n role=\"button\"\n tabindex=\"${this.isNextDisabled() ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.nextMonth();}}\"\n @click=\"${this.nextMonth}\"\n >\n </nile-icon>\n </div>\n \n <div class=\"days_container\">\n ${dayNames.map(day => html`<div class=\"day_name\">${day}</div>`)}\n ${allDays.map((day, index) => {\n const isCurrentMonth =\n index >= fillerDaysBefore.length &&\n index < fillerDaysBefore.length + daysArray.length;\n const datePlacement:''|'selected-date'|'range-start'|'range-end' = isSelectedDate(day, month, year, isCurrentMonth)\n const classMapObj:any={\n 'day_date' : true,\n 'not-allowed' : !this.isAllowedDate(day, month, year),\n 'in-range' : isInRange(day, month, year, isCurrentMonth) ,\n 'filler' : !isCurrentMonth,\n }\n if(datePlacement) classMapObj[datePlacement]=true\n \n return html` \n <div\n part=\"calendar-day-${day}\"\n class=${classMap(classMapObj)}\n tabindex=\"${isCurrentMonth && this.isAllowedDate(day, month, year) ? '0' : '-1'}\"\n @keydown=\"${(e: KeyboardEvent) => {if (e.key === 'Enter' || e.key === ' ') this.selectDate(day, month, year);}}\"\n @click=\"${() => { if (isCurrentMonth) this.selectDate(day, month, year)}}\"\n >\n <span style=\"position:relative;\">\n ${day}\n ${isCurrentDate(day, month, year) && isCurrentMonth?html`<div class=\"current__date__dot\" part=\"current-date-dot\"></div>`:nothing}\n </span>\n </div>`;\n })}\n </div>\n </div>\n `;\n }\n\n /**\n * Function to validate if date is not in allowedDates range\n * @param day \n * @param month \n * @param year \n * @returns \n */\n isAllowedDate(day: number, month: number, year: number) {\n if (!this.allowedDatesLocal) {\n return true;\n }\n const dateToCheck = new Date(Date.UTC(year, month, day));\n const startDate = this.getUTCDate(this.allowedDatesLocal.startDate)\n const endDate = this.getUTCDate(this.allowedDatesLocal.endDate)\n endDate.setUTCHours(23, 59, 59, 999);\n const isWithinRange = dateToCheck >= startDate && dateToCheck <= endDate;\n return isWithinRange;\n }\n\n clearDate(mode?: ClearMode) {\n const clearType =\n mode ??\n (this.range\n ? this.type === 'relative'\n ? ClearMode.Relative\n : ClearMode.Range\n : ClearMode.Single);\n \n if (clearType === ClearMode.Single) {\n this.value = null;\n } else {\n this.valueAttribute = '';\n this.startDate = null;\n this.endDate = null;\n this.selectedUnit = undefined!;\n this.selectedValue = undefined!;\n }\n \n this.requestUpdate();\n this.emit('nile-clear');\n } \n\n \n\n /**\n * @function handle_date-click/select\n * @param day \n * @param month \n * @param year \n */\n selectDate(day: number, month: number, year: number): void {\n if (this.disabled) return;\n const selectedDate = new Date(year, month, day);\n\n if (this.range) {\n if (this.startDate && this.endDate) {\n this.startDate = null;\n this.endDate = null;\n }\n\n if (this.isSelectingStart) {\n this.startDate = selectedDate;\n if (this.endDate && selectedDate > this.endDate) {\n this.endDate = null;\n }\n this.isSelectingStart = false;\n } else {\n this.isSelectingStart = true;\n\n if (this.startDate && selectedDate < this.startDate) {\n this.startDate = selectedDate;\n this.endDate = null;\n this.isSelectingStart = false;\n } else {\n const endDate = selectedDate;\n endDate.setHours(23, 59, 59, 999);\n this.endDate = endDate;\n }\n }\n } else {\n if(String(this.value)==String(selectedDate) && this.doubleClickUnselect){\n this.clearDate()\n return\n }\n this.value = selectedDate;\n this.emitChangedData({ value: this.value });\n }\n }\n\n /**\n * Function to be called on initialization to set all other properties\n */\n initializeValue() {\n if (this.range) {\n try {\n const rangeValue = JSON.parse(this.valueAttribute || '');\n this.startDate = new Date(rangeValue.startDate);\n this.endDate = new Date(rangeValue.endDate);\n\n // Convert to local time\n this.startDate = new Date(this.startDate.getTime());\n this.endDate = new Date(this.endDate.getTime());\n\n this.value = null;\n } catch (e) {\n // console.error('Invalid range value');\n }\n } else {\n if (this.valueAttribute) {\n let date: Date = new Date(this.valueAttribute);\n\n date = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n\n if (!isNaN(date.getTime())) {\n this.value = date;\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n }\n }\n }\n\n /**\n * Function to handle relative date selection\n */\n handleDurationChange(event: CustomEvent) {\n event.stopPropagation()\n event.detail.value = event.detail.value.replace(/e/gi, \"\");\n const duration=Number(event.detail.value);\n if(!duration) {\n return\n };\n this.selectedValue = duration\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleUnitChange(event: CustomEvent) {\n event.stopPropagation()\n this.selectedUnit = event.detail.value;\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleTimeValueClick(unit: TimeUnits, value: number, event: any) {\n this.createRelativePeriod(unit, value)\n this.selectedUnit = unit;\n this.selectedValue = value;\n }\n\n createRelativePeriod(unit: String, value: number) {\n const endTime = new Date();\n const startTime = new Date();\n\n switch (unit) {\n case 'minutes':\n startTime.setMinutes(startTime.getMinutes() - value);\n break;\n case 'hours':\n startTime.setHours(startTime.getHours() - value);\n break;\n case 'days':\n startTime.setDate(startTime.getDate() - value);\n break;\n case 'weeks':\n startTime.setDate(startTime.getDate() - 7 * value); // Subtract weeks as days\n break;\n case 'months':\n startTime.setMonth(startTime.getMonth() - value);\n break;\n }\n\n this.startDate = new Date(startTime.getTime());\n this.endDate = new Date(endTime.getTime());\n\n return {\n startDate: this.startDate,\n endDate: this.endDate,\n };\n }\n \n /**\n * Function to handle start time selecion\n */\n private handleStartTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.startDate) {\n this.startDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.startDate);\n if (time) {\n this.startDate = time;\n } else {\n this.startDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n \n /**\n * Function to handle end time selecion\n */\n private handleEndTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.endDate) {\n this.endDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.endDate);\n if (time) {\n this.endDate = time;\n } else {\n this.endDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n\n // Parse time string to a Date object\n private parseTime(input: string, date: Date): Date | null {\n if (!this.isValidTimeInput(input)) {\n return null;\n }\n const [hour, minute, second] = input.split(':').map(Number);\n const newDate = new Date(date.getTime());\n newDate.setHours(hour, minute, second);\n return newDate;\n }\n\n // Validate time in HH:MM:SS format\n private isValidTimeInput(input: string): boolean {\n const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;\n return regex.test(input);\n }\n\n private formatTime(date: Date | null): string {\n if (!date) return '';\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n }\n\n private nextMonth(): void {\n if (this.disabled) return;\n if (this.currentMonth === 11) {\n const newYear = this.currentYear + 1;\n if(this.endYear !== undefined && newYear > this.endYear) return;\n this.currentMonth = 0;\n this.currentYear = newYear;\n } else {\n this.currentMonth++;\n }\n }\n\n private prevMonth(): void {\n if (this.disabled) return;\n if (this.currentMonth === 0) {\n const newYear = this.currentYear - 1;\n if(this.startYear !== undefined && newYear < this.startYear) return;\n this.currentMonth = 11;\n this.currentYear = newYear;\n } else {\n this.currentMonth--;\n }\n }\n\n private confimRange() {\n if (!(this.startDate && this.endDate)) return;\n this.emitChangedData( {\n startDate: this.startDate,\n endDate: this.endDate,\n });\n }\n\n onTypeChange(event: CustomEvent) {\n if (this.disabled) return;\n this.type = event.detail.value;\n this.emit('nile-type-change', { value: this.type })\n }\n getUTCDate(dateStr:any){\n return new Date(\n Date.UTC(\n dateStr.slice(0, 4),\n dateStr.slice(5, 7) - 1,\n dateStr.slice(8, 10)\n )\n )\n }\n\n emitChangedData(data:{startDate:Date,endDate:Date}|{value:any}|null){\n this.emit('nile-changed',data); // deprecated. Use nile-change instead\n this.emit('nile-change',data)\n }\n\n private getDaysArray(year: number, month: number): number[] {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return Array.from({ length: daysInMonth }, (_, i) => i + 1);\n }\n}\n\nexport default NileCalendar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-calendar': NileCalendar;\n }\n}"]}
@@ -86,7 +86,6 @@ export const styles = css `
86
86
 
87
87
  /* Disabled */
88
88
  .checkbox--disabled {
89
- opacity: var(--nile-opacity-30, var(--ng-opacity-100));
90
89
  cursor: not-allowed;
91
90
  }
92
91
 
@@ -150,11 +149,11 @@ export const styles = css `
150
149
  .checkbox--disabled.checkbox--checked .checkbox__control,
151
150
  .checkbox--disabled.checkbox--indeterminate .checkbox__control {
152
151
  background-color: var(
153
- --nile-checkbox-color-background-checked-standard,
152
+ --nile-colors-dark-100,
154
153
  var(--ng-colors-bg-disabled-subtle)
155
154
  );
156
155
  border-color: var(
157
- --nile-checkbox-color-border-checked-standard,
156
+ --nile-colors-dark-100,
158
157
  var(--ng-colors-border-disabled)
159
158
  );
160
159
  }
@@ -163,7 +162,7 @@ export const styles = css `
163
162
  .checkbox--disabled:not(.checkbox--checked):not(.checkbox--indeterminate) .checkbox__control {
164
163
  background-color: var(--nile-colors-transparent, var(--ng-colors-bg-disabled-subtle));
165
164
  border-color: var(
166
- --nile-checkbox-color-border-standard,
165
+ --nile-colors-dark-100,
167
166
  var(--ng-colors-border-disabled)
168
167
  );
169
168
  }
@@ -200,7 +199,7 @@ export const styles = css `
200
199
  .checkbox--disabled .checkbox__checked-icon,
201
200
  .checkbox--disabled .checkbox__indeterminate-icon {
202
201
  --nile-svg-stroke: var(
203
- --nile-checkbox-color-border-standard,
202
+ --nile-colors-white-base,
204
203
  var(--ng-colors-fg-disabled-subtle)
205
204
  );
206
205
  --nile-svg-stroke-width: var(--nile-icon-stroke-width-1-3, var(--ng-icon-stroke-width-2-5));