ionbase-ui 0.13.1 → 0.17.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.
Files changed (59) hide show
  1. package/README.md +62 -45
  2. package/dist/components/Popover.d.ts +47 -0
  3. package/dist/components/Popover.d.ts.map +1 -0
  4. package/dist/components/Popover.js +71 -0
  5. package/dist/components/Popover.js.map +1 -0
  6. package/dist/components/Toast.d.ts +57 -0
  7. package/dist/components/Toast.d.ts.map +1 -0
  8. package/dist/components/Toast.js +81 -0
  9. package/dist/components/Toast.js.map +1 -0
  10. package/dist/components/index.d.ts +4 -0
  11. package/dist/components/index.d.ts.map +1 -1
  12. package/dist/components/index.js +2 -0
  13. package/dist/components/index.js.map +1 -1
  14. package/dist/meta/Alert.json +248 -0
  15. package/dist/meta/Avatar.json +97 -0
  16. package/dist/meta/AvatarGroup.json +82 -0
  17. package/dist/meta/Badge.json +83 -0
  18. package/dist/meta/Button.json +518 -0
  19. package/dist/meta/Checkbox.json +113 -0
  20. package/dist/meta/Divider.json +30 -0
  21. package/dist/meta/FullCard.json +97 -0
  22. package/dist/meta/Header.json +91 -0
  23. package/dist/meta/Icon.json +35 -0
  24. package/dist/meta/Input.json +558 -0
  25. package/dist/meta/Link.json +239 -0
  26. package/dist/meta/Logo.json +46 -0
  27. package/dist/meta/LogoMark.json +41 -0
  28. package/dist/meta/Menu.json +50 -0
  29. package/dist/meta/MenuItem.json +75 -0
  30. package/dist/meta/Modal.json +241 -0
  31. package/dist/meta/NavItem.json +76 -0
  32. package/dist/meta/PhoneInput.json +472 -0
  33. package/dist/meta/Popover.json +124 -0
  34. package/dist/meta/Radio.json +104 -0
  35. package/dist/meta/RadioGroup.json +126 -0
  36. package/dist/meta/ScrollProgress.json +63 -0
  37. package/dist/meta/Select.json +195 -0
  38. package/dist/meta/TabItem.json +15 -0
  39. package/dist/meta/Table.json +135 -0
  40. package/dist/meta/TableBody.json +43 -0
  41. package/dist/meta/TableCell.json +105 -0
  42. package/dist/meta/TableHead.json +43 -0
  43. package/dist/meta/TableRow.json +56 -0
  44. package/dist/meta/Tabs.json +186 -0
  45. package/dist/meta/Toast.json +105 -0
  46. package/dist/meta/ToastProvider.json +75 -0
  47. package/dist/meta/Toggle.json +102 -0
  48. package/dist/meta/Tooltip.json +78 -0
  49. package/dist/meta/components.json +4757 -0
  50. package/dist/meta/index.json +479 -0
  51. package/dist/styles/index.css +2 -0
  52. package/dist/styles/popover.css +185 -0
  53. package/dist/styles/toast.css +216 -0
  54. package/dist/styles/tokens/base.css +26 -26
  55. package/dist/styles/tokens/theme-dark.css +11 -11
  56. package/dist/tokens/index.d.ts +9 -9
  57. package/dist/tokens/index.js +9 -9
  58. package/dist/tokens/index.js.map +1 -1
  59. package/package.json +12 -6
@@ -0,0 +1,105 @@
1
+ {
2
+ "name": "TableCell",
3
+ "source": "src/components/Table.tsx",
4
+ "propsType": "TableCellProps",
5
+ "description": "One component covers Figma's `Table Cell` + `Cell Text`: the two are never\nused apart in the design (`Table Cell` always wraps exactly one `Cell\nText`), so splitting them into two exported components would only add API\nsurface for a composition nothing ever varies independently.\n\n`header` decides `<th>` vs `<td>` directly rather than a `type` prop that\ncould disagree with where the cell actually sits — a `<th>` rendered inside\n`<tbody>` is still a header cell to the browser and to CSS either way.",
6
+ "import": "import { TableCell } from 'ionbase-ui';",
7
+ "stylesheet": "src/styles/table.css",
8
+ "tokens": [
9
+ "--border-default",
10
+ "--border-focus",
11
+ "--border-width-default",
12
+ "--border-width-thick",
13
+ "--font-family-sans",
14
+ "--font-weight-medium",
15
+ "--font-weight-regular",
16
+ "--icon-interactive",
17
+ "--icon-secondary",
18
+ "--icon-size-sm",
19
+ "--icon-tertiary",
20
+ "--ion-duration-base",
21
+ "--ion-ease-out",
22
+ "--radius-md",
23
+ "--spacing-16",
24
+ "--spacing-20",
25
+ "--spacing-6",
26
+ "--spacing-8",
27
+ "--surface-default",
28
+ "--surface-hover",
29
+ "--surface-page",
30
+ "--surface-primary-subtle",
31
+ "--text-default",
32
+ "--text-link",
33
+ "--text-secondary",
34
+ "--type-body-sm",
35
+ "--type-body-sm-line-height"
36
+ ],
37
+ "props": {
38
+ "header": {
39
+ "type": "boolean | undefined",
40
+ "required": false,
41
+ "origin": "own",
42
+ "description": "Renders `<th>` instead of `<td>` — Figma's header cell, `surface/page`\nfill included."
43
+ },
44
+ "scope": {
45
+ "type": "TableCellScope | undefined",
46
+ "required": false,
47
+ "origin": "own",
48
+ "description": "`<th>` scope. Inferred when omitted: `col` in `<thead>`, `row` in\n`<tbody>`. Pass explicitly when the inference is wrong (e.g. a column\nheader rendered outside `<thead>`).",
49
+ "values": [
50
+ "row",
51
+ "rowgroup",
52
+ "col",
53
+ "colgroup"
54
+ ]
55
+ },
56
+ "align": {
57
+ "type": "TableCellAlign | undefined",
58
+ "required": false,
59
+ "origin": "own",
60
+ "values": [
61
+ "center",
62
+ "leading",
63
+ "trailing"
64
+ ]
65
+ },
66
+ "variant": {
67
+ "type": "\"link\" | \"default\" | undefined",
68
+ "required": false,
69
+ "origin": "own",
70
+ "description": "Figma's `Type=Link` — recolours the content to `text/link` /\n`icon/primary` rather than the body defaults.",
71
+ "values": [
72
+ "link",
73
+ "default"
74
+ ]
75
+ },
76
+ "showDivider": {
77
+ "type": "boolean | undefined",
78
+ "required": false,
79
+ "origin": "own",
80
+ "description": "Figma's per-cell `Show Divider` — a column rule, not a row rule."
81
+ },
82
+ "icon": {
83
+ "type": "React.ReactNode",
84
+ "required": false,
85
+ "origin": "own",
86
+ "description": "Figma's `Leading Icon` / `Trailing Icon` slots on `Cell Text`."
87
+ },
88
+ "trailingIcon": {
89
+ "type": "React.ReactNode",
90
+ "required": false,
91
+ "origin": "own"
92
+ },
93
+ "children": {
94
+ "type": "React.ReactNode",
95
+ "required": false,
96
+ "origin": "own"
97
+ }
98
+ },
99
+ "propCounts": {
100
+ "own": 8,
101
+ "aria": 0,
102
+ "dom": 284,
103
+ "other": 0
104
+ }
105
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "TableHead",
3
+ "source": "src/components/Table.tsx",
4
+ "propsType": null,
5
+ "import": "import { TableHead } from 'ionbase-ui';",
6
+ "stylesheet": "src/styles/table.css",
7
+ "tokens": [
8
+ "--border-default",
9
+ "--border-focus",
10
+ "--border-width-default",
11
+ "--border-width-thick",
12
+ "--font-family-sans",
13
+ "--font-weight-medium",
14
+ "--font-weight-regular",
15
+ "--icon-interactive",
16
+ "--icon-secondary",
17
+ "--icon-size-sm",
18
+ "--icon-tertiary",
19
+ "--ion-duration-base",
20
+ "--ion-ease-out",
21
+ "--radius-md",
22
+ "--spacing-16",
23
+ "--spacing-20",
24
+ "--spacing-6",
25
+ "--spacing-8",
26
+ "--surface-default",
27
+ "--surface-hover",
28
+ "--surface-page",
29
+ "--surface-primary-subtle",
30
+ "--text-default",
31
+ "--text-link",
32
+ "--text-secondary",
33
+ "--type-body-sm",
34
+ "--type-body-sm-line-height"
35
+ ],
36
+ "props": {},
37
+ "propCounts": {
38
+ "own": 0,
39
+ "aria": 0,
40
+ "dom": 0,
41
+ "other": 0
42
+ }
43
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "TableRow",
3
+ "source": "src/components/Table.tsx",
4
+ "propsType": "TableRowProps",
5
+ "description": "A plain `<tr>`. Hover is CSS-only (`:hover` plus a `data-hovered` escape\nhatch, matching the rest of the system) rather than React Aria's\n`useHover`: a row is not itself an interactive element — nothing about it\ntakes focus or fires a click — so there is no keyboard-vs-pointer\ndistinction to track. A clickable row is a link or button inside a cell,\nthe same accessible pattern Menu and Table Cell's own link variant use;\nnesting an interactive role on `<tr>` itself is not valid HTML.",
6
+ "import": "import { TableRow } from 'ionbase-ui';",
7
+ "stylesheet": "src/styles/table.css",
8
+ "tokens": [
9
+ "--border-default",
10
+ "--border-focus",
11
+ "--border-width-default",
12
+ "--border-width-thick",
13
+ "--font-family-sans",
14
+ "--font-weight-medium",
15
+ "--font-weight-regular",
16
+ "--icon-interactive",
17
+ "--icon-secondary",
18
+ "--icon-size-sm",
19
+ "--icon-tertiary",
20
+ "--ion-duration-base",
21
+ "--ion-ease-out",
22
+ "--radius-md",
23
+ "--spacing-16",
24
+ "--spacing-20",
25
+ "--spacing-6",
26
+ "--spacing-8",
27
+ "--surface-default",
28
+ "--surface-hover",
29
+ "--surface-page",
30
+ "--surface-primary-subtle",
31
+ "--text-default",
32
+ "--text-link",
33
+ "--text-secondary",
34
+ "--type-body-sm",
35
+ "--type-body-sm-line-height"
36
+ ],
37
+ "props": {
38
+ "isSelected": {
39
+ "type": "boolean | undefined",
40
+ "required": false,
41
+ "origin": "own"
42
+ },
43
+ "selection": {
44
+ "type": "TableRowSelection | undefined",
45
+ "required": false,
46
+ "origin": "own",
47
+ "description": "Renders a leading `Checkbox` cell — Figma's `Show Selection`. Takes the\ncheckbox's own props directly rather than a boolean, since a selectable\nrow needs `checked`/`onChange` wiring, not just a decorative box.\n\nInside `<thead>` the cell is a `<th scope=\"col\">` (select-all). Inside\n`<tbody>` it is a `<td>`."
48
+ }
49
+ },
50
+ "propCounts": {
51
+ "own": 2,
52
+ "aria": 0,
53
+ "dom": 278,
54
+ "other": 0
55
+ }
56
+ }
@@ -0,0 +1,186 @@
1
+ {
2
+ "name": "Tabs",
3
+ "source": "src/components/Tabs.tsx",
4
+ "propsType": "TabsProps",
5
+ "import": "import { Tabs } from 'ionbase-ui';",
6
+ "stylesheet": "src/styles/tabs.css",
7
+ "tokens": [
8
+ "--border-default",
9
+ "--border-primary",
10
+ "--border-width-default",
11
+ "--border-width-thick",
12
+ "--font-family-sans",
13
+ "--font-weight-medium",
14
+ "--icon-size-sm",
15
+ "--ion-duration-base",
16
+ "--ion-ease-out",
17
+ "--ion-tabs-icon-size",
18
+ "--ion-tabs-item-font-size",
19
+ "--ion-tabs-item-gap",
20
+ "--ion-tabs-item-line-height",
21
+ "--ion-tabs-item-padding-x",
22
+ "--ion-tabs-item-padding-y",
23
+ "--ion-tabs-item-size",
24
+ "--radius-full",
25
+ "--radius-md",
26
+ "--ring-focus",
27
+ "--spacing-12",
28
+ "--spacing-16",
29
+ "--spacing-2",
30
+ "--spacing-20",
31
+ "--spacing-32",
32
+ "--spacing-4",
33
+ "--spacing-40",
34
+ "--spacing-48",
35
+ "--spacing-6",
36
+ "--spacing-8",
37
+ "--surface-default",
38
+ "--surface-hover",
39
+ "--surface-muted",
40
+ "--surface-page",
41
+ "--text-default",
42
+ "--text-disabled",
43
+ "--text-tertiary",
44
+ "--type-body",
45
+ "--type-body-lg",
46
+ "--type-body-lg-line-height",
47
+ "--type-body-line-height",
48
+ "--type-body-sm",
49
+ "--type-body-sm-line-height"
50
+ ],
51
+ "props": {
52
+ "type": {
53
+ "type": "TabsType | undefined",
54
+ "required": false,
55
+ "origin": "own",
56
+ "description": "Visual style. Matches the Figma `Type` variant.",
57
+ "values": [
58
+ "pill",
59
+ "underline"
60
+ ],
61
+ "default": "pill"
62
+ },
63
+ "size": {
64
+ "type": "TabsSize | undefined",
65
+ "required": false,
66
+ "origin": "own",
67
+ "description": "Matches the Figma `Size` variant.",
68
+ "values": [
69
+ "sm",
70
+ "md",
71
+ "lg"
72
+ ],
73
+ "default": "md"
74
+ },
75
+ "orientation": {
76
+ "type": "\"horizontal\" | \"vertical\" | undefined",
77
+ "required": false,
78
+ "origin": "own",
79
+ "description": "Drives both the arrow-key axis and the track layout.\n\n`vertical` is keyboard- and ARIA-complete — up/down move between tabs, and\nthe track stacks — but its *decoration* is not: the underline rule and the\npill track's padding are still written for the horizontal axis only. Those\nare Figma's to specify, not this file's to invent. See tabs.css.",
80
+ "values": [
81
+ "horizontal",
82
+ "vertical"
83
+ ],
84
+ "tags": {
85
+ "default": "'horizontal'"
86
+ },
87
+ "default": "horizontal"
88
+ },
89
+ "className": {
90
+ "type": "string | undefined",
91
+ "required": false,
92
+ "origin": "own"
93
+ },
94
+ "keyboardActivation": {
95
+ "type": "\"manual\" | \"automatic\" | undefined",
96
+ "required": false,
97
+ "origin": "aria",
98
+ "description": "Whether tabs are activated automatically on focus or manually.",
99
+ "values": [
100
+ "manual",
101
+ "automatic"
102
+ ],
103
+ "tags": {
104
+ "default": "'automatic'"
105
+ }
106
+ },
107
+ "isDisabled": {
108
+ "type": "boolean | undefined",
109
+ "required": false,
110
+ "origin": "other",
111
+ "description": "Whether the TabList is disabled.\nShows that a selection exists, but is not available in that circumstance."
112
+ },
113
+ "selectedKey": {
114
+ "type": "Key | undefined",
115
+ "required": false,
116
+ "origin": "other",
117
+ "description": "The currently selected key in the collection (controlled)."
118
+ },
119
+ "defaultSelectedKey": {
120
+ "type": "Key | undefined",
121
+ "required": false,
122
+ "origin": "other",
123
+ "description": "The initial selected keys in the collection (uncontrolled)."
124
+ },
125
+ "onSelectionChange": {
126
+ "type": "((key: Key) => void) | undefined",
127
+ "required": false,
128
+ "origin": "other",
129
+ "description": "Handler that is called when the selection changes."
130
+ },
131
+ "children": {
132
+ "type": "CollectionChildren<T>",
133
+ "required": true,
134
+ "origin": "aria",
135
+ "description": "The contents of the collection."
136
+ },
137
+ "items": {
138
+ "type": "Iterable<T> | undefined",
139
+ "required": false,
140
+ "origin": "aria",
141
+ "description": "Item objects in the collection."
142
+ },
143
+ "disabledKeys": {
144
+ "type": "Iterable<Key> | undefined",
145
+ "required": false,
146
+ "origin": "aria",
147
+ "description": "The item keys that are disabled. These items cannot be selected, focused, or otherwise\ninteracted with."
148
+ },
149
+ "id": {
150
+ "type": "string | undefined",
151
+ "required": false,
152
+ "origin": "aria",
153
+ "description": "The element's unique identifier. See\n[MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)."
154
+ },
155
+ "aria-label": {
156
+ "type": "string | undefined",
157
+ "required": false,
158
+ "origin": "aria",
159
+ "description": "Defines a string value that labels the current element."
160
+ },
161
+ "aria-labelledby": {
162
+ "type": "string | undefined",
163
+ "required": false,
164
+ "origin": "aria",
165
+ "description": "Identifies the element (or elements) that labels the current element."
166
+ },
167
+ "aria-describedby": {
168
+ "type": "string | undefined",
169
+ "required": false,
170
+ "origin": "aria",
171
+ "description": "Identifies the element (or elements) that describes the object."
172
+ },
173
+ "aria-details": {
174
+ "type": "string | undefined",
175
+ "required": false,
176
+ "origin": "aria",
177
+ "description": "Identifies the element (or elements) that provide a detailed, extended description for the\nobject."
178
+ }
179
+ },
180
+ "propCounts": {
181
+ "own": 4,
182
+ "aria": 9,
183
+ "dom": 0,
184
+ "other": 4
185
+ }
186
+ }
@@ -0,0 +1,105 @@
1
+ {
2
+ "name": "Toast",
3
+ "source": "src/components/Toast.tsx",
4
+ "propsType": "ToastProps",
5
+ "description": "Toast — Figma `Toast` (820:1655).\n\nNeutral chrome on `surface/raised`; the intent is carried by the icon alone.\nA tinted panel floating over unknown content competes with whatever is\nbehind it, and makes Toast and Alert indistinguishable at a glance.\n\nAUTO-DISMISS PAUSES ON HOVER AND FOCUS. A toast that keeps counting down\nwhile being read or while its action has keyboard focus takes the action\naway mid-reach — WCAG 2.2.1 asks for exactly this. The timer restarts rather\nthan resumes, which is the forgiving direction.",
6
+ "import": "import { Toast } from 'ionbase-ui';",
7
+ "stylesheet": "src/styles/toast.css",
8
+ "tokens": [
9
+ "--border-subtle",
10
+ "--border-width-default",
11
+ "--border-width-thick",
12
+ "--font-family-sans",
13
+ "--font-weight-medium",
14
+ "--font-weight-regular",
15
+ "--icon-error",
16
+ "--icon-information",
17
+ "--icon-primary",
18
+ "--icon-secondary",
19
+ "--icon-size-md",
20
+ "--icon-success",
21
+ "--icon-warning",
22
+ "--ion-duration-base",
23
+ "--ion-ease-out",
24
+ "--ion-shadow-shadow-lg",
25
+ "--ion-toast-icon",
26
+ "--radius-md",
27
+ "--radius-sm",
28
+ "--ring-focus",
29
+ "--spacing-12",
30
+ "--spacing-16",
31
+ "--spacing-32",
32
+ "--spacing-4",
33
+ "--surface-hover",
34
+ "--surface-raised",
35
+ "--text-default",
36
+ "--text-link",
37
+ "--text-link-hover",
38
+ "--text-secondary",
39
+ "--type-body",
40
+ "--type-body-line-height",
41
+ "--type-body-sm",
42
+ "--type-body-sm-line-height"
43
+ ],
44
+ "props": {
45
+ "onDismiss": {
46
+ "type": "(id: string) => void",
47
+ "required": true,
48
+ "origin": "own"
49
+ },
50
+ "id": {
51
+ "type": "string",
52
+ "required": true,
53
+ "origin": "own"
54
+ },
55
+ "intent": {
56
+ "type": "ToastIntent | undefined",
57
+ "required": false,
58
+ "origin": "own",
59
+ "values": [
60
+ "neutral",
61
+ "primary",
62
+ "success",
63
+ "warning",
64
+ "error",
65
+ "information"
66
+ ],
67
+ "default": "information"
68
+ },
69
+ "title": {
70
+ "type": "React.ReactNode",
71
+ "required": false,
72
+ "origin": "own"
73
+ },
74
+ "message": {
75
+ "type": "React.ReactNode",
76
+ "required": false,
77
+ "origin": "own"
78
+ },
79
+ "action": {
80
+ "type": "{ label: string; onPress: () => void; } | undefined",
81
+ "required": false,
82
+ "origin": "own",
83
+ "description": "One action. A second choice belongs in a dialog, which will still be there."
84
+ },
85
+ "duration": {
86
+ "type": "number | null | undefined",
87
+ "required": false,
88
+ "origin": "own",
89
+ "description": "Milliseconds before auto-dismiss. `null` keeps it until dismissed.",
90
+ "default": 5000
91
+ },
92
+ "dismissLabel": {
93
+ "type": "string | undefined",
94
+ "required": false,
95
+ "origin": "own",
96
+ "default": "Dismiss"
97
+ }
98
+ },
99
+ "propCounts": {
100
+ "own": 8,
101
+ "aria": 0,
102
+ "dom": 0,
103
+ "other": 0
104
+ }
105
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "ToastProvider",
3
+ "source": "src/components/Toast.tsx",
4
+ "propsType": "ToastProviderProps",
5
+ "description": "Renders the queue and supplies `useToast`.\n\nThe live region is the CONTAINER, declared once and always present. A region\nthat appears at the same moment as its content is not reliably announced —\nassistive tech has to be watching the node before the text lands in it.",
6
+ "import": "import { ToastProvider } from 'ionbase-ui';",
7
+ "stylesheet": "src/styles/toast.css",
8
+ "tokens": [
9
+ "--border-subtle",
10
+ "--border-width-default",
11
+ "--border-width-thick",
12
+ "--font-family-sans",
13
+ "--font-weight-medium",
14
+ "--font-weight-regular",
15
+ "--icon-error",
16
+ "--icon-information",
17
+ "--icon-primary",
18
+ "--icon-secondary",
19
+ "--icon-size-md",
20
+ "--icon-success",
21
+ "--icon-warning",
22
+ "--ion-duration-base",
23
+ "--ion-ease-out",
24
+ "--ion-shadow-shadow-lg",
25
+ "--ion-toast-icon",
26
+ "--radius-md",
27
+ "--radius-sm",
28
+ "--ring-focus",
29
+ "--spacing-12",
30
+ "--spacing-16",
31
+ "--spacing-32",
32
+ "--spacing-4",
33
+ "--surface-hover",
34
+ "--surface-raised",
35
+ "--text-default",
36
+ "--text-link",
37
+ "--text-link-hover",
38
+ "--text-secondary",
39
+ "--type-body",
40
+ "--type-body-line-height",
41
+ "--type-body-sm",
42
+ "--type-body-sm-line-height"
43
+ ],
44
+ "props": {
45
+ "children": {
46
+ "type": "React.ReactNode",
47
+ "required": false,
48
+ "origin": "own"
49
+ },
50
+ "placement": {
51
+ "type": "ToastPlacement | undefined",
52
+ "required": false,
53
+ "origin": "own",
54
+ "description": "Where the stack sits. Not a Figma variant — position is the queue's concern.",
55
+ "values": [
56
+ "top-left",
57
+ "top-right",
58
+ "bottom-left",
59
+ "bottom-right"
60
+ ]
61
+ },
62
+ "limit": {
63
+ "type": "number | undefined",
64
+ "required": false,
65
+ "origin": "own",
66
+ "description": "Oldest are dropped past this. Prevents an unbounded stack covering the page."
67
+ }
68
+ },
69
+ "propCounts": {
70
+ "own": 3,
71
+ "aria": 0,
72
+ "dom": 0,
73
+ "other": 0
74
+ }
75
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "Toggle",
3
+ "source": "src/components/Toggle.tsx",
4
+ "propsType": "ToggleProps",
5
+ "description": "Toggle is a checkbox with `role=\"switch\"`.\n\nNot a button with aria-pressed: a switch is a form value, and the checkbox\ngives form association and `:checked` for free. `role=\"switch\"` changes only\nhow it is announced — \"on/off\" rather than \"checked/unchecked\" — which is\nwhat Figma's On/Off states describe.\n\nThe visual difference from Checkbox is entirely in CSS; this component and\nCheckbox are near-identical by design rather than by accident, and are kept\napart because Figma models them as separate components with separate size\nramps.",
6
+ "import": "import { Toggle } from 'ionbase-ui';",
7
+ "stylesheet": "src/styles/toggle.css",
8
+ "tokens": [
9
+ "--border-disabled",
10
+ "--border-focus",
11
+ "--border-strong",
12
+ "--border-width-default",
13
+ "--border-width-thick",
14
+ "--font-family-sans",
15
+ "--ion-duration-base",
16
+ "--ion-ease-in-out",
17
+ "--ion-ease-out",
18
+ "--ion-shadow-raised-flush-lg",
19
+ "--ion-shadow-raised-flush-sm",
20
+ "--ion-shadow-raised-flush-xs",
21
+ "--ion-shadow-shadow-xs",
22
+ "--ion-toggle-font-size",
23
+ "--ion-toggle-gap",
24
+ "--ion-toggle-inset",
25
+ "--ion-toggle-line-height",
26
+ "--ion-toggle-on",
27
+ "--ion-toggle-raised",
28
+ "--ion-toggle-thumb",
29
+ "--ion-toggle-track-h",
30
+ "--ion-toggle-track-w",
31
+ "--radius-full",
32
+ "--spacing-12",
33
+ "--spacing-16",
34
+ "--spacing-2",
35
+ "--spacing-20",
36
+ "--spacing-24",
37
+ "--spacing-8",
38
+ "--surface-default",
39
+ "--surface-disabled",
40
+ "--surface-error",
41
+ "--surface-inverse",
42
+ "--surface-muted",
43
+ "--surface-primary",
44
+ "--text-disabled",
45
+ "--text-secondary",
46
+ "--type-body",
47
+ "--type-body-line-height",
48
+ "--type-body-sm",
49
+ "--type-body-sm-line-height"
50
+ ],
51
+ "props": {
52
+ "size": {
53
+ "type": "ToggleSize | undefined",
54
+ "required": false,
55
+ "origin": "own",
56
+ "description": "Matches the Figma `Size` variant: Small, Medium, Large.",
57
+ "values": [
58
+ "sm",
59
+ "md",
60
+ "lg"
61
+ ],
62
+ "default": "md"
63
+ },
64
+ "intent": {
65
+ "type": "ToggleIntent | undefined",
66
+ "required": false,
67
+ "origin": "own",
68
+ "description": "Matches the Figma `Color` variant: Brand, Neutral, Danger.",
69
+ "values": [
70
+ "neutral",
71
+ "brand",
72
+ "danger"
73
+ ],
74
+ "default": "brand"
75
+ },
76
+ "isDisabled": {
77
+ "type": "boolean | undefined",
78
+ "required": false,
79
+ "origin": "own",
80
+ "description": "Whether the toggle is disabled."
81
+ },
82
+ "disabled": {
83
+ "type": "boolean | undefined",
84
+ "required": false,
85
+ "origin": "own",
86
+ "tags": {
87
+ "deprecated": "Use `isDisabled`. Accepted as an alias for one minor version."
88
+ }
89
+ },
90
+ "children": {
91
+ "type": "React.ReactNode",
92
+ "required": false,
93
+ "origin": "own"
94
+ }
95
+ },
96
+ "propCounts": {
97
+ "own": 5,
98
+ "aria": 0,
99
+ "dom": 304,
100
+ "other": 0
101
+ }
102
+ }