@heymantle/litho 0.0.1
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/LICENSE +21 -0
- package/README.md +90 -0
- package/dist/cjs/components/ActionList.js +267 -0
- package/dist/cjs/components/AnnouncementBar.js +73 -0
- package/dist/cjs/components/AppProvider.js +245 -0
- package/dist/cjs/components/Autocomplete.js +351 -0
- package/dist/cjs/components/Badge.js +234 -0
- package/dist/cjs/components/Banner.js +264 -0
- package/dist/cjs/components/Box.js +247 -0
- package/dist/cjs/components/Button.js +1018 -0
- package/dist/cjs/components/ButtonGroup.js +196 -0
- package/dist/cjs/components/Card.js +593 -0
- package/dist/cjs/components/Checkbox.js +175 -0
- package/dist/cjs/components/ChoiceList.js +160 -0
- package/dist/cjs/components/Collapsible.js +42 -0
- package/dist/cjs/components/ColorField.js +159 -0
- package/dist/cjs/components/ContextualSaveBar.js +53 -0
- package/dist/cjs/components/DatePicker.js +547 -0
- package/dist/cjs/components/Divider.js +50 -0
- package/dist/cjs/components/DropZone.js +547 -0
- package/dist/cjs/components/EmptyState.js +111 -0
- package/dist/cjs/components/Filters.js +874 -0
- package/dist/cjs/components/FooterHelp.js +48 -0
- package/dist/cjs/components/Form.js +44 -0
- package/dist/cjs/components/Frame.js +386 -0
- package/dist/cjs/components/FrameSaveBar.js +239 -0
- package/dist/cjs/components/Grid.js +151 -0
- package/dist/cjs/components/HorizontalStack.js +180 -0
- package/dist/cjs/components/Icon.js +346 -0
- package/dist/cjs/components/Image.js +191 -0
- package/dist/cjs/components/InlineError.js +57 -0
- package/dist/cjs/components/Label.js +78 -0
- package/dist/cjs/components/Layout.js +228 -0
- package/dist/cjs/components/LayoutSection.js +133 -0
- package/dist/cjs/components/Link.js +128 -0
- package/dist/cjs/components/List.js +69 -0
- package/dist/cjs/components/Listbox.js +211 -0
- package/dist/cjs/components/Loading.js +103 -0
- package/dist/cjs/components/Modal.js +449 -0
- package/dist/cjs/components/Navigation.js +331 -0
- package/dist/cjs/components/Page.js +529 -0
- package/dist/cjs/components/Pagination.js +109 -0
- package/dist/cjs/components/Pane.js +128 -0
- package/dist/cjs/components/Popover.js +365 -0
- package/dist/cjs/components/PopoverManager.js +34 -0
- package/dist/cjs/components/ProgressBar.js +124 -0
- package/dist/cjs/components/RadioButton.js +172 -0
- package/dist/cjs/components/RadioButtonCard.js +193 -0
- package/dist/cjs/components/RangeSlider.js +235 -0
- package/dist/cjs/components/ResourceList.js +105 -0
- package/dist/cjs/components/Select.js +300 -0
- package/dist/cjs/components/SkeletonText.js +130 -0
- package/dist/cjs/components/Spinner.js +72 -0
- package/dist/cjs/components/Table.js +1184 -0
- package/dist/cjs/components/Tabs.js +421 -0
- package/dist/cjs/components/Tag.js +165 -0
- package/dist/cjs/components/Text.js +274 -0
- package/dist/cjs/components/TextField.js +584 -0
- package/dist/cjs/components/Thumbnail.js +73 -0
- package/dist/cjs/components/TimePicker.js +23 -0
- package/dist/cjs/components/Tip.js +220 -0
- package/dist/cjs/components/Tooltip.js +431 -0
- package/dist/cjs/components/TopBar.js +210 -0
- package/dist/cjs/components/VerticalStack.js +161 -0
- package/dist/cjs/index.js +308 -0
- package/dist/cjs/styles/Table.js +591 -0
- package/dist/cjs/utilities/dates.js +339 -0
- package/dist/cjs/utilities/useIndexResourceState.js +175 -0
- package/dist/cjs/utilities/useMounted.js +67 -0
- package/dist/cjs/utilities/useTableScrollState.js +142 -0
- package/dist/esm/components/ActionList.js +216 -0
- package/dist/esm/components/AnnouncementBar.js +63 -0
- package/dist/esm/components/AppProvider.js +185 -0
- package/dist/esm/components/Autocomplete.js +300 -0
- package/dist/esm/components/Badge.js +225 -0
- package/dist/esm/components/Banner.js +254 -0
- package/dist/esm/components/Box.js +238 -0
- package/dist/esm/components/Button.js +967 -0
- package/dist/esm/components/ButtonGroup.js +137 -0
- package/dist/esm/components/Card.js +537 -0
- package/dist/esm/components/Checkbox.js +165 -0
- package/dist/esm/components/ChoiceList.js +145 -0
- package/dist/esm/components/Collapsible.js +32 -0
- package/dist/esm/components/ColorField.js +149 -0
- package/dist/esm/components/ContextualSaveBar.js +43 -0
- package/dist/esm/components/DatePicker.js +532 -0
- package/dist/esm/components/Divider.js +41 -0
- package/dist/esm/components/DropZone.js +537 -0
- package/dist/esm/components/EmptyState.js +101 -0
- package/dist/esm/components/Filters.js +823 -0
- package/dist/esm/components/FooterHelp.js +38 -0
- package/dist/esm/components/Form.js +35 -0
- package/dist/esm/components/Frame.js +376 -0
- package/dist/esm/components/FrameSaveBar.js +229 -0
- package/dist/esm/components/Grid.js +142 -0
- package/dist/esm/components/HorizontalStack.js +171 -0
- package/dist/esm/components/Icon.js +296 -0
- package/dist/esm/components/Image.js +141 -0
- package/dist/esm/components/InlineError.js +43 -0
- package/dist/esm/components/Label.js +63 -0
- package/dist/esm/components/Layout.js +164 -0
- package/dist/esm/components/LayoutSection.js +82 -0
- package/dist/esm/components/Link.js +119 -0
- package/dist/esm/components/List.js +61 -0
- package/dist/esm/components/Listbox.js +201 -0
- package/dist/esm/components/Loading.js +93 -0
- package/dist/esm/components/Modal.js +390 -0
- package/dist/esm/components/Navigation.js +321 -0
- package/dist/esm/components/Page.js +473 -0
- package/dist/esm/components/Pagination.js +99 -0
- package/dist/esm/components/Pane.js +118 -0
- package/dist/esm/components/Popover.js +350 -0
- package/dist/esm/components/PopoverManager.js +24 -0
- package/dist/esm/components/ProgressBar.js +114 -0
- package/dist/esm/components/RadioButton.js +157 -0
- package/dist/esm/components/RadioButtonCard.js +178 -0
- package/dist/esm/components/RangeSlider.js +225 -0
- package/dist/esm/components/ResourceList.js +95 -0
- package/dist/esm/components/Select.js +285 -0
- package/dist/esm/components/SkeletonText.js +120 -0
- package/dist/esm/components/Spinner.js +63 -0
- package/dist/esm/components/Table.js +1129 -0
- package/dist/esm/components/Tabs.js +366 -0
- package/dist/esm/components/Tag.js +151 -0
- package/dist/esm/components/Text.js +265 -0
- package/dist/esm/components/TextField.js +533 -0
- package/dist/esm/components/Thumbnail.js +63 -0
- package/dist/esm/components/TimePicker.js +13 -0
- package/dist/esm/components/Tip.js +169 -0
- package/dist/esm/components/Tooltip.js +380 -0
- package/dist/esm/components/TopBar.js +200 -0
- package/dist/esm/components/VerticalStack.js +152 -0
- package/dist/esm/index.js +61 -0
- package/dist/esm/styles/Table.js +581 -0
- package/dist/esm/utilities/dates.js +289 -0
- package/dist/esm/utilities/useIndexResourceState.js +158 -0
- package/dist/esm/utilities/useMounted.js +57 -0
- package/dist/esm/utilities/useTableScrollState.js +132 -0
- package/index.css +1137 -0
- package/package.json +53 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _jsxruntime = require("react/jsx-runtime");
|
|
12
|
+
var _index = require("../index");
|
|
13
|
+
var _polarisicons = require("@shopify/polaris-icons");
|
|
14
|
+
/**
|
|
15
|
+
* Renders a `FooterHelp` component, which provides additional information
|
|
16
|
+
* or guidance to users, typically displayed at the bottom of a page. The component
|
|
17
|
+
* centers its content within a rounded, styled box that includes an icon and customizable text.
|
|
18
|
+
*
|
|
19
|
+
* @component
|
|
20
|
+
* @param {Object} [props] - The props for the FooterHelp component.
|
|
21
|
+
* @param {React.ReactNode} [props.children] - The content to display next to the information icon.
|
|
22
|
+
* This is typically a text string or any valid React node.
|
|
23
|
+
*
|
|
24
|
+
* @returns {JSX.Element} The rendered FooterHelp component.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* // Basic usage:
|
|
28
|
+
* <FooterHelp>Need more help? Contact support.</FooterHelp>
|
|
29
|
+
*/ function FooterHelp() {
|
|
30
|
+
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
31
|
+
var children = props.children;
|
|
32
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
33
|
+
className: "Litho-FooterHelp flex justify-center",
|
|
34
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
35
|
+
className: "flex items-center gap-3 rounded-full bg-surface-lower py-3 pl-4 pr-5 mx-auto my-5",
|
|
36
|
+
children: [
|
|
37
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_index.Icon, {
|
|
38
|
+
source: _polarisicons.CircleInformationMajor,
|
|
39
|
+
color: "subdued"
|
|
40
|
+
}),
|
|
41
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
42
|
+
children: children
|
|
43
|
+
})
|
|
44
|
+
]
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
var _default = FooterHelp;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A reusable Form component.
|
|
3
|
+
*
|
|
4
|
+
* @param {Object} [props={}] - The properties passed to the component.
|
|
5
|
+
* @param {string} [props.method="get"] - The HTTP method for the form submission.
|
|
6
|
+
* @param {function} [props.onSubmit] - The function to call when the form is submitted.
|
|
7
|
+
* @param {React.ReactNode} [props.children] - The child elements to be rendered inside the form.
|
|
8
|
+
* @returns {JSX.Element} The rendered form component.
|
|
9
|
+
*/ "use strict";
|
|
10
|
+
Object.defineProperty(exports, "__esModule", {
|
|
11
|
+
value: true
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "default", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _jsxruntime = require("react/jsx-runtime");
|
|
20
|
+
function Form() {
|
|
21
|
+
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
22
|
+
var acceptCharset = props.acceptCharset, action = props.action, autoComplete = props.autoComplete, children = props.children, encType = props.encType, _props_method = props.method, method = _props_method === void 0 ? 'post' : _props_method, name = props.name, noValidate = props.noValidate, _props_preventDefault = props.preventDefault, preventDefault = _props_preventDefault === void 0 ? true : _props_preventDefault, target = props.target, onSubmit = props.onSubmit;
|
|
23
|
+
function handleSubmit(event) {
|
|
24
|
+
if (preventDefault) {
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
}
|
|
27
|
+
if (onSubmit) {
|
|
28
|
+
onSubmit(event);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("form", {
|
|
32
|
+
method: method,
|
|
33
|
+
onSubmit: handleSubmit,
|
|
34
|
+
acceptCharset: acceptCharset,
|
|
35
|
+
action: action,
|
|
36
|
+
autoComplete: autoComplete,
|
|
37
|
+
encType: encType,
|
|
38
|
+
name: name,
|
|
39
|
+
noValidate: noValidate,
|
|
40
|
+
target: target,
|
|
41
|
+
children: children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
var _default = Form;
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function() {
|
|
9
|
+
return _default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _jsxruntime = require("react/jsx-runtime");
|
|
13
|
+
var _react = require("react");
|
|
14
|
+
var _AppProvider = require("../components/AppProvider");
|
|
15
|
+
var _tailwindvariants = require("tailwind-variants");
|
|
16
|
+
var _polarisicons = require("@shopify/polaris-icons");
|
|
17
|
+
var _index = require("../index");
|
|
18
|
+
function _array_like_to_array(arr, len) {
|
|
19
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
20
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
21
|
+
return arr2;
|
|
22
|
+
}
|
|
23
|
+
function _array_with_holes(arr) {
|
|
24
|
+
if (Array.isArray(arr)) return arr;
|
|
25
|
+
}
|
|
26
|
+
function _iterable_to_array_limit(arr, i) {
|
|
27
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
28
|
+
if (_i == null) return;
|
|
29
|
+
var _arr = [];
|
|
30
|
+
var _n = true;
|
|
31
|
+
var _d = false;
|
|
32
|
+
var _s, _e;
|
|
33
|
+
try {
|
|
34
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
35
|
+
_arr.push(_s.value);
|
|
36
|
+
if (i && _arr.length === i) break;
|
|
37
|
+
}
|
|
38
|
+
} catch (err) {
|
|
39
|
+
_d = true;
|
|
40
|
+
_e = err;
|
|
41
|
+
} finally{
|
|
42
|
+
try {
|
|
43
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
44
|
+
} finally{
|
|
45
|
+
if (_d) throw _e;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return _arr;
|
|
49
|
+
}
|
|
50
|
+
function _non_iterable_rest() {
|
|
51
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
52
|
+
}
|
|
53
|
+
function _sliced_to_array(arr, i) {
|
|
54
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
55
|
+
}
|
|
56
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
57
|
+
if (!o) return;
|
|
58
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
59
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
60
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
61
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
62
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
63
|
+
}
|
|
64
|
+
var frameStyles = (0, _tailwindvariants.tv)({
|
|
65
|
+
base: "Litho-Frame bg-surface-normal",
|
|
66
|
+
variants: {
|
|
67
|
+
paneIsOpen: {
|
|
68
|
+
true: "md:mr-[var(--litho-pane-width)]"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
defaultVariants: {
|
|
72
|
+
paneIsOpen: false
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
var frameHeaderStyles = (0, _tailwindvariants.tv)({
|
|
76
|
+
base: "Litho-Frame-Header bg-surface-normal fixed left-0 right-0 top-0",
|
|
77
|
+
variants: {
|
|
78
|
+
paneIsOpen: {
|
|
79
|
+
true: "md:mr-[var(--litho-pane-width)]"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
defaultVariants: {
|
|
83
|
+
paneIsOpen: false
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
var navigationStyles = (0, _tailwindvariants.tv)({
|
|
87
|
+
base: "Litho-Frame-Navigation fixed @md:z-auto left-0 top-0 bottom-0 overflow-hidden transform transition-transform duration-300 @md:transform-none @md:shadow-none bg-surface-normal w-[var(--litho-nav-width)] @md:mt-[var(--litho-top-bar-height)]",
|
|
88
|
+
variants: {
|
|
89
|
+
showMobileNavigation: {
|
|
90
|
+
true: "translate-x-0 opacity-100 shadow-modal",
|
|
91
|
+
false: "-translate-x-full opacity-0 @md:translate-x-0 @md:opacity-100"
|
|
92
|
+
},
|
|
93
|
+
hideScrollBar: {
|
|
94
|
+
true: "no-scrollbar"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
var navigationOverlayStyles = (0, _tailwindvariants.tv)({
|
|
99
|
+
base: "Litho-Frame-Navigation-Overlay fixed @md:z-auto inset-0 bg-tint-10 dark:bg-tint-25 opacity-0 pointer-events-none @md:hidden @md:pointer-events-none transition-opacity duration-300 overflow-hidden",
|
|
100
|
+
variants: {
|
|
101
|
+
showMobileNavigation: {
|
|
102
|
+
true: "opacity-100 pointer-events-auto"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
var contentStyles = (0, _tailwindvariants.tv)({
|
|
107
|
+
base: "Litho-Frame-Content relative",
|
|
108
|
+
variants: {
|
|
109
|
+
contentIsInIframe: {
|
|
110
|
+
true: "Litho-Frame-Content--InIframe h-screen overflow-hidden",
|
|
111
|
+
false: ""
|
|
112
|
+
},
|
|
113
|
+
contentIsFullPage: {
|
|
114
|
+
true: "",
|
|
115
|
+
false: "pt-[var(--litho-top-bar-height)]"
|
|
116
|
+
},
|
|
117
|
+
hasNavigation: {
|
|
118
|
+
true: "@md:ml-[var(--litho-nav-width)]",
|
|
119
|
+
false: ""
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
defaultVariants: {
|
|
123
|
+
contentIsFullPage: false,
|
|
124
|
+
hasNavigation: false
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
var logoStyles = (0, _tailwindvariants.tv)({
|
|
128
|
+
base: "Litho-Logo fixed @md:z-1350 left-0 top-[var(--litho-header-offset)] px-5.5 h-[var(--litho-header-height)] flex items-center justify-start @md:opacity-100 transform transition duration-300 @md:transform-none @md:pointer-events-auto",
|
|
129
|
+
variants: {
|
|
130
|
+
showMobileNavigation: {
|
|
131
|
+
true: "translate-x-0 opacity-100",
|
|
132
|
+
false: ""
|
|
133
|
+
},
|
|
134
|
+
modalIsOpen: {
|
|
135
|
+
true: "Litho-Logo--ModalOpen",
|
|
136
|
+
false: ""
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
compoundVariants: [
|
|
140
|
+
{
|
|
141
|
+
alwaysShowLogo: true,
|
|
142
|
+
showMobileNavigation: false,
|
|
143
|
+
className: ""
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
alwaysShowLogo: false,
|
|
147
|
+
showMobileNavigation: false,
|
|
148
|
+
className: "-translate-x-full opacity-0 @md:translate-x-0 @md:opacity-100"
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
defaultVariants: {
|
|
152
|
+
alwaysShowLogo: false
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
/**
|
|
156
|
+
* Frame component that provides a layout structure with top bar, navigation, logo, and content.
|
|
157
|
+
* @param {Object} props - Props for the Frame component.
|
|
158
|
+
* @param {React.ReactNode} props.navigation - Component to render as the navigation menu.
|
|
159
|
+
* @param {React.ReactNode} props.announcement - Component to render an announcement bar.
|
|
160
|
+
* @param {Object} props.logo - Logo configuration.
|
|
161
|
+
* @param {string} props.logo.url - URL for the logo link.
|
|
162
|
+
* @param {string} props.logo.source - Source for the logo image.
|
|
163
|
+
* @param {string} props.logo.accessibilityLabel - Accessibility label for the logo image.
|
|
164
|
+
* @param {number} props.logo.width - Width of the logo image.
|
|
165
|
+
* @param {boolean} props.showSearchTrigger - Whether to show the search trigger.
|
|
166
|
+
* @param {React.ReactNode} props.searchModal - Modal to render as the search modal.
|
|
167
|
+
* @param {function} props.onToggleSearchModal - Function to toggle the search modal.
|
|
168
|
+
* @param {string} [props.className] - Additional CSS classes for the Frame.
|
|
169
|
+
* @param {React.ReactNode} props.children - Content to render within the Frame.
|
|
170
|
+
* @param {boolean} [props.alwaysShowUserMenuInTopBar] - Whether to always show the user menu in the top bar.
|
|
171
|
+
* @param {React.ReactNode} [props.headerAccessory] - Accessory to render in the header.
|
|
172
|
+
* @returns {React.ReactElement} The rendered Frame component.
|
|
173
|
+
*/ var Frame = function(param) {
|
|
174
|
+
var navigation = param.navigation, announcement = param.announcement, logo = param.logo, children = param.children, className = param.className, userMenu = param.userMenu, moreActions = param.moreActions, _param_showSearchTrigger = param.showSearchTrigger, showSearchTrigger = _param_showSearchTrigger === void 0 ? true : _param_showSearchTrigger, _param_alwaysShowUserMenuInTopBar = param.alwaysShowUserMenuInTopBar, alwaysShowUserMenuInTopBar = _param_alwaysShowUserMenuInTopBar === void 0 ? false : _param_alwaysShowUserMenuInTopBar, searchModal = param.searchModal, onToggleSearchModal = param.onToggleSearchModal, headerAccessory = param.headerAccessory;
|
|
175
|
+
var darkMode = (0, _react.useContext)(_AppProvider.DarkModeContext).darkMode;
|
|
176
|
+
var _useContext = (0, _react.useContext)(_AppProvider.FrameContext), contentIsInIframe = _useContext.contentIsInIframe, contentIsFullPage = _useContext.contentIsFullPage, showMobileNavigation = _useContext.showMobileNavigation, setShowMobileNavigation = _useContext.setShowMobileNavigation, modalIsOpen = _useContext.modalIsOpen, paneIsOpen = _useContext.paneIsOpen, embedded = _useContext.embedded;
|
|
177
|
+
var _useState = _sliced_to_array((0, _react.useState)(""), 2), searchTriggerShortcutText = _useState[0], setSearchTriggerShortcutText = _useState[1];
|
|
178
|
+
(0, _react.useEffect)(function() {
|
|
179
|
+
if (/Mac/i.test(navigator.platform)) {
|
|
180
|
+
setSearchTriggerShortcutText("⌘K");
|
|
181
|
+
} else {
|
|
182
|
+
setSearchTriggerShortcutText("Ctrl+K");
|
|
183
|
+
}
|
|
184
|
+
}, []);
|
|
185
|
+
var hasAnnouncement = !!announcement;
|
|
186
|
+
var _useState1 = _sliced_to_array((0, _react.useState)(false), 2), showMoreActionsPopover = _useState1[0], setShowMoreActionsPopover = _useState1[1];
|
|
187
|
+
(0, _react.useEffect)(function() {
|
|
188
|
+
if (!!announcement) {
|
|
189
|
+
var _document_querySelector, _document_querySelector1;
|
|
190
|
+
var announcementBarHeight = (_document_querySelector = document.querySelector(".Litho-Frame-Header .Litho-AnnouncementBar")) === null || _document_querySelector === void 0 ? void 0 : _document_querySelector.offsetHeight;
|
|
191
|
+
if (announcementBarHeight) {
|
|
192
|
+
document.documentElement.style.setProperty("--litho-header-offset", "".concat(announcementBarHeight, "px"));
|
|
193
|
+
} else {
|
|
194
|
+
document.documentElement.style.setProperty("--litho-header-offset", "0px");
|
|
195
|
+
}
|
|
196
|
+
var headerHeight = (_document_querySelector1 = document.querySelector(".Litho-Frame-Header")) === null || _document_querySelector1 === void 0 ? void 0 : _document_querySelector1.offsetHeight;
|
|
197
|
+
if (headerHeight) {
|
|
198
|
+
document.documentElement.style.setProperty("--litho-top-bar-height", "".concat(headerHeight, "px"));
|
|
199
|
+
document.documentElement.style.setProperty("--litho-table-header-sticky-at", "".concat(headerHeight, "px"));
|
|
200
|
+
} else {
|
|
201
|
+
document.documentElement.style.setProperty("--litho-top-bar-height", "56px");
|
|
202
|
+
document.documentElement.style.setProperty("--litho-table-header-sticky-at", "56px");
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}, [
|
|
206
|
+
announcement
|
|
207
|
+
]);
|
|
208
|
+
(0, _react.useEffect)(function() {
|
|
209
|
+
var handleSearchShortcut = function(e) {
|
|
210
|
+
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
211
|
+
e.preventDefault();
|
|
212
|
+
onToggleSearchModal();
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
window.addEventListener("keydown", handleSearchShortcut);
|
|
216
|
+
return function() {
|
|
217
|
+
window.removeEventListener("keydown", handleSearchShortcut);
|
|
218
|
+
};
|
|
219
|
+
}, []);
|
|
220
|
+
var contentClass = (0, _react.useMemo)(function() {
|
|
221
|
+
return contentStyles({
|
|
222
|
+
contentIsInIframe: contentIsInIframe,
|
|
223
|
+
contentIsFullPage: contentIsFullPage,
|
|
224
|
+
hasNavigation: !!navigation && !contentIsFullPage
|
|
225
|
+
});
|
|
226
|
+
}, [
|
|
227
|
+
contentIsInIframe,
|
|
228
|
+
contentIsFullPage,
|
|
229
|
+
navigation
|
|
230
|
+
]);
|
|
231
|
+
var logoSource = darkMode ? logo.darkSource : logo.source;
|
|
232
|
+
var searchTrigger = showSearchTrigger ? /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
233
|
+
className: "w-full pl-2 pr-3 h-8 rounded-md flex items-center gap-2 cursor-pointer bg-tint-2 hover:bg-tint-3 active:bg-tint-4 dark:bg-tint-alt-2 dark:hover:bg-tint-alt-3 dark:active:bg-tint-alt-4",
|
|
234
|
+
onClick: function() {
|
|
235
|
+
return onToggleSearchModal();
|
|
236
|
+
},
|
|
237
|
+
children: [
|
|
238
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_index.Icon, {
|
|
239
|
+
source: _polarisicons.SearchMajor,
|
|
240
|
+
color: "subdued"
|
|
241
|
+
}),
|
|
242
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
243
|
+
className: "flex-1 text-low flex items-center justify-between gap-1",
|
|
244
|
+
children: [
|
|
245
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
246
|
+
children: "Search"
|
|
247
|
+
}),
|
|
248
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
249
|
+
className: "text-xs text-lowest hidden @md:block",
|
|
250
|
+
children: searchTriggerShortcutText
|
|
251
|
+
})
|
|
252
|
+
]
|
|
253
|
+
})
|
|
254
|
+
]
|
|
255
|
+
}) : null;
|
|
256
|
+
var alwaysShowLogo = !contentIsFullPage && logo && alwaysShowUserMenuInTopBar;
|
|
257
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
258
|
+
className: "".concat(frameStyles({
|
|
259
|
+
paneIsOpen: paneIsOpen
|
|
260
|
+
}), " ").concat(className),
|
|
261
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
262
|
+
className: embedded ? "" : "@container",
|
|
263
|
+
children: [
|
|
264
|
+
!contentIsFullPage && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
265
|
+
className: logoStyles({
|
|
266
|
+
showMobileNavigation: showMobileNavigation,
|
|
267
|
+
modalIsOpen: modalIsOpen,
|
|
268
|
+
alwaysShowLogo: alwaysShowLogo
|
|
269
|
+
}),
|
|
270
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("a", {
|
|
271
|
+
href: logo.url,
|
|
272
|
+
className: "block py-1 px-2 relative -left-2 ".concat(logo.url ? " cursor-pointer" : ""),
|
|
273
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("img", {
|
|
274
|
+
src: logoSource,
|
|
275
|
+
alt: logo.accessibilityLabel,
|
|
276
|
+
style: (logo === null || logo === void 0 ? void 0 : logo.width) ? {
|
|
277
|
+
width: logo.width
|
|
278
|
+
} : undefined
|
|
279
|
+
})
|
|
280
|
+
})
|
|
281
|
+
}),
|
|
282
|
+
!contentIsFullPage && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
283
|
+
children: [
|
|
284
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_index.FrameSaveBar, {
|
|
285
|
+
logo: logo
|
|
286
|
+
}),
|
|
287
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
288
|
+
className: frameHeaderStyles({
|
|
289
|
+
paneIsOpen: paneIsOpen
|
|
290
|
+
}),
|
|
291
|
+
children: [
|
|
292
|
+
announcement,
|
|
293
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_index.TopBar, {
|
|
294
|
+
hasNavigation: !!navigation,
|
|
295
|
+
userMenu: userMenu,
|
|
296
|
+
headerAccessory: headerAccessory,
|
|
297
|
+
searchTrigger: searchTrigger,
|
|
298
|
+
alwaysShowUserMenuInTopBar: alwaysShowUserMenuInTopBar
|
|
299
|
+
})
|
|
300
|
+
]
|
|
301
|
+
})
|
|
302
|
+
]
|
|
303
|
+
}),
|
|
304
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
305
|
+
className: contentClass,
|
|
306
|
+
children: children
|
|
307
|
+
}),
|
|
308
|
+
!contentIsFullPage && navigation && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
309
|
+
children: [
|
|
310
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
311
|
+
className: navigationStyles({
|
|
312
|
+
showMobileNavigation: showMobileNavigation,
|
|
313
|
+
hasAnnouncement: hasAnnouncement
|
|
314
|
+
}),
|
|
315
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
316
|
+
className: "relative h-full flex flex-col",
|
|
317
|
+
children: [
|
|
318
|
+
showSearchTrigger && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
319
|
+
className: "pt-4 hidden @md:block pb-0 px-3",
|
|
320
|
+
children: searchTrigger
|
|
321
|
+
}),
|
|
322
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
323
|
+
className: "flex-1 pt-3 overflow-y-auto overflow-x-hidden bg-surface-normal overscroll-contain",
|
|
324
|
+
children: navigation
|
|
325
|
+
}),
|
|
326
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
327
|
+
className: "hidden @md:flex py-2 px-3 items-center justify-between relative w-full overflow-hidden",
|
|
328
|
+
children: [
|
|
329
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
330
|
+
className: "absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-tint-4 to-transparent pointer-events-none dark:from-tint-alt-3"
|
|
331
|
+
}),
|
|
332
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
333
|
+
className: "truncate",
|
|
334
|
+
children: userMenu
|
|
335
|
+
}),
|
|
336
|
+
moreActions && /*#__PURE__*/ (0, _jsxruntime.jsx)(_index.Popover, {
|
|
337
|
+
active: showMoreActionsPopover,
|
|
338
|
+
onClose: function() {
|
|
339
|
+
return setShowMoreActionsPopover(false);
|
|
340
|
+
},
|
|
341
|
+
preferredAlignment: "right",
|
|
342
|
+
preferredPosition: "above",
|
|
343
|
+
containerClassName: "shrink-0 whitespace-nowrap flex-none",
|
|
344
|
+
activator: /*#__PURE__*/ (0, _jsxruntime.jsx)(_index.Button, {
|
|
345
|
+
icon: _polarisicons.QuestionMarkInverseMajor,
|
|
346
|
+
iconColor: "subdued",
|
|
347
|
+
plain: true,
|
|
348
|
+
onClick: function() {
|
|
349
|
+
return setShowMoreActionsPopover(!showMoreActionsPopover);
|
|
350
|
+
}
|
|
351
|
+
}),
|
|
352
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_index.ActionList, {
|
|
353
|
+
sections: moreActions,
|
|
354
|
+
onActionAnyItem: function() {
|
|
355
|
+
return setShowMoreActionsPopover(false);
|
|
356
|
+
}
|
|
357
|
+
})
|
|
358
|
+
})
|
|
359
|
+
]
|
|
360
|
+
})
|
|
361
|
+
]
|
|
362
|
+
})
|
|
363
|
+
}),
|
|
364
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
365
|
+
className: navigationOverlayStyles({
|
|
366
|
+
showMobileNavigation: showMobileNavigation
|
|
367
|
+
}),
|
|
368
|
+
onClick: function() {
|
|
369
|
+
return setShowMobileNavigation(false);
|
|
370
|
+
},
|
|
371
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
372
|
+
className: "fixed cursor-pointer top-2.5 @md:hidden p-2 rounded-full bg-tint-10 hover:bg-tint-12 dark:bg-tint-alt-10 dark:hover:bg-tint-alt-12 left-56.5",
|
|
373
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_index.Icon, {
|
|
374
|
+
source: _polarisicons.CancelMajor,
|
|
375
|
+
color: "alternate"
|
|
376
|
+
})
|
|
377
|
+
})
|
|
378
|
+
})
|
|
379
|
+
]
|
|
380
|
+
}),
|
|
381
|
+
searchModal
|
|
382
|
+
]
|
|
383
|
+
})
|
|
384
|
+
});
|
|
385
|
+
};
|
|
386
|
+
var _default = Frame;
|