@pickle-ui/react 0.0.0-stage → 1.0.0-beta.3
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/README.md +490 -2
- package/dist/components/Alert.d.ts +38 -0
- package/dist/components/Alert.d.ts.map +1 -0
- package/dist/components/Alert.js +54 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/AlertDialog.d.ts +41 -0
- package/dist/components/AlertDialog.d.ts.map +1 -0
- package/dist/components/AlertDialog.js +47 -0
- package/dist/components/AlertDialog.js.map +1 -0
- package/dist/components/Avatar.d.ts +18 -0
- package/dist/components/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar.js +34 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.d.ts +12 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +37 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Button.d.ts +19 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +66 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Card.d.ts +27 -0
- package/dist/components/Card.d.ts.map +1 -0
- package/dist/components/Card.js +34 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Dialog.d.ts +38 -0
- package/dist/components/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog.js +41 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/Flex.d.ts +22 -0
- package/dist/components/Flex.d.ts.map +1 -0
- package/dist/components/Flex.js +20 -0
- package/dist/components/Flex.js.map +1 -0
- package/dist/components/Grid.d.ts +66 -0
- package/dist/components/Grid.d.ts.map +1 -0
- package/dist/components/Grid.js +63 -0
- package/dist/components/Grid.js.map +1 -0
- package/dist/components/Group.d.ts +20 -0
- package/dist/components/Group.d.ts.map +1 -0
- package/dist/components/Group.js +43 -0
- package/dist/components/Group.js.map +1 -0
- package/dist/components/Menu.d.ts +53 -0
- package/dist/components/Menu.d.ts.map +1 -0
- package/dist/components/Menu.js +78 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Popover.d.ts +27 -0
- package/dist/components/Popover.d.ts.map +1 -0
- package/dist/components/Popover.js +34 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.d.ts +23 -0
- package/dist/components/Progress.d.ts.map +1 -0
- package/dist/components/Progress.js +26 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/ScrollArea.d.ts +32 -0
- package/dist/components/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea.js +36 -0
- package/dist/components/ScrollArea.js.map +1 -0
- package/dist/components/Separator.d.ts +7 -0
- package/dist/components/Separator.d.ts.map +1 -0
- package/dist/components/Separator.js +8 -0
- package/dist/components/Separator.js.map +1 -0
- package/dist/components/Sidebar.d.ts +35 -0
- package/dist/components/Sidebar.d.ts.map +1 -0
- package/dist/components/Sidebar.js +45 -0
- package/dist/components/Sidebar.js.map +1 -0
- package/dist/components/Spinner.d.ts +11 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +13 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Table.d.ts +32 -0
- package/dist/components/Table.d.ts.map +1 -0
- package/dist/components/Table.js +37 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Text.d.ts +14 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +50 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/Toast.d.ts +39 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/Toast.js +97 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Tooltip.d.ts +18 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +22 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/XStack.d.ts +6 -0
- package/dist/components/XStack.d.ts.map +1 -0
- package/dist/components/XStack.js +8 -0
- package/dist/components/XStack.js.map +1 -0
- package/dist/components/YStack.d.ts +6 -0
- package/dist/components/YStack.d.ts.map +1 -0
- package/dist/components/YStack.js +8 -0
- package/dist/components/YStack.js.map +1 -0
- package/dist/components/_internal/VisuallyHiddenInput.d.ts +11 -0
- package/dist/components/_internal/VisuallyHiddenInput.d.ts.map +1 -0
- package/dist/components/_internal/VisuallyHiddenInput.js +105 -0
- package/dist/components/_internal/VisuallyHiddenInput.js.map +1 -0
- package/dist/components/_internal/dialog-styles.d.ts +15 -0
- package/dist/components/_internal/dialog-styles.d.ts.map +1 -0
- package/dist/components/_internal/dialog-styles.js +27 -0
- package/dist/components/_internal/dialog-styles.js.map +1 -0
- package/dist/components/_internal/layout.d.ts +46 -0
- package/dist/components/_internal/layout.d.ts.map +1 -0
- package/dist/components/_internal/layout.js +72 -0
- package/dist/components/_internal/layout.js.map +1 -0
- package/dist/components/form/Checkbox.d.ts +19 -0
- package/dist/components/form/Checkbox.d.ts.map +1 -0
- package/dist/components/form/Checkbox.js +27 -0
- package/dist/components/form/Checkbox.js.map +1 -0
- package/dist/components/form/ColorPicker.d.ts +25 -0
- package/dist/components/form/ColorPicker.d.ts.map +1 -0
- package/dist/components/form/ColorPicker.js +14 -0
- package/dist/components/form/ColorPicker.js.map +1 -0
- package/dist/components/form/ColorPickerPrimitive.d.ts +65 -0
- package/dist/components/form/ColorPickerPrimitive.d.ts.map +1 -0
- package/dist/components/form/ColorPickerPrimitive.js +486 -0
- package/dist/components/form/ColorPickerPrimitive.js.map +1 -0
- package/dist/components/form/Combobox.d.ts +86 -0
- package/dist/components/form/Combobox.d.ts.map +1 -0
- package/dist/components/form/Combobox.js +198 -0
- package/dist/components/form/Combobox.js.map +1 -0
- package/dist/components/form/Form.context.d.ts +28 -0
- package/dist/components/form/Form.context.d.ts.map +1 -0
- package/dist/components/form/Form.context.js +56 -0
- package/dist/components/form/Form.context.js.map +1 -0
- package/dist/components/form/Form.d.ts +68 -0
- package/dist/components/form/Form.d.ts.map +1 -0
- package/dist/components/form/Form.js +32 -0
- package/dist/components/form/Form.js.map +1 -0
- package/dist/components/form/FormCheckbox.d.ts +10 -0
- package/dist/components/form/FormCheckbox.d.ts.map +1 -0
- package/dist/components/form/FormCheckbox.js +24 -0
- package/dist/components/form/FormCheckbox.js.map +1 -0
- package/dist/components/form/FormCombobox.d.ts +28 -0
- package/dist/components/form/FormCombobox.d.ts.map +1 -0
- package/dist/components/form/FormCombobox.js +50 -0
- package/dist/components/form/FormCombobox.js.map +1 -0
- package/dist/components/form/FormDescription.d.ts +7 -0
- package/dist/components/form/FormDescription.d.ts.map +1 -0
- package/dist/components/form/FormDescription.js +9 -0
- package/dist/components/form/FormDescription.js.map +1 -0
- package/dist/components/form/FormError.d.ts +7 -0
- package/dist/components/form/FormError.d.ts.map +1 -0
- package/dist/components/form/FormError.js +9 -0
- package/dist/components/form/FormError.js.map +1 -0
- package/dist/components/form/FormField.d.ts +13 -0
- package/dist/components/form/FormField.d.ts.map +1 -0
- package/dist/components/form/FormField.js +45 -0
- package/dist/components/form/FormField.js.map +1 -0
- package/dist/components/form/FormInput.d.ts +8 -0
- package/dist/components/form/FormInput.d.ts.map +1 -0
- package/dist/components/form/FormInput.js +17 -0
- package/dist/components/form/FormInput.js.map +1 -0
- package/dist/components/form/FormInputGroup.d.ts +7 -0
- package/dist/components/form/FormInputGroup.d.ts.map +1 -0
- package/dist/components/form/FormInputGroup.js +30 -0
- package/dist/components/form/FormInputGroup.js.map +1 -0
- package/dist/components/form/FormLabel.d.ts +7 -0
- package/dist/components/form/FormLabel.d.ts.map +1 -0
- package/dist/components/form/FormLabel.js +9 -0
- package/dist/components/form/FormLabel.js.map +1 -0
- package/dist/components/form/FormRadioGroup.d.ts +14 -0
- package/dist/components/form/FormRadioGroup.d.ts.map +1 -0
- package/dist/components/form/FormRadioGroup.js +25 -0
- package/dist/components/form/FormRadioGroup.js.map +1 -0
- package/dist/components/form/FormRoot.d.ts +10 -0
- package/dist/components/form/FormRoot.d.ts.map +1 -0
- package/dist/components/form/FormRoot.js +10 -0
- package/dist/components/form/FormRoot.js.map +1 -0
- package/dist/components/form/FormSelect.d.ts +19 -0
- package/dist/components/form/FormSelect.d.ts.map +1 -0
- package/dist/components/form/FormSelect.js +34 -0
- package/dist/components/form/FormSelect.js.map +1 -0
- package/dist/components/form/FormSwitch.d.ts +10 -0
- package/dist/components/form/FormSwitch.d.ts.map +1 -0
- package/dist/components/form/FormSwitch.js +24 -0
- package/dist/components/form/FormSwitch.js.map +1 -0
- package/dist/components/form/FormTextarea.d.ts +8 -0
- package/dist/components/form/FormTextarea.d.ts.map +1 -0
- package/dist/components/form/FormTextarea.js +13 -0
- package/dist/components/form/FormTextarea.js.map +1 -0
- package/dist/components/form/Input.d.ts +14 -0
- package/dist/components/form/Input.d.ts.map +1 -0
- package/dist/components/form/Input.js +22 -0
- package/dist/components/form/Input.js.map +1 -0
- package/dist/components/form/InputGroup.d.ts +26 -0
- package/dist/components/form/InputGroup.d.ts.map +1 -0
- package/dist/components/form/InputGroup.js +58 -0
- package/dist/components/form/InputGroup.js.map +1 -0
- package/dist/components/form/RadioGroup.d.ts +23 -0
- package/dist/components/form/RadioGroup.d.ts.map +1 -0
- package/dist/components/form/RadioGroup.js +30 -0
- package/dist/components/form/RadioGroup.js.map +1 -0
- package/dist/components/form/Select.d.ts +42 -0
- package/dist/components/form/Select.d.ts.map +1 -0
- package/dist/components/form/Select.js +68 -0
- package/dist/components/form/Select.js.map +1 -0
- package/dist/components/form/Slider.d.ts +37 -0
- package/dist/components/form/Slider.d.ts.map +1 -0
- package/dist/components/form/Slider.js +35 -0
- package/dist/components/form/Slider.js.map +1 -0
- package/dist/components/form/Switch.d.ts +23 -0
- package/dist/components/form/Switch.d.ts.map +1 -0
- package/dist/components/form/Switch.js +21 -0
- package/dist/components/form/Switch.js.map +1 -0
- package/dist/components/form/Textarea.d.ts +16 -0
- package/dist/components/form/Textarea.d.ts.map +1 -0
- package/dist/components/form/Textarea.js +12 -0
- package/dist/components/form/Textarea.js.map +1 -0
- package/dist/entries/alert-dialog.d.ts +3 -0
- package/dist/entries/alert-dialog.d.ts.map +1 -0
- package/dist/entries/alert-dialog.js +2 -0
- package/dist/entries/alert-dialog.js.map +1 -0
- package/dist/entries/alert.d.ts +3 -0
- package/dist/entries/alert.d.ts.map +1 -0
- package/dist/entries/alert.js +2 -0
- package/dist/entries/alert.js.map +1 -0
- package/dist/entries/avatar.d.ts +3 -0
- package/dist/entries/avatar.d.ts.map +1 -0
- package/dist/entries/avatar.js +2 -0
- package/dist/entries/avatar.js.map +1 -0
- package/dist/entries/badge.d.ts +3 -0
- package/dist/entries/badge.d.ts.map +1 -0
- package/dist/entries/badge.js +2 -0
- package/dist/entries/badge.js.map +1 -0
- package/dist/entries/button.d.ts +3 -0
- package/dist/entries/button.d.ts.map +1 -0
- package/dist/entries/button.js +2 -0
- package/dist/entries/button.js.map +1 -0
- package/dist/entries/card.d.ts +3 -0
- package/dist/entries/card.d.ts.map +1 -0
- package/dist/entries/card.js +2 -0
- package/dist/entries/card.js.map +1 -0
- package/dist/entries/checkbox.d.ts +3 -0
- package/dist/entries/checkbox.d.ts.map +1 -0
- package/dist/entries/checkbox.js +2 -0
- package/dist/entries/checkbox.js.map +1 -0
- package/dist/entries/cn.d.ts +3 -0
- package/dist/entries/cn.d.ts.map +1 -0
- package/dist/entries/cn.js +2 -0
- package/dist/entries/cn.js.map +1 -0
- package/dist/entries/color-picker.d.ts +3 -0
- package/dist/entries/color-picker.d.ts.map +1 -0
- package/dist/entries/color-picker.js +2 -0
- package/dist/entries/color-picker.js.map +1 -0
- package/dist/entries/combobox.d.ts +3 -0
- package/dist/entries/combobox.d.ts.map +1 -0
- package/dist/entries/combobox.js +2 -0
- package/dist/entries/combobox.js.map +1 -0
- package/dist/entries/dialog.d.ts +3 -0
- package/dist/entries/dialog.d.ts.map +1 -0
- package/dist/entries/dialog.js +2 -0
- package/dist/entries/dialog.js.map +1 -0
- package/dist/entries/flex.d.ts +3 -0
- package/dist/entries/flex.d.ts.map +1 -0
- package/dist/entries/flex.js +2 -0
- package/dist/entries/flex.js.map +1 -0
- package/dist/entries/form.d.ts +3 -0
- package/dist/entries/form.d.ts.map +1 -0
- package/dist/entries/form.js +2 -0
- package/dist/entries/form.js.map +1 -0
- package/dist/entries/grid.d.ts +3 -0
- package/dist/entries/grid.d.ts.map +1 -0
- package/dist/entries/grid.js +2 -0
- package/dist/entries/grid.js.map +1 -0
- package/dist/entries/group.d.ts +3 -0
- package/dist/entries/group.d.ts.map +1 -0
- package/dist/entries/group.js +2 -0
- package/dist/entries/group.js.map +1 -0
- package/dist/entries/input-group.d.ts +3 -0
- package/dist/entries/input-group.d.ts.map +1 -0
- package/dist/entries/input-group.js +2 -0
- package/dist/entries/input-group.js.map +1 -0
- package/dist/entries/input.d.ts +3 -0
- package/dist/entries/input.d.ts.map +1 -0
- package/dist/entries/input.js +2 -0
- package/dist/entries/input.js.map +1 -0
- package/dist/entries/menu.d.ts +3 -0
- package/dist/entries/menu.d.ts.map +1 -0
- package/dist/entries/menu.js +2 -0
- package/dist/entries/menu.js.map +1 -0
- package/dist/entries/popover.d.ts +3 -0
- package/dist/entries/popover.d.ts.map +1 -0
- package/dist/entries/popover.js +2 -0
- package/dist/entries/popover.js.map +1 -0
- package/dist/entries/progress.d.ts +3 -0
- package/dist/entries/progress.d.ts.map +1 -0
- package/dist/entries/progress.js +2 -0
- package/dist/entries/progress.js.map +1 -0
- package/dist/entries/radio-group.d.ts +3 -0
- package/dist/entries/radio-group.d.ts.map +1 -0
- package/dist/entries/radio-group.js +2 -0
- package/dist/entries/radio-group.js.map +1 -0
- package/dist/entries/scroll-area.d.ts +3 -0
- package/dist/entries/scroll-area.d.ts.map +1 -0
- package/dist/entries/scroll-area.js +2 -0
- package/dist/entries/scroll-area.js.map +1 -0
- package/dist/entries/select.d.ts +3 -0
- package/dist/entries/select.d.ts.map +1 -0
- package/dist/entries/select.js +2 -0
- package/dist/entries/select.js.map +1 -0
- package/dist/entries/separator.d.ts +3 -0
- package/dist/entries/separator.d.ts.map +1 -0
- package/dist/entries/separator.js +2 -0
- package/dist/entries/separator.js.map +1 -0
- package/dist/entries/sidebar.d.ts +3 -0
- package/dist/entries/sidebar.d.ts.map +1 -0
- package/dist/entries/sidebar.js +2 -0
- package/dist/entries/sidebar.js.map +1 -0
- package/dist/entries/slider.d.ts +3 -0
- package/dist/entries/slider.d.ts.map +1 -0
- package/dist/entries/slider.js +2 -0
- package/dist/entries/slider.js.map +1 -0
- package/dist/entries/spinner.d.ts +3 -0
- package/dist/entries/spinner.d.ts.map +1 -0
- package/dist/entries/spinner.js +2 -0
- package/dist/entries/spinner.js.map +1 -0
- package/dist/entries/switch.d.ts +3 -0
- package/dist/entries/switch.d.ts.map +1 -0
- package/dist/entries/switch.js +2 -0
- package/dist/entries/switch.js.map +1 -0
- package/dist/entries/table.d.ts +3 -0
- package/dist/entries/table.d.ts.map +1 -0
- package/dist/entries/table.js +2 -0
- package/dist/entries/table.js.map +1 -0
- package/dist/entries/text.d.ts +3 -0
- package/dist/entries/text.d.ts.map +1 -0
- package/dist/entries/text.js +2 -0
- package/dist/entries/text.js.map +1 -0
- package/dist/entries/textarea.d.ts +3 -0
- package/dist/entries/textarea.d.ts.map +1 -0
- package/dist/entries/textarea.js +2 -0
- package/dist/entries/textarea.js.map +1 -0
- package/dist/entries/theme.d.ts +3 -0
- package/dist/entries/theme.d.ts.map +1 -0
- package/dist/entries/theme.js +2 -0
- package/dist/entries/theme.js.map +1 -0
- package/dist/entries/toast.d.ts +3 -0
- package/dist/entries/toast.d.ts.map +1 -0
- package/dist/entries/toast.js +2 -0
- package/dist/entries/toast.js.map +1 -0
- package/dist/entries/tooltip.d.ts +3 -0
- package/dist/entries/tooltip.d.ts.map +1 -0
- package/dist/entries/tooltip.js +2 -0
- package/dist/entries/tooltip.js.map +1 -0
- package/dist/entries/x-stack.d.ts +3 -0
- package/dist/entries/x-stack.d.ts.map +1 -0
- package/dist/entries/x-stack.js +2 -0
- package/dist/entries/x-stack.js.map +1 -0
- package/dist/entries/y-stack.d.ts +3 -0
- package/dist/entries/y-stack.d.ts.map +1 -0
- package/dist/entries/y-stack.js +2 -0
- package/dist/entries/y-stack.js.map +1 -0
- package/dist/hooks/use-as-ref.d.ts +4 -0
- package/dist/hooks/use-as-ref.d.ts.map +1 -0
- package/dist/hooks/use-as-ref.js +11 -0
- package/dist/hooks/use-as-ref.js.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +4 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.js +4 -0
- package/dist/hooks/use-isomorphic-layout-effect.js.map +1 -0
- package/dist/hooks/use-lazy-ref.d.ts +4 -0
- package/dist/hooks/use-lazy-ref.d.ts.map +1 -0
- package/dist/hooks/use-lazy-ref.js +10 -0
- package/dist/hooks/use-lazy-ref.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/color.d.ts +42 -0
- package/dist/lib/color.d.ts.map +1 -0
- package/dist/lib/color.js +140 -0
- package/dist/lib/color.js.map +1 -0
- package/dist/lib/compose-refs.d.ts +14 -0
- package/dist/lib/compose-refs.d.ts.map +1 -0
- package/dist/lib/compose-refs.js +57 -0
- package/dist/lib/compose-refs.js.map +1 -0
- package/dist/lib/theme.d.ts +40 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/lib/theme.js +82 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/lib/utils.d.ts +8 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +18 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +2 -0
- package/dist/test-setup.js.map +1 -0
- package/package.json +107 -4
- package/src/base.css +99 -0
- package/src/components/Alert.stories.tsx +124 -0
- package/src/components/Alert.test.tsx +76 -0
- package/src/components/Alert.tsx +133 -0
- package/src/components/AlertDialog.stories.tsx +184 -0
- package/src/components/AlertDialog.test.tsx +142 -0
- package/src/components/AlertDialog.tsx +164 -0
- package/src/components/Avatar.stories.tsx +92 -0
- package/src/components/Avatar.test.tsx +26 -0
- package/src/components/Avatar.tsx +96 -0
- package/src/components/Badge.stories.tsx +52 -0
- package/src/components/Badge.test.tsx +35 -0
- package/src/components/Badge.tsx +65 -0
- package/src/components/Button.stories.tsx +171 -0
- package/src/components/Button.test.tsx +112 -0
- package/src/components/Button.tsx +114 -0
- package/src/components/Card.stories.tsx +62 -0
- package/src/components/Card.test.tsx +23 -0
- package/src/components/Card.tsx +129 -0
- package/src/components/Dialog.stories.tsx +133 -0
- package/src/components/Dialog.test.tsx +95 -0
- package/src/components/Dialog.tsx +147 -0
- package/src/components/Flex.stories.tsx +70 -0
- package/src/components/Flex.test.tsx +53 -0
- package/src/components/Flex.tsx +59 -0
- package/src/components/Grid.stories.tsx +70 -0
- package/src/components/Grid.test.tsx +46 -0
- package/src/components/Grid.tsx +114 -0
- package/src/components/Group.stories.tsx +130 -0
- package/src/components/Group.test.tsx +57 -0
- package/src/components/Group.tsx +92 -0
- package/src/components/Menu.stories.tsx +139 -0
- package/src/components/Menu.test.tsx +103 -0
- package/src/components/Menu.tsx +290 -0
- package/src/components/Popover.stories.tsx +72 -0
- package/src/components/Popover.tsx +117 -0
- package/src/components/Progress.stories.tsx +105 -0
- package/src/components/Progress.test.tsx +28 -0
- package/src/components/Progress.tsx +111 -0
- package/src/components/ScrollArea.stories.tsx +66 -0
- package/src/components/ScrollArea.test.tsx +32 -0
- package/src/components/ScrollArea.tsx +160 -0
- package/src/components/Separator.stories.tsx +39 -0
- package/src/components/Separator.test.tsx +24 -0
- package/src/components/Separator.tsx +27 -0
- package/src/components/Sidebar.stories.tsx +87 -0
- package/src/components/Sidebar.tsx +166 -0
- package/src/components/Spinner.stories.tsx +36 -0
- package/src/components/Spinner.test.tsx +25 -0
- package/src/components/Spinner.tsx +31 -0
- package/src/components/Table.stories.tsx +76 -0
- package/src/components/Table.tsx +151 -0
- package/src/components/Text.stories.tsx +148 -0
- package/src/components/Text.test.tsx +106 -0
- package/src/components/Text.tsx +85 -0
- package/src/components/Toast.stories.tsx +166 -0
- package/src/components/Toast.test.tsx +97 -0
- package/src/components/Toast.tsx +270 -0
- package/src/components/Tooltip.stories.tsx +116 -0
- package/src/components/Tooltip.test.tsx +51 -0
- package/src/components/Tooltip.tsx +80 -0
- package/src/components/XStack.stories.tsx +64 -0
- package/src/components/XStack.test.tsx +33 -0
- package/src/components/XStack.tsx +19 -0
- package/src/components/YStack.stories.tsx +65 -0
- package/src/components/YStack.test.tsx +31 -0
- package/src/components/YStack.tsx +19 -0
- package/src/components/_internal/Story.tsx +161 -0
- package/src/components/_internal/VisuallyHiddenInput.tsx +164 -0
- package/src/components/_internal/dialog-styles.ts +57 -0
- package/src/components/_internal/layout.ts +103 -0
- package/src/components/form/Checkbox.stories.tsx +78 -0
- package/src/components/form/Checkbox.test.tsx +107 -0
- package/src/components/form/Checkbox.tsx +95 -0
- package/src/components/form/ColorPicker.stories.tsx +160 -0
- package/src/components/form/ColorPicker.test.tsx +45 -0
- package/src/components/form/ColorPicker.tsx +55 -0
- package/src/components/form/ColorPickerPrimitive.test.tsx +14 -0
- package/src/components/form/ColorPickerPrimitive.tsx +1283 -0
- package/src/components/form/Combobox.stories.tsx +378 -0
- package/src/components/form/Combobox.test.tsx +334 -0
- package/src/components/form/Combobox.tsx +667 -0
- package/src/components/form/Form.context.ts +114 -0
- package/src/components/form/Form.stories.tsx +226 -0
- package/src/components/form/Form.test.tsx +293 -0
- package/src/components/form/Form.tsx +50 -0
- package/src/components/form/FormCheckbox.tsx +50 -0
- package/src/components/form/FormCombobox.tsx +92 -0
- package/src/components/form/FormDescription.tsx +21 -0
- package/src/components/form/FormError.tsx +21 -0
- package/src/components/form/FormField.tsx +109 -0
- package/src/components/form/FormInput.tsx +41 -0
- package/src/components/form/FormInputGroup.tsx +47 -0
- package/src/components/form/FormLabel.tsx +24 -0
- package/src/components/form/FormRadioGroup.tsx +46 -0
- package/src/components/form/FormRoot.tsx +41 -0
- package/src/components/form/FormSelect.tsx +60 -0
- package/src/components/form/FormSwitch.tsx +50 -0
- package/src/components/form/FormTextarea.tsx +34 -0
- package/src/components/form/Input.stories.tsx +114 -0
- package/src/components/form/Input.test.tsx +62 -0
- package/src/components/form/Input.tsx +93 -0
- package/src/components/form/InputGroup.stories.tsx +162 -0
- package/src/components/form/InputGroup.tsx +149 -0
- package/src/components/form/RadioGroup.stories.tsx +68 -0
- package/src/components/form/RadioGroup.test.tsx +171 -0
- package/src/components/form/RadioGroup.tsx +127 -0
- package/src/components/form/Select.stories.tsx +115 -0
- package/src/components/form/Select.test.tsx +115 -0
- package/src/components/form/Select.tsx +293 -0
- package/src/components/form/Slider.stories.tsx +121 -0
- package/src/components/form/Slider.test.tsx +33 -0
- package/src/components/form/Slider.tsx +200 -0
- package/src/components/form/Switch.stories.tsx +62 -0
- package/src/components/form/Switch.test.tsx +29 -0
- package/src/components/form/Switch.tsx +81 -0
- package/src/components/form/Textarea.stories.tsx +71 -0
- package/src/components/form/Textarea.test.tsx +31 -0
- package/src/components/form/Textarea.tsx +46 -0
- package/src/entries/alert-dialog.ts +11 -0
- package/src/entries/alert.ts +8 -0
- package/src/entries/avatar.ts +7 -0
- package/src/entries/badge.ts +2 -0
- package/src/entries/button.ts +2 -0
- package/src/entries/card.ts +10 -0
- package/src/entries/checkbox.ts +5 -0
- package/src/entries/cn.ts +2 -0
- package/src/entries/color-picker.ts +13 -0
- package/src/entries/combobox.ts +20 -0
- package/src/entries/dialog.ts +11 -0
- package/src/entries/entries.test.ts +65 -0
- package/src/entries/flex.ts +2 -0
- package/src/entries/form.ts +16 -0
- package/src/entries/grid.ts +2 -0
- package/src/entries/group.ts +6 -0
- package/src/entries/input-group.ts +8 -0
- package/src/entries/input.ts +2 -0
- package/src/entries/menu.ts +17 -0
- package/src/entries/popover.ts +10 -0
- package/src/entries/progress.ts +8 -0
- package/src/entries/radio-group.ts +5 -0
- package/src/entries/scroll-area.ts +10 -0
- package/src/entries/select.ts +12 -0
- package/src/entries/separator.ts +2 -0
- package/src/entries/sidebar.ts +13 -0
- package/src/entries/slider.ts +7 -0
- package/src/entries/spinner.ts +2 -0
- package/src/entries/switch.ts +2 -0
- package/src/entries/table.ts +11 -0
- package/src/entries/text.ts +2 -0
- package/src/entries/textarea.ts +2 -0
- package/src/entries/theme.ts +8 -0
- package/src/entries/toast.ts +2 -0
- package/src/entries/tooltip.ts +7 -0
- package/src/entries/x-stack.ts +2 -0
- package/src/entries/y-stack.ts +2 -0
- package/src/hooks/use-as-ref.ts +15 -0
- package/src/hooks/use-isomorphic-layout-effect.ts +6 -0
- package/src/hooks/use-lazy-ref.ts +13 -0
- package/src/index.ts +38 -0
- package/src/lib/color.test.ts +148 -0
- package/src/lib/color.ts +193 -0
- package/src/lib/compose-refs.ts +63 -0
- package/src/lib/theme.test.ts +64 -0
- package/src/lib/theme.ts +143 -0
- package/src/lib/utils.ts +25 -0
- package/src/public-api.test.ts +74 -0
- package/src/styles.css +2 -0
- package/src/test-setup.ts +1 -0
- package/src/theme.css +195 -0
package/src/lib/theme.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme generator: derives Pickle's brand-dependent tokens from a single
|
|
3
|
+
* primary color so consumers can theme the library without hand-writing CSS
|
|
4
|
+
* variables. Tokens that do not depend on the brand (neutrals, status colors)
|
|
5
|
+
* keep the values from `@pickle-ui/react/theme.css`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
clampChroma,
|
|
10
|
+
converter,
|
|
11
|
+
formatCss,
|
|
12
|
+
type Oklch,
|
|
13
|
+
parse,
|
|
14
|
+
wcagContrast,
|
|
15
|
+
} from 'culori';
|
|
16
|
+
|
|
17
|
+
type Theme = {
|
|
18
|
+
dark: ThemeVariables;
|
|
19
|
+
light: ThemeVariables;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
type ThemeCssOptions = {
|
|
23
|
+
darkSelector?: string;
|
|
24
|
+
lightSelector?: string;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
type ThemeFonts = {
|
|
28
|
+
heading?: string;
|
|
29
|
+
mono?: string;
|
|
30
|
+
sans?: string;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
type ThemeOptions = {
|
|
34
|
+
/** Font stacks, written to `--font-sans`, `--font-heading` and `--font-mono`. */
|
|
35
|
+
fonts?: ThemeFonts;
|
|
36
|
+
/** Brand color in any CSS notation (hex, rgb, hsl, oklch, …). */
|
|
37
|
+
primary: string;
|
|
38
|
+
/** Brand color for the dark scheme. Defaults to a lighter version of `primary`. */
|
|
39
|
+
primaryDark?: string;
|
|
40
|
+
/** Base radius, e.g. `'0.5rem'`. Every `rounded-*` scale derives from it. */
|
|
41
|
+
radius?: string;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type ThemeVariables = Record<`--${string}`, string>;
|
|
45
|
+
|
|
46
|
+
const toOklch = converter('oklch');
|
|
47
|
+
|
|
48
|
+
const LIGHT_FOREGROUND: Oklch = { c: 0, h: 0, l: 1, mode: 'oklch' };
|
|
49
|
+
const DARK_FOREGROUND: Oklch = { c: 0.006, h: 285.9, l: 0.21, mode: 'oklch' };
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Build the light and dark token sets for a brand color. Apply the result
|
|
53
|
+
* with `themeToCss` in a stylesheet, or spread `theme.light` / `theme.dark`
|
|
54
|
+
* as the `style` of a wrapper element.
|
|
55
|
+
*/
|
|
56
|
+
export function createTheme(options: ThemeOptions): Theme {
|
|
57
|
+
const primary = parseColor(options.primary, 'primary');
|
|
58
|
+
const primaryDark = options.primaryDark
|
|
59
|
+
? parseColor(options.primaryDark, 'primaryDark')
|
|
60
|
+
: lightenForDark(primary);
|
|
61
|
+
const shared = sharedVariables(options);
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
dark: { ...shared, ...brandVariables(primaryDark) },
|
|
65
|
+
light: { ...shared, ...brandVariables(primary) },
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Serialize a theme as CSS rules for the light and dark selectors. */
|
|
70
|
+
export function themeToCss(
|
|
71
|
+
theme: Theme,
|
|
72
|
+
{ darkSelector = '.dark', lightSelector = ':root' }: ThemeCssOptions = {},
|
|
73
|
+
): string {
|
|
74
|
+
const block = (selector: string, variables: ThemeVariables) =>
|
|
75
|
+
`${selector} {\n${Object.entries(variables)
|
|
76
|
+
.map(([name, value]) => ` ${name}: ${value};`)
|
|
77
|
+
.join('\n')}\n}`;
|
|
78
|
+
|
|
79
|
+
return `${block(lightSelector, theme.light)}\n\n${block(darkSelector, theme.dark)}\n`;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function brandVariables(primary: Oklch): ThemeVariables {
|
|
83
|
+
const foreground = foregroundFor(primary);
|
|
84
|
+
|
|
85
|
+
return {
|
|
86
|
+
'--primary': format(primary),
|
|
87
|
+
'--primary-foreground': format(foreground),
|
|
88
|
+
'--ring': format({ ...primary, c: primary.c * 0.6 }),
|
|
89
|
+
'--sidebar-primary': format(primary),
|
|
90
|
+
'--sidebar-primary-foreground': format(foreground),
|
|
91
|
+
'--sidebar-ring': format({ ...primary, c: primary.c * 0.6 }),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** White or near-black, whichever reads better on the given fill. */
|
|
96
|
+
function foregroundFor(fill: Oklch) {
|
|
97
|
+
return wcagContrast(fill, LIGHT_FOREGROUND) >=
|
|
98
|
+
wcagContrast(fill, DARK_FOREGROUND)
|
|
99
|
+
? LIGHT_FOREGROUND
|
|
100
|
+
: DARK_FOREGROUND;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function format(color: Oklch) {
|
|
104
|
+
return formatCss(clampChroma(color, 'oklch'));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/** Lift a brand color so it stays vivid on dark surfaces. */
|
|
108
|
+
function lightenForDark(color: Oklch): Oklch {
|
|
109
|
+
return {
|
|
110
|
+
...color,
|
|
111
|
+
c: color.c * 0.92,
|
|
112
|
+
l: Math.min(Math.max(color.l + 0.12, 0.6), 0.85),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function parseColor(value: string, name: string): Oklch {
|
|
117
|
+
const color = parse(value);
|
|
118
|
+
|
|
119
|
+
if (!color) {
|
|
120
|
+
throw new Error(`createTheme: ${name} is not a valid CSS color: ${value}`);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return toOklch(color);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function sharedVariables({ fonts, radius }: ThemeOptions): ThemeVariables {
|
|
127
|
+
const variables: ThemeVariables = {};
|
|
128
|
+
|
|
129
|
+
if (radius) variables['--radius'] = radius;
|
|
130
|
+
if (fonts?.sans) variables['--font-sans'] = fonts.sans;
|
|
131
|
+
if (fonts?.heading) variables['--font-heading'] = fonts.heading;
|
|
132
|
+
if (fonts?.mono) variables['--font-mono'] = fonts.mono;
|
|
133
|
+
|
|
134
|
+
return variables;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export type {
|
|
138
|
+
Theme,
|
|
139
|
+
ThemeCssOptions,
|
|
140
|
+
ThemeFonts,
|
|
141
|
+
ThemeOptions,
|
|
142
|
+
ThemeVariables,
|
|
143
|
+
};
|
package/src/lib/utils.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ClassValue, clsx } from 'clsx';
|
|
2
|
+
import { extendTailwindMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Teaches tailwind-merge Pickle's theme scales: `text-body`, `text-h1`, … are
|
|
6
|
+
* font sizes, so they must not be mistaken for text colors and dropped next
|
|
7
|
+
* to one.
|
|
8
|
+
*/
|
|
9
|
+
const twMerge = extendTailwindMerge({
|
|
10
|
+
extend: {
|
|
11
|
+
theme: {
|
|
12
|
+
text: ['body', 'code', 'h1', 'h2', 'h3', 'h4', 'lead', 'small'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Per-slot class overrides for components that render several parts from a
|
|
19
|
+
* single props object. Keys match the suffix of each part's `data-slot`.
|
|
20
|
+
*/
|
|
21
|
+
export type SlotClassNames<Slot extends string> = Partial<Record<Slot, string>>;
|
|
22
|
+
|
|
23
|
+
export function cn(...inputs: ClassValue[]) {
|
|
24
|
+
return twMerge(clsx(inputs));
|
|
25
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { readdirSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
|
|
6
|
+
import * as publicApi from './index';
|
|
7
|
+
|
|
8
|
+
// Guards the rules of "Public API" in AGENTS.md: one value per component,
|
|
9
|
+
// parts reached through the compound, and entries that mirror the index.
|
|
10
|
+
|
|
11
|
+
const NON_COMPONENT_EXPORTS = [
|
|
12
|
+
'badgeVariants',
|
|
13
|
+
'buttonVariants',
|
|
14
|
+
'cn',
|
|
15
|
+
'createTheme',
|
|
16
|
+
'textVariants',
|
|
17
|
+
'themeToCss',
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const entriesDir = join(dirname(fileURLToPath(import.meta.url)), 'entries');
|
|
21
|
+
const entryNames = readdirSync(entriesDir)
|
|
22
|
+
.filter((file) => file.endsWith('.ts') && !file.endsWith('.test.ts'))
|
|
23
|
+
.map((file) => file.replace(/\.ts$/, ''));
|
|
24
|
+
|
|
25
|
+
const exportNames = Object.keys(publicApi).sort();
|
|
26
|
+
|
|
27
|
+
describe('public API', () => {
|
|
28
|
+
it('only exports components and the allowed helpers', () => {
|
|
29
|
+
const unexpected = exportNames.filter(
|
|
30
|
+
(name) =>
|
|
31
|
+
!NON_COMPONENT_EXPORTS.includes(name) && !/^[A-Z][A-Za-z]*$/.test(name),
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
expect(unexpected).toEqual([]);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('does not export primitives or roots under their own names', () => {
|
|
38
|
+
expect(
|
|
39
|
+
exportNames.filter((name) => /(Primitive|Root)$/.test(name)),
|
|
40
|
+
).toEqual([]);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('does not export compound parts under parallel names', () => {
|
|
44
|
+
const parallel = exportNames.flatMap((name) => {
|
|
45
|
+
const value = publicApi[name as keyof typeof publicApi];
|
|
46
|
+
|
|
47
|
+
if (typeof value !== 'function') {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return Object.keys(value)
|
|
52
|
+
.map((part) => `${name}${part}`)
|
|
53
|
+
.filter((partName) => exportNames.includes(partName));
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
expect(parallel).toEqual([]);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('exports from the entries exactly what the index exports', async () => {
|
|
60
|
+
const entryExports = new Set<string>();
|
|
61
|
+
|
|
62
|
+
for (const name of entryNames) {
|
|
63
|
+
const module = (await import(
|
|
64
|
+
pathToFileURL(join(entriesDir, `${name}.ts`)).href
|
|
65
|
+
)) as Record<string, unknown>;
|
|
66
|
+
|
|
67
|
+
for (const key of Object.keys(module)) {
|
|
68
|
+
entryExports.add(key);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
expect([...entryExports].sort()).toEqual(exportNames);
|
|
73
|
+
});
|
|
74
|
+
});
|
package/src/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom/vitest';
|
package/src/theme.css
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pickle design tokens: Tailwind theme mapping plus light and dark values.
|
|
3
|
+
* Import this file alone to reuse the tokens without Pickle's base styles,
|
|
4
|
+
* or override any variable after importing `@pickle-ui/react/styles.css`.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@theme inline {
|
|
8
|
+
--font-sans: var(--font-sans);
|
|
9
|
+
--font-heading: var(--font-sans);
|
|
10
|
+
--font-mono: var(--font-mono);
|
|
11
|
+
--color-background: var(--background);
|
|
12
|
+
--color-foreground: var(--foreground);
|
|
13
|
+
--color-card: var(--card);
|
|
14
|
+
--color-card-foreground: var(--card-foreground);
|
|
15
|
+
--color-popover: var(--popover);
|
|
16
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
17
|
+
--color-primary: var(--primary);
|
|
18
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
19
|
+
--color-secondary: var(--secondary);
|
|
20
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
21
|
+
--color-muted: var(--muted);
|
|
22
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
23
|
+
--color-accent: var(--accent);
|
|
24
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
25
|
+
--color-destructive: var(--destructive);
|
|
26
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
27
|
+
--color-destructive-subtle: var(--destructive-subtle);
|
|
28
|
+
--color-destructive-subtle-foreground: var(--destructive-subtle-foreground);
|
|
29
|
+
--color-info: var(--info);
|
|
30
|
+
--color-info-foreground: var(--info-foreground);
|
|
31
|
+
--color-info-subtle: var(--info-subtle);
|
|
32
|
+
--color-info-subtle-foreground: var(--info-subtle-foreground);
|
|
33
|
+
--color-success: var(--success);
|
|
34
|
+
--color-success-foreground: var(--success-foreground);
|
|
35
|
+
--color-success-subtle: var(--success-subtle);
|
|
36
|
+
--color-success-subtle-foreground: var(--success-subtle-foreground);
|
|
37
|
+
--color-warning: var(--warning);
|
|
38
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
39
|
+
--color-warning-subtle: var(--warning-subtle);
|
|
40
|
+
--color-warning-subtle-foreground: var(--warning-subtle-foreground);
|
|
41
|
+
--color-border: var(--border);
|
|
42
|
+
--color-input: var(--input);
|
|
43
|
+
--color-ring: var(--ring);
|
|
44
|
+
--color-chart-1: var(--chart-1);
|
|
45
|
+
--color-chart-2: var(--chart-2);
|
|
46
|
+
--color-chart-3: var(--chart-3);
|
|
47
|
+
--color-chart-4: var(--chart-4);
|
|
48
|
+
--color-chart-5: var(--chart-5);
|
|
49
|
+
--color-sidebar: var(--sidebar);
|
|
50
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
51
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
52
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
53
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
54
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
55
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
56
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
57
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
58
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
59
|
+
--radius-lg: var(--radius);
|
|
60
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
61
|
+
--radius-2xl: calc(var(--radius) + 8px);
|
|
62
|
+
--animate-skeleton: skeleton 2s -1s infinite linear;
|
|
63
|
+
@keyframes skeleton {
|
|
64
|
+
to {
|
|
65
|
+
background-position: -200% 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:root {
|
|
71
|
+
--radius: 0.625rem;
|
|
72
|
+
--background: var(--color-white);
|
|
73
|
+
--foreground: var(--color-neutral-800);
|
|
74
|
+
--card: var(--color-white);
|
|
75
|
+
--card-foreground: var(--color-neutral-800);
|
|
76
|
+
--popover: var(--color-white);
|
|
77
|
+
--popover-foreground: var(--color-neutral-800);
|
|
78
|
+
--primary: var(--color-neutral-800);
|
|
79
|
+
--primary-foreground: var(--color-neutral-50);
|
|
80
|
+
--secondary: --alpha(var(--color-black) / 4%);
|
|
81
|
+
--secondary-foreground: var(--color-neutral-800);
|
|
82
|
+
--muted: --alpha(var(--color-black) / 4%);
|
|
83
|
+
--muted-foreground: color-mix(
|
|
84
|
+
in srgb,
|
|
85
|
+
var(--color-neutral-500) 90%,
|
|
86
|
+
var(--color-black)
|
|
87
|
+
);
|
|
88
|
+
--accent: --alpha(var(--color-black) / 4%);
|
|
89
|
+
--accent-foreground: var(--color-neutral-800);
|
|
90
|
+
--destructive: var(--color-red-500);
|
|
91
|
+
--destructive-foreground: var(--color-white);
|
|
92
|
+
--destructive-subtle: --alpha(var(--destructive) / 8%);
|
|
93
|
+
--destructive-subtle-foreground: var(--color-red-700);
|
|
94
|
+
--info: var(--color-blue-500);
|
|
95
|
+
--info-foreground: var(--color-white);
|
|
96
|
+
--info-subtle: --alpha(var(--info) / 8%);
|
|
97
|
+
--info-subtle-foreground: var(--color-blue-700);
|
|
98
|
+
--success: var(--color-emerald-500);
|
|
99
|
+
--success-foreground: var(--color-white);
|
|
100
|
+
--success-subtle: --alpha(var(--success) / 8%);
|
|
101
|
+
--success-subtle-foreground: var(--color-emerald-700);
|
|
102
|
+
--warning: var(--color-amber-500);
|
|
103
|
+
--warning-foreground: var(--color-amber-950);
|
|
104
|
+
--warning-subtle: --alpha(var(--warning) / 8%);
|
|
105
|
+
--warning-subtle-foreground: var(--color-amber-700);
|
|
106
|
+
--border: --alpha(var(--color-black) / 8%);
|
|
107
|
+
--input: --alpha(var(--color-black) / 10%);
|
|
108
|
+
--ring: var(--color-neutral-400);
|
|
109
|
+
--chart-1: var(--color-blue-600);
|
|
110
|
+
--chart-2: var(--color-emerald-600);
|
|
111
|
+
--chart-3: var(--color-amber-600);
|
|
112
|
+
--chart-4: var(--color-purple-600);
|
|
113
|
+
--chart-5: var(--color-rose-600);
|
|
114
|
+
--sidebar: var(--color-neutral-50);
|
|
115
|
+
--sidebar-foreground: color-mix(
|
|
116
|
+
in srgb,
|
|
117
|
+
var(--color-neutral-800) 64%,
|
|
118
|
+
var(--sidebar)
|
|
119
|
+
);
|
|
120
|
+
--sidebar-primary: var(--color-neutral-800);
|
|
121
|
+
--sidebar-primary-foreground: var(--color-neutral-50);
|
|
122
|
+
--sidebar-accent: --alpha(var(--color-black) / 4%);
|
|
123
|
+
--sidebar-accent-foreground: var(--color-neutral-800);
|
|
124
|
+
--sidebar-border: --alpha(var(--color-black) / 6%);
|
|
125
|
+
--sidebar-ring: var(--color-neutral-400);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.dark {
|
|
129
|
+
--background: color-mix(
|
|
130
|
+
in srgb,
|
|
131
|
+
var(--color-neutral-950) 96%,
|
|
132
|
+
var(--color-white)
|
|
133
|
+
);
|
|
134
|
+
--foreground: var(--color-neutral-100);
|
|
135
|
+
--card: color-mix(in srgb, var(--background) 98%, var(--color-white));
|
|
136
|
+
--card-foreground: var(--color-neutral-100);
|
|
137
|
+
--popover: color-mix(in srgb, var(--background) 96%, var(--color-white));
|
|
138
|
+
--popover-foreground: var(--color-neutral-100);
|
|
139
|
+
--primary: var(--color-neutral-100);
|
|
140
|
+
--primary-foreground: var(--color-neutral-800);
|
|
141
|
+
--secondary: --alpha(var(--color-white) / 4%);
|
|
142
|
+
--secondary-foreground: var(--color-neutral-100);
|
|
143
|
+
--muted: --alpha(var(--color-white) / 4%);
|
|
144
|
+
--muted-foreground: color-mix(
|
|
145
|
+
in srgb,
|
|
146
|
+
var(--color-neutral-500) 90%,
|
|
147
|
+
var(--color-white)
|
|
148
|
+
);
|
|
149
|
+
--accent: --alpha(var(--color-white) / 4%);
|
|
150
|
+
--accent-foreground: var(--color-neutral-100);
|
|
151
|
+
--destructive: color-mix(
|
|
152
|
+
in srgb,
|
|
153
|
+
var(--color-red-500) 90%,
|
|
154
|
+
var(--color-white)
|
|
155
|
+
);
|
|
156
|
+
--destructive-foreground: var(--color-white);
|
|
157
|
+
--destructive-subtle: --alpha(var(--destructive) / 16%);
|
|
158
|
+
--destructive-subtle-foreground: var(--color-red-400);
|
|
159
|
+
--info: var(--color-blue-500);
|
|
160
|
+
--info-foreground: var(--color-white);
|
|
161
|
+
--info-subtle: --alpha(var(--info) / 16%);
|
|
162
|
+
--info-subtle-foreground: var(--color-blue-400);
|
|
163
|
+
--success: var(--color-emerald-500);
|
|
164
|
+
--success-foreground: var(--color-white);
|
|
165
|
+
--success-subtle: --alpha(var(--success) / 16%);
|
|
166
|
+
--success-subtle-foreground: var(--color-emerald-400);
|
|
167
|
+
--warning: var(--color-amber-500);
|
|
168
|
+
--warning-foreground: var(--color-amber-950);
|
|
169
|
+
--warning-subtle: --alpha(var(--warning) / 16%);
|
|
170
|
+
--warning-subtle-foreground: var(--color-amber-400);
|
|
171
|
+
--border: --alpha(var(--color-white) / 6%);
|
|
172
|
+
--input: --alpha(var(--color-white) / 8%);
|
|
173
|
+
--ring: var(--color-neutral-500);
|
|
174
|
+
--chart-1: var(--color-blue-500);
|
|
175
|
+
--chart-2: var(--color-emerald-500);
|
|
176
|
+
--chart-3: var(--color-amber-500);
|
|
177
|
+
--chart-4: var(--color-purple-500);
|
|
178
|
+
--chart-5: var(--color-rose-500);
|
|
179
|
+
--sidebar: color-mix(
|
|
180
|
+
in srgb,
|
|
181
|
+
var(--color-neutral-950) 97%,
|
|
182
|
+
var(--color-white)
|
|
183
|
+
);
|
|
184
|
+
--sidebar-foreground: color-mix(
|
|
185
|
+
in srgb,
|
|
186
|
+
var(--color-neutral-100) 64%,
|
|
187
|
+
var(--sidebar)
|
|
188
|
+
);
|
|
189
|
+
--sidebar-primary: var(--color-neutral-100);
|
|
190
|
+
--sidebar-primary-foreground: var(--color-neutral-800);
|
|
191
|
+
--sidebar-accent: --alpha(var(--color-white) / 4%);
|
|
192
|
+
--sidebar-accent-foreground: var(--color-neutral-100);
|
|
193
|
+
--sidebar-border: --alpha(var(--color-white) / 5%);
|
|
194
|
+
--sidebar-ring: var(--color-neutral-500);
|
|
195
|
+
}
|