@boxcustodia/library 2.0.0-alpha.11 → 2.0.0-alpha.12
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/dist/index.css +1 -1
- package/package.json +4 -3
- package/src/__doc__/Changelog.mdx +6 -0
- package/src/__doc__/Components.mdx +73 -0
- package/src/__doc__/Examples.tsx +69 -0
- package/src/__doc__/Icons.mdx +41 -0
- package/src/__doc__/Intro.mdx +138 -0
- package/src/__doc__/MCP.mdx +71 -0
- package/src/__doc__/Migration.mdx +475 -0
- package/src/__doc__/Theme.mdx +132 -0
- package/src/__doc__/Types.mdx +252 -0
- package/src/components/alert/alert.stories.tsx +142 -0
- package/src/components/alert/alert.tsx +109 -0
- package/src/components/alert/index.ts +7 -0
- package/src/components/alert-dialog/alert-dialog.stories.tsx +173 -0
- package/src/components/alert-dialog/alert-dialog.test.tsx +49 -0
- package/src/components/alert-dialog/alert-dialog.tsx +265 -0
- package/src/components/alert-dialog/index.ts +1 -0
- package/src/components/auto-complete/auto-complete-primitives.tsx +155 -0
- package/src/components/auto-complete/auto-complete.stories.tsx +241 -0
- package/src/components/auto-complete/auto-complete.tsx +82 -0
- package/src/components/auto-complete/index.ts +2 -0
- package/src/components/avatar/avatar.stories.tsx +84 -0
- package/src/components/avatar/avatar.test.tsx +61 -0
- package/src/components/avatar/avatar.tsx +104 -0
- package/src/components/avatar/index.ts +1 -0
- package/src/components/background-image/background-image.stories.tsx +21 -0
- package/src/components/background-image/background-image.test.tsx +29 -0
- package/src/components/background-image/background-image.tsx +23 -0
- package/src/components/background-image/index.ts +1 -0
- package/src/components/button/button.stories.tsx +396 -0
- package/src/components/button/button.test.tsx +58 -0
- package/src/components/button/button.tsx +31 -0
- package/src/components/button/button.variants.ts +44 -0
- package/src/components/button/components/base-button.tsx +86 -0
- package/src/components/button/components/loader-overlay.tsx +21 -0
- package/src/components/button/components/loading-icon.tsx +47 -0
- package/src/components/button/index.ts +3 -0
- package/src/components/calendar/calendar.model.ts +86 -0
- package/src/components/calendar/calendar.stories.tsx +155 -0
- package/src/components/calendar/calendar.test.tsx +12 -0
- package/src/components/calendar/calendar.tsx +185 -0
- package/src/components/calendar/components/calendar-navigation.tsx +141 -0
- package/src/components/calendar/components/day.tsx +61 -0
- package/src/components/calendar/components/decade-view.tsx +45 -0
- package/src/components/calendar/components/index.ts +6 -0
- package/src/components/calendar/components/month-view.tsx +58 -0
- package/src/components/calendar/components/week-days.tsx +27 -0
- package/src/components/calendar/components/year-view.tsx +29 -0
- package/src/components/calendar/hooks/index.ts +4 -0
- package/src/components/calendar/hooks/use-calendar-navigation.ts +79 -0
- package/src/components/calendar/hooks/use-calendar.ts +90 -0
- package/src/components/calendar/hooks/use-multiple-calendar.ts +34 -0
- package/src/components/calendar/hooks/use-range-calendar.ts +91 -0
- package/src/components/calendar/hooks/use-single-calendar.ts +18 -0
- package/src/components/calendar/index.ts +1 -0
- package/src/components/calendar/utils/typeguards.ts +7 -0
- package/src/components/card/card.stories.tsx +116 -0
- package/src/components/card/card.tsx +74 -0
- package/src/components/card/index.ts +1 -0
- package/src/components/center/center.stories.tsx +81 -0
- package/src/components/center/center.tsx +24 -0
- package/src/components/center/index.ts +1 -0
- package/src/components/checkbox/checkbox.stories.tsx +307 -0
- package/src/components/checkbox/checkbox.tsx +273 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/checkbox-group/checkbox-group.stories.tsx +104 -0
- package/src/components/checkbox-group/checkbox-group.tsx +16 -0
- package/src/components/checkbox-group/index.ts +1 -0
- package/src/components/combobox/combobox.stories.tsx +339 -0
- package/src/components/combobox/combobox.tsx +892 -0
- package/src/components/combobox/index.ts +1 -0
- package/src/components/date-picker/date-input.stories.tsx +158 -0
- package/src/components/date-picker/date-input.tsx +163 -0
- package/src/components/date-picker/date-picker.model.ts +90 -0
- package/src/components/date-picker/date-picker.stories.tsx +200 -0
- package/src/components/date-picker/date-picker.test.tsx +23 -0
- package/src/components/date-picker/date-picker.tsx +298 -0
- package/src/components/date-picker/date-picker.utils.ts +260 -0
- package/src/components/date-picker/index.ts +3 -0
- package/src/components/date-picker/use-date-input-popover.ts +48 -0
- package/src/components/date-picker/use-date-input.ts +125 -0
- package/src/components/dialog/dialog.stories.tsx +171 -0
- package/src/components/dialog/dialog.test.tsx +68 -0
- package/src/components/dialog/dialog.tsx +277 -0
- package/src/components/dialog/index.ts +1 -0
- package/src/components/divider/divider.stories.tsx +70 -0
- package/src/components/divider/divider.test.tsx +22 -0
- package/src/components/divider/divider.tsx +23 -0
- package/src/components/divider/index.ts +1 -0
- package/src/components/dropzone/dropzone.stories.tsx +210 -0
- package/src/components/dropzone/dropzone.tsx +154 -0
- package/src/components/dropzone/file-types.ts +64 -0
- package/src/components/dropzone/index.ts +3 -0
- package/src/components/dropzone/upload-primitives.tsx +310 -0
- package/src/components/dropzone/use-dropzone.ts +122 -0
- package/src/components/empty-state/empty-state.stories.tsx +56 -0
- package/src/components/empty-state/empty-state.tsx +39 -0
- package/src/components/empty-state/index.ts +1 -0
- package/src/components/field/field.stories.tsx +223 -0
- package/src/components/field/field.tsx +229 -0
- package/src/components/field/index.ts +1 -0
- package/src/components/form/form.stories.tsx +594 -0
- package/src/components/form/form.tsx +30 -0
- package/src/components/form/index.ts +1 -0
- package/src/components/heading/heading.stories.tsx +74 -0
- package/src/components/heading/heading.tsx +28 -0
- package/src/components/heading/heading.variants.ts +27 -0
- package/src/components/heading/index.ts +1 -0
- package/src/components/index.ts +46 -0
- package/src/components/input/index.ts +1 -0
- package/src/components/input/input.stories.tsx +104 -0
- package/src/components/input/input.tsx +75 -0
- package/src/components/kbd/index.ts +1 -0
- package/src/components/kbd/kbd.stories.tsx +40 -0
- package/src/components/kbd/kbd.tsx +31 -0
- package/src/components/kbd/kbd.variants.ts +26 -0
- package/src/components/label/index.ts +1 -0
- package/src/components/label/label.stories.tsx +68 -0
- package/src/components/label/label.test.tsx +61 -0
- package/src/components/label/label.tsx +62 -0
- package/src/components/loader/index.ts +1 -0
- package/src/components/loader/loader.stories.tsx +60 -0
- package/src/components/loader/loader.test.tsx +26 -0
- package/src/components/loader/loader.tsx +60 -0
- package/src/components/menu/index.ts +2 -0
- package/src/components/menu/menu-primitives.tsx +248 -0
- package/src/components/menu/menu.stories.tsx +203 -0
- package/src/components/menu/menu.tsx +100 -0
- package/src/components/menu/util/render-menu-item.tsx +54 -0
- package/src/components/multi-select/hooks/use-multi-select.ts +66 -0
- package/src/components/multi-select/index.ts +1 -0
- package/src/components/multi-select/multi-select.stories.tsx +294 -0
- package/src/components/multi-select/multi-select.tsx +300 -0
- package/src/components/multi-select/multi-select.variants.ts +22 -0
- package/src/components/number-input/index.ts +1 -0
- package/src/components/number-input/number-input.stories.tsx +209 -0
- package/src/components/number-input/number-input.test.tsx +87 -0
- package/src/components/number-input/number-input.tsx +230 -0
- package/src/components/pagination/components/pagination-option.tsx +27 -0
- package/src/components/pagination/index.ts +1 -0
- package/src/components/pagination/pagination.stories.tsx +80 -0
- package/src/components/pagination/pagination.test.tsx +76 -0
- package/src/components/pagination/pagination.tsx +102 -0
- package/src/components/password/index.ts +1 -0
- package/src/components/password/password.stories.tsx +104 -0
- package/src/components/password/password.tsx +71 -0
- package/src/components/popover/index.ts +1 -0
- package/src/components/popover/popover.stories.tsx +213 -0
- package/src/components/popover/popover.tsx +203 -0
- package/src/components/progress/index.ts +1 -0
- package/src/components/progress/progress.stories.tsx +124 -0
- package/src/components/progress/progress.test.tsx +25 -0
- package/src/components/progress/progress.tsx +124 -0
- package/src/components/scroll-area/index.ts +1 -0
- package/src/components/scroll-area/scroll-area.stories.tsx +166 -0
- package/src/components/scroll-area/scroll-area.tsx +64 -0
- package/src/components/select/index.ts +1 -0
- package/src/components/select/select.stories.tsx +253 -0
- package/src/components/select/select.tsx +430 -0
- package/src/components/show/index.ts +1 -0
- package/src/components/show/show.stories.tsx +197 -0
- package/src/components/show/show.test.tsx +41 -0
- package/src/components/show/show.tsx +16 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/skeleton/skeleton.stories.tsx +36 -0
- package/src/components/skeleton/skeleton.test.tsx +14 -0
- package/src/components/skeleton/skeleton.tsx +15 -0
- package/src/components/stack/index.ts +1 -0
- package/src/components/stack/stack.stories.tsx +194 -0
- package/src/components/stack/stack.tsx +52 -0
- package/src/components/stepper/Stepper.tsx +190 -0
- package/src/components/stepper/context/stepper-context.tsx +11 -0
- package/src/components/stepper/index.ts +1 -0
- package/src/components/stepper/stepper.stories.tsx +130 -0
- package/src/components/stepper/stepper.test.tsx +91 -0
- package/src/components/switch/index.ts +1 -0
- package/src/components/switch/switch.stories.tsx +122 -0
- package/src/components/switch/switch.test.tsx +30 -0
- package/src/components/switch/switch.tsx +86 -0
- package/src/components/table/index.ts +3 -0
- package/src/components/table/table-primitives.tsx +122 -0
- package/src/components/table/table.model.ts +20 -0
- package/src/components/table/table.stories.tsx +169 -0
- package/src/components/table/table.test.tsx +91 -0
- package/src/components/table/table.tsx +109 -0
- package/src/components/table-pagination/index.ts +2 -0
- package/src/components/table-pagination/table-pagination.model.ts +2 -0
- package/src/components/table-pagination/table-pagination.stories.tsx +23 -0
- package/src/components/table-pagination/table-pagination.test.tsx +32 -0
- package/src/components/table-pagination/table-pagination.tsx +108 -0
- package/src/components/tabs/context/tabs-context.tsx +14 -0
- package/src/components/tabs/index.ts +1 -0
- package/src/components/tabs/tabs.stories.tsx +182 -0
- package/src/components/tabs/tabs.test.tsx +61 -0
- package/src/components/tabs/tabs.tsx +175 -0
- package/src/components/tag/index.ts +2 -0
- package/src/components/tag/tag.stories.tsx +170 -0
- package/src/components/tag/tag.test.tsx +18 -0
- package/src/components/tag/tag.tsx +99 -0
- package/src/components/tag/tag.variants.ts +31 -0
- package/src/components/textarea/index.ts +1 -0
- package/src/components/textarea/textarea.stories.tsx +73 -0
- package/src/components/textarea/textarea.tsx +105 -0
- package/src/components/timeline/index.ts +1 -0
- package/src/components/timeline/timeline-status.ts +5 -0
- package/src/components/timeline/timeline.stories.tsx +84 -0
- package/src/components/timeline/timeline.tsx +147 -0
- package/src/components/toast/index.ts +1 -0
- package/src/components/toast/toast.stories.tsx +392 -0
- package/src/components/toast/toast.test.tsx +50 -0
- package/src/components/toast/toast.tsx +411 -0
- package/src/components/tooltip/index.ts +1 -0
- package/src/components/tooltip/tooltip.stories.tsx +226 -0
- package/src/components/tooltip/tooltip.test.tsx +46 -0
- package/src/components/tooltip/tooltip.tsx +171 -0
- package/src/components/tree/hooks/use-controllable-tree-state.ts +80 -0
- package/src/components/tree/index.ts +2 -0
- package/src/components/tree/tree-primitives.tsx +126 -0
- package/src/components/tree/tree.stories.tsx +468 -0
- package/src/components/tree/tree.tsx +42 -0
- package/src/hooks/index.ts +26 -0
- package/src/hooks/useArray/__doc__/useArray.stories.tsx +100 -0
- package/src/hooks/useArray/__test__/useArray.test.tsx +88 -0
- package/src/hooks/useArray/index.ts +1 -0
- package/src/hooks/useArray/useArray.ts +76 -0
- package/src/hooks/useAsync/__doc__/useAsync.stories.tsx +149 -0
- package/src/hooks/useAsync/__test__/useAsync.test.tsx +68 -0
- package/src/hooks/useAsync/index.ts +1 -0
- package/src/hooks/useAsync/useAsync.ts +58 -0
- package/src/hooks/useClickOutside/__doc__/useClickOutside.stories.tsx +40 -0
- package/src/hooks/useClickOutside/__test__/useClickOutside.test.tsx +33 -0
- package/src/hooks/useClickOutside/index.ts +1 -0
- package/src/hooks/useClickOutside/useClickOutside.ts +26 -0
- package/src/hooks/useClipboard/__doc__/useClipboard.stories.tsx +45 -0
- package/src/hooks/useClipboard/__test__/useClipboard.test.tsx +19 -0
- package/src/hooks/useClipboard/index.ts +1 -0
- package/src/hooks/useClipboard/useClipboard.tsx +28 -0
- package/src/hooks/useDebounceCallback/__doc__/useDebouncedCallback.stories.tsx +84 -0
- package/src/hooks/useDebounceCallback/index.ts +1 -0
- package/src/hooks/useDebounceCallback/useDebouncedCallback.ts +23 -0
- package/src/hooks/useDebounceValue/__doc__/useDebouncedValue.stories.tsx +75 -0
- package/src/hooks/useDebounceValue/index.ts +1 -0
- package/src/hooks/useDebounceValue/useDebouncedValue.ts +17 -0
- package/src/hooks/useDisclosure/__doc__/useDisclosure.stories.tsx +39 -0
- package/src/hooks/useDisclosure/__test__/useDisclosure.test.ts +43 -0
- package/src/hooks/useDisclosure/index.ts +1 -0
- package/src/hooks/useDisclosure/useDisclosure.ts +37 -0
- package/src/hooks/useDocumentTitle/__doc__/useDocumentTitle.stories.tsx +26 -0
- package/src/hooks/useDocumentTitle/index.ts +1 -0
- package/src/hooks/useDocumentTitle/useDocumentTitle.tsx +11 -0
- package/src/hooks/useEventListener/__doc__/useEventListener.stories.tsx +28 -0
- package/src/hooks/useEventListener/__test__/useEventListener.test.tsx +26 -0
- package/src/hooks/useEventListener/index.ts +1 -0
- package/src/hooks/useEventListener/useEventListener.ts +25 -0
- package/src/hooks/useFocusTrap/__doc__/useFocusTrap.stories.tsx +37 -0
- package/src/hooks/useFocusTrap/index.ts +1 -0
- package/src/hooks/useFocusTrap/scopeTab.ts +38 -0
- package/src/hooks/useFocusTrap/tabbable.ts +70 -0
- package/src/hooks/useFocusTrap/useFocusTrap.ts +78 -0
- package/src/hooks/useHotkey/__docs__/useHotkey.stories.tsx +116 -0
- package/src/hooks/useHotkey/__test__/useHotkey.test.tsx +105 -0
- package/src/hooks/useHotkey/__utils__/create-hotkey-listener.ts +25 -0
- package/src/hooks/useHotkey/__utils__/index.ts +3 -0
- package/src/hooks/useHotkey/__utils__/is-input-field.ts +14 -0
- package/src/hooks/useHotkey/__utils__/match-key-modifiers.ts +25 -0
- package/src/hooks/useHotkey/index.ts +1 -0
- package/src/hooks/useHotkey/useHotkey.ts +34 -0
- package/src/hooks/useHover/__doc__/useHover.stories.tsx +41 -0
- package/src/hooks/useHover/__test__/useHover.test.tsx +45 -0
- package/src/hooks/useHover/index.ts +1 -0
- package/src/hooks/useHover/useHover.tsx +40 -0
- package/src/hooks/useIsVisible/__doc__/useIsVisible.stories.tsx +60 -0
- package/src/hooks/useIsVisible/index.ts +1 -0
- package/src/hooks/useIsVisible/useIsVisible.tsx +50 -0
- package/src/hooks/useLocalStorage/__doc__/useLocalStorage.stories.tsx +86 -0
- package/src/hooks/useLocalStorage/__test__/useLocalStorage.test.ts +85 -0
- package/src/hooks/useLocalStorage/index.ts +1 -0
- package/src/hooks/useLocalStorage/useLocalStorage.ts +57 -0
- package/src/hooks/useMediaQuery/__doc__/useMediaQuery.stories.tsx +39 -0
- package/src/hooks/useMediaQuery/index.ts +1 -0
- package/src/hooks/useMediaQuery/useMediaQuery.ts +22 -0
- package/src/hooks/useMemoizedFn/index.ts +1 -0
- package/src/hooks/useMemoizedFn/useMemoizedFn.ts +32 -0
- package/src/hooks/useMutation/__doc__/useMutation.stories.tsx +111 -0
- package/src/hooks/useMutation/__test__/useMutation.test.tsx +83 -0
- package/src/hooks/useMutation/index.ts +1 -0
- package/src/hooks/useMutation/useMutation.tsx +60 -0
- package/src/hooks/useObject/__doc__/useObject.stories.tsx +119 -0
- package/src/hooks/useObject/__test__/useObject.test.tsx +87 -0
- package/src/hooks/useObject/index.ts +1 -0
- package/src/hooks/useObject/useObject.tsx +48 -0
- package/src/hooks/usePagination/__doc__/usePagination.stories.tsx +72 -0
- package/src/hooks/usePagination/__test__/usePagination.test.tsx +98 -0
- package/src/hooks/usePagination/index.ts +2 -0
- package/src/hooks/usePagination/usePagination.tsx +74 -0
- package/src/hooks/usePortal/__doc__/usePortal.stories.tsx +19 -0
- package/src/hooks/usePortal/__test__/usePortal.test.tsx +20 -0
- package/src/hooks/usePortal/index.ts +1 -0
- package/src/hooks/usePortal/usePortal.ts +40 -0
- package/src/hooks/usePreventCloseWindow/__doc__/usePreventCloseWindow.stories.tsx +32 -0
- package/src/hooks/usePreventCloseWindow/index.ts +1 -0
- package/src/hooks/usePreventCloseWindow/usePreventCloseWindow.ts +33 -0
- package/src/hooks/useRangePagination/__test__/useRangePagination.test.tsx +63 -0
- package/src/hooks/useRangePagination/index.ts +2 -0
- package/src/hooks/useRangePagination/useRangePagination.tsx +72 -0
- package/src/hooks/useSelection/__doc__/useSelection.stories.tsx +140 -0
- package/src/hooks/useSelection/__test__/useSelection.test.tsx +57 -0
- package/src/hooks/useSelection/index.ts +1 -0
- package/src/hooks/useSelection/useSelection.ts +121 -0
- package/src/hooks/useStep/__doc__/useStep.stories.tsx +98 -0
- package/src/hooks/useStep/__test__/useStep.test.ts +51 -0
- package/src/hooks/useStep/index.ts +1 -0
- package/src/hooks/useStep/useStep.ts +57 -0
- package/src/hooks/useToggle/__doc__/useToggle.stories.tsx +25 -0
- package/src/hooks/useToggle/__test__/useToggle.test.tsx +43 -0
- package/src/hooks/useToggle/index.ts +1 -0
- package/src/hooks/useToggle/useToggle.ts +16 -0
- package/src/index.ts +6 -0
- package/src/lib/cn.ts +8 -0
- package/src/lib/index.ts +1 -0
- package/src/models/Generic.model.ts +67 -0
- package/src/models/index.ts +1 -0
- package/src/providers/index.ts +2 -0
- package/src/providers/library-provider.tsx +44 -0
- package/src/providers/theme/ThemeProvider.tsx +25 -0
- package/src/providers/theme/index.ts +3 -0
- package/src/providers/theme/types.ts +11 -0
- package/src/providers/theme/useThemeProps.ts +25 -0
- package/src/stores/theme.store.ts +31 -0
- package/src/styles/components.css +4 -0
- package/src/styles/index.css +2 -0
- package/src/styles/library.css +2 -0
- package/src/styles/theme.css +232 -0
- package/src/utils/dates/parseDateRange.utility.ts +39 -0
- package/src/utils/form.tsx +91 -0
- package/src/utils/functions/createSafeContext.ts +17 -0
- package/src/utils/functions/ensureReactElement.tsx +30 -0
- package/src/utils/functions/getFormData.ts +19 -0
- package/src/utils/functions/index.ts +4 -0
- package/src/utils/functions/mergeRefs.ts +18 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/strings/extractInitials.utility.ts +10 -0
- package/src/utils/strings/index.ts +1 -0
- package/src/utils/tests/click.ts +3 -0
- package/src/utils/tests/index.ts +2 -0
- package/src/utils/tests/keyboard.ts +21 -0
- package/src/utils/tests/type.ts +6 -0
- package/dist/components.css +0 -2
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
import { Meta, Source } from "@storybook/addon-docs/blocks";
|
|
2
|
+
|
|
3
|
+
<Meta title="Documentation/Migration v1 → v2" />
|
|
4
|
+
|
|
5
|
+
# Migración v1 → v2
|
|
6
|
+
|
|
7
|
+
Esta guía te lleva paso a paso desde `@boxcustodia/library@1.x` hasta la versión estable de v2.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Version 2.0.0-alpha.6
|
|
12
|
+
|
|
13
|
+
### Instalación
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @boxcustodia/library@2.0.0-alpha.6
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Cambios necesarios
|
|
20
|
+
|
|
21
|
+
#### Provider
|
|
22
|
+
|
|
23
|
+
El wrapper `Toaster` fue deprecado. Reemplazalo por `LibraryProvider`.
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
// Antes
|
|
27
|
+
import { Toaster } from "@boxcustodia/library";
|
|
28
|
+
|
|
29
|
+
<Toaster />;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
// Ahora
|
|
34
|
+
import { LibraryProvider } from "@boxcustodia/library";
|
|
35
|
+
|
|
36
|
+
<LibraryProvider>
|
|
37
|
+
<App />
|
|
38
|
+
</LibraryProvider>;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
#### Avatar
|
|
44
|
+
|
|
45
|
+
La prop `variant` fue renombrada a `shape`. Los valores no cambian.
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
// Antes
|
|
49
|
+
<Avatar variant="circle" />
|
|
50
|
+
|
|
51
|
+
// Ahora
|
|
52
|
+
<Avatar shape="circle" />
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
#### Checkbox
|
|
58
|
+
|
|
59
|
+
La prop `onChange` fue renombrada a `onCheckedChange`. `checked` y `defaultChecked` no cambian.
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
// Antes
|
|
63
|
+
<Checkbox onChange={(value) => setValue(value)} />
|
|
64
|
+
|
|
65
|
+
// Ahora
|
|
66
|
+
<Checkbox onCheckedChange={(value) => setValue(value)} />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Las siguientes props fueron eliminadas: `size`, `containerClassName`, `containerProps`.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
#### Switch
|
|
74
|
+
|
|
75
|
+
La prop `onChange` fue renombrada a `onCheckedChange`. `checked` y `defaultChecked` no cambian.
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
// Antes
|
|
79
|
+
<Switch onChange={(value) => setValue(value)} />
|
|
80
|
+
|
|
81
|
+
// Ahora
|
|
82
|
+
<Switch onCheckedChange={(value) => setValue(value)} />
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Las siguientes props fueron eliminadas: `containerClassName`, `containerProps`. El control de estilos ahora es via `className`.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
#### Kbd
|
|
90
|
+
|
|
91
|
+
Las siguientes props fueron eliminadas: `size`, `variant`.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
#### Skeleton
|
|
96
|
+
|
|
97
|
+
Las props `width`, `height`, `isCircle` e `isLoading` fueron eliminadas. El control de tamaño y forma ahora es via `className`. Además, ya no acepta `children` — usá un ternario para controlar la visibilidad.
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
// Antes
|
|
101
|
+
<Skeleton width="200px" height="16px" isLoading={isLoading}>
|
|
102
|
+
<p>Contenido</p>
|
|
103
|
+
</Skeleton>;
|
|
104
|
+
|
|
105
|
+
// Ahora
|
|
106
|
+
{
|
|
107
|
+
isLoading ? <Skeleton className="h-4 w-[200px]" /> : <p>Contenido</p>;
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
#### Dialog
|
|
114
|
+
|
|
115
|
+
`DialogContent` fue renombrado a `DialogPopup`. La prop `trigger` cambió de `ReactNode` a `ReactElement`.
|
|
116
|
+
|
|
117
|
+
Las siguientes props fueron eliminadas: `triggerProps`, `contentProps`, `contentClassName`, `headerProps`, `headerClassName`, `titleProps`, `titleClassName`, `descriptionProps`, `descriptionClassName`, `footerProps`, `footerClassName`, `focus`.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
#### AlertDialog
|
|
122
|
+
|
|
123
|
+
La prop `asChild` del composite fue eliminada — ya no es necesaria.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
#### Tooltip
|
|
128
|
+
|
|
129
|
+
La prop `label` fue renombrada a `content`. La prop `asChild` fue eliminada.
|
|
130
|
+
|
|
131
|
+
```tsx
|
|
132
|
+
// Antes
|
|
133
|
+
<Tooltip label="Más información" asChild>
|
|
134
|
+
<button>Hover</button>
|
|
135
|
+
</Tooltip>
|
|
136
|
+
|
|
137
|
+
// Ahora
|
|
138
|
+
<Tooltip content="Más información">
|
|
139
|
+
<button>Hover</button>
|
|
140
|
+
</Tooltip>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
#### Toast
|
|
146
|
+
|
|
147
|
+
La prop `type` fue renombrada a `variant` en las llamadas directas a `toast`.
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
// Antes
|
|
151
|
+
toast({ type: "error", description: "Algo salió mal" });
|
|
152
|
+
|
|
153
|
+
// Ahora
|
|
154
|
+
toast({ variant: "error", description: "Algo salió mal" });
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
La API de `toast.promise` cambió. Ahora cada estado recibe un objeto con las props del toast en lugar de un string directo.
|
|
160
|
+
|
|
161
|
+
```tsx
|
|
162
|
+
// Antes
|
|
163
|
+
toast.promise(mockSuccessPromise(), {
|
|
164
|
+
loading: "Guardando...",
|
|
165
|
+
success: (data) => data.message || "Guardado correctamente",
|
|
166
|
+
error: (error) => error.message || "Error al guardar",
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
```tsx
|
|
171
|
+
// Ahora
|
|
172
|
+
toast.promise(saveData(), {
|
|
173
|
+
loading: { description: "Guardando..." },
|
|
174
|
+
success: (data) => ({
|
|
175
|
+
variant: "success",
|
|
176
|
+
description: data.message || "Guardado correctamente",
|
|
177
|
+
}),
|
|
178
|
+
error: (error) => ({
|
|
179
|
+
variant: "error",
|
|
180
|
+
description: error.message || "Error al guardar",
|
|
181
|
+
}),
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
#### Componentes nuevos
|
|
188
|
+
|
|
189
|
+
Se agregaron los siguientes componentes. No requieren ningún cambio en tu código existente.
|
|
190
|
+
|
|
191
|
+
- **Alert** — notificaciones y mensajes de estado inline.
|
|
192
|
+
- **CheckboxGroup** — agrupa múltiples checkboxes con manejo de estado unificado.
|
|
193
|
+
- **Progress** — barra de progreso determinada e indeterminada.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 2. Version 2.0.0-alpha.7
|
|
198
|
+
|
|
199
|
+
### Instalación
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npm install @boxcustodia/library@2.0.0-alpha.7
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Cambios necesarios
|
|
206
|
+
|
|
207
|
+
#### Field
|
|
208
|
+
|
|
209
|
+
Las siguientes props fueron eliminadas: `labelClassName`, `labelProps`, `errorClassName`, `errorProps`.
|
|
210
|
+
|
|
211
|
+
La prop `error` cambió de `ReactNode` a `string | { message: ReactNode; match: FieldErrorMatch }`.
|
|
212
|
+
|
|
213
|
+
```tsx
|
|
214
|
+
// Antes
|
|
215
|
+
<Field error={<span>Campo requerido</span>} />
|
|
216
|
+
|
|
217
|
+
// Ahora
|
|
218
|
+
<Field error="Campo requerido" />
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
#### Input
|
|
224
|
+
|
|
225
|
+
La integración con `ThemeProvider` fue eliminada. El control de estilos ahora es via `className`.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
#### Password
|
|
230
|
+
|
|
231
|
+
La prop `containerClassName` fue eliminada. Usá `className` para estilizar el input directamente, y un wrapper externo para controlar el contenedor.
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 3. Version 2.0.0-alpha.8
|
|
236
|
+
|
|
237
|
+
### Instalación
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
npm install @boxcustodia/library@2.0.0-alpha.8
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Cambios necesarios
|
|
244
|
+
|
|
245
|
+
#### Form
|
|
246
|
+
|
|
247
|
+
La API de `Form` cambió completamente. El componente ya no tiene acoplamiento con React Hook Form — ahora es agnóstico a cualquier estrategia de validación (HTML nativo, Zod, server actions, RHF, etc.).
|
|
248
|
+
|
|
249
|
+
**Si querés migrar a la nueva API**, revisá la story **Components/Form** en Storybook para ver los distintos modos de uso.
|
|
250
|
+
|
|
251
|
+
**Si no querés migrar todavía**, copiá el código desde la story **Form → WithReactHookForm** (tab "Show code") en un archivo de tu proyecto, por ejemplo `src/components/form/form.tsx`. El snippet ya exporta los helpers con los mismos nombres que usabas — `useForm`, `Form` y `FormField` — así que solo tenés que cambiar los imports:
|
|
252
|
+
|
|
253
|
+
```tsx
|
|
254
|
+
// Antes
|
|
255
|
+
import { useForm, Form, FormField } from "@boxcustodia/library";
|
|
256
|
+
|
|
257
|
+
// Ahora
|
|
258
|
+
import { useForm, Form, FormField } from "@/components/form/form";
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
El resto de tu código no necesita ningún cambio.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 4. Version 2.0.0-alpha.10
|
|
266
|
+
|
|
267
|
+
### Instalación
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
npm install @boxcustodia/library@2.0.0-alpha.10
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Cambios necesarios
|
|
274
|
+
|
|
275
|
+
#### Calendar
|
|
276
|
+
|
|
277
|
+
El componente `Calendar` fue completamente reescrito usando `react-day-picker` en lugar de una implementación custom. La API cambió significativamente:
|
|
278
|
+
|
|
279
|
+
**Props eliminadas:**
|
|
280
|
+
|
|
281
|
+
- `initialView` — el calendar ahora solo soporta modo month.
|
|
282
|
+
- `view` / `onChangeView` — no hay control de vista (month/year/decade).
|
|
283
|
+
- `initialDate` — usá las props nativas de `react-day-picker`.
|
|
284
|
+
- `monthViewProps` — usá `classNames` para customizar estilos.
|
|
285
|
+
- `goBackProps`, `goNextProps`, `changeViewProps` — los controles de navegación son internos.
|
|
286
|
+
|
|
287
|
+
**Props nuevas (de react-day-picker):**
|
|
288
|
+
|
|
289
|
+
- `mode` — `"single"`, `"multiple"`, `"range"`.
|
|
290
|
+
- `captionLayout` — `"dropdown"` o `"buttons"` para seleccionar mes/año.
|
|
291
|
+
- `classNames` — object con clases para cada parte del calendar.
|
|
292
|
+
- `components` — customizar componentes internos (Dropdown, Chevron).
|
|
293
|
+
- `startMonth` / `endMonth` — rango de meses navegables.
|
|
294
|
+
|
|
295
|
+
```tsx
|
|
296
|
+
// Antes
|
|
297
|
+
<Calendar
|
|
298
|
+
initialView="month"
|
|
299
|
+
disabled={(date) => date.getDay() === 0}
|
|
300
|
+
goBackProps={{ className: "custom" }}
|
|
301
|
+
/>
|
|
302
|
+
|
|
303
|
+
// Ahora
|
|
304
|
+
<Calendar
|
|
305
|
+
mode="single"
|
|
306
|
+
disabled={(date) => date.getDay() === 0}
|
|
307
|
+
captionLayout="dropdown"
|
|
308
|
+
classNames={{ button_previous: "custom" }}
|
|
309
|
+
/>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
#### Popover
|
|
315
|
+
|
|
316
|
+
El componente `Popover` fue completamente reescrito usando Base UI en lugar de Radix. La API cambió significativamente:
|
|
317
|
+
|
|
318
|
+
**Props renombradas:**
|
|
319
|
+
|
|
320
|
+
- `contentClassName` → `popupClassName`
|
|
321
|
+
- `contentProps` → `popupProps`
|
|
322
|
+
|
|
323
|
+
**Props eliminadas:**
|
|
324
|
+
|
|
325
|
+
- `triggerAsChild` — el comportamiento ahora es el predeterminado. Usá `render` en lugar de `asChild`.
|
|
326
|
+
- `triggerClassName` — pasá `className` al elemento dentro del `render`.
|
|
327
|
+
- `offset` — se divide en dos props: `sideOffset` (brecha vertical/horizontal) y `alignOffset` (desplazamiento perpendicular).
|
|
328
|
+
|
|
329
|
+
**Cambios en el tipo de `trigger`:**
|
|
330
|
+
|
|
331
|
+
- Antes: `ReactNode`
|
|
332
|
+
- Ahora: `ReactElement` (se pasa directamente, no envuelto).
|
|
333
|
+
|
|
334
|
+
```tsx
|
|
335
|
+
// Antes
|
|
336
|
+
<Popover trigger={<Button>Open</Button>} contentClassName="w-80">
|
|
337
|
+
Content
|
|
338
|
+
</Popover>
|
|
339
|
+
|
|
340
|
+
// Ahora
|
|
341
|
+
<Popover trigger={<Button>Open</Button>} popupClassName="w-80">
|
|
342
|
+
Content
|
|
343
|
+
</Popover>
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**Offset → sideOffset + alignOffset:**
|
|
347
|
+
|
|
348
|
+
```tsx
|
|
349
|
+
// Antes
|
|
350
|
+
<Popover offset={8}>Content</Popover>
|
|
351
|
+
|
|
352
|
+
// Ahora
|
|
353
|
+
<Popover sideOffset={8} alignOffset={0}>Content</Popover>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Primitivas con `render`:**
|
|
357
|
+
|
|
358
|
+
Si usabas `PopoverTrigger` con `asChild`, reemplazá con `render`:
|
|
359
|
+
|
|
360
|
+
```tsx
|
|
361
|
+
// Antes
|
|
362
|
+
<PopoverTrigger asChild>
|
|
363
|
+
<Button>Open</Button>
|
|
364
|
+
</PopoverTrigger>
|
|
365
|
+
|
|
366
|
+
// Ahora
|
|
367
|
+
<PopoverTrigger render={<Button>Open</Button>} />
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
#### DatePicker
|
|
373
|
+
|
|
374
|
+
El componente ahora soporta múltiples modos y cambió de API internamente.
|
|
375
|
+
|
|
376
|
+
**Props eliminadas:**
|
|
377
|
+
|
|
378
|
+
- `hideFooter` — usá `renderFooter` para controlar completamente el pie.
|
|
379
|
+
|
|
380
|
+
**Props nuevas:**
|
|
381
|
+
|
|
382
|
+
- `mode` — `"single"`, `"range"`, `"multiple"` para seleccionar el tipo de picker.
|
|
383
|
+
|
|
384
|
+
```tsx
|
|
385
|
+
// Antes
|
|
386
|
+
<DatePicker value={date} onChange={setDate} hideFooter />
|
|
387
|
+
|
|
388
|
+
// Ahora
|
|
389
|
+
<DatePicker mode="single" value={date} onChange={setDate} renderFooter={() => null} />
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
**Si necesitás un date picker editable:** Usá el nuevo componente `DateInput` que permite escribir la fecha directamente en el input además de seleccionar desde el calendar.
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## 5. Version 2.0.0-alpha.11
|
|
397
|
+
|
|
398
|
+
### Instalación
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
npm install @boxcustodia/library@2.0.0-alpha.11
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### Cambios necesarios
|
|
405
|
+
|
|
406
|
+
#### Combobox
|
|
407
|
+
|
|
408
|
+
El Combobox fue completamente reescrito usando Base UI en lugar de la arquitectura anterior. La API es significativamente diferente. Ahora soporta selección múltiple con chips dinámicos y una arquitectura de primitivas para casos de uso avanzados.
|
|
409
|
+
|
|
410
|
+
**Props renombradas:**
|
|
411
|
+
|
|
412
|
+
- `valueKey` → `getValue` (ahora una function `(item) => string`)
|
|
413
|
+
- `labelKey` → `getLabel` (ahora una function `(item) => string`)
|
|
414
|
+
- `renderOption` → `renderItem`
|
|
415
|
+
- `emptyMessage` → `emptyText`
|
|
416
|
+
- `searchPlaceholder` → `placeholder`
|
|
417
|
+
- `triggerProps` → `inputProps` (single) o `chipsProps` (multiple)
|
|
418
|
+
- `contentProps` → `popupProps`
|
|
419
|
+
|
|
420
|
+
**Props eliminadas:**
|
|
421
|
+
|
|
422
|
+
- `searchProps` — en modo multiple, el input ahora está en el popup
|
|
423
|
+
- `commandProps` — no necesario con la nueva arquitectura
|
|
424
|
+
- `contentClassName` — usá `popupProps` con `className`
|
|
425
|
+
|
|
426
|
+
**Props nuevas:**
|
|
427
|
+
|
|
428
|
+
- `multiple?: boolean` — habilita modo múltiple con chips dinámicos
|
|
429
|
+
- `getLabel: (item: TItem) => string` — extraer label del item
|
|
430
|
+
- `getValue: (item: TItem) => string` — extraer valor del item
|
|
431
|
+
- `renderItem?: (item: TItem) => ReactNode` — customizar contenido de cada item
|
|
432
|
+
- `showClear?: boolean` — mostrar botón clear (default `true`)
|
|
433
|
+
- `listProps?: ComponentProps` — customizar lista
|
|
434
|
+
- `itemProps?: ComponentProps` — customizar items
|
|
435
|
+
|
|
436
|
+
**Cambios de comportamiento:**
|
|
437
|
+
|
|
438
|
+
En single select, el input está en el trigger. En multiple select, los chips se renderizan en el trigger y el input para búsqueda va en el popup. Los chips se ajustan dinámicamente al ancho del contenedor — si no caben, muestran "+N más".
|
|
439
|
+
|
|
440
|
+
```tsx
|
|
441
|
+
// Antes (single select)
|
|
442
|
+
<Combobox
|
|
443
|
+
items={fruits}
|
|
444
|
+
valueKey="id"
|
|
445
|
+
labelKey="name"
|
|
446
|
+
renderOption={(item) => item.name}
|
|
447
|
+
value={selected}
|
|
448
|
+
onChange={(val) => setSelected(val)}
|
|
449
|
+
/>
|
|
450
|
+
|
|
451
|
+
// Ahora (single select)
|
|
452
|
+
<Combobox
|
|
453
|
+
items={fruits}
|
|
454
|
+
getLabel={(item) => item.name}
|
|
455
|
+
getValue={(item) => item.id}
|
|
456
|
+
renderItem={(item) => item.name}
|
|
457
|
+
value={selected}
|
|
458
|
+
onChange={(item) => setSelected(item)}
|
|
459
|
+
/>
|
|
460
|
+
|
|
461
|
+
// Ahora (multiple select - NUEVO)
|
|
462
|
+
<Combobox
|
|
463
|
+
items={fruits}
|
|
464
|
+
multiple
|
|
465
|
+
getLabel={(item) => item.name}
|
|
466
|
+
getValue={(item) => item.id}
|
|
467
|
+
placeholder="Select fruits…"
|
|
468
|
+
value={selectedFruits}
|
|
469
|
+
onChange={setSelectedFruits}
|
|
470
|
+
/>
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Para casos avanzados:** Si los props de escape-hatch no son suficientes, usá las primitivas directamente: `ComboboxRoot`, `ComboboxInput`, `ComboboxChips`, `ComboboxChipsInput`, `ComboboxPopup`, `ComboboxList`, etc.
|
|
474
|
+
|
|
475
|
+
---
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Canvas,
|
|
3
|
+
ColorItem,
|
|
4
|
+
ColorPalette,
|
|
5
|
+
Meta,
|
|
6
|
+
Source,
|
|
7
|
+
} from "@storybook/addon-docs/blocks";
|
|
8
|
+
import { BorderRadius } from "./Examples";
|
|
9
|
+
|
|
10
|
+
<Meta title="Documentation/Theme" />
|
|
11
|
+
|
|
12
|
+
# Theme
|
|
13
|
+
|
|
14
|
+
La librería permite la customización de los estilos mediante variables CSS y la personalización detallada de cada componente usando slots.
|
|
15
|
+
|
|
16
|
+
## Personalización mediante Slots
|
|
17
|
+
|
|
18
|
+
Cada componente de la librería está construido con una arquitectura basada en slots, lo que permite una personalización detallada de cada parte del componente a nivel global. Los slots son identificados mediante el atributo `data-slot` en los elementos HTML subyacentes.
|
|
19
|
+
|
|
20
|
+
### Cómo personalizar usando Slots
|
|
21
|
+
|
|
22
|
+
Puedes sobrescribir los estilos de cualquier slot utilizando selectores CSS que apunten al atributo `data-slot`. Esta personalización se puede aplicar globalmente en tu archivo CSS principal o dentro de un módulo CSS.
|
|
23
|
+
|
|
24
|
+
#### Ejemplo: Personalizando un Dialog
|
|
25
|
+
|
|
26
|
+
```css
|
|
27
|
+
/* En tu archivo index.css */
|
|
28
|
+
[data-slot="input"] {
|
|
29
|
+
@apply h-12 rounded-xl border-primary; /* Aplica estilos a todos los inputs */
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
[data-slot="dialog-content"] {
|
|
33
|
+
@apply rounded-3xl; /* Aplica bordes más redondeados a todos los dialog */
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Border Radius
|
|
38
|
+
|
|
39
|
+
Estos son los bordes redondeados por defecto. Se puede customizar `--radius`. La clase `rounded` es equivalente a la mitad del valor de `--radius`
|
|
40
|
+
|
|
41
|
+
<BorderRadius />
|
|
42
|
+
|
|
43
|
+
## Paleta de colores
|
|
44
|
+
|
|
45
|
+
Colores por defecto de la librería. Se puede customizar con las variables css
|
|
46
|
+
|
|
47
|
+
<ColorPalette>
|
|
48
|
+
<ColorItem
|
|
49
|
+
title="color.primary"
|
|
50
|
+
subtitle="Primary Colors"
|
|
51
|
+
colors={{
|
|
52
|
+
Primary: "var(--color-primary)",
|
|
53
|
+
PrimaryForeground: "var(--color-primary-foreground)",
|
|
54
|
+
}}
|
|
55
|
+
/>
|
|
56
|
+
<ColorItem
|
|
57
|
+
title="color.secondary"
|
|
58
|
+
subtitle="Secondary Colors"
|
|
59
|
+
colors={{
|
|
60
|
+
Secondary: "var(--color-secondary)",
|
|
61
|
+
SecondaryForeground: "var(--color-secondary-foreground)",
|
|
62
|
+
}}
|
|
63
|
+
/>
|
|
64
|
+
<ColorItem
|
|
65
|
+
title="color.error"
|
|
66
|
+
subtitle="Error Colors"
|
|
67
|
+
colors={{
|
|
68
|
+
error: "var(--color-error)",
|
|
69
|
+
errorForeground: "var(--color-error-foreground)",
|
|
70
|
+
}}
|
|
71
|
+
/>
|
|
72
|
+
<ColorItem
|
|
73
|
+
title="color.success"
|
|
74
|
+
subtitle="Success Colors"
|
|
75
|
+
colors={{
|
|
76
|
+
Success: "var(--color-success)",
|
|
77
|
+
SuccessForeground: "var(--color-success-foreground)",
|
|
78
|
+
}}
|
|
79
|
+
/>
|
|
80
|
+
<ColorItem
|
|
81
|
+
title="color.muted"
|
|
82
|
+
subtitle="Muted Colors"
|
|
83
|
+
colors={{
|
|
84
|
+
Muted: "var(--color-muted)",
|
|
85
|
+
MutedForeground: "var(--color-muted-foreground)",
|
|
86
|
+
}}
|
|
87
|
+
/>
|
|
88
|
+
<ColorItem
|
|
89
|
+
title="color.accent"
|
|
90
|
+
subtitle="Accent Colors"
|
|
91
|
+
colors={{
|
|
92
|
+
Accent: "var(--color-accent)",
|
|
93
|
+
AccentForeground: "var(--color-accent-foreground)",
|
|
94
|
+
}}
|
|
95
|
+
/>
|
|
96
|
+
<ColorItem
|
|
97
|
+
title="color.popover"
|
|
98
|
+
subtitle="Popover Colors"
|
|
99
|
+
colors={{
|
|
100
|
+
Popover: "var(--color-popover)",
|
|
101
|
+
PopoverForeground: "var(--color-popover-foreground)",
|
|
102
|
+
}}
|
|
103
|
+
/>
|
|
104
|
+
<ColorItem
|
|
105
|
+
title="color.background"
|
|
106
|
+
subtitle="Background Colors"
|
|
107
|
+
colors={{
|
|
108
|
+
Background: "var(--color-background)",
|
|
109
|
+
}}
|
|
110
|
+
/>
|
|
111
|
+
<ColorItem
|
|
112
|
+
title="color.foreground"
|
|
113
|
+
subtitle="Foreground Colors"
|
|
114
|
+
colors={{
|
|
115
|
+
Foreground: "var(--color-foreground)",
|
|
116
|
+
}}
|
|
117
|
+
/>
|
|
118
|
+
<ColorItem
|
|
119
|
+
title="color.input"
|
|
120
|
+
subtitle="Input Colors"
|
|
121
|
+
colors={{
|
|
122
|
+
Input: "var(--color-input)",
|
|
123
|
+
}}
|
|
124
|
+
/>
|
|
125
|
+
<ColorItem
|
|
126
|
+
title="color.ring"
|
|
127
|
+
subtitle="Ring Colors"
|
|
128
|
+
colors={{
|
|
129
|
+
Ring: "var(--color-ring)",
|
|
130
|
+
}}
|
|
131
|
+
/>
|
|
132
|
+
</ColorPalette>
|