@ttdk-design-system/library-react 0.0.0-stage → 1.0.0
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/AI_GUIDE.md +6518 -0
- package/llms.txt +6518 -0
- package/package.json +1098 -4
- package/src/core/index.ts +2 -0
- package/src/core/tailwind-preset.cjs +62 -0
- package/src/core/tailwind-preset.ts +85 -0
- package/src/core/theme/tokens.css +663 -0
- package/src/core/types.ts +836 -0
- package/src/index.ts +17 -0
- package/src/tailwind-preset.cjs +62 -0
- package/src/tailwind-preset.ts +85 -0
- package/src/types.ts +1 -0
- package/src/web/accordion/AI_GUIDE.md +149 -0
- package/src/web/accordion/accordion.css +1 -0
- package/src/web/accordion/accordion.tsx +430 -0
- package/src/web/accordion/index.ts +3 -0
- package/src/web/accordion/manifest.json +351 -0
- package/src/web/alert/AI_GUIDE.md +139 -0
- package/src/web/alert/alert.css +1 -0
- package/src/web/alert/alert.tsx +318 -0
- package/src/web/alert/index.ts +3 -0
- package/src/web/alert/manifest.json +240 -0
- package/src/web/avatar/AI_GUIDE.md +118 -0
- package/src/web/avatar/avatar.css +1 -0
- package/src/web/avatar/avatar.tsx +233 -0
- package/src/web/avatar/index.ts +3 -0
- package/src/web/avatar/manifest.json +195 -0
- package/src/web/badge/AI_GUIDE.md +94 -0
- package/src/web/badge/badge.css +1 -0
- package/src/web/badge/badge.tsx +140 -0
- package/src/web/badge/index.ts +2 -0
- package/src/web/badge/manifest.json +141 -0
- package/src/web/banner/AI_GUIDE.md +130 -0
- package/src/web/banner/banner.css +1 -0
- package/src/web/banner/banner.tsx +334 -0
- package/src/web/banner/index.ts +3 -0
- package/src/web/banner/manifest.json +240 -0
- package/src/web/breadcrumb/AI_GUIDE.md +120 -0
- package/src/web/breadcrumb/breadcrumb.css +1 -0
- package/src/web/breadcrumb/breadcrumb.tsx +306 -0
- package/src/web/breadcrumb/index.ts +3 -0
- package/src/web/breadcrumb/manifest.json +225 -0
- package/src/web/button/AI_GUIDE.md +121 -0
- package/src/web/button/button.css +1 -0
- package/src/web/button/button.tsx +287 -0
- package/src/web/button/index.ts +2 -0
- package/src/web/button/manifest.json +177 -0
- package/src/web/calendar/AI_GUIDE.md +151 -0
- package/src/web/calendar/calendar.css +1 -0
- package/src/web/calendar/calendar.tsx +1611 -0
- package/src/web/calendar/index.ts +3 -0
- package/src/web/calendar/manifest.json +470 -0
- package/src/web/card/AI_GUIDE.md +133 -0
- package/src/web/card/card.css +1 -0
- package/src/web/card/card.tsx +408 -0
- package/src/web/card/index.ts +4 -0
- package/src/web/card/manifest.json +357 -0
- package/src/web/checkbox/AI_GUIDE.md +146 -0
- package/src/web/checkbox/checkbox.css +1 -0
- package/src/web/checkbox/checkbox.tsx +307 -0
- package/src/web/checkbox/index.ts +2 -0
- package/src/web/checkbox/manifest.json +294 -0
- package/src/web/chip/AI_GUIDE.md +186 -0
- package/src/web/chip/chip.css +1 -0
- package/src/web/chip/chip.tsx +230 -0
- package/src/web/chip/index.ts +2 -0
- package/src/web/chip/manifest.json +186 -0
- package/src/web/dropdown/AI_GUIDE.md +167 -0
- package/src/web/dropdown/dropdown.css +1 -0
- package/src/web/dropdown/dropdown.tsx +1274 -0
- package/src/web/dropdown/index.ts +3 -0
- package/src/web/dropdown/manifest.json +576 -0
- package/src/web/flex/AI_GUIDE.md +113 -0
- package/src/web/flex/flex-item.tsx +97 -0
- package/src/web/flex/flex.css +1 -0
- package/src/web/flex/flex.tsx +108 -0
- package/src/web/flex/index.ts +5 -0
- package/src/web/flex/manifest.json +162 -0
- package/src/web/form/index.ts +7 -0
- package/src/web/grid/AI_GUIDE.md +112 -0
- package/src/web/grid/grid-item.tsx +112 -0
- package/src/web/grid/grid.css +1 -0
- package/src/web/grid/grid.tsx +99 -0
- package/src/web/grid/index.ts +5 -0
- package/src/web/grid/manifest.json +153 -0
- package/src/web/index.ts +86 -0
- package/src/web/input/AI_GUIDE.md +159 -0
- package/src/web/input/index.ts +3 -0
- package/src/web/input/input.css +1 -0
- package/src/web/input/input.tsx +537 -0
- package/src/web/input/manifest.json +465 -0
- package/src/web/input-number/AI_GUIDE.md +164 -0
- package/src/web/input-number/index.ts +3 -0
- package/src/web/input-number/input-number.css +1 -0
- package/src/web/input-number/input-number.tsx +1193 -0
- package/src/web/input-number/manifest.json +575 -0
- package/src/web/modal/AI_GUIDE.md +171 -0
- package/src/web/modal/index.ts +3 -0
- package/src/web/modal/manifest.json +375 -0
- package/src/web/modal/modal.css +1 -0
- package/src/web/modal/modal.tsx +571 -0
- package/src/web/pagination/AI_GUIDE.md +148 -0
- package/src/web/pagination/index.ts +21 -0
- package/src/web/pagination/manifest.json +432 -0
- package/src/web/pagination/pagination-content.tsx +45 -0
- package/src/web/pagination/pagination-ellipsis.tsx +54 -0
- package/src/web/pagination/pagination-first.tsx +155 -0
- package/src/web/pagination/pagination-item.tsx +45 -0
- package/src/web/pagination/pagination-last.tsx +155 -0
- package/src/web/pagination/pagination-link.tsx +121 -0
- package/src/web/pagination/pagination-next.tsx +158 -0
- package/src/web/pagination/pagination-previous.tsx +158 -0
- package/src/web/pagination/pagination.css +1 -0
- package/src/web/pagination/pagination.tsx +687 -0
- package/src/web/popover/AI_GUIDE.md +163 -0
- package/src/web/popover/index.ts +3 -0
- package/src/web/popover/manifest.json +396 -0
- package/src/web/popover/popover.css +1 -0
- package/src/web/popover/popover.tsx +702 -0
- package/src/web/radio/AI_GUIDE.md +155 -0
- package/src/web/radio/index.ts +2 -0
- package/src/web/radio/manifest.json +294 -0
- package/src/web/radio/radio.css +1 -0
- package/src/web/radio/radio.tsx +290 -0
- package/src/web/selectbox/AI_GUIDE.md +216 -0
- package/src/web/selectbox/index.ts +3 -0
- package/src/web/selectbox/manifest.json +477 -0
- package/src/web/selectbox/selectbox.css +1 -0
- package/src/web/selectbox/selectbox.tsx +1048 -0
- package/src/web/sonner/AI_GUIDE.md +98 -0
- package/src/web/sonner/index.ts +114 -0
- package/src/web/sonner/manifest.json +132 -0
- package/src/web/sonner/sonner.css +1 -0
- package/src/web/sonner/sonner.tsx +177 -0
- package/src/web/table/AI_GUIDE.md +145 -0
- package/src/web/table/index.ts +35 -0
- package/src/web/table/manifest.json +168 -0
- package/src/web/table/table-body.tsx +45 -0
- package/src/web/table/table-caption.tsx +45 -0
- package/src/web/table/table-cell.tsx +74 -0
- package/src/web/table/table-empty.tsx +108 -0
- package/src/web/table/table-footer.tsx +45 -0
- package/src/web/table/table-head.tsx +80 -0
- package/src/web/table/table-header.tsx +45 -0
- package/src/web/table/table-row.tsx +69 -0
- package/src/web/table/table.css +1 -0
- package/src/web/table/table.tsx +305 -0
- package/src/web/tabs/AI_GUIDE.md +150 -0
- package/src/web/tabs/index.ts +3 -0
- package/src/web/tabs/manifest.json +315 -0
- package/src/web/tabs/tabs.css +1 -0
- package/src/web/tabs/tabs.tsx +332 -0
- package/src/web/text/AI_GUIDE.md +129 -0
- package/src/web/text/index.ts +3 -0
- package/src/web/text/manifest.json +195 -0
- package/src/web/text/text.css +1 -0
- package/src/web/text/text.tsx +689 -0
- package/src/web/textarea/AI_GUIDE.md +141 -0
- package/src/web/textarea/index.ts +3 -0
- package/src/web/textarea/manifest.json +438 -0
- package/src/web/textarea/textarea.css +1 -0
- package/src/web/textarea/textarea.tsx +467 -0
- package/src/web/tooltip/AI_GUIDE.md +110 -0
- package/src/web/tooltip/index.ts +3 -0
- package/src/web/tooltip/manifest.json +222 -0
- package/src/web/tooltip/tooltip.css +1 -0
- package/src/web/tooltip/tooltip.tsx +423 -0
- package/src/webview/bottomsheet/AI_GUIDE.md +141 -0
- package/src/webview/bottomsheet/bottomsheet.css +1 -0
- package/src/webview/bottomsheet/bottomsheet.tsx +603 -0
- package/src/webview/bottomsheet/index.ts +4 -0
- package/src/webview/bottomsheet/manifest.json +377 -0
- package/src/webview/button/AI_GUIDE.md +79 -0
- package/src/webview/button/button-ios.css +1 -0
- package/src/webview/button/button-ios.tsx +138 -0
- package/src/webview/button/button-material.css +1 -0
- package/src/webview/button/button-material.tsx +138 -0
- package/src/webview/button/index.ts +7 -0
- package/src/webview/button/manifest.json +148 -0
- package/src/webview/index.ts +7 -0
- package/tailwind-preset.cjs +62 -0
- package/tailwind-preset.js +62 -0
- package/ttdk-manifest.json +10188 -0
- package/README.md +0 -3
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# <Radio /> — TTDK Component Reference
|
|
2
|
+
|
|
3
|
+
TTDK Radio component with multi-theme support.
|
|
4
|
+
|
|
5
|
+
## 1. Stylesheets & Theming (Pure CSS)
|
|
6
|
+
Import the corresponding stylesheet for the theme you wish to use:
|
|
7
|
+
- **COMMON Theme**: `import "@ttdk-design-system/library-<react|vue|svelte>/web/radio/radio.css";`
|
|
8
|
+
|
|
9
|
+
## 2. Subpath Component Import
|
|
10
|
+
```ts
|
|
11
|
+
// React
|
|
12
|
+
import Radio from "@ttdk-design-system/library-react/web/radio";
|
|
13
|
+
|
|
14
|
+
// Vue 3
|
|
15
|
+
import Radio from "@ttdk-design-system/library-vue/web/radio";
|
|
16
|
+
|
|
17
|
+
// Svelte
|
|
18
|
+
import Radio from "@ttdk-design-system/library-svelte/web/radio";
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 3. Props & API Reference
|
|
22
|
+
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| :--- | :--- | :--- | :--- |
|
|
25
|
+
| `checked?` | `boolean` | `false` | Status apakah radio button sedang dalam kondisi terpilih (checked). |
|
|
26
|
+
| `label?` | `string` | `-` | Teks label utama yang ditampilkan di samping lingkaran radio. |
|
|
27
|
+
| `description?` | `string` | `-` | Deskripsi atau teks bantuan yang ditampilkan di bawah label. |
|
|
28
|
+
| `helperText?` | `string` | `-` | Teks bantuan atau keterangan di bawah label (dapat digunakan bergantian dengan description). |
|
|
29
|
+
| `error?` | `boolean | string` | `-` | Status error visual atau string pesan error. |
|
|
30
|
+
| `errorMessage?` | `string` | `-` | Pesan error yang ditampilkan jika validasi form gagal. |
|
|
31
|
+
| `size?` | `'sm' | 'md' | 'lg'` | `md` | Skala ukuran radio button: - `'sm'`: Lingkaran 16px, font 13px. - `'md'`: Lingkaran 18px, font 14px (standar). - `'lg'`: Lingkaran 22px, font 16px. |
|
|
32
|
+
| `variant?` | `'primary' | 'info' | 'success' | 'warning' | 'danger' | 'neutral'` | `primary` | Varian warna semantik saat radio button dipilih: - `'primary'`: Aksen toska aksi (#16b3ac, standar). - `'info'`: Aksen biru informasi (#2196f3). - `'success'`: Warna hijau sukses (#047b5d). - `'warning'`: Warna peringatan kuning/oranye (#fb8c00). - `'danger'`: Warna bahaya merah (#c50a24). - `'neutral'`: Warna abu-abu netral (#4a4f53). |
|
|
33
|
+
| `disabled?` | `boolean` | `false` | Menonaktifkan interaksi pada radio button. |
|
|
34
|
+
| `required?` | `boolean` | `false` | Menandakan bahwa field radio wajib diisi (required) pada formulir. |
|
|
35
|
+
| `name?` | `string` | `-` | Name atribut untuk elemen HTML `<input type="radio">`. Digunakan untuk mengelompokkan radio button dalam satu grup. |
|
|
36
|
+
| `value?` | `string` | `-` | Value atribut untuk elemen HTML input. |
|
|
37
|
+
| `id?` | `string` | `-` | Identifier unik elemen radio button (untuk kaitan dengan label form). |
|
|
38
|
+
| `ui?` | `UiProps` | `-` | Kustomisasi visual granular melalui style-like object (+ support pseudo-class: hover, active). |
|
|
39
|
+
| `style?` | `any` | `-` | Inline CSS style object native. |
|
|
40
|
+
| `controlStyle?` | `UiProps` | `-` | Style kustom untuk lingkaran kontrol radio (UiProps). |
|
|
41
|
+
| `controlClass?` | `string` | `-` | Class CSS kustom untuk lingkaran kontrol radio (Tailwind / class kustom). |
|
|
42
|
+
| `dotStyle?` | `UiProps` | `-` | Style kustom untuk titik (dot) di dalam radio button saat checked (UiProps). |
|
|
43
|
+
| `dotClass?` | `string` | `-` | Class CSS kustom untuk titik (dot) di dalam radio button saat checked (Tailwind / class kustom). |
|
|
44
|
+
| `labelStyle?` | `UiProps` | `-` | Style kustom untuk teks label radio (UiProps). |
|
|
45
|
+
| `labelClass?` | `string` | `-` | Class CSS kustom untuk teks label radio (Tailwind / class kustom). |
|
|
46
|
+
| `descStyle?` | `UiProps` | `-` | Style kustom untuk teks deskripsi bantuan (UiProps). |
|
|
47
|
+
| `descClass?` | `string` | `-` | Class CSS kustom untuk teks deskripsi bantuan (Tailwind / class kustom). |
|
|
48
|
+
| `helperTextStyle?` | `UiProps` | `-` | Style kustom untuk elemen helper text (UiProps). |
|
|
49
|
+
| `helperTextClass?` | `string` | `-` | Class CSS kustom untuk elemen helper text. |
|
|
50
|
+
| `errorMessageStyle?` | `UiProps` | `-` | Style kustom untuk teks pesan error validasi (UiProps). |
|
|
51
|
+
| `errorMessageClass?` | `string` | `-` | Class CSS kustom untuk teks pesan error validasi (Tailwind / class kustom). |
|
|
52
|
+
| `onChange?` | `(checked: boolean, event?: any) => void` | `-` | Event handler yang dipanggil saat nilai radio button berubah. Mengembalikan `(checked: boolean, event: Event)`. |
|
|
53
|
+
| `className?` | `string` | `-` | Class CSS kustom. |
|
|
54
|
+
| `children?` | `any` | `-` | Slot konten label kustom yang menggantikan prop `label`. |
|
|
55
|
+
|
|
56
|
+
## 4. Usage Examples
|
|
57
|
+
|
|
58
|
+
### React Example
|
|
59
|
+
```tsx
|
|
60
|
+
import { useState } from "react";
|
|
61
|
+
import Radio from "@ttdk-design-system/library-react/web/radio";
|
|
62
|
+
import "@ttdk-design-system/library-react/web/radio/radio.css";
|
|
63
|
+
|
|
64
|
+
export function Example() {
|
|
65
|
+
const [selected, setSelected] = useState("bpjs");
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>
|
|
69
|
+
<Radio
|
|
70
|
+
checked={selected === "bpjs"}
|
|
71
|
+
label="BPJS Kesehatan"
|
|
72
|
+
description="Jaminan kesehatan nasional terdaftar."
|
|
73
|
+
onChange={() => setSelected("bpjs")}
|
|
74
|
+
/>
|
|
75
|
+
<Radio
|
|
76
|
+
checked={selected === "umum"}
|
|
77
|
+
label="Pasien Umum / Mandiri"
|
|
78
|
+
description="Pembayaran biaya perawatan mandiri."
|
|
79
|
+
onChange={() => setSelected("umum")}
|
|
80
|
+
/>
|
|
81
|
+
<Radio
|
|
82
|
+
checked={selected === "asuransi"}
|
|
83
|
+
label="Asuransi Swasta"
|
|
84
|
+
description="Klaim penjaminan asuransi rekanan faskes."
|
|
85
|
+
onChange={() => setSelected("asuransi")}
|
|
86
|
+
/>
|
|
87
|
+
</div>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Vue 3 Example
|
|
93
|
+
```vue
|
|
94
|
+
<script setup lang="ts">
|
|
95
|
+
import { ref } from "vue";
|
|
96
|
+
import Radio from "@ttdk-design-system/library-vue/web/radio";
|
|
97
|
+
import "@ttdk-design-system/library-vue/web/radio/radio.css";
|
|
98
|
+
|
|
99
|
+
const selected = ref("bpjs");
|
|
100
|
+
</script>
|
|
101
|
+
|
|
102
|
+
<template>
|
|
103
|
+
<div style="display: flex; flex-direction: column; gap: 12px;">
|
|
104
|
+
<Radio
|
|
105
|
+
:checked="selected === 'bpjs'"
|
|
106
|
+
label="BPJS Kesehatan"
|
|
107
|
+
description="Jaminan kesehatan nasional terdaftar."
|
|
108
|
+
@change="() => (selected = 'bpjs')"
|
|
109
|
+
/>
|
|
110
|
+
<Radio
|
|
111
|
+
:checked="selected === 'umum'"
|
|
112
|
+
label="Pasien Umum / Mandiri"
|
|
113
|
+
description="Pembayaran biaya perawatan mandiri."
|
|
114
|
+
@change="() => (selected = 'umum')"
|
|
115
|
+
/>
|
|
116
|
+
<Radio
|
|
117
|
+
:checked="selected === 'asuransi'"
|
|
118
|
+
label="Asuransi Swasta"
|
|
119
|
+
description="Klaim penjaminan asuransi rekanan faskes."
|
|
120
|
+
@change="() => (selected = 'asuransi')"
|
|
121
|
+
/>
|
|
122
|
+
</div>
|
|
123
|
+
</template>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Svelte Example
|
|
127
|
+
```svelte
|
|
128
|
+
<script lang="ts">
|
|
129
|
+
import Radio from "@ttdk-design-system/library-svelte/web/radio";
|
|
130
|
+
import "@ttdk-design-system/library-svelte/web/radio/radio.css";
|
|
131
|
+
|
|
132
|
+
let selected = "bpjs";
|
|
133
|
+
</script>
|
|
134
|
+
|
|
135
|
+
<div style="display: flex; flex-direction: column; gap: 12px;">
|
|
136
|
+
<Radio
|
|
137
|
+
checked={selected === "bpjs"}
|
|
138
|
+
label="BPJS Kesehatan"
|
|
139
|
+
description="Jaminan kesehatan nasional terdaftar."
|
|
140
|
+
on:change={() => (selected = "bpjs")}
|
|
141
|
+
/>
|
|
142
|
+
<Radio
|
|
143
|
+
checked={selected === "umum"}
|
|
144
|
+
label="Pasien Umum / Mandiri"
|
|
145
|
+
description="Pembayaran biaya perawatan mandiri."
|
|
146
|
+
on:change={() => (selected = "umum")}
|
|
147
|
+
/>
|
|
148
|
+
<Radio
|
|
149
|
+
checked={selected === "asuransi"}
|
|
150
|
+
label="Asuransi Swasta"
|
|
151
|
+
description="Klaim penjaminan asuransi rekanan faskes."
|
|
152
|
+
on:change={() => (selected = "asuransi")}
|
|
153
|
+
/>
|
|
154
|
+
</div>
|
|
155
|
+
```
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ttdk-design-system/radio",
|
|
3
|
+
"component": "Radio",
|
|
4
|
+
"folder": "radio",
|
|
5
|
+
"description": "TTDK Radio component with multi-theme support.",
|
|
6
|
+
"stylesheets": [
|
|
7
|
+
{
|
|
8
|
+
"theme": "common",
|
|
9
|
+
"file": "radio.css",
|
|
10
|
+
"importPath": "web/radio/radio.css"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"props": {
|
|
14
|
+
"checked": {
|
|
15
|
+
"name": "checked",
|
|
16
|
+
"type": "boolean",
|
|
17
|
+
"optional": true,
|
|
18
|
+
"default": "false",
|
|
19
|
+
"description": "Status apakah radio button sedang dalam kondisi terpilih (checked).",
|
|
20
|
+
"example": null,
|
|
21
|
+
"param": null
|
|
22
|
+
},
|
|
23
|
+
"label": {
|
|
24
|
+
"name": "label",
|
|
25
|
+
"type": "string",
|
|
26
|
+
"optional": true,
|
|
27
|
+
"default": null,
|
|
28
|
+
"description": "Teks label utama yang ditampilkan di samping lingkaran radio.",
|
|
29
|
+
"example": null,
|
|
30
|
+
"param": null
|
|
31
|
+
},
|
|
32
|
+
"description": {
|
|
33
|
+
"name": "description",
|
|
34
|
+
"type": "string",
|
|
35
|
+
"optional": true,
|
|
36
|
+
"default": null,
|
|
37
|
+
"description": "Deskripsi atau teks bantuan yang ditampilkan di bawah label.",
|
|
38
|
+
"example": null,
|
|
39
|
+
"param": null
|
|
40
|
+
},
|
|
41
|
+
"helperText": {
|
|
42
|
+
"name": "helperText",
|
|
43
|
+
"type": "string",
|
|
44
|
+
"optional": true,
|
|
45
|
+
"default": null,
|
|
46
|
+
"description": "Teks bantuan atau keterangan di bawah label (dapat digunakan bergantian dengan description).",
|
|
47
|
+
"example": null,
|
|
48
|
+
"param": null
|
|
49
|
+
},
|
|
50
|
+
"error": {
|
|
51
|
+
"name": "error",
|
|
52
|
+
"type": "boolean | string",
|
|
53
|
+
"optional": true,
|
|
54
|
+
"default": null,
|
|
55
|
+
"description": "Status error visual atau string pesan error.",
|
|
56
|
+
"example": null,
|
|
57
|
+
"param": null
|
|
58
|
+
},
|
|
59
|
+
"errorMessage": {
|
|
60
|
+
"name": "errorMessage",
|
|
61
|
+
"type": "string",
|
|
62
|
+
"optional": true,
|
|
63
|
+
"default": null,
|
|
64
|
+
"description": "Pesan error yang ditampilkan jika validasi form gagal.",
|
|
65
|
+
"example": null,
|
|
66
|
+
"param": null
|
|
67
|
+
},
|
|
68
|
+
"size": {
|
|
69
|
+
"name": "size",
|
|
70
|
+
"type": "'sm' | 'md' | 'lg'",
|
|
71
|
+
"optional": true,
|
|
72
|
+
"default": "md",
|
|
73
|
+
"description": "Skala ukuran radio button: - `'sm'`: Lingkaran 16px, font 13px. - `'md'`: Lingkaran 18px, font 14px (standar). - `'lg'`: Lingkaran 22px, font 16px.",
|
|
74
|
+
"example": null,
|
|
75
|
+
"param": null
|
|
76
|
+
},
|
|
77
|
+
"variant": {
|
|
78
|
+
"name": "variant",
|
|
79
|
+
"type": "'primary' | 'info' | 'success' | 'warning' | 'danger' | 'neutral'",
|
|
80
|
+
"optional": true,
|
|
81
|
+
"default": "primary",
|
|
82
|
+
"description": "Varian warna semantik saat radio button dipilih: - `'primary'`: Aksen toska aksi (#16b3ac, standar). - `'info'`: Aksen biru informasi (#2196f3). - `'success'`: Warna hijau sukses (#047b5d). - `'warning'`: Warna peringatan kuning/oranye (#fb8c00). - `'danger'`: Warna bahaya merah (#c50a24). - `'neutral'`: Warna abu-abu netral (#4a4f53).",
|
|
83
|
+
"example": null,
|
|
84
|
+
"param": null
|
|
85
|
+
},
|
|
86
|
+
"disabled": {
|
|
87
|
+
"name": "disabled",
|
|
88
|
+
"type": "boolean",
|
|
89
|
+
"optional": true,
|
|
90
|
+
"default": "false",
|
|
91
|
+
"description": "Menonaktifkan interaksi pada radio button.",
|
|
92
|
+
"example": null,
|
|
93
|
+
"param": null
|
|
94
|
+
},
|
|
95
|
+
"required": {
|
|
96
|
+
"name": "required",
|
|
97
|
+
"type": "boolean",
|
|
98
|
+
"optional": true,
|
|
99
|
+
"default": "false",
|
|
100
|
+
"description": "Menandakan bahwa field radio wajib diisi (required) pada formulir.",
|
|
101
|
+
"example": null,
|
|
102
|
+
"param": null
|
|
103
|
+
},
|
|
104
|
+
"name": {
|
|
105
|
+
"name": "name",
|
|
106
|
+
"type": "string",
|
|
107
|
+
"optional": true,
|
|
108
|
+
"default": null,
|
|
109
|
+
"description": "Name atribut untuk elemen HTML `<input type=\"radio\">`. Digunakan untuk mengelompokkan radio button dalam satu grup.",
|
|
110
|
+
"example": null,
|
|
111
|
+
"param": null
|
|
112
|
+
},
|
|
113
|
+
"value": {
|
|
114
|
+
"name": "value",
|
|
115
|
+
"type": "string",
|
|
116
|
+
"optional": true,
|
|
117
|
+
"default": null,
|
|
118
|
+
"description": "Value atribut untuk elemen HTML input.",
|
|
119
|
+
"example": null,
|
|
120
|
+
"param": null
|
|
121
|
+
},
|
|
122
|
+
"id": {
|
|
123
|
+
"name": "id",
|
|
124
|
+
"type": "string",
|
|
125
|
+
"optional": true,
|
|
126
|
+
"default": null,
|
|
127
|
+
"description": "Identifier unik elemen radio button (untuk kaitan dengan label form).",
|
|
128
|
+
"example": null,
|
|
129
|
+
"param": null
|
|
130
|
+
},
|
|
131
|
+
"ui": {
|
|
132
|
+
"name": "ui",
|
|
133
|
+
"type": "UiProps",
|
|
134
|
+
"optional": true,
|
|
135
|
+
"default": null,
|
|
136
|
+
"description": "Kustomisasi visual granular melalui style-like object (+ support pseudo-class: hover, active).",
|
|
137
|
+
"example": null,
|
|
138
|
+
"param": null
|
|
139
|
+
},
|
|
140
|
+
"style": {
|
|
141
|
+
"name": "style",
|
|
142
|
+
"type": "any",
|
|
143
|
+
"optional": true,
|
|
144
|
+
"default": null,
|
|
145
|
+
"description": "Inline CSS style object native.",
|
|
146
|
+
"example": null,
|
|
147
|
+
"param": null
|
|
148
|
+
},
|
|
149
|
+
"controlStyle": {
|
|
150
|
+
"name": "controlStyle",
|
|
151
|
+
"type": "UiProps",
|
|
152
|
+
"optional": true,
|
|
153
|
+
"default": null,
|
|
154
|
+
"description": "Style kustom untuk lingkaran kontrol radio (UiProps).",
|
|
155
|
+
"example": null,
|
|
156
|
+
"param": null
|
|
157
|
+
},
|
|
158
|
+
"controlClass": {
|
|
159
|
+
"name": "controlClass",
|
|
160
|
+
"type": "string",
|
|
161
|
+
"optional": true,
|
|
162
|
+
"default": null,
|
|
163
|
+
"description": "Class CSS kustom untuk lingkaran kontrol radio (Tailwind / class kustom).",
|
|
164
|
+
"example": null,
|
|
165
|
+
"param": null
|
|
166
|
+
},
|
|
167
|
+
"dotStyle": {
|
|
168
|
+
"name": "dotStyle",
|
|
169
|
+
"type": "UiProps",
|
|
170
|
+
"optional": true,
|
|
171
|
+
"default": null,
|
|
172
|
+
"description": "Style kustom untuk titik (dot) di dalam radio button saat checked (UiProps).",
|
|
173
|
+
"example": null,
|
|
174
|
+
"param": null
|
|
175
|
+
},
|
|
176
|
+
"dotClass": {
|
|
177
|
+
"name": "dotClass",
|
|
178
|
+
"type": "string",
|
|
179
|
+
"optional": true,
|
|
180
|
+
"default": null,
|
|
181
|
+
"description": "Class CSS kustom untuk titik (dot) di dalam radio button saat checked (Tailwind / class kustom).",
|
|
182
|
+
"example": null,
|
|
183
|
+
"param": null
|
|
184
|
+
},
|
|
185
|
+
"labelStyle": {
|
|
186
|
+
"name": "labelStyle",
|
|
187
|
+
"type": "UiProps",
|
|
188
|
+
"optional": true,
|
|
189
|
+
"default": null,
|
|
190
|
+
"description": "Style kustom untuk teks label radio (UiProps).",
|
|
191
|
+
"example": null,
|
|
192
|
+
"param": null
|
|
193
|
+
},
|
|
194
|
+
"labelClass": {
|
|
195
|
+
"name": "labelClass",
|
|
196
|
+
"type": "string",
|
|
197
|
+
"optional": true,
|
|
198
|
+
"default": null,
|
|
199
|
+
"description": "Class CSS kustom untuk teks label radio (Tailwind / class kustom).",
|
|
200
|
+
"example": null,
|
|
201
|
+
"param": null
|
|
202
|
+
},
|
|
203
|
+
"descStyle": {
|
|
204
|
+
"name": "descStyle",
|
|
205
|
+
"type": "UiProps",
|
|
206
|
+
"optional": true,
|
|
207
|
+
"default": null,
|
|
208
|
+
"description": "Style kustom untuk teks deskripsi bantuan (UiProps).",
|
|
209
|
+
"example": null,
|
|
210
|
+
"param": null
|
|
211
|
+
},
|
|
212
|
+
"descClass": {
|
|
213
|
+
"name": "descClass",
|
|
214
|
+
"type": "string",
|
|
215
|
+
"optional": true,
|
|
216
|
+
"default": null,
|
|
217
|
+
"description": "Class CSS kustom untuk teks deskripsi bantuan (Tailwind / class kustom).",
|
|
218
|
+
"example": null,
|
|
219
|
+
"param": null
|
|
220
|
+
},
|
|
221
|
+
"helperTextStyle": {
|
|
222
|
+
"name": "helperTextStyle",
|
|
223
|
+
"type": "UiProps",
|
|
224
|
+
"optional": true,
|
|
225
|
+
"default": null,
|
|
226
|
+
"description": "Style kustom untuk elemen helper text (UiProps).",
|
|
227
|
+
"example": null,
|
|
228
|
+
"param": null
|
|
229
|
+
},
|
|
230
|
+
"helperTextClass": {
|
|
231
|
+
"name": "helperTextClass",
|
|
232
|
+
"type": "string",
|
|
233
|
+
"optional": true,
|
|
234
|
+
"default": null,
|
|
235
|
+
"description": "Class CSS kustom untuk elemen helper text.",
|
|
236
|
+
"example": null,
|
|
237
|
+
"param": null
|
|
238
|
+
},
|
|
239
|
+
"errorMessageStyle": {
|
|
240
|
+
"name": "errorMessageStyle",
|
|
241
|
+
"type": "UiProps",
|
|
242
|
+
"optional": true,
|
|
243
|
+
"default": null,
|
|
244
|
+
"description": "Style kustom untuk teks pesan error validasi (UiProps).",
|
|
245
|
+
"example": null,
|
|
246
|
+
"param": null
|
|
247
|
+
},
|
|
248
|
+
"errorMessageClass": {
|
|
249
|
+
"name": "errorMessageClass",
|
|
250
|
+
"type": "string",
|
|
251
|
+
"optional": true,
|
|
252
|
+
"default": null,
|
|
253
|
+
"description": "Class CSS kustom untuk teks pesan error validasi (Tailwind / class kustom).",
|
|
254
|
+
"example": null,
|
|
255
|
+
"param": null
|
|
256
|
+
},
|
|
257
|
+
"onChange": {
|
|
258
|
+
"name": "onChange",
|
|
259
|
+
"type": "(checked: boolean, event?: any) => void",
|
|
260
|
+
"optional": true,
|
|
261
|
+
"default": null,
|
|
262
|
+
"description": "Event handler yang dipanggil saat nilai radio button berubah. Mengembalikan `(checked: boolean, event: Event)`.",
|
|
263
|
+
"example": null,
|
|
264
|
+
"param": null
|
|
265
|
+
},
|
|
266
|
+
"className": {
|
|
267
|
+
"name": "className",
|
|
268
|
+
"type": "string",
|
|
269
|
+
"optional": true,
|
|
270
|
+
"default": null,
|
|
271
|
+
"description": "Class CSS kustom.",
|
|
272
|
+
"example": null,
|
|
273
|
+
"param": null
|
|
274
|
+
},
|
|
275
|
+
"children": {
|
|
276
|
+
"name": "children",
|
|
277
|
+
"type": "any",
|
|
278
|
+
"optional": true,
|
|
279
|
+
"default": null,
|
|
280
|
+
"description": "Slot konten label kustom yang menggantikan prop `label`.",
|
|
281
|
+
"example": null,
|
|
282
|
+
"param": null
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"subInterfaces": {},
|
|
286
|
+
"supportedFrameworks": [
|
|
287
|
+
"react",
|
|
288
|
+
"vue",
|
|
289
|
+
"svelte"
|
|
290
|
+
],
|
|
291
|
+
"themes": [
|
|
292
|
+
"tw"
|
|
293
|
+
]
|
|
294
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root,.dark,[data-mode=dark],[data-theme=dark],.ttdk-radio-wrapper,.ttdk-radio-root{--ttdk-radio-bg:var(--ttdk-bg-base-primary);--ttdk-radio-border:var(--ttdk-stroke-subtle);--ttdk-radio-border-hover:var(--ttdk-stroke-strong);--ttdk-radio-ring:color-mix(in oklab, var(--ttdk-brand-default) 25%, transparent);--ttdk-radio-active:var(--ttdk-brand-default);--ttdk-radio-active-hover:var(--ttdk-brand-strong);--ttdk-radio-primary:var(--ttdk-brand-default);--ttdk-radio-primary-hover:var(--ttdk-brand-strong);--ttdk-radio-neutral:var(--ttdk-stroke-strong);--ttdk-radio-neutral-hover:var(--ttdk-color-neutral-700);--ttdk-radio-danger:var(--ttdk-bg-status-error);--ttdk-radio-danger-hover:var(--ttdk-bg-status-error-strong);--ttdk-radio-success:var(--ttdk-bg-status-success);--ttdk-radio-success-hover:var(--ttdk-color-green-700);--ttdk-radio-warning:var(--ttdk-bg-status-warning);--ttdk-radio-warning-hover:var(--ttdk-color-orange-600);--ttdk-radio-info:var(--ttdk-bg-status-info);--ttdk-radio-info-hover:var(--ttdk-color-blue-600);--ttdk-radio-text-title:var(--ttdk-text-icon-primary);--ttdk-radio-text-subtitle:var(--ttdk-text-icon-primary);--ttdk-radio-text-disabled:var(--ttdk-text-icon-disabled);--ttdk-radio-text-error:var(--ttdk-text-icon-status-error);--ttdk-radio-disabled-bg:var(--ttdk-bg-secondary-disabled)}.dark,[data-mode=dark],[data-theme=dark]{--ttdk-radio-neutral-hover:var(--ttdk-color-neutral-600)}.ttdk-radio-wrapper,.ttdk-radio-root{cursor:default;user-select:none;font-family:var(--ttdk-font-sans);box-sizing:border-box;pointer-events:none;align-items:center;gap:10px;display:inline-flex;position:relative}.ttdk-radio-wrapper[data-has-description=true],.ttdk-radio-root[data-has-description=true]{align-items:flex-start}.ttdk-radio-native,.ttdk-radio-input{opacity:0;pointer-events:none;width:0;height:0;margin:0;padding:0;position:absolute}.ttdk-radio-control{background-color:var(--ttdk-radio-bg);border:1.5px solid var(--ttdk-radio-border);box-sizing:border-box;cursor:pointer;pointer-events:auto;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;margin-top:0;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.ttdk-radio-wrapper[data-has-description=true] .ttdk-radio-control,.ttdk-radio-root[data-has-description=true] .ttdk-radio-control{margin-top:2px}.ttdk-radio-wrapper:not([data-disabled=true]) .ttdk-radio-control:hover,.ttdk-radio-root:not([data-disabled=true]) .ttdk-radio-control:hover{border-color:var(--ttdk-radio-active)}.ttdk-radio-native:focus-visible+.ttdk-radio-control,.ttdk-radio-input:focus-visible+.ttdk-radio-control{box-shadow:0 0 0 3px var(--ttdk-radio-ring)}.ttdk-radio-wrapper[data-checked=true] .ttdk-radio-control,.ttdk-radio-wrapper[data-state=checked] .ttdk-radio-control,.ttdk-radio-root[data-checked=true] .ttdk-radio-control,.ttdk-radio-root[data-state=checked] .ttdk-radio-control{background-color:var(--ttdk-radio-bg);border-color:var(--ttdk-radio-active);border-width:1.5px}.ttdk-radio-wrapper:not([data-disabled=true])[data-checked=true] .ttdk-radio-control:hover,.ttdk-radio-wrapper:not([data-disabled=true])[data-state=checked] .ttdk-radio-control:hover,.ttdk-radio-root:not([data-disabled=true])[data-checked=true] .ttdk-radio-control:hover,.ttdk-radio-root:not([data-disabled=true])[data-state=checked] .ttdk-radio-control:hover{border-color:var(--ttdk-radio-active-hover)}.ttdk-radio-dot{background-color:var(--ttdk-radio-active);border-radius:9999px;flex-shrink:0;animation:.12s ease-out forwards ttdk-radio-pop;display:block}@keyframes ttdk-radio-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.ttdk-radio-wrapper[data-variant=danger],.ttdk-radio-wrapper[data-color=danger],.ttdk-radio-root[data-variant=danger],.ttdk-radio-root[data-color=danger]{--ttdk-radio-active:var(--ttdk-radio-danger);--ttdk-radio-active-hover:var(--ttdk-radio-danger-hover);--ttdk-radio-ring:color-mix(in oklab, var(--ttdk-radio-danger) 25%, transparent)}.ttdk-radio-wrapper[data-variant=success],.ttdk-radio-wrapper[data-color=success],.ttdk-radio-root[data-variant=success],.ttdk-radio-root[data-color=success]{--ttdk-radio-active:var(--ttdk-radio-success);--ttdk-radio-active-hover:var(--ttdk-radio-success-hover);--ttdk-radio-ring:color-mix(in oklab, var(--ttdk-radio-success) 25%, transparent)}.ttdk-radio-wrapper[data-variant=warning],.ttdk-radio-wrapper[data-color=warning],.ttdk-radio-root[data-variant=warning],.ttdk-radio-root[data-color=warning]{--ttdk-radio-active:var(--ttdk-radio-warning);--ttdk-radio-active-hover:var(--ttdk-radio-warning-hover);--ttdk-radio-ring:color-mix(in oklab, var(--ttdk-radio-warning) 25%, transparent)}.ttdk-radio-wrapper[data-variant=info],.ttdk-radio-wrapper[data-color=info],.ttdk-radio-root[data-variant=info],.ttdk-radio-root[data-color=info]{--ttdk-radio-active:var(--ttdk-radio-info);--ttdk-radio-active-hover:var(--ttdk-radio-info-hover);--ttdk-radio-ring:color-mix(in oklab, var(--ttdk-radio-info) 25%, transparent)}.ttdk-radio-wrapper[data-variant=neutral],.ttdk-radio-wrapper[data-color=neutral],.ttdk-radio-root[data-variant=neutral],.ttdk-radio-root[data-color=neutral]{--ttdk-radio-active:var(--ttdk-radio-neutral);--ttdk-radio-active-hover:var(--ttdk-radio-neutral-hover);--ttdk-radio-ring:color-mix(in oklab, var(--ttdk-radio-neutral) 25%, transparent)}.ttdk-radio-wrapper[data-disabled=true],.ttdk-radio-root[data-disabled=true]{pointer-events:none;cursor:not-allowed!important}.ttdk-radio-wrapper[data-disabled=true] .ttdk-radio-control,.ttdk-radio-root[data-disabled=true] .ttdk-radio-control{background-color:var(--ttdk-radio-disabled-bg)!important;border:1.5px solid var(--ttdk-radio-border)!important;box-shadow:none!important}.ttdk-radio-wrapper[data-disabled=true] .ttdk-radio-dot,.ttdk-radio-root[data-disabled=true] .ttdk-radio-dot{background-color:var(--ttdk-radio-text-disabled)!important}.ttdk-radio-wrapper[data-disabled=true] .ttdk-radio-label,.ttdk-radio-root[data-disabled=true] .ttdk-radio-label,.ttdk-radio-wrapper[data-disabled=true] .ttdk-radio-desc,.ttdk-radio-root[data-disabled=true] .ttdk-radio-desc{color:var(--ttdk-radio-text-disabled)!important}.ttdk-radio-wrapper[data-error=true] .ttdk-radio-control,.ttdk-radio-root[data-error=true] .ttdk-radio-control,.ttdk-radio-wrapper[data-error=true]:not([data-disabled=true]) .ttdk-radio-control:hover,.ttdk-radio-root[data-error=true]:not([data-disabled=true]) .ttdk-radio-control:hover{border-color:var(--ttdk-radio-text-error)}.ttdk-radio-wrapper[data-error=true] .ttdk-radio-native:focus-visible+.ttdk-radio-control,.ttdk-radio-wrapper[data-error=true] .ttdk-radio-input:focus-visible+.ttdk-radio-control,.ttdk-radio-root[data-error=true] .ttdk-radio-native:focus-visible+.ttdk-radio-control,.ttdk-radio-root[data-error=true] .ttdk-radio-input:focus-visible+.ttdk-radio-control{box-shadow:0 0 0 3px color-mix(in oklab, var(--ttdk-radio-danger) 25%, transparent)}.ttdk-radio-wrapper[data-error=true] .ttdk-radio-label,.ttdk-radio-root[data-error=true] .ttdk-radio-label{color:var(--ttdk-radio-text-error)}.ttdk-radio-label-wrapper{pointer-events:auto;flex-direction:column;gap:2px;display:flex}.ttdk-radio-label{color:var(--ttdk-ui-color,var(--ttdk-radio-text-title));letter-spacing:.5px;cursor:pointer;pointer-events:auto;font-size:14px;font-weight:600;line-height:1.25;transition:color .15s}.ttdk-radio-desc,.ttdk-radio-helper-text{color:var(--ttdk-ui-color,var(--ttdk-radio-text-subtitle));letter-spacing:.25px;cursor:default;pointer-events:auto;font-size:14px;font-weight:400;line-height:1.5;transition:color .15s}.ttdk-radio-error-msg{color:var(--ttdk-radio-text-error);cursor:default;pointer-events:auto;margin-top:2px;font-size:12px;font-weight:500;line-height:1.4}.ttdk-radio-wrapper[data-size=sm] .ttdk-radio-control,.ttdk-radio-root[data-size=sm] .ttdk-radio-control{width:16px;height:16px}.ttdk-radio-wrapper[data-size=sm] .ttdk-radio-dot,.ttdk-radio-root[data-size=sm] .ttdk-radio-dot{width:6px;height:6px}.ttdk-radio-wrapper[data-size=sm] .ttdk-radio-label,.ttdk-radio-root[data-size=sm] .ttdk-radio-label{font-size:13px;line-height:1.25}.ttdk-radio-wrapper[data-size=sm] .ttdk-radio-desc,.ttdk-radio-root[data-size=sm] .ttdk-radio-desc{font-size:12px;line-height:1.4}.ttdk-radio-wrapper[data-size=md] .ttdk-radio-control,.ttdk-radio-root[data-size=md] .ttdk-radio-control{width:18px;height:18px}.ttdk-radio-wrapper[data-size=md] .ttdk-radio-dot,.ttdk-radio-root[data-size=md] .ttdk-radio-dot{width:8px;height:8px}.ttdk-radio-wrapper[data-size=md] .ttdk-radio-label,.ttdk-radio-root[data-size=md] .ttdk-radio-label{letter-spacing:.5px;font-size:14px;font-weight:600;line-height:1.25}.ttdk-radio-wrapper[data-size=md] .ttdk-radio-desc,.ttdk-radio-root[data-size=md] .ttdk-radio-desc{letter-spacing:.25px;font-size:14px;font-weight:400;line-height:1.5}.ttdk-radio-wrapper[data-size=lg] .ttdk-radio-control,.ttdk-radio-root[data-size=lg] .ttdk-radio-control{width:22px;height:22px}.ttdk-radio-wrapper[data-size=lg][data-has-description=true] .ttdk-radio-control,.ttdk-radio-root[data-size=lg][data-has-description=true] .ttdk-radio-control{margin-top:2px}.ttdk-radio-wrapper[data-size=lg] .ttdk-radio-dot,.ttdk-radio-root[data-size=lg] .ttdk-radio-dot{width:10px;height:10px}.ttdk-radio-wrapper[data-size=lg] .ttdk-radio-label,.ttdk-radio-root[data-size=lg] .ttdk-radio-label{font-size:16px;line-height:1.3}.ttdk-radio-wrapper[data-size=lg] .ttdk-radio-desc,.ttdk-radio-root[data-size=lg] .ttdk-radio-desc{font-size:15px;line-height:1.5}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-background]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-background]:hover{background:var(--ttdk-ui-hover-background)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-color]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-color]:hover,.ttdk-radio-wrapper[style*=--ttdk-ui-hover-color]:hover .ttdk-radio-label,.ttdk-radio-root[style*=--ttdk-ui-hover-color]:hover .ttdk-radio-label{color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-color]:hover .ttdk-radio-control,.ttdk-radio-root[style*=--ttdk-ui-hover-color]:hover .ttdk-radio-control{border-color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-border-color]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-border-color]:hover{border-color:var(--ttdk-ui-hover-border-color)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-border\:]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-border\:]:hover{border:var(--ttdk-ui-hover-border)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-box-shadow]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-box-shadow]:hover{box-shadow:var(--ttdk-ui-hover-box-shadow)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-opacity]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-opacity]:hover{opacity:var(--ttdk-ui-hover-opacity)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-hover-transform]:hover,.ttdk-radio-root[style*=--ttdk-ui-hover-transform]:hover{transform:var(--ttdk-ui-hover-transform)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-active-background]:active,.ttdk-radio-root[style*=--ttdk-ui-active-background]:active{background:var(--ttdk-ui-active-background)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-active-color]:active,.ttdk-radio-root[style*=--ttdk-ui-active-color]:active{color:var(--ttdk-ui-active-color)!important}.ttdk-radio-wrapper[style*=--ttdk-ui-active-opacity]:active,.ttdk-radio-root[style*=--ttdk-ui-active-opacity]:active{opacity:var(--ttdk-ui-active-opacity)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-background]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-background],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-background]{background:var(--ttdk-ui-hover-background)!important;background-color:var(--ttdk-ui-hover-background)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-border-color]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-border-color],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-border-color]{border-color:var(--ttdk-ui-hover-border-color)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-border\:]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-border\:],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-border\:]{border:var(--ttdk-ui-hover-border)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-box-shadow]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-box-shadow],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-box-shadow]{box-shadow:var(--ttdk-ui-hover-box-shadow)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-opacity]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-opacity],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-opacity]{opacity:var(--ttdk-ui-hover-opacity)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-transform]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-transform],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-transform]{transform:var(--ttdk-ui-hover-transform)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-color]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-color],.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-color]{color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-control[style*=--ttdk-ui-hover-color]:hover .ttdk-radio-dot,.ttdk-radio-wrapper:hover .ttdk-radio-control[style*=--ttdk-ui-hover-color] .ttdk-radio-dot,.ttdk-radio-root:hover .ttdk-radio-control[style*=--ttdk-ui-hover-color] .ttdk-radio-dot{background-color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-control:hover .ttdk-radio-dot[style*=--ttdk-ui-hover-background],.ttdk-radio-wrapper:hover .ttdk-radio-dot[style*=--ttdk-ui-hover-background],.ttdk-radio-root:hover .ttdk-radio-dot[style*=--ttdk-ui-hover-background]{background-color:var(--ttdk-ui-hover-background)!important}.ttdk-radio-control:hover .ttdk-radio-dot[style*=--ttdk-ui-hover-color],.ttdk-radio-wrapper:hover .ttdk-radio-dot[style*=--ttdk-ui-hover-color],.ttdk-radio-root:hover .ttdk-radio-dot[style*=--ttdk-ui-hover-color]{background-color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-label[style*=--ttdk-ui-hover-color]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-label[style*=--ttdk-ui-hover-color],.ttdk-radio-root:hover .ttdk-radio-label[style*=--ttdk-ui-hover-color]{color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-label[style*=--ttdk-ui-hover-opacity]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-label[style*=--ttdk-ui-hover-opacity],.ttdk-radio-root:hover .ttdk-radio-label[style*=--ttdk-ui-hover-opacity]{opacity:var(--ttdk-ui-hover-opacity)!important}.ttdk-radio-label[style*=--ttdk-ui-active-color]:active,.ttdk-radio-wrapper:active .ttdk-radio-label[style*=--ttdk-ui-active-color],.ttdk-radio-root:active .ttdk-radio-label[style*=--ttdk-ui-active-color]{color:var(--ttdk-ui-active-color)!important}.ttdk-radio-desc[style*=--ttdk-ui-hover-color],.ttdk-radio-helper-text[style*=--ttdk-ui-hover-color]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-desc[style*=--ttdk-ui-hover-color],.ttdk-radio-helper-text[style*=--ttdk-ui-hover-color],.ttdk-radio-root:hover .ttdk-radio-desc[style*=--ttdk-ui-hover-color],.ttdk-radio-helper-text[style*=--ttdk-ui-hover-color]{color:var(--ttdk-ui-hover-color)!important}.ttdk-radio-desc[style*=--ttdk-ui-hover-opacity],.ttdk-radio-helper-text[style*=--ttdk-ui-hover-opacity]:hover,.ttdk-radio-wrapper:hover .ttdk-radio-desc[style*=--ttdk-ui-hover-opacity],.ttdk-radio-helper-text[style*=--ttdk-ui-hover-opacity],.ttdk-radio-root:hover .ttdk-radio-desc[style*=--ttdk-ui-hover-opacity],.ttdk-radio-helper-text[style*=--ttdk-ui-hover-opacity]{opacity:var(--ttdk-ui-hover-opacity)!important}
|