@cambly/syntax-core 21.7.0 → 21.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/Avatar/Avatar.d.ts +1 -1
  2. package/dist/Badge/Badge.d.ts +1 -1
  3. package/dist/Badge/Badge.js +3 -3
  4. package/dist/Button/Button.js +3 -3
  5. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  6. package/dist/Checkbox/Checkbox.d.ts +1 -1
  7. package/dist/Checkbox/Checkbox.js +3 -3
  8. package/dist/Chip/Chip.js +3 -3
  9. package/dist/Heading/Heading.d.ts +1 -1
  10. package/dist/Heading/Heading.js +3 -3
  11. package/dist/LinkButton/LinkButton.js +3 -3
  12. package/dist/Modal/Modal.js +4 -4
  13. package/dist/RadioButton/RadioButton.d.ts +1 -1
  14. package/dist/RadioButton/RadioButton.js +3 -3
  15. package/dist/RichSelect/RichSelectBox.d.ts +1 -1
  16. package/dist/RichSelect/RichSelectBox.js +9 -9
  17. package/dist/RichSelect/RichSelectChip.js +4 -4
  18. package/dist/RichSelect/RichSelectList.d.ts +5 -1
  19. package/dist/RichSelect/RichSelectList.js +11 -11
  20. package/dist/RichSelect/RichSelectRadioButton.d.ts +1 -1
  21. package/dist/RichSelect/RichSelectRadioButton.js +4 -4
  22. package/dist/RichSelect/RichSelectSection.js +3 -3
  23. package/dist/SelectList/SelectList.js +4 -4
  24. package/dist/TabButton/TabButton.js +4 -4
  25. package/dist/TabLink/TabLink.js +4 -4
  26. package/dist/Tabs/TabInternal.js +3 -3
  27. package/dist/TapArea/TapArea.d.ts +1 -1
  28. package/dist/TextArea/TextArea.js +3 -3
  29. package/dist/TextField/TextField.js +4 -4
  30. package/dist/Tooltip/Tooltip.js +3 -3
  31. package/dist/Typography/Typography.d.ts +4 -4
  32. package/dist/Typography/Typography.js +2 -2
  33. package/dist/WordConfetti/WordConfetti.js +3 -3
  34. package/dist/__chunks/{2SSVAL4S.js → 22DOBTM6.js} +2 -2
  35. package/dist/__chunks/{MZNRKPDB.js → 2BHS5CFG.js} +2 -2
  36. package/dist/__chunks/{52WOUEA3.js → 37HO7CY6.js} +2 -2
  37. package/dist/__chunks/{Y5ABTR7F.js → 3BCWTSJY.js} +12 -9
  38. package/dist/__chunks/3BCWTSJY.js.map +1 -0
  39. package/dist/__chunks/{3I3KDASW.js → 3CVV6PAD.js} +5 -5
  40. package/dist/__chunks/{UXTG5NGM.js → 4DDCK4YC.js} +2 -2
  41. package/dist/__chunks/{B4G76SGY.js → 4QIAQ7OT.js} +2 -2
  42. package/dist/__chunks/{WQFVWKUL.js → 73ZKHWUJ.js} +2 -2
  43. package/dist/__chunks/73ZKHWUJ.js.map +1 -0
  44. package/dist/__chunks/{XBA66ZVH.js → DIZ2AM3O.js} +2 -2
  45. package/dist/__chunks/{3POGKBNN.js → HAV7ESKO.js} +2 -2
  46. package/dist/__chunks/{EAAVBDV4.js → HVUDEKZ4.js} +2 -2
  47. package/dist/__chunks/{W2WJY3MN.js → JVYDT3KG.js} +2 -2
  48. package/dist/__chunks/{7M434O5V.js → KYB756P2.js} +2 -2
  49. package/dist/__chunks/{RFC4HLNJ.js → LIAZJ67M.js} +2 -2
  50. package/dist/__chunks/{ZCJS7Q44.js → MPRB6RD7.js} +2 -2
  51. package/dist/__chunks/{2FU5XWMG.js → O73BKRLX.js} +3 -3
  52. package/dist/__chunks/{F5W7ZXEB.js → Q3GETQTJ.js} +2 -2
  53. package/dist/__chunks/{25MBMJDA.js → QGKN6QPT.js} +2 -2
  54. package/dist/__chunks/{VF27YZ2L.js → QTYWP33K.js} +1 -1
  55. package/dist/__chunks/{VF27YZ2L.js.map → QTYWP33K.js.map} +1 -1
  56. package/dist/__chunks/{TVFCRSGF.js → TKDQXKWS.js} +3 -3
  57. package/dist/__chunks/TKDQXKWS.js.map +1 -0
  58. package/dist/__chunks/{Z3W6JYQ2.js → TZ6K2QOX.js} +2 -2
  59. package/dist/__chunks/{GSPZNCDC.js → V6TACYID.js} +2 -2
  60. package/dist/__chunks/{TH3FEMUK.js → VVBRZJ24.js} +3 -3
  61. package/dist/__chunks/{XKN65RUB.js → WAGE57PF.js} +2 -2
  62. package/dist/colors/textColors.js +1 -1
  63. package/dist/index.js +24 -24
  64. package/package.json +1 -1
  65. package/dist/__chunks/TVFCRSGF.js.map +0 -1
  66. package/dist/__chunks/WQFVWKUL.js.map +0 -1
  67. package/dist/__chunks/Y5ABTR7F.js.map +0 -1
  68. /package/dist/__chunks/{2SSVAL4S.js.map → 22DOBTM6.js.map} +0 -0
  69. /package/dist/__chunks/{MZNRKPDB.js.map → 2BHS5CFG.js.map} +0 -0
  70. /package/dist/__chunks/{52WOUEA3.js.map → 37HO7CY6.js.map} +0 -0
  71. /package/dist/__chunks/{3I3KDASW.js.map → 3CVV6PAD.js.map} +0 -0
  72. /package/dist/__chunks/{UXTG5NGM.js.map → 4DDCK4YC.js.map} +0 -0
  73. /package/dist/__chunks/{B4G76SGY.js.map → 4QIAQ7OT.js.map} +0 -0
  74. /package/dist/__chunks/{XBA66ZVH.js.map → DIZ2AM3O.js.map} +0 -0
  75. /package/dist/__chunks/{3POGKBNN.js.map → HAV7ESKO.js.map} +0 -0
  76. /package/dist/__chunks/{EAAVBDV4.js.map → HVUDEKZ4.js.map} +0 -0
  77. /package/dist/__chunks/{W2WJY3MN.js.map → JVYDT3KG.js.map} +0 -0
  78. /package/dist/__chunks/{7M434O5V.js.map → KYB756P2.js.map} +0 -0
  79. /package/dist/__chunks/{RFC4HLNJ.js.map → LIAZJ67M.js.map} +0 -0
  80. /package/dist/__chunks/{ZCJS7Q44.js.map → MPRB6RD7.js.map} +0 -0
  81. /package/dist/__chunks/{2FU5XWMG.js.map → O73BKRLX.js.map} +0 -0
  82. /package/dist/__chunks/{F5W7ZXEB.js.map → Q3GETQTJ.js.map} +0 -0
  83. /package/dist/__chunks/{25MBMJDA.js.map → QGKN6QPT.js.map} +0 -0
  84. /package/dist/__chunks/{Z3W6JYQ2.js.map → TZ6K2QOX.js.map} +0 -0
  85. /package/dist/__chunks/{GSPZNCDC.js.map → V6TACYID.js.map} +0 -0
  86. /package/dist/__chunks/{TH3FEMUK.js.map → VVBRZJ24.js.map} +0 -0
  87. /package/dist/__chunks/{XKN65RUB.js.map → WAGE57PF.js.map} +0 -0
package/dist/index.js CHANGED
@@ -13,30 +13,30 @@ import {
13
13
  } from "./__chunks/UHO7XMHJ.js";
14
14
  import {
15
15
  Checkbox_default
16
- } from "./__chunks/XBA66ZVH.js";
16
+ } from "./__chunks/DIZ2AM3O.js";
17
17
  import {
18
18
  Modal
19
- } from "./__chunks/2SSVAL4S.js";
19
+ } from "./__chunks/22DOBTM6.js";
20
20
  import {
21
21
  Heading_default
22
- } from "./__chunks/52WOUEA3.js";
22
+ } from "./__chunks/37HO7CY6.js";
23
23
  import "./__chunks/QQT35OLE.js";
24
24
  import "./__chunks/K7BXA6BQ.js";
25
25
  import "./__chunks/HVA7R2EL.js";
26
26
  import {
27
27
  LinkButton_default
28
- } from "./__chunks/Z3W6JYQ2.js";
28
+ } from "./__chunks/TZ6K2QOX.js";
29
29
  import {
30
30
  IconLinkButton_default
31
31
  } from "./__chunks/VYEIZXAB.js";
32
32
  import "./__chunks/YLWWTB4I.js";
33
33
  import {
34
34
  SelectList
35
- } from "./__chunks/2FU5XWMG.js";
35
+ } from "./__chunks/O73BKRLX.js";
36
36
  import "./__chunks/SPQ7DQHG.js";
37
37
  import {
38
38
  RichSelectList_default
39
- } from "./__chunks/Y5ABTR7F.js";
39
+ } from "./__chunks/3BCWTSJY.js";
40
40
  import {
41
41
  Popover_default
42
42
  } from "./__chunks/STXMQR3I.js";
@@ -46,73 +46,73 @@ import {
46
46
  IconButton_default
47
47
  } from "./__chunks/KEJPRZJ5.js";
48
48
  import "./__chunks/4U4UW4AK.js";
49
- import "./__chunks/VF27YZ2L.js";
50
- import "./__chunks/3I3KDASW.js";
49
+ import "./__chunks/QTYWP33K.js";
50
+ import "./__chunks/3CVV6PAD.js";
51
51
  import {
52
52
  ButtonGroup_default
53
53
  } from "./__chunks/36DG472B.js";
54
54
  import {
55
55
  Button_default
56
- } from "./__chunks/MZNRKPDB.js";
56
+ } from "./__chunks/2BHS5CFG.js";
57
57
  import {
58
58
  Divider
59
59
  } from "./__chunks/3WKVZ2UU.js";
60
60
  import "./__chunks/Z5ZUAP2B.js";
61
61
  import "./__chunks/QSC7CAQA.js";
62
62
  import "./__chunks/6TM2ES2T.js";
63
- import "./__chunks/RFC4HLNJ.js";
63
+ import "./__chunks/LIAZJ67M.js";
64
64
  import "./__chunks/DDUJFFG7.js";
65
- import "./__chunks/7M434O5V.js";
65
+ import "./__chunks/KYB756P2.js";
66
66
  import {
67
67
  RadioButton_default
68
- } from "./__chunks/EAAVBDV4.js";
68
+ } from "./__chunks/HVUDEKZ4.js";
69
69
  import "./__chunks/KKADUD65.js";
70
- import "./__chunks/XKN65RUB.js";
70
+ import "./__chunks/WAGE57PF.js";
71
71
  import {
72
72
  Chip_default
73
- } from "./__chunks/W2WJY3MN.js";
73
+ } from "./__chunks/JVYDT3KG.js";
74
74
  import "./__chunks/ODMJANSX.js";
75
75
  import {
76
76
  ThemeProvider
77
77
  } from "./__chunks/KTX4P4Q2.js";
78
78
  import {
79
79
  TextField
80
- } from "./__chunks/TH3FEMUK.js";
80
+ } from "./__chunks/VVBRZJ24.js";
81
81
  import {
82
82
  Badge_default
83
- } from "./__chunks/UXTG5NGM.js";
83
+ } from "./__chunks/4DDCK4YC.js";
84
84
  import {
85
85
  TextArea_default
86
- } from "./__chunks/F5W7ZXEB.js";
86
+ } from "./__chunks/Q3GETQTJ.js";
87
87
  import "./__chunks/4U4UW4AK.js";
88
88
  import {
89
89
  Tabs
90
90
  } from "./__chunks/ROLIE7R3.js";
91
91
  import {
92
92
  TabLink_default
93
- } from "./__chunks/25MBMJDA.js";
93
+ } from "./__chunks/QGKN6QPT.js";
94
94
  import {
95
95
  TabButton
96
- } from "./__chunks/3POGKBNN.js";
96
+ } from "./__chunks/HAV7ESKO.js";
97
97
  import {
98
98
  TapArea_default
99
99
  } from "./__chunks/S3C44SBB.js";
100
100
  import "./__chunks/VV2NJABK.js";
101
101
  import "./__chunks/4U4UW4AK.js";
102
- import "./__chunks/TVFCRSGF.js";
102
+ import "./__chunks/TKDQXKWS.js";
103
103
  import "./__chunks/AXNRGUDZ.js";
104
104
  import "./__chunks/YCN52LF4.js";
105
105
  import "./__chunks/RSS2H4EE.js";
106
106
  import "./__chunks/JB3LONBJ.js";
107
107
  import {
108
108
  WordConfetti_default
109
- } from "./__chunks/GSPZNCDC.js";
109
+ } from "./__chunks/V6TACYID.js";
110
110
  import {
111
111
  Box_default
112
112
  } from "./__chunks/X552U42S.js";
113
113
  import {
114
114
  Tooltip_default
115
- } from "./__chunks/B4G76SGY.js";
115
+ } from "./__chunks/4QIAQ7OT.js";
116
116
  import "./__chunks/ZOWOFYUE.js";
117
117
  import "./__chunks/AVREYFSM.js";
118
118
  import "./__chunks/4U4UW4AK.js";
@@ -120,8 +120,8 @@ import "./__chunks/4U4UW4AK.js";
120
120
  import "./__chunks/KBIW5XV4.js";
121
121
  import {
122
122
  Typography_default
123
- } from "./__chunks/ZCJS7Q44.js";
124
- import "./__chunks/WQFVWKUL.js";
123
+ } from "./__chunks/MPRB6RD7.js";
124
+ import "./__chunks/73ZKHWUJ.js";
125
125
  import "./__chunks/QIMMO3OB.js";
126
126
  import "./__chunks/4U4UW4AK.js";
127
127
  import "./__chunks/JB65NEXK.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cambly/syntax-core",
3
3
  "description": "Cambly design system core components",
4
- "version": "21.7.0",
4
+ "version": "21.9.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Tabs/TabInternal.tsx"],"sourcesContent":["import { type ComponentProps, type ReactElement, type ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport Box from \"../Box/Box\";\nimport Typography from \"../Typography/Typography\";\nimport colorStyles from \"../colors/colors.module.css\";\n\nconst ItemCountIcon = ({\n itemCount,\n on,\n selected,\n}: {\n itemCount: number;\n on: ComponentProps<typeof TabInternal>[\"on\"];\n selected: boolean;\n}) => {\n return (\n <div\n className={classnames({\n [colorStyles.cambioWhiteBackgroundColor]:\n on === \"darkBackground\" && selected,\n [colorStyles.cambioWhite70BackgroundColor]:\n on === \"darkBackground\" && !selected,\n [colorStyles.cambioBlackBackgroundColor]:\n on === \"lightBackground\" && selected,\n [colorStyles.cambioGray700BackgroundColor]:\n on === \"lightBackground\" && !selected,\n })}\n style={{\n width: \"100%\",\n height: \"100%\",\n borderRadius: 999,\n }}\n >\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n rounding=\"full\"\n padding={1}\n >\n <Typography\n color={on === \"lightBackground\" ? \"white\" : \"primary\"}\n weight=\"semiBold\"\n size={100}\n >\n {itemCount <= 99 ? itemCount : \"99+\"}\n </Typography>\n </Box>\n </div>\n );\n};\n\nfunction textColor({\n selected,\n on,\n}: {\n selected: boolean;\n on: \"lightBackground\" | \"darkBackground\";\n}): ComponentProps<typeof Typography>[\"color\"] {\n if (selected) {\n return on === \"lightBackground\" ? \"primary\" : \"white\";\n }\n return on === \"lightBackground\" ? \"gray700\" : \"white-secondary\";\n}\n\nexport default function TabInternal({\n text,\n selected,\n endContent,\n itemCount,\n on = \"lightBackground\",\n}: {\n /**\n * The text to display in the tab.\n */\n text: string;\n /**\n * Whether the tab is selected.\n */\n selected: boolean;\n /**\n * Content to display at the end of the tab.\n */\n endContent?: ReactNode;\n /**\n * Renders an item count badge at the end of the tab.\n */\n itemCount?: number;\n /**\n * Indicate whether the Tab renders on a light or dark background.\n *\n * @defaulValue `lightBackground`\n */\n on?: \"lightBackground\" | \"darkBackground\";\n}): ReactElement {\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"start\"\n gap={2}\n padding={2}\n >\n <Typography\n size={0}\n transform=\"uppercase\"\n weight=\"semiBold\"\n color={textColor({ selected, on })}\n >\n {text}\n </Typography>\n {itemCount == null && endContent}\n {itemCount != null && (\n <ItemCountIcon itemCount={itemCount} on={on} selected={selected} />\n )}\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;;;AACA,OAAO,gBAAgB;AAuCf,cAwDJ,YAxDI;AAlCR,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,WAAW;AAAA,QACpB,CAAC,sBAAY,0BAA0B,GACrC,OAAO,oBAAoB;AAAA,QAC7B,CAAC,sBAAY,4BAA4B,GACvC,OAAO,oBAAoB,CAAC;AAAA,QAC9B,CAAC,sBAAY,0BAA0B,GACrC,OAAO,qBAAqB;AAAA,QAC9B,CAAC,sBAAY,4BAA4B,GACvC,OAAO,qBAAqB,CAAC;AAAA,MACjC,CAAC;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,cAAc;AAAA,MAChB;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,YAAW;AAAA,UACX,gBAAe;AAAA,UACf,UAAS;AAAA,UACT,SAAS;AAAA,UAET;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,OAAO,oBAAoB,UAAU;AAAA,cAC5C,QAAO;AAAA,cACP,MAAM;AAAA,cAEL,uBAAa,KAAK,YAAY;AAAA;AAAA,UACjC;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AACF,GAG+C;AAC7C,MAAI,UAAU;AACZ,WAAO,OAAO,oBAAoB,YAAY;AAAA,EAChD;AACA,SAAO,OAAO,oBAAoB,YAAY;AAChD;AAEe,SAAR,YAA6B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,KAAK;AACP,GAuBiB;AACf,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,KAAK;AAAA,MACL,SAAS;AAAA,MAET;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,WAAU;AAAA,YACV,QAAO;AAAA,YACP,OAAO,UAAU,EAAE,UAAU,GAAG,CAAC;AAAA,YAEhC;AAAA;AAAA,QACH;AAAA,QACC,aAAa,QAAQ;AAAA,QACrB,aAAa,QACZ,oBAAC,iBAAc,WAAsB,IAAQ,UAAoB;AAAA;AAAA;AAAA,EAErE;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/colors/textColors.ts"],"sourcesContent":["import colorStyles from \"../colors/colors.module.css\";\n\nexport default function textColor(\n color:\n | \"gray900\"\n | \"gray700\"\n | \"primary\"\n | \"destructive-primary\"\n | \"destructive-lightBackground\"\n | \"destructive-darkBackground\"\n | \"success\"\n | \"success-darkBackground\"\n | \"white\"\n | \"white-secondary\"\n | \"inherit\",\n): string {\n switch (color) {\n case \"gray700\":\n return colorStyles.cambioGray700Color;\n case \"white\":\n return colorStyles.cambioWhiteColor;\n case \"white-secondary\":\n return colorStyles.cambioWhite70Color;\n case \"inherit\":\n return colorStyles.inheritColor;\n case \"destructive-primary\":\n return colorStyles.cambioDestructive900Color;\n case \"destructive-lightBackground\":\n return colorStyles.cambioDestructive900Color;\n case \"destructive-darkBackground\":\n return colorStyles.cambioDestructive300Color;\n case \"success\":\n return colorStyles.cambioSuccess700Color;\n case \"success-darkBackground\":\n return colorStyles.cambioSuccess100Color;\n // primary / gray900\n default:\n return colorStyles.cambioBlackColor;\n }\n}\n"],"mappings":";;;;;;AAEe,SAAR,UACL,OAYQ;AACR,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IACrB,KAAK;AACH,aAAO,sBAAY;AAAA,IAErB;AACE,aAAO,sBAAY;AAAA,EACvB;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/RichSelect/RichSelectList.tsx","css-module:../SelectList/SelectList.module.css#css-module"],"sourcesContent":["import React, {\n type ReactElement,\n useMemo,\n type SyntheticEvent,\n useRef,\n useId,\n} from \"react\";\nimport classNames from \"classnames\";\nimport {\n ColorBaseDestructive700,\n ColorBaseGray700,\n ColorCambioWhite100,\n} from \"@cambly/syntax-design-tokens\";\nimport Typography from \"../Typography/Typography\";\nimport useIsHydrated from \"../useIsHydrated\";\nimport Popover from \"../Popover/Popover\";\nimport {\n Label as ReactAriaLabel,\n Provider as ReactAriaProvider,\n} from \"react-aria-components\";\nimport { useControlledState } from \"@react-stately/utils\";\nimport { setInteractionModality } from \"@react-aria/interactions\";\nimport { DialogContext } from \"../Dialog/Dialog\";\nimport styles from \"../SelectList/SelectList.module.css\";\nimport RichSelectBox, {\n RichSelectBoxContext,\n convertSelection,\n type RichSelectBoxProps,\n} from \"./RichSelectBox\";\nimport TapArea from \"../TapArea/TapArea\";\nimport { type OverlayHandlerRef } from \"../react-aria-utils/Triggerable\";\nimport Box from \"../Box/Box\";\nimport RichSelectSection from \"./RichSelectSection\";\nimport RichSelectChip from \"./RichSelectChip\";\nimport RichSelectRadioButton from \"./RichSelectRadioButton\";\nimport { useField } from \"react-aria\";\n\nconst NOOP = () => undefined;\n\nexport type RichSelectListProps = RichSelectBoxProps & {\n /** Test id for the select element */\n \"data-testid\"?: string;\n /**\n * Disables the select dropdown entirely\n * @defaultValue false\n */\n disabled?: boolean;\n /** Callback to be called when select is clicked */\n onClick?: (event: SyntheticEvent<HTMLDivElement>) => void;\n /** Text shown below select box if there is an input error. */\n errorText?: string;\n /** Text shown below select box */\n helperText?: string;\n /**\n * RichSelectList id, if not provided, a unique id will be generated\n */\n id?: string;\n /** Text shown above select box */\n label: string;\n /**\n * Text showing in select box if no option has been chosen.\n * There should always have a placeholder unless there is a default option selected\n */\n placeholderText?: string;\n /** Use to render (override) text shown in the select box */\n selectTextValue?: (selectedValues?: \"all\" | string[]) => string | undefined;\n /**\n * Color of the select box\n * @defaultValue white\n */\n color?: \"white\" | \"clear\";\n};\n\n/**\n * [RichSelectList](https://cambly-syntax.vercel.app/?path=/docs/components-richselectlist--docs) is a dropdown menu that allows users to select one or multiple options from a list.\n *\n * Example Usage:\n ```\n <RichSelectList\n label=\"My Label\"\n multiple\n onChange={() => { ... }}\n primaryButtonText=\"Save\"\n primaryButtonAccessibilityLabel=\"Save\"\n secondaryButtonText=\"Clear\"\n secondaryButtonAccessibilityLabel=\"Clear\"\n >\n <RichSelectList.Section label=\"Cities\">\n <RichSelectList.Chip label=\"San Francisco\" value=\"sf\" />\n <RichSelectList.Chip label=\"New York\" value=\"ny\" disabled />\n <RichSelectList.Chip label=\"Tulsa\" value=\"tulsa\" />\n <RichSelectList.Chip label=\"Chicago\" value=\"chicago\" disabled />\n </RichSelectList.Section>\n </RichSelectList>\n ```\n */\nfunction RichSelectList(props: RichSelectListProps): ReactElement {\n const {\n autosave,\n children,\n \"data-testid\": dataTestId,\n disabled: disabledProp = false,\n errorText,\n helperText,\n label,\n id,\n onChange,\n onClick = NOOP,\n placeholderText,\n selectTextValue,\n selectedValues: selectedValuesProp,\n defaultSelectedValues: defaultSelectedValuesProp,\n color = \"white\",\n ...richSelectBoxProps\n } = props;\n\n const reactId = useId();\n const inputId = id ?? reactId;\n const isHydrated = useIsHydrated();\n const disabled = !isHydrated || disabledProp;\n\n // passed to popover, which attached open/close methods\n const overlayHandlerRef = useRef<OverlayHandlerRef>({});\n\n const selectedKeysProp = useMemo(\n () => convertSelection(selectedValuesProp),\n [selectedValuesProp],\n );\n const defaultSelectedKeys = useMemo(\n () => convertSelection(defaultSelectedValuesProp, new Set()),\n [defaultSelectedValuesProp],\n );\n const [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp!, // eslint-disable-line @typescript-eslint/no-non-null-assertion -- there is a bug in the typedef for useControlledState from react-stately. Internally they rely on value (first arg) able to be undefined\n defaultSelectedKeys,\n (value) => {\n const _value = value === \"all\" ? \"all\" : [...value].map(String);\n onChange(_value);\n if (!autosave) overlayHandlerRef.current.close?.();\n },\n );\n\n const selectedTextValue = useMemo(() => {\n if (selectTextValue)\n return (\n selectTextValue(\n selectedKeys === \"all\" ? \"all\" : [...selectedKeys].map(String),\n ) ?? placeholderText\n );\n if (selectedKeys === \"all\") return \"All selected\";\n if (selectedKeys.size) return `${selectedKeys.size} selected`;\n return placeholderText;\n }, [selectTextValue, selectedKeys, placeholderText]);\n\n const fieldRef = useRef<HTMLDivElement>(null);\n const { labelProps, fieldProps, descriptionProps, errorMessageProps } =\n useField({\n label, // this is the label for the select box\n description: helperText,\n errorMessage: errorText,\n });\n\n const textColor = {\n white: \"gray700\",\n clear: \"white\",\n } as const;\n\n const getArrowIconColor = () => {\n if (errorText) {\n return ColorBaseDestructive700;\n } else {\n if (color === \"clear\") {\n return ColorCambioWhite100;\n } else {\n return ColorBaseGray700;\n }\n }\n };\n\n return (\n <ReactAriaProvider\n values={[\n [RichSelectBoxContext, { autoFocus: true }],\n [DialogContext, { padding: autosave ? undefined : 0 }], // this is altering Popover's internal dialog padding to show the sticky save/close buttons. Ideally this could be avoided\n ]}\n >\n <div\n className={classNames(styles.selectContainer, {\n [styles.opacityOverlay]: disabled,\n })}\n onClick={onClick}\n >\n {label && (\n <>\n <ReactAriaLabel\n data-testid={[dataTestId, \"label\"].filter(Boolean).join(\"-\")}\n {...labelProps}\n onClick={() => {\n if (disabled) return;\n fieldRef.current?.focus();\n setInteractionModality(\"keyboard\"); // Show the focus ring so the user knows where focus went\n }}\n >\n <Box paddingX={1}>\n <Typography size={100} color={textColor[color]}>\n {label}\n </Typography>\n </Box>\n </ReactAriaLabel>\n </>\n )}\n <Popover\n ref={overlayHandlerRef}\n disabled={disabled}\n content={\n // this Box wrapper is to reapply the padding that was stripped from popover's dialog to show the sticky save/close buttons. Ideally this could be avoided\n <Box\n padding={autosave ? undefined : 5}\n dangerouslySetInlineStyle={\n autosave ? undefined : { __style: { paddingBottom: 0 } }\n }\n role=\"menu\"\n >\n <RichSelectBox\n autosave={autosave}\n selectedValues={selectedKeys}\n defaultSelectedValues={defaultSelectedKeys}\n onChange={(selected) => setSelectedKeys(new Set(selected))}\n {...richSelectBoxProps}\n accessibilityLabel={inputId}\n >\n {children}\n </RichSelectBox>\n </Box>\n }\n >\n <TapArea\n data-testid={dataTestId}\n disabled={disabled}\n onClick={onClick}\n rounding=\"md\"\n {...fieldProps}\n ref={fieldRef}\n >\n <div className={styles.selectWrapper}>\n <div\n className={classNames(\n styles.selectBox,\n styles.selectBoxCambio,\n {\n [styles.unselected]:\n !errorText &&\n selectedKeys !== \"all\" &&\n !selectedKeys.size,\n [styles.selected]:\n !errorText &&\n (selectedKeys === \"all\" || selectedKeys.size),\n [styles.selectErrorCambio]: errorText,\n [styles[`selectColor${color}`]]: color,\n },\n )}\n >\n {selectedTextValue}\n </div>\n <div className={styles.arrowIcon}>\n <svg\n focusable=\"false\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n width={24}\n >\n <path\n fill={getArrowIconColor()}\n d=\"M15.88 9.29 12 13.17 8.12 9.29a.9959.9959 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41-.39-.38-1.03-.39-1.42 0z\"\n />\n </svg>\n </div>\n </div>\n </TapArea>\n </Popover>\n {(helperText || errorText) && (\n <Box paddingX={1}>\n <Typography\n size={100}\n color={errorText ? \"destructive-primary\" : textColor[color]}\n {...(errorText ? errorMessageProps : descriptionProps)}\n >\n {errorText ? errorText : helperText}\n </Typography>\n </Box>\n )}\n </div>\n </ReactAriaProvider>\n );\n}\n\nexport default Object.assign(RichSelectList, {\n Section: RichSelectSection,\n Chip: RichSelectChip,\n RadioButton: RichSelectRadioButton,\n});\n","import \"/home/runner/work/syntax/syntax/packages/syntax-core/src/SelectList/SelectList.module.css\"; export default {\"selectContainer\":\"_selectContainer_p5tv4_1\",\"opacityOverlay\":\"_opacityOverlay_p5tv4_7\",\"selectWrapper\":\"_selectWrapper_p5tv4_11\",\"selectBox\":\"_selectBox_p5tv4_16\",\"selectBoxCambio\":\"_selectBoxCambio_p5tv4_30\",\"selectMouseFocusStyling\":\"_selectMouseFocusStyling_p5tv4_38\",\"unselected\":\"_unselected_p5tv4_43\",\"selected\":\"_selected_p5tv4_47\",\"darkBackground\":\"_darkBackground_p5tv4_51\",\"arrowIcon\":\"_arrowIcon_p5tv4_63\",\"selectErrorCambio\":\"_selectErrorCambio_p5tv4_77\",\"selectColorwhite\":\"_selectColorwhite_p5tv4_83\",\"transparentInputError\":\"_transparentInputError_p5tv4_89\",\"transparenInputError\":\"_transparenInputError_p5tv4_94\"}"],"mappings":"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","names":["_a"]}