You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(chartjs): widen codegen type-prop guard for multi-line docs + regenerate all leaves
The prop-docs backfill (7c6a8eb) expanded Chart.rozie's `type` prop from a
single line to a multi-line block with a `docs: { description }`. The chartjs
per-type variant codegen removes the `type` prop via a regex that only matched
the old single-line shape, so `@rozie-ui/chartjs#build` failed the transform
guard ("no `type` prop line") — cascading every framework matrix to red.
- Widen `typePropRe` to match the multi-line `type` block (keeps the
`type: String` / `default: 'line'` anchors fail-loud; lazily skips the nested
4-space `docs: {` close to the 2-space prop close).
- Regenerate all 19 families' leaves: `docs.description` now emits as prop JSDoc
(`@example` on primary/model props) across React/Vue/Svelte/Solid/Angular/Lit
and into the generated family READMEs.
Local CI-equivalent gate green: turbo build (25 families), typecheck (253),
core (1689), dist-parity (1001). Additive JSDoc only — no emitter/type changes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011JE6gykywo57CcqUJZTsB9
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/angular/src/Captcha.ts
+23Lines changed: 23 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -31,12 +31,35 @@ import { loadCaptchaApi } from './internal/loadCaptchaApi';
31
31
host: {'(focusout)': '__rozieCvaOnTouched()'},
32
32
})
33
33
exportclassCaptcha{
34
+
/**
35
+
* Which widget to render: `recaptcha` (Google reCAPTCHA v2), `hcaptcha`, `turnstile` (Cloudflare), or `friendly` (Friendly Captcha). The first three share a near-identical explicit-render API; Friendly Captcha rides an internal `adapt()` bridge onto the same surface. Construction-time — re-key the component to switch it live.
36
+
*/
34
37
provider=input<string>('recaptcha');
38
+
/**
39
+
* Required. The public site key from your provider dashboard. Identifies your site to the chosen provider.
40
+
*/
35
41
sitekey=input.required<string>();
42
+
/**
43
+
* The verified response token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written by the widget on success and cleared on expire/reset, so reading it gives you the live response to send to your server for form submission.
* Widget color theme: `light` or `dark` (all three core providers), or `auto` (Turnstile only). Construction-time — re-key the component to change it live.
50
+
*/
37
51
theme=input<string>('light');
52
+
/**
53
+
* Widget size. reCAPTCHA/hCaptcha accept `normal`/`compact`/`invisible`; Turnstile accepts `normal`/`compact`/`flexible`. A no-op for Friendly Captcha (its `startMode` analog rides through the `options` escape hatch instead). Construction-time.
54
+
*/
38
55
size=input<string>('normal');
56
+
/**
57
+
* Optional tab index forwarded to the rendered widget. Omitted from the render config when left unset (`null`).
58
+
*/
39
59
tabindex=input<(number)|null>(null);
60
+
/**
61
+
* Escape hatch — provider-specific render options merged last (e.g. Turnstile `action`/`cData`/`retry`, hCaptcha `hl`, reCAPTCHA `badge`, Friendly Captcha `startMode`). Lets you reach keys this component does not promote to first-class props.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/angular/src/RecaptchaV3.ts
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -31,9 +31,23 @@ import { loadRecaptchaV3, execute as v3Execute } from './internal/loadRecaptchaV
31
31
host: {'(focusout)': '__rozieCvaOnTouched()'},
32
32
})
33
33
exportclassRecaptchaV3{
34
+
/**
35
+
* Required. The public reCAPTCHA v3 site key from your Google admin console.
36
+
*/
34
37
sitekey=input.required<string>();
38
+
/**
39
+
* The default action label reported to reCAPTCHA's risk analysis (e.g. `submit`, `login`). Overridable per call via `execute(action)`.
40
+
*/
35
41
action=input<string>('submit');
42
+
/**
43
+
* The latest verification token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written on each successful `execute()` — read it to attach the fresh token to your request.
* Opt in to running one `execute()` at mount and emitting `@verify` with the initial token. Off by default — v3 is imperative-first and tokens are short-lived (~2 min), so fetch one at the moment of submission rather than eagerly at mount.
* Which widget to render: `recaptcha` (Google reCAPTCHA v2), `hcaptcha`, `turnstile` (Cloudflare), or `friendly` (Friendly Captcha). The first three share a near-identical explicit-render API; Friendly Captcha rides an internal `adapt()` bridge onto the same surface. Construction-time — re-key the component to switch it live.
* The verified response token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written by the widget on success and cleared on expire/reset, so reading it gives you the live response to send to your server for form submission.
* Widget color theme: `light` or `dark` (all three core providers), or `auto` (Turnstile only). Construction-time — re-key the component to change it live.
* Widget size. reCAPTCHA/hCaptcha accept `normal`/`compact`/`invisible`; Turnstile accepts `normal`/`compact`/`flexible`. A no-op for Friendly Captcha (its `startMode` analog rides through the `options` escape hatch instead). Construction-time.
* The latest verification token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written on each successful `execute()` — read it to attach the fresh token to your request.
* Opt in to running one `execute()` at mount and emitting `@verify` with the initial token. Off by default — v3 is imperative-first and tokens are short-lived (~2 min), so fetch one at the moment of submission rather than eagerly at mount.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/react/src/Captcha.d.ts
+23Lines changed: 23 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -3,14 +3,37 @@ import type { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
importtype*asReactfrom'react';
4
4
5
5
exportinterfaceCaptchaProps{
6
+
/**
7
+
* Which widget to render: `recaptcha` (Google reCAPTCHA v2), `hcaptcha`, `turnstile` (Cloudflare), or `friendly` (Friendly Captcha). The first three share a near-identical explicit-render API; Friendly Captcha rides an internal `adapt()` bridge onto the same surface. Construction-time — re-key the component to switch it live.
8
+
*/
6
9
provider?: string;
10
+
/**
11
+
* Required. The public site key from your provider dashboard. Identifies your site to the chosen provider.
12
+
*/
7
13
sitekey: string;
14
+
/**
15
+
* The verified response token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written by the widget on success and cleared on expire/reset, so reading it gives you the live response to send to your server for form submission.
* Widget color theme: `light` or `dark` (all three core providers), or `auto` (Turnstile only). Construction-time — re-key the component to change it live.
24
+
*/
11
25
theme?: string;
26
+
/**
27
+
* Widget size. reCAPTCHA/hCaptcha accept `normal`/`compact`/`invisible`; Turnstile accepts `normal`/`compact`/`flexible`. A no-op for Friendly Captcha (its `startMode` analog rides through the `options` escape hatch instead). Construction-time.
28
+
*/
12
29
size?: string;
30
+
/**
31
+
* Optional tab index forwarded to the rendered widget. Omitted from the render config when left unset (`null`).
32
+
*/
13
33
tabindex?: (number)|null;
34
+
/**
35
+
* Escape hatch — provider-specific render options merged last (e.g. Turnstile `action`/`cData`/`retry`, hCaptcha `hl`, reCAPTCHA `badge`, Friendly Captcha `startMode`). Lets you reach keys this component does not promote to first-class props.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/react/src/Captcha.tsx
+23Lines changed: 23 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -13,14 +13,37 @@ import { loadCaptchaApi } from './internal/loadCaptchaApi';
13
13
// teardown (TS2304). Top-level — like api/widgetId — is visible to both.
14
14
15
15
interfaceCaptchaProps{
16
+
/**
17
+
* Which widget to render: `recaptcha` (Google reCAPTCHA v2), `hcaptcha`, `turnstile` (Cloudflare), or `friendly` (Friendly Captcha). The first three share a near-identical explicit-render API; Friendly Captcha rides an internal `adapt()` bridge onto the same surface. Construction-time — re-key the component to switch it live.
18
+
*/
16
19
provider?: string;
20
+
/**
21
+
* Required. The public site key from your provider dashboard. Identifies your site to the chosen provider.
22
+
*/
17
23
sitekey: string;
24
+
/**
25
+
* The verified response token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written by the widget on success and cleared on expire/reset, so reading it gives you the live response to send to your server for form submission.
* Widget color theme: `light` or `dark` (all three core providers), or `auto` (Turnstile only). Construction-time — re-key the component to change it live.
34
+
*/
21
35
theme?: string;
36
+
/**
37
+
* Widget size. reCAPTCHA/hCaptcha accept `normal`/`compact`/`invisible`; Turnstile accepts `normal`/`compact`/`flexible`. A no-op for Friendly Captcha (its `startMode` analog rides through the `options` escape hatch instead). Construction-time.
38
+
*/
22
39
size?: string;
40
+
/**
41
+
* Optional tab index forwarded to the rendered widget. Omitted from the render config when left unset (`null`).
42
+
*/
23
43
tabindex?: (number)|null;
44
+
/**
45
+
* Escape hatch — provider-specific render options merged last (e.g. Turnstile `action`/`cData`/`retry`, hCaptcha `hl`, reCAPTCHA `badge`, Friendly Captcha `startMode`). Lets you reach keys this component does not promote to first-class props.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/react/src/RecaptchaV3.d.ts
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -3,11 +3,25 @@ import type { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
importtype*asReactfrom'react';
4
4
5
5
exportinterfaceRecaptchaV3Props{
6
+
/**
7
+
* Required. The public reCAPTCHA v3 site key from your Google admin console.
8
+
*/
6
9
sitekey: string;
10
+
/**
11
+
* The default action label reported to reCAPTCHA's risk analysis (e.g. `submit`, `login`). Overridable per call via `execute(action)`.
12
+
*/
7
13
action?: string;
14
+
/**
15
+
* The latest verification token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written on each successful `execute()` — read it to attach the fresh token to your request.
* Opt in to running one `execute()` at mount and emitting `@verify` with the initial token. Off by default — v3 is imperative-first and tokens are short-lived (~2 min), so fetch one at the moment of submission rather than eagerly at mount.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/react/src/RecaptchaV3.tsx
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -13,11 +13,25 @@ import { loadRecaptchaV3, execute as v3Execute } from './internal/loadRecaptchaV
13
13
// guards a late execute() resolve that fires after the component unmounts.
14
14
15
15
interfaceRecaptchaV3Props{
16
+
/**
17
+
* Required. The public reCAPTCHA v3 site key from your Google admin console.
18
+
*/
16
19
sitekey: string;
20
+
/**
21
+
* The default action label reported to reCAPTCHA's risk analysis (e.g. `submit`, `login`). Overridable per call via `execute(action)`.
22
+
*/
17
23
action?: string;
24
+
/**
25
+
* The latest verification token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written on each successful `execute()` — read it to attach the fresh token to your request.
* Opt in to running one `execute()` at mount and emitting `@verify` with the initial token. Off by default — v3 is imperative-first and tokens are short-lived (~2 min), so fetch one at the moment of submission rather than eagerly at mount.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/solid/src/Captcha.tsx
+23Lines changed: 23 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -14,14 +14,37 @@ import { loadCaptchaApi } from './internal/loadCaptchaApi';
14
14
// teardown (TS2304). Top-level — like api/widgetId — is visible to both.
15
15
16
16
interfaceCaptchaProps{
17
+
/**
18
+
* Which widget to render: `recaptcha` (Google reCAPTCHA v2), `hcaptcha`, `turnstile` (Cloudflare), or `friendly` (Friendly Captcha). The first three share a near-identical explicit-render API; Friendly Captcha rides an internal `adapt()` bridge onto the same surface. Construction-time — re-key the component to switch it live.
19
+
*/
17
20
provider?: string;
21
+
/**
22
+
* Required. The public site key from your provider dashboard. Identifies your site to the chosen provider.
23
+
*/
18
24
sitekey: string;
25
+
/**
26
+
* The verified response token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written by the widget on success and cleared on expire/reset, so reading it gives you the live response to send to your server for form submission.
* Widget color theme: `light` or `dark` (all three core providers), or `auto` (Turnstile only). Construction-time — re-key the component to change it live.
35
+
*/
22
36
theme?: string;
37
+
/**
38
+
* Widget size. reCAPTCHA/hCaptcha accept `normal`/`compact`/`invisible`; Turnstile accepts `normal`/`compact`/`flexible`. A no-op for Friendly Captcha (its `startMode` analog rides through the `options` escape hatch instead). Construction-time.
39
+
*/
23
40
size?: string;
41
+
/**
42
+
* Optional tab index forwarded to the rendered widget. Omitted from the render config when left unset (`null`).
43
+
*/
24
44
tabindex?: (number)|null;
45
+
/**
46
+
* Escape hatch — provider-specific render options merged last (e.g. Turnstile `action`/`cData`/`retry`, hCaptcha `hl`, reCAPTCHA `badge`, Friendly Captcha `startMode`). Lets you reach keys this component does not promote to first-class props.
Copy file name to clipboardExpand all lines: packages/ui/captcha/packages/solid/src/RecaptchaV3.tsx
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -14,11 +14,25 @@ import { loadRecaptchaV3, execute as v3Execute } from './internal/loadRecaptchaV
14
14
// guards a late execute() resolve that fires after the component unmounts.
15
15
16
16
interfaceRecaptchaV3Props{
17
+
/**
18
+
* Required. The public reCAPTCHA v3 site key from your Google admin console.
19
+
*/
17
20
sitekey: string;
21
+
/**
22
+
* The default action label reported to reCAPTCHA's risk analysis (e.g. `submit`, `login`). Overridable per call via `execute(action)`.
23
+
*/
18
24
action?: string;
25
+
/**
26
+
* The latest verification token (two-way `r-model`). As the sole `model: true` prop it drives the Angular `ControlValueAccessor`. Written on each successful `execute()` — read it to attach the fresh token to your request.
* Opt in to running one `execute()` at mount and emitting `@verify` with the initial token. Off by default — v3 is imperative-first and tokens are short-lived (~2 min), so fetch one at the moment of submission rather than eagerly at mount.
0 commit comments