@marinoscar/platform-web 0.1.0-next.16 → 0.1.0-next.18

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 (298) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +3 -2
  3. package/dist/ai/headless/schema-presets.js +1 -1
  4. package/dist/ai/headless/schema-presets.js.map +1 -1
  5. package/dist/ai/ui/AiConfigPage.d.ts.map +1 -1
  6. package/dist/ai/ui/AiConfigPage.js +3 -2
  7. package/dist/ai/ui/AiConfigPage.js.map +1 -1
  8. package/dist/ai/ui/AiModelsPage.d.ts.map +1 -1
  9. package/dist/ai/ui/AiModelsPage.js +4 -2
  10. package/dist/ai/ui/AiModelsPage.js.map +1 -1
  11. package/dist/ai/ui/OrgAiKeysPage.d.ts.map +1 -1
  12. package/dist/ai/ui/OrgAiKeysPage.js +3 -2
  13. package/dist/ai/ui/OrgAiKeysPage.js.map +1 -1
  14. package/dist/ai/ui/admin/AiGenericProviderCard.d.ts.map +1 -1
  15. package/dist/ai/ui/admin/AiGenericProviderCard.js +2 -0
  16. package/dist/ai/ui/admin/AiGenericProviderCard.js.map +1 -1
  17. package/dist/ai/ui/admin/AiProviderCard.d.ts.map +1 -1
  18. package/dist/ai/ui/admin/AiProviderCard.js +2 -0
  19. package/dist/ai/ui/admin/AiProviderCard.js.map +1 -1
  20. package/dist/ai/ui/admin/AiProviderKeyActions.d.ts.map +1 -1
  21. package/dist/ai/ui/admin/AiProviderKeyActions.js +2 -1
  22. package/dist/ai/ui/admin/AiProviderKeyActions.js.map +1 -1
  23. package/dist/ai/ui/admin/aiModelColumns.d.ts.map +1 -1
  24. package/dist/ai/ui/admin/aiModelColumns.js +2 -1
  25. package/dist/ai/ui/admin/aiModelColumns.js.map +1 -1
  26. package/dist/ai/ui/user/UserAiKeyCard.d.ts.map +1 -1
  27. package/dist/ai/ui/user/UserAiKeyCard.js +6 -4
  28. package/dist/ai/ui/user/UserAiKeyCard.js.map +1 -1
  29. package/dist/android-app/ui/AndroidAppPage.d.ts.map +1 -1
  30. package/dist/android-app/ui/AndroidAppPage.js +3 -2
  31. package/dist/android-app/ui/AndroidAppPage.js.map +1 -1
  32. package/dist/core/host.d.ts +2 -2
  33. package/dist/core/host.js +2 -2
  34. package/dist/core/index.d.ts +3 -0
  35. package/dist/core/index.d.ts.map +1 -1
  36. package/dist/core/index.js +6 -0
  37. package/dist/core/index.js.map +1 -1
  38. package/dist/core/time-zone/format.d.ts +135 -0
  39. package/dist/core/time-zone/format.d.ts.map +1 -0
  40. package/dist/core/time-zone/format.js +228 -0
  41. package/dist/core/time-zone/format.js.map +1 -0
  42. package/dist/core/time-zone/store.d.ts +93 -0
  43. package/dist/core/time-zone/store.d.ts.map +1 -0
  44. package/dist/core/time-zone/store.js +170 -0
  45. package/dist/core/time-zone/store.js.map +1 -0
  46. package/dist/credentials/headless/saved-secret.d.ts +1 -1
  47. package/dist/credentials/headless/saved-secret.d.ts.map +1 -1
  48. package/dist/credentials/headless/saved-secret.js +2 -1
  49. package/dist/credentials/headless/saved-secret.js.map +1 -1
  50. package/dist/credentials/ui/secret-field.d.ts +1 -1
  51. package/dist/credentials/ui/secret-field.d.ts.map +1 -1
  52. package/dist/credentials/ui/secret-field.js +2 -0
  53. package/dist/credentials/ui/secret-field.js.map +1 -1
  54. package/dist/db-backup/internal/format.d.ts +4 -1
  55. package/dist/db-backup/internal/format.d.ts.map +1 -1
  56. package/dist/db-backup/internal/format.js +6 -2
  57. package/dist/db-backup/internal/format.js.map +1 -1
  58. package/dist/db-backup/ui/DbBackupConfigPanel.d.ts.map +1 -1
  59. package/dist/db-backup/ui/DbBackupConfigPanel.js +4 -1
  60. package/dist/db-backup/ui/DbBackupConfigPanel.js.map +1 -1
  61. package/dist/db-backup/ui/DbBackupPage.d.ts.map +1 -1
  62. package/dist/db-backup/ui/DbBackupPage.js +7 -4
  63. package/dist/db-backup/ui/DbBackupPage.js.map +1 -1
  64. package/dist/db-backup/ui/DbBackupRestoreDialog.d.ts.map +1 -1
  65. package/dist/db-backup/ui/DbBackupRestoreDialog.js +4 -1
  66. package/dist/db-backup/ui/DbBackupRestoreDialog.js.map +1 -1
  67. package/dist/email/ui/EmailSettingsPage.d.ts.map +1 -1
  68. package/dist/email/ui/EmailSettingsPage.js +3 -2
  69. package/dist/email/ui/EmailSettingsPage.js.map +1 -1
  70. package/dist/email/ui/SesTransportPanel.d.ts.map +1 -1
  71. package/dist/email/ui/SesTransportPanel.js +3 -1
  72. package/dist/email/ui/SesTransportPanel.js.map +1 -1
  73. package/dist/email/ui/SmtpTransportPanel.d.ts.map +1 -1
  74. package/dist/email/ui/SmtpTransportPanel.js +3 -1
  75. package/dist/email/ui/SmtpTransportPanel.js.map +1 -1
  76. package/dist/exports/ui/ExportsList.d.ts.map +1 -1
  77. package/dist/exports/ui/ExportsList.js +5 -2
  78. package/dist/exports/ui/ExportsList.js.map +1 -1
  79. package/dist/host/ui/about-page.d.ts.map +1 -1
  80. package/dist/host/ui/about-page.js +7 -5
  81. package/dist/host/ui/about-page.js.map +1 -1
  82. package/dist/host/ui/maintenance-page.d.ts.map +1 -1
  83. package/dist/host/ui/maintenance-page.js +3 -2
  84. package/dist/host/ui/maintenance-page.js.map +1 -1
  85. package/dist/identity/index.d.ts +1 -1
  86. package/dist/identity/index.d.ts.map +1 -1
  87. package/dist/identity/index.js +3 -2
  88. package/dist/identity/index.js.map +1 -1
  89. package/dist/identity/ui/org/OrgInvitesPanel.d.ts.map +1 -1
  90. package/dist/identity/ui/org/OrgInvitesPanel.js +2 -0
  91. package/dist/identity/ui/org/OrgInvitesPanel.js.map +1 -1
  92. package/dist/identity/ui/org/OrgMembersPanel.d.ts.map +1 -1
  93. package/dist/identity/ui/org/OrgMembersPanel.js +2 -0
  94. package/dist/identity/ui/org/OrgMembersPanel.js.map +1 -1
  95. package/dist/identity/ui/org/orgLabels.d.ts +1 -1
  96. package/dist/identity/ui/org/orgLabels.d.ts.map +1 -1
  97. package/dist/identity/ui/org/orgLabels.js +3 -5
  98. package/dist/identity/ui/org/orgLabels.js.map +1 -1
  99. package/dist/identity/ui/tokens/CreatePatDialog.d.ts.map +1 -1
  100. package/dist/identity/ui/tokens/CreatePatDialog.js +3 -1
  101. package/dist/identity/ui/tokens/CreatePatDialog.js.map +1 -1
  102. package/dist/identity/ui/tokens/PersonalAccessTokens.d.ts.map +1 -1
  103. package/dist/identity/ui/tokens/PersonalAccessTokens.js +4 -1
  104. package/dist/identity/ui/tokens/PersonalAccessTokens.js.map +1 -1
  105. package/dist/identity/ui/tokens/patColumns.d.ts.map +1 -1
  106. package/dist/identity/ui/tokens/patColumns.js +7 -5
  107. package/dist/identity/ui/tokens/patColumns.js.map +1 -1
  108. package/dist/identity/ui/users/AllowlistTable.d.ts.map +1 -1
  109. package/dist/identity/ui/users/AllowlistTable.js +4 -1
  110. package/dist/identity/ui/users/AllowlistTable.js.map +1 -1
  111. package/dist/identity/ui/users/UserList.d.ts.map +1 -1
  112. package/dist/identity/ui/users/UserList.js +4 -2
  113. package/dist/identity/ui/users/UserList.js.map +1 -1
  114. package/dist/identity/ui/users/allowlistColumns.d.ts.map +1 -1
  115. package/dist/identity/ui/users/allowlistColumns.js +5 -3
  116. package/dist/identity/ui/users/allowlistColumns.js.map +1 -1
  117. package/dist/identity/ui/users/userListColumns.d.ts.map +1 -1
  118. package/dist/identity/ui/users/userListColumns.js +5 -3
  119. package/dist/identity/ui/users/userListColumns.js.map +1 -1
  120. package/dist/jobs/headless/format.d.ts +4 -1
  121. package/dist/jobs/headless/format.d.ts.map +1 -1
  122. package/dist/jobs/headless/format.js +6 -2
  123. package/dist/jobs/headless/format.js.map +1 -1
  124. package/dist/jobs/ui/JobInsightsPage.d.ts.map +1 -1
  125. package/dist/jobs/ui/JobInsightsPage.js +2 -1
  126. package/dist/jobs/ui/JobInsightsPage.js.map +1 -1
  127. package/dist/jobs/ui/JobsPage.d.ts.map +1 -1
  128. package/dist/jobs/ui/JobsPage.js +4 -2
  129. package/dist/jobs/ui/JobsPage.js.map +1 -1
  130. package/dist/nodes/headless/format.d.ts +4 -1
  131. package/dist/nodes/headless/format.d.ts.map +1 -1
  132. package/dist/nodes/headless/format.js +6 -2
  133. package/dist/nodes/headless/format.js.map +1 -1
  134. package/dist/nodes/ui/NodeCredentialRevealDialog.d.ts.map +1 -1
  135. package/dist/nodes/ui/NodeCredentialRevealDialog.js +3 -1
  136. package/dist/nodes/ui/NodeCredentialRevealDialog.js.map +1 -1
  137. package/dist/nodes/ui/NodeCredentials.d.ts.map +1 -1
  138. package/dist/nodes/ui/NodeCredentials.js +4 -1
  139. package/dist/nodes/ui/NodeCredentials.js.map +1 -1
  140. package/dist/nodes/ui/NodeVitalsDialog.d.ts.map +1 -1
  141. package/dist/nodes/ui/NodeVitalsDialog.js +2 -0
  142. package/dist/nodes/ui/NodeVitalsDialog.js.map +1 -1
  143. package/dist/nodes/ui/WorkersPage.d.ts.map +1 -1
  144. package/dist/nodes/ui/WorkersPage.js +4 -2
  145. package/dist/nodes/ui/WorkersPage.js.map +1 -1
  146. package/dist/notifications/headless/broadcasts.d.ts +26 -17
  147. package/dist/notifications/headless/broadcasts.d.ts.map +1 -1
  148. package/dist/notifications/headless/broadcasts.js +76 -36
  149. package/dist/notifications/headless/broadcasts.js.map +1 -1
  150. package/dist/notifications/ui/BroadcastComposer.d.ts.map +1 -1
  151. package/dist/notifications/ui/BroadcastComposer.js +11 -6
  152. package/dist/notifications/ui/BroadcastComposer.js.map +1 -1
  153. package/dist/notifications/ui/BroadcastDetailDialog.d.ts.map +1 -1
  154. package/dist/notifications/ui/BroadcastDetailDialog.js +2 -0
  155. package/dist/notifications/ui/BroadcastDetailDialog.js.map +1 -1
  156. package/dist/notifications/ui/BroadcastsPage.d.ts.map +1 -1
  157. package/dist/notifications/ui/BroadcastsPage.js +4 -2
  158. package/dist/notifications/ui/BroadcastsPage.js.map +1 -1
  159. package/dist/notifications/ui/NotificationBell.d.ts.map +1 -1
  160. package/dist/notifications/ui/NotificationBell.js +3 -1
  161. package/dist/notifications/ui/NotificationBell.js.map +1 -1
  162. package/dist/notifications/ui/PushConfigPage.d.ts.map +1 -1
  163. package/dist/notifications/ui/PushConfigPage.js +4 -3
  164. package/dist/notifications/ui/PushConfigPage.js.map +1 -1
  165. package/dist/notifications/ui/PushTestPanel.d.ts.map +1 -1
  166. package/dist/notifications/ui/PushTestPanel.js +6 -3
  167. package/dist/notifications/ui/PushTestPanel.js.map +1 -1
  168. package/dist/notifications/ui/SystemSettingsSection.d.ts.map +1 -1
  169. package/dist/notifications/ui/SystemSettingsSection.js +3 -2
  170. package/dist/notifications/ui/SystemSettingsSection.js.map +1 -1
  171. package/dist/notifications/ui/broadcastsTable.d.ts +4 -1
  172. package/dist/notifications/ui/broadcastsTable.d.ts.map +1 -1
  173. package/dist/notifications/ui/broadcastsTable.js +6 -2
  174. package/dist/notifications/ui/broadcastsTable.js.map +1 -1
  175. package/dist/settings/headless/use-user-settings.d.ts +7 -0
  176. package/dist/settings/headless/use-user-settings.d.ts.map +1 -1
  177. package/dist/settings/headless/use-user-settings.js +12 -4
  178. package/dist/settings/headless/use-user-settings.js.map +1 -1
  179. package/dist/settings/ui/ProfileSettings.d.ts +13 -4
  180. package/dist/settings/ui/ProfileSettings.d.ts.map +1 -1
  181. package/dist/settings/ui/ProfileSettings.js +15 -2
  182. package/dist/settings/ui/ProfileSettings.js.map +1 -1
  183. package/dist/settings/ui/UserProfilePage.d.ts +2 -2
  184. package/dist/settings/ui/UserProfilePage.js +3 -3
  185. package/dist/settings/ui/UserProfilePage.js.map +1 -1
  186. package/dist/settings/ui/UserSettingsSection.d.ts +5 -2
  187. package/dist/settings/ui/UserSettingsSection.d.ts.map +1 -1
  188. package/dist/settings/ui/UserSettingsSection.js.map +1 -1
  189. package/dist/sharing/internal/format.d.ts +1 -0
  190. package/dist/sharing/internal/format.d.ts.map +1 -1
  191. package/dist/sharing/internal/format.js +3 -6
  192. package/dist/sharing/internal/format.js.map +1 -1
  193. package/dist/sharing/ui/GroupDetailPage.d.ts.map +1 -1
  194. package/dist/sharing/ui/GroupDetailPage.js +2 -0
  195. package/dist/sharing/ui/GroupDetailPage.js.map +1 -1
  196. package/dist/sharing/ui/PendingGroupInvites.d.ts.map +1 -1
  197. package/dist/sharing/ui/PendingGroupInvites.js +2 -0
  198. package/dist/sharing/ui/PendingGroupInvites.js.map +1 -1
  199. package/dist/sharing/ui/ShareDialog.d.ts.map +1 -1
  200. package/dist/sharing/ui/ShareDialog.js +2 -0
  201. package/dist/sharing/ui/ShareDialog.js.map +1 -1
  202. package/dist/sharing/ui/SharedWithMeList.d.ts.map +1 -1
  203. package/dist/sharing/ui/SharedWithMeList.js +2 -0
  204. package/dist/sharing/ui/SharedWithMeList.js.map +1 -1
  205. package/dist/storage/ui/S3FamilyDriverPanel.d.ts.map +1 -1
  206. package/dist/storage/ui/S3FamilyDriverPanel.js +3 -1
  207. package/dist/storage/ui/S3FamilyDriverPanel.js.map +1 -1
  208. package/dist/storage/ui/StorageConfigPage.d.ts.map +1 -1
  209. package/dist/storage/ui/StorageConfigPage.js +3 -2
  210. package/dist/storage/ui/StorageConfigPage.js.map +1 -1
  211. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +1 -1
  212. package/dist/telemetry/headless/lib/format.d.ts +4 -2
  213. package/dist/telemetry/headless/lib/format.d.ts.map +1 -1
  214. package/dist/telemetry/headless/lib/format.js +8 -6
  215. package/dist/telemetry/headless/lib/format.js.map +1 -1
  216. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -1
  217. package/dist/telemetry/ui/components/TelemetryConnectionSection.js +3 -1
  218. package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -1
  219. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -1
  220. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +2 -0
  221. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -1
  222. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -1
  223. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +2 -0
  224. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -1
  225. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -1
  226. package/dist/telemetry/ui/components/dashboard/EventsFeed.js +3 -0
  227. package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -1
  228. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -1
  229. package/dist/telemetry/ui/components/dashboard/KpiTiles.js +2 -0
  230. package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -1
  231. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -1
  232. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +2 -0
  233. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -1
  234. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -1
  235. package/dist/telemetry/ui/components/dashboard/TopProblems.js +2 -0
  236. package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -1
  237. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -1
  238. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +2 -0
  239. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -1
  240. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -1
  241. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +2 -0
  242. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -1
  243. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -1
  244. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +3 -2
  245. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -1
  246. package/dist/timezone/headless/catalog.d.ts +82 -0
  247. package/dist/timezone/headless/catalog.d.ts.map +1 -0
  248. package/dist/timezone/headless/catalog.js +192 -0
  249. package/dist/timezone/headless/catalog.js.map +1 -0
  250. package/dist/timezone/headless/format.d.ts +3 -0
  251. package/dist/timezone/headless/format.d.ts.map +1 -0
  252. package/dist/timezone/headless/format.js +5 -0
  253. package/dist/timezone/headless/format.js.map +1 -0
  254. package/dist/timezone/headless/index.d.ts +10 -0
  255. package/dist/timezone/headless/index.d.ts.map +1 -0
  256. package/dist/timezone/headless/index.js +10 -0
  257. package/dist/timezone/headless/index.js.map +1 -0
  258. package/dist/timezone/headless/map-data.d.ts +13 -0
  259. package/dist/timezone/headless/map-data.d.ts.map +1 -0
  260. package/dist/timezone/headless/map-data.js +530 -0
  261. package/dist/timezone/headless/map-data.js.map +1 -0
  262. package/dist/timezone/headless/map-geometry.d.ts +77 -0
  263. package/dist/timezone/headless/map-geometry.d.ts.map +1 -0
  264. package/dist/timezone/headless/map-geometry.js +104 -0
  265. package/dist/timezone/headless/map-geometry.js.map +1 -0
  266. package/dist/timezone/headless/store.d.ts +2 -0
  267. package/dist/timezone/headless/store.d.ts.map +1 -0
  268. package/dist/timezone/headless/store.js +6 -0
  269. package/dist/timezone/headless/store.js.map +1 -0
  270. package/dist/timezone/headless/sync.d.ts +39 -0
  271. package/dist/timezone/headless/sync.d.ts.map +1 -0
  272. package/dist/timezone/headless/sync.js +66 -0
  273. package/dist/timezone/headless/sync.js.map +1 -0
  274. package/dist/timezone/index.d.ts +4 -0
  275. package/dist/timezone/index.d.ts.map +1 -0
  276. package/dist/timezone/index.js +11 -0
  277. package/dist/timezone/index.js.map +1 -0
  278. package/dist/timezone/internal/use-now.d.ts +3 -0
  279. package/dist/timezone/internal/use-now.d.ts.map +1 -0
  280. package/dist/timezone/internal/use-now.js +13 -0
  281. package/dist/timezone/internal/use-now.js.map +1 -0
  282. package/dist/timezone/ui/TimeZoneField.d.ts +33 -0
  283. package/dist/timezone/ui/TimeZoneField.d.ts.map +1 -0
  284. package/dist/timezone/ui/TimeZoneField.js +50 -0
  285. package/dist/timezone/ui/TimeZoneField.js.map +1 -0
  286. package/dist/timezone/ui/TimeZoneMap.d.ts +38 -0
  287. package/dist/timezone/ui/TimeZoneMap.d.ts.map +1 -0
  288. package/dist/timezone/ui/TimeZoneMap.js +231 -0
  289. package/dist/timezone/ui/TimeZoneMap.js.map +1 -0
  290. package/dist/timezone/ui/TimeZonePickerDialog.d.ts +34 -0
  291. package/dist/timezone/ui/TimeZonePickerDialog.d.ts.map +1 -0
  292. package/dist/timezone/ui/TimeZonePickerDialog.js +85 -0
  293. package/dist/timezone/ui/TimeZonePickerDialog.js.map +1 -0
  294. package/dist/timezone/ui/index.d.ts +7 -0
  295. package/dist/timezone/ui/index.d.ts.map +1 -0
  296. package/dist/timezone/ui/index.js +7 -0
  297. package/dist/timezone/ui/index.js.map +1 -0
  298. package/package.json +10 -2
@@ -0,0 +1,192 @@
1
+ // The zone catalog: every zone of the map (tzdata zone.tab, ZONE_PINS) plus
2
+ // UTC, with its city, region, country, coordinates and current offset, and the
3
+ // two lookups the picker needs (search, nearest pin). Imports the generated map
4
+ // data, so only the picker pulls it; the formatters do not.
5
+ import { isValidTimeZone } from '@marinoscar/platform-contract/settings';
6
+ import { formatUtcOffset, getTimeZoneOffsetMinutes } from './format.js';
7
+ import { ZONE_PINS } from './map-data.js';
8
+ let regionNames;
9
+ function countryNameOf(code) {
10
+ if (!code)
11
+ return null;
12
+ if (regionNames === undefined) {
13
+ try {
14
+ regionNames = new Intl.DisplayNames(['en'], { type: 'region' });
15
+ }
16
+ catch {
17
+ regionNames = null;
18
+ }
19
+ }
20
+ try {
21
+ return regionNames?.of(code) ?? null;
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ function cityOf(id) {
28
+ const segments = id.split('/');
29
+ return (segments[segments.length - 1] ?? id).replace(/_/g, ' ');
30
+ }
31
+ function regionOf(id) {
32
+ return id.includes('/') ? (id.split('/')[0] ?? '') : '';
33
+ }
34
+ const PINS_BY_ID = new Map(ZONE_PINS.map((pin) => [pin[0], pin]));
35
+ function optionOf(id, at, pin = PINS_BY_ID.get(id)) {
36
+ const offsetMinutes = getTimeZoneOffsetMinutes(id, at);
37
+ const countryCode = pin?.[1] ?? null;
38
+ return {
39
+ id,
40
+ city: id === 'UTC' ? 'UTC' : cityOf(id),
41
+ region: id === 'UTC' ? '' : regionOf(id),
42
+ countryCode,
43
+ countryName: id === 'UTC' ? 'Coordinated Universal Time' : countryNameOf(countryCode),
44
+ lat: pin?.[2] ?? null,
45
+ lon: pin?.[3] ?? null,
46
+ offsetMinutes,
47
+ offsetLabel: formatUtcOffset(offsetMinutes),
48
+ };
49
+ }
50
+ let listCache = null;
51
+ /**
52
+ * Every zone of the map plus `UTC`, sorted by offset, then city. Offsets are
53
+ * those at `at` (daylight saving time applies); the list is cached per hour.
54
+ *
55
+ * @param at - the moment the offsets are computed for; default now.
56
+ * @returns the options.
57
+ *
58
+ * @stability experimental
59
+ */
60
+ export function listTimeZones(at = new Date()) {
61
+ const hour = Math.floor(at.getTime() / 3_600_000);
62
+ if (listCache?.hour === hour)
63
+ return listCache.options;
64
+ const options = [optionOf('UTC', at), ...ZONE_PINS.map(([id]) => optionOf(id, at))];
65
+ options.sort((a, b) => a.offsetMinutes - b.offsetMinutes || a.city.localeCompare(b.city));
66
+ listCache = { hour, options };
67
+ return options;
68
+ }
69
+ function canonicalOf(id) {
70
+ try {
71
+ return new Intl.DateTimeFormat('en-US', { timeZone: id }).resolvedOptions().timeZone;
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ /**
78
+ * The option of one zone. A valid zone the map has no pin for (a link such as
79
+ * `US/Eastern`, or `America/Indiana/Knox`) still gets one: with the pin of its
80
+ * canonical zone when the runtime names one, else without coordinates.
81
+ *
82
+ * @param id - an IANA zone id.
83
+ * @param at - the moment the offset is computed for; default now.
84
+ * @returns the option, or `null` for an unknown id.
85
+ *
86
+ * @stability experimental
87
+ */
88
+ export function findTimeZone(id, at = new Date()) {
89
+ if (!isValidTimeZone(id))
90
+ return null;
91
+ const listed = listTimeZones(at).find((option) => option.id === id);
92
+ if (listed)
93
+ return listed;
94
+ const canonical = canonicalOf(id);
95
+ return optionOf(id, at, canonical ? PINS_BY_ID.get(canonical) : undefined);
96
+ }
97
+ /** `+5:30`, `-6`, `+05:30`: the offset spellings a search may use. */
98
+ function offsetQueries(minutes) {
99
+ const sign = minutes < 0 ? '-' : '+';
100
+ const abs = Math.abs(minutes);
101
+ const h = Math.floor(abs / 60);
102
+ const m = abs % 60;
103
+ const mm = String(m).padStart(2, '0');
104
+ const hh = String(h).padStart(2, '0');
105
+ const forms = [`${sign}${h}:${mm}`, `${sign}${hh}:${mm}`, `${sign}${hh}${mm}`];
106
+ if (m === 0)
107
+ forms.push(`${sign}${h}`, `${sign}${hh}`);
108
+ if (minutes === 0)
109
+ forms.push('', '+0', '-0', '0');
110
+ return forms;
111
+ }
112
+ function normalize(text) {
113
+ return text
114
+ .normalize('NFD')
115
+ .replace(/[̀-ͯ]/g, '')
116
+ .replace(/−/g, '-')
117
+ .replace(/_/g, ' ')
118
+ .toLowerCase()
119
+ .trim();
120
+ }
121
+ /**
122
+ * Whether an option matches a search: its city, region, country, id or offset
123
+ * (`UTC+5:30`, `GMT-6`, `+05:30`). Case and accents are ignored.
124
+ *
125
+ * @param option - the zone.
126
+ * @param query - what the user typed.
127
+ * @returns whether it matches.
128
+ *
129
+ * @stability experimental
130
+ */
131
+ export function matchesTimeZoneQuery(option, query) {
132
+ const q = normalize(query);
133
+ if (!q)
134
+ return true;
135
+ const offset = /^(?:utc|gmt)?\s*([+-]\s*\d{1,2}(?::?\d{2})?|0)$/.exec(q.replace(/\s+/g, ''));
136
+ if (offset || /^(?:utc|gmt)$/.test(q)) {
137
+ const typed = (offset?.[1] ?? '').replace(/\s+/g, '');
138
+ if (offsetQueries(option.offsetMinutes).includes(typed))
139
+ return true;
140
+ if (!offset)
141
+ return option.offsetMinutes === 0;
142
+ }
143
+ const haystack = normalize([option.city, option.region, option.countryName ?? '', option.countryCode ?? '', option.id].join(' '));
144
+ return q.split(/\s+/).every((word) => haystack.includes(word));
145
+ }
146
+ /**
147
+ * The options matching a search ({@link matchesTimeZoneQuery}), best first:
148
+ * a city that starts with the query, then the rest in list order.
149
+ *
150
+ * @param options - the list ({@link listTimeZones}).
151
+ * @param query - what the user typed.
152
+ * @param limit - the most to return; default 50.
153
+ * @returns the matches.
154
+ *
155
+ * @stability experimental
156
+ */
157
+ export function searchTimeZones(options, query, limit = 50) {
158
+ const q = normalize(query);
159
+ const matches = options.filter((option) => matchesTimeZoneQuery(option, query));
160
+ if (q) {
161
+ const starts = (option) => (normalize(option.city).startsWith(q) ? 0 : 1);
162
+ matches.sort((a, b) => starts(a) - starts(b));
163
+ }
164
+ return matches.slice(0, limit);
165
+ }
166
+ /**
167
+ * The zone whose pin is nearest a point of the map, in the map's
168
+ * equirectangular projection (longitude wraps at the date line).
169
+ *
170
+ * @param lon - longitude, degrees east.
171
+ * @param lat - latitude, degrees north.
172
+ * @returns the zone id.
173
+ *
174
+ * @stability experimental
175
+ */
176
+ export function nearestZone(lon, lat) {
177
+ let best = ZONE_PINS[0]?.[0] ?? 'UTC';
178
+ let bestDistance = Number.POSITIVE_INFINITY;
179
+ for (const [id, , pinLat, pinLon] of ZONE_PINS) {
180
+ let dx = Math.abs(lon - pinLon) % 360;
181
+ if (dx > 180)
182
+ dx = 360 - dx;
183
+ const dy = lat - pinLat;
184
+ const distance = dx * dx + dy * dy;
185
+ if (distance < bestDistance) {
186
+ bestDistance = distance;
187
+ best = id;
188
+ }
189
+ }
190
+ return best;
191
+ }
192
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/timezone/headless/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from '../../core/index.js';
2
+ export type { DateInput, TimeZoneFormatOptions } from '../../core/index.js';
3
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/timezone/headless/format.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // The display-zone formatters live in `core` (src/core/time-zone/format.ts),
2
+ // with the store; see ./store.ts for why. Re-exported for the slice's own
3
+ // files and its `/timezone/headless` entry.
4
+ export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from '../../core/index.js';
5
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/timezone/headless/format.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,4CAA4C;AAE5C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { TIME_ZONE_STORAGE_KEY, deviceTimeZone, getDisplayTimeZone, getPreferredTimeZone, setPreferredTimeZone, subscribeDisplayTimeZone, timeZoneFromProfile, useDisplayTimeZone, usePreferredTimeZone, } from './store.js';
2
+ export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from './format.js';
3
+ export type { DateInput, TimeZoneFormatOptions } from './format.js';
4
+ export { findTimeZone, listTimeZones, matchesTimeZoneQuery, nearestZone, searchTimeZones } from './catalog.js';
5
+ export type { TimeZoneOption } from './catalog.js';
6
+ export { TIME_ZONE_MAP_HEIGHT, TIME_ZONE_MAP_WIDTH, landDotsPath, offsetBandRanges, projectToMap, unprojectFromMap, } from './map-geometry.js';
7
+ export type { GeoPoint, MapPoint } from './map-geometry.js';
8
+ export { UserTimeZoneSync } from './sync.js';
9
+ export type { UserTimeZoneSyncProps } from './sync.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/timezone/headless/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/G,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ // `@marinoscar/platform-web/timezone/headless`: the display time zone (the
2
+ // user's `profile.timezone`, else the device's), the formatters that render in
3
+ // it, the zone catalog, the map geometry and the settings sync, with no
4
+ // component. Documented in ../README.md.
5
+ export { TIME_ZONE_STORAGE_KEY, deviceTimeZone, getDisplayTimeZone, getPreferredTimeZone, setPreferredTimeZone, subscribeDisplayTimeZone, timeZoneFromProfile, useDisplayTimeZone, usePreferredTimeZone, } from './store.js';
6
+ export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from './format.js';
7
+ export { findTimeZone, listTimeZones, matchesTimeZoneQuery, nearestZone, searchTimeZones } from './catalog.js';
8
+ export { TIME_ZONE_MAP_HEIGHT, TIME_ZONE_MAP_WIDTH, landDotsPath, offsetBandRanges, projectToMap, unprojectFromMap, } from './map-geometry.js';
9
+ export { UserTimeZoneSync } from './sync.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/timezone/headless/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,+EAA+E;AAC/E,wEAAwE;AACxE,yCAAyC;AAEzC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/G,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** Degrees per grid cell of {@link LAND_ROWS}. */
2
+ export declare const LAND_STEP = 1.5;
3
+ /** Latitude of the top edge of the first row. */
4
+ export declare const LAND_NORTH = 84;
5
+ /** Latitude of the bottom edge of the last row. */
6
+ export declare const LAND_SOUTH = -58;
7
+ /** Cells per row, from 180W eastwards. */
8
+ export declare const LAND_COLS = 240;
9
+ /** One hex string per row, north to south; bit set = land (7678 cells). */
10
+ export declare const LAND_ROWS: readonly string[];
11
+ /** `[IANA id, ISO 3166 country, latitude, longitude]` of each zone's principal city (418 zones). */
12
+ export declare const ZONE_PINS: ReadonlyArray<readonly [string, string, number, number]>;
13
+ //# sourceMappingURL=map-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-data.d.ts","sourceRoot":"","sources":["../../../src/timezone/headless/map-data.ts"],"names":[],"mappings":"AAGA,kDAAkD;AAClD,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,iDAAiD;AACjD,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,mDAAmD;AACnD,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,0CAA0C;AAC1C,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,2EAA2E;AAC3E,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAgGtC,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAma9E,CAAC"}