@burdenoff/microfe-crewfoundry 2026.924.1 → 2026.1013.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/crewfoundry/components/forms/FormModal.d.ts +25 -1
  2. package/dist/crewfoundry/components/forms/FormModal.d.ts.map +1 -1
  3. package/dist/crewfoundry/components/forms/FormModal.js +151 -136
  4. package/dist/crewfoundry/components/forms/FormModal.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts.map +1 -1
  6. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +49 -49
  7. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  8. package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts.map +1 -1
  9. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +260 -115
  10. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts.map +1 -1
  12. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +199 -166
  13. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  14. package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts.map +1 -1
  15. package/dist/crewfoundry/pages/HiringJobsPagePage.js +118 -104
  16. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  17. package/dist/crewfoundry/store/crewfoundryStore.d.ts +1 -1
  18. package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
  19. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
  20. package/dist/crewfoundry/utils/dateUtils.d.ts +47 -0
  21. package/dist/crewfoundry/utils/dateUtils.d.ts.map +1 -0
  22. package/dist/crewfoundry/utils/dateUtils.js +22 -0
  23. package/dist/crewfoundry/utils/dateUtils.js.map +1 -0
  24. package/package.json +1 -1
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Local-calendar date utilities for the CrewFoundry MFE.
3
+ *
4
+ * The native `new Date('YYYY-MM-DD')` constructor parses date-only strings
5
+ * as UTC midnight, which silently breaks user-facing date math for callers
6
+ * in non-UTC timezones (a deadline picked as "today" in PST is already
7
+ * 17-20 hours in the past by local noon). These helpers parse and compare
8
+ * as local-calendar-day values instead.
9
+ */
10
+ /**
11
+ * Parse a YYYY-MM-DD or ISO-8601 timestamp as local-midnight on that
12
+ * calendar day. Two input shapes are accepted because the same field
13
+ * can arrive either way depending on the source:
14
+ *
15
+ * - 'YYYY-MM-DD' — what the date input sends on save (local calendar day).
16
+ * - 'YYYY-MM-DDTHH:mm:ss.sssZ' (or with an offset) — what the GraphQL
17
+ * server returns for `DateTime` columns (UTC instant).
18
+ *
19
+ * For full timestamps we extract the date portion BEFORE constructing the
20
+ * Date, so a UTC midnight instant displays as the same calendar day in
21
+ * any timezone (a deadline stored as 2026-09-29T00:00:00Z is meant to be
22
+ * 2026-09-29, not whatever the user's timezone shifts it to).
23
+ *
24
+ * Returns null if the input isn't a well-formed date-only or ISO string,
25
+ * an unparseable Date, an out-of-range date component (e.g. 2026-02-30),
26
+ * or an empty value. Callers that want a raw Date back should check the
27
+ * result.
28
+ */
29
+ export declare function parseLocalDate(dateStr: string | null | undefined): Date | null;
30
+ /**
31
+ * Whole-day difference between two dates, compared as local calendar days.
32
+ *
33
+ * Both inputs are interpreted at their local midnight. The result is the
34
+ * signed integer count of calendar days from `from` to `to` (negative if
35
+ * `to` is earlier). The inputs must already be valid Dates — this helper
36
+ * does no validity checking; call parseLocalDate first for YYYY-MM-DD
37
+ * strings.
38
+ */
39
+ export declare function localDayDiff(from: Date, to: Date): number;
40
+ /**
41
+ * Local-calendar today as a YYYY-MM-DD string. Recomputed on every call;
42
+ * callers that need the picker `min` value pass this through a prop and
43
+ * accept that the prop won't refresh across midnight without a re-render
44
+ * trigger (typing in the form is sufficient in practice).
45
+ */
46
+ export declare function localTodayString(): string;
47
+ //# sourceMappingURL=dateUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/utils/dateUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAe9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAGzC"}
@@ -0,0 +1,22 @@
1
+ //#region src/crewfoundry/utils/dateUtils.ts
2
+ function e(e) {
3
+ if (!e) return null;
4
+ let t = /^\d{4}-\d{2}-\d{2}/.exec(e);
5
+ if (!t) return null;
6
+ let [n, r, i] = t[0].split("-").map((e) => Number(e));
7
+ if (!Number.isFinite(n) || !Number.isFinite(r) || !Number.isFinite(i)) return null;
8
+ let a = new Date(n, r - 1, i);
9
+ return a.getFullYear() !== n || a.getMonth() !== r - 1 || a.getDate() !== i ? null : a;
10
+ }
11
+ function t(e, t) {
12
+ let n = new Date(e.getFullYear(), e.getMonth(), e.getDate()), r = new Date(t.getFullYear(), t.getMonth(), t.getDate());
13
+ return Math.round((r.getTime() - n.getTime()) / 864e5);
14
+ }
15
+ function n() {
16
+ let e = /* @__PURE__ */ new Date();
17
+ return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
18
+ }
19
+ //#endregion
20
+ export { t as localDayDiff, n as localTodayString, e as parseLocalDate };
21
+
22
+ //# sourceMappingURL=dateUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateUtils.js","names":[],"sources":["../../../src/crewfoundry/utils/dateUtils.ts"],"sourcesContent":["/**\n * Local-calendar date utilities for the CrewFoundry MFE.\n *\n * The native `new Date('YYYY-MM-DD')` constructor parses date-only strings\n * as UTC midnight, which silently breaks user-facing date math for callers\n * in non-UTC timezones (a deadline picked as \"today\" in PST is already\n * 17-20 hours in the past by local noon). These helpers parse and compare\n * as local-calendar-day values instead.\n */\n\n/**\n * Parse a YYYY-MM-DD or ISO-8601 timestamp as local-midnight on that\n * calendar day. Two input shapes are accepted because the same field\n * can arrive either way depending on the source:\n *\n * - 'YYYY-MM-DD' — what the date input sends on save (local calendar day).\n * - 'YYYY-MM-DDTHH:mm:ss.sssZ' (or with an offset) — what the GraphQL\n * server returns for `DateTime` columns (UTC instant).\n *\n * For full timestamps we extract the date portion BEFORE constructing the\n * Date, so a UTC midnight instant displays as the same calendar day in\n * any timezone (a deadline stored as 2026-09-29T00:00:00Z is meant to be\n * 2026-09-29, not whatever the user's timezone shifts it to).\n *\n * Returns null if the input isn't a well-formed date-only or ISO string,\n * an unparseable Date, an out-of-range date component (e.g. 2026-02-30),\n * or an empty value. Callers that want a raw Date back should check the\n * result.\n */\nexport function parseLocalDate(dateStr: string | null | undefined): Date | null {\n if (!dateStr) return null;\n // Extract the YYYY-MM-DD prefix: handles both date-only inputs and\n // full ISO timestamps (YYYY-MM-DDTHH:mm:ss...).\n const dateOnlyMatch = /^\\d{4}-\\d{2}-\\d{2}/.exec(dateStr);\n if (!dateOnlyMatch) return null;\n const [year, month, day] = dateOnlyMatch[0].split('-').map((part) => Number(part));\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\n\n/**\n * Whole-day difference between two dates, compared as local calendar days.\n *\n * Both inputs are interpreted at their local midnight. The result is the\n * signed integer count of calendar days from `from` to `to` (negative if\n * `to` is earlier). The inputs must already be valid Dates — this helper\n * does no validity checking; call parseLocalDate first for YYYY-MM-DD\n * strings.\n */\nexport function localDayDiff(from: Date, to: Date): number {\n const fromMidnight = new Date(from.getFullYear(), from.getMonth(), from.getDate());\n const toMidnight = new Date(to.getFullYear(), to.getMonth(), to.getDate());\n return Math.round((toMidnight.getTime() - fromMidnight.getTime()) / 86_400_000);\n}\n\n/**\n * Local-calendar today as a YYYY-MM-DD string. Recomputed on every call;\n * callers that need the picker `min` value pass this through a prop and\n * accept that the prop won't refresh across midnight without a re-render\n * trigger (typing in the form is sufficient in practice).\n */\nexport function localTodayString(): string {\n const now = new Date();\n return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`;\n}\n"],"mappings":";AA6BA,SAAgB,EAAe,GAAiD;AAC9E,KAAI,CAAC,EAAS,QAAO;CAGrB,IAAM,IAAgB,qBAAqB,KAAK,EAAQ;AACxD,KAAI,CAAC,EAAe,QAAO;CAC3B,IAAM,CAAC,GAAM,GAAO,KAAO,EAAc,GAAG,MAAM,IAAI,CAAC,KAAK,MAAS,OAAO,EAAK,CAAC;AAClF,KAAI,CAAC,OAAO,SAAS,EAAK,IAAI,CAAC,OAAO,SAAS,EAAM,IAAI,CAAC,OAAO,SAAS,EAAI,CAC5E,QAAO;CAET,IAAM,IAAO,IAAI,KAAK,GAAM,IAAQ,GAAG,EAAI;AAI3C,QAHI,EAAK,aAAa,KAAK,KAAQ,EAAK,UAAU,KAAK,IAAQ,KAAK,EAAK,SAAS,KAAK,IAC9E,OAEF;;AAYT,SAAgB,EAAa,GAAY,GAAkB;CACzD,IAAM,IAAe,IAAI,KAAK,EAAK,aAAa,EAAE,EAAK,UAAU,EAAE,EAAK,SAAS,CAAC,EAC5E,IAAa,IAAI,KAAK,EAAG,aAAa,EAAE,EAAG,UAAU,EAAE,EAAG,SAAS,CAAC;AAC1E,QAAO,KAAK,OAAO,EAAW,SAAS,GAAG,EAAa,SAAS,IAAI,MAAW;;AASjF,SAAgB,IAA2B;CACzC,IAAM,oBAAM,IAAI,MAAM;AACtB,QAAO,GAAG,EAAI,aAAa,CAAC,GAAG,OAAO,EAAI,UAAU,GAAG,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,OAAO,EAAI,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-crewfoundry",
3
- "version": "2026.924.1",
3
+ "version": "2026.1013.2",
4
4
  "description": "Burdenoff CrewFoundry Microfrontend",
5
5
  "type": "module",
6
6
  "files": [