jsonresume-theme-cjean 1.3.2 → 1.3.3

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # jsonresume-theme-cjean
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/jsonresume-theme-cjean)](https://www.npmjs.com/package/jsonresume-theme-cjean)
4
+
3
5
  A clean, professional [JSON Resume](https://jsonresume.org/) theme built with Tailwind CSS and TypeScript.
4
6
 
5
7
  ![Theme Preview](https://i.imgur.com/lWBFRBK.png)
@@ -145,7 +147,7 @@ To add a new locale (e.g., Spanish `es`):
145
147
  2. Add the new translations to the `fr` or `en` model to stay in sync with the `ThemeSpec`.
146
148
  3. Define the new locale resource:
147
149
  ```typescript
148
- const es = defineTranslations<ThemeSpec>()({
150
+ const es = defineThemeLocale({
149
151
  work_experience: "Experiencia laboral",
150
152
  // ... copy and translate all keys
151
153
  });
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
2
+ interface BannerProps extends HTMLAttributes {
3
+ name: string;
4
+ label?: string;
5
+ }
6
+ export default function Banner({ name, label, children, ...props }: BannerProps): import("@cjean-fr/jsx-string").JSX.Element;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ import { dateFormatter } from '../lib/i18n.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ export interface DateTimeProps extends HTMLAttributes {
4
+ date: Date | string;
5
+ format?: Parameters<typeof dateFormatter.format>[1];
6
+ children?: any;
7
+ }
8
+ export default function DateTime({ date, format, children, ...props }: DateTimeProps): import("@cjean-fr/jsx-string").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Resume } from '../schema.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface EducationProps extends HTMLAttributes {
4
+ education: Resume["education"];
5
+ certificates: Resume["certificates"];
6
+ }
7
+ export default function Education({ education, certificates }: EducationProps): import("@cjean-fr/jsx-string").JSX.Element | null;
8
+ export {};
@@ -0,0 +1,40 @@
1
+ import { getIcon } from './Icons.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface FloatingButtonProps extends HTMLAttributes {
4
+ text: string;
5
+ url: string;
6
+ icon?: Parameters<typeof getIcon>[0];
7
+ id?: string;
8
+ }
9
+ /**
10
+ * Floating CTA that expands/collapses like a drawer: the icon stays put
11
+ * while the label slides in/out, fading at the same time.
12
+ *
13
+ * The width animation relies on a single-column CSS grid track going from
14
+ * `0fr` (closed) to `1fr` (open): the browser interpolates towards the
15
+ * *intrinsic* width of the label, so the declared duration/easing apply
16
+ * exactly for any text length — no `max-width` magic number, no dead time.
17
+ *
18
+ * Expansion is driven by the `fab-open` / `group-fab-open` custom variants
19
+ * (defined in styles/tailwind.input.css): pointer hover, keyboard focus
20
+ * (`:focus-visible`), or the `fab--extended` class toggled on scroll
21
+ * direction by `initFloatingButton`.
22
+ * While extended, the button's right padding grows (`px-4` → `pr-6`) to
23
+ * balance the label, animated over the same 300ms as the drawer; the hover
24
+ * background keeps its snappier 150ms via per-property durations.
25
+ */
26
+ declare const _default: ({ text, url, icon, id, ...props }: FloatingButtonProps) => import("@cjean-fr/jsx-string").JSX.Element;
27
+ export default _default;
28
+ /**
29
+ * Toggles `fab--extended` based on scroll direction: collapsed when
30
+ * scrolling down, re-extended when scrolling up, with a small threshold to
31
+ * ignore jitter. No-op when the user prefers reduced motion: global CSS
32
+ * already neutralises the transitions, so direction-driven toggling would
33
+ * make the label flash on every change of direction — the FAB stays
34
+ * extended instead.
35
+ *
36
+ * Note: this function is inlined into the page via `toString()` (see the
37
+ * <script> above), so keep it self-contained — and keep comments out of its
38
+ * body, they would ship with the HTML.
39
+ */
40
+ export declare const initFloatingButton: (id: string) => void;
@@ -0,0 +1,8 @@
1
+ import { Resume } from '../schema.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface FooterProps extends HTMLAttributes {
4
+ meta: Resume["meta"];
5
+ bgTiles: string;
6
+ }
7
+ export default function Footer({ meta, bgTiles, ...props }: FooterProps): import("@cjean-fr/jsx-string").JSX.Element;
8
+ export {};
@@ -0,0 +1,4 @@
1
+ declare const _default: ({ bgTiles }: {
2
+ bgTiles: string;
3
+ }) => import("@cjean-fr/jsx-string").JSX.Element;
4
+ export default _default;
@@ -0,0 +1,11 @@
1
+ type IconifyIconName = `${string}:${string}`;
2
+ type IconifyAPIOptions = {
3
+ height?: number | "auto" | "unset" | "none";
4
+ width?: number | "auto" | "unset" | "none";
5
+ rotate?: 1 | 2 | 3 | "90deg" | "180deg" | "270deg";
6
+ flip?: "horizontal" | "vertical";
7
+ color?: string;
8
+ };
9
+ export declare const fetchIcon: (name: IconifyIconName, options?: IconifyAPIOptions) => Promise<string>;
10
+ export declare const getIcon: (name: string, size?: number, ariaHidden?: boolean) => Promise<import('@cjean-fr/jsx-string').RawString>;
11
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Resume } from '../schema.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface LayoutProps extends HTMLAttributes {
4
+ resume: Resume;
5
+ css: string;
6
+ }
7
+ declare const _default: ({ resume, css, ...props }: LayoutProps) => Promise<import('@cjean-fr/jsx-string').RawString>;
8
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import { Resume } from '../schema.js';
2
+ export default function Links({ basics, list, }: {
3
+ basics: Resume["basics"];
4
+ list: Resume["meta"]["themeConfig"]["ui"]["links"];
5
+ }): import("@cjean-fr/jsx-string").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { DateTimeProps } from './DateTime.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface PeriodProps extends HTMLAttributes {
4
+ startDate?: string | Date;
5
+ endDate?: string | Date;
6
+ format?: DateTimeProps["format"];
7
+ }
8
+ export default function Period({ startDate, endDate, format, ...props }: PeriodProps): import("@cjean-fr/jsx-string").JSX.Element | null;
9
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Resume } from '../schema.js';
2
+ export declare function ProfilePageJsonLd({ resume }: {
3
+ resume: Resume;
4
+ }): import("@cjean-fr/jsx-string").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Resume } from '../schema.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface ProjectsProps extends HTMLAttributes {
4
+ projects: Resume["projects"];
5
+ }
6
+ export default function Projects({ projects }: ProjectsProps): import("@cjean-fr/jsx-string").JSX.Element | null;
7
+ export {};
@@ -0,0 +1,29 @@
1
+ import { Resume } from '../schema.js';
2
+ export default function SEO({ resume }: {
3
+ resume: Resume;
4
+ }): Promise<import('@cjean-fr/jsx-string').RawString>;
5
+ export declare function splitName(name: string): {
6
+ firstNameSlice: string | undefined;
7
+ lastNameSlice: string;
8
+ };
9
+ export declare function Base({ title, description, canonical, robots, favicon, }: {
10
+ title: string;
11
+ description?: string;
12
+ canonical?: string;
13
+ robots?: string;
14
+ favicon?: string;
15
+ }): Promise<import('@cjean-fr/jsx-string').RawString>;
16
+ export declare function OpenGraph({ title, description, url, image, firstName, lastName, }: {
17
+ title: string;
18
+ description?: string;
19
+ url?: string;
20
+ image?: string;
21
+ firstName?: string;
22
+ lastName?: string;
23
+ }): import("@cjean-fr/jsx-string").JSX.Element;
24
+ export declare function Twitter({ title, description, url, image, }: {
25
+ title: string;
26
+ description?: string;
27
+ url?: string;
28
+ image?: string;
29
+ }): import("@cjean-fr/jsx-string").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
2
+ interface SectionProps extends HTMLAttributes {
3
+ name?: string;
4
+ }
5
+ export default function Section({ name, children, ...props }: SectionProps): import("@cjean-fr/jsx-string").JSX.Element;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Resume } from '../schema.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface SkillsProps extends HTMLAttributes {
4
+ skills: Resume["skills"];
5
+ }
6
+ export default function Skills({ skills, ...props }: SkillsProps): import("@cjean-fr/jsx-string").JSX.Element | null;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare function StructuredData({ json }: {
2
+ json: unknown;
3
+ }): import("@cjean-fr/jsx-string").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Resume } from '../schema.js';
2
+ import { HTMLAttributes } from '@cjean-fr/jsx-string';
3
+ interface WorkExperienceProps extends HTMLAttributes {
4
+ works: Resume["work"];
5
+ showLogos?: boolean;
6
+ }
7
+ export default function WorkExperience({ works, showLogos, }: WorkExperienceProps): import("@cjean-fr/jsx-string").JSX.Element | null;
8
+ export {};