@aquera/nile-elements 2.0.0 → 2.0.2

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 (238) hide show
  1. package/README.md +11 -0
  2. package/demo/nxtgen-dark.css +2 -2
  3. package/dist/{index-ccff99d6.esm.js → index-0fe57384.esm.js} +1 -1
  4. package/dist/index-f6944844.cjs.js +2 -0
  5. package/dist/{index-e43755f5.cjs.js.map → index-f6944844.cjs.js.map} +1 -1
  6. package/dist/index.cjs.js +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/index.js +1127 -741
  9. package/dist/nile-code-editor/extensionSetup.cjs.js +1 -1
  10. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  11. package/dist/nile-code-editor/index.cjs.js +1 -1
  12. package/dist/nile-code-editor/index.esm.js +1 -1
  13. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  14. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  15. package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
  16. package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
  17. package/dist/nile-code-editor/nile-code-editor.css.esm.js +2 -2
  18. package/dist/nile-code-editor/nile-code-editor.esm.js +4 -4
  19. package/dist/nile-code-editor/theme.cjs.js +1 -1
  20. package/dist/nile-code-editor/theme.cjs.js.map +1 -1
  21. package/dist/nile-code-editor/theme.esm.js +1 -1
  22. package/dist/nile-combobox/nile-combobox.css.cjs.js +1 -1
  23. package/dist/nile-combobox/nile-combobox.css.cjs.js.map +1 -1
  24. package/dist/nile-combobox/nile-combobox.css.esm.js +1 -1
  25. package/dist/nile-detail/nile-detail.css.cjs.js +1 -1
  26. package/dist/nile-detail/nile-detail.css.cjs.js.map +1 -1
  27. package/dist/nile-detail/nile-detail.css.esm.js +1 -1
  28. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
  29. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
  30. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +3 -3
  31. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js +1 -1
  32. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
  33. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +13 -7
  34. package/dist/nile-timestamp-builder/index.cjs.js +2 -0
  35. package/dist/nile-timestamp-builder/index.cjs.js.map +1 -0
  36. package/dist/nile-timestamp-builder/index.esm.js +1 -0
  37. package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.cjs.js +2 -0
  38. package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.cjs.js.map +1 -0
  39. package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.esm.js +1 -0
  40. package/dist/nile-timestamp-builder/nile-timestamp-builder.cjs.js +2 -0
  41. package/dist/nile-timestamp-builder/nile-timestamp-builder.cjs.js.map +1 -0
  42. package/dist/nile-timestamp-builder/nile-timestamp-builder.css.cjs.js +2 -0
  43. package/dist/nile-timestamp-builder/nile-timestamp-builder.css.cjs.js.map +1 -0
  44. package/dist/nile-timestamp-builder/nile-timestamp-builder.css.esm.js +195 -0
  45. package/dist/nile-timestamp-builder/nile-timestamp-builder.esm.js +154 -0
  46. package/dist/nile-timestamp-builder/timezones.cjs.js +2 -0
  47. package/dist/nile-timestamp-builder/timezones.cjs.js.map +1 -0
  48. package/dist/nile-timestamp-builder/timezones.esm.js +1 -0
  49. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
  50. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -1
  51. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +1 -1
  52. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -1
  53. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +91 -58
  54. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +1 -1
  55. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +1 -1
  56. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -1
  57. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +19 -19
  58. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js +1 -1
  59. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js.map +1 -1
  60. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.esm.js +14 -14
  61. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
  62. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
  63. package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +13 -13
  64. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
  65. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -1
  66. package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +12 -12
  67. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +1 -1
  68. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -1
  69. package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +10 -10
  70. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
  71. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -1
  72. package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +4 -4
  73. package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js +1 -1
  74. package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js.map +1 -1
  75. package/dist/nile-wysiwyg-editor/ui/emoji-picker.esm.js +11 -11
  76. package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js +1 -1
  77. package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js.map +1 -1
  78. package/dist/nile-wysiwyg-editor/ui/find-replace.esm.js +9 -9
  79. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +1 -1
  80. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -1
  81. package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +11 -11
  82. package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js +1 -1
  83. package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js.map +1 -1
  84. package/dist/nile-wysiwyg-editor/ui/image-panel.esm.js +6 -6
  85. package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js +1 -1
  86. package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js.map +1 -1
  87. package/dist/nile-wysiwyg-editor/ui/insert-menu.esm.js +14 -14
  88. package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js +1 -1
  89. package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js.map +1 -1
  90. package/dist/nile-wysiwyg-editor/ui/link-editor.esm.js +16 -16
  91. package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js +1 -1
  92. package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js.map +1 -1
  93. package/dist/nile-wysiwyg-editor/ui/markdown-panel.esm.js +8 -8
  94. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +1 -1
  95. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -1
  96. package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +4 -4
  97. package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js +1 -1
  98. package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js.map +1 -1
  99. package/dist/nile-wysiwyg-editor/ui/shortcut-help.esm.js +16 -16
  100. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
  101. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -1
  102. package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +29 -29
  103. package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js +1 -1
  104. package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js.map +1 -1
  105. package/dist/nile-wysiwyg-editor/ui/special-chars.esm.js +8 -8
  106. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +1 -1
  107. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -1
  108. package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +9 -9
  109. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +1 -1
  110. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -1
  111. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +23 -23
  112. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
  113. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
  114. package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +7 -7
  115. package/dist/src/index.d.ts +1 -0
  116. package/dist/src/index.js +1 -0
  117. package/dist/src/index.js.map +1 -1
  118. package/dist/src/nile-code-editor/nile-code-editor.css.js +2 -2
  119. package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
  120. package/dist/src/nile-code-editor/nile-code-editor.d.ts +15 -0
  121. package/dist/src/nile-code-editor/nile-code-editor.js +65 -6
  122. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  123. package/dist/src/nile-code-editor/theme.d.ts +6 -117
  124. package/dist/src/nile-code-editor/theme.js +100 -147
  125. package/dist/src/nile-code-editor/theme.js.map +1 -1
  126. package/dist/src/nile-combobox/nile-combobox.css.js +1 -1
  127. package/dist/src/nile-combobox/nile-combobox.css.js.map +1 -1
  128. package/dist/src/nile-detail/nile-detail.css.js +1 -1
  129. package/dist/src/nile-detail/nile-detail.css.js.map +1 -1
  130. package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +3 -3
  131. package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
  132. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +11 -5
  133. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
  134. package/dist/src/nile-timestamp-builder/index.d.ts +1 -0
  135. package/dist/src/nile-timestamp-builder/index.js +2 -0
  136. package/dist/src/nile-timestamp-builder/index.js.map +1 -0
  137. package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.d.ts +54 -0
  138. package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.js +254 -0
  139. package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.js.map +1 -0
  140. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.d.ts +7 -0
  141. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.js +203 -0
  142. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.js.map +1 -0
  143. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.d.ts +94 -0
  144. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.js +578 -0
  145. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.js.map +1 -0
  146. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.d.ts +1 -0
  147. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.js +890 -0
  148. package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.js.map +1 -0
  149. package/dist/src/nile-timestamp-builder/timezones.d.ts +8 -0
  150. package/dist/src/nile-timestamp-builder/timezones.js +357 -0
  151. package/dist/src/nile-timestamp-builder/timezones.js.map +1 -0
  152. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +91 -58
  153. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -1
  154. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +2 -1
  155. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +23 -1
  156. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -1
  157. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +19 -19
  158. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -1
  159. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js +10 -10
  160. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js.map +1 -1
  161. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +7 -7
  162. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -1
  163. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js +5 -5
  164. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js.map +1 -1
  165. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js +6 -6
  166. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js.map +1 -1
  167. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +4 -4
  168. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -1
  169. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js +6 -6
  170. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js.map +1 -1
  171. package/dist/src/nile-wysiwyg-editor/ui/find-replace.js +7 -7
  172. package/dist/src/nile-wysiwyg-editor/ui/find-replace.js.map +1 -1
  173. package/dist/src/nile-wysiwyg-editor/ui/image-menu.js +6 -6
  174. package/dist/src/nile-wysiwyg-editor/ui/image-menu.js.map +1 -1
  175. package/dist/src/nile-wysiwyg-editor/ui/image-panel.js +6 -6
  176. package/dist/src/nile-wysiwyg-editor/ui/image-panel.js.map +1 -1
  177. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js +7 -7
  178. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js.map +1 -1
  179. package/dist/src/nile-wysiwyg-editor/ui/link-editor.js +9 -9
  180. package/dist/src/nile-wysiwyg-editor/ui/link-editor.js.map +1 -1
  181. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js +8 -8
  182. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js.map +1 -1
  183. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +4 -4
  184. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -1
  185. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js +9 -9
  186. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js.map +1 -1
  187. package/dist/src/nile-wysiwyg-editor/ui/source-view.js +24 -24
  188. package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -1
  189. package/dist/src/nile-wysiwyg-editor/ui/special-chars.js +4 -4
  190. package/dist/src/nile-wysiwyg-editor/ui/special-chars.js.map +1 -1
  191. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +7 -7
  192. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -1
  193. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +16 -16
  194. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -1
  195. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +4 -4
  196. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -1
  197. package/dist/src/version.js +2 -2
  198. package/dist/src/version.js.map +1 -1
  199. package/dist/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +1 -1
  201. package/src/index.ts +1 -0
  202. package/src/nile-code-editor/nile-code-editor.css.ts +2 -2
  203. package/src/nile-code-editor/nile-code-editor.ts +68 -5
  204. package/src/nile-code-editor/theme.ts +129 -162
  205. package/src/nile-combobox/nile-combobox.css.ts +1 -1
  206. package/src/nile-detail/nile-detail.css.ts +1 -1
  207. package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +3 -3
  208. package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +11 -5
  209. package/src/nile-timestamp-builder/index.ts +1 -0
  210. package/src/nile-timestamp-builder/nile-timestamp-builder-utils.ts +321 -0
  211. package/src/nile-timestamp-builder/nile-timestamp-builder.css.ts +204 -0
  212. package/src/nile-timestamp-builder/nile-timestamp-builder.test.ts +1089 -0
  213. package/src/nile-timestamp-builder/nile-timestamp-builder.ts +625 -0
  214. package/src/nile-timestamp-builder/timezones.ts +356 -0
  215. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +91 -58
  216. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +21 -1
  217. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +19 -19
  218. package/src/nile-wysiwyg-editor/ui/bookmark-panel.ts +10 -10
  219. package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +7 -7
  220. package/src/nile-wysiwyg-editor/ui/code-block-menu.ts +5 -5
  221. package/src/nile-wysiwyg-editor/ui/embed-menu.ts +6 -6
  222. package/src/nile-wysiwyg-editor/ui/embed-panel.ts +4 -4
  223. package/src/nile-wysiwyg-editor/ui/emoji-picker.ts +6 -6
  224. package/src/nile-wysiwyg-editor/ui/find-replace.ts +7 -7
  225. package/src/nile-wysiwyg-editor/ui/image-menu.ts +6 -6
  226. package/src/nile-wysiwyg-editor/ui/image-panel.ts +6 -6
  227. package/src/nile-wysiwyg-editor/ui/insert-menu.ts +7 -7
  228. package/src/nile-wysiwyg-editor/ui/link-editor.ts +9 -9
  229. package/src/nile-wysiwyg-editor/ui/markdown-panel.ts +8 -8
  230. package/src/nile-wysiwyg-editor/ui/math-panel.ts +4 -4
  231. package/src/nile-wysiwyg-editor/ui/shortcut-help.ts +9 -9
  232. package/src/nile-wysiwyg-editor/ui/source-view.ts +24 -24
  233. package/src/nile-wysiwyg-editor/ui/special-chars.ts +4 -4
  234. package/src/nile-wysiwyg-editor/ui/suggest-list.ts +7 -7
  235. package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +16 -16
  236. package/src/nile-wysiwyg-editor/ui/table-menu.ts +4 -4
  237. package/vscode-html-custom-data.json +94 -2
  238. package/dist/index-e43755f5.cjs.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-timestamp-builder.test.js","sourceRoot":"","sources":["../../../src/nile-timestamp-builder/nile-timestamp-builder.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, oneEvent } from '@open-wc/testing';\nimport './nile-timestamp-builder';\nimport type { NileTimestampBuilder } from './nile-timestamp-builder';\nimport {\n clampField,\n clampWallClock,\n daysInMonth,\n epochToFields,\n fieldsToEpoch,\n formatWallClock,\n getLocalTimeZone,\n getTimezoneList,\n hasTemporal,\n isValidTimeZone,\n normalizeValueInput,\n parseZonedValue,\n} from './nile-timestamp-builder-utils';\n\nconst make = (attrs = '') =>\n fixture<NileTimestampBuilder>(\n html`<nile-timestamp-builder ${attrs}></nile-timestamp-builder>`\n );\n\n/** Dispatch a nile-change carrying a STRING value on the nth inner nile-input. */\nfunction changeField(el: NileTimestampBuilder, index: number, value: number) {\n const inputs = el.shadowRoot!.querySelectorAll('nile-input');\n const input = inputs[index];\n input.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { value: String(value) },\n bubbles: true,\n composed: true,\n })\n );\n}\n\n// Field order in the expanded view.\nconst FIELD = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n millisecond: 6,\n};\n\ndescribe('NileTimestampBuilder', () => {\n describe('rendering & defaults', () => {\n it('renders', async () => {\n const el = await make();\n expect(el).to.exist;\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('is defined', () => {\n expect(customElements.get('nile-timestamp-builder')).to.exist;\n });\n\n it('tag name', async () => {\n const el = await make();\n expect(el.tagName.toLowerCase()).to.equal('nile-timestamp-builder');\n });\n\n it('has styles', async () => {\n const mod = await import('./nile-timestamp-builder');\n expect(mod.NileTimestampBuilder.styles).to.exist;\n });\n\n it('defaults', async () => {\n const el = await make();\n expect(el.value).to.equal(null);\n expect(el.open).to.equal(false);\n expect(el.minYear).to.equal(1);\n expect(el.maxYear).to.equal(9999);\n expect(el.timezone).to.be.a('string');\n });\n\n it('resolves the timezone list once on connect', async () => {\n const el = await make();\n expect(el.timezoneList.length).to.be.greaterThan(0);\n });\n\n it('collapsed view shows a placeholder when empty', async () => {\n const el = await make();\n const value = el.shadowRoot!.querySelector('[part=\"value\"]');\n expect(value?.textContent?.trim()).to.equal('No timestamp set');\n });\n });\n\n describe('view toggling', () => {\n it('Edit expands, Done collapses', async () => {\n const el = await make();\n (el as any).handleEdit();\n await el.updateComplete;\n expect(el.open).to.be.true;\n expect(el.shadowRoot!.querySelector('[part=\"editor\"]')).to.exist;\n\n (el as any).handleDone();\n await el.updateComplete;\n expect(el.open).to.be.false;\n expect(el.shadowRoot!.querySelector('[part=\"display\"]')).to.exist;\n });\n\n it('readonly never expands', async () => {\n const el = await make();\n el.readonly = true;\n await el.updateComplete;\n (el as any).handleEdit();\n await el.updateComplete;\n expect(el.open).to.be.false;\n expect(el.shadowRoot!.querySelector('[part=\"editor\"]')).to.not.exist;\n });\n\n describe('copyable', () => {\n let written: string[];\n let original: unknown;\n\n beforeEach(() => {\n written = [];\n original = (navigator as any).clipboard;\n Object.defineProperty(navigator, 'clipboard', {\n value: {\n writeText: (t: string) => {\n written.push(t);\n return Promise.resolve();\n },\n },\n configurable: true,\n });\n });\n\n afterEach(() => {\n Object.defineProperty(navigator, 'clipboard', {\n value: original,\n configurable: true,\n });\n });\n\n it('stays hidden unless copyable is passed', async () => {\n const el = await make();\n el.readonly = true;\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('[part=\"actions\"]')).to.not.exist;\n });\n\n it('shows a single Copy action when readonly and copyable', async () => {\n const el = await make();\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n const buttons = el.shadowRoot!.querySelectorAll('nile-button');\n expect(buttons.length).to.equal(1);\n // Icon only — the accessible name carries the meaning, not text.\n expect(buttons[0].textContent!.trim()).to.equal('');\n expect(buttons[0].getAttribute('aria-label')).to.equal(\n 'Copy timestamp'\n );\n expect(\n buttons[0].querySelector('nile-glyph')!.getAttribute('name')\n ).to.equal('ng-copy');\n });\n\n it('does not show Copy when disabled', async () => {\n const el = await make();\n el.value = new Date();\n el.disabled = true;\n el.copyable = true;\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('[part=\"actions\"]')).to.not.exist;\n });\n\n it('does not show Copy when disabled and readonly together', async () => {\n const el = await make();\n el.value = new Date();\n el.disabled = true;\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('[part=\"actions\"]')).to.not.exist;\n });\n\n it('does not show Copy while the value is editable', async () => {\n const el = await make();\n el.copyable = true;\n await el.updateComplete;\n expect(el.shadowRoot!.querySelectorAll('nile-button').length).to.equal(\n 2\n );\n });\n\n it('writes the canonical zoned value to the clipboard', async () => {\n const el = await make();\n el.value = new Date(Date.UTC(2026, 2, 14, 4, 11, 0));\n el.timezone = 'UTC';\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n await (el as any).handleCopy();\n expect(written.length).to.equal(1);\n expect(written[0]).to.contain('2026-03-14');\n });\n\n it('emits nile-copy with the copied value', async () => {\n const el = await make();\n el.value = new Date(Date.UTC(2026, 2, 14, 4, 11, 0));\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n setTimeout(() => (el as any).handleCopy());\n const evt = await oneEvent(el, 'nile-copy');\n expect(evt.detail.value).to.be.a('string');\n });\n\n it('confirms with a checked icon and an updated accessible name', async () => {\n const el = await make();\n el.value = new Date();\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n await (el as any).handleCopy();\n await el.updateComplete;\n expect(el.justCopied).to.be.true;\n const button = el.shadowRoot!.querySelector('nile-button')!;\n expect(button.getAttribute('aria-label')).to.equal('Copied');\n expect(\n button.querySelector('nile-glyph')!.getAttribute('name')\n ).to.equal('ng-copy-check');\n });\n\n it('disables Copy when there is no value to copy', async () => {\n const el = await make();\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n expect(el.hasValue).to.be.false;\n const button = el.shadowRoot!.querySelector('nile-button')!;\n expect(button.hasAttribute('disabled')).to.be.true;\n await (el as any).handleCopy();\n expect(written.length).to.equal(0);\n });\n\n it('emits nile-copy-error when the clipboard rejects', async () => {\n Object.defineProperty(navigator, 'clipboard', {\n value: { writeText: () => Promise.reject(new Error('denied')) },\n configurable: true,\n });\n const el = await make();\n el.value = new Date();\n el.readonly = true;\n el.copyable = true;\n await el.updateComplete;\n setTimeout(() => (el as any).handleCopy());\n const evt = await oneEvent(el, 'nile-copy-error');\n expect(evt.detail.value).to.be.a('string');\n expect(el.justCopied).to.be.false;\n });\n });\n\n it('keeps the collapsed row the same height with and without actions', async () => {\n // The token stylesheet is not loaded under test, so the one length this\n // assertion depends on is supplied explicitly. It inherits into the\n // shadow root like a custom property normally would.\n const withHeightToken = async (mutate: (el: NileTimestampBuilder) => void) => {\n const el = await make();\n el.style.setProperty('--ng-height-28px', '28px');\n el.value = new Date();\n mutate(el);\n await el.updateComplete;\n return el.shadowRoot!.querySelector('.tsb__collapsed') as HTMLElement;\n };\n\n const withActions = await withHeightToken(() => {});\n const readonlyRow = await withHeightToken(el => {\n el.readonly = true;\n });\n const disabledRow = await withHeightToken(el => {\n el.disabled = true;\n });\n\n expect(withActions.offsetHeight).to.equal(readonlyRow.offsetHeight);\n expect(withActions.offsetHeight).to.equal(disabledRow.offsetHeight);\n });\n\n it('renders no actions when readonly', async () => {\n const el = await make();\n el.readonly = true;\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('[part=\"actions\"]')).to.not.exist;\n expect(el.shadowRoot!.querySelectorAll('nile-button').length).to.equal(0);\n });\n\n it('renders no actions when disabled', async () => {\n const el = await make();\n el.disabled = true;\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('[part=\"actions\"]')).to.not.exist;\n });\n\n it('renders Now and Edit when editable', async () => {\n const el = await make();\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('[part=\"actions\"]')).to.exist;\n expect(el.shadowRoot!.querySelectorAll('nile-button').length).to.equal(2);\n });\n\n it('marks the readonly display as focusable and aria-readonly', async () => {\n const el = await make();\n el.readonly = true;\n await el.updateComplete;\n const display = el.shadowRoot!.querySelector('.tsb__display')!;\n expect(display.getAttribute('tabindex')).to.equal('0');\n expect(display.getAttribute('aria-readonly')).to.equal('true');\n });\n\n it('drops the display from the tab order when disabled', async () => {\n const el = await make();\n el.disabled = true;\n await el.updateComplete;\n const display = el.shadowRoot!.querySelector('.tsb__display')!;\n expect(display.hasAttribute('tabindex')).to.be.false;\n });\n\n it('emits nile-expand / nile-collapse', async () => {\n const el = await make();\n setTimeout(() => (el as any).handleEdit());\n const expandEvt = await oneEvent(el, 'nile-expand');\n expect(expandEvt.detail.open).to.be.true;\n\n setTimeout(() => (el as any).handleDone());\n const collapseEvt = await oneEvent(el, 'nile-collapse');\n expect(collapseEvt.detail.open).to.be.false;\n });\n\n const display = (el: NileTimestampBuilder) =>\n el.shadowRoot!.querySelector('.tsb__display') as HTMLElement;\n\n const tap = (el: NileTimestampBuilder) =>\n display(el).dispatchEvent(\n new PointerEvent('pointerup', {\n pointerType: 'touch',\n bubbles: true,\n composed: true,\n })\n );\n\n it('double-click on the display expands', async () => {\n const el = await make();\n display(el).dispatchEvent(\n new MouseEvent('dblclick', { bubbles: true, composed: true })\n );\n await el.updateComplete;\n expect(el.open).to.be.true;\n });\n\n it('double-tap on the display expands', async () => {\n const el = await make();\n tap(el);\n tap(el);\n await el.updateComplete;\n expect(el.open).to.be.true;\n });\n\n it('a single tap does not expand', async () => {\n const el = await make();\n tap(el);\n await el.updateComplete;\n expect(el.open).to.be.false;\n });\n\n it('two taps further apart than the double-tap window do not expand', async () => {\n const el = await make();\n tap(el);\n (el as any).lastTapAt -= 1000;\n tap(el);\n await el.updateComplete;\n expect(el.open).to.be.false;\n });\n\n it('readonly and disabled ignore double-click and double-tap', async () => {\n for (const flag of ['readonly', 'disabled'] as const) {\n const el = await make();\n el[flag] = true;\n await el.updateComplete;\n\n display(el).dispatchEvent(\n new MouseEvent('dblclick', { bubbles: true, composed: true })\n );\n tap(el);\n tap(el);\n await el.updateComplete;\n expect(el.open, flag).to.be.false;\n }\n });\n });\n\n describe('fields <-> epoch', () => {\n it('derives fields from an external value', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.UTC(2022, 4, 15, 13, 45, 30, 250);\n await el.updateComplete;\n expect(el.wallClock.year).to.equal(2022);\n expect(el.wallClock.month).to.equal(5);\n expect(el.wallClock.day).to.equal(15);\n expect(el.wallClock.hour).to.equal(13);\n expect(el.wallClock.minute).to.equal(45);\n expect(el.wallClock.second).to.equal(30);\n expect(el.wallClock.millisecond).to.equal(250);\n expect(el.hasValue).to.be.true;\n });\n\n it('field change payload is coerced to a Number', async () => {\n const el = await make();\n el.timezone = 'UTC';\n (el as any).handleEdit();\n await el.updateComplete;\n changeField(el, FIELD.hour, 9);\n await el.updateComplete;\n expect(el.wallClock.hour).to.equal(9);\n expect(el.wallClock.hour).to.be.a('number');\n // Field edits stage only; commit via Done before checking the value.\n (el as any).handleDone();\n await el.updateComplete;\n expect(el.value).to.be.an.instanceOf(Date);\n });\n\n it('round trips fields to epoch and back', async () => {\n const el = await make();\n el.timezone = 'UTC';\n const epoch = Date.UTC(2021, 5, 15, 12, 30, 45, 123);\n el.value = epoch;\n await el.updateComplete;\n (el as any).handleEdit();\n await el.updateComplete;\n // Re-stage the same field, then commit; epoch must be preserved.\n changeField(el, FIELD.second, 45);\n await el.updateComplete;\n (el as any).handleDone();\n await el.updateComplete;\n expect(el.value?.getTime()).to.equal(epoch);\n });\n });\n\n describe('clamping', () => {\n async function seeded() {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.UTC(2023, 0, 15, 10, 0, 0, 0);\n await el.updateComplete;\n (el as any).handleEdit();\n await el.updateComplete;\n return el;\n }\n\n it('clamps month to 1-12', async () => {\n const el = await seeded();\n changeField(el, FIELD.month, 13);\n await el.updateComplete;\n expect(el.wallClock.month).to.equal(12);\n });\n\n it('clamps day to leap-aware month length', async () => {\n const el = await seeded();\n el.value = Date.UTC(2024, 1, 10, 0, 0, 0, 0); // Feb 2024 (leap)\n await el.updateComplete;\n changeField(el, FIELD.day, 30);\n await el.updateComplete;\n expect(el.wallClock.day).to.equal(29);\n });\n\n it('clamps day for a non-leap February', async () => {\n const el = await seeded();\n el.value = Date.UTC(2023, 1, 10, 0, 0, 0, 0); // Feb 2023\n await el.updateComplete;\n changeField(el, FIELD.day, 31);\n await el.updateComplete;\n expect(el.wallClock.day).to.equal(28);\n });\n\n it('clamps hour/minute/second/ms', async () => {\n const el = await seeded();\n changeField(el, FIELD.hour, 30);\n changeField(el, FIELD.minute, 99);\n changeField(el, FIELD.second, 61);\n changeField(el, FIELD.millisecond, 1500);\n await el.updateComplete;\n expect(el.wallClock.hour).to.equal(23);\n expect(el.wallClock.minute).to.equal(59);\n expect(el.wallClock.second).to.equal(59);\n expect(el.wallClock.millisecond).to.equal(999);\n });\n\n it('clamps year to min/max', async () => {\n const el = await seeded();\n el.minYear = 2000;\n el.maxYear = 2030;\n await el.updateComplete;\n changeField(el, FIELD.year, 3000);\n await el.updateComplete;\n expect(el.wallClock.year).to.equal(2030);\n changeField(el, FIELD.year, 1000);\n await el.updateComplete;\n expect(el.wallClock.year).to.equal(2000);\n });\n\n it('recaps day when switching to a shorter month', async () => {\n const el = await seeded();\n changeField(el, FIELD.day, 31); // January has 31 days\n await el.updateComplete;\n expect(el.wallClock.day).to.equal(31);\n changeField(el, FIELD.month, 4); // April has 30\n await el.updateComplete;\n expect(el.wallClock.day).to.equal(30);\n });\n });\n\n describe('timezone behaviour', () => {\n it('switching timezone keeps fields and changes epoch', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.UTC(2022, 0, 1, 12, 0, 0, 0);\n await el.updateComplete;\n const before = {\n y: el.wallClock.year,\n mo: el.wallClock.month,\n d: el.wallClock.day,\n h: el.wallClock.hour,\n epoch: el.value?.getTime(),\n };\n\n const select = el.shadowRoot!.querySelector('nile-select');\n // ensure select exists (expanded not required for handler)\n (el as any).open = true;\n await el.updateComplete;\n const tzSelect = el.shadowRoot!.querySelector('nile-select')!;\n tzSelect.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { value: 'Asia/Kolkata' },\n bubbles: true,\n composed: true,\n })\n );\n await el.updateComplete;\n // Timezone selection stages only — commit via Done to see the new epoch.\n (el as any).handleDone();\n await el.updateComplete;\n\n expect(select || tzSelect).to.exist;\n expect(el.wallClock.year).to.equal(before.y);\n expect(el.wallClock.month).to.equal(before.mo);\n expect(el.wallClock.day).to.equal(before.d);\n expect(el.wallClock.hour).to.equal(before.h);\n expect(el.value?.getTime()).to.not.equal(before.epoch);\n });\n\n it('Use UTC sets timezone to UTC and keeps fields', async () => {\n const el = await make();\n el.timezone = 'Asia/Kolkata';\n el.value = Date.now();\n await el.updateComplete;\n const y = el.wallClock.year;\n (el as any).handleUseUtc();\n await el.updateComplete;\n expect(el.timezone).to.equal('UTC');\n expect(el.wallClock.year).to.equal(y);\n });\n\n it('Use Local Timezone sets a valid tz', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.now();\n await el.updateComplete;\n (el as any).handleUseLocalTz();\n await el.updateComplete;\n expect(isValidTimeZone(el.timezone)).to.be.true;\n });\n });\n\n describe('set to now', () => {\n it('sets value near Date.now() and emits nile-change', async () => {\n const el = await make();\n setTimeout(() => (el as any).handleSetNow());\n const evt = await oneEvent(el, 'nile-change');\n // Emitted detail matches the date-time picker contract: a zone-encoded\n // string value plus the absolute instant as a Date.\n expect(evt.detail.value).to.be.a('string');\n expect(evt.detail.value).to.match(/^\\d{4}-\\d{2}-\\d{2}T.*\\[GMT[+-]\\d{2}:\\d{2} .+\\]$/);\n expect(evt.detail.localTimezoneValue).to.be.an.instanceOf(Date);\n expect(evt.detail.timezone).to.be.a('string');\n expect(Math.abs(el.value!.getTime() - Date.now())).to.be.lessThan(5000);\n expect(el.hasValue).to.be.true;\n });\n });\n\n describe('emit contract (date-time picker parity)', () => {\n it('emits a zone-encoded value string carrying the selected offset + zone, only on Done', async () => {\n const el = await make();\n el.timezone = 'Asia/Yerevan'; // UTC+4, no DST\n el.value = Date.UTC(2030, 3, 7, 17, 8, 56, 892); // 21:08:56.892 wall-clock\n (el as any).open = true; // fields only render in the expanded view\n await el.updateComplete;\n\n // Editing a field only stages it — no nile-change until Done.\n let changeFired = false;\n el.addEventListener('nile-change', () => (changeFired = true));\n changeField(el, FIELD.second, 56); // same value; re-stages the field\n await el.updateComplete;\n expect(changeFired).to.be.false;\n\n const listener = oneEvent(el, 'nile-change');\n (el as any).handleDone();\n const evt = await listener;\n\n expect(evt.detail.value).to.equal(\n '2030-04-07T21:08:56.892[GMT+04:00 Asia/Yerevan]'\n );\n expect(evt.detail.localTimezoneValue).to.be.an.instanceOf(Date);\n // localTimezoneValue is the absolute instant behind the wall-clock, and it\n // must agree exactly with the epoch — no roundtrip drift.\n expect((evt.detail.localTimezoneValue as Date).getTime()).to.equal(\n Date.UTC(2030, 3, 7, 17, 8, 56, 892)\n );\n expect(el.value?.getTime()).to.equal(Date.UTC(2030, 3, 7, 17, 8, 56, 892));\n expect(evt.detail.timezone).to.equal('Asia/Yerevan');\n });\n\n it('labels a UTC value as [GMT+00:00 UTC]', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.UTC(2030, 3, 7, 17, 8, 56, 892);\n (el as any).open = true;\n await el.updateComplete;\n\n changeField(el, FIELD.second, 56);\n await el.updateComplete;\n\n const listener = oneEvent(el, 'nile-change');\n (el as any).handleDone();\n const evt = await listener;\n\n expect(evt.detail.value).to.equal(\n '2030-04-07T17:08:56.892[GMT+00:00 UTC]'\n );\n });\n\n it('selecting a timezone stages only — no nile-change until Done', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.UTC(2022, 0, 1, 12, 0, 0, 0);\n (el as any).open = true;\n await el.updateComplete;\n\n let changeFired = false;\n el.addEventListener('nile-change', () => (changeFired = true));\n\n const tzSelect = el.shadowRoot!.querySelector('nile-select')!;\n tzSelect.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { value: 'Asia/Kolkata' },\n bubbles: true,\n composed: true,\n })\n );\n await el.updateComplete;\n\n expect(el.timezone).to.equal('Asia/Kolkata');\n expect(changeFired).to.be.false;\n expect(el.value?.getTime()).to.equal(Date.UTC(2022, 0, 1, 12, 0, 0, 0)); // unchanged\n\n const listener = oneEvent(el, 'nile-change');\n (el as any).handleDone();\n const evt = await listener;\n expect(evt.detail.timezone).to.equal('Asia/Kolkata');\n expect(el.value?.getTime()).to.not.equal(Date.UTC(2022, 0, 1, 12, 0, 0, 0));\n });\n\n it('field edits emit live nile-input without committing', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.UTC(2022, 0, 1, 12, 0, 0, 0);\n (el as any).open = true;\n await el.updateComplete;\n\n const listener = oneEvent(el, 'nile-input');\n changeField(el, FIELD.hour, 9);\n const evt = await listener;\n\n expect(evt.detail.value).to.be.a('string');\n expect(evt.detail.localTimezoneValue).to.be.an.instanceOf(Date);\n // The stored value has NOT committed yet.\n expect(el.value?.getTime()).to.equal(Date.UTC(2022, 0, 1, 12, 0, 0, 0));\n });\n });\n\n describe('value accepts Date, number, or string, stores a Date', () => {\n it('accepts an ISO string via property assignment', async () => {\n const el = await make();\n el.value = '2026-07-15T00:00:00.000Z';\n await el.updateComplete;\n expect(el.value?.getTime()).to.equal(Date.UTC(2026, 6, 15, 0, 0, 0, 0));\n });\n\n it('accepts a numeric string via property assignment', async () => {\n const el = await make();\n const epoch = Date.UTC(2026, 6, 15, 0, 0, 0, 0);\n el.value = String(epoch);\n await el.updateComplete;\n expect(el.value?.getTime()).to.equal(epoch);\n });\n\n it('accepts a Date via property assignment', async () => {\n const el = await make();\n const date = new Date(Date.UTC(2026, 6, 15, 0, 0, 0, 0));\n el.value = date;\n await el.updateComplete;\n expect(el.value).to.be.an.instanceOf(Date);\n expect(el.value?.getTime()).to.equal(date.getTime());\n });\n\n it('accepts an ISO string via the value attribute', async () => {\n const el = await fixture<NileTimestampBuilder>(\n html`<nile-timestamp-builder\n value=\"2026-07-15T00:00:00.000Z\"\n ></nile-timestamp-builder>`\n );\n expect(el.value?.getTime()).to.equal(Date.UTC(2026, 6, 15, 0, 0, 0, 0));\n });\n\n it('collapses an unparseable string to null', async () => {\n const el = await make();\n el.value = 'not-a-date';\n await el.updateComplete;\n expect(el.value).to.equal(null);\n });\n\n it('collapses an empty string to null', async () => {\n const el = await make();\n el.value = Date.now();\n await el.updateComplete;\n el.value = '';\n await el.updateComplete;\n expect(el.value).to.equal(null);\n });\n });\n\n describe('empty-expand seeding', () => {\n it('seeds fields on Edit but does NOT emit until Done', async () => {\n const el = await make();\n let emitted = false;\n el.addEventListener('nile-change', () => (emitted = true));\n\n (el as any).handleEdit();\n await el.updateComplete;\n\n expect(el.value).to.equal(null);\n expect(el.hasValue).to.be.false;\n expect(el.wallClock.year).to.be.greaterThan(1970);\n expect(emitted).to.be.false;\n\n (el as any).handleDone();\n await el.updateComplete;\n expect(emitted).to.be.true;\n expect(el.value).to.be.an.instanceOf(Date);\n expect(el.hasValue).to.be.true;\n });\n });\n\n describe('external value = null clears', () => {\n it('clears state when value set back to null', async () => {\n const el = await make();\n el.timezone = 'UTC';\n el.value = Date.now();\n await el.updateComplete;\n expect(el.hasValue).to.be.true;\n\n el.value = null;\n await el.updateComplete;\n expect(el.hasValue).to.be.false;\n const hidden =\n el.shadowRoot!.querySelector<HTMLInputElement>('.value-input')!;\n expect(hidden.value).to.equal('');\n });\n });\n\n describe('form association', () => {\n it('FormData contains name -> ISO string', async () => {\n const epoch = Date.UTC(2020, 0, 1, 0, 0, 0, 0);\n const form = await fixture<HTMLFormElement>(html`\n <form>\n <nile-timestamp-builder\n name=\"ts\"\n .value=${epoch}\n ></nile-timestamp-builder>\n </form>\n `);\n const el = form.querySelector<NileTimestampBuilder>(\n 'nile-timestamp-builder'\n )!;\n await el.updateComplete;\n const data = new FormData(form);\n expect(data.get('ts')).to.equal(new Date(epoch).toISOString());\n });\n\n it('required + null is invalid', async () => {\n const el = await make();\n el.required = true;\n el.value = null;\n await el.updateComplete;\n expect(el.checkValidity()).to.be.false;\n });\n\n it('required + value is valid', async () => {\n const el = await make();\n el.required = true;\n el.value = Date.now();\n await el.updateComplete;\n expect(el.checkValidity()).to.be.true;\n });\n\n it('disabled control is excluded from FormData', async () => {\n const epoch = Date.UTC(2020, 0, 1, 0, 0, 0, 0);\n const form = await fixture<HTMLFormElement>(html`\n <form>\n <nile-timestamp-builder\n name=\"ts\"\n disabled\n .value=${epoch}\n ></nile-timestamp-builder>\n </form>\n `);\n const el = form.querySelector<NileTimestampBuilder>(\n 'nile-timestamp-builder'\n )!;\n await el.updateComplete;\n const data = new FormData(form);\n expect(data.get('ts')).to.equal(null);\n });\n\n it('reset restores the default value', async () => {\n const form = await fixture<HTMLFormElement>(html`\n <form>\n <nile-timestamp-builder\n name=\"ts\"\n value=\"1000\"\n ></nile-timestamp-builder>\n </form>\n `);\n const el = form.querySelector<NileTimestampBuilder>(\n 'nile-timestamp-builder'\n )!;\n await el.updateComplete;\n el.value = 5000;\n await el.updateComplete;\n form.reset();\n await el.updateComplete;\n expect(el.value?.getTime()).to.equal(1000);\n });\n });\n\n describe('robustness', () => {\n it('falls back to a valid tz when given junk', async () => {\n const el = await fixture<NileTimestampBuilder>(\n html`<nile-timestamp-builder\n timezone=\"Not/ARealZone\"\n ></nile-timestamp-builder>`\n );\n await el.updateComplete;\n expect(isValidTimeZone(el.timezone)).to.be.true;\n });\n });\n});\n\ndescribe('nile-timestamp-builder utils', () => {\n it('daysInMonth is leap-aware', () => {\n expect(daysInMonth(2024, 2)).to.equal(29);\n expect(daysInMonth(2023, 2)).to.equal(28);\n expect(daysInMonth(2024, 4)).to.equal(30);\n expect(daysInMonth(2024, 1)).to.equal(31);\n expect(daysInMonth(2024, 12)).to.equal(31);\n });\n\n it('clampField collapses NaN to min', () => {\n expect(clampField(NaN, 0, 10)).to.equal(0);\n expect(clampField(5, 0, 10)).to.equal(5);\n expect(clampField(-3, 0, 10)).to.equal(0);\n expect(clampField(99, 0, 10)).to.equal(10);\n });\n\n it('clampWallClock caps day using year+month', () => {\n const clamped = clampWallClock(\n {\n year: 2023,\n month: 2,\n day: 31,\n hour: 25,\n minute: 61,\n second: 61,\n millisecond: 1001,\n },\n 1,\n 9999\n );\n expect(clamped.day).to.equal(28);\n expect(clamped.hour).to.equal(23);\n expect(clamped.minute).to.equal(59);\n expect(clamped.second).to.equal(59);\n expect(clamped.millisecond).to.equal(999);\n });\n\n it('getTimezoneList is non-empty', () => {\n expect(getTimezoneList().length).to.be.greaterThan(0);\n });\n\n it('getLocalTimeZone is valid', () => {\n expect(isValidTimeZone(getLocalTimeZone())).to.be.true;\n });\n\n it('isValidTimeZone', () => {\n expect(isValidTimeZone('UTC')).to.be.true;\n expect(isValidTimeZone('America/New_York')).to.be.true;\n expect(isValidTimeZone('Not/AZone')).to.be.false;\n expect(isValidTimeZone('')).to.be.false;\n });\n\n it('hasTemporal returns a boolean', () => {\n expect(hasTemporal()).to.be.a('boolean');\n });\n\n describe('normalizeValueInput', () => {\n it('converts a number to a Date at that instant', () => {\n const result = normalizeValueInput(1712500000000);\n expect(result).to.be.an.instanceOf(Date);\n expect(result?.getTime()).to.equal(1712500000000);\n });\n\n it('parses a numeric string as a Date at that epoch ms', () => {\n expect(normalizeValueInput('1712500000000')?.getTime()).to.equal(\n 1712500000000\n );\n });\n\n it('parses an ISO string as a Date', () => {\n expect(normalizeValueInput('2026-07-15T00:00:00.000Z')?.getTime()).to.equal(\n Date.UTC(2026, 6, 15, 0, 0, 0, 0)\n );\n });\n\n it('passes a Date through unchanged', () => {\n const d = new Date(1712500000000);\n expect(normalizeValueInput(d)).to.equal(d);\n });\n\n it('collapses null, undefined, empty string, and NaN to null', () => {\n expect(normalizeValueInput(null)).to.equal(null);\n expect(normalizeValueInput(undefined)).to.equal(null);\n expect(normalizeValueInput('')).to.equal(null);\n expect(normalizeValueInput(' ')).to.equal(null);\n expect(normalizeValueInput(NaN)).to.equal(null);\n });\n\n it('collapses an unparseable string to null', () => {\n expect(normalizeValueInput('not-a-date')).to.equal(null);\n });\n });\n\n describe('parseZonedValue offset/timezone consistency', () => {\n it('accepts an offset that matches the zone at that instant', () => {\n const parsed = parseZonedValue('2026-08-04T12:00:00[GMT+02:00 Europe/Paris]');\n expect(parsed).to.not.equal(null);\n expect(parsed!.timezone).to.equal('Europe/Paris');\n // 12:00 at +02:00 is 10:00Z — the wall-clock the string displays.\n expect(parsed!.date.getTime()).to.equal(Date.UTC(2026, 7, 4, 10, 0, 0, 0));\n });\n\n it('rejects a stale offset that contradicts the zone', () => {\n // Paris is +02:00 in August. Accepting +01:00 would resolve to 11:00Z and\n // silently render as 13:00 Paris — an hour away from the 12:00 shown.\n expect(\n parseZonedValue('2026-08-04T12:00:00[GMT+01:00 Europe/Paris]')\n ).to.equal(null);\n });\n\n it('accepts both offsets of a DST fall-back, preserving the distinct instants', () => {\n // 2026-11-01 01:30 occurs twice in New York; only the offset separates them.\n const first = parseZonedValue(\n '2026-11-01T01:30:00[GMT-04:00 America/New_York]'\n );\n const second = parseZonedValue(\n '2026-11-01T01:30:00[GMT-05:00 America/New_York]'\n );\n expect(first).to.not.equal(null);\n expect(second).to.not.equal(null);\n expect(first!.date.getTime()).to.equal(Date.UTC(2026, 10, 1, 5, 30, 0, 0));\n expect(second!.date.getTime()).to.equal(Date.UTC(2026, 10, 1, 6, 30, 0, 0));\n expect(first!.date.getTime()).to.not.equal(second!.date.getTime());\n });\n\n it('rejects a nonexistent spring-forward local time under either offset', () => {\n // New York jumps 02:00 -> 03:00 on 2026-03-08, so 02:30 never occurs.\n expect(\n parseZonedValue('2026-03-08T02:30:00[GMT-05:00 America/New_York]')\n ).to.equal(null);\n expect(\n parseZonedValue('2026-03-08T02:30:00[GMT-04:00 America/New_York]')\n ).to.equal(null);\n });\n\n it('rejects an unknown timezone identifier without throwing', () => {\n expect(\n parseZonedValue('2026-08-04T12:00:00[GMT+02:00 Not/AZone]')\n ).to.equal(null);\n });\n\n it('round-trips the values emitted by formatZonedValue', () => {\n const yerevan = parseZonedValue(\n '2030-04-07T21:08:56.892[GMT+04:00 Asia/Yerevan]'\n );\n expect(yerevan?.date.getTime()).to.equal(\n Date.UTC(2030, 3, 7, 17, 8, 56, 892)\n );\n const utc = parseZonedValue('2030-04-07T17:08:56.892[GMT+00:00 UTC]');\n expect(utc?.date.getTime()).to.equal(Date.UTC(2030, 3, 7, 17, 8, 56, 892));\n });\n });\n\n it('formatWallClock pads correctly', () => {\n expect(\n formatWallClock({\n year: 5,\n month: 3,\n day: 7,\n hour: 8,\n minute: 9,\n second: 1,\n millisecond: 42,\n })\n ).to.equal('0005-03-07 08:09:01.042');\n });\n\n it('round-trips across multiple zones', () => {\n const epoch = Date.UTC(2021, 5, 15, 12, 30, 45, 123);\n for (const tz of [\n 'UTC',\n 'America/New_York',\n 'Asia/Kolkata',\n 'Asia/Kathmandu',\n ]) {\n const w = epochToFields(epoch, tz);\n expect(fieldsToEpoch(w, tz)).to.equal(epoch);\n }\n });\n\n it('resolves DST gaps/overlaps deterministically', () => {\n // Spring-forward gap in US Eastern (2021-03-14 02:30 does not exist).\n const gap = {\n year: 2021,\n month: 3,\n day: 14,\n hour: 2,\n minute: 30,\n second: 0,\n millisecond: 0,\n };\n const a = fieldsToEpoch(gap, 'America/New_York');\n const b = fieldsToEpoch(gap, 'America/New_York');\n expect(a).to.equal(b);\n expect(Number.isFinite(a)).to.be.true;\n\n // Fall-back overlap (2021-11-07 01:30 occurs twice).\n const overlap = { ...gap, month: 11, day: 7, hour: 1 };\n const c = fieldsToEpoch(overlap, 'America/New_York');\n expect(fieldsToEpoch(overlap, 'America/New_York')).to.equal(c);\n expect(Number.isFinite(c)).to.be.true;\n });\n\n it('epochToFields agrees with a known UTC instant', () => {\n const w = epochToFields(Date.UTC(1999, 11, 31, 23, 59, 59, 999), 'UTC');\n expect(w).to.deep.equal({\n year: 1999,\n month: 12,\n day: 31,\n hour: 23,\n minute: 59,\n second: 59,\n millisecond: 999,\n });\n });\n});\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright Aquera Inc 2026
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /** Bundled IANA timezone identifiers used as the offline fallback */
8
+ export declare const TIMEZONES: string[];
@@ -0,0 +1,357 @@
1
+ /**
2
+ * Copyright Aquera Inc 2026
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /** Bundled IANA timezone identifiers used as the offline fallback */
8
+ export const TIMEZONES = [
9
+ 'Europe/Andorra',
10
+ 'Asia/Dubai',
11
+ 'Asia/Kabul',
12
+ 'Europe/Tirane',
13
+ 'Asia/Yerevan',
14
+ 'Antarctica/Casey',
15
+ 'Antarctica/Davis',
16
+ 'Antarctica/DumontDUrville',
17
+ 'Antarctica/Mawson',
18
+ 'Antarctica/Palmer',
19
+ 'Antarctica/Rothera',
20
+ 'Antarctica/Syowa',
21
+ 'Antarctica/Troll',
22
+ 'Antarctica/Vostok',
23
+ 'America/Argentina/Buenos_Aires',
24
+ 'America/Argentina/Cordoba',
25
+ 'America/Argentina/Salta',
26
+ 'America/Argentina/Jujuy',
27
+ 'America/Argentina/Tucuman',
28
+ 'America/Argentina/Catamarca',
29
+ 'America/Argentina/La_Rioja',
30
+ 'America/Argentina/San_Juan',
31
+ 'America/Argentina/Mendoza',
32
+ 'America/Argentina/San_Luis',
33
+ 'America/Argentina/Rio_Gallegos',
34
+ 'America/Argentina/Ushuaia',
35
+ 'Pacific/Pago_Pago',
36
+ 'Europe/Vienna',
37
+ 'Australia/Lord_Howe',
38
+ 'Antarctica/Macquarie',
39
+ 'Australia/Hobart',
40
+ 'Australia/Currie',
41
+ 'Australia/Melbourne',
42
+ 'Australia/Sydney',
43
+ 'Australia/Broken_Hill',
44
+ 'Australia/Brisbane',
45
+ 'Australia/Lindeman',
46
+ 'Australia/Adelaide',
47
+ 'Australia/Darwin',
48
+ 'Australia/Perth',
49
+ 'Australia/Eucla',
50
+ 'Asia/Baku',
51
+ 'America/Barbados',
52
+ 'Asia/Dhaka',
53
+ 'Europe/Brussels',
54
+ 'Europe/Sofia',
55
+ 'Atlantic/Bermuda',
56
+ 'Asia/Brunei',
57
+ 'America/La_Paz',
58
+ 'America/Noronha',
59
+ 'America/Belem',
60
+ 'America/Fortaleza',
61
+ 'America/Recife',
62
+ 'America/Araguaina',
63
+ 'America/Maceio',
64
+ 'America/Bahia',
65
+ 'America/Sao_Paulo',
66
+ 'America/Campo_Grande',
67
+ 'America/Cuiaba',
68
+ 'America/Santarem',
69
+ 'America/Porto_Velho',
70
+ 'America/Boa_Vista',
71
+ 'America/Manaus',
72
+ 'America/Eirunepe',
73
+ 'America/Rio_Branco',
74
+ 'America/Nassau',
75
+ 'Asia/Thimphu',
76
+ 'Europe/Minsk',
77
+ 'America/Belize',
78
+ 'America/St_Johns',
79
+ 'America/Halifax',
80
+ 'America/Glace_Bay',
81
+ 'America/Moncton',
82
+ 'America/Goose_Bay',
83
+ 'America/Blanc-Sablon',
84
+ 'America/Toronto',
85
+ 'America/Nipigon',
86
+ 'America/Thunder_Bay',
87
+ 'America/Iqaluit',
88
+ 'America/Pangnirtung',
89
+ 'America/Atikokan',
90
+ 'America/Winnipeg',
91
+ 'America/Rainy_River',
92
+ 'America/Resolute',
93
+ 'America/Rankin_Inlet',
94
+ 'America/Regina',
95
+ 'America/Swift_Current',
96
+ 'America/Edmonton',
97
+ 'America/Cambridge_Bay',
98
+ 'America/Yellowknife',
99
+ 'America/Inuvik',
100
+ 'America/Creston',
101
+ 'America/Dawson_Creek',
102
+ 'America/Fort_Nelson',
103
+ 'America/Vancouver',
104
+ 'America/Whitehorse',
105
+ 'America/Dawson',
106
+ 'Indian/Cocos',
107
+ 'Europe/Zurich',
108
+ 'Africa/Abidjan',
109
+ 'Pacific/Rarotonga',
110
+ 'America/Santiago',
111
+ 'America/Punta_Arenas',
112
+ 'Pacific/Easter',
113
+ 'Asia/Shanghai',
114
+ 'Asia/Urumqi',
115
+ 'America/Bogota',
116
+ 'America/Costa_Rica',
117
+ 'America/Havana',
118
+ 'Atlantic/Cape_Verde',
119
+ 'America/Curacao',
120
+ 'Indian/Christmas',
121
+ 'Asia/Nicosia',
122
+ 'Asia/Famagusta',
123
+ 'Europe/Prague',
124
+ 'Europe/Berlin',
125
+ 'Europe/Copenhagen',
126
+ 'America/Santo_Domingo',
127
+ 'Africa/Algiers',
128
+ 'America/Guayaquil',
129
+ 'Pacific/Galapagos',
130
+ 'Europe/Tallinn',
131
+ 'Africa/Cairo',
132
+ 'Africa/El_Aaiun',
133
+ 'Europe/Madrid',
134
+ 'Africa/Ceuta',
135
+ 'Atlantic/Canary',
136
+ 'Europe/Helsinki',
137
+ 'Pacific/Fiji',
138
+ 'Atlantic/Stanley',
139
+ 'Pacific/Chuuk',
140
+ 'Pacific/Pohnpei',
141
+ 'Pacific/Kosrae',
142
+ 'Atlantic/Faroe',
143
+ 'Europe/Paris',
144
+ 'Europe/London',
145
+ 'Asia/Tbilisi',
146
+ 'America/Cayenne',
147
+ 'Africa/Accra',
148
+ 'Europe/Gibraltar',
149
+ 'America/Godthab',
150
+ 'America/Danmarkshavn',
151
+ 'America/Scoresbysund',
152
+ 'America/Thule',
153
+ 'Europe/Athens',
154
+ 'Atlantic/South_Georgia',
155
+ 'America/Guatemala',
156
+ 'Pacific/Guam',
157
+ 'Africa/Bissau',
158
+ 'America/Guyana',
159
+ 'Asia/Hong_Kong',
160
+ 'America/Tegucigalpa',
161
+ 'America/Port-au-Prince',
162
+ 'Europe/Budapest',
163
+ 'Asia/Jakarta',
164
+ 'Asia/Pontianak',
165
+ 'Asia/Makassar',
166
+ 'Asia/Jayapura',
167
+ 'Europe/Dublin',
168
+ 'Asia/Jerusalem',
169
+ 'Asia/Kolkata',
170
+ 'Indian/Chagos',
171
+ 'Asia/Baghdad',
172
+ 'Asia/Tehran',
173
+ 'Atlantic/Reykjavik',
174
+ 'Europe/Rome',
175
+ 'America/Jamaica',
176
+ 'Asia/Amman',
177
+ 'Asia/Tokyo',
178
+ 'Africa/Nairobi',
179
+ 'Asia/Bishkek',
180
+ 'Pacific/Tarawa',
181
+ 'Pacific/Enderbury',
182
+ 'Pacific/Kiritimati',
183
+ 'Asia/Pyongyang',
184
+ 'Asia/Seoul',
185
+ 'Asia/Almaty',
186
+ 'Asia/Qyzylorda',
187
+ 'Asia/Qostanay',
188
+ 'Asia/Aqtau',
189
+ 'Asia/Atyrau',
190
+ 'Asia/Oral',
191
+ 'Asia/Beirut',
192
+ 'Asia/Colombo',
193
+ 'Africa/Monrovia',
194
+ 'Europe/Vilnius',
195
+ 'Europe/Luxembourg',
196
+ 'Europe/Riga',
197
+ 'Africa/Tripoli',
198
+ 'Africa/Casablanca',
199
+ 'Europe/Monaco',
200
+ 'Europe/Chisinau',
201
+ 'Pacific/Majuro',
202
+ 'Pacific/Kwajalein',
203
+ 'Asia/Yangon',
204
+ 'Asia/Ulaanbaatar',
205
+ 'Asia/Hovd',
206
+ 'Asia/Choibalsan',
207
+ 'Asia/Macau',
208
+ 'America/Martinique',
209
+ 'Europe/Malta',
210
+ 'Indian/Mauritius',
211
+ 'Indian/Maldives',
212
+ 'America/Mexico_City',
213
+ 'America/Cancun',
214
+ 'America/Merida',
215
+ 'America/Monterrey',
216
+ 'America/Matamoros',
217
+ 'America/Mazatlan',
218
+ 'America/Chihuahua',
219
+ 'America/Ojinaga',
220
+ 'America/Hermosillo',
221
+ 'America/Tijuana',
222
+ 'America/Bahia_Banderas',
223
+ 'Asia/Kuala_Lumpur',
224
+ 'Asia/Kuching',
225
+ 'Africa/Maputo',
226
+ 'Africa/Windhoek',
227
+ 'Pacific/Noumea',
228
+ 'Pacific/Norfolk',
229
+ 'Africa/Lagos',
230
+ 'America/Managua',
231
+ 'Europe/Amsterdam',
232
+ 'Europe/Oslo',
233
+ 'Asia/Kathmandu',
234
+ 'Pacific/Nauru',
235
+ 'Pacific/Niue',
236
+ 'Pacific/Auckland',
237
+ 'Pacific/Chatham',
238
+ 'America/Panama',
239
+ 'America/Lima',
240
+ 'Pacific/Tahiti',
241
+ 'Pacific/Marquesas',
242
+ 'Pacific/Gambier',
243
+ 'Pacific/Port_Moresby',
244
+ 'Pacific/Bougainville',
245
+ 'Asia/Manila',
246
+ 'Asia/Karachi',
247
+ 'Europe/Warsaw',
248
+ 'America/Miquelon',
249
+ 'Pacific/Pitcairn',
250
+ 'America/Puerto_Rico',
251
+ 'Asia/Gaza',
252
+ 'Asia/Hebron',
253
+ 'Europe/Lisbon',
254
+ 'Atlantic/Madeira',
255
+ 'Atlantic/Azores',
256
+ 'Pacific/Palau',
257
+ 'America/Asuncion',
258
+ 'Asia/Qatar',
259
+ 'Indian/Reunion',
260
+ 'Europe/Bucharest',
261
+ 'Europe/Belgrade',
262
+ 'Europe/Kaliningrad',
263
+ 'Europe/Moscow',
264
+ 'Europe/Simferopol',
265
+ 'Europe/Kirov',
266
+ 'Europe/Astrakhan',
267
+ 'Europe/Volgograd',
268
+ 'Europe/Saratov',
269
+ 'Europe/Ulyanovsk',
270
+ 'Europe/Samara',
271
+ 'Asia/Yekaterinburg',
272
+ 'Asia/Omsk',
273
+ 'Asia/Novosibirsk',
274
+ 'Asia/Barnaul',
275
+ 'Asia/Tomsk',
276
+ 'Asia/Novokuznetsk',
277
+ 'Asia/Krasnoyarsk',
278
+ 'Asia/Irkutsk',
279
+ 'Asia/Chita',
280
+ 'Asia/Yakutsk',
281
+ 'Asia/Khandyga',
282
+ 'Asia/Vladivostok',
283
+ 'Asia/Ust-Nera',
284
+ 'Asia/Magadan',
285
+ 'Asia/Sakhalin',
286
+ 'Asia/Srednekolymsk',
287
+ 'Asia/Kamchatka',
288
+ 'Asia/Anadyr',
289
+ 'Asia/Riyadh',
290
+ 'Pacific/Guadalcanal',
291
+ 'Indian/Mahe',
292
+ 'Africa/Khartoum',
293
+ 'Europe/Stockholm',
294
+ 'Asia/Singapore',
295
+ 'America/Paramaribo',
296
+ 'Africa/Juba',
297
+ 'Africa/Sao_Tome',
298
+ 'America/El_Salvador',
299
+ 'Asia/Damascus',
300
+ 'America/Grand_Turk',
301
+ 'Africa/Ndjamena',
302
+ 'Indian/Kerguelen',
303
+ 'Asia/Bangkok',
304
+ 'Asia/Dushanbe',
305
+ 'Pacific/Fakaofo',
306
+ 'Asia/Dili',
307
+ 'Asia/Ashgabat',
308
+ 'Africa/Tunis',
309
+ 'Pacific/Tongatapu',
310
+ 'Europe/Istanbul',
311
+ 'America/Port_of_Spain',
312
+ 'Pacific/Funafuti',
313
+ 'Asia/Taipei',
314
+ 'Europe/Kiev',
315
+ 'Europe/Uzhgorod',
316
+ 'Europe/Zaporozhye',
317
+ 'Pacific/Wake',
318
+ 'America/New_York',
319
+ 'America/Detroit',
320
+ 'America/Kentucky/Louisville',
321
+ 'America/Kentucky/Monticello',
322
+ 'America/Indiana/Indianapolis',
323
+ 'America/Indiana/Vincennes',
324
+ 'America/Indiana/Winamac',
325
+ 'America/Indiana/Marengo',
326
+ 'America/Indiana/Petersburg',
327
+ 'America/Indiana/Vevay',
328
+ 'America/Chicago',
329
+ 'America/Indiana/Tell_City',
330
+ 'America/Indiana/Knox',
331
+ 'America/Menominee',
332
+ 'America/North_Dakota/Center',
333
+ 'America/North_Dakota/New_Salem',
334
+ 'America/North_Dakota/Beulah',
335
+ 'America/Denver',
336
+ 'America/Boise',
337
+ 'America/Phoenix',
338
+ 'America/Los_Angeles',
339
+ 'America/Anchorage',
340
+ 'America/Juneau',
341
+ 'America/Sitka',
342
+ 'America/Metlakatla',
343
+ 'America/Yakutat',
344
+ 'America/Nome',
345
+ 'America/Adak',
346
+ 'Pacific/Honolulu',
347
+ 'America/Montevideo',
348
+ 'Asia/Samarkand',
349
+ 'Asia/Tashkent',
350
+ 'America/Caracas',
351
+ 'Asia/Ho_Chi_Minh',
352
+ 'Pacific/Efate',
353
+ 'Pacific/Wallis',
354
+ 'Pacific/Apia',
355
+ 'Africa/Johannesburg'
356
+ ];
357
+ //# sourceMappingURL=timezones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezones.js","sourceRoot":"","sources":["../../../src/nile-timestamp-builder/timezones.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2026\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\n/** Bundled IANA timezone identifiers used as the offline fallback */\nexport const TIMEZONES = [\n 'Europe/Andorra',\n 'Asia/Dubai',\n 'Asia/Kabul',\n 'Europe/Tirane',\n 'Asia/Yerevan',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Salta',\n 'America/Argentina/Jujuy',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Catamarca',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/San_Juan',\n 'America/Argentina/Mendoza',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Ushuaia',\n 'Pacific/Pago_Pago',\n 'Europe/Vienna',\n 'Australia/Lord_Howe',\n 'Antarctica/Macquarie',\n 'Australia/Hobart',\n 'Australia/Currie',\n 'Australia/Melbourne',\n 'Australia/Sydney',\n 'Australia/Broken_Hill',\n 'Australia/Brisbane',\n 'Australia/Lindeman',\n 'Australia/Adelaide',\n 'Australia/Darwin',\n 'Australia/Perth',\n 'Australia/Eucla',\n 'Asia/Baku',\n 'America/Barbados',\n 'Asia/Dhaka',\n 'Europe/Brussels',\n 'Europe/Sofia',\n 'Atlantic/Bermuda',\n 'Asia/Brunei',\n 'America/La_Paz',\n 'America/Noronha',\n 'America/Belem',\n 'America/Fortaleza',\n 'America/Recife',\n 'America/Araguaina',\n 'America/Maceio',\n 'America/Bahia',\n 'America/Sao_Paulo',\n 'America/Campo_Grande',\n 'America/Cuiaba',\n 'America/Santarem',\n 'America/Porto_Velho',\n 'America/Boa_Vista',\n 'America/Manaus',\n 'America/Eirunepe',\n 'America/Rio_Branco',\n 'America/Nassau',\n 'Asia/Thimphu',\n 'Europe/Minsk',\n 'America/Belize',\n 'America/St_Johns',\n 'America/Halifax',\n 'America/Glace_Bay',\n 'America/Moncton',\n 'America/Goose_Bay',\n 'America/Blanc-Sablon',\n 'America/Toronto',\n 'America/Nipigon',\n 'America/Thunder_Bay',\n 'America/Iqaluit',\n 'America/Pangnirtung',\n 'America/Atikokan',\n 'America/Winnipeg',\n 'America/Rainy_River',\n 'America/Resolute',\n 'America/Rankin_Inlet',\n 'America/Regina',\n 'America/Swift_Current',\n 'America/Edmonton',\n 'America/Cambridge_Bay',\n 'America/Yellowknife',\n 'America/Inuvik',\n 'America/Creston',\n 'America/Dawson_Creek',\n 'America/Fort_Nelson',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Dawson',\n 'Indian/Cocos',\n 'Europe/Zurich',\n 'Africa/Abidjan',\n 'Pacific/Rarotonga',\n 'America/Santiago',\n 'America/Punta_Arenas',\n 'Pacific/Easter',\n 'Asia/Shanghai',\n 'Asia/Urumqi',\n 'America/Bogota',\n 'America/Costa_Rica',\n 'America/Havana',\n 'Atlantic/Cape_Verde',\n 'America/Curacao',\n 'Indian/Christmas',\n 'Asia/Nicosia',\n 'Asia/Famagusta',\n 'Europe/Prague',\n 'Europe/Berlin',\n 'Europe/Copenhagen',\n 'America/Santo_Domingo',\n 'Africa/Algiers',\n 'America/Guayaquil',\n 'Pacific/Galapagos',\n 'Europe/Tallinn',\n 'Africa/Cairo',\n 'Africa/El_Aaiun',\n 'Europe/Madrid',\n 'Africa/Ceuta',\n 'Atlantic/Canary',\n 'Europe/Helsinki',\n 'Pacific/Fiji',\n 'Atlantic/Stanley',\n 'Pacific/Chuuk',\n 'Pacific/Pohnpei',\n 'Pacific/Kosrae',\n 'Atlantic/Faroe',\n 'Europe/Paris',\n 'Europe/London',\n 'Asia/Tbilisi',\n 'America/Cayenne',\n 'Africa/Accra',\n 'Europe/Gibraltar',\n 'America/Godthab',\n 'America/Danmarkshavn',\n 'America/Scoresbysund',\n 'America/Thule',\n 'Europe/Athens',\n 'Atlantic/South_Georgia',\n 'America/Guatemala',\n 'Pacific/Guam',\n 'Africa/Bissau',\n 'America/Guyana',\n 'Asia/Hong_Kong',\n 'America/Tegucigalpa',\n 'America/Port-au-Prince',\n 'Europe/Budapest',\n 'Asia/Jakarta',\n 'Asia/Pontianak',\n 'Asia/Makassar',\n 'Asia/Jayapura',\n 'Europe/Dublin',\n 'Asia/Jerusalem',\n 'Asia/Kolkata',\n 'Indian/Chagos',\n 'Asia/Baghdad',\n 'Asia/Tehran',\n 'Atlantic/Reykjavik',\n 'Europe/Rome',\n 'America/Jamaica',\n 'Asia/Amman',\n 'Asia/Tokyo',\n 'Africa/Nairobi',\n 'Asia/Bishkek',\n 'Pacific/Tarawa',\n 'Pacific/Enderbury',\n 'Pacific/Kiritimati',\n 'Asia/Pyongyang',\n 'Asia/Seoul',\n 'Asia/Almaty',\n 'Asia/Qyzylorda',\n 'Asia/Qostanay',\n 'Asia/Aqtau',\n 'Asia/Atyrau',\n 'Asia/Oral',\n 'Asia/Beirut',\n 'Asia/Colombo',\n 'Africa/Monrovia',\n 'Europe/Vilnius',\n 'Europe/Luxembourg',\n 'Europe/Riga',\n 'Africa/Tripoli',\n 'Africa/Casablanca',\n 'Europe/Monaco',\n 'Europe/Chisinau',\n 'Pacific/Majuro',\n 'Pacific/Kwajalein',\n 'Asia/Yangon',\n 'Asia/Ulaanbaatar',\n 'Asia/Hovd',\n 'Asia/Choibalsan',\n 'Asia/Macau',\n 'America/Martinique',\n 'Europe/Malta',\n 'Indian/Mauritius',\n 'Indian/Maldives',\n 'America/Mexico_City',\n 'America/Cancun',\n 'America/Merida',\n 'America/Monterrey',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Chihuahua',\n 'America/Ojinaga',\n 'America/Hermosillo',\n 'America/Tijuana',\n 'America/Bahia_Banderas',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Africa/Maputo',\n 'Africa/Windhoek',\n 'Pacific/Noumea',\n 'Pacific/Norfolk',\n 'Africa/Lagos',\n 'America/Managua',\n 'Europe/Amsterdam',\n 'Europe/Oslo',\n 'Asia/Kathmandu',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Auckland',\n 'Pacific/Chatham',\n 'America/Panama',\n 'America/Lima',\n 'Pacific/Tahiti',\n 'Pacific/Marquesas',\n 'Pacific/Gambier',\n 'Pacific/Port_Moresby',\n 'Pacific/Bougainville',\n 'Asia/Manila',\n 'Asia/Karachi',\n 'Europe/Warsaw',\n 'America/Miquelon',\n 'Pacific/Pitcairn',\n 'America/Puerto_Rico',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Europe/Lisbon',\n 'Atlantic/Madeira',\n 'Atlantic/Azores',\n 'Pacific/Palau',\n 'America/Asuncion',\n 'Asia/Qatar',\n 'Indian/Reunion',\n 'Europe/Bucharest',\n 'Europe/Belgrade',\n 'Europe/Kaliningrad',\n 'Europe/Moscow',\n 'Europe/Simferopol',\n 'Europe/Kirov',\n 'Europe/Astrakhan',\n 'Europe/Volgograd',\n 'Europe/Saratov',\n 'Europe/Ulyanovsk',\n 'Europe/Samara',\n 'Asia/Yekaterinburg',\n 'Asia/Omsk',\n 'Asia/Novosibirsk',\n 'Asia/Barnaul',\n 'Asia/Tomsk',\n 'Asia/Novokuznetsk',\n 'Asia/Krasnoyarsk',\n 'Asia/Irkutsk',\n 'Asia/Chita',\n 'Asia/Yakutsk',\n 'Asia/Khandyga',\n 'Asia/Vladivostok',\n 'Asia/Ust-Nera',\n 'Asia/Magadan',\n 'Asia/Sakhalin',\n 'Asia/Srednekolymsk',\n 'Asia/Kamchatka',\n 'Asia/Anadyr',\n 'Asia/Riyadh',\n 'Pacific/Guadalcanal',\n 'Indian/Mahe',\n 'Africa/Khartoum',\n 'Europe/Stockholm',\n 'Asia/Singapore',\n 'America/Paramaribo',\n 'Africa/Juba',\n 'Africa/Sao_Tome',\n 'America/El_Salvador',\n 'Asia/Damascus',\n 'America/Grand_Turk',\n 'Africa/Ndjamena',\n 'Indian/Kerguelen',\n 'Asia/Bangkok',\n 'Asia/Dushanbe',\n 'Pacific/Fakaofo',\n 'Asia/Dili',\n 'Asia/Ashgabat',\n 'Africa/Tunis',\n 'Pacific/Tongatapu',\n 'Europe/Istanbul',\n 'America/Port_of_Spain',\n 'Pacific/Funafuti',\n 'Asia/Taipei',\n 'Europe/Kiev',\n 'Europe/Uzhgorod',\n 'Europe/Zaporozhye',\n 'Pacific/Wake',\n 'America/New_York',\n 'America/Detroit',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Vevay',\n 'America/Chicago',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Knox',\n 'America/Menominee',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/North_Dakota/Beulah',\n 'America/Denver',\n 'America/Boise',\n 'America/Phoenix',\n 'America/Los_Angeles',\n 'America/Anchorage',\n 'America/Juneau',\n 'America/Sitka',\n 'America/Metlakatla',\n 'America/Yakutat',\n 'America/Nome',\n 'America/Adak',\n 'Pacific/Honolulu',\n 'America/Montevideo',\n 'Asia/Samarkand',\n 'Asia/Tashkent',\n 'America/Caracas',\n 'Asia/Ho_Chi_Minh',\n 'Pacific/Efate',\n 'Pacific/Wallis',\n 'Pacific/Apia',\n 'Africa/Johannesburg'];\n"]}