@box-kite/react 2.2.5 → 2.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.claude/rules/box-kite-rules.md +3 -1
  2. package/.claude/skills/box-kite/SKILL.md +3 -1
  3. package/.claude/skills/box-kite/references/components.md +34 -0
  4. package/.cursor/rules/box-kite.mdc +3 -1
  5. package/AGENTS.md +3 -1
  6. package/BOX_AI_CONTEXT.md +95 -5
  7. package/BOX_KITE_AI_CONTEXT.md +95 -5
  8. package/box.cjs +1 -1
  9. package/box.mjs +7 -7
  10. package/catalog.cjs +1 -1
  11. package/catalog.mjs +521 -0
  12. package/client.cjs +1 -1
  13. package/client.mjs +94 -106
  14. package/components/calendar.cjs +1 -0
  15. package/components/calendar.d.ts +77 -0
  16. package/components/calendar.mjs +483 -0
  17. package/components/dataGrid/components/dataGridBooleanValue.d.ts +11 -0
  18. package/components/dataGrid/components/dataGridDateParts.d.ts +40 -0
  19. package/components/dataGrid/components/dataGridDateValue.d.ts +14 -0
  20. package/components/dataGrid/contracts/dataGridContract.d.ts +38 -11
  21. package/components/dataGrid/models/columnModel.d.ts +3 -1
  22. package/components/dataGrid/models/editModel.d.ts +3 -1
  23. package/components/dataGrid/models/localeText.d.ts +4 -0
  24. package/components/dataGrid/useDateParts.d.ts +17 -0
  25. package/components/dataGrid.cjs +3 -3
  26. package/components/dataGrid.mjs +797 -664
  27. package/components/dateField.cjs +1 -0
  28. package/components/dateField.d.ts +78 -0
  29. package/components/dateField.mjs +313 -0
  30. package/components/datePicker.cjs +1 -0
  31. package/components/datePicker.d.ts +120 -0
  32. package/components/datePicker.mjs +529 -0
  33. package/components/dateTime.cjs +1 -0
  34. package/components/dateTime.d.ts +23 -0
  35. package/components/dateTime.mjs +34 -0
  36. package/components/dialog.cjs +1 -1
  37. package/components/dialog.mjs +87 -75
  38. package/components/overlay.cjs +1 -1
  39. package/components/overlay.mjs +1 -1
  40. package/components/semantics.d.ts +29 -29
  41. package/components/timeZoneSelect.cjs +1 -0
  42. package/components/timeZoneSelect.d.ts +52 -0
  43. package/components/timeZoneSelect.mjs +74 -0
  44. package/components/toaster.cjs +1 -1
  45. package/components/toaster.mjs +1 -1
  46. package/dataGridDateParts.cjs +1 -0
  47. package/dataGridDateParts.mjs +223 -0
  48. package/dataGridList.cjs +1 -1
  49. package/dataGridList.mjs +328 -365
  50. package/dataGridListLayout.cjs +1 -0
  51. package/dataGridListLayout.mjs +49 -0
  52. package/date-environment.cjs +1 -0
  53. package/date-environment.mjs +29 -0
  54. package/date-input.cjs +1 -0
  55. package/date-input.mjs +346 -0
  56. package/date-math.cjs +1 -0
  57. package/date-math.mjs +317 -0
  58. package/date.cjs +1 -0
  59. package/date.d.ts +40 -0
  60. package/date.mjs +4 -0
  61. package/dates.cjs +1 -0
  62. package/dates.mjs +689 -0
  63. package/docs/components.md +6 -1
  64. package/package.json +118 -26
  65. package/react/boxComponent.d.ts +1 -1
  66. package/react/date/dateChange.d.ts +18 -0
  67. package/react/date/dateEnvironment.d.ts +34 -0
  68. package/react-shared.cjs +1 -1
  69. package/react-shared.mjs +1 -1
  70. package/ssg.cjs +1 -1
  71. package/ssg.mjs +1 -1
  72. package/utils/date/calendar.d.ts +44 -0
  73. package/utils/date/calendarModel.d.ts +46 -0
  74. package/utils/date/dateTime.d.ts +144 -0
  75. package/utils/date/fieldModel.d.ts +74 -0
  76. package/utils/date/format.d.ts +39 -0
  77. package/utils/date/iso.d.ts +40 -0
  78. package/utils/date/locale.d.ts +17 -0
  79. package/utils/date/parse.d.ts +20 -0
  80. package/utils/date/settings.d.ts +26 -0
  81. package/utils/date/value.d.ts +43 -0
  82. package/utils/date/zoneOptions.d.ts +19 -0
  83. package/utils/date/zones.d.ts +32 -0
@@ -0,0 +1 @@
1
+ var e;(function(e){e.ICON_BUTTON={display:`inline-flex`,ai:`center`,jc:`center`,width:11,height:11,flexShrink:0,borderRadius:999,cursor:`pointer`},e.PILL={display:`inline-flex`,ai:`center`,gap:1.5,flexShrink:0,height:10,px:3.5,borderRadius:999,fontSize:14,fontWeight:500,textWrap:`nowrap`,cursor:`pointer`},e.TRUNCATE={textOverflow:`ellipsis`,overflow:`hidden`,textWrap:`nowrap`},e.INPUT={width:`fit`,height:11,px:3,borderRadius:2,fontSize:16},e.LABEL={fontSize:12,lineHeight:16},e.SHEET_BUTTON={height:12,px:4,borderRadius:3,fontSize:16,fontWeight:500,cursor:`pointer`}})(e||={});var t=e;Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return t}});
@@ -0,0 +1,49 @@
1
+ //#region src/components/dataGrid/components/dataGridListLayout.ts
2
+ var e;
3
+ (function(e) {
4
+ e.ICON_BUTTON = {
5
+ display: "inline-flex",
6
+ ai: "center",
7
+ jc: "center",
8
+ width: 11,
9
+ height: 11,
10
+ flexShrink: 0,
11
+ borderRadius: 999,
12
+ cursor: "pointer"
13
+ }, e.PILL = {
14
+ display: "inline-flex",
15
+ ai: "center",
16
+ gap: 1.5,
17
+ flexShrink: 0,
18
+ height: 10,
19
+ px: 3.5,
20
+ borderRadius: 999,
21
+ fontSize: 14,
22
+ fontWeight: 500,
23
+ textWrap: "nowrap",
24
+ cursor: "pointer"
25
+ }, e.TRUNCATE = {
26
+ textOverflow: "ellipsis",
27
+ overflow: "hidden",
28
+ textWrap: "nowrap"
29
+ }, e.INPUT = {
30
+ width: "fit",
31
+ height: 11,
32
+ px: 3,
33
+ borderRadius: 2,
34
+ fontSize: 16
35
+ }, e.LABEL = {
36
+ fontSize: 12,
37
+ lineHeight: 16
38
+ }, e.SHEET_BUTTON = {
39
+ height: 12,
40
+ px: 4,
41
+ borderRadius: 3,
42
+ fontSize: 16,
43
+ fontWeight: 500,
44
+ cursor: "pointer"
45
+ };
46
+ })(e ||= {});
47
+ var t = e;
48
+ //#endregion
49
+ export { t };
@@ -0,0 +1 @@
1
+ const e=require("./dates.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=(0,t.createContext)({});function i({locale:e,timeZone:i,children:a}){let o=(0,t.useContext)(r);return(0,n.jsx)(r.Provider,{value:{locale:e??o.locale,timeZone:i??o.timeZone},children:a})}var a=()=>()=>{};function o(){return(0,t.useSyncExternalStore)(a,()=>!0,()=>!1)}function s(n={}){let i=(0,t.useContext)(r),a=o(),s=e.F(),c=n.locale??i.locale??(a?e.I():s.locale??`en-US`),l=i.timeZone??(a?e.L():s.timeZone??`UTC`),u=n.zone===void 0||n.zone===`local`?l:n.zone;return{locale:c,zone:e.k(u)??`UTC`,readerZone:e.k(l)??`UTC`}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
@@ -0,0 +1,29 @@
1
+ import { F as e, I as t, L as n, k as r } from "./dates.mjs";
2
+ import { createContext as i, useContext as a, useSyncExternalStore as o } from "react";
3
+ import { jsx as s } from "react/jsx-runtime";
4
+ //#region src/react/date/dateEnvironment.tsx
5
+ var c = i({});
6
+ function l({ locale: e, timeZone: t, children: n }) {
7
+ let r = a(c);
8
+ return /* @__PURE__ */ s(c.Provider, {
9
+ value: {
10
+ locale: e ?? r.locale,
11
+ timeZone: t ?? r.timeZone
12
+ },
13
+ children: n
14
+ });
15
+ }
16
+ var u = () => () => {};
17
+ function d() {
18
+ return o(u, () => !0, () => !1);
19
+ }
20
+ function f(i = {}) {
21
+ let o = a(c), s = d(), l = e(), u = i.locale ?? o.locale ?? (s ? t() : l.locale ?? "en-US"), f = o.timeZone ?? (s ? n() : l.timeZone ?? "UTC"), p = i.zone === void 0 || i.zone === "local" ? f : i.zone;
22
+ return {
23
+ locale: u,
24
+ zone: r(p) ?? "UTC",
25
+ readerZone: r(f) ?? "UTC"
26
+ };
27
+ }
28
+ //#endregion
29
+ export { f as n, l as t };
package/date-input.cjs ADDED
@@ -0,0 +1 @@
1
+ const e=require("./dates.cjs");var t=new Map;function n(n){let r=t.get(n);return r||(r=e.a(n,{year:`numeric`,month:`numeric`,day:`numeric`,timeZone:`UTC`}).formatToParts(Date.UTC(2026,10,23)).map(e=>e.type).filter(e=>e===`year`||e===`month`||e===`day`),t.set(n,r)),r}var r=/(\d{1,2})\s*[:h]\s*(\d{2})(?:\s*:\s*(\d{2})(?:[.,](\d{1,3}))?)?|(\d{1,2})(?=\s*(?:a\.?\s*m\.?|p\.?\s*m\.?)(?![\p{L}]))/iu;function i(e,t){return e.toLocaleLowerCase(t).normalize(`NFC`)}function a(e){let t=new Map([[`today`,0],[`now`,0],[`tomorrow`,1],[`yesterday`,-1]]);try{let n=new Intl.RelativeTimeFormat(e,{numeric:`auto`});for(let r of[-1,0,1])t.set(i(n.format(r,`day`),e),r)}catch{}return t}function o(e,t){let n=Number(e);if(e.length>2)return n;let r=Math.floor(t/100)*100+n;return r>t+50?r-100:r<t-50?r+100:r}function s(t,n){let a=r.exec(t);if(!a)return{rest:t};let o=t.slice(a.index+a[0].length),[s,c]=e.v(n).map(e=>i(e,n).replace(/\./g,``)),l=/^\s*([\p{L}.]+)/u.exec(o)?.[1].replace(/\./g,``)??``,u=l!==``&&(l===c||/^pm?$/.test(l)),d=l!==``&&(l===s||/^am?$/.test(l)),f=Number(a[1]??a[5]);u&&f<12&&(f+=12),d&&f===12&&(f=0);let p={...e.V,year:1970,month:1,day:1,hour:f,minute:Number(a[2]??0),second:Number(a[3]??0),millisecond:Number((a[4]??``).padEnd(3,`0`))||0},m=a[0].length+(u||d?/^\s*[\p{L}.]+/u.exec(o)?.[0].length??0:0);return{time:e.X(p)?p:void 0,rest:t.slice(0,a.index)+` `+t.slice(a.index+m)}}function c(t,r,s){let c=t.match(/\d+|[\p{L}]+/gu)??[];if(c.length===0)return;let l=a(r);for(let t of c){let n=l.get(t);if(n!==void 0)return{...e.U(s,n),...e.V}}let u=[...e.x(r,`long`),...e.x(r,`short`),...e.x(`en`,`long`)].map(e=>i(e,r).replace(/\.$/,``)),d,f=[];for(let e of c)if(/^\d+$/.test(e))f.push(e);else if(d===void 0&&e.length>=3){let t=u.findIndex(t=>t.startsWith(e)||e.startsWith(t));t>=0&&(d=t%12+1)}if(f.length===0&&d===void 0)return;let p=n(r);f[0]?.length>=3&&(p=[`year`,`month`,`day`]),d===void 0?f.length===2&&(p=p.filter(e=>e!==`year`)):p=p.filter(e=>e!==`month`);let m={month:d};p.forEach((e,t)=>{let n=f[t];n!==void 0&&(m[e]=e===`year`?o(n,s.year):Number(n))});let h={...e.V,year:m.year??s.year,month:m.month??NaN,day:m.day??(d===void 0?NaN:1)};return e.Y(h)?h:null}function l(t,n={}){let r=e.f(t,n.disambiguation),a=t=>{let r=t&&n.kind?e.l(t,n.kind,n):t;return r?e.E(r):null};if(r)return a(r);if(typeof t!=`string`)return null;let o=n.locale??e.I(),l=e.f(n.reference??Date.now()),u=l?e.m(l,n.zone??`local`):{year:1970,month:1,day:1,...e.V},{time:d,rest:f}=n.kind===`date`?{time:void 0,rest:t}:s(i(t,o),o),p=n.kind===`time`?void 0:c(n.kind===`date`?i(f,o):f,o,u);if(p===null||!p&&!d)return null;let m=p??void 0;return m&&d?a({kind:`datetime`,fields:{...m,hour:d.hour,minute:d.minute,second:d.second,millisecond:d.millisecond},offset:0}):m?a({kind:`date`,fields:m,offset:0}):d?a({kind:`time`,fields:d,offset:0}):null}var u=new Set([`year`,`month`,`day`,`hour`,`minute`,`second`,`dayPeriod`]);function d(t){let n=t.type===`time`?{}:{year:`numeric`,month:`2-digit`,day:`2-digit`},r=t.type===`date`?{}:{hour:`2-digit`,minute:`2-digit`,...t.granularity===`second`?{second:`2-digit`}:{},hourCycle:t.hourCycle===12?`h12`:`h23`},i=e.a(t.locale,{...n,...r,calendar:`gregory`,numberingSystem:`latn`,timeZone:`UTC`}).formatToParts(Date.UTC(2026,10,23,15,45,30)),a=[];for(let t of i)if(u.has(t.type))a.push({type:t.type,text:``});else if(t.type===`literal`){let n=a[a.length-1];n?.type===`literal`?n.text+=e.o(t.value):a.push({type:`literal`,text:e.o(t.value)})}for(;a[0]?.type===`literal`;)a.shift();for(;a[a.length-1]?.type===`literal`;)a.pop();return a}function f(e){return e.filter(e=>e.type!==`literal`).map(e=>e.type)}function p(t,n,r){switch(t){case`year`:return{min:1,max:9999};case`month`:return{min:1,max:12};case`day`:return{min:1,max:n.month?e.K(n.year??2e3,n.month):31};case`hour`:return r.hourCycle===12?{min:1,max:12}:{min:0,max:23};case`dayPeriod`:return{min:0,max:1};default:return{min:0,max:59}}}function m(e,t){return t[e]??0}function h(t,n,r,i,a){let o=t[n];if(o===void 0)return{...t,[n]:m(n,a)};let{min:s,max:c}=p(n,t,i);return{...t,[n]:s+e.Q(o-s+r,c-s+1)}}var g={year:5,month:2,day:7,hour:2,minute:15,second:15,dayPeriod:1};function _(e,t,n,r,i){let{min:a,max:o}=p(t,e,i),s=t===`year`?4:String(o).length,c=n+r;(Number(c)>o||c.length>s)&&(c=r);let l=Number(c),u=l>=a&&l<=o?l:void 0;return{draft:{...e,[t]:u},buffer:c,advance:c.length>=s||l*10>o}}function v(t,n,r){let i=n.toLocaleLowerCase(r),[a,o]=e.v(r).map(e=>e.toLocaleLowerCase(r));return i===`a`||a.startsWith(i)?{...t,dayPeriod:0}:i===`p`||o.startsWith(i)?{...t,dayPeriod:1}:null}var y={year:`yyyy`,month:`mm`,day:`dd`,hour:`hh`,minute:`mm`,second:`ss`};function b(t,n,r,i){let a=n[t];return t===`dayPeriod`?e.v(i)[a??0]:r&&(a===void 0||t===`year`)?r:a===void 0?y[t]:String(a).padStart(t===`year`?4:2,`0`)}function x(e,t){return f(t).every(t=>e[t]!==void 0)}function S(e,t){let n=e.hour??0;return t.hourCycle===12?n%12+(e.dayPeriod??0)*12:n}function C(t,n,r,i){if(!x(t,n))return null;let a=t.year??1970,o=t.month??1,s={year:a,month:o,day:Math.min(t.day??1,e.K(a,o)),hour:r.type===`date`?0:S(t,r),minute:t.minute??0,second:t.second??0,millisecond:0};if(r.type===`date`)return e.E({kind:`date`,fields:s,offset:0});if(r.type===`time`)return e.E({kind:`time`,fields:{...s,year:1970,month:1,day:1},offset:0});if(i.zone===null)return e.E({kind:`datetime`,fields:s,offset:0});let c=e.N(s,i.zone,i.disambiguation??`compatible`);return c===null?null:e.E(e.d(c,i.zone))}function w(t,n,r){let i=e.f(t);if(!i)return{};let a=n.type===`datetime`?`datetime`:n.type,o=e.l(i,a,{zone:r??void 0});if(!o)return{};let{year:s,month:c,day:l,hour:u,minute:d,second:f}=o.fields,p={};return n.type!==`time`&&Object.assign(p,{year:s,month:c,day:l}),n.type!==`date`&&(Object.assign(p,{minute:d,second:f}),n.hourCycle===12?Object.assign(p,{hour:u%12||12,dayPeriod:+(u>=12)}):p.hour=u),p}function T(e){let t=Math.max(1,Math.round(e)),n=[];for(let e=0;e<1440;e+=t)n.push(`${String(Math.floor(e/60)).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}:00`);return n}function E(e,t){let n=e&&/^(\d{2}):(\d{2})/.exec(e);if(!n)return null;let r=Math.max(1,Math.round(t)),i=Math.floor((Number(n[1])*60+Number(n[2]))/r)*r;return`${String(Math.floor(i/60)).padStart(2,`0`)}:${String(i%60).padStart(2,`0`)}:00`}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return _}});
package/date-input.mjs ADDED
@@ -0,0 +1,346 @@
1
+ import { E as e, I as t, K as n, N as r, Q as i, U as a, V as o, X as s, Y as c, a as l, d as u, f as d, l as f, m as p, o as m, v as h, x as g } from "./dates.mjs";
2
+ //#region src/utils/date/parse.ts
3
+ var _ = /* @__PURE__ */ new Map();
4
+ function v(e) {
5
+ let t = _.get(e);
6
+ return t || (t = l(e, {
7
+ year: "numeric",
8
+ month: "numeric",
9
+ day: "numeric",
10
+ timeZone: "UTC"
11
+ }).formatToParts(Date.UTC(2026, 10, 23)).map((e) => e.type).filter((e) => e === "year" || e === "month" || e === "day"), _.set(e, t)), t;
12
+ }
13
+ var y = /(\d{1,2})\s*[:h]\s*(\d{2})(?:\s*:\s*(\d{2})(?:[.,](\d{1,3}))?)?|(\d{1,2})(?=\s*(?:a\.?\s*m\.?|p\.?\s*m\.?)(?![\p{L}]))/iu;
14
+ function b(e, t) {
15
+ return e.toLocaleLowerCase(t).normalize("NFC");
16
+ }
17
+ function x(e) {
18
+ let t = /* @__PURE__ */ new Map([
19
+ ["today", 0],
20
+ ["now", 0],
21
+ ["tomorrow", 1],
22
+ ["yesterday", -1]
23
+ ]);
24
+ try {
25
+ let n = new Intl.RelativeTimeFormat(e, { numeric: "auto" });
26
+ for (let r of [
27
+ -1,
28
+ 0,
29
+ 1
30
+ ]) t.set(b(n.format(r, "day"), e), r);
31
+ } catch {}
32
+ return t;
33
+ }
34
+ function S(e, t) {
35
+ let n = Number(e);
36
+ if (e.length > 2) return n;
37
+ let r = Math.floor(t / 100) * 100 + n;
38
+ return r > t + 50 ? r - 100 : r < t - 50 ? r + 100 : r;
39
+ }
40
+ function C(e, t) {
41
+ let n = y.exec(e);
42
+ if (!n) return { rest: e };
43
+ let r = e.slice(n.index + n[0].length), [i, a] = h(t).map((e) => b(e, t).replace(/\./g, "")), c = /^\s*([\p{L}.]+)/u.exec(r)?.[1].replace(/\./g, "") ?? "", l = c !== "" && (c === a || /^pm?$/.test(c)), u = c !== "" && (c === i || /^am?$/.test(c)), d = Number(n[1] ?? n[5]);
44
+ l && d < 12 && (d += 12), u && d === 12 && (d = 0);
45
+ let f = {
46
+ ...o,
47
+ year: 1970,
48
+ month: 1,
49
+ day: 1,
50
+ hour: d,
51
+ minute: Number(n[2] ?? 0),
52
+ second: Number(n[3] ?? 0),
53
+ millisecond: Number((n[4] ?? "").padEnd(3, "0")) || 0
54
+ }, p = n[0].length + (l || u ? /^\s*[\p{L}.]+/u.exec(r)?.[0].length ?? 0 : 0);
55
+ return {
56
+ time: s(f) ? f : void 0,
57
+ rest: e.slice(0, n.index) + " " + e.slice(n.index + p)
58
+ };
59
+ }
60
+ function w(e, t, n) {
61
+ let r = e.match(/\d+|[\p{L}]+/gu) ?? [];
62
+ if (r.length === 0) return;
63
+ let i = x(t);
64
+ for (let e of r) {
65
+ let t = i.get(e);
66
+ if (t !== void 0) return {
67
+ ...a(n, t),
68
+ ...o
69
+ };
70
+ }
71
+ let s = [
72
+ ...g(t, "long"),
73
+ ...g(t, "short"),
74
+ ...g("en", "long")
75
+ ].map((e) => b(e, t).replace(/\.$/, "")), l, u = [];
76
+ for (let e of r) if (/^\d+$/.test(e)) u.push(e);
77
+ else if (l === void 0 && e.length >= 3) {
78
+ let t = s.findIndex((t) => t.startsWith(e) || e.startsWith(t));
79
+ t >= 0 && (l = t % 12 + 1);
80
+ }
81
+ if (u.length === 0 && l === void 0) return;
82
+ let d = v(t);
83
+ u[0]?.length >= 3 && (d = [
84
+ "year",
85
+ "month",
86
+ "day"
87
+ ]), l === void 0 ? u.length === 2 && (d = d.filter((e) => e !== "year")) : d = d.filter((e) => e !== "month");
88
+ let f = { month: l };
89
+ d.forEach((e, t) => {
90
+ let r = u[t];
91
+ r !== void 0 && (f[e] = e === "year" ? S(r, n.year) : Number(r));
92
+ });
93
+ let p = {
94
+ ...o,
95
+ year: f.year ?? n.year,
96
+ month: f.month ?? NaN,
97
+ day: f.day ?? (l === void 0 ? NaN : 1)
98
+ };
99
+ return c(p) ? p : null;
100
+ }
101
+ function T(n, r = {}) {
102
+ let i = d(n, r.disambiguation), a = (t) => {
103
+ let n = t && r.kind ? f(t, r.kind, r) : t;
104
+ return n ? e(n) : null;
105
+ };
106
+ if (i) return a(i);
107
+ if (typeof n != "string") return null;
108
+ let s = r.locale ?? t(), c = d(r.reference ?? Date.now()), l = c ? p(c, r.zone ?? "local") : {
109
+ year: 1970,
110
+ month: 1,
111
+ day: 1,
112
+ ...o
113
+ }, { time: u, rest: m } = r.kind === "date" ? {
114
+ time: void 0,
115
+ rest: n
116
+ } : C(b(n, s), s), h = r.kind === "time" ? void 0 : w(r.kind === "date" ? b(m, s) : m, s, l);
117
+ if (h === null || !h && !u) return null;
118
+ let g = h ?? void 0;
119
+ return g && u ? a({
120
+ kind: "datetime",
121
+ fields: {
122
+ ...g,
123
+ hour: u.hour,
124
+ minute: u.minute,
125
+ second: u.second,
126
+ millisecond: u.millisecond
127
+ },
128
+ offset: 0
129
+ }) : g ? a({
130
+ kind: "date",
131
+ fields: g,
132
+ offset: 0
133
+ }) : u ? a({
134
+ kind: "time",
135
+ fields: u,
136
+ offset: 0
137
+ }) : null;
138
+ }
139
+ //#endregion
140
+ //#region src/utils/date/fieldModel.ts
141
+ var E = /* @__PURE__ */ new Set([
142
+ "year",
143
+ "month",
144
+ "day",
145
+ "hour",
146
+ "minute",
147
+ "second",
148
+ "dayPeriod"
149
+ ]);
150
+ function D(e) {
151
+ let t = e.type === "time" ? {} : {
152
+ year: "numeric",
153
+ month: "2-digit",
154
+ day: "2-digit"
155
+ }, n = e.type === "date" ? {} : {
156
+ hour: "2-digit",
157
+ minute: "2-digit",
158
+ ...e.granularity === "second" ? { second: "2-digit" } : {},
159
+ hourCycle: e.hourCycle === 12 ? "h12" : "h23"
160
+ }, r = l(e.locale, {
161
+ ...t,
162
+ ...n,
163
+ calendar: "gregory",
164
+ numberingSystem: "latn",
165
+ timeZone: "UTC"
166
+ }).formatToParts(Date.UTC(2026, 10, 23, 15, 45, 30)), i = [];
167
+ for (let e of r) if (E.has(e.type)) i.push({
168
+ type: e.type,
169
+ text: ""
170
+ });
171
+ else if (e.type === "literal") {
172
+ let t = i[i.length - 1];
173
+ t?.type === "literal" ? t.text += m(e.value) : i.push({
174
+ type: "literal",
175
+ text: m(e.value)
176
+ });
177
+ }
178
+ for (; i[0]?.type === "literal";) i.shift();
179
+ for (; i[i.length - 1]?.type === "literal";) i.pop();
180
+ return i;
181
+ }
182
+ function O(e) {
183
+ return e.filter((e) => e.type !== "literal").map((e) => e.type);
184
+ }
185
+ function k(e, t, r) {
186
+ switch (e) {
187
+ case "year": return {
188
+ min: 1,
189
+ max: 9999
190
+ };
191
+ case "month": return {
192
+ min: 1,
193
+ max: 12
194
+ };
195
+ case "day": return {
196
+ min: 1,
197
+ max: t.month ? n(t.year ?? 2e3, t.month) : 31
198
+ };
199
+ case "hour": return r.hourCycle === 12 ? {
200
+ min: 1,
201
+ max: 12
202
+ } : {
203
+ min: 0,
204
+ max: 23
205
+ };
206
+ case "dayPeriod": return {
207
+ min: 0,
208
+ max: 1
209
+ };
210
+ default: return {
211
+ min: 0,
212
+ max: 59
213
+ };
214
+ }
215
+ }
216
+ function A(e, t) {
217
+ return t[e] ?? 0;
218
+ }
219
+ function j(e, t, n, r, a) {
220
+ let o = e[t];
221
+ if (o === void 0) return {
222
+ ...e,
223
+ [t]: A(t, a)
224
+ };
225
+ let { min: s, max: c } = k(t, e, r);
226
+ return {
227
+ ...e,
228
+ [t]: s + i(o - s + n, c - s + 1)
229
+ };
230
+ }
231
+ var M = {
232
+ year: 5,
233
+ month: 2,
234
+ day: 7,
235
+ hour: 2,
236
+ minute: 15,
237
+ second: 15,
238
+ dayPeriod: 1
239
+ };
240
+ function N(e, t, n, r, i) {
241
+ let { min: a, max: o } = k(t, e, i), s = t === "year" ? 4 : String(o).length, c = n + r;
242
+ (Number(c) > o || c.length > s) && (c = r);
243
+ let l = Number(c), u = l >= a && l <= o ? l : void 0;
244
+ return {
245
+ draft: {
246
+ ...e,
247
+ [t]: u
248
+ },
249
+ buffer: c,
250
+ advance: c.length >= s || l * 10 > o
251
+ };
252
+ }
253
+ function P(e, t, n) {
254
+ let r = t.toLocaleLowerCase(n), [i, a] = h(n).map((e) => e.toLocaleLowerCase(n));
255
+ return r === "a" || i.startsWith(r) ? {
256
+ ...e,
257
+ dayPeriod: 0
258
+ } : r === "p" || a.startsWith(r) ? {
259
+ ...e,
260
+ dayPeriod: 1
261
+ } : null;
262
+ }
263
+ var F = {
264
+ year: "yyyy",
265
+ month: "mm",
266
+ day: "dd",
267
+ hour: "hh",
268
+ minute: "mm",
269
+ second: "ss"
270
+ };
271
+ function I(e, t, n, r) {
272
+ let i = t[e];
273
+ return e === "dayPeriod" ? h(r)[i ?? 0] : n && (i === void 0 || e === "year") ? n : i === void 0 ? F[e] : String(i).padStart(e === "year" ? 4 : 2, "0");
274
+ }
275
+ function L(e, t) {
276
+ return O(t).every((t) => e[t] !== void 0);
277
+ }
278
+ function R(e, t) {
279
+ let n = e.hour ?? 0;
280
+ return t.hourCycle === 12 ? n % 12 + (e.dayPeriod ?? 0) * 12 : n;
281
+ }
282
+ function z(t, i, a, o) {
283
+ if (!L(t, i)) return null;
284
+ let s = t.year ?? 1970, c = t.month ?? 1, l = {
285
+ year: s,
286
+ month: c,
287
+ day: Math.min(t.day ?? 1, n(s, c)),
288
+ hour: a.type === "date" ? 0 : R(t, a),
289
+ minute: t.minute ?? 0,
290
+ second: t.second ?? 0,
291
+ millisecond: 0
292
+ };
293
+ if (a.type === "date") return e({
294
+ kind: "date",
295
+ fields: l,
296
+ offset: 0
297
+ });
298
+ if (a.type === "time") return e({
299
+ kind: "time",
300
+ fields: {
301
+ ...l,
302
+ year: 1970,
303
+ month: 1,
304
+ day: 1
305
+ },
306
+ offset: 0
307
+ });
308
+ if (o.zone === null) return e({
309
+ kind: "datetime",
310
+ fields: l,
311
+ offset: 0
312
+ });
313
+ let d = r(l, o.zone, o.disambiguation ?? "compatible");
314
+ return d === null ? null : e(u(d, o.zone));
315
+ }
316
+ function B(e, t, n) {
317
+ let r = d(e);
318
+ if (!r) return {};
319
+ let i = t.type === "datetime" ? "datetime" : t.type, a = f(r, i, { zone: n ?? void 0 });
320
+ if (!a) return {};
321
+ let { year: o, month: s, day: c, hour: l, minute: u, second: p } = a.fields, m = {};
322
+ return t.type !== "time" && Object.assign(m, {
323
+ year: o,
324
+ month: s,
325
+ day: c
326
+ }), t.type !== "date" && (Object.assign(m, {
327
+ minute: u,
328
+ second: p
329
+ }), t.hourCycle === 12 ? Object.assign(m, {
330
+ hour: l % 12 || 12,
331
+ dayPeriod: +(l >= 12)
332
+ }) : m.hour = l), m;
333
+ }
334
+ function V(e) {
335
+ let t = Math.max(1, Math.round(e)), n = [];
336
+ for (let e = 0; e < 1440; e += t) n.push(`${String(Math.floor(e / 60)).padStart(2, "0")}:${String(e % 60).padStart(2, "0")}:00`);
337
+ return n;
338
+ }
339
+ function H(e, t) {
340
+ let n = e && /^(\d{2}):(\d{2})/.exec(e);
341
+ if (!n) return null;
342
+ let r = Math.max(1, Math.round(t)), i = Math.floor((Number(n[1]) * 60 + Number(n[2])) / r) * r;
343
+ return `${String(Math.floor(i / 60)).padStart(2, "0")}:${String(i % 60).padStart(2, "0")}:00`;
344
+ }
345
+ //#endregion
346
+ export { I as a, j as c, P as d, z as f, k as i, V as l, T as m, B as n, D as o, v as p, O as r, H as s, M as t, N as u };
package/date-math.cjs ADDED
@@ -0,0 +1 @@
1
+ const e=require("./dates.cjs");var t={hours:36e5,minutes:6e4,seconds:1e3,milliseconds:1};function n(e){return Object.entries(t).reduce((t,[n,r])=>t+(e[n]??0)*r,0)}function r(t,n){let r=(n.years??0)*12+(n.months??0),i=e.U(e.W(t,r),(n.weeks??0)*7+(n.days??0));return{...t,...i}}function i(t){return e.f(t)?.kind??null}function a(t,n){let r=e.f(t);return r!==null&&(n===void 0||r.kind===n)}function o(t){let n=e.f(t);return n&&e.E(n)}function s(t,n={}){let r=e.f(t,n.disambiguation);if(!r)return null;let i=e.u(r,{zone:n.from,disambiguation:n.disambiguation});return i===null?null:e.E(e.p(i))}function c(t,n,r={}){let i=e.f(t,r.disambiguation);if(!i)return null;let a=e.u(i,{zone:r.from,disambiguation:r.disambiguation});return a===null?null:e.E(e.d(a,e.j(n)))}function l(e,t={}){return c(e,`local`,t)}function u(t,n={}){return e.c(t,`date`,n)}function d(t,n={}){return e.c(t,`time`,n)}function f(t,n={}){return e.c(t,`datetime`,n)}function p(t,n={}){return e.c(t,`instant`,n)}function m(t,n={}){let r=e.f(t,n.disambiguation);return r&&e.u(r,n)}function h(e,t={}){let n=m(e,t);return n===null?null:new Date(n)}function g(t,n={}){let r=e.f(t);if(!r)return null;let i=n.kind??`instant`;return e.E(e.l(r,i,{...n,zone:n.zone??(i===`instant`?`utc`:`local`)}))}function _(t,n,r={}){let i=e.f(t),a=e.f(n);if(!i||!a||i.kind===`time`)return null;let o=e.m(i,r.zone),s=e.m(a,r.zone),c={kind:`datetime`,fields:{...o,hour:s.hour,minute:s.minute,second:s.second,millisecond:s.millisecond},offset:0};return r.zone===void 0?e.E(c):e.E(e.l(c,`instant`,r))}function v(t=`local`){return e.E(e.l(e.p(Date.now()),`date`,{zone:t}))}function y(t=`local`){return e.E(e.d(Date.now(),e.j(t)))}function b(t=`local`){return e.E(e.l(e.p(Date.now()),`time`,{zone:t}))}function x(t,i,a={}){let o=e.f(t,a.disambiguation);if(!o)return null;if(o.kind===`time`){let t=e.Q(e.J(o.fields)+n(i),e.H);return e.E({...o,fields:{...e.$(t),year:1970,month:1,day:1}})}if(o.kind===`date`)return e.E({...o,fields:r(o.fields,i)});if(o.kind===`datetime`)return e.E({...o,fields:e.$(e.J(r(o.fields,i))+n(i))});let s=e._(o,a.zone),c=e.h(o,r(e.m(o,s),i),{...a,zone:s});return e.E(e.g(o,e.T(c)+n(i),s))}function S(e,t,n={}){return x(e,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,-t])),n)}function C(t,n,r){switch(n){case`year`:return{...t,...e.V,month:1,day:1};case`quarter`:return{...t,...e.V,month:Math.floor((t.month-1)/3)*3+1,day:1};case`month`:return{...t,...e.V,day:1};case`week`:return{...t,...e.U(t,-e.Q(e.G(t)-e.S(r).firstDay,7)),...e.V};case`day`:return{...t,...e.V};case`hour`:return{...t,minute:0,second:0,millisecond:0};case`minute`:return{...t,second:0,millisecond:0};case`second`:return{...t,millisecond:0};default:return t}}var w={year:{years:1},quarter:{months:3},month:{months:1},week:{weeks:1},day:{days:1},hour:{hours:1},minute:{minutes:1},second:{seconds:1},millisecond:{milliseconds:1}};function T(t,n,r={}){let i=e.f(t,r.disambiguation);if(!i)return null;let a=C(e.m(i,r.zone),n,r.locale??e.I());return i.kind===`time`?e.E({...i,fields:{...a,year:1970,month:1,day:1}}):e.E(e.h(i,a,r))}function E(e,t,n={}){let r=T(e,t,n),a=r&&x(r,w[t],n);return a?i(a)===`date`?x(a,{days:-1},n):x(a,{milliseconds:-1},n):null}function D(t,n,r={}){let i=e.f(t,r.disambiguation),a=e.f(n,r.disambiguation);return!i||!a?i?1:a?-1:0:i.kind===a.kind&&i.kind!==`instant`?Math.sign(e.J(i.fields)-e.J(a.fields)):i.kind===`time`||a.kind===`time`?Math.sign(e.J(e.m(i,r.zone))%e.H-e.J(e.m(a,r.zone))%e.H):Math.sign((e.u(i,r)??0)-(e.u(a,r)??0))}function O(e,t,n={}){return D(e,t,n)<0}function k(e,t,n={}){return D(e,t,n)>0}function A(t,n,r={}){return e.f(t)!==null&&e.f(n)!==null&&D(t,n,r)===0}function j(t,n,r,i={}){let a=e.f(t),o=e.f(n);if(!a||!o)return!1;let s=i.locale??e.I();return e.J(C(e.m(a,i.zone),r,s))===e.J(C(e.m(o,i.zone),r,s))}function M(e,t,n,r={}){return(t==null||D(e,t,r)>=0)&&(n==null||D(e,n,r)<=0)}function N(e,t,n,r={}){return t!=null&&D(e,t,r)<0?o(t):n!=null&&D(e,n,r)>0?o(n):o(e)}var P={week:7*e.H,day:e.H,hour:36e5,minute:6e4,second:1e3,millisecond:1};function F(t,n,r,i={}){let a=e.f(t,i.disambiguation),o=e.f(n,i.disambiguation);if(!a||!o)return null;let s=a.kind!==`instant`&&o.kind!==`instant`,c=e.m(a,i.zone),l=e.m(o,i.zone);if(r===`year`||r===`quarter`||r===`month`){let t=(c.year-l.year)*12+c.month-l.month,n=e.J({...c,year:1970,month:1}),i=e.J({...l,year:1970,month:1});return t>0&&n<i&&--t,t<0&&n>i&&(t+=1),Math.trunc(t/(r===`year`?12:r===`quarter`?3:1))||0}let u=s?e.J(c)-e.J(l):(e.u(a,i)??0)-(e.u(o,i)??0);return(r===`day`||r===`week`)&&a.kind===`date`&&o.kind===`date`?Math.trunc((e.q(c)-e.q(l))/(r===`week`?7:1))||0:Math.trunc(u/(P[r]??1))||0}function I(t,n={}){let r=e.f(t);if(!r||r.kind===`time`)return null;let i=e.m(r,n.zone);return e.K(i.year,i.month)}function L(t,n={}){let r=e.f(t,n.disambiguation);if(!r)return null;let i=r.kind===`instant`?e._(r,n.zone):e.j(n.zone),a=r.kind===`time`?null:e.u(r,{...n,zone:i}),o=e.m(r,i),s=e.L();return{value:e.E(r),kind:r.kind,zone:i,utc:a===null?null:e.E(e.p(a)),zoned:a===null?null:e.E(e.d(a,i)),local:a===null||r.kind===`date`?e.E(r):e.E({kind:`datetime`,fields:e.m(e.d(a,s),s),offset:0}),offset:a===null?null:e.D(e.A(i,a)),date:a===null?null:new Date(a),epoch:a,year:o.year,month:o.month,day:o.day,hour:o.hour,minute:o.minute,second:o.second,millisecond:o.millisecond}}function R(t=`local`,n=Date.now()){let r=e.f(n),i=r&&e.u(r,{zone:t});return i==null?null:e.A(e.j(t),i)}function z(t,n=`local`){let r=t?L(t,{zone:n}):null;return{utc:r?.utc??null,local:r?.local??null,zoned:r?.zoned??null,date:r?.date??null,epoch:r?.epoch??null,zone:r?.zone??e.k(n)??`UTC`,offset:r?.offset??null}}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return y}});