@cambly/syntax-core 4.0.0 → 4.2.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 +47 -50
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +108 -93
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +109 -94
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -185,6 +185,7 @@ function Box(props) {
|
|
|
185
185
|
display,
|
|
186
186
|
smDisplay,
|
|
187
187
|
lgDisplay,
|
|
188
|
+
flexShrink,
|
|
188
189
|
flexWrap,
|
|
189
190
|
gap: gap2,
|
|
190
191
|
justifyContent,
|
|
@@ -236,6 +237,7 @@ function Box(props) {
|
|
|
236
237
|
"display",
|
|
237
238
|
"smDisplay",
|
|
238
239
|
"lgDisplay",
|
|
240
|
+
"flexShrink",
|
|
239
241
|
"flexWrap",
|
|
240
242
|
"gap",
|
|
241
243
|
"justifyContent",
|
|
@@ -337,6 +339,7 @@ function Box(props) {
|
|
|
337
339
|
rounding && rounding !== "none" && Box_module_default[`rounding${rounding}`]
|
|
338
340
|
),
|
|
339
341
|
style: __spreadValues({
|
|
342
|
+
flexShrink,
|
|
340
343
|
height,
|
|
341
344
|
maxHeight,
|
|
342
345
|
maxWidth,
|
|
@@ -640,11 +643,98 @@ var IconButton = ({
|
|
|
640
643
|
var IconButton_default = IconButton;
|
|
641
644
|
|
|
642
645
|
// src/Checkbox/Checkbox.tsx
|
|
643
|
-
var
|
|
646
|
+
var import_react2 = require("react");
|
|
644
647
|
var import_classnames7 = __toESM(require_classnames());
|
|
645
648
|
|
|
649
|
+
// src/useFocusVisible.tsx
|
|
650
|
+
var import_react = require("react");
|
|
651
|
+
var hasSetupGlobalListeners = false;
|
|
652
|
+
var currentModality = null;
|
|
653
|
+
var changeHandlers = /* @__PURE__ */ new Set();
|
|
654
|
+
var hasEventBeforeFocus = false;
|
|
655
|
+
var isMac = typeof window !== "undefined" && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false;
|
|
656
|
+
function isValidKey(e) {
|
|
657
|
+
return !(e.metaKey || !isMac && e.altKey || e.ctrlKey);
|
|
658
|
+
}
|
|
659
|
+
function triggerChangeHandlers(modality, e) {
|
|
660
|
+
changeHandlers.forEach((handler) => {
|
|
661
|
+
handler(modality, e);
|
|
662
|
+
});
|
|
663
|
+
}
|
|
664
|
+
function handleKeyboardEvent(e) {
|
|
665
|
+
hasEventBeforeFocus = true;
|
|
666
|
+
if (isValidKey(e)) {
|
|
667
|
+
currentModality = "keyboard";
|
|
668
|
+
triggerChangeHandlers("keyboard", e);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
function handlePointerEvent(e) {
|
|
672
|
+
currentModality = "pointer";
|
|
673
|
+
if (e.type === "mousedown" || e.type === "pointerdown") {
|
|
674
|
+
hasEventBeforeFocus = true;
|
|
675
|
+
triggerChangeHandlers("pointer", e);
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
function handleFocusEvent(e) {
|
|
679
|
+
if (e.target === window || e.target === document) {
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
if (!hasEventBeforeFocus) {
|
|
683
|
+
currentModality = "keyboard";
|
|
684
|
+
triggerChangeHandlers("keyboard", e);
|
|
685
|
+
}
|
|
686
|
+
hasEventBeforeFocus = false;
|
|
687
|
+
}
|
|
688
|
+
function handleWindowBlur() {
|
|
689
|
+
hasEventBeforeFocus = false;
|
|
690
|
+
}
|
|
691
|
+
function isFocusVisible() {
|
|
692
|
+
return currentModality !== "pointer";
|
|
693
|
+
}
|
|
694
|
+
function setupGlobalFocusEvents() {
|
|
695
|
+
if (typeof window === "undefined" || hasSetupGlobalListeners) {
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
const { focus } = HTMLElement.prototype;
|
|
699
|
+
HTMLElement.prototype.focus = function focusElement(...args) {
|
|
700
|
+
hasEventBeforeFocus = true;
|
|
701
|
+
focus.apply(this, args);
|
|
702
|
+
};
|
|
703
|
+
document.addEventListener("keydown", handleKeyboardEvent, true);
|
|
704
|
+
document.addEventListener("keyup", handleKeyboardEvent, true);
|
|
705
|
+
window.addEventListener("focus", handleFocusEvent, true);
|
|
706
|
+
window.addEventListener("blur", handleWindowBlur, false);
|
|
707
|
+
if (typeof PointerEvent !== "undefined") {
|
|
708
|
+
document.addEventListener("pointerdown", handlePointerEvent, true);
|
|
709
|
+
document.addEventListener("pointermove", handlePointerEvent, true);
|
|
710
|
+
document.addEventListener("pointerup", handlePointerEvent, true);
|
|
711
|
+
} else {
|
|
712
|
+
document.addEventListener("mousedown", handlePointerEvent, true);
|
|
713
|
+
document.addEventListener("mousemove", handlePointerEvent, true);
|
|
714
|
+
document.addEventListener("mouseup", handlePointerEvent, true);
|
|
715
|
+
}
|
|
716
|
+
hasSetupGlobalListeners = true;
|
|
717
|
+
}
|
|
718
|
+
function useFocusVisible() {
|
|
719
|
+
setupGlobalFocusEvents();
|
|
720
|
+
const [isFocusVisibleState, setFocusVisible] = (0, import_react.useState)(isFocusVisible());
|
|
721
|
+
(0, import_react.useEffect)(() => {
|
|
722
|
+
const handler = () => {
|
|
723
|
+
setFocusVisible(isFocusVisible());
|
|
724
|
+
};
|
|
725
|
+
changeHandlers.add(handler);
|
|
726
|
+
return () => {
|
|
727
|
+
changeHandlers.delete(handler);
|
|
728
|
+
};
|
|
729
|
+
}, []);
|
|
730
|
+
return { isFocusVisible: isFocusVisibleState };
|
|
731
|
+
}
|
|
732
|
+
|
|
646
733
|
// css-module:./Checkbox.module.css#css-module
|
|
647
|
-
var Checkbox_module_default = { "mainContainer": "
|
|
734
|
+
var Checkbox_module_default = { "mainContainer": "_mainContainer_1jq7b_1", "checkboxContainer": "_checkboxContainer_1jq7b_8", "inputOverlay": "_inputOverlay_1jq7b_13", "checkbox": "_checkbox_1jq7b_8", "uncheckedBox": "_uncheckedBox_1jq7b_30", "uncheckedBorder": "_uncheckedBorder_1jq7b_34", "uncheckedErrorBorder": "_uncheckedErrorBorder_1jq7b_38", "checkedBox": "_checkedBox_1jq7b_42", "checkedNonError": "_checkedNonError_1jq7b_46", "checkedError": "_checkedError_1jq7b_50", "sm": "_sm_1jq7b_54", "md": "_md_1jq7b_60" };
|
|
735
|
+
|
|
736
|
+
// css-module:../Focus.module.css#css-module
|
|
737
|
+
var Focus_module_default = { "accessibilityOutlineFocus": "_accessibilityOutlineFocus_1h8bq_1" };
|
|
648
738
|
|
|
649
739
|
// src/Checkbox/Checkbox.tsx
|
|
650
740
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
@@ -664,17 +754,18 @@ var Checkbox = ({
|
|
|
664
754
|
error = false,
|
|
665
755
|
onChange
|
|
666
756
|
}) => {
|
|
667
|
-
const [isFocused, setIsFocused] = (0,
|
|
757
|
+
const [isFocused, setIsFocused] = (0, import_react2.useState)(false);
|
|
758
|
+
const { isFocusVisible: isFocusVisible2 } = useFocusVisible();
|
|
668
759
|
const checkboxStyling = (0, import_classnames7.default)(Checkbox_module_default.checkbox, Checkbox_module_default[size]);
|
|
669
760
|
const uncheckedStyling = (0, import_classnames7.default)(checkboxStyling, Checkbox_module_default.uncheckedBox, {
|
|
670
761
|
[Checkbox_module_default.uncheckedBorder]: !error,
|
|
671
762
|
[Checkbox_module_default.uncheckedErrorBorder]: error,
|
|
672
|
-
[
|
|
763
|
+
[Focus_module_default.accessibilityOutlineFocus]: isFocused && isFocusVisible2
|
|
673
764
|
});
|
|
674
765
|
const checkedStyling = (0, import_classnames7.default)(checkboxStyling, Checkbox_module_default.checkedBox, {
|
|
675
766
|
[Checkbox_module_default.checkedNonError]: !error,
|
|
676
767
|
[Checkbox_module_default.checkedError]: error,
|
|
677
|
-
[
|
|
768
|
+
[Focus_module_default.accessibilityOutlineFocus]: isFocused && isFocusVisible2
|
|
678
769
|
});
|
|
679
770
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("label", { className: (0, import_classnames7.default)(Checkbox_module_default.mainContainer), children: [
|
|
680
771
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: Checkbox_module_default.checkboxContainer, children: [
|
|
@@ -729,91 +820,7 @@ var import_react3 = require("react");
|
|
|
729
820
|
var import_classnames8 = __toESM(require_classnames());
|
|
730
821
|
|
|
731
822
|
// css-module:./RadioButton.module.css#css-module
|
|
732
|
-
var RadioButton_module_default = { "radioBaseContainer": "
|
|
733
|
-
|
|
734
|
-
// src/useFocusVisible.tsx
|
|
735
|
-
var import_react2 = require("react");
|
|
736
|
-
var hasSetupGlobalListeners = false;
|
|
737
|
-
var currentModality = null;
|
|
738
|
-
var changeHandlers = /* @__PURE__ */ new Set();
|
|
739
|
-
var hasEventBeforeFocus = false;
|
|
740
|
-
var isMac = typeof window !== "undefined" && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false;
|
|
741
|
-
function isValidKey(e) {
|
|
742
|
-
return !(e.metaKey || !isMac && e.altKey || e.ctrlKey);
|
|
743
|
-
}
|
|
744
|
-
function triggerChangeHandlers(modality, e) {
|
|
745
|
-
changeHandlers.forEach((handler) => {
|
|
746
|
-
handler(modality, e);
|
|
747
|
-
});
|
|
748
|
-
}
|
|
749
|
-
function handleKeyboardEvent(e) {
|
|
750
|
-
hasEventBeforeFocus = true;
|
|
751
|
-
if (isValidKey(e)) {
|
|
752
|
-
currentModality = "keyboard";
|
|
753
|
-
triggerChangeHandlers("keyboard", e);
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
function handlePointerEvent(e) {
|
|
757
|
-
currentModality = "pointer";
|
|
758
|
-
if (e.type === "mousedown" || e.type === "pointerdown") {
|
|
759
|
-
hasEventBeforeFocus = true;
|
|
760
|
-
triggerChangeHandlers("pointer", e);
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
function handleFocusEvent(e) {
|
|
764
|
-
if (e.target === window || e.target === document) {
|
|
765
|
-
return;
|
|
766
|
-
}
|
|
767
|
-
if (!hasEventBeforeFocus) {
|
|
768
|
-
currentModality = "keyboard";
|
|
769
|
-
triggerChangeHandlers("keyboard", e);
|
|
770
|
-
}
|
|
771
|
-
hasEventBeforeFocus = false;
|
|
772
|
-
}
|
|
773
|
-
function handleWindowBlur() {
|
|
774
|
-
hasEventBeforeFocus = false;
|
|
775
|
-
}
|
|
776
|
-
function isFocusVisible() {
|
|
777
|
-
return currentModality !== "pointer";
|
|
778
|
-
}
|
|
779
|
-
function setupGlobalFocusEvents() {
|
|
780
|
-
if (typeof window === "undefined" || hasSetupGlobalListeners) {
|
|
781
|
-
return;
|
|
782
|
-
}
|
|
783
|
-
const { focus } = HTMLElement.prototype;
|
|
784
|
-
HTMLElement.prototype.focus = function focusElement(...args) {
|
|
785
|
-
hasEventBeforeFocus = true;
|
|
786
|
-
focus.apply(this, args);
|
|
787
|
-
};
|
|
788
|
-
document.addEventListener("keydown", handleKeyboardEvent, true);
|
|
789
|
-
document.addEventListener("keyup", handleKeyboardEvent, true);
|
|
790
|
-
window.addEventListener("focus", handleFocusEvent, true);
|
|
791
|
-
window.addEventListener("blur", handleWindowBlur, false);
|
|
792
|
-
if (typeof PointerEvent !== "undefined") {
|
|
793
|
-
document.addEventListener("pointerdown", handlePointerEvent, true);
|
|
794
|
-
document.addEventListener("pointermove", handlePointerEvent, true);
|
|
795
|
-
document.addEventListener("pointerup", handlePointerEvent, true);
|
|
796
|
-
} else {
|
|
797
|
-
document.addEventListener("mousedown", handlePointerEvent, true);
|
|
798
|
-
document.addEventListener("mousemove", handlePointerEvent, true);
|
|
799
|
-
document.addEventListener("mouseup", handlePointerEvent, true);
|
|
800
|
-
}
|
|
801
|
-
hasSetupGlobalListeners = true;
|
|
802
|
-
}
|
|
803
|
-
function useFocusVisible() {
|
|
804
|
-
setupGlobalFocusEvents();
|
|
805
|
-
const [isFocusVisibleState, setFocusVisible] = (0, import_react2.useState)(isFocusVisible());
|
|
806
|
-
(0, import_react2.useEffect)(() => {
|
|
807
|
-
const handler = () => {
|
|
808
|
-
setFocusVisible(isFocusVisible());
|
|
809
|
-
};
|
|
810
|
-
changeHandlers.add(handler);
|
|
811
|
-
return () => {
|
|
812
|
-
changeHandlers.delete(handler);
|
|
813
|
-
};
|
|
814
|
-
}, []);
|
|
815
|
-
return { isFocusVisible: isFocusVisibleState };
|
|
816
|
-
}
|
|
823
|
+
var RadioButton_module_default = { "radioBaseContainer": "_radioBaseContainer_144ms_1", "smBase": "_smBase_144ms_8", "mdBase": "_mdBase_144ms_13", "radioStyleOverride": "_radioStyleOverride_144ms_18", "smOverride": "_smOverride_144ms_23", "mdOverride": "_mdOverride_144ms_28", "background": "_background_144ms_33", "sm": "_sm_144ms_8", "md": "_md_144ms_13", "neutralBorder": "_neutralBorder_144ms_50", "smCheckedBorder": "_smCheckedBorder_144ms_54", "mdCheckedBorder": "_mdCheckedBorder_144ms_58", "errorBorderColor": "_errorBorderColor_144ms_62", "borderColor": "_borderColor_144ms_66" };
|
|
817
824
|
|
|
818
825
|
// src/RadioButton/RadioButton.tsx
|
|
819
826
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
@@ -832,7 +839,7 @@ var RadioButton = ({
|
|
|
832
839
|
const sharedStyles = (0, import_classnames8.default)(RadioButton_module_default.background, RadioButton_module_default[size], {
|
|
833
840
|
[RadioButton_module_default.errorBorderColor]: error,
|
|
834
841
|
[RadioButton_module_default.borderColor]: !error,
|
|
835
|
-
[
|
|
842
|
+
[Focus_module_default.accessibilityOutlineFocus]: isFocused && isFocusVisible2
|
|
836
843
|
});
|
|
837
844
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
838
845
|
"label",
|
|
@@ -895,7 +902,7 @@ var ColorBaseDestructive700 = "#d32a4b";
|
|
|
895
902
|
var ColorBaseGray800 = "#353535";
|
|
896
903
|
|
|
897
904
|
// css-module:./SelectList.module.css#css-module
|
|
898
|
-
var SelectList_module_default = { "selectContainer": "
|
|
905
|
+
var SelectList_module_default = { "selectContainer": "_selectContainer_1e7f9_1", "opacityOverlay": "_opacityOverlay_1e7f9_7", "outerTextContainer": "_outerTextContainer_1e7f9_11", "selectWrapper": "_selectWrapper_1e7f9_16", "selectBox": "_selectBox_1e7f9_21", "seletBoxMouseFocusStyling": "_seletBoxMouseFocusStyling_1e7f9_35", "unselected": "_unselected_1e7f9_40", "selected": "_selected_1e7f9_44", "arrowIcon": "_arrowIcon_1e7f9_48", "sm": "_sm_1e7f9_62", "md": "_md_1e7f9_67", "lg": "_lg_1e7f9_72", "selectError": "_selectError_1e7f9_77" };
|
|
899
906
|
|
|
900
907
|
// src/SelectList/SelectOption.tsx
|
|
901
908
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
@@ -933,6 +940,8 @@ var SelectList = ({
|
|
|
933
940
|
size = "md"
|
|
934
941
|
}) => {
|
|
935
942
|
const id = (0, import_react4.useId)();
|
|
943
|
+
const { isFocusVisible: isFocusVisible2 } = useFocusVisible();
|
|
944
|
+
const [isFocused, setIsFocused] = (0, import_react4.useState)(false);
|
|
936
945
|
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
937
946
|
"div",
|
|
938
947
|
{
|
|
@@ -951,10 +960,16 @@ var SelectList = ({
|
|
|
951
960
|
className: (0, import_classnames9.default)(SelectList_module_default.selectBox, SelectList_module_default[size], {
|
|
952
961
|
[SelectList_module_default.unselected]: !selectedValue && !errorText,
|
|
953
962
|
[SelectList_module_default.selected]: selectedValue && !errorText,
|
|
954
|
-
[SelectList_module_default.selectError]: errorText
|
|
963
|
+
[SelectList_module_default.selectError]: errorText,
|
|
964
|
+
[Focus_module_default.accessibilityOutlineFocus]: isFocused && isFocusVisible2,
|
|
965
|
+
// for focus keyboard
|
|
966
|
+
[SelectList_module_default.seletBoxMouseFocusStyling]: isFocused && !isFocusVisible2
|
|
967
|
+
// for focus mouse
|
|
955
968
|
}),
|
|
956
969
|
onChange,
|
|
957
970
|
value: placeholderText && !selectedValue ? placeholderText : selectedValue,
|
|
971
|
+
onFocus: () => setIsFocused(true),
|
|
972
|
+
onBlur: () => setIsFocused(false),
|
|
958
973
|
children: [
|
|
959
974
|
placeholderText && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("option", { disabled: true, value: placeholderText, children: placeholderText }),
|
|
960
975
|
children
|