@cambly/syntax-core 9.0.1 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +27 -20
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +65 -38
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -545,6 +545,16 @@ var loadingIconSize_default = loadingIconSize;
|
|
|
545
545
|
// css-module:./Button.module.css#css-module
|
|
546
546
|
var Button_module_default2 = { "button": "_button_1iunh_1", "buttonGap": "_buttonGap_1iunh_9", "fullWidth": "_fullWidth_1iunh_50", "sm": "_sm_1iunh_54", "md": "_md_1iunh_61", "lg": "_lg_1iunh_68", "icon": "_icon_1iunh_75", "smIcon": "_smIcon_1iunh_79", "mdIcon": "_mdIcon_1iunh_86", "lgIcon": "_lgIcon_1iunh_93", "secondaryBorder": "_secondaryBorder_1iunh_100", "secondaryDestructiveBorder": "_secondaryDestructiveBorder_1iunh_104", "loading": "_loading_1iunh_118", "syntaxButtonLoadingRotate": "_syntaxButtonLoadingRotate_1iunh_1", "loadingCircle": "_loadingCircle_1iunh_122" };
|
|
547
547
|
|
|
548
|
+
// src/useIsHydrated.tsx
|
|
549
|
+
import { useEffect, useState } from "react";
|
|
550
|
+
function useIsHydrated() {
|
|
551
|
+
const [isHydrated, setIsHydrated] = useState(false);
|
|
552
|
+
useEffect(() => {
|
|
553
|
+
setIsHydrated(true);
|
|
554
|
+
}, []);
|
|
555
|
+
return isHydrated;
|
|
556
|
+
}
|
|
557
|
+
|
|
548
558
|
// src/Button/Button.tsx
|
|
549
559
|
import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
550
560
|
var Button = forwardRef2(
|
|
@@ -564,6 +574,7 @@ var Button = forwardRef2(
|
|
|
564
574
|
tooltip,
|
|
565
575
|
type = "button"
|
|
566
576
|
}, ref) => {
|
|
577
|
+
const isHydrated = useIsHydrated();
|
|
567
578
|
return /* @__PURE__ */ jsxs2(
|
|
568
579
|
"button",
|
|
569
580
|
{
|
|
@@ -572,7 +583,7 @@ var Button = forwardRef2(
|
|
|
572
583
|
"aria-label": accessibilityLabel,
|
|
573
584
|
type,
|
|
574
585
|
title: tooltip,
|
|
575
|
-
disabled: disabled || loading,
|
|
586
|
+
disabled: !isHydrated || disabled || loading,
|
|
576
587
|
onClick,
|
|
577
588
|
className: (0, import_classnames4.default)(
|
|
578
589
|
Button_module_default2.button,
|
|
@@ -678,10 +689,10 @@ function Card({
|
|
|
678
689
|
|
|
679
690
|
// src/Checkbox/Checkbox.tsx
|
|
680
691
|
var import_classnames6 = __toESM(require_classnames());
|
|
681
|
-
import { useState as
|
|
692
|
+
import { useState as useState3 } from "react";
|
|
682
693
|
|
|
683
694
|
// src/useFocusVisible.tsx
|
|
684
|
-
import { useState, useEffect } from "react";
|
|
695
|
+
import { useState as useState2, useEffect as useEffect2 } from "react";
|
|
685
696
|
var hasSetupGlobalListeners = false;
|
|
686
697
|
var currentModality = null;
|
|
687
698
|
var changeHandlers = /* @__PURE__ */ new Set();
|
|
@@ -757,8 +768,8 @@ function setupGlobalFocusEvents() {
|
|
|
757
768
|
}
|
|
758
769
|
function useFocusVisible() {
|
|
759
770
|
setupGlobalFocusEvents();
|
|
760
|
-
const [isFocusVisibleState, setFocusVisible] =
|
|
761
|
-
|
|
771
|
+
const [isFocusVisibleState, setFocusVisible] = useState2(isFocusVisible());
|
|
772
|
+
useEffect2(() => {
|
|
762
773
|
const handler = () => {
|
|
763
774
|
setFocusVisible(isFocusVisible());
|
|
764
775
|
};
|
|
@@ -771,7 +782,7 @@ function useFocusVisible() {
|
|
|
771
782
|
}
|
|
772
783
|
|
|
773
784
|
// css-module:./Checkbox.module.css#css-module
|
|
774
|
-
var Checkbox_module_default = { "mainContainer": "
|
|
785
|
+
var Checkbox_module_default = { "mainContainer": "_mainContainer_an7al_1", "inputOverlay": "_inputOverlay_an7al_9", "checkbox": "_checkbox_an7al_17", "disabled": "_disabled_an7al_25", "cursorDisabled": "_cursorDisabled_an7al_29", "cursorEnabled": "_cursorEnabled_an7al_33", "uncheckedBox": "_uncheckedBox_an7al_37", "uncheckedBorder": "_uncheckedBorder_an7al_41", "uncheckedErrorBorder": "_uncheckedErrorBorder_an7al_45", "checkedBox": "_checkedBox_an7al_49", "checkedNonError": "_checkedNonError_an7al_53", "checkedError": "_checkedError_an7al_57", "sm": "_sm_an7al_61", "md": "_md_an7al_67" };
|
|
775
786
|
|
|
776
787
|
// css-module:../Focus.module.css#css-module
|
|
777
788
|
var Focus_module_default = { "accessibilityOutlineFocus": "_accessibilityOutlineFocus_1h8bq_1" };
|
|
@@ -789,13 +800,15 @@ var iconWidth = {
|
|
|
789
800
|
var Checkbox = ({
|
|
790
801
|
checked = false,
|
|
791
802
|
"data-testid": dataTestId,
|
|
792
|
-
disabled = false,
|
|
803
|
+
disabled: disabledProp = false,
|
|
793
804
|
size = "md",
|
|
794
805
|
label,
|
|
795
806
|
error = false,
|
|
796
807
|
onChange
|
|
797
808
|
}) => {
|
|
798
|
-
const
|
|
809
|
+
const isHydrated = useIsHydrated();
|
|
810
|
+
const disabled = !isHydrated || disabledProp;
|
|
811
|
+
const [isFocused, setIsFocused] = useState3(false);
|
|
799
812
|
const { isFocusVisible: isFocusVisible2 } = useFocusVisible();
|
|
800
813
|
const checkboxStyling = (0, import_classnames6.default)(Checkbox_module_default.checkbox, Checkbox_module_default[size]);
|
|
801
814
|
const uncheckedStyling = (0, import_classnames6.default)(checkboxStyling, Checkbox_module_default.uncheckedBox, {
|
|
@@ -866,7 +879,7 @@ var import_classnames7 = __toESM(require_classnames());
|
|
|
866
879
|
import { forwardRef as forwardRef3 } from "react";
|
|
867
880
|
|
|
868
881
|
// css-module:./Chip.module.css#css-module
|
|
869
|
-
var Chip_module_default = { "chip": "
|
|
882
|
+
var Chip_module_default = { "chip": "_chip_nvvgx_1", "disabled": "_disabled_nvvgx_12", "selectedChip": "_selectedChip_nvvgx_17", "icon": "_icon_nvvgx_22", "selectedIcon": "_selectedIcon_nvvgx_30", "sm": "_sm_nvvgx_34", "lg": "_lg_nvvgx_40" };
|
|
870
883
|
|
|
871
884
|
// src/Chip/Chip.tsx
|
|
872
885
|
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
@@ -879,8 +892,11 @@ var Chip = forwardRef3(
|
|
|
879
892
|
onChange,
|
|
880
893
|
icon: Icon
|
|
881
894
|
}, ref) => {
|
|
895
|
+
const isHydrated = useIsHydrated();
|
|
896
|
+
const disabled = !isHydrated;
|
|
882
897
|
const chipStyles = (0, import_classnames7.default)(Chip_module_default.chip, Chip_module_default[size], {
|
|
883
|
-
[Chip_module_default.selectedChip]: selected
|
|
898
|
+
[Chip_module_default.selectedChip]: selected,
|
|
899
|
+
[Chip_module_default.disabled]: disabled
|
|
884
900
|
});
|
|
885
901
|
const iconStyles = (0, import_classnames7.default)(Chip_module_default.icon, {
|
|
886
902
|
[Chip_module_default.selectedIcon]: selected
|
|
@@ -893,6 +909,7 @@ var Chip = forwardRef3(
|
|
|
893
909
|
"button",
|
|
894
910
|
{
|
|
895
911
|
className: chipStyles,
|
|
912
|
+
disabled,
|
|
896
913
|
"data-testid": dataTestId,
|
|
897
914
|
ref,
|
|
898
915
|
type: "button",
|
|
@@ -961,6 +978,7 @@ var IconButton_module_default = { "iconButton": "_iconButton_4e8qe_1", "sm": "_s
|
|
|
961
978
|
|
|
962
979
|
// src/IconButton/IconButton.tsx
|
|
963
980
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
981
|
+
"use client";
|
|
964
982
|
var iconSize2 = {
|
|
965
983
|
["sm"]: IconButton_module_default.smIcon,
|
|
966
984
|
["md"]: IconButton_module_default.mdIcon,
|
|
@@ -977,6 +995,7 @@ var IconButton = forwardRef4(
|
|
|
977
995
|
tooltip,
|
|
978
996
|
onClick
|
|
979
997
|
}, ref) => {
|
|
998
|
+
const isHydrated = useIsHydrated();
|
|
980
999
|
return /* @__PURE__ */ jsx12(
|
|
981
1000
|
"button",
|
|
982
1001
|
{
|
|
@@ -984,7 +1003,7 @@ var IconButton = forwardRef4(
|
|
|
984
1003
|
"data-testid": dataTestId,
|
|
985
1004
|
type: "button",
|
|
986
1005
|
title: tooltip,
|
|
987
|
-
disabled,
|
|
1006
|
+
disabled: !isHydrated || disabled,
|
|
988
1007
|
onClick,
|
|
989
1008
|
className: (0, import_classnames8.default)(
|
|
990
1009
|
IconButton_module_default.iconButton,
|
|
@@ -1082,7 +1101,7 @@ var LinkButton_default = LinkButton;
|
|
|
1082
1101
|
var import_classnames10 = __toESM(require_classnames());
|
|
1083
1102
|
|
|
1084
1103
|
// src/Modal/FocusTrap.tsx
|
|
1085
|
-
import { useEffect as
|
|
1104
|
+
import { useEffect as useEffect3, useRef } from "react";
|
|
1086
1105
|
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1087
1106
|
function queryFocusableAll(el) {
|
|
1088
1107
|
const selector = [
|
|
@@ -1114,7 +1133,7 @@ function FocusTrap({
|
|
|
1114
1133
|
}) {
|
|
1115
1134
|
const elRef = useRef(null);
|
|
1116
1135
|
const previouslyFocusedElRef = useRef(null);
|
|
1117
|
-
|
|
1136
|
+
useEffect3(() => {
|
|
1118
1137
|
const { current: element } = elRef;
|
|
1119
1138
|
const focusFirstChild = () => {
|
|
1120
1139
|
const withinIframe = window !== window.parent;
|
|
@@ -1148,9 +1167,9 @@ function FocusTrap({
|
|
|
1148
1167
|
}
|
|
1149
1168
|
|
|
1150
1169
|
// src/Modal/StopScroll.tsx
|
|
1151
|
-
import { useEffect as
|
|
1170
|
+
import { useEffect as useEffect4 } from "react";
|
|
1152
1171
|
function StopScroll(props) {
|
|
1153
|
-
|
|
1172
|
+
useEffect4(() => {
|
|
1154
1173
|
const originalStyle = window.getComputedStyle(document.body).overflow;
|
|
1155
1174
|
document.body.style.overflow = "hidden";
|
|
1156
1175
|
return () => {
|
|
@@ -1272,7 +1291,7 @@ Modal.displayName = "Modal";
|
|
|
1272
1291
|
|
|
1273
1292
|
// src/RadioButton/RadioButton.tsx
|
|
1274
1293
|
var import_classnames11 = __toESM(require_classnames());
|
|
1275
|
-
import { useState as
|
|
1294
|
+
import { useState as useState4 } from "react";
|
|
1276
1295
|
|
|
1277
1296
|
// css-module:./RadioButton.module.css#css-module
|
|
1278
1297
|
var RadioButton_module_default = { "radioBaseContainer": "_radioBaseContainer_6h2zg_1", "disabled": "_disabled_6h2zg_9", "cursorDisabled": "_cursorDisabled_6h2zg_13", "cursorEnabled": "_cursorEnabled_6h2zg_17", "smBase": "_smBase_6h2zg_21", "mdBase": "_mdBase_6h2zg_25", "radioStyleOverride": "_radioStyleOverride_6h2zg_29", "smOverride": "_smOverride_6h2zg_34", "mdOverride": "_mdOverride_6h2zg_39", "background": "_background_6h2zg_44", "sm": "_sm_6h2zg_21", "md": "_md_6h2zg_25", "neutralBorder": "_neutralBorder_6h2zg_61", "smCheckedBorder": "_smCheckedBorder_6h2zg_65", "mdCheckedBorder": "_mdCheckedBorder_6h2zg_69", "errorBorderColor": "_errorBorderColor_6h2zg_73", "borderColor": "_borderColor_6h2zg_77" };
|
|
@@ -1282,7 +1301,7 @@ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
|
1282
1301
|
var RadioButton = ({
|
|
1283
1302
|
checked = false,
|
|
1284
1303
|
"data-testid": dataTestId,
|
|
1285
|
-
disabled = false,
|
|
1304
|
+
disabled: disabledProp = false,
|
|
1286
1305
|
error = false,
|
|
1287
1306
|
id,
|
|
1288
1307
|
label,
|
|
@@ -1291,7 +1310,9 @@ var RadioButton = ({
|
|
|
1291
1310
|
size = "md",
|
|
1292
1311
|
value
|
|
1293
1312
|
}) => {
|
|
1294
|
-
const
|
|
1313
|
+
const isHydrated = useIsHydrated();
|
|
1314
|
+
const disabled = !isHydrated || disabledProp;
|
|
1315
|
+
const [isFocused, setIsFocused] = useState4(false);
|
|
1295
1316
|
const { isFocusVisible: isFocusVisible2 } = useFocusVisible();
|
|
1296
1317
|
const sharedStyles = (0, import_classnames11.default)(RadioButton_module_default.background, RadioButton_module_default[size], {
|
|
1297
1318
|
[RadioButton_module_default.errorBorderColor]: error,
|
|
@@ -1365,7 +1386,7 @@ var RadioButton_default = RadioButton;
|
|
|
1365
1386
|
var import_classnames12 = __toESM(require_classnames());
|
|
1366
1387
|
import {
|
|
1367
1388
|
useId,
|
|
1368
|
-
useState as
|
|
1389
|
+
useState as useState5
|
|
1369
1390
|
} from "react";
|
|
1370
1391
|
|
|
1371
1392
|
// ../syntax-design-tokens/dist/js/index.js
|
|
@@ -1395,7 +1416,7 @@ var iconSize3 = {
|
|
|
1395
1416
|
function SelectList({
|
|
1396
1417
|
children,
|
|
1397
1418
|
"data-testid": dataTestId,
|
|
1398
|
-
disabled = false,
|
|
1419
|
+
disabled: disabledProp = false,
|
|
1399
1420
|
errorText,
|
|
1400
1421
|
helperText,
|
|
1401
1422
|
id,
|
|
@@ -1407,9 +1428,11 @@ function SelectList({
|
|
|
1407
1428
|
size = "md"
|
|
1408
1429
|
}) {
|
|
1409
1430
|
const reactId = useId();
|
|
1431
|
+
const isHydrated = useIsHydrated();
|
|
1432
|
+
const disabled = !isHydrated || disabledProp;
|
|
1410
1433
|
const selectId = id != null ? id : reactId;
|
|
1411
1434
|
const { isFocusVisible: isFocusVisible2 } = useFocusVisible();
|
|
1412
|
-
const [isFocused, setIsFocused] =
|
|
1435
|
+
const [isFocused, setIsFocused] = useState5(false);
|
|
1413
1436
|
return /* @__PURE__ */ jsxs8(
|
|
1414
1437
|
"div",
|
|
1415
1438
|
{
|
|
@@ -1490,12 +1513,14 @@ var TapArea = forwardRef6(
|
|
|
1490
1513
|
children,
|
|
1491
1514
|
accessibilityLabel,
|
|
1492
1515
|
"data-testid": dataTestId,
|
|
1493
|
-
disabled = false,
|
|
1516
|
+
disabled: disabledProp = false,
|
|
1494
1517
|
fullWidth = true,
|
|
1495
1518
|
onClick,
|
|
1496
1519
|
rounding = "none",
|
|
1497
1520
|
tabIndex = 0
|
|
1498
1521
|
}, ref) => {
|
|
1522
|
+
const isHydrated = useIsHydrated();
|
|
1523
|
+
const disabled = !isHydrated || disabledProp;
|
|
1499
1524
|
const handleClick = (event) => !disabled ? onClick(event) : void 0;
|
|
1500
1525
|
const handleKeyDown = (event) => {
|
|
1501
1526
|
if (disabled)
|
|
@@ -1544,7 +1569,7 @@ import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
|
1544
1569
|
function TextField({
|
|
1545
1570
|
autoComplete,
|
|
1546
1571
|
"data-testid": dataTestId,
|
|
1547
|
-
disabled = false,
|
|
1572
|
+
disabled: disabledProp = false,
|
|
1548
1573
|
errorText = "",
|
|
1549
1574
|
helperText = "",
|
|
1550
1575
|
id,
|
|
@@ -1555,6 +1580,8 @@ function TextField({
|
|
|
1555
1580
|
type = "text",
|
|
1556
1581
|
value = ""
|
|
1557
1582
|
}) {
|
|
1583
|
+
const isHydrated = useIsHydrated();
|
|
1584
|
+
const disabled = !isHydrated || disabledProp;
|
|
1558
1585
|
const reactId = useId2();
|
|
1559
1586
|
const inputId = id != null ? id : reactId;
|
|
1560
1587
|
return /* @__PURE__ */ jsxs9(
|