@solostylist/ui-kit-native 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/use-count-down.d.ts +0 -2
- package/dist/hooks/use-count-down.d.ts.map +1 -1
- package/dist/hooks/use-count-down.js +0 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/s-avatar/s-avatar.d.ts +4 -8
- package/dist/s-avatar/s-avatar.d.ts.map +1 -1
- package/dist/s-avatar/s-avatar.js +49 -42
- package/dist/s-button/s-button.d.ts +0 -2
- package/dist/s-button/s-button.d.ts.map +1 -1
- package/dist/s-button/s-button.js +27 -24
- package/dist/s-button-link/s-button-link.d.ts +0 -2
- package/dist/s-button-link/s-button-link.d.ts.map +1 -1
- package/dist/s-button-link/s-button-link.js +21 -26
- package/dist/s-chat-input/index.d.ts +1 -1
- package/dist/s-chat-input/index.d.ts.map +1 -1
- package/dist/s-chat-input/s-chat-input.d.ts +19 -8
- package/dist/s-chat-input/s-chat-input.d.ts.map +1 -1
- package/dist/s-chat-input/s-chat-input.js +115 -46
- package/dist/s-chat-message/s-chat-message.d.ts +5 -7
- package/dist/s-chat-message/s-chat-message.d.ts.map +1 -1
- package/dist/s-chat-message/s-chat-message.js +100 -175
- package/dist/s-checkbox/s-checkbox.d.ts +0 -2
- package/dist/s-checkbox/s-checkbox.d.ts.map +1 -1
- package/dist/s-checkbox/s-checkbox.js +11 -18
- package/dist/s-chip/s-chip.d.ts +0 -2
- package/dist/s-chip/s-chip.d.ts.map +1 -1
- package/dist/s-chip/s-chip.js +35 -54
- package/dist/s-code-block/s-code-block.d.ts +0 -2
- package/dist/s-code-block/s-code-block.d.ts.map +1 -1
- package/dist/s-code-block/s-code-block.js +28 -40
- package/dist/s-comment-message/s-comment-message.d.ts +3 -5
- package/dist/s-comment-message/s-comment-message.d.ts.map +1 -1
- package/dist/s-comment-message/s-comment-message.js +54 -167
- package/dist/s-copyable-text/s-copyable-text.d.ts +0 -2
- package/dist/s-copyable-text/s-copyable-text.d.ts.map +1 -1
- package/dist/s-copyable-text/s-copyable-text.js +20 -45
- package/dist/s-countdown/index.d.ts +0 -1
- package/dist/s-countdown/index.d.ts.map +1 -1
- package/dist/s-countdown/index.js +0 -1
- package/dist/s-countdown/s-count-box.d.ts +5 -3
- package/dist/s-countdown/s-count-box.d.ts.map +1 -1
- package/dist/s-countdown/s-count-box.js +69 -60
- package/dist/s-countdown/s-countdown.d.ts +6 -3
- package/dist/s-countdown/s-countdown.d.ts.map +1 -1
- package/dist/s-countdown/s-countdown.js +11 -10
- package/dist/s-data-table/s-data-table.d.ts +0 -3
- package/dist/s-data-table/s-data-table.d.ts.map +1 -1
- package/dist/s-data-table/s-data-table.js +27 -50
- package/dist/s-date-picker/s-date-picker.d.ts +0 -2
- package/dist/s-date-picker/s-date-picker.d.ts.map +1 -1
- package/dist/s-date-picker/s-date-picker.js +51 -110
- package/dist/s-date-time-picker/s-date-time-picker.d.ts +0 -2
- package/dist/s-date-time-picker/s-date-time-picker.d.ts.map +1 -1
- package/dist/s-date-time-picker/s-date-time-picker.js +111 -203
- package/dist/s-divider/index.d.ts +2 -0
- package/dist/s-divider/index.d.ts.map +1 -0
- package/dist/s-divider/index.js +1 -0
- package/dist/s-divider/s-divider.d.ts +24 -0
- package/dist/s-divider/s-divider.d.ts.map +1 -0
- package/dist/s-divider/s-divider.js +30 -0
- package/dist/s-file-dropzone/s-file-dropzone.d.ts +0 -35
- package/dist/s-file-dropzone/s-file-dropzone.d.ts.map +1 -1
- package/dist/s-file-dropzone/s-file-dropzone.js +46 -120
- package/dist/s-file-icon/s-file-icon.d.ts +0 -2
- package/dist/s-file-icon/s-file-icon.d.ts.map +1 -1
- package/dist/s-file-icon/s-file-icon.js +11 -12
- package/dist/s-form/s-form.d.ts +0 -1
- package/dist/s-form/s-form.d.ts.map +1 -1
- package/dist/s-form/s-form.js +0 -1
- package/dist/s-icon-button/s-icon-button.d.ts +9 -9
- package/dist/s-icon-button/s-icon-button.d.ts.map +1 -1
- package/dist/s-icon-button/s-icon-button.js +38 -4
- package/dist/s-image-comparison/s-image-comparison.d.ts +3 -5
- package/dist/s-image-comparison/s-image-comparison.d.ts.map +1 -1
- package/dist/s-image-comparison/s-image-comparison.js +75 -102
- package/dist/s-label/s-label.d.ts +0 -1
- package/dist/s-label/s-label.d.ts.map +1 -1
- package/dist/s-label/s-label.js +8 -24
- package/dist/s-language-switcher/s-language-switcher.d.ts +2 -5
- package/dist/s-language-switcher/s-language-switcher.d.ts.map +1 -1
- package/dist/s-language-switcher/s-language-switcher.js +14 -25
- package/dist/s-lazy-image/s-lazy-image.d.ts +4 -6
- package/dist/s-lazy-image/s-lazy-image.d.ts.map +1 -1
- package/dist/s-lazy-image/s-lazy-image.js +37 -34
- package/dist/s-moving-border/s-moving-border.d.ts +0 -2
- package/dist/s-moving-border/s-moving-border.d.ts.map +1 -1
- package/dist/s-moving-border/s-moving-border.js +19 -24
- package/dist/s-multi-select/s-multi-select.d.ts +0 -2
- package/dist/s-multi-select/s-multi-select.d.ts.map +1 -1
- package/dist/s-multi-select/s-multi-select.js +54 -105
- package/dist/s-pagination/s-pagination.d.ts +12 -6
- package/dist/s-pagination/s-pagination.d.ts.map +1 -1
- package/dist/s-pagination/s-pagination.js +69 -43
- package/dist/s-rating/s-rating.d.ts +0 -2
- package/dist/s-rating/s-rating.d.ts.map +1 -1
- package/dist/s-rating/s-rating.js +31 -29
- package/dist/s-review/s-review.d.ts +6 -8
- package/dist/s-review/s-review.d.ts.map +1 -1
- package/dist/s-review/s-review.js +66 -153
- package/dist/s-scroll-to-top/s-scroll-to-top.d.ts +0 -2
- package/dist/s-scroll-to-top/s-scroll-to-top.d.ts.map +1 -1
- package/dist/s-scroll-to-top/s-scroll-to-top.js +17 -32
- package/dist/s-select/s-select.d.ts +5 -5
- package/dist/s-select/s-select.d.ts.map +1 -1
- package/dist/s-select/s-select.js +54 -94
- package/dist/s-select-list/s-select-list.d.ts +0 -2
- package/dist/s-select-list/s-select-list.d.ts.map +1 -1
- package/dist/s-select-list/s-select-list.js +24 -38
- package/dist/s-skeleton/index.d.ts +3 -0
- package/dist/s-skeleton/index.d.ts.map +1 -0
- package/dist/s-skeleton/index.js +1 -0
- package/dist/s-skeleton/s-skeleton.d.ts +27 -0
- package/dist/s-skeleton/s-skeleton.d.ts.map +1 -0
- package/dist/s-skeleton/s-skeleton.js +126 -0
- package/dist/s-switch/index.d.ts +3 -0
- package/dist/s-switch/index.d.ts.map +1 -0
- package/dist/s-switch/index.js +1 -0
- package/dist/s-switch/s-switch.d.ts +30 -0
- package/dist/s-switch/s-switch.d.ts.map +1 -0
- package/dist/s-switch/s-switch.js +44 -0
- package/dist/s-text-field/s-text-field.d.ts +0 -2
- package/dist/s-text-field/s-text-field.d.ts.map +1 -1
- package/dist/s-text-field/s-text-field.js +10 -23
- package/dist/s-text-shimmer/s-text-shimmer.d.ts +0 -14
- package/dist/s-text-shimmer/s-text-shimmer.d.ts.map +1 -1
- package/dist/s-text-shimmer/s-text-shimmer.js +28 -46
- package/dist/s-text-truncation/s-text-truncation.d.ts +4 -7
- package/dist/s-text-truncation/s-text-truncation.d.ts.map +1 -1
- package/dist/s-text-truncation/s-text-truncation.js +74 -34
- package/dist/s-tip/s-tip.d.ts +0 -1
- package/dist/s-tip/s-tip.d.ts.map +1 -1
- package/dist/s-tip/s-tip.js +9 -16
- package/dist/s-tooltip/index.d.ts +2 -0
- package/dist/s-tooltip/index.d.ts.map +1 -0
- package/dist/s-tooltip/index.js +1 -0
- package/dist/s-tooltip/s-tooltip.d.ts +23 -0
- package/dist/s-tooltip/s-tooltip.d.ts.map +1 -0
- package/dist/s-tooltip/s-tooltip.js +17 -0
- package/dist/s-zoom-image/s-zoom-image.d.ts +3 -5
- package/dist/s-zoom-image/s-zoom-image.d.ts.map +1 -1
- package/dist/s-zoom-image/s-zoom-image.js +16 -21
- package/dist/theme/theme-primitives.d.ts +10 -0
- package/dist/theme/theme-primitives.d.ts.map +1 -1
- package/dist/theme/theme-primitives.js +11 -0
- package/dist/utils/bytes-to-size.d.ts +0 -1
- package/dist/utils/bytes-to-size.d.ts.map +1 -1
- package/dist/utils/bytes-to-size.js +0 -1
- package/package.json +3 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Time left object structure
|
|
3
|
-
* Synced with web useCountDown from @solostylist/ui-kit
|
|
4
3
|
*/
|
|
5
4
|
export interface TimeLeft {
|
|
6
5
|
days: number;
|
|
@@ -56,7 +55,6 @@ export interface UseCountDownReturn {
|
|
|
56
55
|
}
|
|
57
56
|
/**
|
|
58
57
|
* Enhanced countdown hook with comprehensive features
|
|
59
|
-
* Synced with web useCountDown from @solostylist/ui-kit
|
|
60
58
|
*
|
|
61
59
|
* Features:
|
|
62
60
|
* - Pause/resume functionality
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-count-down.d.ts","sourceRoot":"","sources":["../../src/hooks/use-count-down.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"use-count-down.d.ts","sourceRoot":"","sources":["../../src/hooks/use-count-down.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iDAAiD;IACjD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACtC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sCAAsC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,YAAY,GAAI,2EAQnB,iBAAiB,KAAG,kBAuMtB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,9 +8,10 @@ export { SThemeProvider, useSTheme, darkTheme, lightTheme, type SThemeProviderPr
|
|
|
8
8
|
export { SAvatar, type SAvatarProps, type SAvatarSize, type SAvatarColor } from './s-avatar';
|
|
9
9
|
export { SButton, type SButtonProps, type SButtonColor, type SButtonVariant, type SButtonSize } from './s-button';
|
|
10
10
|
export { SButtonLink, type SButtonLinkProps } from './s-button-link';
|
|
11
|
-
export { SChatInput, type SChatInputProps } from './s-chat-input';
|
|
11
|
+
export { SChatInput, type SChatInputProps, type ChatFile } from './s-chat-input';
|
|
12
12
|
export { SChatMessage, type SChatMessageProps, type ChatAttachment } from './s-chat-message';
|
|
13
13
|
export { SCheckbox, type SCheckboxProps } from './s-checkbox';
|
|
14
|
+
export { SSwitch, type SSwitchProps } from './s-switch';
|
|
14
15
|
export { SCodeBlock, type SCodeBlockProps } from './s-code-block';
|
|
15
16
|
export { SCommentMessage, type SCommentMessageProps } from './s-comment-message';
|
|
16
17
|
export { SChip, type SChipProps, type SChipColor, type SChipVariant, type SChipSize } from './s-chip';
|
|
@@ -25,6 +26,7 @@ export { SForm, type SFormProps } from './s-form';
|
|
|
25
26
|
export { SIconButton, type SIconButtonProps } from './s-icon-button';
|
|
26
27
|
export { SImageComparison, type SImageComparisonProps } from './s-image-comparison';
|
|
27
28
|
export { SLanguageSwitcher, type SLanguageSwitcherProps, type SLanguageOption, defaultLanguageOptions, } from './s-language-switcher';
|
|
29
|
+
export { SDivider, type SDividerProps } from './s-divider';
|
|
28
30
|
export { SLabel, type SLabelProps } from './s-label';
|
|
29
31
|
export { SLazyImage, type SLazyImageProps, type SLazyImageVariant } from './s-lazy-image';
|
|
30
32
|
export { SMovingBorder, type SMovingBorderProps } from './s-moving-border';
|
|
@@ -35,12 +37,14 @@ export { SReview, type SReviewProps } from './s-review';
|
|
|
35
37
|
export { SScrollToTop, type SScrollToTopProps } from './s-scroll-to-top';
|
|
36
38
|
export { SSelect, type SSelectProps } from './s-select';
|
|
37
39
|
export { SSelectList, type SSelectListProps, type SSelectListItem } from './s-select-list';
|
|
40
|
+
export { SSkeleton, type SSkeletonProps } from './s-skeleton';
|
|
38
41
|
export { SMultiSelect, type SMultiSelectProps } from './s-multi-select';
|
|
39
42
|
export { SText, type STextProps } from './s-text';
|
|
40
43
|
export { STextField, type STextFieldProps } from './s-text-field';
|
|
41
44
|
export { STextShimmer, type STextShimmerProps } from './s-text-shimmer';
|
|
42
45
|
export { STextTruncation, type STextTruncationProps, type STextTruncationVariant } from './s-text-truncation';
|
|
43
46
|
export { STip, type STipProps } from './s-tip';
|
|
47
|
+
export { STooltip, type STooltipProps } from './s-tooltip';
|
|
44
48
|
export { useCountDown, type UseCountDownProps, type UseCountDownReturn, type TimeLeft, useIsPassedPosition, checkIsPassedPosition, } from './hooks';
|
|
45
49
|
export { brand, lightBrand, gray, lightGray, green, lightGreen, orange, lightOrange, blue, lightBlue, red, lightRed, purple, lightPurple, blackAlpha, whiteAlpha, darkGradients, lightGradients, darkPulse, lightPulse, } from './theme';
|
|
46
50
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export { SButtonLink } from './s-button-link';
|
|
|
13
13
|
export { SChatInput } from './s-chat-input';
|
|
14
14
|
export { SChatMessage } from './s-chat-message';
|
|
15
15
|
export { SCheckbox } from './s-checkbox';
|
|
16
|
+
export { SSwitch } from './s-switch';
|
|
16
17
|
export { SCodeBlock } from './s-code-block';
|
|
17
18
|
export { SCommentMessage } from './s-comment-message';
|
|
18
19
|
export { SChip } from './s-chip';
|
|
@@ -27,6 +28,7 @@ export { SForm } from './s-form';
|
|
|
27
28
|
export { SIconButton } from './s-icon-button';
|
|
28
29
|
export { SImageComparison } from './s-image-comparison';
|
|
29
30
|
export { SLanguageSwitcher, defaultLanguageOptions, } from './s-language-switcher';
|
|
31
|
+
export { SDivider } from './s-divider';
|
|
30
32
|
export { SLabel } from './s-label';
|
|
31
33
|
export { SLazyImage } from './s-lazy-image';
|
|
32
34
|
export { SMovingBorder } from './s-moving-border';
|
|
@@ -37,12 +39,14 @@ export { SReview } from './s-review';
|
|
|
37
39
|
export { SScrollToTop } from './s-scroll-to-top';
|
|
38
40
|
export { SSelect } from './s-select';
|
|
39
41
|
export { SSelectList } from './s-select-list';
|
|
42
|
+
export { SSkeleton } from './s-skeleton';
|
|
40
43
|
export { SMultiSelect } from './s-multi-select';
|
|
41
44
|
export { SText } from './s-text';
|
|
42
45
|
export { STextField } from './s-text-field';
|
|
43
46
|
export { STextShimmer } from './s-text-shimmer';
|
|
44
47
|
export { STextTruncation } from './s-text-truncation';
|
|
45
48
|
export { STip } from './s-tip';
|
|
49
|
+
export { STooltip } from './s-tooltip';
|
|
46
50
|
// Hooks
|
|
47
51
|
export { useCountDown, useIsPassedPosition, checkIsPassedPosition, } from './hooks';
|
|
48
52
|
// Re-export core colors for convenience
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
2
|
+
import { ImageSourcePropType, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
3
|
/**
|
|
4
4
|
* Avatar size variants - matches common sizing patterns
|
|
5
5
|
*/
|
|
@@ -10,11 +10,10 @@ export type SAvatarSize = 'small' | 'medium' | 'large' | number;
|
|
|
10
10
|
export type SAvatarColor = 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning';
|
|
11
11
|
/**
|
|
12
12
|
* Props interface for SAvatar component
|
|
13
|
-
* Synced with web SAvatar from @solostylist/ui-kit
|
|
14
13
|
*/
|
|
15
14
|
export interface SAvatarProps {
|
|
16
|
-
/** URL of the avatar image to display */
|
|
17
|
-
avatar?: string;
|
|
15
|
+
/** URL or local asset of the avatar image to display */
|
|
16
|
+
avatar?: string | ImageSourcePropType;
|
|
18
17
|
/** Name of the user, used for initials fallback and optional display */
|
|
19
18
|
name?: string;
|
|
20
19
|
/** Whether to display the name alongside the avatar */
|
|
@@ -29,18 +28,15 @@ export interface SAvatarProps {
|
|
|
29
28
|
avatarStyle?: StyleProp<ViewStyle>;
|
|
30
29
|
/** Additional styles for the name text */
|
|
31
30
|
nameStyle?: StyleProp<TextStyle>;
|
|
32
|
-
/** Font size for the name text (default: 16) */
|
|
33
|
-
nameFontSize?: number;
|
|
34
31
|
/** Callback fired when avatar is pressed */
|
|
35
32
|
onPress?: () => void;
|
|
36
33
|
}
|
|
37
34
|
/**
|
|
38
35
|
* A flexible avatar component that displays user profile images with fallback to initials.
|
|
39
36
|
* Built on React Native Paper Avatar with optional name display and customizable sizing.
|
|
40
|
-
* Synced with web SAvatar from @solostylist/ui-kit.
|
|
41
37
|
*/
|
|
42
38
|
export declare const SAvatar: {
|
|
43
|
-
({ avatar, name, showName, size, color, style, avatarStyle, nameStyle,
|
|
39
|
+
({ avatar, name, showName, size, color, style, avatarStyle, nameStyle, onPress, }: SAvatarProps): React.JSX.Element;
|
|
44
40
|
displayName: string;
|
|
45
41
|
};
|
|
46
42
|
export default SAvatar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s-avatar.d.ts","sourceRoot":"","sources":["../../src/s-avatar/s-avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"s-avatar.d.ts","sourceRoot":"","sources":["../../src/s-avatar/s-avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAoBzG;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACtC,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,iDAAiD;IACjD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,uCAAuC;IACvC,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,0CAA0C;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAiDD;;;GAGG;AACH,eAAO,MAAM,OAAO;uFAUjB,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;CAqFlC,CAAC;AAIF,eAAe,OAAO,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { Avatar
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { Avatar } from 'react-native-paper';
|
|
5
|
+
import { blue, brand, green, lightBlue, lightBrand, lightGreen, lightOrange, lightPurple, lightRed, orange, purple, red, } from '@solostylist/core';
|
|
5
6
|
import { SText } from '../s-text';
|
|
6
7
|
import { useSTheme } from '../theme';
|
|
7
8
|
/**
|
|
@@ -54,59 +55,65 @@ const getInitials = (name) => {
|
|
|
54
55
|
/**
|
|
55
56
|
* A flexible avatar component that displays user profile images with fallback to initials.
|
|
56
57
|
* Built on React Native Paper Avatar with optional name display and customizable sizing.
|
|
57
|
-
* Synced with web SAvatar from @solostylist/ui-kit.
|
|
58
58
|
*/
|
|
59
|
-
export const SAvatar = ({ avatar, name, showName = false, size = 'medium', color = 'primary', style, avatarStyle, nameStyle,
|
|
59
|
+
export const SAvatar = ({ avatar, name, showName = false, size = 'medium', color = 'primary', style, avatarStyle, nameStyle, onPress, }) => {
|
|
60
60
|
const { theme } = useSTheme();
|
|
61
61
|
const sizeInPixels = getSizeInPixels(size);
|
|
62
62
|
const initialsFontSize = getInitialsFontSize(sizeInPixels);
|
|
63
63
|
const initials = getInitials(name);
|
|
64
|
-
// Get
|
|
64
|
+
// Get color palettes - matches SButton logic
|
|
65
|
+
const getColorPalettes = (color) => {
|
|
66
|
+
switch (color) {
|
|
67
|
+
case 'primary':
|
|
68
|
+
return { light: lightBrand, dark: brand };
|
|
69
|
+
case 'secondary':
|
|
70
|
+
return { light: lightPurple, dark: purple };
|
|
71
|
+
case 'success':
|
|
72
|
+
return { light: lightGreen, dark: green };
|
|
73
|
+
case 'error':
|
|
74
|
+
return { light: lightRed, dark: red };
|
|
75
|
+
case 'info':
|
|
76
|
+
return { light: lightBlue, dark: blue };
|
|
77
|
+
case 'warning':
|
|
78
|
+
return { light: lightOrange, dark: orange };
|
|
79
|
+
default:
|
|
80
|
+
return { light: lightBrand, dark: brand };
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const { light: lightColor, dark: darkColor } = getColorPalettes(color);
|
|
84
|
+
const colorPalette = theme.dark ? darkColor : lightColor;
|
|
85
|
+
// Get background color for initials avatar - matches SButton contained variant
|
|
65
86
|
const backgroundColor = useMemo(() => {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}, [theme.dark, theme.colors, color]);
|
|
87
|
+
return theme.dark ? colorPalette[800] : colorPalette[700];
|
|
88
|
+
}, [theme.dark, colorPalette]);
|
|
69
89
|
// Get text color for initials
|
|
70
90
|
const textColor = useMemo(() => {
|
|
71
|
-
const colorPalette = theme.colors[color] || theme.colors.primary;
|
|
72
91
|
return theme.dark ? colorPalette[100] : colorPalette[50];
|
|
73
|
-
}, [theme.dark,
|
|
74
|
-
const styles = useMemo(() => StyleSheet.create({
|
|
75
|
-
container: {
|
|
76
|
-
flexDirection: 'row',
|
|
77
|
-
alignItems: 'center',
|
|
78
|
-
gap: theme.spacing.md,
|
|
79
|
-
},
|
|
80
|
-
avatarText: {
|
|
81
|
-
backgroundColor,
|
|
82
|
-
},
|
|
83
|
-
initials: {
|
|
84
|
-
fontSize: initialsFontSize,
|
|
85
|
-
fontFamily: theme.typography.fontFamily,
|
|
86
|
-
fontWeight: '500',
|
|
87
|
-
color: textColor,
|
|
88
|
-
},
|
|
89
|
-
nameText: {
|
|
90
|
-
fontSize: nameFontSize,
|
|
91
|
-
fontFamily: theme.typography.fontFamily,
|
|
92
|
-
color: theme.colors.text.primary,
|
|
93
|
-
},
|
|
94
|
-
}), [
|
|
95
|
-
theme.spacing.md,
|
|
96
|
-
theme.typography.fontFamily,
|
|
97
|
-
theme.colors.text.primary,
|
|
98
|
-
backgroundColor,
|
|
99
|
-
textColor,
|
|
100
|
-
initialsFontSize,
|
|
101
|
-
nameFontSize,
|
|
102
|
-
]);
|
|
92
|
+
}, [theme.dark, colorPalette]);
|
|
103
93
|
const renderAvatar = () => {
|
|
104
94
|
if (avatar) {
|
|
105
|
-
|
|
95
|
+
const source = typeof avatar === 'string' ? { uri: avatar } : avatar;
|
|
96
|
+
return _jsx(Avatar.Image, { size: sizeInPixels, source: source, style: [avatarStyle], onTouchEnd: onPress });
|
|
106
97
|
}
|
|
107
|
-
return (_jsx(Avatar.Text, { size: sizeInPixels, label: initials, style: [
|
|
98
|
+
return (_jsx(Avatar.Text, { size: sizeInPixels, label: initials, style: [
|
|
99
|
+
{
|
|
100
|
+
backgroundColor,
|
|
101
|
+
},
|
|
102
|
+
avatarStyle,
|
|
103
|
+
], labelStyle: {
|
|
104
|
+
fontSize: initialsFontSize,
|
|
105
|
+
fontFamily: theme.typography.fontFamily,
|
|
106
|
+
color: textColor,
|
|
107
|
+
}, onTouchEnd: onPress }));
|
|
108
108
|
};
|
|
109
|
-
return (_jsxs(
|
|
109
|
+
return (_jsxs(View, { style: [
|
|
110
|
+
{
|
|
111
|
+
flexDirection: 'row',
|
|
112
|
+
alignItems: 'center',
|
|
113
|
+
gap: theme.spacing.md,
|
|
114
|
+
},
|
|
115
|
+
style,
|
|
116
|
+
], children: [renderAvatar(), showName && name && (_jsx(SText, { variant: "body1", style: [{ fontSize: 16 }, nameStyle], children: name }))] }));
|
|
110
117
|
};
|
|
111
118
|
SAvatar.displayName = 'SAvatar';
|
|
112
119
|
export default SAvatar;
|
|
@@ -15,7 +15,6 @@ export type SButtonVariant = 'text' | 'outlined' | 'contained';
|
|
|
15
15
|
export type SButtonSize = 'small' | 'medium' | 'large';
|
|
16
16
|
/**
|
|
17
17
|
* Props interface for SButton component
|
|
18
|
-
* Synced with web SButton from @solostylist/ui-kit
|
|
19
18
|
*/
|
|
20
19
|
export interface SButtonProps extends Omit<ButtonProps, 'theme' | 'mode' | 'buttonColor' | 'textColor' | 'children'> {
|
|
21
20
|
/** Visual variant of the button */
|
|
@@ -47,7 +46,6 @@ export interface SButtonProps extends Omit<ButtonProps, 'theme' | 'mode' | 'butt
|
|
|
47
46
|
}
|
|
48
47
|
/**
|
|
49
48
|
* A versatile button component built on React Native Paper Button with consistent theming.
|
|
50
|
-
* Synced with web SButton from @solostylist/ui-kit.
|
|
51
49
|
*/
|
|
52
50
|
export declare const SButton: {
|
|
53
51
|
({ variant, color, size, loading, fullWidth, disabled, startIcon, endIcon, children, style, labelStyle, contentStyle, onPress, icon, ...props }: SButtonProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s-button.d.ts","sourceRoot":"","sources":["../../src/s-button/s-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"s-button.d.ts","sourceRoot":"","sources":["../../src/s-button/s-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkBjF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAClH,mCAAmC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,yBAAyB;IACzB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,iDAAiD;IACjD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAwED;;GAEG;AACH,eAAO,MAAM,OAAO;qJAgBjB,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;CA+GlC,CAAC;AAIF,eAAe,OAAO,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { useMemo } from 'react';
|
|
3
|
-
import { StyleSheet } from 'react-native';
|
|
4
3
|
import { ActivityIndicator, Button } from 'react-native-paper';
|
|
5
4
|
import { blue, brand, green, lightBlue, lightBrand, lightGreen, lightOrange, lightPurple, lightRed, orange, purple, red, } from '@solostylist/core';
|
|
6
5
|
import { useSTheme } from '../theme';
|
|
@@ -72,7 +71,6 @@ const getFontSize = (size) => {
|
|
|
72
71
|
};
|
|
73
72
|
/**
|
|
74
73
|
* A versatile button component built on React Native Paper Button with consistent theming.
|
|
75
|
-
* Synced with web SButton from @solostylist/ui-kit.
|
|
76
74
|
*/
|
|
77
75
|
export const SButton = ({ variant = 'contained', color = 'primary', size = 'medium', loading = false, fullWidth = false, disabled = false, startIcon, endIcon, children, style, labelStyle, contentStyle, onPress, icon, ...props }) => {
|
|
78
76
|
const { theme } = useSTheme();
|
|
@@ -123,27 +121,6 @@ export const SButton = ({ variant = 'contained', color = 'primary', size = 'medi
|
|
|
123
121
|
}, [theme.dark, variant, colorPalette, disabled]);
|
|
124
122
|
const height = getSizeHeight(size);
|
|
125
123
|
const fontSize = getFontSize(size);
|
|
126
|
-
const styles = useMemo(() => StyleSheet.create({
|
|
127
|
-
button: {
|
|
128
|
-
borderRadius: theme.borderRadius.md, // 8px to match web
|
|
129
|
-
opacity: colors.opacity,
|
|
130
|
-
...(fullWidth ? { width: '100%' } : {}),
|
|
131
|
-
},
|
|
132
|
-
content: {
|
|
133
|
-
height,
|
|
134
|
-
flexDirection: 'row',
|
|
135
|
-
alignItems: 'center',
|
|
136
|
-
justifyContent: 'center',
|
|
137
|
-
},
|
|
138
|
-
label: {
|
|
139
|
-
fontFamily: theme.typography.fontFamily,
|
|
140
|
-
fontSize,
|
|
141
|
-
fontWeight: '500',
|
|
142
|
-
textTransform: 'none',
|
|
143
|
-
letterSpacing: 0,
|
|
144
|
-
marginVertical: 0,
|
|
145
|
-
},
|
|
146
|
-
}), [theme.borderRadius.md, theme.typography.fontFamily, colors.opacity, fullWidth, height, fontSize]);
|
|
147
124
|
// Determine icon to use (startIcon takes precedence, then icon prop)
|
|
148
125
|
const buttonIcon = startIcon
|
|
149
126
|
? () => (_jsx(React.Fragment, { children: loading ? _jsx(ActivityIndicator, { size: fontSize, color: colors.textColor }) : startIcon }))
|
|
@@ -152,7 +129,33 @@ export const SButton = ({ variant = 'contained', color = 'primary', size = 'medi
|
|
|
152
129
|
: loading
|
|
153
130
|
? () => _jsx(ActivityIndicator, { size: fontSize, color: colors.textColor })
|
|
154
131
|
: undefined;
|
|
155
|
-
return (_jsxs(Button, { mode: variantToMode(variant), disabled: disabled || loading, onPress: onPress, icon: buttonIcon, buttonColor: colors.backgroundColor, textColor: colors.textColor, style: [
|
|
132
|
+
return (_jsxs(Button, { mode: variantToMode(variant), disabled: disabled || loading, onPress: onPress, icon: buttonIcon, buttonColor: colors.backgroundColor, textColor: colors.textColor, style: [
|
|
133
|
+
{
|
|
134
|
+
borderRadius: theme.borderRadius.md, // 8px to match web
|
|
135
|
+
opacity: colors.opacity,
|
|
136
|
+
...(fullWidth ? { width: '100%' } : {}),
|
|
137
|
+
},
|
|
138
|
+
variant === 'outlined' && { borderColor: colors.borderColor, borderWidth: 1 },
|
|
139
|
+
style,
|
|
140
|
+
], contentStyle: [
|
|
141
|
+
{
|
|
142
|
+
height,
|
|
143
|
+
flexDirection: 'row',
|
|
144
|
+
alignItems: 'center',
|
|
145
|
+
justifyContent: 'center',
|
|
146
|
+
},
|
|
147
|
+
contentStyle,
|
|
148
|
+
], labelStyle: [
|
|
149
|
+
{
|
|
150
|
+
fontFamily: theme.typography.fontFamily,
|
|
151
|
+
fontSize,
|
|
152
|
+
fontWeight: '500',
|
|
153
|
+
textTransform: 'none',
|
|
154
|
+
letterSpacing: 0,
|
|
155
|
+
marginVertical: 0,
|
|
156
|
+
},
|
|
157
|
+
labelStyle,
|
|
158
|
+
], ...props, children: [children, endIcon && !loading && endIcon] }));
|
|
156
159
|
};
|
|
157
160
|
SButton.displayName = 'SButton';
|
|
158
161
|
export default SButton;
|
|
@@ -3,7 +3,6 @@ import { type StyleProp, type TextStyle } from 'react-native';
|
|
|
3
3
|
import { type STextProps } from '../s-text';
|
|
4
4
|
/**
|
|
5
5
|
* Props interface for SButtonLink component
|
|
6
|
-
* Synced with web SButtonLink from @solostylist/ui-kit
|
|
7
6
|
*/
|
|
8
7
|
export interface SButtonLinkProps {
|
|
9
8
|
/** Text or element displayed before the main link */
|
|
@@ -35,7 +34,6 @@ export interface SButtonLinkProps {
|
|
|
35
34
|
}
|
|
36
35
|
/**
|
|
37
36
|
* A flexible link component that combines text and a clickable link element.
|
|
38
|
-
* Synced with web SButtonLink from @solostylist/ui-kit for cross-platform consistency.
|
|
39
37
|
*/
|
|
40
38
|
export declare const SButtonLink: {
|
|
41
39
|
({ beforeText, afterText, mainText, href, target, color, linkColor, variant, lineHeight, onPress, style, linkStyle, disabled, }: SButtonLinkProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s-button-link.d.ts","sourceRoot":"","sources":["../../src/s-button-link/s-button-link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"s-button-link.d.ts","sourceRoot":"","sources":["../../src/s-button-link/s-button-link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA4B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAGnD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACpC,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;qIAcrB,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;CAyFtC,CAAC;AAIF,eAAe,WAAW,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Linking, Pressable,
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Linking, Pressable, View } from 'react-native';
|
|
3
3
|
import { SText } from '../s-text';
|
|
4
4
|
import { useSTheme } from '../theme';
|
|
5
5
|
/**
|
|
6
6
|
* A flexible link component that combines text and a clickable link element.
|
|
7
|
-
* Synced with web SButtonLink from @solostylist/ui-kit for cross-platform consistency.
|
|
8
7
|
*/
|
|
9
8
|
export const SButtonLink = ({ beforeText = '', afterText = '', mainText = '', href, target, color, linkColor, variant = 'body2', lineHeight, onPress, style, linkStyle, disabled = false, }) => {
|
|
10
9
|
const { theme } = useSTheme();
|
|
@@ -26,25 +25,21 @@ export const SButtonLink = ({ beforeText = '', afterText = '', mainText = '', hr
|
|
|
26
25
|
// For internal navigation, onPress should be provided
|
|
27
26
|
}
|
|
28
27
|
};
|
|
29
|
-
|
|
30
|
-
container: {
|
|
28
|
+
return (_jsxs(View, { style: {
|
|
31
29
|
flexDirection: 'row',
|
|
32
30
|
flexWrap: 'wrap',
|
|
33
31
|
alignItems: 'center',
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
style,
|
|
46
|
-
], children: beforeText }), _jsx(SText, { variant: variant, style: { color: textColor }, children: ' ' })] })), _jsx(Pressable, { onPress: handlePress, disabled: disabled, children: ({ pressed }) => (_jsx(SText, { variant: variant, style: [
|
|
47
|
-
styles.link,
|
|
32
|
+
}, children: [beforeText && (_jsxs(SText, { variant: variant, style: [
|
|
33
|
+
{
|
|
34
|
+
color: textColor,
|
|
35
|
+
lineHeight,
|
|
36
|
+
},
|
|
37
|
+
style,
|
|
38
|
+
], children: [beforeText, ' '] })), _jsx(Pressable, { onPress: handlePress, disabled: disabled, children: ({ pressed }) => (_jsx(SText, { variant: variant, style: [
|
|
39
|
+
{
|
|
40
|
+
textDecorationLine: 'underline',
|
|
41
|
+
textDecorationStyle: 'solid',
|
|
42
|
+
},
|
|
48
43
|
{
|
|
49
44
|
color: activeLinkColor,
|
|
50
45
|
lineHeight,
|
|
@@ -52,13 +47,13 @@ export const SButtonLink = ({ beforeText = '', afterText = '', mainText = '', hr
|
|
|
52
47
|
},
|
|
53
48
|
style,
|
|
54
49
|
linkStyle,
|
|
55
|
-
], children: mainText })) }), afterText && (_jsxs(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
50
|
+
], children: mainText })) }), afterText && (_jsxs(SText, { variant: variant, style: [
|
|
51
|
+
{
|
|
52
|
+
color: textColor,
|
|
53
|
+
lineHeight,
|
|
54
|
+
},
|
|
55
|
+
style,
|
|
56
|
+
], children: [' ', afterText] }))] }));
|
|
62
57
|
};
|
|
63
58
|
SButtonLink.displayName = 'SButtonLink';
|
|
64
59
|
export default SButtonLink;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { SChatInput, type SChatInputProps, default } from './s-chat-input';
|
|
1
|
+
export { SChatInput, type SChatInputProps, type ChatFile, default } from './s-chat-input';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s-chat-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s-chat-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a file attachment in the chat input
|
|
4
|
+
*/
|
|
5
|
+
export interface ChatFile {
|
|
6
|
+
/** Unique identifier for the file */
|
|
7
|
+
uri: string;
|
|
8
|
+
/** Name of the file */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Size of the file in bytes */
|
|
11
|
+
size?: number;
|
|
12
|
+
/** MIME type of the file */
|
|
13
|
+
mimeType?: string;
|
|
14
|
+
}
|
|
2
15
|
/**
|
|
3
16
|
* Props interface for SChatInput component
|
|
4
|
-
* Synced with web SChatInput from @solostylist/ui-kit
|
|
5
17
|
*/
|
|
6
18
|
export interface SChatInputProps {
|
|
7
19
|
/** Current value of the input */
|
|
@@ -9,7 +21,9 @@ export interface SChatInputProps {
|
|
|
9
21
|
/** Callback fired when text changes */
|
|
10
22
|
onChangeText?: (text: string) => void;
|
|
11
23
|
/** Callback function called when message is submitted with send button */
|
|
12
|
-
onSubmit?: (value: string) => void;
|
|
24
|
+
onSubmit?: (value: string, files?: ChatFile[]) => void;
|
|
25
|
+
/** Optional callback function called when files are selected */
|
|
26
|
+
onFileSelect?: (files: ChatFile[]) => void;
|
|
13
27
|
/** Placeholder text shown when input is empty */
|
|
14
28
|
placeholder?: string;
|
|
15
29
|
/** Disable the input and submission */
|
|
@@ -18,10 +32,8 @@ export interface SChatInputProps {
|
|
|
18
32
|
hideFileAttachment?: boolean;
|
|
19
33
|
/** Hide the emoji picker button */
|
|
20
34
|
hideEmojiPicker?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
/** Callback fired when emoji picker button is pressed */
|
|
24
|
-
onEmojiPickerPress?: () => void;
|
|
35
|
+
/** File types accepted for upload (e.g., ["image/*", "application/pdf"]) */
|
|
36
|
+
acceptedFileTypes?: string[];
|
|
25
37
|
/** Minimum number of lines for multiline input */
|
|
26
38
|
minLines?: number;
|
|
27
39
|
/** Maximum number of lines for multiline input */
|
|
@@ -31,10 +43,9 @@ export interface SChatInputProps {
|
|
|
31
43
|
}
|
|
32
44
|
/**
|
|
33
45
|
* A chat input component with file attachment support, emoji picker, and multiline text input.
|
|
34
|
-
* Synced with web SChatInput from @solostylist/ui-kit.
|
|
35
46
|
*/
|
|
36
47
|
export declare const SChatInput: {
|
|
37
|
-
({ value: controlledValue, onChangeText: controlledOnChangeText, onSubmit, placeholder, disabled, hideFileAttachment, hideEmojiPicker,
|
|
48
|
+
({ value: controlledValue, onChangeText: controlledOnChangeText, onSubmit, onFileSelect, placeholder, disabled, hideFileAttachment, hideEmojiPicker, acceptedFileTypes, minLines, maxLines, autoFocus, }: SChatInputProps): React.JSX.Element;
|
|
38
49
|
displayName: string;
|
|
39
50
|
};
|
|
40
51
|
export default SChatInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s-chat-input.d.ts","sourceRoot":"","sources":["../../src/s-chat-input/s-chat-input.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"s-chat-input.d.ts","sourceRoot":"","sources":["../../src/s-chat-input/s-chat-input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AASxC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACvD,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC3C,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;8MAapB,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;CA0NrC,CAAC;AAIF,eAAe,UAAU,CAAC"}
|