@proyecto-viviana/ui 0.3.5 → 0.4.1
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/LICENSE +21 -0
- package/README.md +80 -157
- package/dist/ActionButton.d.ts +2 -0
- package/dist/ActionButton.d.ts.map +1 -0
- package/dist/ActionButton.js +1 -0
- package/dist/ActionButton.jsx +1 -0
- package/dist/ActionMenu.d.ts +2 -0
- package/dist/ActionMenu.d.ts.map +1 -0
- package/dist/ActionMenu.js +1 -0
- package/dist/ActionMenu.jsx +1 -0
- package/dist/Breadcrumbs.d.ts +2 -0
- package/dist/Breadcrumbs.d.ts.map +1 -0
- package/dist/Breadcrumbs.js +1 -0
- package/dist/Breadcrumbs.jsx +1 -0
- package/dist/Button.d.ts +2 -0
- package/dist/Button.d.ts.map +1 -0
- package/dist/Button.js +1 -0
- package/dist/Button.jsx +1 -0
- package/dist/Calendar.d.ts +2 -0
- package/dist/Calendar.d.ts.map +1 -0
- package/dist/Calendar.js +1 -0
- package/dist/Calendar.jsx +1 -0
- package/dist/CalendarCard.d.ts +2 -0
- package/dist/CalendarCard.d.ts.map +1 -0
- package/dist/CalendarCard.js +96 -0
- package/dist/CalendarCard.js.map +1 -0
- package/dist/CalendarCard.jsx +50 -0
- package/dist/CalendarCard.jsx.map +1 -0
- package/dist/Card.d.ts +2 -0
- package/dist/Card.d.ts.map +1 -0
- package/dist/Card.js +1 -0
- package/dist/Card.jsx +1 -0
- package/dist/CardView.d.ts +2 -0
- package/dist/CardView.d.ts.map +1 -0
- package/dist/CardView.js +1 -0
- package/dist/CardView.jsx +1 -0
- package/dist/CenterBaseline.d.ts +2 -0
- package/dist/CenterBaseline.d.ts.map +1 -0
- package/dist/CenterBaseline.js +1 -0
- package/dist/CenterBaseline.jsx +1 -0
- package/dist/Chip.d.ts +2 -0
- package/dist/Chip.d.ts.map +1 -0
- package/dist/Chip.js +2 -0
- package/dist/Chip.jsx +2 -0
- package/dist/ColorArea.d.ts +2 -0
- package/dist/ColorArea.d.ts.map +1 -0
- package/dist/ColorArea.js +1 -0
- package/dist/ColorArea.jsx +1 -0
- package/dist/ColorField.d.ts +2 -0
- package/dist/ColorField.d.ts.map +1 -0
- package/dist/ColorField.js +1 -0
- package/dist/ColorField.jsx +1 -0
- package/dist/ColorSlider.d.ts +2 -0
- package/dist/ColorSlider.d.ts.map +1 -0
- package/dist/ColorSlider.js +1 -0
- package/dist/ColorSlider.jsx +1 -0
- package/dist/ColorSwatch.d.ts +2 -0
- package/dist/ColorSwatch.d.ts.map +1 -0
- package/dist/ColorSwatch.js +1 -0
- package/dist/ColorSwatch.jsx +1 -0
- package/dist/ColorSwatchPicker.d.ts +2 -0
- package/dist/ColorSwatchPicker.d.ts.map +1 -0
- package/dist/ColorSwatchPicker.js +1 -0
- package/dist/ColorSwatchPicker.jsx +1 -0
- package/dist/ColorWheel.d.ts +2 -0
- package/dist/ColorWheel.d.ts.map +1 -0
- package/dist/ColorWheel.js +1 -0
- package/dist/ColorWheel.jsx +1 -0
- package/dist/ContrastIcon.d.ts +3 -0
- package/dist/ContrastIcon.d.ts.map +1 -0
- package/dist/ContrastIcon.js +3 -0
- package/dist/ContrastIcon.jsx +3 -0
- package/dist/Conversation.d.ts +2 -0
- package/dist/Conversation.d.ts.map +1 -0
- package/dist/Conversation.js +176 -0
- package/dist/Conversation.js.map +1 -0
- package/dist/Conversation.jsx +106 -0
- package/dist/Conversation.jsx.map +1 -0
- package/dist/Disclosure.d.ts +2 -0
- package/dist/Disclosure.d.ts.map +1 -0
- package/dist/Disclosure.js +1 -0
- package/dist/Disclosure.jsx +1 -0
- package/dist/EventCard.d.ts +2 -0
- package/dist/EventCard.d.ts.map +1 -0
- package/dist/EventCard.js +171 -0
- package/dist/EventCard.js.map +1 -0
- package/dist/EventCard.jsx +94 -0
- package/dist/EventCard.jsx.map +1 -0
- package/dist/FileTrigger.d.ts +2 -0
- package/dist/FileTrigger.d.ts.map +1 -0
- package/dist/FileTrigger.js +1 -0
- package/dist/FileTrigger.jsx +1 -0
- package/dist/GitHubIcon.d.ts +2 -0
- package/dist/GitHubIcon.d.ts.map +1 -0
- package/dist/GitHubIcon.js +1 -0
- package/dist/GitHubIcon.jsx +1 -0
- package/dist/LightenIcon.d.ts +3 -0
- package/dist/LightenIcon.d.ts.map +1 -0
- package/dist/LightenIcon.js +3 -0
- package/dist/LightenIcon.jsx +3 -0
- package/dist/LinkButton.d.ts +2 -0
- package/dist/LinkButton.d.ts.map +1 -0
- package/dist/LinkButton.js +1 -0
- package/dist/LinkButton.jsx +1 -0
- package/dist/ListView.d.ts +2 -0
- package/dist/ListView.d.ts.map +1 -0
- package/dist/ListView.js +1 -0
- package/dist/ListView.jsx +1 -0
- package/dist/Logo.d.ts +2 -0
- package/dist/Logo.d.ts.map +1 -0
- package/dist/Logo.js +116 -0
- package/dist/Logo.js.map +1 -0
- package/dist/Logo.jsx +101 -0
- package/dist/Logo.jsx.map +1 -0
- package/dist/Menu.d.ts +2 -0
- package/dist/Menu.d.ts.map +1 -0
- package/dist/Menu.js +1 -0
- package/dist/Menu.jsx +1 -0
- package/dist/PageLayout.d.ts +2 -0
- package/dist/PageLayout.d.ts.map +1 -0
- package/dist/PageLayout.js +31 -0
- package/dist/PageLayout.js.map +1 -0
- package/dist/PageLayout.jsx +23 -0
- package/dist/PageLayout.jsx.map +1 -0
- package/dist/Picker.d.ts +2 -0
- package/dist/Picker.d.ts.map +1 -0
- package/dist/Picker.js +1 -0
- package/dist/Picker.jsx +1 -0
- package/dist/ProfileCard.d.ts +2 -0
- package/dist/ProfileCard.d.ts.map +1 -0
- package/dist/ProfileCard.js +77 -0
- package/dist/ProfileCard.js.map +1 -0
- package/dist/ProfileCard.jsx +52 -0
- package/dist/ProfileCard.jsx.map +1 -0
- package/dist/ProjectCard.d.ts +2 -0
- package/dist/ProjectCard.d.ts.map +1 -0
- package/dist/ProjectCard.js +162 -0
- package/dist/ProjectCard.js.map +1 -0
- package/dist/ProjectCard.jsx +131 -0
- package/dist/ProjectCard.jsx.map +1 -0
- package/dist/Provider.d.ts +2 -0
- package/dist/Provider.d.ts.map +1 -0
- package/dist/Provider.js +1 -0
- package/dist/Provider.jsx +1 -0
- package/dist/RangeCalendar.d.ts +2 -0
- package/dist/RangeCalendar.d.ts.map +1 -0
- package/dist/RangeCalendar.js +1 -0
- package/dist/RangeCalendar.jsx +1 -0
- package/dist/SearchField.d.ts +2 -0
- package/dist/SearchField.d.ts.map +1 -0
- package/dist/SearchField.js +1 -0
- package/dist/SearchField.jsx +1 -0
- package/dist/SegmentedControl.d.ts +2 -0
- package/dist/SegmentedControl.d.ts.map +1 -0
- package/dist/SegmentedControl.js +1 -0
- package/dist/SegmentedControl.jsx +1 -0
- package/dist/Switch.d.ts +2 -0
- package/dist/Switch.d.ts.map +1 -0
- package/dist/Switch.js +1 -0
- package/dist/Switch.jsx +1 -0
- package/dist/Tabs.d.ts +2 -0
- package/dist/Tabs.d.ts.map +1 -0
- package/dist/Tabs.js +1 -0
- package/dist/Tabs.jsx +1 -0
- package/dist/TextArea.d.ts +2 -0
- package/dist/TextArea.d.ts.map +1 -0
- package/dist/TextArea.js +1 -0
- package/dist/TextArea.jsx +1 -0
- package/dist/TextField.d.ts +2 -0
- package/dist/TextField.d.ts.map +1 -0
- package/dist/TextField.js +1 -0
- package/dist/TextField.jsx +1 -0
- package/dist/TimelineItem.d.ts +2 -0
- package/dist/TimelineItem.d.ts.map +1 -0
- package/dist/TimelineItem.js +137 -0
- package/dist/TimelineItem.js.map +1 -0
- package/dist/TimelineItem.jsx +70 -0
- package/dist/TimelineItem.jsx.map +1 -0
- package/dist/TreeView.d.ts +2 -0
- package/dist/TreeView.d.ts.map +1 -0
- package/dist/TreeView.js +1 -0
- package/dist/TreeView.jsx +1 -0
- package/dist/chip2.js +82 -0
- package/dist/chip2.js.map +1 -0
- package/dist/chip2.jsx +68 -0
- package/dist/chip2.jsx.map +1 -0
- package/dist/components.css +2 -1077
- package/dist/custom/calendar-card/index.d.ts.map +1 -1
- package/dist/custom/chip/index.d.ts +2 -2
- package/dist/custom/chip/index.d.ts.map +1 -1
- package/dist/custom/conversation/index.d.ts +2 -2
- package/dist/custom/conversation/index.d.ts.map +1 -1
- package/dist/custom/event-card/index.d.ts +1 -1
- package/dist/custom/event-card/index.d.ts.map +1 -1
- package/dist/custom/header/index.d.ts +2 -6
- package/dist/custom/header/index.d.ts.map +1 -1
- package/dist/custom/lateral-nav/index.d.ts +1 -1
- package/dist/custom/lateral-nav/index.d.ts.map +1 -1
- package/dist/custom/logo/index.d.ts +1 -18
- package/dist/custom/logo/index.d.ts.map +1 -1
- package/dist/custom/nav-header/index.d.ts +2 -1
- package/dist/custom/nav-header/index.d.ts.map +1 -1
- package/dist/custom/page-layout/index.d.ts +1 -7
- package/dist/custom/page-layout/index.d.ts.map +1 -1
- package/dist/custom/profile-card/index.d.ts +1 -1
- package/dist/custom/profile-card/index.d.ts.map +1 -1
- package/dist/custom/project-card/index.d.ts +2 -13
- package/dist/custom/project-card/index.d.ts.map +1 -1
- package/dist/custom/timeline-item/index.d.ts +2 -2
- package/dist/custom/timeline-item/index.d.ts.map +1 -1
- package/dist/font-faces.css +1 -0
- package/dist/index.d.ts +1 -104
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -8222
- package/dist/index.jsx +1 -0
- package/dist/style/runtime.d.ts +2 -0
- package/dist/style/runtime.d.ts.map +1 -0
- package/dist/style/runtime.js +1 -0
- package/dist/style/runtime.jsx +1 -0
- package/dist/style.d.ts +2 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/style.js +1 -0
- package/dist/style.jsx +1 -0
- package/dist/styles.css +9 -450
- package/dist/theme.css +2 -101
- package/dist/vite.d.ts +16 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +82 -0
- package/dist/vite.js.map +1 -0
- package/dist/vite.jsx +82 -0
- package/dist/vite.jsx.map +1 -0
- package/dist/viviana-tokens.css +318 -0
- package/package.json +300 -44
- package/src/ActionButton.ts +1 -0
- package/src/ActionMenu.ts +1 -0
- package/src/Breadcrumbs.ts +1 -0
- package/src/Button.ts +1 -0
- package/src/Calendar.ts +1 -0
- package/src/CalendarCard.ts +1 -0
- package/src/Card.ts +1 -0
- package/src/CardView.ts +1 -0
- package/src/CenterBaseline.ts +1 -0
- package/src/Chip.ts +1 -0
- package/src/ColorArea.ts +1 -0
- package/src/ColorField.ts +1 -0
- package/src/ColorSlider.ts +1 -0
- package/src/ColorSwatch.ts +1 -0
- package/src/ColorSwatchPicker.ts +1 -0
- package/src/ColorWheel.ts +1 -0
- package/src/ContrastIcon.ts +2 -0
- package/src/Conversation.ts +1 -0
- package/src/Disclosure.ts +1 -0
- package/src/EventCard.ts +1 -0
- package/src/FileTrigger.ts +1 -0
- package/src/GitHubIcon.ts +1 -0
- package/src/LightenIcon.ts +2 -0
- package/src/LinkButton.ts +1 -0
- package/src/ListView.ts +1 -0
- package/src/Logo.ts +1 -0
- package/src/Menu.ts +1 -0
- package/src/PageLayout.ts +1 -0
- package/src/Picker.ts +1 -0
- package/src/ProfileCard.ts +1 -0
- package/src/ProjectCard.ts +1 -0
- package/src/Provider.ts +1 -0
- package/src/RangeCalendar.ts +1 -0
- package/src/SearchField.ts +1 -0
- package/src/SegmentedControl.ts +1 -0
- package/src/Switch.ts +1 -0
- package/src/Tabs.ts +1 -0
- package/src/TextArea.ts +1 -0
- package/src/TextField.ts +1 -0
- package/src/TimelineItem.ts +1 -0
- package/src/TreeView.ts +1 -0
- package/src/components.css +2 -1077
- package/src/custom/calendar-card/index.tsx +108 -50
- package/src/custom/chip/index.tsx +63 -27
- package/src/custom/conversation/index.tsx +166 -55
- package/src/custom/event-card/index.tsx +195 -74
- package/src/custom/header/index.tsx +64 -33
- package/src/custom/lateral-nav/index.tsx +93 -38
- package/src/custom/logo/index.tsx +41 -39
- package/src/custom/nav-header/index.tsx +89 -25
- package/src/custom/page-layout/index.tsx +23 -19
- package/src/custom/profile-card/index.tsx +94 -35
- package/src/custom/project-card/index.tsx +57 -40
- package/src/custom/timeline-item/index.tsx +91 -48
- package/src/font-faces.css +1 -0
- package/src/index.ts +8 -322
- package/src/style/runtime.ts +2 -0
- package/src/style.ts +5 -0
- package/src/styles.css +6 -450
- package/src/theme.css +2 -101
- package/src/vite.ts +164 -0
- package/src/viviana-tokens.css +318 -0
- package/dist/alert/index.d.ts +0 -12
- package/dist/alert/index.d.ts.map +0 -1
- package/dist/autocomplete/index.d.ts +0 -89
- package/dist/autocomplete/index.d.ts.map +0 -1
- package/dist/avatar/index.d.ts +0 -17
- package/dist/avatar/index.d.ts.map +0 -1
- package/dist/badge/index.d.ts +0 -12
- package/dist/badge/index.d.ts.map +0 -1
- package/dist/breadcrumbs/index.d.ts +0 -38
- package/dist/breadcrumbs/index.d.ts.map +0 -1
- package/dist/button/Button.d.ts +0 -19
- package/dist/button/Button.d.ts.map +0 -1
- package/dist/button/index.d.ts +0 -3
- package/dist/button/index.d.ts.map +0 -1
- package/dist/button/types.d.ts +0 -23
- package/dist/button/types.d.ts.map +0 -1
- package/dist/calendar/DateField.d.ts +0 -47
- package/dist/calendar/DateField.d.ts.map +0 -1
- package/dist/calendar/DatePicker.d.ts +0 -48
- package/dist/calendar/DatePicker.d.ts.map +0 -1
- package/dist/calendar/RangeCalendar.d.ts +0 -42
- package/dist/calendar/RangeCalendar.d.ts.map +0 -1
- package/dist/calendar/TimeField.d.ts +0 -44
- package/dist/calendar/TimeField.d.ts.map +0 -1
- package/dist/calendar/index.d.ts +0 -50
- package/dist/calendar/index.d.ts.map +0 -1
- package/dist/checkbox/index.d.ts +0 -43
- package/dist/checkbox/index.d.ts.map +0 -1
- package/dist/color/index.d.ts +0 -228
- package/dist/color/index.d.ts.map +0 -1
- package/dist/combobox/index.d.ts +0 -81
- package/dist/combobox/index.d.ts.map +0 -1
- package/dist/dialog/Dialog.d.ts +0 -67
- package/dist/dialog/Dialog.d.ts.map +0 -1
- package/dist/dialog/index.d.ts +0 -3
- package/dist/dialog/index.d.ts.map +0 -1
- package/dist/disclosure/index.d.ts +0 -84
- package/dist/disclosure/index.d.ts.map +0 -1
- package/dist/gridlist/index.d.ts +0 -92
- package/dist/gridlist/index.d.ts.map +0 -1
- package/dist/icon/icons/GitHubIcon.d.ts +0 -7
- package/dist/icon/icons/GitHubIcon.d.ts.map +0 -1
- package/dist/icon/index.d.ts +0 -28
- package/dist/icon/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -7
- package/dist/index.ssr.js +0 -6631
- package/dist/index.ssr.js.map +0 -7
- package/dist/landmark/index.d.ts +0 -83
- package/dist/landmark/index.d.ts.map +0 -1
- package/dist/link/index.d.ts +0 -39
- package/dist/link/index.d.ts.map +0 -1
- package/dist/listbox/index.d.ts +0 -47
- package/dist/listbox/index.d.ts.map +0 -1
- package/dist/menu/index.d.ts +0 -74
- package/dist/menu/index.d.ts.map +0 -1
- package/dist/meter/index.d.ts +0 -49
- package/dist/meter/index.d.ts.map +0 -1
- package/dist/numberfield/index.d.ts +0 -50
- package/dist/numberfield/index.d.ts.map +0 -1
- package/dist/popover/index.d.ts +0 -85
- package/dist/popover/index.d.ts.map +0 -1
- package/dist/progress-bar/index.d.ts +0 -49
- package/dist/progress-bar/index.d.ts.map +0 -1
- package/dist/radio/index.d.ts +0 -46
- package/dist/radio/index.d.ts.map +0 -1
- package/dist/searchfield/index.d.ts +0 -44
- package/dist/searchfield/index.d.ts.map +0 -1
- package/dist/select/index.d.ts +0 -72
- package/dist/select/index.d.ts.map +0 -1
- package/dist/separator/index.d.ts +0 -42
- package/dist/separator/index.d.ts.map +0 -1
- package/dist/slider/index.d.ts +0 -53
- package/dist/slider/index.d.ts.map +0 -1
- package/dist/switch/ToggleSwitch.d.ts +0 -28
- package/dist/switch/ToggleSwitch.d.ts.map +0 -1
- package/dist/switch/index.d.ts +0 -26
- package/dist/switch/index.d.ts.map +0 -1
- package/dist/table/index.d.ts +0 -140
- package/dist/table/index.d.ts.map +0 -1
- package/dist/tabs/index.d.ts +0 -56
- package/dist/tabs/index.d.ts.map +0 -1
- package/dist/tag-group/index.d.ts +0 -80
- package/dist/tag-group/index.d.ts.map +0 -1
- package/dist/test-utils/index.d.ts +0 -44
- package/dist/test-utils/index.d.ts.map +0 -1
- package/dist/textfield/index.d.ts +0 -31
- package/dist/textfield/index.d.ts.map +0 -1
- package/dist/toast/index.d.ts +0 -101
- package/dist/toast/index.d.ts.map +0 -1
- package/dist/toolbar/index.d.ts +0 -42
- package/dist/toolbar/index.d.ts.map +0 -1
- package/dist/tooltip/index.d.ts +0 -78
- package/dist/tooltip/index.d.ts.map +0 -1
- package/dist/tree/index.d.ts +0 -99
- package/dist/tree/index.d.ts.map +0 -1
- package/src/alert/index.tsx +0 -48
- package/src/assets/favicon.png +0 -0
- package/src/assets/fire.gif +0 -0
- package/src/autocomplete/index.tsx +0 -313
- package/src/avatar/index.tsx +0 -75
- package/src/badge/index.tsx +0 -43
- package/src/breadcrumbs/index.tsx +0 -207
- package/src/button/Button.tsx +0 -74
- package/src/button/index.ts +0 -2
- package/src/button/types.ts +0 -24
- package/src/calendar/DateField.tsx +0 -200
- package/src/calendar/DatePicker.tsx +0 -298
- package/src/calendar/RangeCalendar.tsx +0 -236
- package/src/calendar/TimeField.tsx +0 -196
- package/src/calendar/index.tsx +0 -223
- package/src/checkbox/index.tsx +0 -257
- package/src/color/index.tsx +0 -687
- package/src/combobox/index.tsx +0 -383
- package/src/dialog/Dialog.tsx +0 -260
- package/src/dialog/index.tsx +0 -3
- package/src/disclosure/index.tsx +0 -307
- package/src/gridlist/index.tsx +0 -403
- package/src/icon/icons/GitHubIcon.tsx +0 -20
- package/src/icon/index.tsx +0 -48
- package/src/landmark/index.tsx +0 -231
- package/src/link/index.tsx +0 -130
- package/src/listbox/index.tsx +0 -231
- package/src/menu/index.tsx +0 -297
- package/src/meter/index.tsx +0 -163
- package/src/numberfield/index.tsx +0 -482
- package/src/popover/index.tsx +0 -260
- package/src/progress-bar/index.tsx +0 -169
- package/src/radio/index.tsx +0 -173
- package/src/searchfield/index.tsx +0 -453
- package/src/select/index.tsx +0 -349
- package/src/separator/index.tsx +0 -141
- package/src/slider/index.tsx +0 -382
- package/src/switch/ToggleSwitch.tsx +0 -112
- package/src/switch/index.tsx +0 -90
- package/src/table/index.tsx +0 -531
- package/src/tabs/index.tsx +0 -273
- package/src/tag-group/index.tsx +0 -240
- package/src/test-utils/index.ts +0 -40
- package/src/textfield/index.tsx +0 -211
- package/src/toast/index.tsx +0 -324
- package/src/toolbar/index.tsx +0 -108
- package/src/tooltip/index.tsx +0 -197
- package/src/tree/index.tsx +0 -494
package/src/checkbox/index.tsx
DELETED
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checkbox component for proyecto-viviana-ui
|
|
3
|
-
*
|
|
4
|
-
* A styled checkbox component built on top of solidaria-components.
|
|
5
|
-
* This component only handles styling - all behavior and accessibility
|
|
6
|
-
* is provided by the headless Checkbox from solidaria-components.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { type JSX, splitProps, mergeProps as solidMergeProps, Show } from 'solid-js'
|
|
10
|
-
import {
|
|
11
|
-
Checkbox as HeadlessCheckbox,
|
|
12
|
-
CheckboxGroup as HeadlessCheckboxGroup,
|
|
13
|
-
type CheckboxProps as HeadlessCheckboxProps,
|
|
14
|
-
type CheckboxGroupProps as HeadlessCheckboxGroupProps,
|
|
15
|
-
type CheckboxRenderProps,
|
|
16
|
-
type CheckboxGroupRenderProps,
|
|
17
|
-
} from '@proyecto-viviana/solidaria-components'
|
|
18
|
-
|
|
19
|
-
// ============================================
|
|
20
|
-
// TYPES
|
|
21
|
-
// ============================================
|
|
22
|
-
|
|
23
|
-
export type CheckboxSize = 'sm' | 'md' | 'lg'
|
|
24
|
-
|
|
25
|
-
export interface CheckboxProps extends Omit<HeadlessCheckboxProps, 'class' | 'children' | 'style'> {
|
|
26
|
-
/** The size of the checkbox. */
|
|
27
|
-
size?: CheckboxSize
|
|
28
|
-
/** Additional CSS class name. */
|
|
29
|
-
class?: string
|
|
30
|
-
/** Label text for the checkbox. */
|
|
31
|
-
children?: JSX.Element
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface CheckboxGroupProps extends Omit<HeadlessCheckboxGroupProps, 'class' | 'children' | 'style'> {
|
|
35
|
-
/** Additional CSS class name. */
|
|
36
|
-
class?: string
|
|
37
|
-
/** Children checkboxes. */
|
|
38
|
-
children?: JSX.Element
|
|
39
|
-
/** Label for the group. */
|
|
40
|
-
label?: string
|
|
41
|
-
/** Description for the group. */
|
|
42
|
-
description?: string
|
|
43
|
-
/** Error message when invalid. */
|
|
44
|
-
errorMessage?: string
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// ============================================
|
|
48
|
-
// STYLES
|
|
49
|
-
// ============================================
|
|
50
|
-
|
|
51
|
-
const sizeStyles = {
|
|
52
|
-
sm: {
|
|
53
|
-
box: 'h-4 w-4',
|
|
54
|
-
icon: 'h-3 w-3',
|
|
55
|
-
label: 'text-sm',
|
|
56
|
-
},
|
|
57
|
-
md: {
|
|
58
|
-
box: 'h-5 w-5',
|
|
59
|
-
icon: 'h-3.5 w-3.5',
|
|
60
|
-
label: 'text-base',
|
|
61
|
-
},
|
|
62
|
-
lg: {
|
|
63
|
-
box: 'h-6 w-6',
|
|
64
|
-
icon: 'h-4 w-4',
|
|
65
|
-
label: 'text-lg',
|
|
66
|
-
},
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// ============================================
|
|
70
|
-
// ICONS
|
|
71
|
-
// ============================================
|
|
72
|
-
|
|
73
|
-
function CheckIcon(props: { class?: string }) {
|
|
74
|
-
return (
|
|
75
|
-
<svg
|
|
76
|
-
class={props.class}
|
|
77
|
-
viewBox="0 0 12 10"
|
|
78
|
-
fill="none"
|
|
79
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
80
|
-
>
|
|
81
|
-
<path
|
|
82
|
-
d="M1 5L4.5 8.5L11 1"
|
|
83
|
-
stroke="currentColor"
|
|
84
|
-
stroke-width="2"
|
|
85
|
-
stroke-linecap="round"
|
|
86
|
-
stroke-linejoin="round"
|
|
87
|
-
/>
|
|
88
|
-
</svg>
|
|
89
|
-
)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function IndeterminateIcon(props: { class?: string }) {
|
|
93
|
-
return (
|
|
94
|
-
<svg
|
|
95
|
-
class={props.class}
|
|
96
|
-
viewBox="0 0 12 2"
|
|
97
|
-
fill="none"
|
|
98
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
99
|
-
>
|
|
100
|
-
<path
|
|
101
|
-
d="M1 1H11"
|
|
102
|
-
stroke="currentColor"
|
|
103
|
-
stroke-width="2"
|
|
104
|
-
stroke-linecap="round"
|
|
105
|
-
/>
|
|
106
|
-
</svg>
|
|
107
|
-
)
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// ============================================
|
|
111
|
-
// CHECKBOX COMPONENT
|
|
112
|
-
// ============================================
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* A checkbox allows users to select one or more items from a set.
|
|
116
|
-
*
|
|
117
|
-
* Built on solidaria-components Checkbox for full accessibility support.
|
|
118
|
-
*/
|
|
119
|
-
export function Checkbox(props: CheckboxProps): JSX.Element {
|
|
120
|
-
const defaultProps: Partial<CheckboxProps> = {
|
|
121
|
-
size: 'md',
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const merged = solidMergeProps(defaultProps, props)
|
|
125
|
-
|
|
126
|
-
const [local, headlessProps] = splitProps(merged, [
|
|
127
|
-
'size',
|
|
128
|
-
'class',
|
|
129
|
-
'children',
|
|
130
|
-
])
|
|
131
|
-
|
|
132
|
-
const size = () => sizeStyles[local.size!]
|
|
133
|
-
|
|
134
|
-
// Generate class based on render props
|
|
135
|
-
const getClassName = (renderProps: CheckboxRenderProps): string => {
|
|
136
|
-
const base = 'inline-flex items-center gap-2 cursor-pointer'
|
|
137
|
-
const disabledClass = renderProps.isDisabled ? 'cursor-not-allowed opacity-50' : ''
|
|
138
|
-
const custom = local.class || ''
|
|
139
|
-
return [base, disabledClass, custom].filter(Boolean).join(' ')
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return (
|
|
143
|
-
<HeadlessCheckbox
|
|
144
|
-
{...headlessProps}
|
|
145
|
-
class={getClassName}
|
|
146
|
-
>
|
|
147
|
-
{(renderProps: CheckboxRenderProps) => {
|
|
148
|
-
const boxClasses = () => {
|
|
149
|
-
const base = 'relative flex items-center justify-center rounded border-2 transition-all duration-200'
|
|
150
|
-
const sizeClass = size().box
|
|
151
|
-
|
|
152
|
-
let colorClass: string
|
|
153
|
-
if (renderProps.isDisabled) {
|
|
154
|
-
colorClass = 'border-bg-300 bg-bg-200'
|
|
155
|
-
} else if (renderProps.isSelected || renderProps.isIndeterminate) {
|
|
156
|
-
colorClass = 'border-accent bg-accent'
|
|
157
|
-
} else {
|
|
158
|
-
colorClass = 'border-primary-600 bg-transparent hover:border-accent-300'
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const focusClass = renderProps.isFocusVisible
|
|
162
|
-
? 'ring-2 ring-accent-300 ring-offset-2 ring-offset-bg-400'
|
|
163
|
-
: ''
|
|
164
|
-
const cursorClass = renderProps.isDisabled ? 'cursor-not-allowed' : 'cursor-pointer'
|
|
165
|
-
|
|
166
|
-
return [base, sizeClass, colorClass, focusClass, cursorClass].filter(Boolean).join(' ')
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const iconClasses = () => {
|
|
170
|
-
const base = 'text-white transition-opacity duration-200'
|
|
171
|
-
const sizeClass = size().icon
|
|
172
|
-
const visibilityClass = (renderProps.isSelected || renderProps.isIndeterminate)
|
|
173
|
-
? 'opacity-100'
|
|
174
|
-
: 'opacity-0'
|
|
175
|
-
|
|
176
|
-
return [base, sizeClass, visibilityClass].filter(Boolean).join(' ')
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const labelClasses = () => {
|
|
180
|
-
const base = 'text-primary-200'
|
|
181
|
-
const sizeClass = size().label
|
|
182
|
-
const disabledClass = renderProps.isDisabled ? 'opacity-50' : ''
|
|
183
|
-
|
|
184
|
-
return [base, sizeClass, disabledClass].filter(Boolean).join(' ')
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return (
|
|
188
|
-
<>
|
|
189
|
-
<span class={boxClasses()}>
|
|
190
|
-
<Show
|
|
191
|
-
when={!renderProps.isIndeterminate}
|
|
192
|
-
fallback={<IndeterminateIcon class={iconClasses()} />}
|
|
193
|
-
>
|
|
194
|
-
<CheckIcon class={iconClasses()} />
|
|
195
|
-
</Show>
|
|
196
|
-
</span>
|
|
197
|
-
<Show when={props.children}>
|
|
198
|
-
<span class={labelClasses()}>{props.children}</span>
|
|
199
|
-
</Show>
|
|
200
|
-
</>
|
|
201
|
-
)
|
|
202
|
-
}}
|
|
203
|
-
</HeadlessCheckbox>
|
|
204
|
-
)
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// ============================================
|
|
208
|
-
// CHECKBOX GROUP COMPONENT
|
|
209
|
-
// ============================================
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* A checkbox group allows users to select multiple items from a list.
|
|
213
|
-
*
|
|
214
|
-
* Built on solidaria-components CheckboxGroup for full accessibility support.
|
|
215
|
-
*/
|
|
216
|
-
export function CheckboxGroup(props: CheckboxGroupProps): JSX.Element {
|
|
217
|
-
const [local, headlessProps] = splitProps(props, [
|
|
218
|
-
'class',
|
|
219
|
-
'label',
|
|
220
|
-
'description',
|
|
221
|
-
'errorMessage',
|
|
222
|
-
])
|
|
223
|
-
|
|
224
|
-
// Generate class based on render props
|
|
225
|
-
const getClassName = (renderProps: CheckboxGroupRenderProps): string => {
|
|
226
|
-
const base = 'flex flex-col gap-2'
|
|
227
|
-
const disabledClass = renderProps.isDisabled ? 'opacity-50' : ''
|
|
228
|
-
const custom = local.class || ''
|
|
229
|
-
return [base, disabledClass, custom].filter(Boolean).join(' ')
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// Render children function for the headless component
|
|
233
|
-
const renderChildren = (renderProps: CheckboxGroupRenderProps) => (
|
|
234
|
-
<>
|
|
235
|
-
<Show when={local.label}>
|
|
236
|
-
<span class="text-sm font-medium text-primary-200">{local.label}</span>
|
|
237
|
-
</Show>
|
|
238
|
-
<div class="flex flex-col gap-2">
|
|
239
|
-
{props.children}
|
|
240
|
-
</div>
|
|
241
|
-
<Show when={local.description && !renderProps.isInvalid}>
|
|
242
|
-
<span class="text-sm text-primary-400">{local.description}</span>
|
|
243
|
-
</Show>
|
|
244
|
-
<Show when={local.errorMessage && renderProps.isInvalid}>
|
|
245
|
-
<span class="text-sm text-danger-400">{local.errorMessage}</span>
|
|
246
|
-
</Show>
|
|
247
|
-
</>
|
|
248
|
-
)
|
|
249
|
-
|
|
250
|
-
return (
|
|
251
|
-
<HeadlessCheckboxGroup
|
|
252
|
-
{...headlessProps}
|
|
253
|
-
class={getClassName}
|
|
254
|
-
children={renderChildren as any}
|
|
255
|
-
/>
|
|
256
|
-
)
|
|
257
|
-
}
|