@hadoku/jobplatform 0.0.0-stage → 3.41.15
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.
- package/LICENSE +21 -0
- package/README.md +185 -2
- package/dist/App.d.ts +9 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/api/applyQueue.d.ts +42 -0
- package/dist/api/applyQueue.d.ts.map +1 -0
- package/dist/api/auth.d.ts +15 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/companies.d.ts +26 -0
- package/dist/api/companies.d.ts.map +1 -0
- package/dist/api/jobs.d.ts +388 -0
- package/dist/api/jobs.d.ts.map +1 -0
- package/dist/api/packets.d.ts +28 -0
- package/dist/api/packets.d.ts.map +1 -0
- package/dist/api/profiles.d.ts +64 -0
- package/dist/api/profiles.d.ts.map +1 -0
- package/dist/api/resource.d.ts +43 -0
- package/dist/api/resource.d.ts.map +1 -0
- package/dist/api/useResource.d.ts +26 -0
- package/dist/api/useResource.d.ts.map +1 -0
- package/dist/components/ApplicationsList.d.ts +15 -0
- package/dist/components/ApplicationsList.d.ts.map +1 -0
- package/dist/components/CompaniesManager.d.ts +10 -0
- package/dist/components/CompaniesManager.d.ts.map +1 -0
- package/dist/components/FillExtensionInstall.d.ts +7 -0
- package/dist/components/FillExtensionInstall.d.ts.map +1 -0
- package/dist/components/JobCard.d.ts +17 -0
- package/dist/components/JobCard.d.ts.map +1 -0
- package/dist/components/JobDrawer.d.ts +17 -0
- package/dist/components/JobDrawer.d.ts.map +1 -0
- package/dist/components/JobsList.d.ts +18 -0
- package/dist/components/JobsList.d.ts.map +1 -0
- package/dist/components/PacketDetail.d.ts +16 -0
- package/dist/components/PacketDetail.d.ts.map +1 -0
- package/dist/components/PacketsList.d.ts +16 -0
- package/dist/components/PacketsList.d.ts.map +1 -0
- package/dist/components/ProfileEditorModal.d.ts +15 -0
- package/dist/components/ProfileEditorModal.d.ts.map +1 -0
- package/dist/components/ProfileSidebar.d.ts +24 -0
- package/dist/components/ProfileSidebar.d.ts.map +1 -0
- package/dist/components/UnansweredQuestions.d.ts +9 -0
- package/dist/components/UnansweredQuestions.d.ts.map +1 -0
- package/dist/components/VerificationCodes.d.ts +12 -0
- package/dist/components/VerificationCodes.d.ts.map +1 -0
- package/dist/components/VoteControl.d.ts +23 -0
- package/dist/components/VoteControl.d.ts.map +1 -0
- package/dist/components/matchOption.d.ts +16 -0
- package/dist/components/matchOption.d.ts.map +1 -0
- package/dist/entry.d.ts +24 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/fillExtension/bundle.d.ts +4 -0
- package/dist/fillExtension/bundle.d.ts.map +1 -0
- package/dist/fillExtension/zip.d.ts +12 -0
- package/dist/fillExtension/zip.d.ts.map +1 -0
- package/dist/index.js +5687 -0
- package/dist/style.css +1 -0
- package/package.json +35 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type JobStateRead, type FeedbackReason, type VoteValue } from '../api/jobs';
|
|
2
|
+
import type { Auth } from '../api/auth';
|
|
3
|
+
interface Props {
|
|
4
|
+
auth: Auth;
|
|
5
|
+
jobId: string;
|
|
6
|
+
profileId: string | null;
|
|
7
|
+
initialVote?: VoteValue | null;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
onStateChange?: (jobId: string, newState: JobStateRead) => void;
|
|
10
|
+
onVoteChange?: (jobId: string, vote: VoteValue | null, reasons: FeedbackReason[]) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function Description({ text }: {
|
|
13
|
+
text: string;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function JobDrawer({ auth, jobId, profileId, initialVote, onClose, onStateChange, onVoteChange }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=JobDrawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JobDrawer.d.ts","sourceRoot":"","sources":["../../src/components/JobDrawer.tsx"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,YAAY,EAGjB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAMvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAGxB,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IAC/D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;CAC1F;AA0BD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2CAarD;AAgFD,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,OAAO,EACP,aAAa,EACb,YAAY,EACb,EAAE,KAAK,2CAieP"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type JobStateRead, type FeedbackReason, type VoteValue } from '../api/jobs';
|
|
2
|
+
import type { Auth } from '../api/auth';
|
|
3
|
+
interface Props {
|
|
4
|
+
auth: Auth;
|
|
5
|
+
profileId: string | null;
|
|
6
|
+
onSelect: (jobId: string, vote: VoteValue | null) => void;
|
|
7
|
+
refreshKey?: number;
|
|
8
|
+
voteOverrides: Record<string, {
|
|
9
|
+
vote: VoteValue | null;
|
|
10
|
+
reasons: FeedbackReason[];
|
|
11
|
+
}>;
|
|
12
|
+
onVote: (jobId: string, vote: VoteValue | null, reasons: FeedbackReason[]) => void;
|
|
13
|
+
stateOverrides: Record<string, JobStateRead>;
|
|
14
|
+
awaitingProfile?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function JobsList({ auth, profileId, onSelect, refreshKey, voteOverrides, onVote, stateOverrides, awaitingProfile }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=JobsList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JobsList.d.ts","sourceRoot":"","sources":["../../src/components/JobsList.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAIvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAA;IAIzD,UAAU,CAAC,EAAE,MAAM,CAAA;IAInB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAA;IACpF,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;IAIlF,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAI5C,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAWD,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,MAAM,EACN,cAAc,EACd,eAAe,EAChB,EAAE,KAAK,2CAkQP"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Auth } from '../api/auth';
|
|
2
|
+
interface Props {
|
|
3
|
+
auth: Auth;
|
|
4
|
+
jobId: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The packet split view (scratch #25): a two-column reading page inside the
|
|
10
|
+
* packets route — posting on the left, packet on the right — instead of
|
|
11
|
+
* bouncing back to the feed's drawer. Header carries the public "Tailored
|
|
12
|
+
* resume" link and the PDF button; the row itself no longer links to either.
|
|
13
|
+
*/
|
|
14
|
+
export declare function PacketDetail({ auth, jobId, slug, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=PacketDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PacketDetail.d.ts","sourceRoot":"","sources":["../../src/components/PacketDetail.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IAEZ,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,2CA8IjE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type PacketSummary } from '../api/jobs';
|
|
2
|
+
import type { Auth } from '../api/auth';
|
|
3
|
+
interface Props {
|
|
4
|
+
auth: Auth;
|
|
5
|
+
onSelect: (packet: PacketSummary) => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The Packets view: every application packet the owner has generated, findable
|
|
9
|
+
* again. A reference list, not a workflow — each row names the job, shows its
|
|
10
|
+
* triage state and prepared date, and opens the split view on click. The only
|
|
11
|
+
* outbound link on a row is the public tailored-resume page; the PDF button
|
|
12
|
+
* lives inside the split view (scratch #25).
|
|
13
|
+
*/
|
|
14
|
+
export declare function PacketsList({ auth, onSelect }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=PacketsList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PacketsList.d.ts","sourceRoot":"","sources":["../../src/components/PacketsList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IAEV,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;CAC1C;AAOD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAmEpD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type JobProfile } from '../api/profiles';
|
|
2
|
+
import type { Auth } from '../api/auth';
|
|
3
|
+
interface Props {
|
|
4
|
+
auth: Auth;
|
|
5
|
+
/** null/undefined = create a new profile. */
|
|
6
|
+
initial?: JobProfile | null;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
/** Called after every persist (create or update) so the parent can refresh. */
|
|
9
|
+
onSaved: (profile: JobProfile) => void;
|
|
10
|
+
/** Bumped-through to the feed so it refetches when companies change. */
|
|
11
|
+
onCompaniesChanged?: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function ProfileEditorModal({ auth, initial, onClose, onSaved, onCompaniesChanged }: Props): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ProfileEditorModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProfileEditorModal.d.ts","sourceRoot":"","sources":["../../src/components/ProfileEditorModal.tsx"],"names":[],"mappings":"AAQA,OAAO,EAOL,KAAK,UAAU,EAKhB,MAAM,iBAAiB,CAAA;AAQxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IACV,6CAA6C;IAC7C,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,+EAA+E;IAC/E,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;IACtC,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AA+BD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,2CA4WhG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type JobProfile } from '../api/profiles';
|
|
2
|
+
import type { Auth } from '../api/auth';
|
|
3
|
+
interface Props {
|
|
4
|
+
auth: Auth;
|
|
5
|
+
selectedId: string | null;
|
|
6
|
+
onSelect: (id: string | null) => void;
|
|
7
|
+
/** Open the full-screen editor for a new profile. */
|
|
8
|
+
onNew: () => void;
|
|
9
|
+
/** Open the full-screen editor for an existing profile. */
|
|
10
|
+
onEdit: (profile: JobProfile) => void;
|
|
11
|
+
/** Bumped by the parent after a save so the list refetches. */
|
|
12
|
+
reloadKey?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Fired once the profile list has settled, with how many profiles there are
|
|
15
|
+
* — including for a signed-out visitor, where there is nothing to fetch and
|
|
16
|
+
* the count is 0. The dashboard holds the feed's request while a selection is
|
|
17
|
+
* still coming, so it never asks for an unscored feed it is about to replace
|
|
18
|
+
* with a scored one; a count of 0 means no selection is coming.
|
|
19
|
+
*/
|
|
20
|
+
onResolved?: (count: number) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function ProfileSidebar({ auth, selectedId, onSelect, onNew, onEdit, reloadKey, onResolved }: Props): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=ProfileSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProfileSidebar.d.ts","sourceRoot":"","sources":["../../src/components/ProfileSidebar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAiBvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACrC,qDAAqD;IACrD,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,2DAA2D;IAC3D,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACX,EAAE,KAAK,2CAiJP"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Auth } from '../api/auth';
|
|
2
|
+
interface Props {
|
|
3
|
+
auth: Auth;
|
|
4
|
+
/** Bumped by the parent after a run, so the queue reflects the latest fills. */
|
|
5
|
+
refreshKey?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function UnansweredQuestions({ auth, refreshKey }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=UnansweredQuestions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnansweredQuestions.d.ts","sourceRoot":"","sources":["../../src/components/UnansweredQuestions.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGvC,UAAU,KAAK;IACb,IAAI,EAAE,IAAI,CAAA;IACV,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAiUD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,UAAc,EAAE,EAAE,KAAK,kDA+RlE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Auth } from '../api/auth';
|
|
2
|
+
/**
|
|
3
|
+
* The codes Greenhouse emails at submit, read from the hadoku.me mail feed so
|
|
4
|
+
* the owner types them into the form without opening an inbox.
|
|
5
|
+
*
|
|
6
|
+
* Renders nothing for anyone but the mailbox owner (the route 403s them) and
|
|
7
|
+
* nothing when there are no recent codes.
|
|
8
|
+
*/
|
|
9
|
+
export declare function VerificationCodes({ auth }: {
|
|
10
|
+
auth: Auth;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=VerificationCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerificationCodes.d.ts","sourceRoot":"","sources":["../../src/components/VerificationCodes.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAcvC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,kDA4EzD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FeedbackReason, type VoteValue } from '../api/jobs';
|
|
2
|
+
import type { Auth } from '../api/auth';
|
|
3
|
+
interface Props {
|
|
4
|
+
jobId: string;
|
|
5
|
+
auth: Auth;
|
|
6
|
+
vote: VoteValue | null;
|
|
7
|
+
reasons: FeedbackReason[];
|
|
8
|
+
onVoteChange: (jobId: string, vote: VoteValue | null, reasons: FeedbackReason[]) => void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
align?: 'start' | 'end';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* One-tap posting feedback: 👍/👎 plus MULTI-select reason chips. Tapping a
|
|
14
|
+
* thumb saves the vote immediately and opens the direction's chips; each chip
|
|
15
|
+
* toggles and saves (idempotent upsert) with the popover staying open until
|
|
16
|
+
* blur/Escape, so several reasons can be stacked. Tapping the active thumb
|
|
17
|
+
* clears the vote (DELETE). Everything is optimistic — values flip
|
|
18
|
+
* immediately and revert on error — so ripping through a hundred postings
|
|
19
|
+
* never waits on the network.
|
|
20
|
+
*/
|
|
21
|
+
export declare function VoteControl({ jobId, auth, vote, reasons, onVoteChange, disabled, align }: Props): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=VoteControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VoteControl.d.ts","sourceRoot":"","sources":["../../src/components/VoteControl.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,cAAc,EAAE,CAAA;IAGzB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;IACxF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAGlB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACxB;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,KAAa,EACd,EAAE,KAAK,2CAsGP"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The option on a board that says what an answer says — or null.
|
|
3
|
+
*
|
|
4
|
+
* MIRRORS `matchOption` in worker/src/questionFamily.ts, which is the source of
|
|
5
|
+
* truth: the worker uses it to pre-fill each question's suggestion, and the
|
|
6
|
+
* dashboard uses this copy when the owner types one answer for a whole family
|
|
7
|
+
* and applies it to every wording. If the two disagreed, "Apply to all" would
|
|
8
|
+
* pick a different option than the suggestion beside it.
|
|
9
|
+
*
|
|
10
|
+
* worker/tests/matchOptionParity.test.ts runs both over the same cases and
|
|
11
|
+
* fails on any drift. Kept free of imports so that test can load it directly.
|
|
12
|
+
*/
|
|
13
|
+
/** Mirrors worker/src/questionKey.ts `questionKey`. */
|
|
14
|
+
export declare function normalize(text: string): string;
|
|
15
|
+
export declare function matchOption(answer: string, options: string[]): string | null;
|
|
16
|
+
//# sourceMappingURL=matchOption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchOption.d.ts","sourceRoot":"","sources":["../../src/components/matchOption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAeD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA0B5E"}
|
package/dist/entry.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import '@wolffm/themes/style.css';
|
|
2
|
+
import '@wolffm/task-ui-components/theme-picker.css';
|
|
3
|
+
import '@wolffm/task-ui-components/app-header.css';
|
|
4
|
+
import './styles/index.css';
|
|
5
|
+
export interface JobPlatformProps {
|
|
6
|
+
/**
|
|
7
|
+
* The app's DISPLAY NAME, resolved by the platform from hadoku_site's
|
|
8
|
+
* spec/categories.json — the same file that titles the browser tab and the
|
|
9
|
+
* homepage tile. Render this; never hard-code the name in this repo.
|
|
10
|
+
*
|
|
11
|
+
* Absent when the app runs standalone (its own vite dev server, no host),
|
|
12
|
+
* which is what `__HADOKU_APP_NAME__` covers — see vite.config.ts.
|
|
13
|
+
*/
|
|
14
|
+
appName?: string;
|
|
15
|
+
theme?: string;
|
|
16
|
+
/**
|
|
17
|
+
* mf-loader's tier for the viewer: `'public'` when nobody is signed in.
|
|
18
|
+
* Requests authenticate by the `hadoku_session` cookie, never by a prop.
|
|
19
|
+
*/
|
|
20
|
+
userType?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function mount(el: HTMLElement, props?: JobPlatformProps): void;
|
|
23
|
+
export declare function unmount(el: HTMLElement): void;
|
|
24
|
+
//# sourceMappingURL=entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.tsx"],"names":[],"mappings":"AAIA,OAAO,0BAA0B,CAAA;AAEjC,OAAO,6CAA6C,CAAA;AACpD,OAAO,2CAA2C,CAAA;AAClD,OAAO,oBAAoB,CAAA;AAG3B,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAMD,wBAAgB,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,GAAE,gBAAqB,QAKlE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,WAAW,QAGtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/fillExtension/bundle.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,oBAAoB,QAAwD,CAAA;AAEzF,yDAAyD;AACzD,wBAAgB,qBAAqB,IAAI,IAAI,CAa5C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The smallest zip a browser can hand to Chrome's "Load unpacked": every entry
|
|
3
|
+
* STORED (no compression), so all it needs is a CRC-32 and the three record
|
|
4
|
+
* types. The extension is ~40KB of text; deflate would save bytes nobody waits on.
|
|
5
|
+
*/
|
|
6
|
+
export interface ZipEntry {
|
|
7
|
+
name: string;
|
|
8
|
+
text: string;
|
|
9
|
+
}
|
|
10
|
+
/** A zip of `entries`, each a UTF-8 text file at the archive root. */
|
|
11
|
+
export declare function zip(entries: ZipEntry[]): Uint8Array<ArrayBuffer>;
|
|
12
|
+
//# sourceMappingURL=zip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../src/fillExtension/zip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,sEAAsE;AACtE,wBAAgB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CA2DhE"}
|