@apple-pie/slice 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +96 -176
  2. package/dist/cjs/chunks/{Avatar-Czt-12Ih.js → Avatar-CUaQ3kN1.js} +5 -5
  3. package/dist/cjs/chunks/{AvatarGroup-CGH2zY7a.js → AvatarGroup-B3M7o4Hh.js} +23 -20
  4. package/dist/cjs/chunks/{Button-mVVfNCqC.js → Button-DXvjvGtY.js} +12 -11
  5. package/dist/cjs/chunks/{ButtonBar-CFAb4bfQ.js → ButtonBar-BZ6sme27.js} +7 -7
  6. package/dist/cjs/chunks/{Camera-BGV_tNUP.js → Camera-rVC4KI4v.js} +1 -1
  7. package/dist/cjs/chunks/{CheckBox-DyOgP15i.js → CheckBox-DQRLqTAK.js} +1 -1
  8. package/dist/cjs/chunks/{Chip-Z8erRdWG.js → Chip-Pv9-KTnh.js} +11 -10
  9. package/dist/cjs/chunks/{DivInput-DdZA8S1k.js → DivInput-DO3Dgbjp.js} +4 -4
  10. package/dist/cjs/chunks/{DropDown-Ce8aU2va.js → DropDown-C3AZ5b_b.js} +49 -50
  11. package/dist/cjs/chunks/{ErrorSummary-By4CjJ9a.js → ErrorSummary-BTgAd3sK.js} +47 -25
  12. package/dist/cjs/chunks/{FileList-CCAtVNDo.js → FileList-BHwBIics.js} +4 -4
  13. package/dist/cjs/chunks/{Grouper-BbovOSYw.js → Grouper-D4yyHHkM.js} +1 -1
  14. package/dist/cjs/chunks/{Icon-N0YJuKQf.js → Icon-D1EB8S5r.js} +6 -5
  15. package/dist/cjs/chunks/{IconButton-BXotgG2u.js → IconButton-B07Ttxbr.js} +11 -11
  16. package/dist/cjs/chunks/Label-CTzvGcds.js +102 -0
  17. package/dist/cjs/chunks/{Pager-Da9AqSFN.js → Pager-BN37VYEC.js} +1 -1
  18. package/dist/cjs/chunks/{ProgressIndicator-CyFcr6Dk.js → ProgressIndicator-BGqIwycX.js} +1 -1
  19. package/dist/cjs/chunks/{PromptInput-D317oh1e.js → PromptInput-z6TuhHsG.js} +1 -1
  20. package/dist/cjs/chunks/{RadioButton-B8GIKGm-.js → RadioButton-DuIsM4lu.js} +21 -17
  21. package/dist/cjs/chunks/{RadioButtonList-3o1IvhdC.js → RadioButtonList-bu11ILyw.js} +20 -13
  22. package/dist/cjs/chunks/{Switch-BiTshVLM.js → Switch-Cbn0ql3B.js} +15 -11
  23. package/dist/cjs/chunks/{TabBar-DZ2y7owf.js → TabBar-Bcq_n4Mk.js} +8 -8
  24. package/dist/cjs/chunks/{TextArea-2w4E6d2H.js → TextArea-BSKbDOEt.js} +17 -24
  25. package/dist/cjs/chunks/{TextField-BAcYBHb1.js → TextField-BNacOZVx.js} +50 -70
  26. package/dist/cjs/chunks/{Tip-59T3TUN4.js → Tip-DAxoyMyA.js} +7 -6
  27. package/dist/cjs/chunks/{Toast-skIBuJ3b.js → Toast-CZzAWG0S.js} +1 -1
  28. package/dist/cjs/chunks/{UploadArea-CxYAAs7Q.js → UploadArea-CKuE4rtg.js} +6 -6
  29. package/dist/cjs/chunks/{localDBStore-BHEk_9fJ.js → localDBStore-zyDhaEiP.js} +42 -10
  30. package/dist/cjs/components/Avatar/index.js +1 -1
  31. package/dist/cjs/components/AvatarGroup/index.js +2 -2
  32. package/dist/cjs/components/Button/index.js +3 -3
  33. package/dist/cjs/components/ButtonBar/index.js +2 -2
  34. package/dist/cjs/components/Camera/index.js +3 -3
  35. package/dist/cjs/components/CheckBox/index.js +2 -2
  36. package/dist/cjs/components/Chip/index.js +2 -2
  37. package/dist/cjs/components/DivInput/index.js +1 -1
  38. package/dist/cjs/components/DropDown/index.js +2 -2
  39. package/dist/cjs/components/ErrorSummary/index.js +6 -2
  40. package/dist/cjs/components/FileList/index.js +3 -3
  41. package/dist/cjs/components/Grouper/index.js +2 -2
  42. package/dist/cjs/components/Icon/index.js +1 -1
  43. package/dist/cjs/components/IconButton/index.js +2 -2
  44. package/dist/cjs/components/Label/index.js +7 -5
  45. package/dist/cjs/components/Pager/index.js +1 -1
  46. package/dist/cjs/components/Progress/index.js +2 -2
  47. package/dist/cjs/components/PromptInput/index.js +5 -5
  48. package/dist/cjs/components/RadioButton/index.js +2 -2
  49. package/dist/cjs/components/RadioButtonList/index.js +3 -3
  50. package/dist/cjs/components/Switch/index.js +1 -1
  51. package/dist/cjs/components/TabBar/index.js +3 -3
  52. package/dist/cjs/components/TextArea/index.js +4 -4
  53. package/dist/cjs/components/Textfield/index.js +5 -6
  54. package/dist/cjs/components/Tip/index.js +1 -1
  55. package/dist/cjs/components/Toast/index.js +2 -2
  56. package/dist/cjs/components/UploadArea/index.js +8 -7
  57. package/dist/cjs/hooks/useObserveTheme.js +5 -5
  58. package/dist/cjs/hooks/useTheme.js +2 -2
  59. package/dist/cjs/index.js +8 -3
  60. package/dist/cjs/providers/ThemeProvider.js +12 -9
  61. package/dist/cjs/providers.js +4 -3
  62. package/dist/cjs/stores/LocalDB.js +1 -1
  63. package/dist/cjs/stores.js +1 -1
  64. package/dist/esm/chunks/{Avatar-DCCbj2eA.mjs → Avatar-CSLVUF_y.mjs} +5 -5
  65. package/dist/esm/chunks/{AvatarGroup-BaD2Xmda.mjs → AvatarGroup--ELW-bO1.mjs} +23 -20
  66. package/dist/esm/chunks/{Button-m0XAJsq5.mjs → Button-daLv0i7S.mjs} +13 -12
  67. package/dist/esm/chunks/{ButtonBar-CNQHRn77.mjs → ButtonBar-DXK8meQq.mjs} +7 -7
  68. package/dist/esm/chunks/{Camera-7TuowjX_.mjs → Camera-BqmVsVKy.mjs} +2 -2
  69. package/dist/esm/chunks/{CheckBox-DO9hTdv8.mjs → CheckBox-BsaYFNC6.mjs} +1 -1
  70. package/dist/esm/chunks/{Chip-BqneFUOR.mjs → Chip-BRZeD1OX.mjs} +11 -10
  71. package/dist/esm/chunks/{DivInput-Ch9XjfWd.mjs → DivInput-DeSpC8Wm.mjs} +4 -4
  72. package/dist/esm/chunks/{DropDown-Cvf2d_3u.mjs → DropDown-DOJvg96J.mjs} +48 -51
  73. package/dist/esm/chunks/{ErrorSummary-S0shes-m.mjs → ErrorSummary-CHLkvdHk.mjs} +52 -27
  74. package/dist/esm/chunks/{FileList-Ckix8gUY.mjs → FileList-5LElsgoE.mjs} +5 -5
  75. package/dist/esm/chunks/{Grouper-B_FutfjV.mjs → Grouper-DR14qDXP.mjs} +1 -1
  76. package/dist/esm/chunks/{Icon-C92f63Ib.mjs → Icon-CUSQtytG.mjs} +6 -5
  77. package/dist/esm/chunks/{IconButton-4O5S9S9G.mjs → IconButton-DG69Vlhj.mjs} +11 -11
  78. package/dist/esm/chunks/Label-CRsE7o3D.mjs +115 -0
  79. package/dist/esm/chunks/{Pager-BlLYeA2F.mjs → Pager-BYT7_mCb.mjs} +1 -1
  80. package/dist/esm/chunks/{ProgressIndicator-CfM2c4ty.mjs → ProgressIndicator-D7paCpgY.mjs} +1 -1
  81. package/dist/esm/chunks/{PromptInput-C6liKbFf.mjs → PromptInput-CpxUcInZ.mjs} +3 -3
  82. package/dist/esm/chunks/{RadioButton-COEnChNW.mjs → RadioButton-B5ZF5oJ_.mjs} +22 -18
  83. package/dist/esm/chunks/{RadioButtonList-De3rbLQb.mjs → RadioButtonList-D9ZAZgkK.mjs} +22 -13
  84. package/dist/esm/chunks/{Switch-Cv6LABsW.mjs → Switch-BhCOo5Lu.mjs} +15 -11
  85. package/dist/esm/chunks/{TabBar-qiozE5zA.mjs → TabBar-BK7OcjPl.mjs} +9 -9
  86. package/dist/esm/chunks/{TextArea-DKRF4Irr.mjs → TextArea-BmsEj6IA.mjs} +18 -25
  87. package/dist/esm/chunks/{TextField-CGOR6507.mjs → TextField-DWPpevsj.mjs} +54 -72
  88. package/dist/esm/chunks/{Tip-CroDIKO4.mjs → Tip-BnKB9qMi.mjs} +7 -6
  89. package/dist/esm/chunks/{Toast-CM493gMR.mjs → Toast-DPHLwDES.mjs} +1 -1
  90. package/dist/esm/chunks/{UploadArea-DNAH-Bu5.mjs → UploadArea-DPiOaNpc.mjs} +9 -9
  91. package/dist/esm/chunks/{localDBStore-C-Ch2MFq.mjs → localDBStore-B4jkR5Jx.mjs} +42 -10
  92. package/dist/esm/components/Avatar/index.mjs +1 -1
  93. package/dist/esm/components/AvatarGroup/index.mjs +2 -2
  94. package/dist/esm/components/Button/index.mjs +3 -3
  95. package/dist/esm/components/ButtonBar/index.mjs +2 -2
  96. package/dist/esm/components/Camera/index.mjs +3 -3
  97. package/dist/esm/components/CheckBox/index.mjs +2 -2
  98. package/dist/esm/components/Chip/index.mjs +2 -2
  99. package/dist/esm/components/DivInput/index.mjs +1 -1
  100. package/dist/esm/components/DropDown/index.mjs +5 -5
  101. package/dist/esm/components/ErrorSummary/index.mjs +21 -1
  102. package/dist/esm/components/FileList/index.mjs +3 -3
  103. package/dist/esm/components/Grouper/index.mjs +2 -2
  104. package/dist/esm/components/Icon/index.mjs +1 -1
  105. package/dist/esm/components/IconButton/index.mjs +2 -2
  106. package/dist/esm/components/Label/index.mjs +1 -19
  107. package/dist/esm/components/Pager/index.mjs +1 -1
  108. package/dist/esm/components/Progress/index.mjs +2 -2
  109. package/dist/esm/components/PromptInput/index.mjs +5 -5
  110. package/dist/esm/components/RadioButton/index.mjs +2 -2
  111. package/dist/esm/components/RadioButtonList/index.mjs +4 -4
  112. package/dist/esm/components/Switch/index.mjs +1 -1
  113. package/dist/esm/components/TabBar/index.mjs +3 -3
  114. package/dist/esm/components/TextArea/index.mjs +4 -4
  115. package/dist/esm/components/Textfield/index.mjs +7 -7
  116. package/dist/esm/components/Tip/index.mjs +1 -1
  117. package/dist/esm/components/Toast/index.mjs +2 -2
  118. package/dist/esm/components/UploadArea/index.mjs +7 -7
  119. package/dist/esm/hooks/useObserveTheme.mjs +5 -5
  120. package/dist/esm/hooks/useTheme.mjs +2 -2
  121. package/dist/esm/index.mjs +27 -27
  122. package/dist/esm/providers/ThemeProvider.mjs +13 -8
  123. package/dist/esm/providers.mjs +2 -0
  124. package/dist/esm/stores/LocalDB.mjs +1 -1
  125. package/dist/esm/stores.mjs +1 -1
  126. package/dist/types/components/Avatar/_types.d.ts +3 -0
  127. package/dist/types/components/AvatarGroup/_types.d.ts +3 -0
  128. package/dist/types/components/Button/Button.d.ts +6 -2
  129. package/dist/types/components/Button/_types.d.ts +3 -1
  130. package/dist/types/components/ButtonBar/_types.d.ts +4 -0
  131. package/dist/types/components/Chip/_types.d.ts +5 -1
  132. package/dist/types/components/DivInput/_types.d.ts +2 -0
  133. package/dist/types/components/DropDown/DropDown.d.ts +2 -3
  134. package/dist/types/components/DropDown/_types.d.ts +20 -14
  135. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts +1 -2
  136. package/dist/types/components/ErrorSummary/_types.d.ts +7 -4
  137. package/dist/types/components/FileList/_types.d.ts +1 -0
  138. package/dist/types/components/IconButton/_types.d.ts +3 -0
  139. package/dist/types/components/Label/Label.d.ts +1 -1
  140. package/dist/types/components/Label/_types.d.ts +18 -8
  141. package/dist/types/components/Label/index.d.ts +1 -0
  142. package/dist/types/components/RadioButton/RadioButton.d.ts +1 -1
  143. package/dist/types/components/RadioButton/_types.d.ts +12 -11
  144. package/dist/types/components/RadioButtonList/RadioButtonList.d.ts +1 -1
  145. package/dist/types/components/RadioButtonList/_types.d.ts +8 -6
  146. package/dist/types/components/Switch/Switch.d.ts +1 -1
  147. package/dist/types/components/Switch/_types.d.ts +7 -3
  148. package/dist/types/components/TabBar/_types.d.ts +2 -2
  149. package/dist/types/components/TextArea/_types.d.ts +5 -6
  150. package/dist/types/components/Textfield/_types.d.ts +14 -20
  151. package/dist/types/components/Tip/_types.d.ts +4 -1
  152. package/dist/types/components/UploadArea/UploadArea.d.ts +10 -2
  153. package/dist/types/components/UploadArea/_types.d.ts +5 -1
  154. package/dist/types/components/playHelpers.d.ts +1 -1
  155. package/dist/types/index.d.ts +1 -0
  156. package/dist/types/providers/ThemeProvider.d.ts +1 -1
  157. package/dist/types/utils/functions/files.d.ts +1 -1
  158. package/package.json +1 -1
  159. package/dist/cjs/chunks/Label-CZvJbATa.js +0 -118
  160. package/dist/esm/chunks/Label-7ezP3eHw.mjs +0 -131
  161. package/dist/types/components/Switch/Switch.stories.d.ts +0 -5
@@ -1,26 +1,27 @@
1
1
  import type React from 'react';
2
- export type RadioButtonOption = {
2
+ export type RadioButtonOption<T = string> = {
3
3
  fieldName?: string;
4
- title?: string;
5
- description?: string;
6
- state?: boolean;
7
- icon?: string;
4
+ label?: string;
5
+ value?: T;
8
6
  };
9
- type RadioButtonBaseProps = {
7
+ type RadioButtonBaseProps<T = string> = {
8
+ children?: React.ReactNode;
9
+ label?: string;
10
+ fieldName?: string;
11
+ value?: T;
10
12
  selected?: boolean;
11
- option: RadioButtonOption;
12
13
  controlType?: 'radio' | 'checkbox';
13
14
  deselect?: boolean;
14
15
  tabIndex?: number;
15
16
  wrap?: boolean;
16
17
  list?: boolean;
17
18
  hideRadio?: boolean;
18
- toggleIcon?: boolean;
19
19
  iconColor?: string;
20
20
  noFrame?: boolean;
21
21
  gap?: number;
22
- checkedIcon?: 'check circle' | 'circle fill';
23
- onChange?: (option: RadioButtonOption, state: boolean) => void;
22
+ icon?: string;
23
+ checkedIcon?: string;
24
+ onChange?: (option: RadioButtonOption<T>, selected: boolean) => void;
24
25
  };
25
- export type RadioButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof RadioButtonBaseProps> & RadioButtonBaseProps;
26
+ export type RadioButtonProps<T = string> = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof RadioButtonBaseProps> & RadioButtonBaseProps<T>;
26
27
  export {};
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import type { RadioButtonListProps } from './_types';
3
- export declare const RadioButtonList: React.MemoExoticComponent<(props: RadioButtonListProps) => import("react/jsx-runtime").JSX.Element>;
3
+ export declare const RadioButtonList: <T = string>(props: RadioButtonListProps<T>) => React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
- import type { RadioButtonOption } from '../RadioButton/_types';
3
- type RadioButtonListBaseProps = {
4
- options?: RadioButtonOption[];
2
+ import type { RadioButtonOption } from '../RadioButton';
3
+ type RadioButtonListBaseProps<T = string> = {
4
+ options?: RadioButtonOption<T>[];
5
5
  selectedIndexes?: number[] | null;
6
6
  selectedOptions?: string[] | null;
7
7
  label?: string | null;
@@ -17,8 +17,10 @@ type RadioButtonListBaseProps = {
17
17
  iconColor?: string;
18
18
  iconSelectedColor?: string;
19
19
  noFrame?: boolean;
20
- checkedIcon?: 'check circle' | 'circle fill';
21
- onChange?: (options: RadioButtonOption[] | null, indexes: number[] | null) => void;
20
+ icon?: string;
21
+ checkedIcon?: string;
22
+ width?: number | string;
23
+ onChange?: (options: RadioButtonOption<T>[] | null, indexes: number[] | null) => void;
22
24
  };
23
- export type RadioButtonListProps = Omit<React.HTMLAttributes<HTMLDivElement>, keyof RadioButtonListBaseProps> & RadioButtonListBaseProps;
25
+ export type RadioButtonListProps<T = string> = Omit<React.HTMLAttributes<HTMLDivElement>, keyof RadioButtonListBaseProps> & RadioButtonListBaseProps<T>;
24
26
  export {};
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import type { SwitchProps } from './_types';
3
- export declare const Switch: React.MemoExoticComponent<(props: SwitchProps) => import("react/jsx-runtime").JSX.Element>;
3
+ export declare const Switch: <T = string>(props: SwitchProps<T>) => React.JSX.Element;
@@ -1,13 +1,17 @@
1
1
  import type React from 'react';
2
- type SwitchBaseProps = {
2
+ type SwitchBaseProps<T = string> = {
3
+ fieldName?: string;
3
4
  state?: boolean;
4
5
  height?: number;
5
6
  width?: number;
7
+ backgroundColorOff?: string;
8
+ backgroundColorOn?: string;
6
9
  bgColorOff?: string;
7
10
  bgColorOn?: string;
8
11
  knobColor?: string;
9
12
  padding?: number;
10
- onChange?: (state: boolean) => void;
13
+ value?: T;
14
+ onChange?: (value: T | undefined, state: boolean) => void;
11
15
  };
12
- export type SwitchProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof SwitchBaseProps> & SwitchBaseProps;
16
+ export type SwitchProps<T = string> = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof SwitchBaseProps> & SwitchBaseProps<T>;
13
17
  export {};
@@ -17,7 +17,7 @@ type TabBarBaseProps = {
17
17
  selectedValue?: string;
18
18
  height?: number | string;
19
19
  width?: number | string;
20
- tabWidth?: 'min-content' | 'distribute' | number;
20
+ tabWidth?: 'compact' | 'fill' | number;
21
21
  closeWidth?: number | string;
22
22
  padding?: number | string;
23
23
  iconSize?: number;
@@ -42,7 +42,7 @@ export interface TabOptionProps {
42
42
  iconGap?: number;
43
43
  disabled?: boolean;
44
44
  count?: number;
45
- tabWidth?: 'min-content' | 'distribute' | number;
45
+ tabWidth?: 'compact' | 'fill' | number;
46
46
  underline?: boolean;
47
47
  onClick?: (value: number) => void;
48
48
  onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, value: number) => void;
@@ -3,13 +3,12 @@ type TextAreaBaseProps = {
3
3
  value?: string;
4
4
  name?: string;
5
5
  width?: number | string;
6
- height?: number | string;
7
6
  minWidth?: number | string;
8
7
  rows?: number;
9
8
  focused?: boolean;
10
9
  placeholder?: string;
11
10
  padding?: number | string;
12
- validate?: boolean;
11
+ error?: boolean;
13
12
  border?: boolean;
14
13
  resizable?: boolean;
15
14
  hasSend?: boolean;
@@ -18,17 +17,17 @@ type TextAreaBaseProps = {
18
17
  right: number;
19
18
  };
20
19
  sendSize?: number;
20
+ backgroundColor?: string;
21
21
  bgColor?: string;
22
22
  borderRadius?: number;
23
23
  returnSubmits?: boolean;
24
- textSize?: 's' | 'm' | 'l';
24
+ textSize?: 'xs' | 's' | 'm' | 'l';
25
25
  disabled?: boolean;
26
26
  submitClears?: boolean;
27
27
  onChange?: (value: string) => void;
28
28
  onSubmit?: (value: string) => void;
29
- onFocus?: () => void;
30
- onBlur?: () => void;
31
- onValidate?: (state: boolean) => void;
29
+ onFocus?: (value: string) => void;
30
+ onBlur?: (value: string) => void;
32
31
  onKeyDown?: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
33
32
  };
34
33
  export type TextAreaProps = Omit<React.HTMLAttributes<HTMLDivElement>, keyof TextAreaBaseProps> & TextAreaBaseProps;
@@ -4,8 +4,8 @@ type TextFieldBaseProps = {
4
4
  value?: string;
5
5
  name?: string;
6
6
  label?: string;
7
- labelSize?: 's' | 'm' | 'l';
8
- textSize?: 's' | 'm' | 'l';
7
+ labelSize?: 'xs' | 's' | 'm' | 'l';
8
+ textSize?: 'xs' | 's' | 'm' | 'l';
9
9
  placeholder?: string;
10
10
  focused?: boolean;
11
11
  editable?: boolean;
@@ -25,26 +25,20 @@ type TextFieldBaseProps = {
25
25
  width?: number | string;
26
26
  height?: number | string;
27
27
  };
28
- padding?: string;
28
+ padding?: string | number;
29
29
  borderRadius?: number | string;
30
30
  textAlign?: 'left' | 'center';
31
- borderColor?: {
32
- focused: string;
33
- blurred: string;
34
- error: string;
35
- };
36
- backgroundColor?: {
37
- focused: string;
38
- blurred: string;
39
- };
40
- color?: {
41
- focused: string;
42
- blurred: string;
43
- error: string;
44
- placeholder: string;
45
- disabled: string;
46
- label: string;
47
- };
31
+ borderColorFocused?: string;
32
+ borderColorBlurred?: string;
33
+ borderColorError?: string;
34
+ backgroundColorFocused?: string;
35
+ backgroundColorBlurred?: string;
36
+ textColorFocused?: string;
37
+ textColorBlurred?: string;
38
+ textColorError?: string;
39
+ textColorPlaceholder?: string;
40
+ textColorDisabled?: string;
41
+ labelColor?: string;
48
42
  validate?: boolean;
49
43
  iconLeft?: {
50
44
  name?: string;
@@ -10,12 +10,15 @@ export type PosCoords = {
10
10
  };
11
11
  type ToolTipBaseProps = {
12
12
  tip?: ToolTip | null;
13
- size?: 's' | 'm' | 'l';
13
+ size?: 'xs' | 's' | 'm' | 'l';
14
+ backgroundColor?: string;
14
15
  bgColor?: string;
16
+ textColor?: string;
15
17
  color?: string;
16
18
  border?: boolean;
17
19
  borderColor?: string;
18
20
  padding?: number | string;
21
+ borderRadius?: number;
19
22
  radius?: number;
20
23
  coords?: {
21
24
  x: number;
@@ -9,14 +9,18 @@ export declare const UploadArea: React.NamedExoticComponent<Omit<React.HTMLAttri
9
9
  title?: string;
10
10
  message?: string;
11
11
  busyMessage?: string;
12
+ backgroundColor?: string;
13
+ backgroundColorHover?: string;
12
14
  bgColor?: string;
13
15
  bgColorHover?: string;
16
+ borderWidth?: number;
14
17
  border?: number;
15
18
  borderColor?: string | null;
16
19
  borderColorHover?: string | null;
17
20
  borderStyle?: string;
18
- textSize?: "s" | "m" | "l";
21
+ textSize?: "xs" | "s" | "m" | "l";
19
22
  padding?: number | string;
23
+ borderRadius?: number | string;
20
24
  radius?: number | string;
21
25
  acceptedTypes?: string[];
22
26
  multiple?: boolean;
@@ -35,14 +39,18 @@ export declare const UploadArea: React.NamedExoticComponent<Omit<React.HTMLAttri
35
39
  title?: string;
36
40
  message?: string;
37
41
  busyMessage?: string;
42
+ backgroundColor?: string;
43
+ backgroundColorHover?: string;
38
44
  bgColor?: string;
39
45
  bgColorHover?: string;
46
+ borderWidth?: number;
40
47
  border?: number;
41
48
  borderColor?: string | null;
42
49
  borderColorHover?: string | null;
43
50
  borderStyle?: string;
44
- textSize?: "s" | "m" | "l";
51
+ textSize?: "xs" | "s" | "m" | "l";
45
52
  padding?: number | string;
53
+ borderRadius?: number | string;
46
54
  radius?: number | string;
47
55
  acceptedTypes?: string[];
48
56
  multiple?: boolean;
@@ -25,14 +25,18 @@ type UploadAreaBaseProps = {
25
25
  title?: string;
26
26
  message?: string;
27
27
  busyMessage?: string;
28
+ backgroundColor?: string;
29
+ backgroundColorHover?: string;
28
30
  bgColor?: string;
29
31
  bgColorHover?: string;
32
+ borderWidth?: number;
30
33
  border?: number;
31
34
  borderColor?: string | null;
32
35
  borderColorHover?: string | null;
33
36
  borderStyle?: string;
34
- textSize?: 's' | 'm' | 'l';
37
+ textSize?: 'xs' | 's' | 'm' | 'l';
35
38
  padding?: number | string;
39
+ borderRadius?: number | string;
36
40
  radius?: number | string;
37
41
  acceptedTypes?: string[];
38
42
  multiple?: boolean;
@@ -9,7 +9,7 @@ export declare function runDivInputPlay<TArgs>({ args, canvasElement, }: PlayCon
9
9
  export declare function runDotPlay<TArgs>({ canvasElement }: PlayContext<TArgs>): Promise<void>;
10
10
  export declare function runDraggablePanelPlay<TArgs>({ canvasElement, args, }: PlayContext<TArgs>): Promise<void>;
11
11
  export declare function runDropDownPlay<TArgs>({ args, canvasElement, }: PlayContext<TArgs>): Promise<void>;
12
- export declare function runErrorSummaryPlay<TArgs>({ canvasElement, }: PlayContext<TArgs>): Promise<void>;
12
+ export declare function runErrorSummaryPlay<TArgs>({ args, canvasElement, }: PlayContext<TArgs>): Promise<void>;
13
13
  export declare function runFlexDivPlay<TArgs>({ canvasElement, }: PlayContext<TArgs>): Promise<void>;
14
14
  export declare function runGrouperPlay<TArgs>({ args, canvasElement, }: PlayContext<TArgs>): Promise<void>;
15
15
  export declare function runIconPlay<TArgs>({ args, canvasElement, }: PlayContext<TArgs>): Promise<void>;
@@ -68,6 +68,7 @@ export type { IconProps } from './components/Icon/_types';
68
68
  export { ButtonBar } from './components/ButtonBar';
69
69
  export type { BarButton, ButtonBarProps } from './components/ButtonBar/_types';
70
70
  export { Label } from './components/Label';
71
+ export { LabelBackground } from './components/Label';
71
72
  export type { LabelProps } from './components/Label';
72
73
  export { UploadArea } from './components/UploadArea';
73
74
  export type { UploadAreaProps } from './components/UploadArea/_types';
@@ -9,5 +9,5 @@ interface ThemeProviderProps {
9
9
  theme?: string;
10
10
  system?: boolean;
11
11
  }
12
- export declare function ThemeProvider(props: Readonly<ThemeProviderProps>): React.ReactNode;
12
+ export declare function ThemeProvider(props: Readonly<ThemeProviderProps>): import("react/jsx-runtime").JSX.Element;
13
13
  export {};
@@ -8,7 +8,7 @@ export declare function nameAndExtension(fileName: string): {
8
8
  /**
9
9
  * Map a file extension to the corresponding file icon name.
10
10
  */
11
- export declare function fileIconName(extension: string): "other" | "text" | "sheet" | "image" | "video" | "audio" | "code" | "md" | "preso" | "pdf" | "clipboard";
11
+ export declare function fileIconName(extension: string): "other" | "text" | "sheet" | "image" | "video" | "audio" | "md" | "code" | "preso" | "pdf" | "clipboard";
12
12
  /**
13
13
  * Create a clipboard-text file with a guaranteed `.clipboard` extension.
14
14
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apple-pie/slice",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -1,118 +0,0 @@
1
- "use strict";
2
-
3
- var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), hooks_useTheme = require("../hooks/useTheme.js");
4
-
5
- require("../theme/colors.js"), require("../hooks/useWindow.js");
6
-
7
- var misc = require("./misc-BTF7BCZW.js"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css = {
8
- label: "Label-module_label__RaRvM flexBox-module_row__z24tF",
9
- button: "Label-module_button__N8bcQ type-module_body-m-regular__LuQBA",
10
- s: "Label-module_s__Zh8Gp type-module_body-s-regular__vRHSP",
11
- m: "Label-module_m__BJtGL type-module_body-m-regular__LuQBA",
12
- l: "Label-module_l__t70tt type-module_body-l-regular__lOYbg",
13
- red: "Label-module_red__yqrNW",
14
- green: "Label-module_green__R6cDO",
15
- yellow: "Label-module_yellow__IoDDg",
16
- grey: "Label-module_grey__qIkSh",
17
- lightgrey: "Label-module_lightgrey__nZC6N",
18
- white: "Label-module_white__OFwCs",
19
- blue: "Label-module_blue__lqM0T"
20
- };
21
-
22
- styleInject_es.styleInject(".flexBox-module_row__z24tF {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowBetween__5FEvi {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowStart__4tcxS {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowEnd__rVdVm {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_column__ezvMq {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStart__C7P44 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStartCenter__PKcrG {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnBetween__ERfp7 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnEnd__lLJuc {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-end;\n\talign-items: flex-end;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.type-module_body-xs-regular__ZAFft {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-medium__s3KvF {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-bold__Lhqqq {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.25px;\n}.type-module_body-s-regular__vRHSP {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-medium__tjdFc {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-bold__Iy-VX {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-m-regular__LuQBA {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-medium__uW1on {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-bold__UBcvQ {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-l-regular__lOYbg {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-medium__BqRC7 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-bold__Fh2dt {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-xl-regular__pF2kC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__BeyrH {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__Ruknj {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__z8L3G {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__0O3g6 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-bold__KXxEB {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-medium__cJeEA {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-medium__eRe05 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-bold__Xmwtf {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__5q1m3 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__k9VFV {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.Label-module_label__RaRvM {\n\tdisplay: var(--label-inline) !important;\n\tline-height: 1em;\n\twhite-space: nowrap;\n\tpadding: var(--label-padding) !important;\n\twidth: min-content;\n\tcolor: var(--label-color);\n\tborder-radius: var(--label-border-radius);\n\tborder: var(--label-border-size) solid var(--core-outline-primary);\n\tcursor: var(--label-cursor);\n}\n\n.Label-module_button__N8bcQ {\n\tappearance: none;\n\t-webkit-appearance: none;\n\tbackground-image: none;\n\toutline: none;\n}\n\n.Label-module_s__Zh8Gp {\n}\n\n.Label-module_m__BJtGL {\n}\n\n.Label-module_l__t70tt {\n}\n\n.Label-module_red__yqrNW {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-light);\n\tborder-color: var(--label-border-color-red);\n}\n\n.Label-module_green__R6cDO {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-light);\n\tborder-color: var(--label-border-color-green);\n}\n\n.Label-module_yellow__IoDDg {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-primary);\n\tborder-color: var(--label-border-color-yellow);\n}\n\n.Label-module_grey__qIkSh {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-secondary);\n\tborder-color: var(--label-border-color-grey);\n}\n\n.Label-module_lightgrey__nZC6N {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-disabled);\n\tborder-color: var(--label-border-color-lightgrey);\n}\n\n.Label-module_white__OFwCs {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-primary);\n\tborder-color: var(--label-border-color-white);\n}\n\n.Label-module_blue__lqM0T {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-light);\n\tborder-color: var(--label-border-color-blue);\n}\n"),
23
- exports.Label = function(props) {
24
- const theme = hooks_useTheme.useTheme(), {children: children, state: state, noFill: noFill = !1, button: button = !1, round: round = !1, border: border = 1, padding: padding, color: color, inline: inline = !0, size: size = "m", onClick: onClick} = props, divAttributes = tslib_es6.__rest(props, [ "children", "state", "noFill", "button", "round", "border", "padding", "color", "inline", "size", "onClick" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", isInteractive = Boolean(onClick), handleClick = React.useCallback(e => {
25
- isInteractive && (null == onClick || onClick(e));
26
- }, [ isInteractive, onClick ]), backgroundColor = React.useMemo(() => {
27
- if (noFill) return "var(--core-surface-primary)";
28
- switch (state) {
29
- case "red":
30
- case "green":
31
- return theme.current.colors["feedback-warning"];
32
-
33
- case "yellow":
34
- return theme.current.colors["array-yellow"];
35
-
36
- case "grey":
37
- case "white":
38
- return theme.current.colors["core-surface-secondary"];
39
-
40
- case "lightgrey":
41
- return theme.current.colors["core-button-disabled"];
42
-
43
- case "blue":
44
- return theme.current.colors["core-button-primary"];
45
-
46
- default:
47
- return "var(--core-surface-primary)";
48
- }
49
- }, [ noFill, state, theme ]), borderColors = React.useMemo(() => {
50
- const getBorderColor = colorState => {
51
- switch (colorState) {
52
- case "red":
53
- return theme.current.colors["core-button-disabled"];
54
-
55
- case "green":
56
- return noFill ? theme.current.colors["feedback-positive"] : theme.current.colors["core-button-disabled"];
57
-
58
- case "yellow":
59
- return theme.current.colors["array-yellow-label"];
60
-
61
- case "grey":
62
- return noFill ? theme.current.colors["core-text-secondary"] : theme.current.colors["core-button-disabled"];
63
-
64
- case "lightgrey":
65
- return noFill ? theme.current.colors["core-outline-primary"] : theme.current.colors["core-button-disabled"];
66
-
67
- case "white":
68
- return noFill ? theme.current.colors["core-text-secondary"] : theme.current.colors["core-badge-secondary"];
69
-
70
- case "blue":
71
- return noFill ? theme.current.colors["core-text-secondary"] : theme.current.colors["core-button-primary"];
72
-
73
- default:
74
- return "var(--core-outline-primary)";
75
- }
76
- };
77
- return {
78
- red: getBorderColor("red"),
79
- green: getBorderColor("green"),
80
- yellow: getBorderColor("yellow"),
81
- grey: getBorderColor("grey"),
82
- lightgrey: getBorderColor("lightgrey"),
83
- white: getBorderColor("white"),
84
- blue: getBorderColor("blue")
85
- };
86
- }, [ noFill, theme ]), setPadding = React.useMemo(() => padding ? misc.setStyle(padding) : button ? "6px 12px" : "4px 6px", [ padding, button ]), cssVars = React.useMemo(() => ({
87
- "--label-padding": setPadding,
88
- "--label-border-radius": round ? "100px" : "4px",
89
- "--label-cursor": button ? "pointer" : "default",
90
- "--label-color": null != color ? color : "var(--core-text-primary)",
91
- "--label-background": backgroundColor,
92
- "--label-border-size": border ? `${border}px` : "0",
93
- "--label-border-color-red": borderColors.red,
94
- "--label-border-color-green": borderColors.green,
95
- "--label-border-color-yellow": borderColors.yellow,
96
- "--label-border-color-grey": borderColors.grey,
97
- "--label-border-color-lightgrey": borderColors.lightgrey,
98
- "--label-border-color-white": borderColors.white,
99
- "--label-border-color-blue": borderColors.blue,
100
- "--label-inline": inline ? "inline-flex" : "flex"
101
- }), [ button, border, round, backgroundColor, borderColors, setPadding, color, inline ]), classNames = [ css.label, button || isInteractive ? css.button : css.regular, state ? css[state] : "" ].filter(Boolean).join(" ");
102
- return isInteractive ? jsxRuntime.jsx("button", Object.assign({
103
- id: divId,
104
- type: "button",
105
- className: `${classNames} ${css[size]}${divClass}`,
106
- style: Object.assign(Object.assign({}, divStyle), cssVars),
107
- "aria-label": "Label button",
108
- onClick: e => handleClick(e)
109
- }, rest, {
110
- children: children
111
- })) : jsxRuntime.jsx("span", Object.assign({
112
- id: divId,
113
- className: `${classNames} ${css[size]}${divClass}`,
114
- style: Object.assign(Object.assign({}, divStyle), cssVars)
115
- }, rest, {
116
- children: children
117
- }));
118
- };
@@ -1,131 +0,0 @@
1
- import { _ as __rest } from "./tslib.es6-c-7TIv71.mjs";
2
-
3
- import { jsx } from "react/jsx-runtime";
4
-
5
- import { useCallback, useMemo } from "react";
6
-
7
- import { useTheme } from "../hooks/useTheme.mjs";
8
-
9
- import "../theme/colors.mjs";
10
-
11
- import "../hooks/useWindow.mjs";
12
-
13
- import { s as setStyle } from "./misc-N8KLjOXc.mjs";
14
-
15
- import { s as styleInject } from "./style-inject.es-D0BjEaN8.mjs";
16
-
17
- var css = {
18
- label: "Label-module_label__RaRvM flexBox-module_row__z24tF",
19
- button: "Label-module_button__N8bcQ type-module_body-m-regular__LuQBA",
20
- s: "Label-module_s__Zh8Gp type-module_body-s-regular__vRHSP",
21
- m: "Label-module_m__BJtGL type-module_body-m-regular__LuQBA",
22
- l: "Label-module_l__t70tt type-module_body-l-regular__lOYbg",
23
- red: "Label-module_red__yqrNW",
24
- green: "Label-module_green__R6cDO",
25
- yellow: "Label-module_yellow__IoDDg",
26
- grey: "Label-module_grey__qIkSh",
27
- lightgrey: "Label-module_lightgrey__nZC6N",
28
- white: "Label-module_white__OFwCs",
29
- blue: "Label-module_blue__lqM0T"
30
- };
31
-
32
- function Label(props) {
33
- const theme = useTheme(), {children: children, state: state, noFill: noFill = !1, button: button = !1, round: round = !1, border: border = 1, padding: padding, color: color, inline: inline = !0, size: size = "m", onClick: onClick} = props, divAttributes = __rest(props, [ "children", "state", "noFill", "button", "round", "border", "padding", "color", "inline", "size", "onClick" ]), {id: divId, className: className, style: style} = divAttributes, rest = __rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", isInteractive = Boolean(onClick), handleClick = useCallback(e => {
34
- isInteractive && (null == onClick || onClick(e));
35
- }, [ isInteractive, onClick ]), backgroundColor = useMemo(() => {
36
- if (noFill) return "var(--core-surface-primary)";
37
- switch (state) {
38
- case "red":
39
- case "green":
40
- return theme.current.colors["feedback-warning"];
41
-
42
- case "yellow":
43
- return theme.current.colors["array-yellow"];
44
-
45
- case "grey":
46
- case "white":
47
- return theme.current.colors["core-surface-secondary"];
48
-
49
- case "lightgrey":
50
- return theme.current.colors["core-button-disabled"];
51
-
52
- case "blue":
53
- return theme.current.colors["core-button-primary"];
54
-
55
- default:
56
- return "var(--core-surface-primary)";
57
- }
58
- }, [ noFill, state, theme ]), borderColors = useMemo(() => {
59
- const getBorderColor = colorState => {
60
- switch (colorState) {
61
- case "red":
62
- return theme.current.colors["core-button-disabled"];
63
-
64
- case "green":
65
- return noFill ? theme.current.colors["feedback-positive"] : theme.current.colors["core-button-disabled"];
66
-
67
- case "yellow":
68
- return theme.current.colors["array-yellow-label"];
69
-
70
- case "grey":
71
- return noFill ? theme.current.colors["core-text-secondary"] : theme.current.colors["core-button-disabled"];
72
-
73
- case "lightgrey":
74
- return noFill ? theme.current.colors["core-outline-primary"] : theme.current.colors["core-button-disabled"];
75
-
76
- case "white":
77
- return noFill ? theme.current.colors["core-text-secondary"] : theme.current.colors["core-badge-secondary"];
78
-
79
- case "blue":
80
- return noFill ? theme.current.colors["core-text-secondary"] : theme.current.colors["core-button-primary"];
81
-
82
- default:
83
- return "var(--core-outline-primary)";
84
- }
85
- };
86
- return {
87
- red: getBorderColor("red"),
88
- green: getBorderColor("green"),
89
- yellow: getBorderColor("yellow"),
90
- grey: getBorderColor("grey"),
91
- lightgrey: getBorderColor("lightgrey"),
92
- white: getBorderColor("white"),
93
- blue: getBorderColor("blue")
94
- };
95
- }, [ noFill, theme ]), setPadding = useMemo(() => padding ? setStyle(padding) : button ? "6px 12px" : "4px 6px", [ padding, button ]), cssVars = useMemo(() => ({
96
- "--label-padding": setPadding,
97
- "--label-border-radius": round ? "100px" : "4px",
98
- "--label-cursor": button ? "pointer" : "default",
99
- "--label-color": null != color ? color : "var(--core-text-primary)",
100
- "--label-background": backgroundColor,
101
- "--label-border-size": border ? `${border}px` : "0",
102
- "--label-border-color-red": borderColors.red,
103
- "--label-border-color-green": borderColors.green,
104
- "--label-border-color-yellow": borderColors.yellow,
105
- "--label-border-color-grey": borderColors.grey,
106
- "--label-border-color-lightgrey": borderColors.lightgrey,
107
- "--label-border-color-white": borderColors.white,
108
- "--label-border-color-blue": borderColors.blue,
109
- "--label-inline": inline ? "inline-flex" : "flex"
110
- }), [ button, border, round, backgroundColor, borderColors, setPadding, color, inline ]), classNames = [ css.label, button || isInteractive ? css.button : css.regular, state ? css[state] : "" ].filter(Boolean).join(" ");
111
- return isInteractive ? jsx("button", Object.assign({
112
- id: divId,
113
- type: "button",
114
- className: `${classNames} ${css[size]}${divClass}`,
115
- style: Object.assign(Object.assign({}, divStyle), cssVars),
116
- "aria-label": "Label button",
117
- onClick: e => handleClick(e)
118
- }, rest, {
119
- children: children
120
- })) : jsx("span", Object.assign({
121
- id: divId,
122
- className: `${classNames} ${css[size]}${divClass}`,
123
- style: Object.assign(Object.assign({}, divStyle), cssVars)
124
- }, rest, {
125
- children: children
126
- }));
127
- }
128
-
129
- styleInject(".flexBox-module_row__z24tF {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowBetween__5FEvi {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowStart__4tcxS {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowEnd__rVdVm {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_column__ezvMq {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStart__C7P44 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStartCenter__PKcrG {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnBetween__ERfp7 {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnEnd__lLJuc {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-end;\n\talign-items: flex-end;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.type-module_body-xs-regular__ZAFft {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-medium__s3KvF {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-bold__Lhqqq {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.25px;\n}.type-module_body-s-regular__vRHSP {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-medium__tjdFc {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-bold__Iy-VX {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-m-regular__LuQBA {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-medium__uW1on {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-bold__UBcvQ {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-l-regular__lOYbg {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-medium__BqRC7 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-bold__Fh2dt {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-xl-regular__pF2kC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__BeyrH {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__Ruknj {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__z8L3G {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__0O3g6 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-bold__KXxEB {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-medium__cJeEA {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-medium__eRe05 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-bold__Xmwtf {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__5q1m3 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__k9VFV {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.Label-module_label__RaRvM {\n\tdisplay: var(--label-inline) !important;\n\tline-height: 1em;\n\twhite-space: nowrap;\n\tpadding: var(--label-padding) !important;\n\twidth: min-content;\n\tcolor: var(--label-color);\n\tborder-radius: var(--label-border-radius);\n\tborder: var(--label-border-size) solid var(--core-outline-primary);\n\tcursor: var(--label-cursor);\n}\n\n.Label-module_button__N8bcQ {\n\tappearance: none;\n\t-webkit-appearance: none;\n\tbackground-image: none;\n\toutline: none;\n}\n\n.Label-module_s__Zh8Gp {\n}\n\n.Label-module_m__BJtGL {\n}\n\n.Label-module_l__t70tt {\n}\n\n.Label-module_red__yqrNW {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-light);\n\tborder-color: var(--label-border-color-red);\n}\n\n.Label-module_green__R6cDO {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-light);\n\tborder-color: var(--label-border-color-green);\n}\n\n.Label-module_yellow__IoDDg {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-primary);\n\tborder-color: var(--label-border-color-yellow);\n}\n\n.Label-module_grey__qIkSh {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-secondary);\n\tborder-color: var(--label-border-color-grey);\n}\n\n.Label-module_lightgrey__nZC6N {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-disabled);\n\tborder-color: var(--label-border-color-lightgrey);\n}\n\n.Label-module_white__OFwCs {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-primary);\n\tborder-color: var(--label-border-color-white);\n}\n\n.Label-module_blue__lqM0T {\n\tbackground: var(--label-background);\n\tcolor: var(--core-text-light);\n\tborder-color: var(--label-border-color-blue);\n}\n");
130
-
131
- export { Label as L };
@@ -1,5 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { Switch } from 'src/components/Switch';
3
- declare const meta: Meta<typeof Switch>;
4
- export default meta;
5
- export declare const Default: StoryObj<typeof Switch>;