orn-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -0
- package/bin/orn-ui.mjs +228 -0
- package/lib/commonjs/atoms/Avatar.js +42 -0
- package/lib/commonjs/atoms/Avatar.js.map +1 -0
- package/lib/commonjs/atoms/Badge.js +82 -0
- package/lib/commonjs/atoms/Badge.js.map +1 -0
- package/lib/commonjs/atoms/Button.js +222 -0
- package/lib/commonjs/atoms/Button.js.map +1 -0
- package/lib/commonjs/atoms/Card.js +33 -0
- package/lib/commonjs/atoms/Card.js.map +1 -0
- package/lib/commonjs/atoms/Checkbox.js +107 -0
- package/lib/commonjs/atoms/Checkbox.js.map +1 -0
- package/lib/commonjs/atoms/Divider.js +27 -0
- package/lib/commonjs/atoms/Divider.js.map +1 -0
- package/lib/commonjs/atoms/EmptyState.js +69 -0
- package/lib/commonjs/atoms/EmptyState.js.map +1 -0
- package/lib/commonjs/atoms/Fab.js +62 -0
- package/lib/commonjs/atoms/Fab.js.map +1 -0
- package/lib/commonjs/atoms/IconButton.js +60 -0
- package/lib/commonjs/atoms/IconButton.js.map +1 -0
- package/lib/commonjs/atoms/Image.js +113 -0
- package/lib/commonjs/atoms/Image.js.map +1 -0
- package/lib/commonjs/atoms/Input.js +173 -0
- package/lib/commonjs/atoms/Input.js.map +1 -0
- package/lib/commonjs/atoms/KeyValueRow.js +60 -0
- package/lib/commonjs/atoms/KeyValueRow.js.map +1 -0
- package/lib/commonjs/atoms/PressableScale.js +60 -0
- package/lib/commonjs/atoms/PressableScale.js.map +1 -0
- package/lib/commonjs/atoms/Spinner.js +156 -0
- package/lib/commonjs/atoms/Spinner.js.map +1 -0
- package/lib/commonjs/atoms/Text.js +63 -0
- package/lib/commonjs/atoms/Text.js.map +1 -0
- package/lib/commonjs/atoms/index.js +135 -0
- package/lib/commonjs/atoms/index.js.map +1 -0
- package/lib/commonjs/icons/Icon.js +40 -0
- package/lib/commonjs/icons/Icon.js.map +1 -0
- package/lib/commonjs/icons/defaultIcons.js +386 -0
- package/lib/commonjs/icons/defaultIcons.js.map +1 -0
- package/lib/commonjs/icons/index.js +20 -0
- package/lib/commonjs/icons/index.js.map +1 -0
- package/lib/commonjs/icons/types.js +6 -0
- package/lib/commonjs/icons/types.js.map +1 -0
- package/lib/commonjs/index.js +61 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/molecules/AvatarHeader.js +87 -0
- package/lib/commonjs/molecules/AvatarHeader.js.map +1 -0
- package/lib/commonjs/molecules/FormActions.js +47 -0
- package/lib/commonjs/molecules/FormActions.js.map +1 -0
- package/lib/commonjs/molecules/InfoRow.js +83 -0
- package/lib/commonjs/molecules/InfoRow.js.map +1 -0
- package/lib/commonjs/molecules/OptionCard.js +98 -0
- package/lib/commonjs/molecules/OptionCard.js.map +1 -0
- package/lib/commonjs/molecules/Stepper.js +104 -0
- package/lib/commonjs/molecules/Stepper.js.map +1 -0
- package/lib/commonjs/molecules/Steps.js +220 -0
- package/lib/commonjs/molecules/Steps.js.map +1 -0
- package/lib/commonjs/molecules/ThemeToggle.js +91 -0
- package/lib/commonjs/molecules/ThemeToggle.js.map +1 -0
- package/lib/commonjs/molecules/index.js +55 -0
- package/lib/commonjs/molecules/index.js.map +1 -0
- package/lib/commonjs/organisms/Alert.js +223 -0
- package/lib/commonjs/organisms/Alert.js.map +1 -0
- package/lib/commonjs/organisms/AlertProvider.js +109 -0
- package/lib/commonjs/organisms/AlertProvider.js.map +1 -0
- package/lib/commonjs/organisms/BottomSheet.js +154 -0
- package/lib/commonjs/organisms/BottomSheet.js.map +1 -0
- package/lib/commonjs/organisms/DateField.js +147 -0
- package/lib/commonjs/organisms/DateField.js.map +1 -0
- package/lib/commonjs/organisms/DatePicker.js +253 -0
- package/lib/commonjs/organisms/DatePicker.js.map +1 -0
- package/lib/commonjs/organisms/List.js +143 -0
- package/lib/commonjs/organisms/List.js.map +1 -0
- package/lib/commonjs/organisms/Modal.js +286 -0
- package/lib/commonjs/organisms/Modal.js.map +1 -0
- package/lib/commonjs/organisms/Screen.js +75 -0
- package/lib/commonjs/organisms/Screen.js.map +1 -0
- package/lib/commonjs/organisms/SearchList.js +180 -0
- package/lib/commonjs/organisms/SearchList.js.map +1 -0
- package/lib/commonjs/organisms/Select.js +178 -0
- package/lib/commonjs/organisms/Select.js.map +1 -0
- package/lib/commonjs/organisms/Toast.js +157 -0
- package/lib/commonjs/organisms/Toast.js.map +1 -0
- package/lib/commonjs/organisms/ToastProvider.js +131 -0
- package/lib/commonjs/organisms/ToastProvider.js.map +1 -0
- package/lib/commonjs/organisms/Wizard.js +116 -0
- package/lib/commonjs/organisms/Wizard.js.map +1 -0
- package/lib/commonjs/organisms/index.js +127 -0
- package/lib/commonjs/organisms/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/theme/UIProvider.js +110 -0
- package/lib/commonjs/theme/UIProvider.js.map +1 -0
- package/lib/commonjs/theme/createStyles.js +42 -0
- package/lib/commonjs/theme/createStyles.js.map +1 -0
- package/lib/commonjs/theme/createTheme.js +50 -0
- package/lib/commonjs/theme/createTheme.js.map +1 -0
- package/lib/commonjs/theme/index.js +151 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/theme/insets.js +15 -0
- package/lib/commonjs/theme/insets.js.map +1 -0
- package/lib/commonjs/theme/labels.js +18 -0
- package/lib/commonjs/theme/labels.js.map +1 -0
- package/lib/commonjs/theme/palettes.js +42 -0
- package/lib/commonjs/theme/palettes.js.map +1 -0
- package/lib/commonjs/theme/tokens.js +120 -0
- package/lib/commonjs/theme/tokens.js.map +1 -0
- package/lib/commonjs/theme/types.js +6 -0
- package/lib/commonjs/theme/types.js.map +1 -0
- package/lib/module/atoms/Avatar.js +37 -0
- package/lib/module/atoms/Avatar.js.map +1 -0
- package/lib/module/atoms/Badge.js +77 -0
- package/lib/module/atoms/Badge.js.map +1 -0
- package/lib/module/atoms/Button.js +217 -0
- package/lib/module/atoms/Button.js.map +1 -0
- package/lib/module/atoms/Card.js +28 -0
- package/lib/module/atoms/Card.js.map +1 -0
- package/lib/module/atoms/Checkbox.js +102 -0
- package/lib/module/atoms/Checkbox.js.map +1 -0
- package/lib/module/atoms/Divider.js +22 -0
- package/lib/module/atoms/Divider.js.map +1 -0
- package/lib/module/atoms/EmptyState.js +64 -0
- package/lib/module/atoms/EmptyState.js.map +1 -0
- package/lib/module/atoms/Fab.js +57 -0
- package/lib/module/atoms/Fab.js.map +1 -0
- package/lib/module/atoms/IconButton.js +55 -0
- package/lib/module/atoms/IconButton.js.map +1 -0
- package/lib/module/atoms/Image.js +108 -0
- package/lib/module/atoms/Image.js.map +1 -0
- package/lib/module/atoms/Input.js +168 -0
- package/lib/module/atoms/Input.js.map +1 -0
- package/lib/module/atoms/KeyValueRow.js +55 -0
- package/lib/module/atoms/KeyValueRow.js.map +1 -0
- package/lib/module/atoms/PressableScale.js +55 -0
- package/lib/module/atoms/PressableScale.js.map +1 -0
- package/lib/module/atoms/Spinner.js +151 -0
- package/lib/module/atoms/Spinner.js.map +1 -0
- package/lib/module/atoms/Text.js +58 -0
- package/lib/module/atoms/Text.js.map +1 -0
- package/lib/module/atoms/index.js +18 -0
- package/lib/module/atoms/index.js.map +1 -0
- package/lib/module/icons/Icon.js +35 -0
- package/lib/module/icons/Icon.js.map +1 -0
- package/lib/module/icons/defaultIcons.js +381 -0
- package/lib/module/icons/defaultIcons.js.map +1 -0
- package/lib/module/icons/index.js +5 -0
- package/lib/module/icons/index.js.map +1 -0
- package/lib/module/icons/types.js +4 -0
- package/lib/module/icons/types.js.map +1 -0
- package/lib/module/index.js +8 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/molecules/AvatarHeader.js +82 -0
- package/lib/module/molecules/AvatarHeader.js.map +1 -0
- package/lib/module/molecules/FormActions.js +42 -0
- package/lib/module/molecules/FormActions.js.map +1 -0
- package/lib/module/molecules/InfoRow.js +78 -0
- package/lib/module/molecules/InfoRow.js.map +1 -0
- package/lib/module/molecules/OptionCard.js +93 -0
- package/lib/module/molecules/OptionCard.js.map +1 -0
- package/lib/module/molecules/Stepper.js +99 -0
- package/lib/module/molecules/Stepper.js.map +1 -0
- package/lib/module/molecules/Steps.js +215 -0
- package/lib/module/molecules/Steps.js.map +1 -0
- package/lib/module/molecules/ThemeToggle.js +86 -0
- package/lib/module/molecules/ThemeToggle.js.map +1 -0
- package/lib/module/molecules/index.js +10 -0
- package/lib/module/molecules/index.js.map +1 -0
- package/lib/module/organisms/Alert.js +218 -0
- package/lib/module/organisms/Alert.js.map +1 -0
- package/lib/module/organisms/AlertProvider.js +103 -0
- package/lib/module/organisms/AlertProvider.js.map +1 -0
- package/lib/module/organisms/BottomSheet.js +149 -0
- package/lib/module/organisms/BottomSheet.js.map +1 -0
- package/lib/module/organisms/DateField.js +142 -0
- package/lib/module/organisms/DateField.js.map +1 -0
- package/lib/module/organisms/DatePicker.js +247 -0
- package/lib/module/organisms/DatePicker.js.map +1 -0
- package/lib/module/organisms/List.js +138 -0
- package/lib/module/organisms/List.js.map +1 -0
- package/lib/module/organisms/Modal.js +281 -0
- package/lib/module/organisms/Modal.js.map +1 -0
- package/lib/module/organisms/Screen.js +70 -0
- package/lib/module/organisms/Screen.js.map +1 -0
- package/lib/module/organisms/SearchList.js +175 -0
- package/lib/module/organisms/SearchList.js.map +1 -0
- package/lib/module/organisms/Select.js +173 -0
- package/lib/module/organisms/Select.js.map +1 -0
- package/lib/module/organisms/Toast.js +152 -0
- package/lib/module/organisms/Toast.js.map +1 -0
- package/lib/module/organisms/ToastProvider.js +125 -0
- package/lib/module/organisms/ToastProvider.js.map +1 -0
- package/lib/module/organisms/Wizard.js +111 -0
- package/lib/module/organisms/Wizard.js.map +1 -0
- package/lib/module/organisms/index.js +16 -0
- package/lib/module/organisms/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/theme/UIProvider.js +97 -0
- package/lib/module/theme/UIProvider.js.map +1 -0
- package/lib/module/theme/createStyles.js +38 -0
- package/lib/module/theme/createStyles.js.map +1 -0
- package/lib/module/theme/createTheme.js +45 -0
- package/lib/module/theme/createTheme.js.map +1 -0
- package/lib/module/theme/index.js +10 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/insets.js +11 -0
- package/lib/module/theme/insets.js.map +1 -0
- package/lib/module/theme/labels.js +14 -0
- package/lib/module/theme/labels.js.map +1 -0
- package/lib/module/theme/palettes.js +38 -0
- package/lib/module/theme/palettes.js.map +1 -0
- package/lib/module/theme/tokens.js +117 -0
- package/lib/module/theme/tokens.js.map +1 -0
- package/lib/module/theme/types.js +4 -0
- package/lib/module/theme/types.js.map +1 -0
- package/lib/typescript/atoms/Avatar.d.ts +15 -0
- package/lib/typescript/atoms/Avatar.d.ts.map +1 -0
- package/lib/typescript/atoms/Badge.d.ts +19 -0
- package/lib/typescript/atoms/Badge.d.ts.map +1 -0
- package/lib/typescript/atoms/Button.d.ts +30 -0
- package/lib/typescript/atoms/Button.d.ts.map +1 -0
- package/lib/typescript/atoms/Card.d.ts +8 -0
- package/lib/typescript/atoms/Card.d.ts.map +1 -0
- package/lib/typescript/atoms/Checkbox.d.ts +11 -0
- package/lib/typescript/atoms/Checkbox.d.ts.map +1 -0
- package/lib/typescript/atoms/Divider.d.ts +8 -0
- package/lib/typescript/atoms/Divider.d.ts.map +1 -0
- package/lib/typescript/atoms/EmptyState.d.ts +12 -0
- package/lib/typescript/atoms/EmptyState.d.ts.map +1 -0
- package/lib/typescript/atoms/Fab.d.ts +22 -0
- package/lib/typescript/atoms/Fab.d.ts.map +1 -0
- package/lib/typescript/atoms/IconButton.d.ts +23 -0
- package/lib/typescript/atoms/IconButton.d.ts.map +1 -0
- package/lib/typescript/atoms/Image.d.ts +45 -0
- package/lib/typescript/atoms/Image.d.ts.map +1 -0
- package/lib/typescript/atoms/Input.d.ts +24 -0
- package/lib/typescript/atoms/Input.d.ts.map +1 -0
- package/lib/typescript/atoms/KeyValueRow.d.ts +17 -0
- package/lib/typescript/atoms/KeyValueRow.d.ts.map +1 -0
- package/lib/typescript/atoms/PressableScale.d.ts +15 -0
- package/lib/typescript/atoms/PressableScale.d.ts.map +1 -0
- package/lib/typescript/atoms/Spinner.d.ts +20 -0
- package/lib/typescript/atoms/Spinner.d.ts.map +1 -0
- package/lib/typescript/atoms/Text.d.ts +13 -0
- package/lib/typescript/atoms/Text.d.ts.map +1 -0
- package/lib/typescript/atoms/index.d.ts +31 -0
- package/lib/typescript/atoms/index.d.ts.map +1 -0
- package/lib/typescript/icons/Icon.d.ts +18 -0
- package/lib/typescript/icons/Icon.d.ts.map +1 -0
- package/lib/typescript/icons/defaultIcons.d.ts +5 -0
- package/lib/typescript/icons/defaultIcons.d.ts.map +1 -0
- package/lib/typescript/icons/index.d.ts +5 -0
- package/lib/typescript/icons/index.d.ts.map +1 -0
- package/lib/typescript/icons/types.d.ts +10 -0
- package/lib/typescript/icons/types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +6 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/molecules/AvatarHeader.d.ts +20 -0
- package/lib/typescript/molecules/AvatarHeader.d.ts.map +1 -0
- package/lib/typescript/molecules/FormActions.d.ts +21 -0
- package/lib/typescript/molecules/FormActions.d.ts.map +1 -0
- package/lib/typescript/molecules/InfoRow.d.ts +17 -0
- package/lib/typescript/molecules/InfoRow.d.ts.map +1 -0
- package/lib/typescript/molecules/OptionCard.d.ts +20 -0
- package/lib/typescript/molecules/OptionCard.d.ts.map +1 -0
- package/lib/typescript/molecules/Stepper.d.ts +15 -0
- package/lib/typescript/molecules/Stepper.d.ts.map +1 -0
- package/lib/typescript/molecules/Steps.d.ts +29 -0
- package/lib/typescript/molecules/Steps.d.ts.map +1 -0
- package/lib/typescript/molecules/ThemeToggle.d.ts +15 -0
- package/lib/typescript/molecules/ThemeToggle.d.ts.map +1 -0
- package/lib/typescript/molecules/index.d.ts +15 -0
- package/lib/typescript/molecules/index.d.ts.map +1 -0
- package/lib/typescript/organisms/Alert.d.ts +29 -0
- package/lib/typescript/organisms/Alert.d.ts.map +1 -0
- package/lib/typescript/organisms/AlertProvider.d.ts +32 -0
- package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -0
- package/lib/typescript/organisms/BottomSheet.d.ts +15 -0
- package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/organisms/DateField.d.ts +26 -0
- package/lib/typescript/organisms/DateField.d.ts.map +1 -0
- package/lib/typescript/organisms/DatePicker.d.ts +49 -0
- package/lib/typescript/organisms/DatePicker.d.ts.map +1 -0
- package/lib/typescript/organisms/List.d.ts +35 -0
- package/lib/typescript/organisms/List.d.ts.map +1 -0
- package/lib/typescript/organisms/Modal.d.ts +25 -0
- package/lib/typescript/organisms/Modal.d.ts.map +1 -0
- package/lib/typescript/organisms/Screen.d.ts +26 -0
- package/lib/typescript/organisms/Screen.d.ts.map +1 -0
- package/lib/typescript/organisms/SearchList.d.ts +40 -0
- package/lib/typescript/organisms/SearchList.d.ts.map +1 -0
- package/lib/typescript/organisms/Select.d.ts +25 -0
- package/lib/typescript/organisms/Select.d.ts.map +1 -0
- package/lib/typescript/organisms/Toast.d.ts +28 -0
- package/lib/typescript/organisms/Toast.d.ts.map +1 -0
- package/lib/typescript/organisms/ToastProvider.d.ts +36 -0
- package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -0
- package/lib/typescript/organisms/Wizard.d.ts +40 -0
- package/lib/typescript/organisms/Wizard.d.ts.map +1 -0
- package/lib/typescript/organisms/index.d.ts +27 -0
- package/lib/typescript/organisms/index.d.ts.map +1 -0
- package/lib/typescript/theme/UIProvider.d.ts +47 -0
- package/lib/typescript/theme/UIProvider.d.ts.map +1 -0
- package/lib/typescript/theme/createStyles.d.ts +21 -0
- package/lib/typescript/theme/createStyles.d.ts.map +1 -0
- package/lib/typescript/theme/createTheme.d.ts +9 -0
- package/lib/typescript/theme/createTheme.d.ts.map +1 -0
- package/lib/typescript/theme/index.d.ts +14 -0
- package/lib/typescript/theme/index.d.ts.map +1 -0
- package/lib/typescript/theme/insets.d.ts +9 -0
- package/lib/typescript/theme/insets.d.ts.map +1 -0
- package/lib/typescript/theme/labels.d.ts +13 -0
- package/lib/typescript/theme/labels.d.ts.map +1 -0
- package/lib/typescript/theme/palettes.d.ts +24 -0
- package/lib/typescript/theme/palettes.d.ts.map +1 -0
- package/lib/typescript/theme/tokens.d.ts +41 -0
- package/lib/typescript/theme/tokens.d.ts.map +1 -0
- package/lib/typescript/theme/types.d.ts +24 -0
- package/lib/typescript/theme/types.d.ts.map +1 -0
- package/package.json +311 -0
- package/registry/alert-provider.json +21 -0
- package/registry/alert.json +19 -0
- package/registry/avatar-header.json +18 -0
- package/registry/avatar.json +18 -0
- package/registry/badge.json +18 -0
- package/registry/bottom-sheet.json +18 -0
- package/registry/button.json +18 -0
- package/registry/card.json +18 -0
- package/registry/checkbox.json +18 -0
- package/registry/core.json +64 -0
- package/registry/date-field.json +24 -0
- package/registry/date-picker.json +23 -0
- package/registry/divider.json +18 -0
- package/registry/empty-state.json +18 -0
- package/registry/fab.json +19 -0
- package/registry/form-actions.json +19 -0
- package/registry/icon-button.json +19 -0
- package/registry/image.json +20 -0
- package/registry/index.json +465 -0
- package/registry/info-row.json +19 -0
- package/registry/input.json +18 -0
- package/registry/key-value-row.json +18 -0
- package/registry/list.json +20 -0
- package/registry/manifest.json +263 -0
- package/registry/modal.json +21 -0
- package/registry/option-card.json +18 -0
- package/registry/pressable-scale.json +18 -0
- package/registry/screen.json +18 -0
- package/registry/search-list.json +23 -0
- package/registry/select.json +18 -0
- package/registry/spinner.json +18 -0
- package/registry/stepper.json +18 -0
- package/registry/steps.json +18 -0
- package/registry/theme-toggle.json +18 -0
- package/registry/title.json +21 -0
- package/registry/toast-provider.json +20 -0
- package/registry/toast.json +18 -0
- package/registry/wizard.json +20 -0
- package/src/atoms/Avatar.tsx +40 -0
- package/src/atoms/Badge.tsx +55 -0
- package/src/atoms/Button.tsx +186 -0
- package/src/atoms/Card.tsx +27 -0
- package/src/atoms/Checkbox.tsx +75 -0
- package/src/atoms/Divider.tsx +14 -0
- package/src/atoms/EmptyState.tsx +60 -0
- package/src/atoms/Fab.tsx +63 -0
- package/src/atoms/IconButton.tsx +53 -0
- package/src/atoms/Image.tsx +137 -0
- package/src/atoms/Input.tsx +166 -0
- package/src/atoms/KeyValueRow.tsx +48 -0
- package/src/atoms/PressableScale.tsx +52 -0
- package/src/atoms/Spinner.tsx +127 -0
- package/src/atoms/Text.tsx +58 -0
- package/src/atoms/index.ts +30 -0
- package/src/icons/Icon.tsx +27 -0
- package/src/icons/defaultIcons.tsx +292 -0
- package/src/icons/index.ts +4 -0
- package/src/icons/types.ts +27 -0
- package/src/index.ts +5 -0
- package/src/molecules/AvatarHeader.tsx +69 -0
- package/src/molecules/FormActions.tsx +52 -0
- package/src/molecules/InfoRow.tsx +52 -0
- package/src/molecules/OptionCard.tsx +82 -0
- package/src/molecules/Stepper.tsx +76 -0
- package/src/molecules/Steps.tsx +198 -0
- package/src/molecules/ThemeToggle.tsx +67 -0
- package/src/molecules/index.ts +14 -0
- package/src/organisms/Alert.tsx +162 -0
- package/src/organisms/AlertProvider.tsx +125 -0
- package/src/organisms/BottomSheet.tsx +95 -0
- package/src/organisms/DateField.tsx +134 -0
- package/src/organisms/DatePicker.tsx +255 -0
- package/src/organisms/List.tsx +154 -0
- package/src/organisms/Modal.tsx +251 -0
- package/src/organisms/Screen.tsx +84 -0
- package/src/organisms/SearchList.tsx +186 -0
- package/src/organisms/Select.tsx +156 -0
- package/src/organisms/Toast.tsx +135 -0
- package/src/organisms/ToastProvider.tsx +166 -0
- package/src/organisms/Wizard.tsx +137 -0
- package/src/organisms/index.ts +26 -0
- package/src/theme/UIProvider.tsx +129 -0
- package/src/theme/createStyles.ts +40 -0
- package/src/theme/createTheme.ts +49 -0
- package/src/theme/index.ts +22 -0
- package/src/theme/insets.ts +9 -0
- package/src/theme/labels.ts +23 -0
- package/src/theme/palettes.ts +53 -0
- package/src/theme/tokens.ts +113 -0
- package/src/theme/types.ts +27 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.tokens = exports.spacing = exports.shadow = exports.radius = exports.lineHeight = exports.fontWeight = exports.fontSize = exports.duration = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
// Las escalas numéricas se tipan explícitamente como `number` (no `as const`):
|
|
9
|
+
// createTheme() debe poder sobreescribir cualquier valor con otro número
|
|
10
|
+
// arbitrario: con literal typing, un override de `radius.md` a `999` fallaría
|
|
11
|
+
// porque el tipo inferido sería el literal `8`, no `number`.
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Escala de espaciado. Usar siempre estos valores en vez de números mágicos
|
|
15
|
+
* para que el ritmo vertical/horizontal sea consistente entre componentes.
|
|
16
|
+
*/
|
|
17
|
+
const spacing = exports.spacing = {
|
|
18
|
+
xxs: 2,
|
|
19
|
+
xs: 4,
|
|
20
|
+
sm: 8,
|
|
21
|
+
md: 12,
|
|
22
|
+
lg: 16,
|
|
23
|
+
xl: 20,
|
|
24
|
+
xxl: 24,
|
|
25
|
+
xxxl: 32
|
|
26
|
+
};
|
|
27
|
+
const radius = exports.radius = {
|
|
28
|
+
none: 0,
|
|
29
|
+
xs: 4,
|
|
30
|
+
sm: 6,
|
|
31
|
+
md: 8,
|
|
32
|
+
lg: 12,
|
|
33
|
+
xl: 16,
|
|
34
|
+
xxl: 20,
|
|
35
|
+
full: 9999
|
|
36
|
+
};
|
|
37
|
+
const fontSize = exports.fontSize = {
|
|
38
|
+
xs: 11,
|
|
39
|
+
sm: 12,
|
|
40
|
+
md: 14,
|
|
41
|
+
lg: 16,
|
|
42
|
+
xl: 18,
|
|
43
|
+
xxl: 24
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// fontWeight sí necesita literales: TextStyle.fontWeight de RN exige un union
|
|
47
|
+
// de strings específicos ('400' | '500' | ...), no `string` arbitrario.
|
|
48
|
+
const fontWeight = exports.fontWeight = {
|
|
49
|
+
regular: '400',
|
|
50
|
+
medium: '500',
|
|
51
|
+
semibold: '600',
|
|
52
|
+
bold: '700'
|
|
53
|
+
};
|
|
54
|
+
const lineHeight = exports.lineHeight = {
|
|
55
|
+
sm: 16,
|
|
56
|
+
md: 20,
|
|
57
|
+
lg: 24
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/** Duraciones en ms para Animated.timing/spring. */
|
|
61
|
+
const duration = exports.duration = {
|
|
62
|
+
fast: 150,
|
|
63
|
+
base: 200,
|
|
64
|
+
slow: 250
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Sombras cross-platform: shadow* para iOS, elevation para Android.
|
|
68
|
+
* `shadowColor` se deja en negro fijo — el color de sombra por tema es un
|
|
69
|
+
* detalle demasiado fino para justificar la complejidad de resolverlo aquí.
|
|
70
|
+
*/
|
|
71
|
+
const shadow = exports.shadow = {
|
|
72
|
+
none: _reactNative.Platform.select({
|
|
73
|
+
android: {
|
|
74
|
+
elevation: 0
|
|
75
|
+
},
|
|
76
|
+
default: {
|
|
77
|
+
shadowOpacity: 0
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
sm: {
|
|
81
|
+
shadowColor: '#000',
|
|
82
|
+
shadowOffset: {
|
|
83
|
+
width: 0,
|
|
84
|
+
height: 1
|
|
85
|
+
},
|
|
86
|
+
shadowOpacity: 0.08,
|
|
87
|
+
shadowRadius: 2,
|
|
88
|
+
elevation: 2
|
|
89
|
+
},
|
|
90
|
+
md: {
|
|
91
|
+
shadowColor: '#000',
|
|
92
|
+
shadowOffset: {
|
|
93
|
+
width: 0,
|
|
94
|
+
height: 2
|
|
95
|
+
},
|
|
96
|
+
shadowOpacity: 0.1,
|
|
97
|
+
shadowRadius: 8,
|
|
98
|
+
elevation: 4
|
|
99
|
+
},
|
|
100
|
+
lg: {
|
|
101
|
+
shadowColor: '#000',
|
|
102
|
+
shadowOffset: {
|
|
103
|
+
width: 0,
|
|
104
|
+
height: 4
|
|
105
|
+
},
|
|
106
|
+
shadowOpacity: 0.15,
|
|
107
|
+
shadowRadius: 16,
|
|
108
|
+
elevation: 8
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const tokens = exports.tokens = {
|
|
112
|
+
spacing,
|
|
113
|
+
radius,
|
|
114
|
+
fontSize,
|
|
115
|
+
fontWeight,
|
|
116
|
+
lineHeight,
|
|
117
|
+
duration,
|
|
118
|
+
shadow
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","spacing","exports","xxs","xs","sm","md","lg","xl","xxl","xxxl","radius","none","full","fontSize","fontWeight","regular","medium","semibold","bold","lineHeight","duration","fast","base","slow","shadow","Platform","select","android","elevation","default","shadowOpacity","shadowColor","shadowOffset","width","height","shadowRadius","tokens"],"sourceRoot":"../../../src","sources":["theme/tokens.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO,MAAMC,OAAkF,GAAAC,OAAA,CAAAD,OAAA,GAAG;EAChGE,GAAG,EAAE,CAAC;EACNC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,MAAkF,GAAAT,OAAA,CAAAS,MAAA,GAAG;EAChGC,IAAI,EAAE,CAAC;EACPR,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE,EAAE;EACPI,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,QAAkE,GAAAZ,OAAA,CAAAY,QAAA,GAAG;EAChFV,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE;AACP,CAAC;;AAED;AACA;AACO,MAAMM,UAAU,GAAAb,OAAA,CAAAa,UAAA,GAAG;EACxBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE,KAAK;EACfC,IAAI,EAAE;AACR,CAAU;AAEH,MAAMC,UAA8C,GAAAlB,OAAA,CAAAkB,UAAA,GAAG;EAC5Df,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;;AAED;AACO,MAAMc,QAAkD,GAAAnB,OAAA,CAAAmB,QAAA,GAAG;EAChEC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE;AACR,CAAC;AAOD;AACA;AACA;AACA;AACA;AACO,MAAMC,MAAwD,GAAAvB,OAAA,CAAAuB,MAAA,GAAG;EACtEb,IAAI,EAAEc,qBAAQ,CAACC,MAAM,CAAC;IACpBC,OAAO,EAAE;MAAEC,SAAS,EAAE;IAAE,CAAC;IACzBC,OAAO,EAAE;MAAEC,aAAa,EAAE;IAAE;EAC9B,CAAC,CAAgB;EACjB1B,EAAE,EAAE;IACF2B,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCJ,aAAa,EAAE,IAAI;IACnBK,YAAY,EAAE,CAAC;IACfP,SAAS,EAAE;EACb,CAAC;EACDvB,EAAE,EAAE;IACF0B,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCJ,aAAa,EAAE,GAAG;IAClBK,YAAY,EAAE,CAAC;IACfP,SAAS,EAAE;EACb,CAAC;EACDtB,EAAE,EAAE;IACFyB,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCJ,aAAa,EAAE,IAAI;IACnBK,YAAY,EAAE,EAAE;IAChBP,SAAS,EAAE;EACb;AACF,CAAC;AAEM,MAAMQ,MAAM,GAAAnC,OAAA,CAAAmC,MAAA,GAAG;EACpBpC,OAAO;EACPU,MAAM;EACNG,QAAQ;EACRC,UAAU;EACVK,UAAU;EACVC,QAAQ;EACRI;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["theme/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo } from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { useColors } from '../theme/UIProvider';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const styles = StyleSheet.create({
|
|
8
|
+
circle: {
|
|
9
|
+
justifyContent: 'center',
|
|
10
|
+
alignItems: 'center'
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Avatar
|
|
16
|
+
* Círculo con ícono/iniciales adentro. Usado a la izquierda de filas de
|
|
17
|
+
* lista o como header de detalle (junto a AvatarHeader).
|
|
18
|
+
*/
|
|
19
|
+
export const Avatar = /*#__PURE__*/memo(({
|
|
20
|
+
size = 44,
|
|
21
|
+
backgroundColor,
|
|
22
|
+
children,
|
|
23
|
+
style
|
|
24
|
+
}) => {
|
|
25
|
+
const colors = useColors();
|
|
26
|
+
return /*#__PURE__*/_jsx(View, {
|
|
27
|
+
style: [styles.circle, {
|
|
28
|
+
width: size,
|
|
29
|
+
height: size,
|
|
30
|
+
borderRadius: size / 2,
|
|
31
|
+
backgroundColor: backgroundColor || colors.primary + '15'
|
|
32
|
+
}, style],
|
|
33
|
+
children: children
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
Avatar.displayName = 'Avatar';
|
|
37
|
+
//# sourceMappingURL=Avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","StyleSheet","View","useColors","jsx","_jsx","styles","create","circle","justifyContent","alignItems","Avatar","size","backgroundColor","children","style","colors","width","height","borderRadius","primary","displayName"],"sourceRoot":"../../../src","sources":["atoms/Avatar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,UAAU,EAAEC,IAAI,QAAwC,cAAc;AAC/E,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAShD,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EAC/BC,MAAM,EAAE;IAAEC,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAS;AAC3D,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,gBAAGX,IAAI,CAAC,CAAC;EAAEY,IAAI,GAAG,EAAE;EAAEC,eAAe;EAAEC,QAAQ;EAAEC;AAAmB,CAAC,KAAK;EAC3F,MAAMC,MAAM,GAAGb,SAAS,CAAC,CAAC;EAC1B,oBACEE,IAAA,CAACH,IAAI;IACHa,KAAK,EAAE,CACLT,MAAM,CAACE,MAAM,EACb;MACES,KAAK,EAAEL,IAAI;MACXM,MAAM,EAAEN,IAAI;MACZO,YAAY,EAAEP,IAAI,GAAG,CAAC;MACtBC,eAAe,EAAEA,eAAe,IAAIG,MAAM,CAACI,OAAO,GAAG;IACvD,CAAC,EACDL,KAAK,CACL;IAAAD,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFH,MAAM,CAACU,WAAW,GAAG,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo } from 'react';
|
|
4
|
+
import { Text, View } from 'react-native';
|
|
5
|
+
import { createStyles } from '../theme/createStyles';
|
|
6
|
+
import { useAllowFontScaling, useTheme } from '../theme/UIProvider';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const useStyles = createStyles(theme => ({
|
|
9
|
+
badge: {
|
|
10
|
+
paddingHorizontal: theme.tokens.spacing.md - 2,
|
|
11
|
+
paddingVertical: theme.tokens.spacing.xs + 1,
|
|
12
|
+
borderRadius: theme.tokens.radius.full,
|
|
13
|
+
alignSelf: 'flex-start'
|
|
14
|
+
},
|
|
15
|
+
text: {
|
|
16
|
+
fontSize: theme.tokens.fontSize.xs,
|
|
17
|
+
fontWeight: theme.tokens.fontWeight.bold,
|
|
18
|
+
letterSpacing: 0.3
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Badge
|
|
24
|
+
* Pill de estado. `variant` cubre los casos comunes (éxito/error/advertencia/
|
|
25
|
+
* info/neutral); `backgroundColor`/`textColor` quedan para casos que no
|
|
26
|
+
* encajan en el set semántico.
|
|
27
|
+
*/
|
|
28
|
+
export const Badge = /*#__PURE__*/memo(({
|
|
29
|
+
label,
|
|
30
|
+
variant = 'neutral',
|
|
31
|
+
backgroundColor,
|
|
32
|
+
textColor,
|
|
33
|
+
style
|
|
34
|
+
}) => {
|
|
35
|
+
const theme = useTheme();
|
|
36
|
+
const styles = useStyles();
|
|
37
|
+
const allowFontScaling = useAllowFontScaling();
|
|
38
|
+
const {
|
|
39
|
+
colors
|
|
40
|
+
} = theme;
|
|
41
|
+
const palette = {
|
|
42
|
+
success: {
|
|
43
|
+
bg: colors.success + '20',
|
|
44
|
+
fg: colors.success
|
|
45
|
+
},
|
|
46
|
+
error: {
|
|
47
|
+
bg: colors.error + '20',
|
|
48
|
+
fg: colors.error
|
|
49
|
+
},
|
|
50
|
+
warning: {
|
|
51
|
+
bg: colors.warning + '20',
|
|
52
|
+
fg: colors.warning
|
|
53
|
+
},
|
|
54
|
+
info: {
|
|
55
|
+
bg: colors.secondary + '20',
|
|
56
|
+
fg: colors.secondary
|
|
57
|
+
},
|
|
58
|
+
neutral: {
|
|
59
|
+
bg: colors.inputBackground,
|
|
60
|
+
fg: colors.textLight
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return /*#__PURE__*/_jsx(View, {
|
|
64
|
+
style: [styles.badge, {
|
|
65
|
+
backgroundColor: backgroundColor ?? palette[variant].bg
|
|
66
|
+
}, style],
|
|
67
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
68
|
+
allowFontScaling: allowFontScaling,
|
|
69
|
+
style: [styles.text, {
|
|
70
|
+
color: textColor ?? palette[variant].fg
|
|
71
|
+
}],
|
|
72
|
+
children: label
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
Badge.displayName = 'Badge';
|
|
77
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useTheme","jsx","_jsx","useStyles","theme","badge","paddingHorizontal","tokens","spacing","md","paddingVertical","xs","borderRadius","radius","full","alignSelf","text","fontSize","fontWeight","bold","letterSpacing","Badge","label","variant","backgroundColor","textColor","style","styles","allowFontScaling","colors","palette","success","bg","fg","error","warning","info","secondary","neutral","inputBackground","textLight","children","color","displayName"],"sourceRoot":"../../../src","sources":["atoms/Badge.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAapE,MAAMC,SAAS,GAAGL,YAAY,CAAEM,KAAK,KAAM;EACzCC,KAAK,EAAE;IACLC,iBAAiB,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE,GAAG,CAAC;IAC9CC,eAAe,EAAEN,KAAK,CAACG,MAAM,CAACC,OAAO,CAACG,EAAE,GAAG,CAAC;IAC5CC,YAAY,EAAER,KAAK,CAACG,MAAM,CAACM,MAAM,CAACC,IAAI;IACtCC,SAAS,EAAE;EACb,CAAC;EACDC,IAAI,EAAE;IAAEC,QAAQ,EAAEb,KAAK,CAACG,MAAM,CAACU,QAAQ,CAACN,EAAE;IAAEO,UAAU,EAAEd,KAAK,CAACG,MAAM,CAACW,UAAU,CAACC,IAAI;IAAEC,aAAa,EAAE;EAAI;AAC3G,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,KAAK,gBAAG1B,IAAI,CAAC,CAAC;EAAE2B,KAAK;EAAEC,OAAO,GAAG,SAAS;EAAEC,eAAe;EAAEC,SAAS;EAAEC;AAAkB,CAAC,KAAK;EAC3G,MAAMtB,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAM2B,MAAM,GAAGxB,SAAS,CAAC,CAAC;EAC1B,MAAMyB,gBAAgB,GAAG7B,mBAAmB,CAAC,CAAC;EAC9C,MAAM;IAAE8B;EAAO,CAAC,GAAGzB,KAAK;EAExB,MAAM0B,OAAyD,GAAG;IAChEC,OAAO,EAAE;MAAEC,EAAE,EAAEH,MAAM,CAACE,OAAO,GAAG,IAAI;MAAEE,EAAE,EAAEJ,MAAM,CAACE;IAAQ,CAAC;IAC1DG,KAAK,EAAE;MAAEF,EAAE,EAAEH,MAAM,CAACK,KAAK,GAAG,IAAI;MAAED,EAAE,EAAEJ,MAAM,CAACK;IAAM,CAAC;IACpDC,OAAO,EAAE;MAAEH,EAAE,EAAEH,MAAM,CAACM,OAAO,GAAG,IAAI;MAAEF,EAAE,EAAEJ,MAAM,CAACM;IAAQ,CAAC;IAC1DC,IAAI,EAAE;MAAEJ,EAAE,EAAEH,MAAM,CAACQ,SAAS,GAAG,IAAI;MAAEJ,EAAE,EAAEJ,MAAM,CAACQ;IAAU,CAAC;IAC3DC,OAAO,EAAE;MAAEN,EAAE,EAAEH,MAAM,CAACU,eAAe;MAAEN,EAAE,EAAEJ,MAAM,CAACW;IAAU;EAC9D,CAAC;EAED,oBACEtC,IAAA,CAACL,IAAI;IAAC6B,KAAK,EAAE,CAACC,MAAM,CAACtB,KAAK,EAAE;MAAEmB,eAAe,EAAEA,eAAe,IAAIM,OAAO,CAACP,OAAO,CAAC,CAACS;IAAG,CAAC,EAAEN,KAAK,CAAE;IAAAe,QAAA,eAC9FvC,IAAA,CAACN,IAAI;MAACgC,gBAAgB,EAAEA,gBAAiB;MAACF,KAAK,EAAE,CAACC,MAAM,CAACX,IAAI,EAAE;QAAE0B,KAAK,EAAEjB,SAAS,IAAIK,OAAO,CAACP,OAAO,CAAC,CAACU;MAAG,CAAC,CAAE;MAAAQ,QAAA,EACzGnB;IAAK,CACF;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AACFD,KAAK,CAACsB,WAAW,GAAG,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo, useRef } from 'react';
|
|
4
|
+
import { ActivityIndicator, Animated, Pressable, Text } from 'react-native';
|
|
5
|
+
import { createStyles } from '../theme/createStyles';
|
|
6
|
+
import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
|
|
7
|
+
import { Icon } from '../icons/Icon';
|
|
8
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
10
|
+
const useStyles = createStyles(theme => ({
|
|
11
|
+
base: {
|
|
12
|
+
flexDirection: 'row',
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
justifyContent: 'center',
|
|
15
|
+
borderRadius: theme.tokens.radius.lg,
|
|
16
|
+
borderWidth: 0
|
|
17
|
+
},
|
|
18
|
+
sm: {
|
|
19
|
+
paddingVertical: theme.tokens.spacing.sm,
|
|
20
|
+
paddingHorizontal: theme.tokens.spacing.md
|
|
21
|
+
},
|
|
22
|
+
md: {
|
|
23
|
+
paddingVertical: theme.tokens.spacing.lg - 1,
|
|
24
|
+
paddingHorizontal: theme.tokens.spacing.xl
|
|
25
|
+
},
|
|
26
|
+
lg: {
|
|
27
|
+
paddingVertical: theme.tokens.spacing.lg + 2,
|
|
28
|
+
paddingHorizontal: theme.tokens.spacing.xxl
|
|
29
|
+
},
|
|
30
|
+
link: {
|
|
31
|
+
paddingVertical: theme.tokens.spacing.xs,
|
|
32
|
+
paddingHorizontal: 0,
|
|
33
|
+
justifyContent: 'flex-start'
|
|
34
|
+
},
|
|
35
|
+
outline: {
|
|
36
|
+
borderWidth: 1
|
|
37
|
+
},
|
|
38
|
+
filledShadow: {
|
|
39
|
+
...theme.tokens.shadow.md,
|
|
40
|
+
shadowColor: '#000'
|
|
41
|
+
},
|
|
42
|
+
text: {
|
|
43
|
+
fontWeight: theme.tokens.fontWeight.semibold,
|
|
44
|
+
textAlign: 'center'
|
|
45
|
+
},
|
|
46
|
+
textSm: {
|
|
47
|
+
fontSize: theme.tokens.fontSize.sm
|
|
48
|
+
},
|
|
49
|
+
textMd: {
|
|
50
|
+
fontSize: theme.tokens.fontSize.lg
|
|
51
|
+
},
|
|
52
|
+
textLg: {
|
|
53
|
+
fontSize: theme.tokens.fontSize.xl
|
|
54
|
+
},
|
|
55
|
+
underline: {
|
|
56
|
+
textDecorationLine: 'underline'
|
|
57
|
+
},
|
|
58
|
+
iconLeft: {
|
|
59
|
+
marginRight: theme.tokens.spacing.sm
|
|
60
|
+
},
|
|
61
|
+
iconRight: {
|
|
62
|
+
marginLeft: theme.tokens.spacing.sm
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
function resolveColors(variant, disabled, colors) {
|
|
66
|
+
if (disabled) {
|
|
67
|
+
return {
|
|
68
|
+
background: colors.inputBackground,
|
|
69
|
+
text: colors.textLight,
|
|
70
|
+
border: 'transparent'
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
switch (variant) {
|
|
74
|
+
case 'outline':
|
|
75
|
+
return {
|
|
76
|
+
background: 'transparent',
|
|
77
|
+
text: colors.primary,
|
|
78
|
+
border: colors.primary
|
|
79
|
+
};
|
|
80
|
+
case 'ghost':
|
|
81
|
+
return {
|
|
82
|
+
background: 'transparent',
|
|
83
|
+
text: colors.primary,
|
|
84
|
+
border: 'transparent'
|
|
85
|
+
};
|
|
86
|
+
case 'link':
|
|
87
|
+
return {
|
|
88
|
+
background: 'transparent',
|
|
89
|
+
text: colors.primary,
|
|
90
|
+
border: 'transparent'
|
|
91
|
+
};
|
|
92
|
+
case 'secondary':
|
|
93
|
+
return {
|
|
94
|
+
background: colors.secondary,
|
|
95
|
+
text: colors.white,
|
|
96
|
+
border: 'transparent'
|
|
97
|
+
};
|
|
98
|
+
case 'destructive':
|
|
99
|
+
return {
|
|
100
|
+
background: colors.error,
|
|
101
|
+
text: colors.white,
|
|
102
|
+
border: 'transparent'
|
|
103
|
+
};
|
|
104
|
+
case 'primary':
|
|
105
|
+
default:
|
|
106
|
+
return {
|
|
107
|
+
background: colors.primary,
|
|
108
|
+
text: colors.white,
|
|
109
|
+
border: 'transparent'
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Button
|
|
116
|
+
* Único componente de botón de la librería. `variant` decide el estilo
|
|
117
|
+
* semántico, `size` la densidad. El feedback de "presionado" anima solo
|
|
118
|
+
* `transform` (Animated.spring, useNativeDriver) — nunca opacity ni layout.
|
|
119
|
+
*/
|
|
120
|
+
export const Button = /*#__PURE__*/memo(({
|
|
121
|
+
title,
|
|
122
|
+
onPress,
|
|
123
|
+
variant = 'primary',
|
|
124
|
+
size = 'md',
|
|
125
|
+
loading = false,
|
|
126
|
+
disabled = false,
|
|
127
|
+
style,
|
|
128
|
+
textStyle,
|
|
129
|
+
leftIcon,
|
|
130
|
+
rightIcon,
|
|
131
|
+
leftIconName,
|
|
132
|
+
rightIconName,
|
|
133
|
+
iconColor,
|
|
134
|
+
testID,
|
|
135
|
+
accessibilityLabel
|
|
136
|
+
}) => {
|
|
137
|
+
const styles = useStyles();
|
|
138
|
+
const colors = useColors();
|
|
139
|
+
const theme = useTheme();
|
|
140
|
+
const allowFontScaling = useAllowFontScaling();
|
|
141
|
+
const scale = useRef(new Animated.Value(1)).current;
|
|
142
|
+
const isDisabled = disabled || loading;
|
|
143
|
+
const isFilled = variant === 'primary' || variant === 'secondary' || variant === 'destructive';
|
|
144
|
+
const resolved = resolveColors(variant, disabled, colors);
|
|
145
|
+
const effectiveIconColor = iconColor ?? resolved.text;
|
|
146
|
+
const animateTo = value => {
|
|
147
|
+
Animated.spring(scale, {
|
|
148
|
+
toValue: value,
|
|
149
|
+
useNativeDriver: true,
|
|
150
|
+
speed: 50,
|
|
151
|
+
bounciness: 6
|
|
152
|
+
}).start();
|
|
153
|
+
};
|
|
154
|
+
const containerStyle = [styles.base, styles[size], variant === 'link' && styles.link, variant === 'outline' && [styles.outline, {
|
|
155
|
+
borderColor: resolved.border
|
|
156
|
+
}], {
|
|
157
|
+
backgroundColor: resolved.background
|
|
158
|
+
}, isFilled && !disabled && styles.filledShadow, {
|
|
159
|
+
opacity: isDisabled ? 0.7 : 1
|
|
160
|
+
}, style];
|
|
161
|
+
const labelStyle = [styles.text, size === 'sm' ? styles.textSm : size === 'lg' ? styles.textLg : styles.textMd, {
|
|
162
|
+
color: resolved.text
|
|
163
|
+
}, variant === 'link' && styles.underline, textStyle];
|
|
164
|
+
const iconSize = size === 'sm' ? 16 : size === 'lg' ? 22 : 20;
|
|
165
|
+
return (
|
|
166
|
+
/*#__PURE__*/
|
|
167
|
+
// El Pressable ES el contenedor animado, no un wrapper alrededor de uno.
|
|
168
|
+
// Con un Animated.View interno, un `style` de layout (flex, width,
|
|
169
|
+
// margin) caía en el hijo mientras el Pressable — que es quien ocupa
|
|
170
|
+
// lugar en el layout del padre — quedaba sin él: el ancho colapsaba y
|
|
171
|
+
// el label desaparecía (visible en los botones en fila del Alert).
|
|
172
|
+
_jsx(AnimatedPressable, {
|
|
173
|
+
onPress: onPress,
|
|
174
|
+
onPressIn: () => {
|
|
175
|
+
if (!isDisabled) animateTo(0.95);
|
|
176
|
+
},
|
|
177
|
+
onPressOut: () => {
|
|
178
|
+
if (!isDisabled) animateTo(1);
|
|
179
|
+
},
|
|
180
|
+
disabled: isDisabled,
|
|
181
|
+
testID: testID,
|
|
182
|
+
accessibilityRole: "button",
|
|
183
|
+
accessibilityLabel: accessibilityLabel ?? title,
|
|
184
|
+
accessibilityState: {
|
|
185
|
+
disabled: isDisabled,
|
|
186
|
+
busy: loading
|
|
187
|
+
},
|
|
188
|
+
style: [containerStyle, {
|
|
189
|
+
transform: [{
|
|
190
|
+
scale
|
|
191
|
+
}]
|
|
192
|
+
}],
|
|
193
|
+
children: loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
194
|
+
size: "small",
|
|
195
|
+
color: resolved.text
|
|
196
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
197
|
+
children: [leftIcon, !leftIcon && leftIconName && /*#__PURE__*/_jsx(Icon, {
|
|
198
|
+
name: leftIconName,
|
|
199
|
+
size: iconSize,
|
|
200
|
+
color: effectiveIconColor,
|
|
201
|
+
style: styles.iconLeft
|
|
202
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
203
|
+
allowFontScaling: allowFontScaling,
|
|
204
|
+
style: labelStyle,
|
|
205
|
+
children: title
|
|
206
|
+
}), rightIcon, !rightIcon && rightIconName && /*#__PURE__*/_jsx(Icon, {
|
|
207
|
+
name: rightIconName,
|
|
208
|
+
size: iconSize,
|
|
209
|
+
color: effectiveIconColor,
|
|
210
|
+
style: styles.iconRight
|
|
211
|
+
})]
|
|
212
|
+
})
|
|
213
|
+
})
|
|
214
|
+
);
|
|
215
|
+
});
|
|
216
|
+
Button.displayName = 'Button';
|
|
217
|
+
//# sourceMappingURL=Button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useRef","ActivityIndicator","Animated","Pressable","Text","createStyles","useAllowFontScaling","useColors","useTheme","Icon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedPressable","createAnimatedComponent","useStyles","theme","base","flexDirection","alignItems","justifyContent","borderRadius","tokens","radius","lg","borderWidth","sm","paddingVertical","spacing","paddingHorizontal","md","xl","xxl","link","xs","outline","filledShadow","shadow","shadowColor","text","fontWeight","semibold","textAlign","textSm","fontSize","textMd","textLg","underline","textDecorationLine","iconLeft","marginRight","iconRight","marginLeft","resolveColors","variant","disabled","colors","background","inputBackground","textLight","border","primary","secondary","white","error","Button","title","onPress","size","loading","style","textStyle","leftIcon","rightIcon","leftIconName","rightIconName","iconColor","testID","accessibilityLabel","styles","allowFontScaling","scale","Value","current","isDisabled","isFilled","resolved","effectiveIconColor","animateTo","value","spring","toValue","useNativeDriver","speed","bounciness","start","containerStyle","borderColor","backgroundColor","opacity","labelStyle","color","iconSize","onPressIn","onPressOut","accessibilityRole","accessibilityState","busy","transform","children","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/Button.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { createStyles } from '../theme/createStyles';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const useStyles = createStyles(theme => ({
|
|
8
|
+
card: {
|
|
9
|
+
backgroundColor: theme.colors.surface,
|
|
10
|
+
borderRadius: theme.tokens.radius.xl,
|
|
11
|
+
padding: theme.tokens.spacing.lg,
|
|
12
|
+
...theme.tokens.shadow.sm
|
|
13
|
+
}
|
|
14
|
+
}));
|
|
15
|
+
export const Card = /*#__PURE__*/memo(({
|
|
16
|
+
children,
|
|
17
|
+
style,
|
|
18
|
+
...props
|
|
19
|
+
}) => {
|
|
20
|
+
const styles = useStyles();
|
|
21
|
+
return /*#__PURE__*/_jsx(View, {
|
|
22
|
+
style: [styles.card, style],
|
|
23
|
+
...props,
|
|
24
|
+
children: children
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
Card.displayName = 'Card';
|
|
28
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","View","createStyles","jsx","_jsx","useStyles","theme","card","backgroundColor","colors","surface","borderRadius","tokens","radius","xl","padding","spacing","lg","shadow","sm","Card","children","style","props","styles","displayName"],"sourceRoot":"../../../src","sources":["atoms/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,YAAY,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOrD,MAAMC,SAAS,GAAGH,YAAY,CAAEI,KAAK,KAAM;EACzCC,IAAI,EAAE;IACJC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO;IACrCC,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,EAAE;IACpCC,OAAO,EAAET,KAAK,CAACM,MAAM,CAACI,OAAO,CAACC,EAAE;IAChC,GAAGX,KAAK,CAACM,MAAM,CAACM,MAAM,CAACC;EACzB;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,MAAMC,IAAI,gBAAGpB,IAAI,CAAC,CAAC;EAAEqB,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAGnB,SAAS,CAAC,CAAC;EAC1B,oBACED,IAAA,CAACH,IAAI;IAACqB,KAAK,EAAE,CAACE,MAAM,CAACjB,IAAI,EAAEe,KAAK,CAAE;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFD,IAAI,CAACK,WAAW,GAAG,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo, useEffect, useRef } from 'react';
|
|
4
|
+
import { Animated, Text, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { createStyles } from '../theme/createStyles';
|
|
6
|
+
import { useAllowFontScaling, useColors } from '../theme/UIProvider';
|
|
7
|
+
import { Icon } from '../icons/Icon';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const useStyles = createStyles(theme => ({
|
|
10
|
+
container: {
|
|
11
|
+
flexDirection: 'row',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
marginBottom: theme.tokens.spacing.sm
|
|
14
|
+
},
|
|
15
|
+
box: {
|
|
16
|
+
width: 24,
|
|
17
|
+
height: 24,
|
|
18
|
+
borderRadius: theme.tokens.radius.sm,
|
|
19
|
+
borderWidth: 2,
|
|
20
|
+
justifyContent: 'center',
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
marginRight: theme.tokens.spacing.sm + 2
|
|
23
|
+
},
|
|
24
|
+
label: {
|
|
25
|
+
fontSize: theme.tokens.fontSize.md,
|
|
26
|
+
color: theme.colors.text
|
|
27
|
+
}
|
|
28
|
+
}));
|
|
29
|
+
export const Checkbox = /*#__PURE__*/memo(({
|
|
30
|
+
value,
|
|
31
|
+
onValueChange,
|
|
32
|
+
label,
|
|
33
|
+
color,
|
|
34
|
+
disabled,
|
|
35
|
+
testID
|
|
36
|
+
}) => {
|
|
37
|
+
const colors = useColors();
|
|
38
|
+
const styles = useStyles();
|
|
39
|
+
const allowFontScaling = useAllowFontScaling();
|
|
40
|
+
const activeColor = color || colors.primary;
|
|
41
|
+
const progress = useRef(new Animated.Value(value ? 1 : 0)).current;
|
|
42
|
+
const checkScale = useRef(new Animated.Value(value ? 1 : 0)).current;
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
Animated.timing(progress, {
|
|
45
|
+
toValue: value ? 1 : 0,
|
|
46
|
+
duration: 150,
|
|
47
|
+
useNativeDriver: false
|
|
48
|
+
}).start();
|
|
49
|
+
Animated.spring(checkScale, {
|
|
50
|
+
toValue: value ? 1 : 0,
|
|
51
|
+
useNativeDriver: true,
|
|
52
|
+
speed: 40,
|
|
53
|
+
bounciness: 10
|
|
54
|
+
}).start();
|
|
55
|
+
}, [value]);
|
|
56
|
+
const backgroundColor = progress.interpolate({
|
|
57
|
+
inputRange: [0, 1],
|
|
58
|
+
outputRange: [colors.surface, activeColor]
|
|
59
|
+
});
|
|
60
|
+
const borderColor = progress.interpolate({
|
|
61
|
+
inputRange: [0, 1],
|
|
62
|
+
outputRange: [colors.border, activeColor]
|
|
63
|
+
});
|
|
64
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
65
|
+
style: styles.container,
|
|
66
|
+
activeOpacity: 0.7,
|
|
67
|
+
disabled: disabled,
|
|
68
|
+
onPress: () => onValueChange(!value),
|
|
69
|
+
accessibilityRole: "checkbox",
|
|
70
|
+
accessibilityState: {
|
|
71
|
+
checked: value,
|
|
72
|
+
disabled: !!disabled
|
|
73
|
+
},
|
|
74
|
+
accessibilityLabel: label,
|
|
75
|
+
testID: testID,
|
|
76
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
77
|
+
style: [styles.box, {
|
|
78
|
+
backgroundColor,
|
|
79
|
+
borderColor,
|
|
80
|
+
opacity: disabled ? 0.5 : 1
|
|
81
|
+
}],
|
|
82
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
83
|
+
style: {
|
|
84
|
+
transform: [{
|
|
85
|
+
scale: checkScale
|
|
86
|
+
}]
|
|
87
|
+
},
|
|
88
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
89
|
+
name: "check",
|
|
90
|
+
size: 16,
|
|
91
|
+
color: colors.white
|
|
92
|
+
})
|
|
93
|
+
})
|
|
94
|
+
}), label && /*#__PURE__*/_jsx(Text, {
|
|
95
|
+
allowFontScaling: allowFontScaling,
|
|
96
|
+
style: styles.label,
|
|
97
|
+
children: label
|
|
98
|
+
})]
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
Checkbox.displayName = 'Checkbox';
|
|
102
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useRef","Animated","Text","TouchableOpacity","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flexDirection","alignItems","marginBottom","tokens","spacing","sm","box","width","height","borderRadius","radius","borderWidth","justifyContent","marginRight","label","fontSize","md","color","colors","text","Checkbox","value","onValueChange","disabled","testID","styles","allowFontScaling","activeColor","primary","progress","Value","current","checkScale","timing","toValue","duration","useNativeDriver","start","spring","speed","bounciness","backgroundColor","interpolate","inputRange","outputRange","surface","borderColor","border","style","activeOpacity","onPress","accessibilityRole","accessibilityState","checked","accessibilityLabel","children","View","opacity","transform","scale","name","size","white","displayName"],"sourceRoot":"../../../src","sources":["atoms/Checkbox.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { useColors } from '../theme/UIProvider';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const Divider = /*#__PURE__*/memo(({
|
|
8
|
+
style,
|
|
9
|
+
testID
|
|
10
|
+
}) => {
|
|
11
|
+
const colors = useColors();
|
|
12
|
+
return /*#__PURE__*/_jsx(View, {
|
|
13
|
+
testID: testID,
|
|
14
|
+
style: [{
|
|
15
|
+
height: 1,
|
|
16
|
+
backgroundColor: colors.border,
|
|
17
|
+
width: '100%'
|
|
18
|
+
}, style]
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
Divider.displayName = 'Divider';
|
|
22
|
+
//# sourceMappingURL=Divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","View","useColors","jsx","_jsx","Divider","style","testID","colors","height","backgroundColor","border","width","displayName"],"sourceRoot":"../../../src","sources":["atoms/Divider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOhD,OAAO,MAAMC,OAAO,gBAAGL,IAAI,CAAC,CAAC;EAAEM,KAAK;EAAEC;AAAqB,CAAC,KAAK;EAC/D,MAAMC,MAAM,GAAGN,SAAS,CAAC,CAAC;EAC1B,oBAAOE,IAAA,CAACH,IAAI;IAACM,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAE,CAAC;MAAEG,MAAM,EAAE,CAAC;MAAEC,eAAe,EAAEF,MAAM,CAACG,MAAM;MAAEC,KAAK,EAAE;IAAO,CAAC,EAAEN,KAAK;EAAE,CAAE,CAAC;AAC/G,CAAC,CAAC;AACFD,OAAO,CAACQ,WAAW,GAAG,SAAS","ignoreList":[]}
|