Skip to content

Commit 999b2dc

Browse files
committed
Bump version to 0.12.77
1 parent 932314e commit 999b2dc

13 files changed

Lines changed: 52 additions & 14 deletions

File tree

packages/asterui/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ description: All notable changes to AsterUI
77

88
All notable changes to AsterUI are documented here.
99

10+
## v0.12.77 (2025-12-28)
11+
12+
### Components
13+
14+
- **Toggle**: Updated `onChange` prop signature to `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` for better developer experience (checked state as first parameter)
15+
16+
### Documentation
17+
18+
- Updated Toggle documentation across all 5 languages (English, French, Chinese, Spanish, Portuguese)
19+
- Updated Toggle controlled example to demonstrate new onChange API
20+
- Updated AI-readable Toggle documentation
21+
1022
## v0.12.76 (2025-12-27)
1123

1224
### Components

packages/asterui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "asterui",
3-
"version": "0.12.76",
3+
"version": "0.12.77",
44
"description": "React UI component library with DaisyUI",
55
"homepage": "https://asterui.com",
66
"repository": {

packages/asterui/src/components/Toggle.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ const dToggleWarning = 'toggle-warning'
1717
const dToggleInfo = 'toggle-info'
1818
const dToggleError = 'toggle-error'
1919

20-
export interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
20+
export interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {
2121
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
2222
color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'success' | 'warning' | 'info' | 'error'
2323
className?: string
2424
/** Test ID for testing */
2525
'data-testid'?: string
26+
/** Callback fired when the checked state changes */
27+
onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void
2628
}
2729

2830
export const Toggle = forwardRef<HTMLInputElement, ToggleProps>(
@@ -31,6 +33,7 @@ export const Toggle = forwardRef<HTMLInputElement, ToggleProps>(
3133
size,
3234
color,
3335
className = '',
36+
onChange,
3437
...props
3538
},
3639
ref
@@ -66,8 +69,12 @@ export const Toggle = forwardRef<HTMLInputElement, ToggleProps>(
6669
.filter(Boolean)
6770
.join(' ')
6871

72+
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
73+
onChange?.(event.target.checked, event)
74+
}
75+
6976
const dataState = props.checked ? 'checked' : 'unchecked'
70-
return <input ref={ref} type="checkbox" className={toggleClasses} data-state={dataState} {...props} />
77+
return <input ref={ref} type="checkbox" className={toggleClasses} data-state={dataState} {...props} onChange={handleChange} />
7178
}
7279
)
7380

packages/docs/public/docs/toggle.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const App: React.FC = () => {
7171
<div className="flex items-center gap-4">
7272
<Toggle
7373
checked={checked}
74-
onChange={(e) => setChecked(e.target.checked)}
74+
onChange={(checked) => setChecked(checked)}
7575
color="primary"
7676
/>
7777
<span>Toggle is {checked ? 'ON' : 'OFF'}</span>
@@ -131,7 +131,7 @@ export default App
131131
|----------|-------------|------|---------|
132132
| `checked` | Controlled checked state | `boolean` | `-` |
133133
| `defaultChecked` | Default checked state (uncontrolled) | `boolean` | `false` |
134-
| `onChange` | Callback when toggle state changes | `(e: ChangeEvent) => void` | `-` |
134+
| `onChange` | Callback when toggle state changes | `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` | `-` |
135135
| `size` | Toggle size | `xs' \| 'sm' \| 'md' \| 'lg` | `md` |
136136
| `color` | Toggle color | `primary' \| 'secondary' \| 'accent' \| 'info' \| 'success' \| 'warning' \| 'error` | `-` |
137137
| `disabled` | Disable the toggle | `boolean` | `false` |

packages/docs/src/components/ToggleDemo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export function ControlledDemo() {
7373
<Demo>
7474
{/* @example-return */}
7575
<div className="flex items-center gap-4">
76-
<Toggle checked={checked} onChange={(e) => setChecked(e.target.checked)} color="primary" />
76+
<Toggle checked={checked} onChange={(checked) => setChecked(checked)} color="primary" />
7777
<span>Toggle is {checked ? 'ON' : 'OFF'}</span>
7878
</div>
7979
{/* @example-return-end */}

packages/docs/src/content/docs/changelog.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ description: All notable changes to AsterUI
77

88
All notable changes to AsterUI are documented here.
99

10+
## v0.12.77 (2025-12-28)
11+
12+
### Components
13+
14+
- **Toggle**: Updated `onChange` prop signature to `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` for better developer experience (checked state as first parameter)
15+
16+
### Documentation
17+
18+
- Updated Toggle documentation across all 5 languages (English, French, Chinese, Spanish, Portuguese)
19+
- Updated Toggle controlled example to demonstrate new onChange API
20+
- Updated AI-readable Toggle documentation
21+
1022
## v0.12.76 (2025-12-27)
1123

1224
### Components

packages/docs/src/content/docs/components/toggle.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import { Toggle } from 'asterui'
6161
|----------|-------------|------|---------|
6262
| `checked` | Controlled checked state | `boolean` | `-` |
6363
| `defaultChecked` | Default checked state (uncontrolled) | `boolean` | `false` |
64-
| `onChange` | Callback when toggle state changes | `(e: ChangeEvent) => void` | `-` |
64+
| `onChange` | Callback when toggle state changes | `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` | `-` |
6565
| `size` | Toggle size | `'xs' \| 'sm' \| 'md' \| 'lg'` | `'md'` |
6666
| `color` | Toggle color | `'primary' \| 'secondary' \| 'accent' \| 'info' \| 'success' \| 'warning' \| 'error'` | `-` |
6767
| `disabled` | Disable the toggle | `boolean` | `false` |

packages/docs/src/content/docs/es/components/toggle.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import { Toggle } from 'asterui'
6161
|----------|-------------|------|---------|
6262
| `checked` | Estado marcado controlado | `boolean` | `-` |
6363
| `defaultChecked` | Estado marcado predeterminado (no controlado) | `boolean` | `false` |
64-
| `onChange` | Callback cuando cambia el estado del toggle | `(e: ChangeEvent) => void` | `-` |
64+
| `onChange` | Callback cuando cambia el estado del toggle | `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` | `-` |
6565
| `size` | Tamaño del toggle | `'xs' \| 'sm' \| 'md' \| 'lg'` | `'md'` |
6666
| `color` | Color del toggle | `'primary' \| 'secondary' \| 'accent' \| 'info' \| 'success' \| 'warning' \| 'error'` | `-` |
6767
| `disabled` | Deshabilitar el toggle | `boolean` | `false` |

packages/docs/src/content/docs/fr/components/toggle.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import { Toggle } from 'asterui'
6161
|----------|-------------|------|---------|
6262
| `checked` | État coché contrôlé | `boolean` | `-` |
6363
| `defaultChecked` | État coché par défaut (non contrôlé) | `boolean` | `false` |
64-
| `onChange` | Callback lorsque l'état de l'interrupteur change | `(e: ChangeEvent) => void` | `-` |
64+
| `onChange` | Callback lorsque l'état de l'interrupteur change | `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` | `-` |
6565
| `size` | Taille de l'interrupteur | `'xs' \| 'sm' \| 'md' \| 'lg'` | `'md'` |
6666
| `color` | Couleur de l'interrupteur | `'primary' \| 'secondary' \| 'accent' \| 'info' \| 'success' \| 'warning' \| 'error'` | `-` |
6767
| `disabled` | Désactiver l'interrupteur | `boolean` | `false` |

packages/docs/src/content/docs/pt/components/toggle.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import { Toggle } from 'asterui'
6161
|----------|-------------|------|---------|
6262
| `checked` | Estado marcado controlado | `boolean` | `-` |
6363
| `defaultChecked` | Estado marcado padrão (não controlado) | `boolean` | `false` |
64-
| `onChange` | Callback quando estado do toggle muda | `(e: ChangeEvent) => void` | `-` |
64+
| `onChange` | Callback quando estado do toggle muda | `(checked: boolean, event: ChangeEvent<HTMLInputElement>) => void` | `-` |
6565
| `size` | Tamanho do toggle | `'xs' \| 'sm' \| 'md' \| 'lg'` | `'md'` |
6666
| `color` | Cor do toggle | `'primary' \| 'secondary' \| 'accent' \| 'info' \| 'success' \| 'warning' \| 'error'` | `-` |
6767
| `disabled` | Desabilitar o toggle | `boolean` | `false` |

0 commit comments

Comments
 (0)