@basmilius/utils 2.11.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,258 @@
1
+ export type Country = [name: string, latitude: number, longitude: number];
2
+ export type CountryCode = keyof typeof raw;
3
+ export type Countries = Record<CountryCode, Country>;
4
+ declare const raw: {
5
+ readonly af: readonly ["Afghanistan", 33, 65];
6
+ readonly ax: readonly ["Åland Islands", 60.116667, 19.9];
7
+ readonly al: readonly ["Albania", 41, 20];
8
+ readonly dz: readonly ["Algeria", 28, 3];
9
+ readonly as: readonly ["American Samoa", -14.3333, -170];
10
+ readonly ad: readonly ["Andorra", 42.5, 1.6];
11
+ readonly ao: readonly ["Angola", -12.5, 18.5];
12
+ readonly ai: readonly ["Anguilla", 18.25, -63.1667];
13
+ readonly aq: readonly ["Antarctica", -90, 0];
14
+ readonly ag: readonly ["Antigua and Barbuda", 17.05, -61.8];
15
+ readonly ar: readonly ["Argentina", -34, -64];
16
+ readonly am: readonly ["Armenia", 40, 45];
17
+ readonly aw: readonly ["Aruba", 12.5, -69.9667];
18
+ readonly au: readonly ["Australia", -27, 133];
19
+ readonly at: readonly ["Austria", 47.3333, 13.3333];
20
+ readonly az: readonly ["Azerbaijan", 40.5, 47.5];
21
+ readonly bs: readonly ["Bahamas", 24.25, -76];
22
+ readonly bh: readonly ["Bahrain", 26, 50.55];
23
+ readonly bd: readonly ["Bangladesh", 24, 90];
24
+ readonly bb: readonly ["Barbados", 13.1667, -59.5333];
25
+ readonly by: readonly ["Belarus", 53, 28];
26
+ readonly be: readonly ["Belgium", 50.8333, 4];
27
+ readonly bz: readonly ["Belize", 17.25, -88.75];
28
+ readonly bj: readonly ["Benin", 9.5, 2.25];
29
+ readonly bm: readonly ["Bermuda", 32.3333, -64.75];
30
+ readonly bt: readonly ["Bhutan", 27.5, 90.5];
31
+ readonly bo: readonly ["Bolivia", -17, -65];
32
+ readonly bq: readonly ["Bonaire, Sint Eustatius and Saba", 12.183333, -68.233333];
33
+ readonly ba: readonly ["Bosnia and Herzegovina", 44, 18];
34
+ readonly bw: readonly ["Botswana", -22, 24];
35
+ readonly bv: readonly ["Bouvet Island", -54.4333, 3.4];
36
+ readonly br: readonly ["Brazil", -10, -55];
37
+ readonly io: readonly ["British Indian Ocean Territory", -6, 71.5];
38
+ readonly bn: readonly ["Brunei", 4.5, 114.6667];
39
+ readonly bg: readonly ["Bulgaria", 43, 25];
40
+ readonly bf: readonly ["Burkina Faso", 13, -2];
41
+ readonly bi: readonly ["Burundi", -3.5, 30];
42
+ readonly kh: readonly ["Cambodia", 13, 105];
43
+ readonly cm: readonly ["Cameroon", 6, 12];
44
+ readonly ca: readonly ["Canada", 60, -95];
45
+ readonly cv: readonly ["Cape Verde", 16, -24];
46
+ readonly ky: readonly ["Cayman Islands", 19.5, -80.5];
47
+ readonly cf: readonly ["Central African Republic", 7, 21];
48
+ readonly td: readonly ["Chad", 15, 19];
49
+ readonly cl: readonly ["Chile", -30, -71];
50
+ readonly cn: readonly ["China", 35, 105];
51
+ readonly cx: readonly ["Christmas Island", -10.5, 105.6667];
52
+ readonly cc: readonly ["Cocos (Keeling) Islands", -12.5, 96.8333];
53
+ readonly co: readonly ["Colombia", 4, -72];
54
+ readonly km: readonly ["Comoros", -12.1667, 44.25];
55
+ readonly cd: readonly ["Congo, Democratic Republic of the", 0, 25];
56
+ readonly cg: readonly ["Congo", -1, 15];
57
+ readonly ck: readonly ["Cook Islands", -21.2333, -159.7667];
58
+ readonly cr: readonly ["Costa Rica", 10, -84];
59
+ readonly ci: readonly ["Côte d'Ivoire", 8, -5];
60
+ readonly hr: readonly ["Croatia", 45.1667, 15.5];
61
+ readonly cu: readonly ["Cuba", 21.5, -80];
62
+ readonly cw: readonly ["Curaçao", 12.166667, -68.966667];
63
+ readonly cy: readonly ["Cyprus", 35, 33];
64
+ readonly cz: readonly ["Czech Republic", 49.75, 15.5];
65
+ readonly dk: readonly ["Denmark", 56, 10];
66
+ readonly dj: readonly ["Djibouti", 11.5, 43];
67
+ readonly dm: readonly ["Dominica", 15.4167, -61.3333];
68
+ readonly do: readonly ["Dominican Republic", 19, -70.6667];
69
+ readonly ec: readonly ["Ecuador", -2, -77.5];
70
+ readonly eg: readonly ["Egypt", 27, 30];
71
+ readonly sv: readonly ["El Salvador", 13.8333, -88.9167];
72
+ readonly gq: readonly ["Equatorial Guinea", 2, 10];
73
+ readonly er: readonly ["Eritrea", 15, 39];
74
+ readonly ee: readonly ["Estonia", 59, 26];
75
+ readonly et: readonly ["Ethiopia", 8, 38];
76
+ readonly fk: readonly ["Falkland Islands (Malvinas)", -51.75, -59];
77
+ readonly fo: readonly ["Faroe Islands", 62, -7];
78
+ readonly fj: readonly ["Fiji", -18, 175];
79
+ readonly fi: readonly ["Finland", 64, 26];
80
+ readonly fr: readonly ["France", 46, 2];
81
+ readonly gf: readonly ["French Guiana", 4, -53];
82
+ readonly pf: readonly ["French Polynesia", -15, -140];
83
+ readonly tf: readonly ["French Southern Territories", -43, 67];
84
+ readonly ga: readonly ["Gabon", -1, 11.75];
85
+ readonly gm: readonly ["Gambia", 13.4667, -16.5667];
86
+ readonly ge: readonly ["Georgia", 42, 43.5];
87
+ readonly de: readonly ["Germany", 51, 9];
88
+ readonly gh: readonly ["Ghana", 8, -2];
89
+ readonly gi: readonly ["Gibraltar", 36.1833, -5.3667];
90
+ readonly gr: readonly ["Greece", 39, 22];
91
+ readonly gl: readonly ["Greenland", 72, -40];
92
+ readonly gd: readonly ["Grenada", 12.1167, -61.6667];
93
+ readonly gp: readonly ["Guadeloupe", 16.25, -61.5833];
94
+ readonly gu: readonly ["Guam", 13.4667, 144.7833];
95
+ readonly gt: readonly ["Guatemala", 15.5, -90.25];
96
+ readonly gg: readonly ["Guernsey", 49.5, -2.56];
97
+ readonly gw: readonly ["Guinea-Bissau", 12, -15];
98
+ readonly gn: readonly ["Guinea", 11, -10];
99
+ readonly gy: readonly ["Guyana", 5, -59];
100
+ readonly ht: readonly ["Haiti", 19, -72.4167];
101
+ readonly hm: readonly ["Heard Island and McDonald Islands", -53.1, 72.5167];
102
+ readonly va: readonly ["Holy See", 41.9, 12.45];
103
+ readonly hn: readonly ["Honduras", 15, -86.5];
104
+ readonly hk: readonly ["Hong Kong", 22.25, 114.1667];
105
+ readonly hu: readonly ["Hungary", 47, 20];
106
+ readonly is: readonly ["Iceland", 65, -18];
107
+ readonly in: readonly ["India", 20, 77];
108
+ readonly id: readonly ["Indonesia", -5, 120];
109
+ readonly ir: readonly ["Iran", 32, 53];
110
+ readonly iq: readonly ["Iraq", 33, 44];
111
+ readonly ie: readonly ["Ireland", 53, -8];
112
+ readonly im: readonly ["Isle of Man", 54.23, -4.55];
113
+ readonly il: readonly ["Israel", 31.5, 34.75];
114
+ readonly it: readonly ["Italy", 42.8333, 12.8333];
115
+ readonly jm: readonly ["Jamaica", 18.25, -77.5];
116
+ readonly jp: readonly ["Japan", 36, 138];
117
+ readonly je: readonly ["Jersey", 49.21, -2.13];
118
+ readonly jo: readonly ["Jordan", 31, 36];
119
+ readonly kz: readonly ["Kazakhstan", 48, 68];
120
+ readonly ke: readonly ["Kenya", 1, 38];
121
+ readonly ki: readonly ["Kiribati", 1.4167, 173];
122
+ readonly kp: readonly ["Korea, North", 40, 127];
123
+ readonly kr: readonly ["Korea, South", 37, 127.5];
124
+ readonly xk: readonly ["Kosovo", 42.583333, 21];
125
+ readonly kw: readonly ["Kuwait", 29.3375, 47.6581];
126
+ readonly kg: readonly ["Kyrgyzstan", 41, 75];
127
+ readonly la: readonly ["Laos", 18, 105];
128
+ readonly lv: readonly ["Latvia", 57, 25];
129
+ readonly lb: readonly ["Lebanon", 33.8333, 35.8333];
130
+ readonly ls: readonly ["Lesotho", -29.5, 28.5];
131
+ readonly lr: readonly ["Liberia", 6.5, -9.5];
132
+ readonly ly: readonly ["Libya", 25, 17];
133
+ readonly li: readonly ["Liechtenstein", 47.1667, 9.5333];
134
+ readonly lt: readonly ["Lithuania", 56, 24];
135
+ readonly lu: readonly ["Luxembourg", 49.75, 6.1667];
136
+ readonly mo: readonly ["Macao", 22.1667, 113.55];
137
+ readonly mk: readonly ["North Macedonia", 41.8333, 22];
138
+ readonly mg: readonly ["Madagascar", -20, 47];
139
+ readonly mw: readonly ["Malawi", -13.5, 34];
140
+ readonly my: readonly ["Malaysia", 2.5, 112.5];
141
+ readonly mv: readonly ["Maldives", 3.25, 73];
142
+ readonly ml: readonly ["Mali", 17, -4];
143
+ readonly mt: readonly ["Malta", 35.8333, 14.5833];
144
+ readonly mh: readonly ["Marshall Islands", 9, 168];
145
+ readonly mq: readonly ["Martinique", 14.6667, -61];
146
+ readonly mr: readonly ["Mauritania", 20, -12];
147
+ readonly mu: readonly ["Mauritius", -20.2833, 57.55];
148
+ readonly yt: readonly ["Mayotte", -12.8333, 45.1667];
149
+ readonly mx: readonly ["Mexico", 23, -102];
150
+ readonly fm: readonly ["Micronesia", 6.9167, 158.25];
151
+ readonly md: readonly ["Moldova", 47, 29];
152
+ readonly mc: readonly ["Monaco", 43.7333, 7.4];
153
+ readonly mn: readonly ["Mongolia", 46, 105];
154
+ readonly me: readonly ["Montenegro", 42, 19];
155
+ readonly ms: readonly ["Montserrat", 16.75, -62.2];
156
+ readonly ma: readonly ["Morocco", 32, -5];
157
+ readonly mz: readonly ["Mozambique", -18.25, 35];
158
+ readonly mm: readonly ["Myanmar", 22, 98];
159
+ readonly na: readonly ["Namibia", -22, 17];
160
+ readonly nr: readonly ["Nauru", -0.5333, 166.9167];
161
+ readonly np: readonly ["Nepal", 28, 84];
162
+ readonly nl: readonly ["Netherlands", 52.5, 5.75];
163
+ readonly nc: readonly ["New Caledonia", -21.5, 165.5];
164
+ readonly nz: readonly ["New Zealand", -41, 174];
165
+ readonly ni: readonly ["Nicaragua", 13, -85];
166
+ readonly ne: readonly ["Niger", 16, 8];
167
+ readonly ng: readonly ["Nigeria", 10, 8];
168
+ readonly nu: readonly ["Niue", -19.0333, -169.8667];
169
+ readonly nf: readonly ["Norfolk Island", -29.0333, 167.95];
170
+ readonly mp: readonly ["Northern Mariana Islands", 15.2, 145.75];
171
+ readonly no: readonly ["Norway", 62, 10];
172
+ readonly om: readonly ["Oman", 21, 57];
173
+ readonly pk: readonly ["Pakistan", 30, 70];
174
+ readonly pw: readonly ["Palau", 7.5, 134.5];
175
+ readonly ps: readonly ["Palestine", 32, 35.25];
176
+ readonly pa: readonly ["Panama", 9, -80];
177
+ readonly pg: readonly ["Papua New Guinea", -6, 147];
178
+ readonly py: readonly ["Paraguay", -23, -58];
179
+ readonly pe: readonly ["Peru", -10, -76];
180
+ readonly ph: readonly ["Philippines", 13, 122];
181
+ readonly pn: readonly ["Pitcairn", -24.7, -127.4];
182
+ readonly pl: readonly ["Poland", 52, 20];
183
+ readonly pt: readonly ["Portugal", 39.5, -8];
184
+ readonly pr: readonly ["Puerto Rico", 18.25, -66.5];
185
+ readonly qa: readonly ["Qatar", 25.5, 51.25];
186
+ readonly re: readonly ["Réunion", -21.1, 55.6];
187
+ readonly ro: readonly ["Romania", 46, 25];
188
+ readonly ru: readonly ["Russia", 60, 100];
189
+ readonly rw: readonly ["Rwanda", -2, 30];
190
+ readonly bl: readonly ["Saint Barthélemy", 17.897728, -62.834244];
191
+ readonly sh: readonly ["Saint Helena", -15.9333, -5.7];
192
+ readonly kn: readonly ["Saint Kitts and Nevis", 17.3333, -62.75];
193
+ readonly lc: readonly ["Saint Lucia", 13.8833, -61.1333];
194
+ readonly mf: readonly ["Saint Martin", 18.075278, -63.06];
195
+ readonly pm: readonly ["Saint Pierre and Miquelon", 46.8333, -56.3333];
196
+ readonly vc: readonly ["Saint Vincent and the Grenadines", 13.25, -61.2];
197
+ readonly ws: readonly ["Samoa", -13.5833, -172.3333];
198
+ readonly sm: readonly ["San Marino", 43.7667, 12.4167];
199
+ readonly st: readonly ["Sao Tome and Principe", 1, 7];
200
+ readonly sa: readonly ["Saudi Arabia", 25, 45];
201
+ readonly sn: readonly ["Senegal", 14, -14];
202
+ readonly rs: readonly ["Serbia", 44, 21];
203
+ readonly sc: readonly ["Seychelles", -4.5833, 55.6667];
204
+ readonly sl: readonly ["Sierra Leone", 8.5, -11.5];
205
+ readonly sg: readonly ["Singapore", 1.3667, 103.8];
206
+ readonly sx: readonly ["Sint Maarten", 18.033333, -63.05];
207
+ readonly sk: readonly ["Slovakia", 48.6667, 19.5];
208
+ readonly si: readonly ["Slovenia", 46, 15];
209
+ readonly sb: readonly ["Solomon Islands", -8, 159];
210
+ readonly so: readonly ["Somalia", 10, 49];
211
+ readonly za: readonly ["South Africa", -29, 24];
212
+ readonly gs: readonly ["South Georgia and the South Sandwich Islands", -54.5, -37];
213
+ readonly ss: readonly ["South Sudan", 8, 30];
214
+ readonly es: readonly ["Spain", 40, -4];
215
+ readonly lk: readonly ["Sri Lanka", 7, 81];
216
+ readonly sd: readonly ["Sudan", 15, 30];
217
+ readonly sr: readonly ["Suriname", 4, -56];
218
+ readonly sj: readonly ["Svalbard and Jan Mayen", 78, 20];
219
+ readonly sz: readonly ["Swaziland", -26.5, 31.5];
220
+ readonly se: readonly ["Sweden", 62, 15];
221
+ readonly ch: readonly ["Switzerland", 47, 8];
222
+ readonly sy: readonly ["Syria", 35, 38];
223
+ readonly tw: readonly ["Taiwan", 23.5, 121];
224
+ readonly tj: readonly ["Tajikistan", 39, 71];
225
+ readonly tz: readonly ["Tanzania", -6, 35];
226
+ readonly th: readonly ["Thailand", 15, 100];
227
+ readonly tl: readonly ["Timor-Leste", -8.55, 125.5167];
228
+ readonly tg: readonly ["Togo", 8, 1.1667];
229
+ readonly tk: readonly ["Tokelau", -9, -172];
230
+ readonly to: readonly ["Tonga", -20, -175];
231
+ readonly tt: readonly ["Trinidad and Tobago", 11, -61];
232
+ readonly tn: readonly ["Tunisia", 34, 9];
233
+ readonly tr: readonly ["Turkey", 39, 35];
234
+ readonly tm: readonly ["Turkmenistan", 40, 60];
235
+ readonly tc: readonly ["Turks and Caicos Islands", 21.75, -71.5833];
236
+ readonly tv: readonly ["Tuvalu", -8, 178];
237
+ readonly ug: readonly ["Uganda", 1, 32];
238
+ readonly ua: readonly ["Ukraine", 49, 32];
239
+ readonly ae: readonly ["United Arab Emirates", 24, 54];
240
+ readonly gb: readonly ["United Kingdom", 54, -2];
241
+ readonly um: readonly ["United States Minor Outlying Islands", 19.2833, 166.6];
242
+ readonly us: readonly ["United States", 38, -97];
243
+ readonly uy: readonly ["Uruguay", -33, -56];
244
+ readonly uz: readonly ["Uzbekistan", 41, 64];
245
+ readonly vu: readonly ["Vanuatu", -16, 167];
246
+ readonly ve: readonly ["Venezuela", 8, -66];
247
+ readonly vn: readonly ["Vietnam", 16, 106];
248
+ readonly vg: readonly ["Virgin Islands, British", 18.5, -64.5];
249
+ readonly vi: readonly ["Virgin Islands, U.S.", 18.3333, -64.8333];
250
+ readonly wf: readonly ["Wallis and Futuna", -13.3, -176.2];
251
+ readonly eh: readonly ["Western Sahara", 24.5, -13];
252
+ readonly ye: readonly ["Yemen", 15, 48];
253
+ readonly zm: readonly ["Zambia", -15, 30];
254
+ readonly zw: readonly ["Zimbabwe", -20, 30];
255
+ };
256
+ export declare const countries: Countries;
257
+ export declare function getCountry(code: CountryCode): Country | null;
258
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { DateTime } from "luxon";
2
+ export type CircadianPhase = "alert" | "focused" | "sleep" | "wind_down";
3
+ export default function(date: DateTime): CircadianPhase;
@@ -0,0 +1,3 @@
1
+ import type { DateTime } from "luxon";
2
+ export type DayPeriod = "afternoon" | "evening" | "morning" | "night";
3
+ export default function(date: DateTime): DayPeriod;
@@ -0,0 +1,3 @@
1
+ import { DateTime } from "luxon";
2
+ import type { DayPeriod } from "./getDayPeriod";
3
+ export default function(period: DayPeriod): [DateTime, DateTime];
@@ -0,0 +1,3 @@
1
+ import type { DateTime } from "luxon";
2
+ export type MoonPhase = "new_moon" | "waxing_crescent" | "first_quarter" | "waxing_gibbous" | "full_moon" | "waning_gibbous" | "last_quarter" | "waning_crescent";
3
+ export default function(date: DateTime): MoonPhase;
@@ -0,0 +1,4 @@
1
+ import type { DateTime } from "luxon";
2
+ import { type CountryCode } from "./data/countries";
3
+ export type Season = "autumn" | "spring" | "summer" | "winter";
4
+ export default function(countryCode: CountryCode, date: DateTime): Season | null;
@@ -0,0 +1,3 @@
1
+ import type { Season } from "./getSeason";
2
+ export type SeasonMood = "cozy" | "energetic" | "fresh" | "warm";
3
+ export default function(season: Season): SeasonMood;
@@ -0,0 +1,3 @@
1
+ import type { DateTime } from "luxon";
2
+ export type WorkdayPeriod = "break" | "off" | "work";
3
+ export default function(date: DateTime): WorkdayPeriod;
@@ -0,0 +1,3 @@
1
+ import type { DateTime } from "luxon";
2
+ export type ZodiacSign = "aquarius" | "aries" | "cancer" | "capricorn" | "gemini" | "leo" | "libra" | "pisces" | "sagittarius" | "scorpio" | "taurus" | "virgo";
3
+ export default function(date: DateTime): ZodiacSign;
package/dist/index.d.ts CHANGED
@@ -15,7 +15,15 @@ export { default as formatNumber } from "./formatNumber";
15
15
  export { default as formatPercentage } from "./formatPercentage";
16
16
  export { default as formatTime } from "./formatTime";
17
17
  export { default as generateStepTicks } from "./generateStepTicks";
18
+ export { default as getCircadianPhase, type CircadianPhase } from "./getCircadianPhase";
19
+ export { default as getDayPeriod, type DayPeriod } from "./getDayPeriod";
20
+ export { default as getDayPeriodRange } from "./getDayPeriodRange";
21
+ export { default as getMoonPhase, type MoonPhase } from "./getMoonPhase";
18
22
  export { default as getPrototypeChain } from "./getPrototypeChain";
23
+ export { default as getSeason, type Season } from "./getSeason";
24
+ export { default as getSeasonalMood, type SeasonMood } from "./getSeasonalMood";
25
+ export { default as getWorkdayPeriod, type WorkdayPeriod } from "./getWorkdayPeriod";
26
+ export { default as getZodiacSign, type ZodiacSign } from "./getZodiacSign";
19
27
  export { default as hexToRGB } from "./hexToRGB";
20
28
  export { default as hslToHSV } from "./hslToHSV";
21
29
  export { default as hslToRGB } from "./hslToRGB";
@@ -23,6 +31,7 @@ export { default as hsvToHSL } from "./hsvToHSL";
23
31
  export { default as hsvToRGB } from "./hsvToRGB";
24
32
  export { default as hueToRGB } from "./hueToRGB";
25
33
  export { default as isHtmlElement } from "./isHtmlElement";
34
+ export { default as isNorthernHemisphere } from "./isNorthernHemisphere";
26
35
  export { default as isPointInPolygon } from "./isPointInPolygon";
27
36
  export { default as isToday } from "./isToday";
28
37
  export { default as mulberry32, type Mulberry32 } from "./mulberry32";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- function p(e,t){return Math.round(e/t)*t}function M(e,t,r,o){return Math.max(t,Math.min(r,+p(e*(r-t)+t,o).toPrecision(4)))}function R(e){return e.toString().split(".")[1]?.length??0}function P(e,t,r){let o=[],u=[],n=null;return(...i)=>{return clearTimeout(n),n=setTimeout(()=>{try{let a=e.apply(r,i);o.forEach((m)=>m(a))}catch(a){u.forEach((m)=>m(a))}o=[],u=[]},t),new Promise((a,m)=>{o.push(a),u.push(m)})}}import{defineStore as Y,storeToRefs as ee}from"pinia";function v(e,t){let r=Y(e,t);return()=>{let o=r(),u=Object.getOwnPropertyNames(o),n=ee(o),i={};for(let a of u){if(a.startsWith("$")||a.startsWith("_"))continue;if(a in n){i[a]=n[a];continue}i[a]=o[a]}return i}}function b(e,t){let r=document.createElement("a");r.download=t,r.href=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function x(e,t){let r=URL.createObjectURL(e);b(r,t),URL.revokeObjectURL(r)}function F(e,t,r){let o=new Blob([e],{type:r});x(o,t)}function L(e){return e.toLocaleString({year:"numeric",month:"long",day:"numeric"})}function E(e){return e.toLocaleString({weekday:"long",day:"numeric",month:"long"})}function k(e){return e.toLocaleString({year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"})}function O(e){return e.toLocaleString({month:"long"})}function C(e,t=0){return new Intl.NumberFormat(navigator.language,{maximumFractionDigits:t,minimumFractionDigits:t}).format(e)}function H(e){return new Intl.NumberFormat(navigator.language,{maximumFractionDigits:1,minimumFractionDigits:0,style:"percent"}).format(e)}function B(e){return e.toLocaleString({hour:"2-digit",minute:"2-digit"})}function I(e,t,r=5,o){let u=[1,5,10,25,50,100,250,500,1000,2500,5000,1e4],n=[0.1,0.5,...u],i=t-e,a=o?n:u;for(let l of a){let D=Math.floor(i/l),d=[];if(D>r+1)continue;d.push(e);for(let w=1;w<D;++w)d.push(w*l+e);return d.push(t),d}let m=i.toString().length-1,s=Math.pow(10,m),f=[];for(let l=0;l<i;l+=s)f.push(l+e);return f}function j(e){let t={};do{if(e.name==="")break;for(let[r,o]of Object.entries(Object.getOwnPropertyDescriptors(e.prototype))){if(["constructor","clone","toJSON"].includes(r))continue;if(!o.get&&!o.set)continue;t[r]=o}}while(e=Object.getPrototypeOf(e));return t}function N(e){let t=parseInt(e.startsWith("#")?e.substring(1):e,16);return[t>>16&255,t>>8&255,t&255]}function c(e,t,r){if(r<0)r+=1;if(r>1)r-=1;if(r<0.16666666666666666)return e+(t-e)*6*r;if(r<0.5)return t;if(r<0.6666666666666666)return e+(t-e)*(0.6666666666666666-r)*6;return e}function g(e,t,r){let o,u,n;if(e/=360,t/=100,r/=100,t===0)o=u=n=r;else{let i=r<0.5?r*(1+t):r+t-r*t,a=2*r-i;o=c(a,i,e+0.3333333333333333),u=c(a,i,e),n=c(a,i,e-0.3333333333333333)}return o=Math.round(o*255),u=Math.round(u*255),n=Math.round(n*255),[o,u,n]}function h(e,t,r){e/=255,t/=255,r/=255;let o=Math.min(e,t,r),u=Math.max(e,t,r),n=u-o,i,a=u===0?0:n/u,m=u;if(u===o)i=0;else{if(u===e)i=(t-r)/n+(t<r?6:0);else if(u===t)i=(r-e)/n+2;else i=(e-t)/n+4;i/=6}return[i,a,m]}function U(e,t,r){return h(...g(e,t,r))}function y(e,t,r){let o=0,u=0,n=0,i=Math.floor(e*6),a=e*6-i,m=r*(1-t),s=r*(1-a*t),f=r*(1-(1-a)*t);switch(i%6){case 0:o=r,u=f,n=m;break;case 1:o=s,u=r,n=m;break;case 2:o=m,u=r,n=f;break;case 3:o=m,u=s,n=r;break;case 4:o=f,u=m,n=r;break;case 5:o=r,u=m,n=s;break}return o=Math.round(o*255),u=Math.round(u*255),n=Math.round(n*255),[o,u,n]}function T(e,t,r){e/=255,t/=255,r/=255;let o=Math.min(e,t,r),u=Math.max(e,t,r),n=u-o,i,a,m;if(n===0)i=0;else if(u===e)i=(t-r)/n%6;else if(u===t)i=(r-e)/n+2;else i=(e-t)/n+4;if(i=Math.round(i*60),i<0)i+=360;return m=(u+o)/2,a=n===0?0:n/(1-Math.abs(2*m-1)),a=+(a*100).toFixed(1),m=+(m*100).toFixed(1),[i,a,m]}function G(e,t,r){return T(...y(e,t,r))}function V(e){if(!globalThis.document)return!1;return e instanceof HTMLElement}function _(e,t){let r=!1;for(let o=0,u=t.length-1;o<t.length;u=o++){let n=t[o][0],i=t[o][1],a=t[u][0],m=t[u][1];if(i>e[1]!=m>e[1]&&e[0]<(a-n)*(e[1]-i)/(m-i)+n)r=!r}return r}function z(e,t){return t.hasSame(e,"day")}function W(e){let t=new Uint32Array(1);t[0]=e;function r(){let n=t[0]=t[0]+1831565813|0,i=Math.imul(n^n>>>15,1|n);return i=i+Math.imul(i^i>>>7,61|i)^i,((i^i>>>14)>>>0)/4294967296}function o(n,i){return r()*(i-n)+n}function u(){return W(r()*4294967296)}return{fork:u,next:r,nextBetween:o}}var te=W;function A(e){if(window.location!==window.parent.location)window.open(e,"_top");else window.location.href=e}import{ref as re,watch as ne}from"vue";function S(e,t,r=JSON.stringify,o=JSON.parse){let u=localStorage.getItem(e),n=u?o(u):t,i=re(n);return ne(i,(a)=>{if(a===null||a===void 0)localStorage.removeItem(e);else localStorage.setItem(e,r(a))},{deep:!0,immediate:!0}),i}function $(e,t){return S(e,t,(r)=>r??"",(r)=>r===""?null:r)}async function J(e){let t=document.createElement("iframe");t.style.position="fixed",t.style.top="-100dvh",t.style.left="-100dvw",t.style.width="1px",t.style.height="1px",document.body.appendChild(t);let r=t.contentDocument??t.contentWindow?.document;if(!r)throw document.body.removeChild(t),Error("Cannot print, no access to the framed document.");r.documentElement.innerHTML=e;let o=Array.from(r.getElementsByTagName("img"));await Promise.all(o.map((u)=>new Promise((n)=>{if(u.complete)n(void 0);else u.addEventListener("load",n,{passive:!0}),u.addEventListener("error",n,{passive:!0})}))),t.contentWindow?.print(),setTimeout(()=>{document.body.removeChild(t)},1000)}function K(e,t,r){let o=e.toString(16).padStart(2,"0"),u=t.toString(16).padStart(2,"0"),n=r.toString(16).padStart(2,"0");return`#${o}${u}${n}`}function Z(e,t,r){e.prototype[t]=r}function X(e,t,r){Object.defineProperty(e,t,{value:r})}function q(e){if("startViewTransition"in document)document.startViewTransition(e);else e()}async function Q(e){return new Promise((t)=>setTimeout(t,e))}var et="✔",tt="✘",rt="—",nt="–",ot=()=>{return};export{Q as waitFor,q as viewTransition,X as setObjectValue,Z as setObjectMethod,p as roundStep,h as rgbToHSV,T as rgbToHSL,K as rgbToHEX,J as printHtml,$ as persistentStringRef,S as persistentRef,A as openUrl,te as mulberry32,z as isToday,_ as isPointInPolygon,V as isHtmlElement,c as hueToRGB,y as hsvToRGB,G as hsvToHSL,g as hslToRGB,U as hslToHSV,N as hexToRGB,j as getPrototypeChain,I as generateStepTicks,B as formatTime,H as formatPercentage,C as formatNumber,O as formatMonth,k as formatDateTime,E as formatDateFull,L as formatDate,b as downloadUrl,F as downloadString,x as downloadBlob,v as defineStore,P as debounce,R as countDecimals,M as clampWithStepPrecision,ot as NOOP,nt as NDASH,rt as MDASH,tt as CROSS,et as CHECK};
1
+ function p(e,t){return Math.round(e/t)*t}function C(e,t,r,n){return Math.max(t,Math.min(r,+p(e*(r-t)+t,n).toPrecision(4)))}function D(e){return e.toString().split(".")[1]?.length??0}function P(e,t,r){let n=[],a=[],o=null;return(...i)=>{return clearTimeout(o),o=setTimeout(()=>{try{let u=e.apply(r,i);n.forEach((s)=>s(u))}catch(u){a.forEach((s)=>s(u))}n=[],a=[]},t),new Promise((u,s)=>{n.push(u),a.push(s)})}}import{defineStore as me,storeToRefs as le}from"pinia";function v(e,t){let r=me(e,t);return()=>{let n=r(),a=Object.getOwnPropertyNames(n),o=le(n),i={};for(let u of a){if(u.startsWith("$")||u.startsWith("_"))continue;if(u in o){i[u]=o[u];continue}i[u]=n[u]}return i}}function b(e,t){let r=document.createElement("a");r.download=t,r.href=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function g(e,t){let r=URL.createObjectURL(e);b(r,t),URL.revokeObjectURL(r)}function R(e,t,r){let n=new Blob([e],{type:r});g(n,t)}function I(e){return e.toLocaleString({year:"numeric",month:"long",day:"numeric"})}function B(e){return e.toLocaleString({weekday:"long",day:"numeric",month:"long"})}function N(e){return e.toLocaleString({year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"})}function z(e){return e.toLocaleString({month:"long"})}function L(e,t=0){return new Intl.NumberFormat(navigator.language,{maximumFractionDigits:t,minimumFractionDigits:t}).format(e)}function E(e){return new Intl.NumberFormat(navigator.language,{maximumFractionDigits:1,minimumFractionDigits:0,style:"percent"}).format(e)}function F(e){return e.toLocaleString({hour:"2-digit",minute:"2-digit"})}function G(e,t,r=5,n){let a=[1,5,10,25,50,100,250,500,1000,2500,5000,1e4],o=[0.1,0.5,...a],i=t-e,u=n?o:a;for(let f of u){let k=Math.floor(i/f),d=[];if(k>r+1)continue;d.push(e);for(let M=1;M<k;++M)d.push(M*f+e);return d.push(t),d}let s=i.toString().length-1,m=Math.pow(10,s),l=[];for(let f=0;f<i;f+=m)l.push(f+e);return l}function H(e){if(e.hour>=6&&e.hour<10)return"alert";if(e.hour>=10&&e.hour<18)return"focused";if(e.hour>=18&&e.hour<22)return"wind_down";return"sleep"}function _(e){if(e.hour>=5&&e.hour<12)return"morning";if(e.hour>=12&&e.hour<17)return"afternoon";if(e.hour>=17&&e.hour<22)return"evening";return"night"}import{DateTime as fe}from"luxon";function A(e){let t=fe.now();switch(e){case"afternoon":return[t.set({hour:12,minute:0,second:0,millisecond:0}),t.set({hour:17,minute:0,second:0,millisecond:0})];case"evening":return[t.set({hour:17,minute:0,second:0,millisecond:0}),t.set({hour:22,minute:0,second:0,millisecond:0})];case"morning":return[t.set({hour:5,minute:0,second:0,millisecond:0}),t.set({hour:12,minute:0,second:0,millisecond:0})];case"night":return[t.set({hour:22,minute:0,second:0,millisecond:0}),t.set({hour:22,minute:0,second:0,millisecond:0}).plus({hours:7})]}}function j(e){let t=e.year%100;if(t%=19,t>9)t-=19;if(t=t*11%30+e.month+e.day,e.month<3)t+=2;if(e.year<2000)t-=4;else t-=8.3;t=Math.floor(t+0.5)%30;let n=(t<0?t+30:t)/29.530588853;if(n<0.03||n>0.97)return"new_moon";if(n<0.22)return"waxing_crescent";if(n<0.28)return"first_quarter";if(n<0.47)return"waxing_gibbous";if(n<0.53)return"full_moon";if(n<0.72)return"waning_gibbous";if(n<0.78)return"last_quarter";return"waning_crescent"}function O(e){let t={};do{if(e.name==="")break;for(let[r,n]of Object.entries(Object.getOwnPropertyDescriptors(e.prototype))){if(["constructor","clone","toJSON"].includes(r))continue;if(!n.get&&!n.set)continue;t[r]=n}}while(e=Object.getPrototypeOf(e));return t}var ce={af:["Afghanistan",33,65],ax:["Åland Islands",60.116667,19.9],al:["Albania",41,20],dz:["Algeria",28,3],as:["American Samoa",-14.3333,-170],ad:["Andorra",42.5,1.6],ao:["Angola",-12.5,18.5],ai:["Anguilla",18.25,-63.1667],aq:["Antarctica",-90,0],ag:["Antigua and Barbuda",17.05,-61.8],ar:["Argentina",-34,-64],am:["Armenia",40,45],aw:["Aruba",12.5,-69.9667],au:["Australia",-27,133],at:["Austria",47.3333,13.3333],az:["Azerbaijan",40.5,47.5],bs:["Bahamas",24.25,-76],bh:["Bahrain",26,50.55],bd:["Bangladesh",24,90],bb:["Barbados",13.1667,-59.5333],by:["Belarus",53,28],be:["Belgium",50.8333,4],bz:["Belize",17.25,-88.75],bj:["Benin",9.5,2.25],bm:["Bermuda",32.3333,-64.75],bt:["Bhutan",27.5,90.5],bo:["Bolivia",-17,-65],bq:["Bonaire, Sint Eustatius and Saba",12.183333,-68.233333],ba:["Bosnia and Herzegovina",44,18],bw:["Botswana",-22,24],bv:["Bouvet Island",-54.4333,3.4],br:["Brazil",-10,-55],io:["British Indian Ocean Territory",-6,71.5],bn:["Brunei",4.5,114.6667],bg:["Bulgaria",43,25],bf:["Burkina Faso",13,-2],bi:["Burundi",-3.5,30],kh:["Cambodia",13,105],cm:["Cameroon",6,12],ca:["Canada",60,-95],cv:["Cape Verde",16,-24],ky:["Cayman Islands",19.5,-80.5],cf:["Central African Republic",7,21],td:["Chad",15,19],cl:["Chile",-30,-71],cn:["China",35,105],cx:["Christmas Island",-10.5,105.6667],cc:["Cocos (Keeling) Islands",-12.5,96.8333],co:["Colombia",4,-72],km:["Comoros",-12.1667,44.25],cd:["Congo, Democratic Republic of the",0,25],cg:["Congo",-1,15],ck:["Cook Islands",-21.2333,-159.7667],cr:["Costa Rica",10,-84],ci:["Côte d'Ivoire",8,-5],hr:["Croatia",45.1667,15.5],cu:["Cuba",21.5,-80],cw:["Curaçao",12.166667,-68.966667],cy:["Cyprus",35,33],cz:["Czech Republic",49.75,15.5],dk:["Denmark",56,10],dj:["Djibouti",11.5,43],dm:["Dominica",15.4167,-61.3333],do:["Dominican Republic",19,-70.6667],ec:["Ecuador",-2,-77.5],eg:["Egypt",27,30],sv:["El Salvador",13.8333,-88.9167],gq:["Equatorial Guinea",2,10],er:["Eritrea",15,39],ee:["Estonia",59,26],et:["Ethiopia",8,38],fk:["Falkland Islands (Malvinas)",-51.75,-59],fo:["Faroe Islands",62,-7],fj:["Fiji",-18,175],fi:["Finland",64,26],fr:["France",46,2],gf:["French Guiana",4,-53],pf:["French Polynesia",-15,-140],tf:["French Southern Territories",-43,67],ga:["Gabon",-1,11.75],gm:["Gambia",13.4667,-16.5667],ge:["Georgia",42,43.5],de:["Germany",51,9],gh:["Ghana",8,-2],gi:["Gibraltar",36.1833,-5.3667],gr:["Greece",39,22],gl:["Greenland",72,-40],gd:["Grenada",12.1167,-61.6667],gp:["Guadeloupe",16.25,-61.5833],gu:["Guam",13.4667,144.7833],gt:["Guatemala",15.5,-90.25],gg:["Guernsey",49.5,-2.56],gw:["Guinea-Bissau",12,-15],gn:["Guinea",11,-10],gy:["Guyana",5,-59],ht:["Haiti",19,-72.4167],hm:["Heard Island and McDonald Islands",-53.1,72.5167],va:["Holy See",41.9,12.45],hn:["Honduras",15,-86.5],hk:["Hong Kong",22.25,114.1667],hu:["Hungary",47,20],is:["Iceland",65,-18],in:["India",20,77],id:["Indonesia",-5,120],ir:["Iran",32,53],iq:["Iraq",33,44],ie:["Ireland",53,-8],im:["Isle of Man",54.23,-4.55],il:["Israel",31.5,34.75],it:["Italy",42.8333,12.8333],jm:["Jamaica",18.25,-77.5],jp:["Japan",36,138],je:["Jersey",49.21,-2.13],jo:["Jordan",31,36],kz:["Kazakhstan",48,68],ke:["Kenya",1,38],ki:["Kiribati",1.4167,173],kp:["Korea, North",40,127],kr:["Korea, South",37,127.5],xk:["Kosovo",42.583333,21],kw:["Kuwait",29.3375,47.6581],kg:["Kyrgyzstan",41,75],la:["Laos",18,105],lv:["Latvia",57,25],lb:["Lebanon",33.8333,35.8333],ls:["Lesotho",-29.5,28.5],lr:["Liberia",6.5,-9.5],ly:["Libya",25,17],li:["Liechtenstein",47.1667,9.5333],lt:["Lithuania",56,24],lu:["Luxembourg",49.75,6.1667],mo:["Macao",22.1667,113.55],mk:["North Macedonia",41.8333,22],mg:["Madagascar",-20,47],mw:["Malawi",-13.5,34],my:["Malaysia",2.5,112.5],mv:["Maldives",3.25,73],ml:["Mali",17,-4],mt:["Malta",35.8333,14.5833],mh:["Marshall Islands",9,168],mq:["Martinique",14.6667,-61],mr:["Mauritania",20,-12],mu:["Mauritius",-20.2833,57.55],yt:["Mayotte",-12.8333,45.1667],mx:["Mexico",23,-102],fm:["Micronesia",6.9167,158.25],md:["Moldova",47,29],mc:["Monaco",43.7333,7.4],mn:["Mongolia",46,105],me:["Montenegro",42,19],ms:["Montserrat",16.75,-62.2],ma:["Morocco",32,-5],mz:["Mozambique",-18.25,35],mm:["Myanmar",22,98],na:["Namibia",-22,17],nr:["Nauru",-0.5333,166.9167],np:["Nepal",28,84],nl:["Netherlands",52.5,5.75],nc:["New Caledonia",-21.5,165.5],nz:["New Zealand",-41,174],ni:["Nicaragua",13,-85],ne:["Niger",16,8],ng:["Nigeria",10,8],nu:["Niue",-19.0333,-169.8667],nf:["Norfolk Island",-29.0333,167.95],mp:["Northern Mariana Islands",15.2,145.75],no:["Norway",62,10],om:["Oman",21,57],pk:["Pakistan",30,70],pw:["Palau",7.5,134.5],ps:["Palestine",32,35.25],pa:["Panama",9,-80],pg:["Papua New Guinea",-6,147],py:["Paraguay",-23,-58],pe:["Peru",-10,-76],ph:["Philippines",13,122],pn:["Pitcairn",-24.7,-127.4],pl:["Poland",52,20],pt:["Portugal",39.5,-8],pr:["Puerto Rico",18.25,-66.5],qa:["Qatar",25.5,51.25],re:["Réunion",-21.1,55.6],ro:["Romania",46,25],ru:["Russia",60,100],rw:["Rwanda",-2,30],bl:["Saint Barthélemy",17.897728,-62.834244],sh:["Saint Helena",-15.9333,-5.7],kn:["Saint Kitts and Nevis",17.3333,-62.75],lc:["Saint Lucia",13.8833,-61.1333],mf:["Saint Martin",18.075278,-63.06],pm:["Saint Pierre and Miquelon",46.8333,-56.3333],vc:["Saint Vincent and the Grenadines",13.25,-61.2],ws:["Samoa",-13.5833,-172.3333],sm:["San Marino",43.7667,12.4167],st:["Sao Tome and Principe",1,7],sa:["Saudi Arabia",25,45],sn:["Senegal",14,-14],rs:["Serbia",44,21],sc:["Seychelles",-4.5833,55.6667],sl:["Sierra Leone",8.5,-11.5],sg:["Singapore",1.3667,103.8],sx:["Sint Maarten",18.033333,-63.05],sk:["Slovakia",48.6667,19.5],si:["Slovenia",46,15],sb:["Solomon Islands",-8,159],so:["Somalia",10,49],za:["South Africa",-29,24],gs:["South Georgia and the South Sandwich Islands",-54.5,-37],ss:["South Sudan",8,30],es:["Spain",40,-4],lk:["Sri Lanka",7,81],sd:["Sudan",15,30],sr:["Suriname",4,-56],sj:["Svalbard and Jan Mayen",78,20],sz:["Swaziland",-26.5,31.5],se:["Sweden",62,15],ch:["Switzerland",47,8],sy:["Syria",35,38],tw:["Taiwan",23.5,121],tj:["Tajikistan",39,71],tz:["Tanzania",-6,35],th:["Thailand",15,100],tl:["Timor-Leste",-8.55,125.5167],tg:["Togo",8,1.1667],tk:["Tokelau",-9,-172],to:["Tonga",-20,-175],tt:["Trinidad and Tobago",11,-61],tn:["Tunisia",34,9],tr:["Turkey",39,35],tm:["Turkmenistan",40,60],tc:["Turks and Caicos Islands",21.75,-71.5833],tv:["Tuvalu",-8,178],ug:["Uganda",1,32],ua:["Ukraine",49,32],ae:["United Arab Emirates",24,54],gb:["United Kingdom",54,-2],um:["United States Minor Outlying Islands",19.2833,166.6],us:["United States",38,-97],uy:["Uruguay",-33,-56],uz:["Uzbekistan",41,64],vu:["Vanuatu",-16,167],ve:["Venezuela",8,-66],vn:["Vietnam",16,106],vg:["Virgin Islands, British",18.5,-64.5],vi:["Virgin Islands, U.S.",18.3333,-64.8333],wf:["Wallis and Futuna",-13.3,-176.2],eh:["Western Sahara",24.5,-13],ye:["Yemen",15,48],zm:["Zambia",-15,30],zw:["Zimbabwe",-20,30]},de=ce;function U(e){return de[e]??null}function h(e){let t=U(e);if(!t)return null;let[,r]=t;return r>=0}var pe={autumn:[9,10,11],spring:[3,4,5],summer:[6,7,8],winter:[12,1,2]},be={autumn:[3,4,5],spring:[9,10,11],summer:[12,1,2],winter:[6,7,8]};function q(e,t){let r=h(e),n=t.month,a=r?pe:be;for(let o of["autumn","spring","summer","winter"])if(a[o].includes(n))return o;return null}function K(e){switch(e){case"spring":return"fresh";case"summer":return"energetic";case"autumn":return"cozy";case"winter":return"warm"}}function V(e){if(e.weekday===6||e.weekday===7)return"off";if(e.hour>=9&&e.hour<12)return"work";if(e.hour>=12&&e.hour<13)return"break";if(e.hour>=13&&e.hour<17)return"work";return"off"}function W(e){if(e.month===3&&e.day>=21||e.month===4&&e.day<=19)return"aries";if(e.month===4&&e.day>=20||e.month===5&&e.day<=20)return"taurus";if(e.month===5&&e.day>=21||e.month===6&&e.day<=20)return"gemini";if(e.month===6&&e.day>=21||e.month===7&&e.day<=22)return"cancer";if(e.month===7&&e.day>=23||e.month===8&&e.day<=22)return"leo";if(e.month===8&&e.day>=23||e.month===9&&e.day<=22)return"virgo";if(e.month===9&&e.day>=23||e.month===10&&e.day<=22)return"libra";if(e.month===10&&e.day>=23||e.month===11&&e.day<=21)return"scorpio";if(e.month===11&&e.day>=22||e.month===12&&e.day<=21)return"sagittarius";if(e.month===12&&e.day>=22||e.month===1&&e.day<=19)return"capricorn";if(e.month===1&&e.day>=20||e.month===2&&e.day<=18)return"aquarius";return"pisces"}function Z(e){let t=parseInt(e.startsWith("#")?e.substring(1):e,16);return[t>>16&255,t>>8&255,t&255]}function c(e,t,r){if(r<0)r+=1;if(r>1)r-=1;if(r<0.16666666666666666)return e+(t-e)*6*r;if(r<0.5)return t;if(r<0.6666666666666666)return e+(t-e)*(0.6666666666666666-r)*6;return e}function y(e,t,r){let n,a,o;if(e/=360,t/=100,r/=100,t===0)n=a=o=r;else{let i=r<0.5?r*(1+t):r+t-r*t,u=2*r-i;n=c(u,i,e+0.3333333333333333),a=c(u,i,e),o=c(u,i,e-0.3333333333333333)}return n=Math.round(n*255),a=Math.round(a*255),o=Math.round(o*255),[n,a,o]}function x(e,t,r){e/=255,t/=255,r/=255;let n=Math.min(e,t,r),a=Math.max(e,t,r),o=a-n,i,u=a===0?0:o/a,s=a;if(a===n)i=0;else{if(a===e)i=(t-r)/o+(t<r?6:0);else if(a===t)i=(r-e)/o+2;else i=(e-t)/o+4;i/=6}return[i,u,s]}function J(e,t,r){return x(...y(e,t,r))}function S(e,t,r){let n=0,a=0,o=0,i=Math.floor(e*6),u=e*6-i,s=r*(1-t),m=r*(1-u*t),l=r*(1-(1-u)*t);switch(i%6){case 0:n=r,a=l,o=s;break;case 1:n=m,a=r,o=s;break;case 2:n=s,a=r,o=l;break;case 3:n=s,a=m,o=r;break;case 4:n=l,a=s,o=r;break;case 5:n=r,a=s,o=m;break}return n=Math.round(n*255),a=Math.round(a*255),o=Math.round(o*255),[n,a,o]}function w(e,t,r){e/=255,t/=255,r/=255;let n=Math.min(e,t,r),a=Math.max(e,t,r),o=a-n,i,u,s;if(o===0)i=0;else if(a===e)i=(t-r)/o%6;else if(a===t)i=(r-e)/o+2;else i=(e-t)/o+4;if(i=Math.round(i*60),i<0)i+=360;return s=(a+n)/2,u=o===0?0:o/(1-Math.abs(2*s-1)),u=+(u*100).toFixed(1),s=+(s*100).toFixed(1),[i,u,s]}function $(e,t,r){return w(...S(e,t,r))}function Q(e){if(!globalThis.document)return!1;return e instanceof HTMLElement}function X(e,t){let r=!1;for(let n=0,a=t.length-1;n<t.length;a=n++){let o=t[n][0],i=t[n][1],u=t[a][0],s=t[a][1];if(i>e[1]!=s>e[1]&&e[0]<(u-o)*(e[1]-i)/(s-i)+o)r=!r}return r}function Y(e,t){return t.hasSame(e,"day")}function ee(e){let t=new Uint32Array(1);t[0]=e;function r(){let o=t[0]=t[0]+1831565813|0,i=Math.imul(o^o>>>15,1|o);return i=i+Math.imul(i^i>>>7,61|i)^i,((i^i>>>14)>>>0)/4294967296}function n(o,i){return r()*(i-o)+o}function a(){return ee(r()*4294967296)}return{fork:a,next:r,nextBetween:n}}var ge=ee;function te(e){if(window.location!==window.parent.location)window.open(e,"_top");else window.location.href=e}import{ref as he,watch as ye}from"vue";function T(e,t,r=JSON.stringify,n=JSON.parse){let a=localStorage.getItem(e),o=a?n(a):t,i=he(o);return ye(i,(u)=>{if(u===null||u===void 0)localStorage.removeItem(e);else localStorage.setItem(e,r(u))},{deep:!0,immediate:!0}),i}function re(e,t){return T(e,t,(r)=>r??"",(r)=>r===""?null:r)}async function ne(e){let t=document.createElement("iframe");t.style.position="fixed",t.style.top="-100dvh",t.style.left="-100dvw",t.style.width="1px",t.style.height="1px",document.body.appendChild(t);let r=t.contentDocument??t.contentWindow?.document;if(!r)throw document.body.removeChild(t),Error("Cannot print, no access to the framed document.");r.documentElement.innerHTML=e;let n=Array.from(r.getElementsByTagName("img"));await Promise.all(n.map((a)=>new Promise((o)=>{if(a.complete)o(void 0);else a.addEventListener("load",o,{passive:!0}),a.addEventListener("error",o,{passive:!0})}))),t.contentWindow?.print(),setTimeout(()=>{document.body.removeChild(t)},1000)}function oe(e,t,r){let n=e.toString(16).padStart(2,"0"),a=t.toString(16).padStart(2,"0"),o=r.toString(16).padStart(2,"0");return`#${n}${a}${o}`}function ae(e,t,r){e.prototype[t]=r}function ie(e,t,r){Object.defineProperty(e,t,{value:r})}function ue(e){if("startViewTransition"in document)document.startViewTransition(e);else e()}async function se(e){return new Promise((t)=>setTimeout(t,e))}var vt="✔",Rt="✘",It="—",Bt="–",Nt=()=>{return};export{se as waitFor,ue as viewTransition,ie as setObjectValue,ae as setObjectMethod,p as roundStep,x as rgbToHSV,w as rgbToHSL,oe as rgbToHEX,ne as printHtml,re as persistentStringRef,T as persistentRef,te as openUrl,ge as mulberry32,Y as isToday,X as isPointInPolygon,h as isNorthernHemisphere,Q as isHtmlElement,c as hueToRGB,S as hsvToRGB,$ as hsvToHSL,y as hslToRGB,J as hslToHSV,Z as hexToRGB,W as getZodiacSign,V as getWorkdayPeriod,K as getSeasonalMood,q as getSeason,O as getPrototypeChain,j as getMoonPhase,A as getDayPeriodRange,_ as getDayPeriod,H as getCircadianPhase,G as generateStepTicks,F as formatTime,E as formatPercentage,L as formatNumber,z as formatMonth,N as formatDateTime,B as formatDateFull,I as formatDate,b as downloadUrl,R as downloadString,g as downloadBlob,v as defineStore,P as debounce,D as countDecimals,C as clampWithStepPrecision,Nt as NOOP,Bt as NDASH,It as MDASH,Rt as CROSS,vt as CHECK};
2
2
 
3
- //# debugId=0AF3AC6A4F8A01C064756E2164756E21
3
+ //# debugId=A9C7C67721EBAF2B64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/roundStep.ts", "../src/clampWithStepPrecision.ts", "../src/countDecimals.ts", "../src/debounce.ts", "../src/defineStore.ts", "../src/downloadUrl.ts", "../src/downloadBlob.ts", "../src/downloadString.ts", "../src/formatDate.ts", "../src/formatDateFull.ts", "../src/formatDateTime.ts", "../src/formatMonth.ts", "../src/formatNumber.ts", "../src/formatPercentage.ts", "../src/formatTime.ts", "../src/generateStepTicks.ts", "../src/getPrototypeChain.ts", "../src/hexToRGB.ts", "../src/hueToRGB.ts", "../src/hslToRGB.ts", "../src/rgbToHSV.ts", "../src/hslToHSV.ts", "../src/hsvToRGB.ts", "../src/rgbToHSL.ts", "../src/hsvToHSL.ts", "../src/isHtmlElement.ts", "../src/isPointInPolygon.ts", "../src/isToday.ts", "../src/mulberry32.ts", "../src/openUrl.ts", "../src/persistentRef.ts", "../src/persistentStringRef.ts", "../src/printHtml.ts", "../src/rgbToHEX.ts", "../src/setObjectMethod.ts", "../src/setObjectValue.ts", "../src/viewTransition.ts", "../src/waitFor.ts", "../src/index.ts"],
3
+ "sources": ["../src/roundStep.ts", "../src/clampWithStepPrecision.ts", "../src/countDecimals.ts", "../src/debounce.ts", "../src/defineStore.ts", "../src/downloadUrl.ts", "../src/downloadBlob.ts", "../src/downloadString.ts", "../src/formatDate.ts", "../src/formatDateFull.ts", "../src/formatDateTime.ts", "../src/formatMonth.ts", "../src/formatNumber.ts", "../src/formatPercentage.ts", "../src/formatTime.ts", "../src/generateStepTicks.ts", "../src/getCircadianPhase.ts", "../src/getDayPeriod.ts", "../src/getDayPeriodRange.ts", "../src/getMoonPhase.ts", "../src/getPrototypeChain.ts", "../src/data/countries.ts", "../src/isNorthernHemisphere.ts", "../src/getSeason.ts", "../src/getSeasonalMood.ts", "../src/getWorkdayPeriod.ts", "../src/getZodiacSign.ts", "../src/hexToRGB.ts", "../src/hueToRGB.ts", "../src/hslToRGB.ts", "../src/rgbToHSV.ts", "../src/hslToHSV.ts", "../src/hsvToRGB.ts", "../src/rgbToHSL.ts", "../src/hsvToHSL.ts", "../src/isHtmlElement.ts", "../src/isPointInPolygon.ts", "../src/isToday.ts", "../src/mulberry32.ts", "../src/openUrl.ts", "../src/persistentRef.ts", "../src/persistentStringRef.ts", "../src/printHtml.ts", "../src/rgbToHEX.ts", "../src/setObjectMethod.ts", "../src/setObjectValue.ts", "../src/viewTransition.ts", "../src/waitFor.ts", "../src/index.ts"],
4
4
  "sourcesContent": [
5
5
  "export default function (value: number, step: number): number {\n return Math.round(value / step) * step;\n}\n",
6
6
  "import roundStep from './roundStep';\n\nexport default function (value: number, min: number, max: number, step: number): number {\n return Math.max(min, Math.min(max, +roundStep(value * (max - min) + min, step).toPrecision(4)));\n}\n",
@@ -18,7 +18,17 @@
18
18
  "export default function (value: number): string {\n return new Intl.NumberFormat(navigator.language, {\n maximumFractionDigits: 1,\n minimumFractionDigits: 0,\n style: 'percent'\n }).format(value);\n}\n",
19
19
  "import type { DateTime } from 'luxon';\n\nexport default function (dateTime: DateTime): string {\n return dateTime.toLocaleString({\n hour: '2-digit',\n minute: '2-digit'\n });\n}\n",
20
20
  "export default function (lower: number, upper: number, target: number = 5, isSmall?: boolean): number[] {\n const STEP_TICK_SIZES = [1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000] as const;\n const STEP_TICK_SMALL_SIZES = [.1, .5, ...STEP_TICK_SIZES];\n\n const delta = upper - lower;\n const sizes = isSmall ? STEP_TICK_SMALL_SIZES : STEP_TICK_SIZES;\n\n for (const size of sizes) {\n const count = Math.floor(delta / size);\n const steps: number[] = [];\n\n if (count > target + 1) {\n continue;\n }\n\n steps.push(lower);\n\n for (let i = 1; i < count; ++i) {\n steps.push(i * size + lower);\n }\n\n steps.push(upper);\n\n return steps;\n }\n\n const digits = delta.toString().length - 1;\n const power = Math.pow(10, digits);\n const steps: number[] = [];\n\n for (let i = 0; i < delta; i += power) {\n steps.push(i + lower);\n }\n\n return steps;\n}\n",
21
+ "import type { DateTime } from 'luxon';\n\nexport type CircadianPhase =\n | 'alert'\n | 'focused'\n | 'sleep'\n | 'wind_down';\n\nexport default function (date: DateTime): CircadianPhase {\n if (date.hour >= 6 && date.hour < 10) return 'alert';\n if (date.hour >= 10 && date.hour < 18) return 'focused';\n if (date.hour >= 18 && date.hour < 22) return 'wind_down';\n return 'sleep';\n}\n",
22
+ "import type { DateTime } from 'luxon';\n\nexport type DayPeriod =\n | 'afternoon'\n | 'evening'\n | 'morning'\n | 'night';\n\nexport default function (date: DateTime): DayPeriod {\n if (date.hour >= 5 && date.hour < 12) return 'morning';\n if (date.hour >= 12 && date.hour < 17) return 'afternoon';\n if (date.hour >= 17 && date.hour < 22) return 'evening';\n return 'night';\n}\n",
23
+ "import { DateTime } from 'luxon';\nimport type { DayPeriod } from './getDayPeriod';\n\nexport default function (period: DayPeriod): [DateTime, DateTime] {\n const dt = DateTime.now();\n\n switch (period) {\n case 'afternoon':\n return [\n dt.set({hour: 12, minute: 0, second: 0, millisecond: 0}),\n dt.set({hour: 17, minute: 0, second: 0, millisecond: 0})\n ];\n\n case 'evening':\n return [\n dt.set({hour: 17, minute: 0, second: 0, millisecond: 0}),\n dt.set({hour: 22, minute: 0, second: 0, millisecond: 0})\n ];\n\n case 'morning':\n return [\n dt.set({hour: 5, minute: 0, second: 0, millisecond: 0}),\n dt.set({hour: 12, minute: 0, second: 0, millisecond: 0})\n ];\n\n case 'night':\n return [\n dt.set({hour: 22, minute: 0, second: 0, millisecond: 0}),\n dt.set({hour: 22, minute: 0, second: 0, millisecond: 0}).plus({hours: 7})\n ];\n }\n}\n",
24
+ "import type { DateTime } from 'luxon';\n\nexport type MoonPhase =\n | 'new_moon'\n | 'waxing_crescent'\n | 'first_quarter'\n | 'waxing_gibbous'\n | 'full_moon'\n | 'waning_gibbous'\n | 'last_quarter'\n | 'waning_crescent';\n\nexport default function (date: DateTime): MoonPhase {\n // Conway’s algorithm\n let r = date.year % 100;\n r %= 19;\n if (r > 9) r -= 19;\n\n r = ((r * 11) % 30) + date.month + date.day;\n\n if (date.month < 3) r += 2;\n if (date.year < 2000) r -= 4;\n else r -= 8.3;\n\n r = Math.floor(r + 0.5) % 30;\n\n const age = r < 0 ? r + 30 : r;\n const phase = age / 29.530588853;\n\n if (phase < 0.03 || phase > 0.97) return 'new_moon';\n if (phase < 0.22) return 'waxing_crescent';\n if (phase < 0.28) return 'first_quarter';\n if (phase < 0.47) return 'waxing_gibbous';\n if (phase < 0.53) return 'full_moon';\n if (phase < 0.72) return 'waning_gibbous';\n if (phase < 0.78) return 'last_quarter';\n return 'waning_crescent';\n}\n",
21
25
  "import type { Descriptors } from './types';\n\nexport default function (obj: Function): Descriptors {\n const entries: Descriptors = {};\n\n do {\n if (obj.name === '') {\n break;\n }\n\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(obj.prototype))) {\n if (['constructor', 'clone', 'toJSON'].includes(key)) {\n continue;\n }\n\n if (!descriptor.get && !descriptor.set) {\n continue;\n }\n\n entries[key] = descriptor;\n }\n } while (obj = Object.getPrototypeOf(obj));\n\n return entries;\n}\n",
26
+ "export type Country = [name: string, latitude: number, longitude: number];\nexport type CountryCode = keyof typeof raw;\nexport type Countries = Record<CountryCode, Country>;\n\nconst raw = {\n af: [\"Afghanistan\", 33, 65],\n ax: [\"Åland Islands\", 60.116667, 19.9],\n al: [\"Albania\", 41, 20],\n dz: [\"Algeria\", 28, 3],\n as: [\"American Samoa\", -14.3333, -170],\n ad: [\"Andorra\", 42.5, 1.6],\n ao: [\"Angola\", -12.5, 18.5],\n ai: [\"Anguilla\", 18.25, -63.1667],\n aq: [\"Antarctica\", -90, 0],\n ag: [\"Antigua and Barbuda\", 17.05, -61.8],\n ar: [\"Argentina\", -34, -64],\n am: [\"Armenia\", 40, 45],\n aw: [\"Aruba\", 12.5, -69.9667],\n au: [\"Australia\", -27, 133],\n at: [\"Austria\", 47.3333, 13.3333],\n az: [\"Azerbaijan\", 40.5, 47.5],\n bs: [\"Bahamas\", 24.25, -76],\n bh: [\"Bahrain\", 26, 50.55],\n bd: [\"Bangladesh\", 24, 90],\n bb: [\"Barbados\", 13.1667, -59.5333],\n by: [\"Belarus\", 53, 28],\n be: [\"Belgium\", 50.8333, 4],\n bz: [\"Belize\", 17.25, -88.75],\n bj: [\"Benin\", 9.5, 2.25],\n bm: [\"Bermuda\", 32.3333, -64.75],\n bt: [\"Bhutan\", 27.5, 90.5],\n bo: [\"Bolivia\", -17, -65],\n bq: [\"Bonaire, Sint Eustatius and Saba\", 12.183333, -68.233333],\n ba: [\"Bosnia and Herzegovina\", 44, 18],\n bw: [\"Botswana\", -22, 24],\n bv: [\"Bouvet Island\", -54.4333, 3.4],\n br: [\"Brazil\", -10, -55],\n io: [\"British Indian Ocean Territory\", -6, 71.5],\n bn: [\"Brunei\", 4.5, 114.6667],\n bg: [\"Bulgaria\", 43, 25],\n bf: [\"Burkina Faso\", 13, -2],\n bi: [\"Burundi\", -3.5, 30],\n kh: [\"Cambodia\", 13, 105],\n cm: [\"Cameroon\", 6, 12],\n ca: [\"Canada\", 60, -95],\n cv: [\"Cape Verde\", 16, -24],\n ky: [\"Cayman Islands\", 19.5, -80.5],\n cf: [\"Central African Republic\", 7, 21],\n td: [\"Chad\", 15, 19],\n cl: [\"Chile\", -30, -71],\n cn: [\"China\", 35, 105],\n cx: [\"Christmas Island\", -10.5, 105.6667],\n cc: [\"Cocos (Keeling) Islands\", -12.5, 96.8333],\n co: [\"Colombia\", 4, -72],\n km: [\"Comoros\", -12.1667, 44.25],\n cd: [\"Congo, Democratic Republic of the\", 0, 25],\n cg: [\"Congo\", -1, 15],\n ck: [\"Cook Islands\", -21.2333, -159.7667],\n cr: [\"Costa Rica\", 10, -84],\n ci: [\"Côte d'Ivoire\", 8, -5],\n hr: [\"Croatia\", 45.1667, 15.5],\n cu: [\"Cuba\", 21.5, -80],\n cw: [\"Curaçao\", 12.166667, -68.966667],\n cy: [\"Cyprus\", 35, 33],\n cz: [\"Czech Republic\", 49.75, 15.5],\n dk: [\"Denmark\", 56, 10],\n dj: [\"Djibouti\", 11.5, 43],\n dm: [\"Dominica\", 15.4167, -61.3333],\n do: [\"Dominican Republic\", 19, -70.6667],\n ec: [\"Ecuador\", -2, -77.5],\n eg: [\"Egypt\", 27, 30],\n sv: [\"El Salvador\", 13.8333, -88.9167],\n gq: [\"Equatorial Guinea\", 2, 10],\n er: [\"Eritrea\", 15, 39],\n ee: [\"Estonia\", 59, 26],\n et: [\"Ethiopia\", 8, 38],\n fk: [\"Falkland Islands (Malvinas)\", -51.75, -59],\n fo: [\"Faroe Islands\", 62, -7],\n fj: [\"Fiji\", -18, 175],\n fi: [\"Finland\", 64, 26],\n fr: [\"France\", 46, 2],\n gf: [\"French Guiana\", 4, -53],\n pf: [\"French Polynesia\", -15, -140],\n tf: [\"French Southern Territories\", -43, 67],\n ga: [\"Gabon\", -1, 11.75],\n gm: [\"Gambia\", 13.4667, -16.5667],\n ge: [\"Georgia\", 42, 43.5],\n de: [\"Germany\", 51, 9],\n gh: [\"Ghana\", 8, -2],\n gi: [\"Gibraltar\", 36.1833, -5.3667],\n gr: [\"Greece\", 39, 22],\n gl: [\"Greenland\", 72, -40],\n gd: [\"Grenada\", 12.1167, -61.6667],\n gp: [\"Guadeloupe\", 16.25, -61.5833],\n gu: [\"Guam\", 13.4667, 144.7833],\n gt: [\"Guatemala\", 15.5, -90.25],\n gg: [\"Guernsey\", 49.5, -2.56],\n gw: [\"Guinea-Bissau\", 12, -15],\n gn: [\"Guinea\", 11, -10],\n gy: [\"Guyana\", 5, -59],\n ht: [\"Haiti\", 19, -72.4167],\n hm: [\"Heard Island and McDonald Islands\", -53.1, 72.5167],\n va: [\"Holy See\", 41.9, 12.45],\n hn: [\"Honduras\", 15, -86.5],\n hk: [\"Hong Kong\", 22.25, 114.1667],\n hu: [\"Hungary\", 47, 20],\n is: [\"Iceland\", 65, -18],\n in: [\"India\", 20, 77],\n id: [\"Indonesia\", -5, 120],\n ir: [\"Iran\", 32, 53],\n iq: [\"Iraq\", 33, 44],\n ie: [\"Ireland\", 53, -8],\n im: [\"Isle of Man\", 54.23, -4.55],\n il: [\"Israel\", 31.5, 34.75],\n it: [\"Italy\", 42.8333, 12.8333],\n jm: [\"Jamaica\", 18.25, -77.5],\n jp: [\"Japan\", 36, 138],\n je: [\"Jersey\", 49.21, -2.13],\n jo: [\"Jordan\", 31, 36],\n kz: [\"Kazakhstan\", 48, 68],\n ke: [\"Kenya\", 1, 38],\n ki: [\"Kiribati\", 1.4167, 173],\n kp: [\"Korea, North\", 40, 127],\n kr: [\"Korea, South\", 37, 127.5],\n xk: [\"Kosovo\", 42.583333, 21],\n kw: [\"Kuwait\", 29.3375, 47.6581],\n kg: [\"Kyrgyzstan\", 41, 75],\n la: [\"Laos\", 18, 105],\n lv: [\"Latvia\", 57, 25],\n lb: [\"Lebanon\", 33.8333, 35.8333],\n ls: [\"Lesotho\", -29.5, 28.5],\n lr: [\"Liberia\", 6.5, -9.5],\n ly: [\"Libya\", 25, 17],\n li: [\"Liechtenstein\", 47.1667, 9.5333],\n lt: [\"Lithuania\", 56, 24],\n lu: [\"Luxembourg\", 49.75, 6.1667],\n mo: [\"Macao\", 22.1667, 113.55],\n mk: [\"North Macedonia\", 41.8333, 22],\n mg: [\"Madagascar\", -20, 47],\n mw: [\"Malawi\", -13.5, 34],\n my: [\"Malaysia\", 2.5, 112.5],\n mv: [\"Maldives\", 3.25, 73],\n ml: [\"Mali\", 17, -4],\n mt: [\"Malta\", 35.8333, 14.5833],\n mh: [\"Marshall Islands\", 9, 168],\n mq: [\"Martinique\", 14.6667, -61],\n mr: [\"Mauritania\", 20, -12],\n mu: [\"Mauritius\", -20.2833, 57.55],\n yt: [\"Mayotte\", -12.8333, 45.1667],\n mx: [\"Mexico\", 23, -102],\n fm: [\"Micronesia\", 6.9167, 158.25],\n md: [\"Moldova\", 47, 29],\n mc: [\"Monaco\", 43.7333, 7.4],\n mn: [\"Mongolia\", 46, 105],\n me: [\"Montenegro\", 42, 19],\n ms: [\"Montserrat\", 16.75, -62.2],\n ma: [\"Morocco\", 32, -5],\n mz: [\"Mozambique\", -18.25, 35],\n mm: [\"Myanmar\", 22, 98],\n na: [\"Namibia\", -22, 17],\n nr: [\"Nauru\", -0.5333, 166.9167],\n np: [\"Nepal\", 28, 84],\n nl: [\"Netherlands\", 52.5, 5.75],\n nc: [\"New Caledonia\", -21.5, 165.5],\n nz: [\"New Zealand\", -41, 174],\n ni: [\"Nicaragua\", 13, -85],\n ne: [\"Niger\", 16, 8],\n ng: [\"Nigeria\", 10, 8],\n nu: [\"Niue\", -19.0333, -169.8667],\n nf: [\"Norfolk Island\", -29.0333, 167.95],\n mp: [\"Northern Mariana Islands\", 15.2, 145.75],\n no: [\"Norway\", 62, 10],\n om: [\"Oman\", 21, 57],\n pk: [\"Pakistan\", 30, 70],\n pw: [\"Palau\", 7.5, 134.5],\n ps: [\"Palestine\", 32, 35.25],\n pa: [\"Panama\", 9, -80],\n pg: [\"Papua New Guinea\", -6, 147],\n py: [\"Paraguay\", -23, -58],\n pe: [\"Peru\", -10, -76],\n ph: [\"Philippines\", 13, 122],\n pn: [\"Pitcairn\", -24.7, -127.4],\n pl: [\"Poland\", 52, 20],\n pt: [\"Portugal\", 39.5, -8],\n pr: [\"Puerto Rico\", 18.25, -66.5],\n qa: [\"Qatar\", 25.5, 51.25],\n re: [\"Réunion\", -21.1, 55.6],\n ro: [\"Romania\", 46, 25],\n ru: [\"Russia\", 60, 100],\n rw: [\"Rwanda\", -2, 30],\n bl: [\"Saint Barthélemy\", 17.897728, -62.834244],\n sh: [\"Saint Helena\", -15.9333, -5.7],\n kn: [\"Saint Kitts and Nevis\", 17.3333, -62.75],\n lc: [\"Saint Lucia\", 13.8833, -61.1333],\n mf: [\"Saint Martin\", 18.075278, -63.06],\n pm: [\"Saint Pierre and Miquelon\", 46.8333, -56.3333],\n vc: [\"Saint Vincent and the Grenadines\", 13.25, -61.2],\n ws: [\"Samoa\", -13.5833, -172.3333],\n sm: [\"San Marino\", 43.7667, 12.4167],\n st: [\"Sao Tome and Principe\", 1, 7],\n sa: [\"Saudi Arabia\", 25, 45],\n sn: [\"Senegal\", 14, -14],\n rs: [\"Serbia\", 44, 21],\n sc: [\"Seychelles\", -4.5833, 55.6667],\n sl: [\"Sierra Leone\", 8.5, -11.5],\n sg: [\"Singapore\", 1.3667, 103.8],\n sx: [\"Sint Maarten\", 18.033333, -63.05],\n sk: [\"Slovakia\", 48.6667, 19.5],\n si: [\"Slovenia\", 46, 15],\n sb: [\"Solomon Islands\", -8, 159],\n so: [\"Somalia\", 10, 49],\n za: [\"South Africa\", -29, 24],\n gs: [\"South Georgia and the South Sandwich Islands\", -54.5, -37],\n ss: [\"South Sudan\", 8, 30],\n es: [\"Spain\", 40, -4],\n lk: [\"Sri Lanka\", 7, 81],\n sd: [\"Sudan\", 15, 30],\n sr: [\"Suriname\", 4, -56],\n sj: [\"Svalbard and Jan Mayen\", 78, 20],\n sz: [\"Swaziland\", -26.5, 31.5],\n se: [\"Sweden\", 62, 15],\n ch: [\"Switzerland\", 47, 8],\n sy: [\"Syria\", 35, 38],\n tw: [\"Taiwan\", 23.5, 121],\n tj: [\"Tajikistan\", 39, 71],\n tz: [\"Tanzania\", -6, 35],\n th: [\"Thailand\", 15, 100],\n tl: [\"Timor-Leste\", -8.55, 125.5167],\n tg: [\"Togo\", 8, 1.1667],\n tk: [\"Tokelau\", -9, -172],\n to: [\"Tonga\", -20, -175],\n tt: [\"Trinidad and Tobago\", 11, -61],\n tn: [\"Tunisia\", 34, 9],\n tr: [\"Turkey\", 39, 35],\n tm: [\"Turkmenistan\", 40, 60],\n tc: [\"Turks and Caicos Islands\", 21.75, -71.5833],\n tv: [\"Tuvalu\", -8, 178],\n ug: [\"Uganda\", 1, 32],\n ua: [\"Ukraine\", 49, 32],\n ae: [\"United Arab Emirates\", 24, 54],\n gb: [\"United Kingdom\", 54, -2],\n um: [\"United States Minor Outlying Islands\", 19.2833, 166.6],\n us: [\"United States\", 38, -97],\n uy: [\"Uruguay\", -33, -56],\n uz: [\"Uzbekistan\", 41, 64],\n vu: [\"Vanuatu\", -16, 167],\n ve: [\"Venezuela\", 8, -66],\n vn: [\"Vietnam\", 16, 106],\n vg: [\"Virgin Islands, British\", 18.5, -64.5],\n vi: [\"Virgin Islands, U.S.\", 18.3333, -64.8333],\n wf: [\"Wallis and Futuna\", -13.3, -176.2],\n eh: [\"Western Sahara\", 24.5, -13],\n ye: [\"Yemen\", 15, 48],\n zm: [\"Zambia\", -15, 30],\n zw: [\"Zimbabwe\", -20, 30],\n} as const;\nexport const countries: Countries = raw as Countries;\n\nexport function getCountry(code: CountryCode): Country | null {\n return countries[code] ?? null;\n}\n",
27
+ "import { type CountryCode, getCountry } from './data/countries';\n\nexport default function (countryCode: CountryCode): boolean | null {\n const country = getCountry(countryCode);\n\n if (!country) {\n return null;\n }\n\n const [, latitude] = country;\n\n return latitude >= 0;\n}\n",
28
+ "import type { DateTime } from 'luxon';\nimport { type CountryCode } from './data/countries';\nimport isNorthernHemisphere from './isNorthernHemisphere';\n\nexport type Season =\n | 'autumn'\n | 'spring'\n | 'summer'\n | 'winter';\n\nconst NORTHERN_SEASONS: Record<Season, number[]> = {\n autumn: [9, 10, 11],\n spring: [3, 4, 5],\n summer: [6, 7, 8],\n winter: [12, 1, 2]\n};\n\nconst SOUTHERN_SEASONS: Record<Season, number[]> = {\n autumn: [3, 4, 5],\n spring: [9, 10, 11],\n summer: [12, 1, 2],\n winter: [6, 7, 8]\n};\n\nexport default function (countryCode: CountryCode, date: DateTime): Season | null {\n const isNorthern = isNorthernHemisphere(countryCode);\n const month = date.month;\n const seasons = isNorthern ? NORTHERN_SEASONS : SOUTHERN_SEASONS;\n\n for (const season of ['autumn', 'spring', 'summer', 'winter'] as Season[]) {\n if (seasons[season].includes(month)) {\n return season;\n }\n }\n\n return null;\n}\n",
29
+ "import type { Season } from './getSeason';\n\nexport type SeasonMood =\n | 'cozy'\n | 'energetic'\n | 'fresh'\n | 'warm';\n\nexport default function (season: Season): SeasonMood {\n switch (season) {\n case 'spring':\n return 'fresh';\n\n case 'summer':\n return 'energetic';\n\n case 'autumn':\n return 'cozy';\n\n case 'winter':\n return 'warm';\n }\n}\n",
30
+ "import type { DateTime } from 'luxon';\n\nexport type WorkdayPeriod =\n | 'break'\n | 'off'\n | 'work';\n\nexport default function (date: DateTime): WorkdayPeriod {\n if (date.weekday === 6 || date.weekday === 7) return 'off';\n\n if (date.hour >= 9 && date.hour < 12) return 'work';\n if (date.hour >= 12 && date.hour < 13) return 'break';\n if (date.hour >= 13 && date.hour < 17) return 'work';\n return 'off';\n}\n",
31
+ "import type { DateTime } from 'luxon';\n\nexport type ZodiacSign =\n | 'aquarius'\n | 'aries'\n | 'cancer'\n | 'capricorn'\n | 'gemini'\n | 'leo'\n | 'libra'\n | 'pisces'\n | 'sagittarius'\n | 'scorpio'\n | 'taurus'\n | 'virgo';\n\nexport default function (date: DateTime): ZodiacSign {\n if ((date.month === 3 && date.day >= 21) || (date.month === 4 && date.day <= 19)) return 'aries';\n if ((date.month === 4 && date.day >= 20) || (date.month === 5 && date.day <= 20)) return 'taurus';\n if ((date.month === 5 && date.day >= 21) || (date.month === 6 && date.day <= 20)) return 'gemini';\n if ((date.month === 6 && date.day >= 21) || (date.month === 7 && date.day <= 22)) return 'cancer';\n if ((date.month === 7 && date.day >= 23) || (date.month === 8 && date.day <= 22)) return 'leo';\n if ((date.month === 8 && date.day >= 23) || (date.month === 9 && date.day <= 22)) return 'virgo';\n if ((date.month === 9 && date.day >= 23) || (date.month === 10 && date.day <= 22)) return 'libra';\n if ((date.month === 10 && date.day >= 23) || (date.month === 11 && date.day <= 21)) return 'scorpio';\n if ((date.month === 11 && date.day >= 22) || (date.month === 12 && date.day <= 21)) return 'sagittarius';\n if ((date.month === 12 && date.day >= 22) || (date.month === 1 && date.day <= 19)) return 'capricorn';\n if ((date.month === 1 && date.day >= 20) || (date.month === 2 && date.day <= 18)) return 'aquarius';\n return 'pisces';\n}\n",
22
32
  "export default function (hex: string): [number, number, number] {\n const color = parseInt(hex.startsWith('#') ? hex.substring(1) : hex, 16);\n\n return [\n (color >> 16) & 255,\n (color >> 8) & 255,\n color & 255\n ];\n}\n",
23
33
  "export default function (p: number, q: number, t: number): number {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n",
24
34
  "import hueToRGB from './hueToRGB';\n\nexport default function (h: number, s: number, l: number): [number, number, number] {\n let r: number, g: number, b: number;\n\n h /= 360;\n s /= 100;\n l /= 100;\n\n if (s === 0) {\n r = g = b = l;\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hueToRGB(p, q, h + 1 / 3);\n g = hueToRGB(p, q, h);\n b = hueToRGB(p, q, h - 1 / 3);\n }\n\n r = Math.round(r * 255);\n g = Math.round(g * 255);\n b = Math.round(b * 255);\n\n return [r, g, b];\n}\n",
@@ -40,9 +50,9 @@
40
50
  "export default function (obj: object, key: symbol | string, value: unknown): void {\n Object.defineProperty(obj, key, {value});\n}\n",
41
51
  "export default function (fn: Function): void {\n if ('startViewTransition' in document) {\n (document.startViewTransition as Function)(fn);\n } else {\n fn();\n }\n}\n",
42
52
  "export default async function (ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n",
43
- "export type Constructor<T = {}> = new (...args: any[]) => T;\nexport type Descriptors = Record<string | symbol, TypedPropertyDescriptor<unknown> | PropertyDescriptor>;\n\nexport { default as clampWithStepPrecision } from './clampWithStepPrecision';\nexport { default as countDecimals } from './countDecimals';\nexport { default as debounce } from './debounce';\nexport { default as defineStore } from './defineStore';\nexport { default as downloadBlob } from './downloadBlob';\nexport { default as downloadString } from './downloadString';\nexport { default as downloadUrl } from './downloadUrl';\nexport { default as formatDate } from './formatDate';\nexport { default as formatDateFull } from './formatDateFull';\nexport { default as formatDateTime } from './formatDateTime';\nexport { default as formatMonth } from './formatMonth';\nexport { default as formatNumber } from './formatNumber';\nexport { default as formatPercentage } from './formatPercentage';\nexport { default as formatTime } from './formatTime';\nexport { default as generateStepTicks } from './generateStepTicks';\nexport { default as getPrototypeChain } from './getPrototypeChain';\nexport { default as hexToRGB } from './hexToRGB';\nexport { default as hslToHSV } from './hslToHSV';\nexport { default as hslToRGB } from './hslToRGB';\nexport { default as hsvToHSL } from './hsvToHSL';\nexport { default as hsvToRGB } from './hsvToRGB';\nexport { default as hueToRGB } from './hueToRGB';\nexport { default as isHtmlElement } from './isHtmlElement';\nexport { default as isPointInPolygon } from './isPointInPolygon';\nexport { default as isToday } from './isToday';\nexport { default as mulberry32, type Mulberry32 } from './mulberry32';\nexport { default as openUrl } from './openUrl';\nexport { default as persistentRef } from './persistentRef';\nexport { default as persistentStringRef } from './persistentStringRef';\nexport { default as printHtml } from './printHtml';\nexport { default as rgbToHEX } from './rgbToHEX';\nexport { default as rgbToHSL } from './rgbToHSL';\nexport { default as rgbToHSV } from './rgbToHSV';\nexport { default as roundStep } from './roundStep';\nexport { default as setObjectMethod } from './setObjectMethod';\nexport { default as setObjectValue } from './setObjectValue';\nexport { default as viewTransition } from './viewTransition';\nexport { default as waitFor } from './waitFor';\n\nexport const CHECK = '✔' as const;\nexport const CROSS = '✘' as const;\nexport const MDASH = '—' as const;\nexport const NDASH = '–' as const;\nexport const NOOP: Function = () => void 0;\n"
53
+ "export type Constructor<T = {}> = new (...args: any[]) => T;\nexport type Descriptors = Record<string | symbol, TypedPropertyDescriptor<unknown> | PropertyDescriptor>;\n\nexport { default as clampWithStepPrecision } from './clampWithStepPrecision';\nexport { default as countDecimals } from './countDecimals';\nexport { default as debounce } from './debounce';\nexport { default as defineStore } from './defineStore';\nexport { default as downloadBlob } from './downloadBlob';\nexport { default as downloadString } from './downloadString';\nexport { default as downloadUrl } from './downloadUrl';\nexport { default as formatDate } from './formatDate';\nexport { default as formatDateFull } from './formatDateFull';\nexport { default as formatDateTime } from './formatDateTime';\nexport { default as formatMonth } from './formatMonth';\nexport { default as formatNumber } from './formatNumber';\nexport { default as formatPercentage } from './formatPercentage';\nexport { default as formatTime } from './formatTime';\nexport { default as generateStepTicks } from './generateStepTicks';\nexport { default as getCircadianPhase, type CircadianPhase } from './getCircadianPhase';\nexport { default as getDayPeriod, type DayPeriod } from './getDayPeriod';\nexport { default as getDayPeriodRange } from './getDayPeriodRange';\nexport { default as getMoonPhase, type MoonPhase } from './getMoonPhase';\nexport { default as getPrototypeChain } from './getPrototypeChain';\nexport { default as getSeason, type Season } from './getSeason';\nexport { default as getSeasonalMood, type SeasonMood } from './getSeasonalMood';\nexport { default as getWorkdayPeriod, type WorkdayPeriod } from './getWorkdayPeriod';\nexport { default as getZodiacSign, type ZodiacSign } from './getZodiacSign';\nexport { default as hexToRGB } from './hexToRGB';\nexport { default as hslToHSV } from './hslToHSV';\nexport { default as hslToRGB } from './hslToRGB';\nexport { default as hsvToHSL } from './hsvToHSL';\nexport { default as hsvToRGB } from './hsvToRGB';\nexport { default as hueToRGB } from './hueToRGB';\nexport { default as isHtmlElement } from './isHtmlElement';\nexport { default as isNorthernHemisphere } from './isNorthernHemisphere';\nexport { default as isPointInPolygon } from './isPointInPolygon';\nexport { default as isToday } from './isToday';\nexport { default as mulberry32, type Mulberry32 } from './mulberry32';\nexport { default as openUrl } from './openUrl';\nexport { default as persistentRef } from './persistentRef';\nexport { default as persistentStringRef } from './persistentStringRef';\nexport { default as printHtml } from './printHtml';\nexport { default as rgbToHEX } from './rgbToHEX';\nexport { default as rgbToHSL } from './rgbToHSL';\nexport { default as rgbToHSV } from './rgbToHSV';\nexport { default as roundStep } from './roundStep';\nexport { default as setObjectMethod } from './setObjectMethod';\nexport { default as setObjectValue } from './setObjectValue';\nexport { default as viewTransition } from './viewTransition';\nexport { default as waitFor } from './waitFor';\n\nexport const CHECK = '✔' as const;\nexport const CROSS = '✘' as const;\nexport const MDASH = '—' as const;\nexport const NDASH = '–' as const;\nexport const NOOP: Function = () => void 0;\n"
44
54
  ],
45
- "mappings": "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",
46
- "debugId": "0AF3AC6A4F8A01C064756E2164756E21",
55
+ "mappings": "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",
56
+ "debugId": "A9C7C67721EBAF2B64756E2164756E21",
47
57
  "names": []
48
58
  }
@@ -0,0 +1,2 @@
1
+ import { type CountryCode } from "./data/countries";
2
+ export default function(countryCode: CountryCode): boolean | null;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@basmilius/utils",
3
3
  "description": "Various utilities that are used in personal projects.",
4
- "version": "2.11.0",
4
+ "version": "2.13.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/basmilius",
@@ -53,6 +53,6 @@
53
53
  "vue": "^3.5.22"
54
54
  },
55
55
  "devDependencies": {
56
- "@basmilius/tools": "2.11.0"
56
+ "@basmilius/tools": "2.13.0"
57
57
  }
58
58
  }
@@ -0,0 +1,261 @@
1
+ export type Country = [name: string, latitude: number, longitude: number];
2
+ export type CountryCode = keyof typeof raw;
3
+ export type Countries = Record<CountryCode, Country>;
4
+
5
+ const raw = {
6
+ af: ["Afghanistan", 33, 65],
7
+ ax: ["Åland Islands", 60.116667, 19.9],
8
+ al: ["Albania", 41, 20],
9
+ dz: ["Algeria", 28, 3],
10
+ as: ["American Samoa", -14.3333, -170],
11
+ ad: ["Andorra", 42.5, 1.6],
12
+ ao: ["Angola", -12.5, 18.5],
13
+ ai: ["Anguilla", 18.25, -63.1667],
14
+ aq: ["Antarctica", -90, 0],
15
+ ag: ["Antigua and Barbuda", 17.05, -61.8],
16
+ ar: ["Argentina", -34, -64],
17
+ am: ["Armenia", 40, 45],
18
+ aw: ["Aruba", 12.5, -69.9667],
19
+ au: ["Australia", -27, 133],
20
+ at: ["Austria", 47.3333, 13.3333],
21
+ az: ["Azerbaijan", 40.5, 47.5],
22
+ bs: ["Bahamas", 24.25, -76],
23
+ bh: ["Bahrain", 26, 50.55],
24
+ bd: ["Bangladesh", 24, 90],
25
+ bb: ["Barbados", 13.1667, -59.5333],
26
+ by: ["Belarus", 53, 28],
27
+ be: ["Belgium", 50.8333, 4],
28
+ bz: ["Belize", 17.25, -88.75],
29
+ bj: ["Benin", 9.5, 2.25],
30
+ bm: ["Bermuda", 32.3333, -64.75],
31
+ bt: ["Bhutan", 27.5, 90.5],
32
+ bo: ["Bolivia", -17, -65],
33
+ bq: ["Bonaire, Sint Eustatius and Saba", 12.183333, -68.233333],
34
+ ba: ["Bosnia and Herzegovina", 44, 18],
35
+ bw: ["Botswana", -22, 24],
36
+ bv: ["Bouvet Island", -54.4333, 3.4],
37
+ br: ["Brazil", -10, -55],
38
+ io: ["British Indian Ocean Territory", -6, 71.5],
39
+ bn: ["Brunei", 4.5, 114.6667],
40
+ bg: ["Bulgaria", 43, 25],
41
+ bf: ["Burkina Faso", 13, -2],
42
+ bi: ["Burundi", -3.5, 30],
43
+ kh: ["Cambodia", 13, 105],
44
+ cm: ["Cameroon", 6, 12],
45
+ ca: ["Canada", 60, -95],
46
+ cv: ["Cape Verde", 16, -24],
47
+ ky: ["Cayman Islands", 19.5, -80.5],
48
+ cf: ["Central African Republic", 7, 21],
49
+ td: ["Chad", 15, 19],
50
+ cl: ["Chile", -30, -71],
51
+ cn: ["China", 35, 105],
52
+ cx: ["Christmas Island", -10.5, 105.6667],
53
+ cc: ["Cocos (Keeling) Islands", -12.5, 96.8333],
54
+ co: ["Colombia", 4, -72],
55
+ km: ["Comoros", -12.1667, 44.25],
56
+ cd: ["Congo, Democratic Republic of the", 0, 25],
57
+ cg: ["Congo", -1, 15],
58
+ ck: ["Cook Islands", -21.2333, -159.7667],
59
+ cr: ["Costa Rica", 10, -84],
60
+ ci: ["Côte d'Ivoire", 8, -5],
61
+ hr: ["Croatia", 45.1667, 15.5],
62
+ cu: ["Cuba", 21.5, -80],
63
+ cw: ["Curaçao", 12.166667, -68.966667],
64
+ cy: ["Cyprus", 35, 33],
65
+ cz: ["Czech Republic", 49.75, 15.5],
66
+ dk: ["Denmark", 56, 10],
67
+ dj: ["Djibouti", 11.5, 43],
68
+ dm: ["Dominica", 15.4167, -61.3333],
69
+ do: ["Dominican Republic", 19, -70.6667],
70
+ ec: ["Ecuador", -2, -77.5],
71
+ eg: ["Egypt", 27, 30],
72
+ sv: ["El Salvador", 13.8333, -88.9167],
73
+ gq: ["Equatorial Guinea", 2, 10],
74
+ er: ["Eritrea", 15, 39],
75
+ ee: ["Estonia", 59, 26],
76
+ et: ["Ethiopia", 8, 38],
77
+ fk: ["Falkland Islands (Malvinas)", -51.75, -59],
78
+ fo: ["Faroe Islands", 62, -7],
79
+ fj: ["Fiji", -18, 175],
80
+ fi: ["Finland", 64, 26],
81
+ fr: ["France", 46, 2],
82
+ gf: ["French Guiana", 4, -53],
83
+ pf: ["French Polynesia", -15, -140],
84
+ tf: ["French Southern Territories", -43, 67],
85
+ ga: ["Gabon", -1, 11.75],
86
+ gm: ["Gambia", 13.4667, -16.5667],
87
+ ge: ["Georgia", 42, 43.5],
88
+ de: ["Germany", 51, 9],
89
+ gh: ["Ghana", 8, -2],
90
+ gi: ["Gibraltar", 36.1833, -5.3667],
91
+ gr: ["Greece", 39, 22],
92
+ gl: ["Greenland", 72, -40],
93
+ gd: ["Grenada", 12.1167, -61.6667],
94
+ gp: ["Guadeloupe", 16.25, -61.5833],
95
+ gu: ["Guam", 13.4667, 144.7833],
96
+ gt: ["Guatemala", 15.5, -90.25],
97
+ gg: ["Guernsey", 49.5, -2.56],
98
+ gw: ["Guinea-Bissau", 12, -15],
99
+ gn: ["Guinea", 11, -10],
100
+ gy: ["Guyana", 5, -59],
101
+ ht: ["Haiti", 19, -72.4167],
102
+ hm: ["Heard Island and McDonald Islands", -53.1, 72.5167],
103
+ va: ["Holy See", 41.9, 12.45],
104
+ hn: ["Honduras", 15, -86.5],
105
+ hk: ["Hong Kong", 22.25, 114.1667],
106
+ hu: ["Hungary", 47, 20],
107
+ is: ["Iceland", 65, -18],
108
+ in: ["India", 20, 77],
109
+ id: ["Indonesia", -5, 120],
110
+ ir: ["Iran", 32, 53],
111
+ iq: ["Iraq", 33, 44],
112
+ ie: ["Ireland", 53, -8],
113
+ im: ["Isle of Man", 54.23, -4.55],
114
+ il: ["Israel", 31.5, 34.75],
115
+ it: ["Italy", 42.8333, 12.8333],
116
+ jm: ["Jamaica", 18.25, -77.5],
117
+ jp: ["Japan", 36, 138],
118
+ je: ["Jersey", 49.21, -2.13],
119
+ jo: ["Jordan", 31, 36],
120
+ kz: ["Kazakhstan", 48, 68],
121
+ ke: ["Kenya", 1, 38],
122
+ ki: ["Kiribati", 1.4167, 173],
123
+ kp: ["Korea, North", 40, 127],
124
+ kr: ["Korea, South", 37, 127.5],
125
+ xk: ["Kosovo", 42.583333, 21],
126
+ kw: ["Kuwait", 29.3375, 47.6581],
127
+ kg: ["Kyrgyzstan", 41, 75],
128
+ la: ["Laos", 18, 105],
129
+ lv: ["Latvia", 57, 25],
130
+ lb: ["Lebanon", 33.8333, 35.8333],
131
+ ls: ["Lesotho", -29.5, 28.5],
132
+ lr: ["Liberia", 6.5, -9.5],
133
+ ly: ["Libya", 25, 17],
134
+ li: ["Liechtenstein", 47.1667, 9.5333],
135
+ lt: ["Lithuania", 56, 24],
136
+ lu: ["Luxembourg", 49.75, 6.1667],
137
+ mo: ["Macao", 22.1667, 113.55],
138
+ mk: ["North Macedonia", 41.8333, 22],
139
+ mg: ["Madagascar", -20, 47],
140
+ mw: ["Malawi", -13.5, 34],
141
+ my: ["Malaysia", 2.5, 112.5],
142
+ mv: ["Maldives", 3.25, 73],
143
+ ml: ["Mali", 17, -4],
144
+ mt: ["Malta", 35.8333, 14.5833],
145
+ mh: ["Marshall Islands", 9, 168],
146
+ mq: ["Martinique", 14.6667, -61],
147
+ mr: ["Mauritania", 20, -12],
148
+ mu: ["Mauritius", -20.2833, 57.55],
149
+ yt: ["Mayotte", -12.8333, 45.1667],
150
+ mx: ["Mexico", 23, -102],
151
+ fm: ["Micronesia", 6.9167, 158.25],
152
+ md: ["Moldova", 47, 29],
153
+ mc: ["Monaco", 43.7333, 7.4],
154
+ mn: ["Mongolia", 46, 105],
155
+ me: ["Montenegro", 42, 19],
156
+ ms: ["Montserrat", 16.75, -62.2],
157
+ ma: ["Morocco", 32, -5],
158
+ mz: ["Mozambique", -18.25, 35],
159
+ mm: ["Myanmar", 22, 98],
160
+ na: ["Namibia", -22, 17],
161
+ nr: ["Nauru", -0.5333, 166.9167],
162
+ np: ["Nepal", 28, 84],
163
+ nl: ["Netherlands", 52.5, 5.75],
164
+ nc: ["New Caledonia", -21.5, 165.5],
165
+ nz: ["New Zealand", -41, 174],
166
+ ni: ["Nicaragua", 13, -85],
167
+ ne: ["Niger", 16, 8],
168
+ ng: ["Nigeria", 10, 8],
169
+ nu: ["Niue", -19.0333, -169.8667],
170
+ nf: ["Norfolk Island", -29.0333, 167.95],
171
+ mp: ["Northern Mariana Islands", 15.2, 145.75],
172
+ no: ["Norway", 62, 10],
173
+ om: ["Oman", 21, 57],
174
+ pk: ["Pakistan", 30, 70],
175
+ pw: ["Palau", 7.5, 134.5],
176
+ ps: ["Palestine", 32, 35.25],
177
+ pa: ["Panama", 9, -80],
178
+ pg: ["Papua New Guinea", -6, 147],
179
+ py: ["Paraguay", -23, -58],
180
+ pe: ["Peru", -10, -76],
181
+ ph: ["Philippines", 13, 122],
182
+ pn: ["Pitcairn", -24.7, -127.4],
183
+ pl: ["Poland", 52, 20],
184
+ pt: ["Portugal", 39.5, -8],
185
+ pr: ["Puerto Rico", 18.25, -66.5],
186
+ qa: ["Qatar", 25.5, 51.25],
187
+ re: ["Réunion", -21.1, 55.6],
188
+ ro: ["Romania", 46, 25],
189
+ ru: ["Russia", 60, 100],
190
+ rw: ["Rwanda", -2, 30],
191
+ bl: ["Saint Barthélemy", 17.897728, -62.834244],
192
+ sh: ["Saint Helena", -15.9333, -5.7],
193
+ kn: ["Saint Kitts and Nevis", 17.3333, -62.75],
194
+ lc: ["Saint Lucia", 13.8833, -61.1333],
195
+ mf: ["Saint Martin", 18.075278, -63.06],
196
+ pm: ["Saint Pierre and Miquelon", 46.8333, -56.3333],
197
+ vc: ["Saint Vincent and the Grenadines", 13.25, -61.2],
198
+ ws: ["Samoa", -13.5833, -172.3333],
199
+ sm: ["San Marino", 43.7667, 12.4167],
200
+ st: ["Sao Tome and Principe", 1, 7],
201
+ sa: ["Saudi Arabia", 25, 45],
202
+ sn: ["Senegal", 14, -14],
203
+ rs: ["Serbia", 44, 21],
204
+ sc: ["Seychelles", -4.5833, 55.6667],
205
+ sl: ["Sierra Leone", 8.5, -11.5],
206
+ sg: ["Singapore", 1.3667, 103.8],
207
+ sx: ["Sint Maarten", 18.033333, -63.05],
208
+ sk: ["Slovakia", 48.6667, 19.5],
209
+ si: ["Slovenia", 46, 15],
210
+ sb: ["Solomon Islands", -8, 159],
211
+ so: ["Somalia", 10, 49],
212
+ za: ["South Africa", -29, 24],
213
+ gs: ["South Georgia and the South Sandwich Islands", -54.5, -37],
214
+ ss: ["South Sudan", 8, 30],
215
+ es: ["Spain", 40, -4],
216
+ lk: ["Sri Lanka", 7, 81],
217
+ sd: ["Sudan", 15, 30],
218
+ sr: ["Suriname", 4, -56],
219
+ sj: ["Svalbard and Jan Mayen", 78, 20],
220
+ sz: ["Swaziland", -26.5, 31.5],
221
+ se: ["Sweden", 62, 15],
222
+ ch: ["Switzerland", 47, 8],
223
+ sy: ["Syria", 35, 38],
224
+ tw: ["Taiwan", 23.5, 121],
225
+ tj: ["Tajikistan", 39, 71],
226
+ tz: ["Tanzania", -6, 35],
227
+ th: ["Thailand", 15, 100],
228
+ tl: ["Timor-Leste", -8.55, 125.5167],
229
+ tg: ["Togo", 8, 1.1667],
230
+ tk: ["Tokelau", -9, -172],
231
+ to: ["Tonga", -20, -175],
232
+ tt: ["Trinidad and Tobago", 11, -61],
233
+ tn: ["Tunisia", 34, 9],
234
+ tr: ["Turkey", 39, 35],
235
+ tm: ["Turkmenistan", 40, 60],
236
+ tc: ["Turks and Caicos Islands", 21.75, -71.5833],
237
+ tv: ["Tuvalu", -8, 178],
238
+ ug: ["Uganda", 1, 32],
239
+ ua: ["Ukraine", 49, 32],
240
+ ae: ["United Arab Emirates", 24, 54],
241
+ gb: ["United Kingdom", 54, -2],
242
+ um: ["United States Minor Outlying Islands", 19.2833, 166.6],
243
+ us: ["United States", 38, -97],
244
+ uy: ["Uruguay", -33, -56],
245
+ uz: ["Uzbekistan", 41, 64],
246
+ vu: ["Vanuatu", -16, 167],
247
+ ve: ["Venezuela", 8, -66],
248
+ vn: ["Vietnam", 16, 106],
249
+ vg: ["Virgin Islands, British", 18.5, -64.5],
250
+ vi: ["Virgin Islands, U.S.", 18.3333, -64.8333],
251
+ wf: ["Wallis and Futuna", -13.3, -176.2],
252
+ eh: ["Western Sahara", 24.5, -13],
253
+ ye: ["Yemen", 15, 48],
254
+ zm: ["Zambia", -15, 30],
255
+ zw: ["Zimbabwe", -20, 30],
256
+ } as const;
257
+ export const countries: Countries = raw as Countries;
258
+
259
+ export function getCountry(code: CountryCode): Country | null {
260
+ return countries[code] ?? null;
261
+ }
@@ -0,0 +1,14 @@
1
+ import type { DateTime } from 'luxon';
2
+
3
+ export type CircadianPhase =
4
+ | 'alert'
5
+ | 'focused'
6
+ | 'sleep'
7
+ | 'wind_down';
8
+
9
+ export default function (date: DateTime): CircadianPhase {
10
+ if (date.hour >= 6 && date.hour < 10) return 'alert';
11
+ if (date.hour >= 10 && date.hour < 18) return 'focused';
12
+ if (date.hour >= 18 && date.hour < 22) return 'wind_down';
13
+ return 'sleep';
14
+ }
@@ -0,0 +1,14 @@
1
+ import type { DateTime } from 'luxon';
2
+
3
+ export type DayPeriod =
4
+ | 'afternoon'
5
+ | 'evening'
6
+ | 'morning'
7
+ | 'night';
8
+
9
+ export default function (date: DateTime): DayPeriod {
10
+ if (date.hour >= 5 && date.hour < 12) return 'morning';
11
+ if (date.hour >= 12 && date.hour < 17) return 'afternoon';
12
+ if (date.hour >= 17 && date.hour < 22) return 'evening';
13
+ return 'night';
14
+ }
@@ -0,0 +1,32 @@
1
+ import { DateTime } from 'luxon';
2
+ import type { DayPeriod } from './getDayPeriod';
3
+
4
+ export default function (period: DayPeriod): [DateTime, DateTime] {
5
+ const dt = DateTime.now();
6
+
7
+ switch (period) {
8
+ case 'afternoon':
9
+ return [
10
+ dt.set({hour: 12, minute: 0, second: 0, millisecond: 0}),
11
+ dt.set({hour: 17, minute: 0, second: 0, millisecond: 0})
12
+ ];
13
+
14
+ case 'evening':
15
+ return [
16
+ dt.set({hour: 17, minute: 0, second: 0, millisecond: 0}),
17
+ dt.set({hour: 22, minute: 0, second: 0, millisecond: 0})
18
+ ];
19
+
20
+ case 'morning':
21
+ return [
22
+ dt.set({hour: 5, minute: 0, second: 0, millisecond: 0}),
23
+ dt.set({hour: 12, minute: 0, second: 0, millisecond: 0})
24
+ ];
25
+
26
+ case 'night':
27
+ return [
28
+ dt.set({hour: 22, minute: 0, second: 0, millisecond: 0}),
29
+ dt.set({hour: 22, minute: 0, second: 0, millisecond: 0}).plus({hours: 7})
30
+ ];
31
+ }
32
+ }
@@ -0,0 +1,38 @@
1
+ import type { DateTime } from 'luxon';
2
+
3
+ export type MoonPhase =
4
+ | 'new_moon'
5
+ | 'waxing_crescent'
6
+ | 'first_quarter'
7
+ | 'waxing_gibbous'
8
+ | 'full_moon'
9
+ | 'waning_gibbous'
10
+ | 'last_quarter'
11
+ | 'waning_crescent';
12
+
13
+ export default function (date: DateTime): MoonPhase {
14
+ // Conway’s algorithm
15
+ let r = date.year % 100;
16
+ r %= 19;
17
+ if (r > 9) r -= 19;
18
+
19
+ r = ((r * 11) % 30) + date.month + date.day;
20
+
21
+ if (date.month < 3) r += 2;
22
+ if (date.year < 2000) r -= 4;
23
+ else r -= 8.3;
24
+
25
+ r = Math.floor(r + 0.5) % 30;
26
+
27
+ const age = r < 0 ? r + 30 : r;
28
+ const phase = age / 29.530588853;
29
+
30
+ if (phase < 0.03 || phase > 0.97) return 'new_moon';
31
+ if (phase < 0.22) return 'waxing_crescent';
32
+ if (phase < 0.28) return 'first_quarter';
33
+ if (phase < 0.47) return 'waxing_gibbous';
34
+ if (phase < 0.53) return 'full_moon';
35
+ if (phase < 0.72) return 'waning_gibbous';
36
+ if (phase < 0.78) return 'last_quarter';
37
+ return 'waning_crescent';
38
+ }
@@ -0,0 +1,37 @@
1
+ import type { DateTime } from 'luxon';
2
+ import { type CountryCode } from './data/countries';
3
+ import isNorthernHemisphere from './isNorthernHemisphere';
4
+
5
+ export type Season =
6
+ | 'autumn'
7
+ | 'spring'
8
+ | 'summer'
9
+ | 'winter';
10
+
11
+ const NORTHERN_SEASONS: Record<Season, number[]> = {
12
+ autumn: [9, 10, 11],
13
+ spring: [3, 4, 5],
14
+ summer: [6, 7, 8],
15
+ winter: [12, 1, 2]
16
+ };
17
+
18
+ const SOUTHERN_SEASONS: Record<Season, number[]> = {
19
+ autumn: [3, 4, 5],
20
+ spring: [9, 10, 11],
21
+ summer: [12, 1, 2],
22
+ winter: [6, 7, 8]
23
+ };
24
+
25
+ export default function (countryCode: CountryCode, date: DateTime): Season | null {
26
+ const isNorthern = isNorthernHemisphere(countryCode);
27
+ const month = date.month;
28
+ const seasons = isNorthern ? NORTHERN_SEASONS : SOUTHERN_SEASONS;
29
+
30
+ for (const season of ['autumn', 'spring', 'summer', 'winter'] as Season[]) {
31
+ if (seasons[season].includes(month)) {
32
+ return season;
33
+ }
34
+ }
35
+
36
+ return null;
37
+ }
@@ -0,0 +1,23 @@
1
+ import type { Season } from './getSeason';
2
+
3
+ export type SeasonMood =
4
+ | 'cozy'
5
+ | 'energetic'
6
+ | 'fresh'
7
+ | 'warm';
8
+
9
+ export default function (season: Season): SeasonMood {
10
+ switch (season) {
11
+ case 'spring':
12
+ return 'fresh';
13
+
14
+ case 'summer':
15
+ return 'energetic';
16
+
17
+ case 'autumn':
18
+ return 'cozy';
19
+
20
+ case 'winter':
21
+ return 'warm';
22
+ }
23
+ }
@@ -0,0 +1,15 @@
1
+ import type { DateTime } from 'luxon';
2
+
3
+ export type WorkdayPeriod =
4
+ | 'break'
5
+ | 'off'
6
+ | 'work';
7
+
8
+ export default function (date: DateTime): WorkdayPeriod {
9
+ if (date.weekday === 6 || date.weekday === 7) return 'off';
10
+
11
+ if (date.hour >= 9 && date.hour < 12) return 'work';
12
+ if (date.hour >= 12 && date.hour < 13) return 'break';
13
+ if (date.hour >= 13 && date.hour < 17) return 'work';
14
+ return 'off';
15
+ }
@@ -0,0 +1,30 @@
1
+ import type { DateTime } from 'luxon';
2
+
3
+ export type ZodiacSign =
4
+ | 'aquarius'
5
+ | 'aries'
6
+ | 'cancer'
7
+ | 'capricorn'
8
+ | 'gemini'
9
+ | 'leo'
10
+ | 'libra'
11
+ | 'pisces'
12
+ | 'sagittarius'
13
+ | 'scorpio'
14
+ | 'taurus'
15
+ | 'virgo';
16
+
17
+ export default function (date: DateTime): ZodiacSign {
18
+ if ((date.month === 3 && date.day >= 21) || (date.month === 4 && date.day <= 19)) return 'aries';
19
+ if ((date.month === 4 && date.day >= 20) || (date.month === 5 && date.day <= 20)) return 'taurus';
20
+ if ((date.month === 5 && date.day >= 21) || (date.month === 6 && date.day <= 20)) return 'gemini';
21
+ if ((date.month === 6 && date.day >= 21) || (date.month === 7 && date.day <= 22)) return 'cancer';
22
+ if ((date.month === 7 && date.day >= 23) || (date.month === 8 && date.day <= 22)) return 'leo';
23
+ if ((date.month === 8 && date.day >= 23) || (date.month === 9 && date.day <= 22)) return 'virgo';
24
+ if ((date.month === 9 && date.day >= 23) || (date.month === 10 && date.day <= 22)) return 'libra';
25
+ if ((date.month === 10 && date.day >= 23) || (date.month === 11 && date.day <= 21)) return 'scorpio';
26
+ if ((date.month === 11 && date.day >= 22) || (date.month === 12 && date.day <= 21)) return 'sagittarius';
27
+ if ((date.month === 12 && date.day >= 22) || (date.month === 1 && date.day <= 19)) return 'capricorn';
28
+ if ((date.month === 1 && date.day >= 20) || (date.month === 2 && date.day <= 18)) return 'aquarius';
29
+ return 'pisces';
30
+ }
package/src/index.ts CHANGED
@@ -16,7 +16,15 @@ export { default as formatNumber } from './formatNumber';
16
16
  export { default as formatPercentage } from './formatPercentage';
17
17
  export { default as formatTime } from './formatTime';
18
18
  export { default as generateStepTicks } from './generateStepTicks';
19
+ export { default as getCircadianPhase, type CircadianPhase } from './getCircadianPhase';
20
+ export { default as getDayPeriod, type DayPeriod } from './getDayPeriod';
21
+ export { default as getDayPeriodRange } from './getDayPeriodRange';
22
+ export { default as getMoonPhase, type MoonPhase } from './getMoonPhase';
19
23
  export { default as getPrototypeChain } from './getPrototypeChain';
24
+ export { default as getSeason, type Season } from './getSeason';
25
+ export { default as getSeasonalMood, type SeasonMood } from './getSeasonalMood';
26
+ export { default as getWorkdayPeriod, type WorkdayPeriod } from './getWorkdayPeriod';
27
+ export { default as getZodiacSign, type ZodiacSign } from './getZodiacSign';
20
28
  export { default as hexToRGB } from './hexToRGB';
21
29
  export { default as hslToHSV } from './hslToHSV';
22
30
  export { default as hslToRGB } from './hslToRGB';
@@ -24,6 +32,7 @@ export { default as hsvToHSL } from './hsvToHSL';
24
32
  export { default as hsvToRGB } from './hsvToRGB';
25
33
  export { default as hueToRGB } from './hueToRGB';
26
34
  export { default as isHtmlElement } from './isHtmlElement';
35
+ export { default as isNorthernHemisphere } from './isNorthernHemisphere';
27
36
  export { default as isPointInPolygon } from './isPointInPolygon';
28
37
  export { default as isToday } from './isToday';
29
38
  export { default as mulberry32, type Mulberry32 } from './mulberry32';
@@ -0,0 +1,13 @@
1
+ import { type CountryCode, getCountry } from './data/countries';
2
+
3
+ export default function (countryCode: CountryCode): boolean | null {
4
+ const country = getCountry(countryCode);
5
+
6
+ if (!country) {
7
+ return null;
8
+ }
9
+
10
+ const [, latitude] = country;
11
+
12
+ return latitude >= 0;
13
+ }