@mongodb-js/compass-components 1.29.3 → 1.30.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/lib/components/breadcrumb.js +1 -1
- package/lib/components/breadcrumb.js.map +1 -1
- package/lib/components/bson-value.js +4 -0
- package/lib/components/bson-value.js.map +1 -1
- package/lib/components/collapsible-field-set.js +4 -1
- package/lib/components/collapsible-field-set.js.map +1 -1
- package/lib/components/combobox/Chip.js +5 -2
- package/lib/components/combobox/Chip.js.map +1 -1
- package/lib/components/combobox/Combobox.d.ts +9 -0
- package/lib/components/combobox/Combobox.d.ts.map +1 -1
- package/lib/components/combobox/Combobox.js +225 -5
- package/lib/components/combobox/Combobox.js.map +1 -1
- package/lib/components/combobox/Combobox.styles.d.ts +15 -0
- package/lib/components/combobox/Combobox.styles.d.ts.map +1 -1
- package/lib/components/combobox/Combobox.styles.js +19 -2
- package/lib/components/combobox/Combobox.styles.js.map +1 -1
- package/lib/components/combobox/Combobox.types.d.ts +174 -0
- package/lib/components/combobox/Combobox.types.d.ts.map +1 -1
- package/lib/components/combobox/Combobox.types.js +20 -0
- package/lib/components/combobox/Combobox.types.js.map +1 -1
- package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js +5 -0
- package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js.map +1 -1
- package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts +4 -0
- package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts.map +1 -1
- package/lib/components/combobox/ComboboxMenu/Menu.styles.js +4 -0
- package/lib/components/combobox/ComboboxMenu/Menu.styles.js.map +1 -1
- package/lib/components/combobox/ComboboxOption.d.ts +3 -0
- package/lib/components/combobox/ComboboxOption.d.ts.map +1 -1
- package/lib/components/combobox/ComboboxOption.js +14 -0
- package/lib/components/combobox/ComboboxOption.js.map +1 -1
- package/lib/components/combobox/Menu.styles.d.ts +4 -0
- package/lib/components/combobox/Menu.styles.d.ts.map +1 -1
- package/lib/components/combobox/Menu.styles.js +7 -3
- package/lib/components/combobox/Menu.styles.js.map +1 -1
- package/lib/components/combobox/utils/OptionObjectUtils.d.ts +18 -0
- package/lib/components/combobox/utils/OptionObjectUtils.d.ts.map +1 -1
- package/lib/components/combobox/utils/OptionObjectUtils.js +18 -0
- package/lib/components/combobox/utils/OptionObjectUtils.js.map +1 -1
- package/lib/components/combobox/utils/flattenChildren.d.ts +8 -0
- package/lib/components/combobox/utils/flattenChildren.d.ts.map +1 -1
- package/lib/components/combobox/utils/flattenChildren.js +13 -1
- package/lib/components/combobox/utils/flattenChildren.js.map +1 -1
- package/lib/components/combobox/utils/getNameAndValue.d.ts +9 -0
- package/lib/components/combobox/utils/getNameAndValue.d.ts.map +1 -1
- package/lib/components/combobox/utils/getNameAndValue.js +10 -1
- package/lib/components/combobox/utils/getNameAndValue.js.map +1 -1
- package/lib/components/combobox/utils/wrapJSX.d.ts +12 -0
- package/lib/components/combobox/utils/wrapJSX.d.ts.map +1 -1
- package/lib/components/combobox/utils/wrapJSX.js +21 -0
- package/lib/components/combobox/utils/wrapJSX.js.map +1 -1
- package/lib/components/combobox-with-custom-option.js +2 -0
- package/lib/components/combobox-with-custom-option.js.map +1 -1
- package/lib/components/compass-components-provider.d.ts +23 -0
- package/lib/components/compass-components-provider.d.ts.map +1 -1
- package/lib/components/compass-components-provider.js +22 -1
- package/lib/components/compass-components-provider.js.map +1 -1
- package/lib/components/content-with-fallback.js +3 -0
- package/lib/components/content-with-fallback.js.map +1 -1
- package/lib/components/document-list/document-actions-group.js +10 -1
- package/lib/components/document-list/document-actions-group.js.map +1 -1
- package/lib/components/document-list/document-edit-actions-footer.js +3 -0
- package/lib/components/document-list/document-edit-actions-footer.js.map +1 -1
- package/lib/components/document-list/document.js +23 -1
- package/lib/components/document-list/document.js.map +1 -1
- package/lib/components/document-list/element-actions.js +2 -0
- package/lib/components/document-list/element-actions.js.map +1 -1
- package/lib/components/document-list/element-editors.js +51 -9
- package/lib/components/document-list/element-editors.js.map +1 -1
- package/lib/components/document-list/element.js +45 -5
- package/lib/components/document-list/element.js.map +1 -1
- package/lib/components/empty-content.js +1 -1
- package/lib/components/empty-content.js.map +1 -1
- package/lib/components/error-boundary.js +3 -0
- package/lib/components/error-boundary.js.map +1 -1
- package/lib/components/feedback-popover.js +3 -0
- package/lib/components/feedback-popover.js.map +1 -1
- package/lib/components/file-input.js +22 -3
- package/lib/components/file-input.js.map +1 -1
- package/lib/components/guide-cue/guide-cue-groups.js +3 -0
- package/lib/components/guide-cue/guide-cue-groups.js.map +1 -1
- package/lib/components/guide-cue/guide-cue-service.js +5 -0
- package/lib/components/guide-cue/guide-cue-service.js.map +1 -1
- package/lib/components/guide-cue/guide-cue.js +14 -1
- package/lib/components/guide-cue/guide-cue.js.map +1 -1
- package/lib/components/icons/favorite-icon.js +3 -1
- package/lib/components/icons/favorite-icon.js.map +1 -1
- package/lib/components/index-keys-badge.js +1 -0
- package/lib/components/index-keys-badge.js.map +1 -1
- package/lib/components/inline-definition.js +1 -0
- package/lib/components/inline-definition.js.map +1 -1
- package/lib/components/interactive-popover.d.ts +3 -0
- package/lib/components/interactive-popover.d.ts.map +1 -1
- package/lib/components/interactive-popover.js +6 -0
- package/lib/components/interactive-popover.js.map +1 -1
- package/lib/components/item-action-controls.d.ts +2 -1
- package/lib/components/item-action-controls.d.ts.map +1 -1
- package/lib/components/item-action-controls.js +31 -4
- package/lib/components/item-action-controls.js.map +1 -1
- package/lib/components/keyline-card.d.ts +7 -0
- package/lib/components/keyline-card.d.ts.map +1 -1
- package/lib/components/leafygreen.js +8 -0
- package/lib/components/leafygreen.js.map +1 -1
- package/lib/components/links/link.js +2 -0
- package/lib/components/links/link.js.map +1 -1
- package/lib/components/modals/modal-body.js +2 -0
- package/lib/components/modals/modal-body.js.map +1 -1
- package/lib/components/modals/modal.js +8 -0
- package/lib/components/modals/modal.js.map +1 -1
- package/lib/components/options-toggle.js +5 -1
- package/lib/components/options-toggle.js.map +1 -1
- package/lib/components/placeholder.js +1 -0
- package/lib/components/placeholder.js.map +1 -1
- package/lib/components/resize-handle.js +4 -0
- package/lib/components/resize-handle.js.map +1 -1
- package/lib/components/resizeable-sidebar.js +2 -0
- package/lib/components/resizeable-sidebar.js.map +1 -1
- package/lib/components/signal-popover.d.ts +19 -0
- package/lib/components/signal-popover.d.ts.map +1 -1
- package/lib/components/signal-popover.js +43 -3
- package/lib/components/signal-popover.js.map +1 -1
- package/lib/components/tab-nav-bar.d.ts +11 -4
- package/lib/components/tab-nav-bar.d.ts.map +1 -1
- package/lib/components/tab-nav-bar.js +14 -11
- package/lib/components/tab-nav-bar.js.map +1 -1
- package/lib/components/toast-body.js +1 -0
- package/lib/components/toast-body.js.map +1 -1
- package/lib/components/virtual-grid.d.ts +42 -0
- package/lib/components/virtual-grid.d.ts.map +1 -1
- package/lib/components/virtual-grid.js +3 -0
- package/lib/components/virtual-grid.js.map +1 -1
- package/lib/components/virtual-list.d.ts +69 -0
- package/lib/components/virtual-list.d.ts.map +1 -1
- package/lib/components/virtual-list.js +9 -1
- package/lib/components/virtual-list.js.map +1 -1
- package/lib/components/workspace-container.js +10 -0
- package/lib/components/workspace-container.js.map +1 -1
- package/lib/components/workspace-tabs/tab.js +15 -1
- package/lib/components/workspace-tabs/tab.js.map +1 -1
- package/lib/components/workspace-tabs/workspace-tabs.js +5 -1
- package/lib/components/workspace-tabs/workspace-tabs.js.map +1 -1
- package/lib/hooks/use-confirmation.js +12 -1
- package/lib/hooks/use-confirmation.js.map +1 -1
- package/lib/hooks/use-default-action.d.ts +8 -0
- package/lib/hooks/use-default-action.d.ts.map +1 -1
- package/lib/hooks/use-default-action.js +11 -1
- package/lib/hooks/use-default-action.js.map +1 -1
- package/lib/hooks/use-effect-on-change.d.ts +6 -0
- package/lib/hooks/use-effect-on-change.d.ts.map +1 -1
- package/lib/hooks/use-effect-on-change.js +18 -1
- package/lib/hooks/use-effect-on-change.js.map +1 -1
- package/lib/hooks/use-focus-ring.d.ts +19 -0
- package/lib/hooks/use-focus-ring.d.ts.map +1 -1
- package/lib/hooks/use-focus-ring.js +21 -0
- package/lib/hooks/use-focus-ring.js.map +1 -1
- package/lib/hooks/use-hotkeys.d.ts +14 -0
- package/lib/hooks/use-hotkeys.d.ts.map +1 -1
- package/lib/hooks/use-hotkeys.js +18 -3
- package/lib/hooks/use-hotkeys.js.map +1 -1
- package/lib/hooks/use-persisted-state.d.ts +9 -0
- package/lib/hooks/use-persisted-state.d.ts.map +1 -1
- package/lib/hooks/use-persisted-state.js +9 -0
- package/lib/hooks/use-persisted-state.js.map +1 -1
- package/lib/hooks/use-scrollbars.d.ts +7 -0
- package/lib/hooks/use-scrollbars.d.ts.map +1 -1
- package/lib/hooks/use-scrollbars.js +19 -0
- package/lib/hooks/use-scrollbars.js.map +1 -1
- package/lib/hooks/use-sort.js +6 -0
- package/lib/hooks/use-sort.js.map +1 -1
- package/lib/hooks/use-stacked-component.js +1 -0
- package/lib/hooks/use-stacked-component.js.map +1 -1
- package/lib/hooks/use-theme.js +10 -1
- package/lib/hooks/use-theme.js.map +1 -1
- package/lib/hooks/use-toast.d.ts +15 -0
- package/lib/hooks/use-toast.d.ts.map +1 -1
- package/lib/hooks/use-toast.js +30 -0
- package/lib/hooks/use-toast.js.map +1 -1
- package/lib/hooks/use-virtual-grid.d.ts +8 -0
- package/lib/hooks/use-virtual-grid.d.ts.map +1 -1
- package/lib/hooks/use-virtual-grid.js +29 -0
- package/lib/hooks/use-virtual-grid.js.map +1 -1
- package/lib/hooks/use-virtual-list-item-observer.js +23 -0
- package/lib/hooks/use-virtual-list-item-observer.js.map +1 -1
- package/lib/utils/format-date.js +2 -0
- package/lib/utils/format-date.js.map +1 -1
- package/lib/utils/merge-props.js +1 -0
- package/lib/utils/merge-props.js.map +1 -1
- package/lib/utils/rafraf.d.ts +10 -0
- package/lib/utils/rafraf.d.ts.map +1 -1
- package/lib/utils/rafraf.js +10 -0
- package/lib/utils/rafraf.js.map +1 -1
- package/package.json +7 -10
- package/lib/hooks/use-virtual-grid.test.d.ts +0 -2
- package/lib/hooks/use-virtual-grid.test.d.ts.map +0 -1
- package/lib/hooks/use-virtual-grid.test.js +0 -210
- package/lib/hooks/use-virtual-grid.test.js.map +0 -1
|
@@ -72,15 +72,24 @@ const tabStyles = (0, emotion_1.css)({
|
|
|
72
72
|
'&:focus-visible': {
|
|
73
73
|
boxShadow: 'inset 0 0 0 1px var(--workspace-tab-border-color)',
|
|
74
74
|
},
|
|
75
|
+
/*
|
|
76
|
+
the text makes space for the button,
|
|
77
|
+
because the button takes no space
|
|
78
|
+
*/
|
|
75
79
|
[focusedChild('.workspace-tab-title-container')]: {
|
|
76
80
|
maxWidth: `calc(100% - ${tokens_1.spacing[600]}px - ${tokens_1.spacing[150]}px)`,
|
|
77
81
|
},
|
|
82
|
+
/*
|
|
83
|
+
the button takes no space,
|
|
84
|
+
so that the width does not jump as it shows/hides
|
|
85
|
+
*/
|
|
78
86
|
[focusedChild('.workspace-tab-close-button')]: {
|
|
79
87
|
display: 'inline-block',
|
|
80
88
|
position: 'absolute',
|
|
81
89
|
right: tokens_1.spacing[100],
|
|
82
90
|
bottom: tokens_1.spacing[100] + tokens_1.spacing[50],
|
|
83
91
|
},
|
|
92
|
+
// instead of topBorder we use a pseudoelement, so that we can programmaticaly adjust the colors
|
|
84
93
|
'&::before': {
|
|
85
94
|
content: '""',
|
|
86
95
|
backgroundColor: 'var(--workspace-tab-top-border-color)',
|
|
@@ -176,7 +185,12 @@ function Tab({ connectionName, type, title, tooltip, isSelected, isDragging, onS
|
|
|
176
185
|
transition,
|
|
177
186
|
cursor: 'grabbing !important',
|
|
178
187
|
};
|
|
179
|
-
return (react_1.default.createElement(leafygreen_2.Tooltip, { enabled: !!tooltip,
|
|
188
|
+
return (react_1.default.createElement(leafygreen_2.Tooltip, { enabled: !!tooltip,
|
|
189
|
+
// To make sure that tooltips are always on the bottom of the tab in
|
|
190
|
+
// compass-web and are not hidden by the mms top navigation bar
|
|
191
|
+
align: "bottom", justify: "start", trigger: react_1.default.createElement("div", { ref: setNodeRef, style: style, className: (0, emotion_1.cx)(tabStyles, themeClass, isSelected && selectedTabStyles, isSelected && tabTheme && selectedThemedTabStyles, isDragging && draggingTabStyles), "aria-selected": isSelected, role: "tab",
|
|
192
|
+
// Catch navigation on the active tab when a user tabs through Compass.
|
|
193
|
+
tabIndex: isSelected ? 0 : -1, "aria-controls": tabContentId, "data-testid": "workspace-tab-button", "data-connection-name": connectionName, "data-type": type, ...tabProps },
|
|
180
194
|
iconGlyph === 'Logo' && (react_1.default.createElement(logo_icon_1.LogoIcon, { height: 16, color: isSelected
|
|
181
195
|
? 'var(--workspace-tab-selected-color)'
|
|
182
196
|
: 'var(--workspace-tab-color)', role: "presentation", className: tabIconStyles, "data-testid": `workspace-tab-icon-${iconGlyph}` })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/components/workspace-tabs/tab.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AACvC,oDAAiD;AACjD,oDAAiD;AACjD,kDAAgD;AAEhD,gDAAgD;AAChD,kDAAsD;AACtD,qDAAoD;AACpD,8CAAiD;AACjD,yDAAqD;AACrD,uEAAkE;AAClE,kDAA8C;AAC9C,8CAAwC;AACxC,sDAAkD;AAElD,SAAS,YAAY,CAAC,SAAiB;IACrC,OAAO,WAAW,SAAS,qBAAqB,SAAS,gCAAgC,SAAS,EAAE,CAAC;AACvG,CAAC;AAED,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC;IACpB,OAAO,EAAE,MAAM;IACf,iBAAiB,EAAE;;;GAGlB;IACD,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,gBAAO,CAAC,GAAG,CAAC;IAC3B,gBAAgB,EAAE,GAAG,gBAAO,CAAC,GAAG,CAAC,QAAQ;IACzC,mBAAmB,EAAE,6BAA6B;IAClD,sDAAsD,EAAE;QACtD,mBAAmB,EAAE,6BAA6B;KACnD;IACD,UAAU,EAAE,QAAQ;IAEpB,aAAa,EAAE,gBAAO,CAAC,GAAG,CAAC;IAE3B,QAAQ,EAAE,gBAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1B,QAAQ,EAAE,gBAAO,CAAC,IAAI,CAAC,GAAG,gBAAO,CAAC,GAAG,CAAC;IACtC,MAAM,EAAE,gBAAO,CAAC,IAAI,CAAC;IACrB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,MAAM;IAEf,eAAe,EAAE,uCAAuC;IACxD,KAAK,EAAE,4BAA4B;IACnC,SAAS,EAAE,uDAAuD;IAElE,SAAS,EAAE;QACT,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,CAAC;KACV;IAED,iBAAiB,EAAE;QACjB,SAAS,EAAE,mDAAmD;KAC/D;
|
|
1
|
+
{"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/components/workspace-tabs/tab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -98,11 +98,13 @@ function useTabListKeyboardNavigation({ tabsCount, onSelectTab, selectedTabIndex
|
|
|
98
98
|
if (evt.key === 'Home') {
|
|
99
99
|
evt.preventDefault();
|
|
100
100
|
evt.stopPropagation();
|
|
101
|
+
// Select the first tab.
|
|
101
102
|
nextTabbable = 0;
|
|
102
103
|
}
|
|
103
104
|
if (evt.key === 'End') {
|
|
104
105
|
evt.preventDefault();
|
|
105
106
|
evt.stopPropagation();
|
|
107
|
+
// Select the last tab.
|
|
106
108
|
nextTabbable = tabsCount - 1;
|
|
107
109
|
}
|
|
108
110
|
if (tabsCount > 0 &&
|
|
@@ -118,7 +120,7 @@ function useRovingTabIndex({ currentTabbable, }) {
|
|
|
118
120
|
const rootNode = (0, react_1.useRef)(null);
|
|
119
121
|
const [focusProps, focusState] = (0, use_focus_hover_1.useFocusState)();
|
|
120
122
|
const focusTabbable = (0, react_1.useCallback)(() => {
|
|
121
|
-
const selector = `[role="tab"]:nth-child(${currentTabbable + 1})`;
|
|
123
|
+
const selector = `[role="tab"]:nth-child(${currentTabbable + 1 /* nth child starts at 1. */})`;
|
|
122
124
|
rootNode.current?.querySelector(selector)?.focus();
|
|
123
125
|
}, [rootNode, currentTabbable]);
|
|
124
126
|
(0, react_1.useEffect)(() => {
|
|
@@ -138,10 +140,12 @@ const SortableList = ({ tabs, onMove, onSelect, selectedTabIndex, onClose, }) =>
|
|
|
138
140
|
const items = tabs.map((tab) => tab.id);
|
|
139
141
|
const [activeId, setActiveId] = (0, react_1.useState)(null);
|
|
140
142
|
const sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.MouseSensor, {
|
|
143
|
+
// Require the mouse to move by 10 pixels before activating.
|
|
141
144
|
activationConstraint: {
|
|
142
145
|
distance: 10,
|
|
143
146
|
},
|
|
144
147
|
}), (0, core_1.useSensor)(core_1.TouchSensor, {
|
|
148
|
+
// Press delay of 250ms, with tolerance of 5px of movement.
|
|
145
149
|
activationConstraint: {
|
|
146
150
|
delay: 250,
|
|
147
151
|
tolerance: 5,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-tabs.js","sourceRoot":"","sources":["../../../src/components/workspace-tabs/workspace-tabs.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAMe;AACf,oDAAiD;AACjD,oDAAiD;AACjD,kDAAgD;AAEhD,uCAAgC;AAEhC,wCAMuB;AAEvB,gDAG2B;AAE3B,qDAAoD;AACpD,iEAAwE;AACxE,8CAAiD;AACjD,yDAAqD;AACrD,+BAA4B;AAC5B,yDAAqD;AAExC,QAAA,wBAAwB,GAAG,IAAA,eAAI,EAAC,iBAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,QAAA,uBAAuB,GAAG,IAAA,eAAI,EAAC,iBAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAErE,MAAM,mBAAmB,GAAG,IAAA,aAAG,EAAC;IAC9B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;IACpB,qBAAqB,EAAE;QACrB,aAAa,EAAE;YACb,MAAM,EAAE,gBAAO,CAAC,CAAC,CAAC;SACnB;KACF;IACD,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAA,aAAG,EAAC;IACnC,UAAU,EAAE,iBAAO,CAAC,IAAI,CAAC,MAAM;IAC/B,SAAS,EAAE,sBAAsB,iBAAO,CAAC,IAAI,CAAC,MAAM,EAAE;IACtD,2BAA2B,EAAE;QAC3B,eAAe,EAAE,gCAAwB;KAC1C;CACF,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAA,aAAG,EAAC;IAClC,eAAe,EAAE,iBAAO,CAAC,IAAI,CAAC,KAAK;IACnC,SAAS,EAAE,sBAAsB,iBAAO,CAAC,IAAI,CAAC,KAAK,EAAE;IACrD,2BAA2B,EAAE;QAC3B,eAAe,EAAE,+BAAuB;KACzC;CACF,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAA,aAAG,EAAC;IAClC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAA,aAAG,EAAC;IACzB,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAA,aAAG,EAAC;IAChC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAA,aAAG,EAAC;IACnC,MAAM,EAAE,gBAAO,CAAC,CAAC,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAA,aAAG,EAAC;IACtC,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,SAAS,4BAA4B,CAAiB,EACpD,SAAS,EACT,WAAW,EACX,gBAAgB,GAKjB;IACC,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,GAAwC,EAAE,EAAE;QAC3C,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QAEtB,IAAI,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC;SACrC;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,EAAE;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC;SACrC;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE;YACtB,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-tabs.js","sourceRoot":"","sources":["../../../src/components/workspace-tabs/workspace-tabs.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAMe;AACf,oDAAiD;AACjD,oDAAiD;AACjD,kDAAgD;AAEhD,uCAAgC;AAEhC,wCAMuB;AAEvB,gDAG2B;AAE3B,qDAAoD;AACpD,iEAAwE;AACxE,8CAAiD;AACjD,yDAAqD;AACrD,+BAA4B;AAC5B,yDAAqD;AAExC,QAAA,wBAAwB,GAAG,IAAA,eAAI,EAAC,iBAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,QAAA,uBAAuB,GAAG,IAAA,eAAI,EAAC,iBAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAErE,MAAM,mBAAmB,GAAG,IAAA,aAAG,EAAC;IAC9B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;IACpB,qBAAqB,EAAE;QACrB,aAAa,EAAE;YACb,MAAM,EAAE,gBAAO,CAAC,CAAC,CAAC;SACnB;KACF;IACD,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAA,aAAG,EAAC;IACnC,UAAU,EAAE,iBAAO,CAAC,IAAI,CAAC,MAAM;IAC/B,SAAS,EAAE,sBAAsB,iBAAO,CAAC,IAAI,CAAC,MAAM,EAAE;IACtD,2BAA2B,EAAE;QAC3B,eAAe,EAAE,gCAAwB;KAC1C;CACF,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAA,aAAG,EAAC;IAClC,eAAe,EAAE,iBAAO,CAAC,IAAI,CAAC,KAAK;IACnC,SAAS,EAAE,sBAAsB,iBAAO,CAAC,IAAI,CAAC,KAAK,EAAE;IACrD,2BAA2B,EAAE;QAC3B,eAAe,EAAE,+BAAuB;KACzC;CACF,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAA,aAAG,EAAC;IAClC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAA,aAAG,EAAC;IACzB,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAA,aAAG,EAAC;IAChC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAA,aAAG,EAAC;IACnC,MAAM,EAAE,gBAAO,CAAC,CAAC,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAA,aAAG,EAAC;IACtC,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,SAAS,4BAA4B,CAAiB,EACpD,SAAS,EACT,WAAW,EACX,gBAAgB,GAKjB;IACC,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,GAAwC,EAAE,EAAE;QAC3C,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QAEtB,IAAI,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC;SACrC;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,EAAE;YAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC;SACrC;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE;YACtB,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,wBAAwB;YACxB,YAAY,GAAG,CAAC,CAAC;SAClB;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE;YACrB,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,uBAAuB;YACvB,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;SAC9B;QAED,IACE,SAAS,GAAG,CAAC;YACb,YAAY,KAAK,gBAAgB;YACjC,YAAY,IAAI,CAAC;YACjB,YAAY,GAAG,SAAS,EACxB;YACA,WAAW,CAAC,YAAY,CAAC,CAAC;SAC3B;IACH,CAAC,EACD,CAAC,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,CAC3C,CAAC;IAEF,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AACzB,CAAC;AAwCD,SAAgB,iBAAiB,CAAsC,EACrE,eAAe,GAGhB;IACC,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAW,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAA,+BAAa,GAAE,CAAC;IAEjD,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,MAAM,QAAQ,GAAG,0BACf,eAAe,GAAG,CAAC,CAAC,4BACtB,GAAG,CAAC;QACJ,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEhC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IACE;YACE,4BAAU,CAAC,KAAK;YAChB,4BAAU,CAAC,YAAY;YACvB,4BAAU,CAAC,WAAW;YACtB,4BAAU,CAAC,kBAAkB;SAC9B,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtB;YACA,aAAa,EAAE,CAAC;SACjB;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1C,CAAC;AA7BD,8CA6BC;AAED,MAAM,YAAY,GAAG,CAAC,EACpB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,OAAO,GACW,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAA,iBAAU,EACxB,IAAA,gBAAS,EAAC,kBAAW,EAAE;QACrB,4DAA4D;QAC5D,oBAAoB,EAAE;YACpB,QAAQ,EAAE,EAAE;SACb;KACF,CAAC,EACF,IAAA,gBAAS,EAAC,kBAAW,EAAE;QACrB,2DAA2D;QAC3D,oBAAoB,EAAE;YACpB,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,CAAC;SACb;KACF,CAAC,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,CAAC,CACf,CAAC;IAEF,OAAO,CACL,8BAAC,iBAAU,IACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;aACR;YAED,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,EACD,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;gBACjC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;aACvD;QACH,CAAC,EACD,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;QAErC,8BAAC,0BAAe,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,wCAA6B;YACpE,uCAAK,SAAS,EAAE,2BAA2B,IACxC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAa,EAAE,KAAa,EAAE,EAAE,CAAC,CAC1C,8BAAC,YAAY,IACX,GAAG,EAAE,GAAG,CAAC,EAAE,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC,CACE,CACU,CACP,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,GAAG,EAAE,QAAQ,EACb,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,OAAO,GACW,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAE/B,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACnC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,IAAA,eAAO,EACxB,GAAG,EAAE,CAAC,gBAAgB,KAAK,KAAK,EAChC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAC1B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExE,OAAO,CACL,8BAAC,SAAG,OACE,QAAQ,EACZ,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,aAAa,CAAC,EACrB,CAAC,YAAY,CAAC,EAAE,SAAS,EACzB,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,IAAI,EACJ,gBAAgB,GACG;IACnB,MAAM,QAAQ,GAAG,IAAA,uBAAW,GAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAG,iBAAiB,CAAiB;QACzD,eAAe,EAAE,gBAAgB;KAClC,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,4BAA4B,CAAiB;QACrE,gBAAgB;QAChB,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAA,wBAAU,EAClC,gBAAgB,EAChB,eAAe,CAChB,CAAC;IAEF,IAAA,wBAAU,EACR,YAAY,EACZ,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;IACpB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,IAAA,wBAAU,EACR,oBAAoB,EACpB,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;IACpB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,IAAA,wBAAU,EACR,iBAAiB,EACjB,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;IACpB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,IAAA,wBAAU,EACR,iBAAiB,EACjB,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;IACpB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,IAAA,wBAAU,EACR,SAAS,EACT,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAC/B,CAAC;IACF,IAAA,wBAAU,EACR,SAAS,EACT,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,cAAc,EAAE,CAAC;IACnB,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,OAAO,CACL,uCACE,SAAS,EAAE,IAAA,YAAE,EACX,mBAAmB,EACnB,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,CAC9D;QAED,uCAAK,SAAS,EAAE,uBAAuB;YACrC,uCACE,SAAS,EAAE,cAAc,EACzB,IAAI,EAAC,SAAS,gBACF,SAAS,sBACJ,YAAY,KACzB,iBAAiB;gBAErB,8BAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,UAAU,EACnB,gBAAgB,EAAE,gBAAgB,GAClC,CACE;YACN,uCAAK,SAAS,EAAE,qBAAqB;gBACnC,8BAAC,uBAAU,IACT,SAAS,EAAE,wBAAwB,gBACxB,gBAAgB,EAC3B,OAAO,EAAE,cAAc;oBAEvB,8BAAC,iBAAI,IAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,MAAM,GAAG,CAC9B,CACT,CACF,CACF,CACP,CAAC;AACJ,CAAC;AAEQ,sCAAa"}
|
|
@@ -68,6 +68,7 @@ const ConfirmationModalArea = ({ children }) => {
|
|
|
68
68
|
callbackRef.current?.(false);
|
|
69
69
|
};
|
|
70
70
|
}, []);
|
|
71
|
+
// Event listener to use confirmation modal outside of react
|
|
71
72
|
(0, react_1.useEffect)(() => {
|
|
72
73
|
const listener = ({ detail: { resolve, reject, props }, }) => {
|
|
73
74
|
setConfirmationProps({ open: true, ...props });
|
|
@@ -102,7 +103,17 @@ const ConfirmationModalArea = ({ children }) => {
|
|
|
102
103
|
}
|
|
103
104
|
return (react_1.default.createElement(ConfirmationModalContext.Provider, { value: contextValue },
|
|
104
105
|
children,
|
|
105
|
-
react_1.default.createElement(confirmation_modal_2.default
|
|
106
|
+
react_1.default.createElement(confirmation_modal_2.default
|
|
107
|
+
// To make sure that confirmation modal internal state is reset for
|
|
108
|
+
// every confirmation request triggered with showConfirmation method we
|
|
109
|
+
// pass `confirmationId` as a component key to force React to remount it
|
|
110
|
+
// when request starts
|
|
111
|
+
, {
|
|
112
|
+
// To make sure that confirmation modal internal state is reset for
|
|
113
|
+
// every confirmation request triggered with showConfirmation method we
|
|
114
|
+
// pass `confirmationId` as a component key to force React to remount it
|
|
115
|
+
// when request starts
|
|
116
|
+
key: confirmationId, "data-testid": confirmationProps['data-testid'] ?? 'confirmation-modal', open: confirmationProps.open, title: confirmationProps.title ?? 'Are you sure?', variant: confirmationProps.variant ?? confirmation_modal_1.Variant.Default, confirmButtonProps: {
|
|
106
117
|
className: confirmationProps.hideConfirmButton
|
|
107
118
|
? hideButtonStyles
|
|
108
119
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-confirmation.js","sourceRoot":"","sources":["../../src/hooks/use-confirmation.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuE;AACvE,0EAAwF;AAI/E,yGAJW,4BAAwB,OAIX;AAHjC,iGAAwE;AACxE,oDAA6C;AAsD7C,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,MAAM,kBAAmB,SAAQ,WAAW;IAC1C,gBAAgB,CAAC,KAA6B;QAC5C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAA8B,mBAAmB,EAAE;gBAChE,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE;oBACrD,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AACD,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEvC,QAAA,gBAAgB,GAC3B,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAE/D,MAAM,wBAAwB,GAC5B,eAAK,CAAC,aAAa,CAA+B;IAChD,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAhB,wBAAgB;CACjB,CAAC,CAAC;AAML,MAAM,gBAAgB,GAAG,IAAA,aAAG,EAAC;IAC3B,OAAO,EAAE,iBAAiB;CAC3B,CAAC,CAAC;AAEI,MAAM,qBAAqB,GAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,MAAM,gBAAgB,GAAG,IAAA,kBAAU,EAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC;IAExE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAC7C,IAAA,gBAAQ,EAA6B;QACnC,IAAI,EAAE,KAAK;QACX,cAAc,EAAE,CAAC,CAAC;KACnB,CAAC,CAAC;IACL,MAAM,WAAW,GAAG,IAAA,cAAM,GAAwB,CAAC;IAEnD,MAAM,YAAY,GAAG,eAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAhB,wBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAC7C,EAAE,CACH,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-confirmation.js","sourceRoot":"","sources":["../../src/hooks/use-confirmation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* Augments a component with default action handling. Default action refers to
|
|
4
|
+
* the action produced by button-like interaction with the UI element: click or
|
|
5
|
+
* space / enter key press
|
|
6
|
+
*
|
|
7
|
+
* @param onDefaultAction Action callback
|
|
8
|
+
* @returns Props that should be passed to the component
|
|
9
|
+
*/
|
|
2
10
|
export declare function useDefaultAction<T>(onDefaultAction: (evt: React.KeyboardEvent<T> | React.MouseEvent<T>) => void): React.HTMLAttributes<T>;
|
|
3
11
|
//# sourceMappingURL=use-default-action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-default-action.d.ts","sourceRoot":"","sources":["../../src/hooks/use-default-action.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-default-action.d.ts","sourceRoot":"","sources":["../../src/hooks/use-default-action.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAC3E,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAyBzB"}
|
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useDefaultAction = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
+
/**
|
|
6
|
+
* Augments a component with default action handling. Default action refers to
|
|
7
|
+
* the action produced by button-like interaction with the UI element: click or
|
|
8
|
+
* space / enter key press
|
|
9
|
+
*
|
|
10
|
+
* @param onDefaultAction Action callback
|
|
11
|
+
* @returns Props that should be passed to the component
|
|
12
|
+
*/
|
|
5
13
|
function useDefaultAction(onDefaultAction) {
|
|
6
14
|
const onClick = (0, react_1.useCallback)((evt) => {
|
|
7
15
|
evt.stopPropagation();
|
|
8
16
|
onDefaultAction(evt);
|
|
9
17
|
}, [onDefaultAction]);
|
|
10
18
|
const onKeyDown = (0, react_1.useCallback)((evt) => {
|
|
11
|
-
if (
|
|
19
|
+
if (
|
|
20
|
+
// Only handle keyboard events if they originated on the element
|
|
21
|
+
evt.target === evt.currentTarget &&
|
|
12
22
|
[' ', 'Enter'].includes(evt.key)) {
|
|
13
23
|
evt.preventDefault();
|
|
14
24
|
evt.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-default-action.js","sourceRoot":"","sources":["../../src/hooks/use-default-action.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;
|
|
1
|
+
{"version":3,"file":"use-default-action.js","sourceRoot":"","sources":["../../src/hooks/use-default-action.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAEpC;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,eAA4E;IAE5E,MAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,CAAC,GAAwB,EAAE,EAAE;QAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,eAAe,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,GAA2B,EAAE,EAAE;QAC9B;QACE,gEAAgE;QAChE,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,aAAa;YAChC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAChC;YACA,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,eAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AA3BD,4CA2BC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import type { RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Runs an effect, but only after the value changes for the first time (skipping
|
|
4
|
+
* the first "onMount" effect)
|
|
5
|
+
*
|
|
6
|
+
* Returns a ref for the initial value
|
|
7
|
+
*/
|
|
2
8
|
export declare function useEffectOnChange<T>(fn: React.EffectCallback, val: T): RefObject<T>;
|
|
3
9
|
//# sourceMappingURL=use-effect-on-change.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-effect-on-change.d.ts","sourceRoot":"","sources":["../../src/hooks/use-effect-on-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-effect-on-change.d.ts","sourceRoot":"","sources":["../../src/hooks/use-effect-on-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBvC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,EAAE,EAAE,KAAK,CAAC,cAAc,EACxB,GAAG,EAAE,CAAC,GACL,SAAS,CAAC,CAAC,CAAC,CAkBd"}
|
|
@@ -4,21 +4,38 @@ exports.useEffectOnChange = void 0;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const react_2 = require("react");
|
|
6
6
|
const kValueChanged = Symbol('Value changed');
|
|
7
|
+
// Creates a memo array from passed value, by either wraping value in array or
|
|
8
|
+
// just returning as-is if value is already an array.
|
|
7
9
|
function useMemoDependencies(value) {
|
|
8
10
|
return (0, react_1.useMemo)(() => {
|
|
9
11
|
return Array.isArray(value) ? value : [value];
|
|
10
|
-
},
|
|
12
|
+
},
|
|
13
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14
|
+
Array.isArray(value) ? value : [value]);
|
|
11
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Runs an effect, but only after the value changes for the first time (skipping
|
|
18
|
+
* the first "onMount" effect)
|
|
19
|
+
*
|
|
20
|
+
* Returns a ref for the initial value
|
|
21
|
+
*/
|
|
12
22
|
function useEffectOnChange(fn, val) {
|
|
23
|
+
// Keep the initial value as a ref so we can check against it in effect when
|
|
24
|
+
// the current value changes
|
|
13
25
|
const initial = (0, react_2.useRef)(val);
|
|
14
26
|
const effect = (0, react_2.useRef)(fn);
|
|
15
27
|
effect.current = fn;
|
|
16
28
|
(0, react_2.useEffect)(() => {
|
|
29
|
+
// We check if value doesn't match the initial one to avoid running effect
|
|
30
|
+
// for the first mount
|
|
17
31
|
if (val !== initial.current) {
|
|
32
|
+
// After we detected at least one change in value, we set the initial to a
|
|
33
|
+
// symbol so that the current value is never equal to it anymore
|
|
18
34
|
initial.current = kValueChanged;
|
|
19
35
|
return effect.current();
|
|
20
36
|
}
|
|
21
37
|
}, useMemoDependencies(val));
|
|
38
|
+
// Return a readonly ref value
|
|
22
39
|
return (0, react_2.useRef)(val);
|
|
23
40
|
}
|
|
24
41
|
exports.useEffectOnChange = useEffectOnChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-effect-on-change.js","sourceRoot":"","sources":["../../src/hooks/use-effect-on-change.ts"],"names":[],"mappings":";;;AACA,iCAAgC;AAChC,iCAA0C;AAE1C,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-effect-on-change.js","sourceRoot":"","sources":["../../src/hooks/use-effect-on-change.ts"],"names":[],"mappings":";;;AACA,iCAAgC;AAChC,iCAA0C;AAE1C,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE9C,8EAA8E;AAC9E,qDAAqD;AACrD,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,IAAA,eAAO,EACZ,GAAG,EAAE;QACH,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,uDAAuD;IACvD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,EAAwB,EACxB,GAAM;IAEN,4EAA4E;IAC5E,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAA,cAAM,EAAa,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAA,cAAM,EAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,0EAA0E;QAC1E,sBAAsB;QACtB,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,EAAE;YAC3B,0EAA0E;YAC1E,gEAAgE;YAChE,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;YAChC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB;IACH,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,8BAA8B;IAC9B,OAAO,IAAA,cAAM,EAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AArBD,8CAqBC"}
|
|
@@ -1,8 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default focus ring styles. Can be used for simple cases where we want the
|
|
3
|
+
* default ring with no customization at all (most of the cases in Compass)
|
|
4
|
+
*/
|
|
1
5
|
export declare const focusRing: string;
|
|
6
|
+
/**
|
|
7
|
+
* Provides focus ring styles with a few additional options allowing to override
|
|
8
|
+
* default style
|
|
9
|
+
*
|
|
10
|
+
* @param options
|
|
11
|
+
* @param options.outer show focus ring outside the component (default: false)
|
|
12
|
+
* @param options.focusWithin show focus ring on focus within instead of focus visible (default: false)
|
|
13
|
+
* @param options.hover show focus ring on hover in addition to focus (default: false)
|
|
14
|
+
* @param options.radius focus ring radius (default: 4px or spacing[1] from leafygreen)
|
|
15
|
+
* @returns props to apply to the component
|
|
16
|
+
*/
|
|
2
17
|
export declare function useFocusRing({ outer, focusWithin, hover, radius, }?: {
|
|
18
|
+
/** show focus ring outside the component (default: false) */
|
|
3
19
|
outer?: boolean;
|
|
20
|
+
/** show focus ring on focus within in addition to focus visible (default: false) */
|
|
4
21
|
focusWithin?: boolean;
|
|
22
|
+
/** show focus ring on hover in addition to focus (default: false) */
|
|
5
23
|
hover?: boolean;
|
|
24
|
+
/** focus ring radius (default: 4px or spacing[1] from leafygreen) */
|
|
6
25
|
radius?: number;
|
|
7
26
|
}): {
|
|
8
27
|
className: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-focus-ring.d.ts","sourceRoot":"","sources":["../../src/hooks/use-focus-ring.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-focus-ring.d.ts","sourceRoot":"","sources":["../../src/hooks/use-focus-ring.ts"],"names":[],"mappings":"AAyCA;;;GAGG;AACH,eAAO,MAAM,SAAS,QAQpB,CAAC;AAoBH;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAa,EACb,WAAmB,EACnB,KAAa,EACb,MAAM,GACP,GAAE;IACD,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ;;EAkCL"}
|
|
@@ -35,7 +35,17 @@ const focusRingHoverVisibleStyles = (darkMode) => (0, emotion_1.css)({
|
|
|
35
35
|
transitionTimingFunction: 'ease-out',
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
|
+
/**
|
|
39
|
+
* Default focus ring styles. Can be used for simple cases where we want the
|
|
40
|
+
* default ring with no customization at all (most of the cases in Compass)
|
|
41
|
+
*/
|
|
38
42
|
exports.focusRing = (0, emotion_1.css)(focusRingStyles, {
|
|
43
|
+
// It's important that we only show focus ring when the focus is determined by
|
|
44
|
+
// the browser as "visible". This means that e.g., buttons will only get the
|
|
45
|
+
// ring around them when navigating application with a keyboard and not just
|
|
46
|
+
// clicking a button which can be annoying
|
|
47
|
+
//
|
|
48
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible
|
|
39
49
|
'&:focus-visible': focusRingVisibleStyles,
|
|
40
50
|
});
|
|
41
51
|
const focusRingOuter = (0, emotion_1.css)({
|
|
@@ -52,6 +62,17 @@ const focusRingWithin = (0, emotion_1.css)({
|
|
|
52
62
|
const focusRingHover = (darkMode) => (0, emotion_1.css)({
|
|
53
63
|
'&:hover': focusRingHoverVisibleStyles(darkMode),
|
|
54
64
|
});
|
|
65
|
+
/**
|
|
66
|
+
* Provides focus ring styles with a few additional options allowing to override
|
|
67
|
+
* default style
|
|
68
|
+
*
|
|
69
|
+
* @param options
|
|
70
|
+
* @param options.outer show focus ring outside the component (default: false)
|
|
71
|
+
* @param options.focusWithin show focus ring on focus within instead of focus visible (default: false)
|
|
72
|
+
* @param options.hover show focus ring on hover in addition to focus (default: false)
|
|
73
|
+
* @param options.radius focus ring radius (default: 4px or spacing[1] from leafygreen)
|
|
74
|
+
* @returns props to apply to the component
|
|
75
|
+
*/
|
|
55
76
|
function useFocusRing({ outer = false, focusWithin = false, hover = false, radius, } = {}) {
|
|
56
77
|
const darkMode = (0, use_theme_1.useDarkMode)();
|
|
57
78
|
const outerClass = (0, react_1.useMemo)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-focus-ring.js","sourceRoot":"","sources":["../../src/hooks/use-focus-ring.ts"],"names":[],"mappings":";;;AAAA,kDAAgD;AAChD,oDAAiD;AACjD,oDAAiD;AACjD,iCAAgC;AAChC,2CAA0C;AAE1C,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC;IAC1B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE;QACV,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,MAAM;QACrB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,gBAAO,CAAC,CAAC,CAAC;QACxB,SAAS,EAAE,qBAAqB;QAChC,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,IAAA,aAAG,EAAC;IACjC,UAAU,EAAE;QACV,SAAS,EAAE,aAAa,iBAAO,CAAC,IAAI,CAAC,MAAM,aAAa;QACxD,wBAAwB,EAAE,UAAU;KACrC;CACF,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,QAAiB,EAAE,EAAE,CACxD,IAAA,aAAG,EAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,aACT,QAAQ,CAAC,CAAC,CAAC,iBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAO,CAAC,IAAI,CAAC,MAC/C,EAAE;QACF,wBAAwB,EAAE,UAAU;KACrC;CACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-focus-ring.js","sourceRoot":"","sources":["../../src/hooks/use-focus-ring.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useHotkeys as useGlobalHotkeys } from 'react-hotkeys-hook';
|
|
3
3
|
type GlobalHotkeysArgs = Parameters<typeof useGlobalHotkeys>;
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* The modifier keys are interpreted differently on macOS and Windows/Linux.
|
|
7
|
+
* useGlobalHotkeys hook normalizes the modifier keys so that they are interpreted on both platforms as follows:
|
|
8
|
+
*
|
|
9
|
+
* Modifier | macOS | Windows | Linux
|
|
10
|
+
* -------- | --------- | ------- | -------
|
|
11
|
+
* ctrl | control | ctrl | ctrl
|
|
12
|
+
* shift | shift | shift | shift
|
|
13
|
+
* alt | option | alt | alt
|
|
14
|
+
* meta | command | windows | meta
|
|
15
|
+
* mod | command | ctrl | ctrl
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
4
18
|
export declare const useHotkeys: (key: string, callback: GlobalHotkeysArgs[1], options?: GlobalHotkeysArgs[2], deps?: GlobalHotkeysArgs[3]) => React.MutableRefObject<import("react-hotkeys-hook/dist/types").RefType<HTMLElement>>;
|
|
5
19
|
export declare const formatHotkey: (key: string) => string;
|
|
6
20
|
export declare const KeyboardShortcut: ({ hotkey }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-hotkeys.d.ts","sourceRoot":"","sources":["../../src/hooks/use-hotkeys.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYpE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-hotkeys.d.ts","sourceRoot":"","sources":["../../src/hooks/use-hotkeys.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYpE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,QAChB,MAAM,YACD,iBAAiB,CAAC,CAAC,CAAC,YACpB,iBAAiB,CAAC,CAAC,CAAC,SACvB,iBAAiB,CAAC,CAAC,CAAC,yFAG5B,CAAC;AAEF,eAAO,MAAM,YAAY,QAAS,MAAM,WAiBvC,CAAC;AAEF,eAAO,MAAM,gBAAgB;YAA0B,MAAM;iBAS5D,CAAC"}
|
package/lib/hooks/use-hotkeys.js
CHANGED
|
@@ -14,12 +14,27 @@ const shortcutContainerStyles = (0, emotion_1.css)({
|
|
|
14
14
|
gap: tokens_1.spacing[1],
|
|
15
15
|
});
|
|
16
16
|
const isMac = () => navigator.userAgent.indexOf('Mac') !== -1;
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* The modifier keys are interpreted differently on macOS and Windows/Linux.
|
|
20
|
+
* useGlobalHotkeys hook normalizes the modifier keys so that they are interpreted on both platforms as follows:
|
|
21
|
+
*
|
|
22
|
+
* Modifier | macOS | Windows | Linux
|
|
23
|
+
* -------- | --------- | ------- | -------
|
|
24
|
+
* ctrl | control | ctrl | ctrl
|
|
25
|
+
* shift | shift | shift | shift
|
|
26
|
+
* alt | option | alt | alt
|
|
27
|
+
* meta | command | windows | meta
|
|
28
|
+
* mod | command | ctrl | ctrl
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
17
31
|
const useHotkeys = (key, callback, options, deps) => {
|
|
18
32
|
return (0, react_hotkeys_hook_1.useHotkeys)(key, callback, options, deps);
|
|
19
33
|
};
|
|
20
34
|
exports.useHotkeys = useHotkeys;
|
|
21
35
|
const formatHotkey = (key) => {
|
|
22
36
|
let shortcut = key.toLowerCase();
|
|
37
|
+
// map the modifier keys to the platform specific keys
|
|
23
38
|
shortcut = isMac()
|
|
24
39
|
? shortcut
|
|
25
40
|
.replace(/\bmeta\b/, '⌘')
|
|
@@ -27,11 +42,11 @@ const formatHotkey = (key) => {
|
|
|
27
42
|
.replace(/\bmod\b/, '⌘')
|
|
28
43
|
: shortcut.replace(/\bmod\b/, 'ctrl');
|
|
29
44
|
return shortcut
|
|
30
|
-
.replace(/\+/g, ' + ')
|
|
31
|
-
.replace(/\s+/g, ' ')
|
|
45
|
+
.replace(/\+/g, ' + ') // Add space on both sides of each '+'
|
|
46
|
+
.replace(/\s+/g, ' ') // Replace multiple spaces with a single space
|
|
32
47
|
.replace('arrowup', '↑')
|
|
33
48
|
.replace('arrowdown', '↓')
|
|
34
|
-
.replace(/\b\w/g, (c) => c.toUpperCase())
|
|
49
|
+
.replace(/\b\w/g, (c) => c.toUpperCase()) // Capitalize the first letter of each word
|
|
35
50
|
.trim();
|
|
36
51
|
};
|
|
37
52
|
exports.formatHotkey = formatHotkey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-hotkeys.js","sourceRoot":"","sources":["../../src/hooks/use-hotkeys.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2DAAoE;AACpE,yDAAyD;AACzD,kDAAgD;AAChD,oDAA6C;AAE7C,MAAM,uBAAuB,GAAG,IAAA,aAAG,EAAC;IAClC,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,gBAAO,CAAC,CAAC,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-hotkeys.js","sourceRoot":"","sources":["../../src/hooks/use-hotkeys.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2DAAoE;AACpE,yDAAyD;AACzD,kDAAgD;AAChD,oDAA6C;AAE7C,MAAM,uBAAuB,GAAG,IAAA,aAAG,EAAC;IAClC,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,gBAAO,CAAC,CAAC,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAI9D;;;;;;;;;;;;;GAaG;AACI,MAAM,UAAU,GAAG,CACxB,GAAW,EACX,QAA8B,EAC9B,OAA8B,EAC9B,IAA2B,EAC3B,EAAE;IACF,OAAO,IAAA,+BAAgB,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB;AAEK,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,IAAI,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACjC,sDAAsD;IACtD,QAAQ,GAAG,KAAK,EAAE;QAChB,CAAC,CAAC,QAAQ;aACL,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;aACxB,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;aAC5B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;QAC5B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAExC,OAAO,QAAQ;SACZ,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,sCAAsC;SAC5D,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,8CAA8C;SACnE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,2CAA2C;SACpF,IAAI,EAAE,CAAC;AACZ,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CACL,wCAAM,SAAS,EAAE,uBAAuB,IACrC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,8BAAC,0BAAa,IAAC,GAAG,EAAE,CAAC,IAAG,CAAC,CAAC,IAAI,EAAE,CAAiB,CAClD,CAAC,CACG,CACR,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* React useState, but the value is persisted in Web API compatible Storage and
|
|
4
|
+
* initial state is picked up from Storage if exists
|
|
5
|
+
*
|
|
6
|
+
* @param id storage key
|
|
7
|
+
* @param initialValue initial value to use if one is not available
|
|
8
|
+
* @param storage
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
2
11
|
declare function usePersistedState<S>(id: string, initialValue: S | (() => S), storage?: Storage): readonly [S, import("react").Dispatch<import("react").SetStateAction<S>>];
|
|
3
12
|
export { usePersistedState };
|
|
4
13
|
//# sourceMappingURL=use-persisted-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-persisted-state.d.ts","sourceRoot":"","sources":["../../src/hooks/use-persisted-state.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-persisted-state.d.ts","sourceRoot":"","sources":["../../src/hooks/use-persisted-state.tsx"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CAAC,CAAC,EAC1B,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC3B,OAAO,GAAE,OAAiC,6EAyB3C;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.usePersistedState = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
+
/**
|
|
6
|
+
* React useState, but the value is persisted in Web API compatible Storage and
|
|
7
|
+
* initial state is picked up from Storage if exists
|
|
8
|
+
*
|
|
9
|
+
* @param id storage key
|
|
10
|
+
* @param initialValue initial value to use if one is not available
|
|
11
|
+
* @param storage
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
5
14
|
function usePersistedState(id, initialValue, storage = globalThis.localStorage) {
|
|
6
15
|
const idRef = (0, react_1.useRef)(id);
|
|
7
16
|
const storageRef = (0, react_1.useRef)(storage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-persisted-state.js","sourceRoot":"","sources":["../../src/hooks/use-persisted-state.tsx"],"names":[],"mappings":";;;AAAA,iCAAoD;
|
|
1
|
+
{"version":3,"file":"use-persisted-state.js","sourceRoot":"","sources":["../../src/hooks/use-persisted-state.tsx"],"names":[],"mappings":";;;AAAA,iCAAoD;AAEpD;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CACxB,EAAU,EACV,YAA2B,EAC3B,UAAmB,UAAU,CAAC,YAAY;IAE1C,MAAM,KAAK,GAAG,IAAA,cAAM,EAAC,EAAE,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAI,GAAG,EAAE;QACzC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,aAAa,EAAE;YACjB,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aAClC;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CACb,sFAAsF;oBACnF,CAAW,CAAC,OAAO,CACvB,CAAC;aACH;SACF;QACD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;YACtC,OAAQ,YAAwB,EAAE,CAAC;SACpC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC,CAAC;AAEQ,8CAAiB"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export declare function getScrollbarStyles(darkMode: boolean): string;
|
|
3
|
+
/**
|
|
4
|
+
* Provide styles for overflowing content scrollbars.
|
|
5
|
+
* It takes the theme from the theme context (closest LeafyGreenProvider).
|
|
6
|
+
*
|
|
7
|
+
* We customize scrollbars so that they look similar on all devices.
|
|
8
|
+
* Without custom scrollbars, windows looks a bit wild.
|
|
9
|
+
**/
|
|
3
10
|
export declare function useScrollbars(): {
|
|
4
11
|
className: string | undefined;
|
|
5
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-scrollbars.d.ts","sourceRoot":"","sources":["../../src/hooks/use-scrollbars.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAkB,MAAM,OAAO,CAAC;AA+EvC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,UAEnD;
|
|
1
|
+
{"version":3,"file":"use-scrollbars.d.ts","sourceRoot":"","sources":["../../src/hooks/use-scrollbars.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAkB,MAAM,OAAO,CAAC;AA+EvC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,UAEnD;AAED;;;;;;IAMI;AACJ,wBAAgB,aAAa;;EAgB5B;AAED,UAAU,mBAAmB;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,eAAO,MAAM,oBAAoB,qKAqBhC,CAAC"}
|
|
@@ -36,6 +36,8 @@ const use_theme_1 = require("./use-theme");
|
|
|
36
36
|
const scrollbarSize = 10;
|
|
37
37
|
const scrollbarStyles = (0, emotion_1.css)({
|
|
38
38
|
'*::-webkit-scrollbar-thumb': {
|
|
39
|
+
// Don't show a scrollbar unless the user is hovering over
|
|
40
|
+
// the scrollable area. Horizontal scrollbars are always shown.
|
|
39
41
|
backgroundColor: 'transparent',
|
|
40
42
|
borderRadius: `${scrollbarSize}px`,
|
|
41
43
|
},
|
|
@@ -61,6 +63,8 @@ const scrollbarLightModeStyles = (0, emotion_1.css)({
|
|
|
61
63
|
},
|
|
62
64
|
'*::-webkit-scrollbar-thumb': {
|
|
63
65
|
'&:horizontal': {
|
|
66
|
+
// Always show horizontal scrollbars so that folks without
|
|
67
|
+
// trackpads or horizontal scrollable devices can easily scroll.
|
|
64
68
|
backgroundColor: (0, polished_1.rgba)(palette_1.palette.black, 0.12),
|
|
65
69
|
},
|
|
66
70
|
},
|
|
@@ -79,6 +83,8 @@ const scrollbarDarkModeStyles = (0, emotion_1.css)({
|
|
|
79
83
|
},
|
|
80
84
|
'*::-webkit-scrollbar-thumb': {
|
|
81
85
|
'&:horizontal': {
|
|
86
|
+
// Always show horizontal scrollbars so that folks without
|
|
87
|
+
// trackpads or horizontal scrollable devices can easily scroll.
|
|
82
88
|
backgroundColor: (0, polished_1.rgba)(palette_1.palette.white, 0.2),
|
|
83
89
|
},
|
|
84
90
|
},
|
|
@@ -92,10 +98,19 @@ function getScrollbarStyles(darkMode) {
|
|
|
92
98
|
return darkMode ? scrollbarDarkModeStyles : scrollbarLightModeStyles;
|
|
93
99
|
}
|
|
94
100
|
exports.getScrollbarStyles = getScrollbarStyles;
|
|
101
|
+
/**
|
|
102
|
+
* Provide styles for overflowing content scrollbars.
|
|
103
|
+
* It takes the theme from the theme context (closest LeafyGreenProvider).
|
|
104
|
+
*
|
|
105
|
+
* We customize scrollbars so that they look similar on all devices.
|
|
106
|
+
* Without custom scrollbars, windows looks a bit wild.
|
|
107
|
+
**/
|
|
95
108
|
function useScrollbars() {
|
|
96
109
|
const darkMode = (0, use_theme_1.useDarkMode)();
|
|
97
110
|
const scrollbarStylesClass = (0, react_1.useMemo)(() => {
|
|
98
111
|
if (!is_electron_renderer_1.default) {
|
|
112
|
+
// When we're not in an electron environment, like compass-aggregations
|
|
113
|
+
// in cloud, we don't apply the scrollbar styles.
|
|
99
114
|
return undefined;
|
|
100
115
|
}
|
|
101
116
|
return getScrollbarStyles(!!darkMode);
|
|
@@ -105,9 +120,13 @@ function useScrollbars() {
|
|
|
105
120
|
};
|
|
106
121
|
}
|
|
107
122
|
exports.useScrollbars = useScrollbars;
|
|
123
|
+
// Used to wrap LeafyGreen components that use portals with Compass'
|
|
124
|
+
// scrollbar styles. These are not applied in web environments (cloud).
|
|
108
125
|
const withPortalScrollbars = (WrappedComponent) => {
|
|
109
126
|
const ComponentWithScrollbars = (props) => {
|
|
110
127
|
const { className } = useScrollbars();
|
|
128
|
+
// When we're not in an electron environment, like compass-aggregations
|
|
129
|
+
// in cloud, we don't apply the scrollbar styles.
|
|
111
130
|
const appliedClassName = is_electron_renderer_1.default ? className : undefined;
|
|
112
131
|
return (react_1.default.createElement(WrappedComponent, { ...props, portalClassName: (0, emotion_1.cx)(appliedClassName, props.portalClassName) }));
|
|
113
132
|
};
|