tc-dazzle-ui 1.0.0 → 1.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/components/Atoms/Button/Button.d.ts +29 -0
- package/dist/components/Atoms/Button/index.d.ts +2 -0
- package/dist/components/Atoms/FilterDropdown/FilterDropdown.d.ts +20 -0
- package/dist/components/Atoms/FilterDropdown/index.d.ts +2 -0
- package/dist/components/Atoms/GlobalSearch/GlobalSearch.d.ts +20 -0
- package/dist/components/Atoms/GlobalSearch/index.d.ts +2 -0
- package/dist/components/Atoms/IconButton/IconButton.d.ts +16 -0
- package/dist/components/Atoms/IconButton/index.d.ts +2 -0
- package/dist/components/Atoms/Icons/Icons.d.ts +14 -0
- package/dist/components/Atoms/Icons/index.d.ts +2 -0
- package/dist/components/Atoms/Input/Input.d.ts +24 -0
- package/dist/components/Atoms/Input/index.d.ts +3 -0
- package/dist/components/Atoms/Logo/Logo.d.ts +13 -0
- package/dist/components/Atoms/Logo/index.d.ts +2 -0
- package/dist/components/Atoms/index.d.ts +14 -0
- package/dist/components/Molecules/DropdownMenu/DropdownMenu.d.ts +16 -0
- package/dist/components/Molecules/DropdownMenu/index.d.ts +2 -0
- package/dist/components/Molecules/HeaderMenu/HeaderMenu.d.ts +18 -0
- package/dist/components/Molecules/HeaderMenu/index.d.ts +2 -0
- package/dist/components/Molecules/Search/Search.d.ts +19 -0
- package/dist/components/Molecules/Search/index.d.ts +2 -0
- package/dist/components/Molecules/index.d.ts +6 -0
- package/dist/components/Organisms/MainHeader/MainHeader.d.ts +20 -0
- package/dist/components/Organisms/MainHeader/index.d.ts +2 -0
- package/dist/components/Organisms/index.d.ts +2 -0
- package/dist/components/TC Dazzle UI/FilterDropdown/FilterDropdown.d.ts +20 -0
- package/dist/components/TC Dazzle UI/FilterDropdown/index.d.ts +2 -0
- package/dist/components/TC Dazzle UI/GlobalSearch/GlobalSearch.d.ts +20 -0
- package/dist/components/TC Dazzle UI/GlobalSearch/index.d.ts +2 -0
- package/dist/components/TC Dazzle UI/IconButton/IconButton.d.ts +16 -0
- package/dist/components/TC Dazzle UI/IconButton/index.d.ts +2 -0
- package/dist/components/TC Dazzle UI/Icons/Icons.d.ts +13 -0
- package/dist/components/TC Dazzle UI/Icons/index.d.ts +2 -0
- package/dist/components/TC Dazzle UI/index.d.ts +8 -0
- package/dist/index.esm.js +334 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +346 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts +20 -4
- package/dist/styles.css +1 -1
- package/dist/web-components.css +1 -1
- package/dist/web-components.umd.js +46 -16
- package/dist/web-components.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import o, { forwardRef, useState } from 'react';
|
|
2
|
+
import o, { forwardRef, useState, useRef, useEffect } from 'react';
|
|
3
3
|
import { createRoot } from 'react-dom/client';
|
|
4
4
|
|
|
5
5
|
// Caret Down Icon SVG
|
|
6
|
-
const CaretDownIcon = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 10 6", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M5 6L0 0H10L5 6Z" }) }));
|
|
6
|
+
const CaretDownIcon$1 = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 10 6", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M5 6L0 0H10L5 6Z" }) }));
|
|
7
7
|
// Single Button Component
|
|
8
8
|
const Button = ({ label = 'Button', variant = 'primary', disabled = false, showStartIcon = true, showEndIcon = true, showLabel = true, startIcon, endIcon, onClick, className = '', }) => {
|
|
9
9
|
const buttonClass = `tc-button tc-button--${variant} ${className}`.trim();
|
|
10
|
-
return (jsxs("button", { className: `${buttonClass} tc-button-main`, disabled: disabled, onClick: onClick, type: "button", children: [showStartIcon && (jsx("span", { className: "tc-button__icon", children: startIcon || jsx(CaretDownIcon, {}) })), showLabel && (jsx("span", { className: "tc-button__label", children: label })), showEndIcon && (jsx("span", { className: "tc-button__caret", children: endIcon || jsx(CaretDownIcon, {}) }))] }));
|
|
10
|
+
return (jsxs("button", { className: `${buttonClass} tc-button-main`, disabled: disabled, onClick: onClick, type: "button", children: [showStartIcon && (jsx("span", { className: "tc-button__icon", children: startIcon || jsx(CaretDownIcon$1, {}) })), showLabel && (jsx("span", { className: "tc-button__label", children: label })), showEndIcon && (jsx("span", { className: "tc-button__caret", children: endIcon || jsx(CaretDownIcon$1, {}) }))] }));
|
|
11
11
|
};
|
|
12
12
|
// Button Group Component (Button with Dropdown)
|
|
13
13
|
const ButtonGroup = ({ label = 'Button', variant = 'primary', disabled = false, showStartIcon = true, startIcon, onButtonClick, onDropdownClick, className = '', }) => {
|
|
14
14
|
const buttonClass = `tc-button tc-button--${variant}`;
|
|
15
|
-
return (jsxs("div", { className: `tc-button-group ${className}`.trim(), children: [jsxs("button", { className: `${buttonClass} tc-button-main`, disabled: disabled, onClick: onButtonClick, type: "button", children: [showStartIcon && (jsx("span", { className: "tc-button__icon", children: startIcon || jsx(CaretDownIcon, {}) })), jsx("span", { className: "tc-button__label", children: label })] }), jsx("div", { className: "tc-button-divider" }), jsx("button", { className: `${buttonClass} tc-button-dropdown`, disabled: disabled, onClick: onDropdownClick, type: "button", "aria-label": "Open dropdown menu", children: jsx("span", { className: "tc-button__caret", children: jsx(CaretDownIcon, {}) }) })] }));
|
|
15
|
+
return (jsxs("div", { className: `tc-button-group ${className}`.trim(), children: [jsxs("button", { className: `${buttonClass} tc-button-main`, disabled: disabled, onClick: onButtonClick, type: "button", children: [showStartIcon && (jsx("span", { className: "tc-button__icon", children: startIcon || jsx(CaretDownIcon$1, {}) })), jsx("span", { className: "tc-button__label", children: label })] }), jsx("div", { className: "tc-button-divider" }), jsx("button", { className: `${buttonClass} tc-button-dropdown`, disabled: disabled, onClick: onDropdownClick, type: "button", "aria-label": "Open dropdown menu", children: jsx("span", { className: "tc-button__caret", children: jsx(CaretDownIcon$1, {}) }) })] }));
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
// Arrow Icon for Prefix/Suffix
|
|
19
19
|
const ArrowIcon = () => (jsx("svg", { viewBox: "0 0 16 16", fill: "#0067d2", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M8 2L14 8L8 14M14 8H2", stroke: "#0067d2", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", fill: "none" }) }));
|
|
20
20
|
// Chevron Down Icon for Dropdown
|
|
21
|
-
const ChevronDownIcon = () => (jsx("svg", { viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M4 6L8 10L12 6", stroke: "#242a30", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
21
|
+
const ChevronDownIcon$3 = () => (jsx("svg", { viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M4 6L8 10L12 6", stroke: "#242a30", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
22
22
|
const Input = forwardRef(({ label = 'Label', placeholder = '', value, defaultValue, type = 'text', inputType = 'enabled', disabled = false, error = false, helperText, prefixIcon, suffixIcon, dropdownValue = 'Update this...', onChange, onFocus, onBlur, onDropdownClick, className = '', }, ref) => {
|
|
23
23
|
const [isFocused, setIsFocused] = useState(false);
|
|
24
24
|
const isDisabled = disabled || inputType === 'disabled';
|
|
@@ -49,10 +49,334 @@ const Input = forwardRef(({ label = 'Label', placeholder = '', value, defaultVal
|
|
|
49
49
|
classes.push('tc-input--error');
|
|
50
50
|
return classes.join(' ');
|
|
51
51
|
};
|
|
52
|
-
return (jsx("div", { className: `tc-input-wrapper ${className}`.trim(), children: jsxs("div", { className: "tc-input-field", children: [jsxs("div", { className: "tc-input-form-field", children: [jsx("div", { className: "tc-input-label-container", children: jsx("label", { className: "tc-input-label", children: label }) }), jsxs("div", { className: "tc-input-container", children: [isPrefixed && (jsx("div", { className: "tc-input-addon tc-input-addon--prefix", children: jsx("div", { className: "tc-input-icon", children: prefixIcon || jsx(ArrowIcon, {}) }) })), jsx("div", { className: getInputClasses(), children: jsx("div", { className: "tc-input-content", children: isDropdown ? (jsxs(Fragment, { children: [jsx("span", { className: "tc-input-placeholder", onClick: onDropdownClick, children: dropdownValue }), jsx("div", { className: "tc-input-dropdown-icon", children: jsx(ChevronDownIcon, {}) })] })) : (jsx("input", { ref: ref, type: type, placeholder: placeholder, value: value, defaultValue: defaultValue, disabled: isDisabled, onChange: onChange, onFocus: handleFocus, onBlur: handleBlur })) }) }), isSuffixed && (jsx("div", { className: "tc-input-addon tc-input-addon--suffix", children: jsx("div", { className: "tc-input-icon", children: suffixIcon || jsx(ArrowIcon, {}) }) }))] })] }), helperText && (jsx("span", { className: `tc-input-helper ${error ? 'tc-input-helper--error' : ''}`, children: helperText }))] }) }));
|
|
52
|
+
return (jsx("div", { className: `tc-input-wrapper ${className}`.trim(), children: jsxs("div", { className: "tc-input-field", children: [jsxs("div", { className: "tc-input-form-field", children: [jsx("div", { className: "tc-input-label-container", children: jsx("label", { className: "tc-input-label", children: label }) }), jsxs("div", { className: "tc-input-container", children: [isPrefixed && (jsx("div", { className: "tc-input-addon tc-input-addon--prefix", children: jsx("div", { className: "tc-input-icon", children: prefixIcon || jsx(ArrowIcon, {}) }) })), jsx("div", { className: getInputClasses(), children: jsx("div", { className: "tc-input-content", children: isDropdown ? (jsxs(Fragment, { children: [jsx("span", { className: "tc-input-placeholder", onClick: onDropdownClick, children: dropdownValue }), jsx("div", { className: "tc-input-dropdown-icon", children: jsx(ChevronDownIcon$3, {}) })] })) : (jsx("input", { ref: ref, type: type, placeholder: placeholder, value: value, defaultValue: defaultValue, disabled: isDisabled, onChange: onChange, onFocus: handleFocus, onBlur: handleBlur })) }) }), isSuffixed && (jsx("div", { className: "tc-input-addon tc-input-addon--suffix", children: jsx("div", { className: "tc-input-icon", children: suffixIcon || jsx(ArrowIcon, {}) }) }))] })] }), helperText && (jsx("span", { className: `tc-input-helper ${error ? 'tc-input-helper--error' : ''}`, children: helperText }))] }) }));
|
|
53
53
|
});
|
|
54
54
|
Input.displayName = 'Input';
|
|
55
55
|
|
|
56
|
+
// Chevron Down Icon SVG
|
|
57
|
+
const ChevronDownIcon$2 = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 10 5", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M0 0L5 5L10 0H0Z" }) }));
|
|
58
|
+
const FilterDropdown = ({ value, defaultValue, options = [], placeholder = 'All', size = 'small', disabled = false, onChange, className = '', }) => {
|
|
59
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
60
|
+
const [selectedValue, setSelectedValue] = useState(value || defaultValue || '');
|
|
61
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
62
|
+
const dropdownRef = useRef(null);
|
|
63
|
+
// Update selected value when controlled value changes
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (value !== undefined) {
|
|
66
|
+
setSelectedValue(value);
|
|
67
|
+
}
|
|
68
|
+
}, [value]);
|
|
69
|
+
// Close dropdown when clicking outside
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
const handleClickOutside = (event) => {
|
|
72
|
+
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
73
|
+
setIsOpen(false);
|
|
74
|
+
setIsFocused(false);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
78
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
79
|
+
}, []);
|
|
80
|
+
const handleToggle = () => {
|
|
81
|
+
if (!disabled) {
|
|
82
|
+
setIsOpen(!isOpen);
|
|
83
|
+
setIsFocused(true);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const handleSelect = (optionValue) => {
|
|
87
|
+
setSelectedValue(optionValue);
|
|
88
|
+
setIsOpen(false);
|
|
89
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(optionValue);
|
|
90
|
+
};
|
|
91
|
+
const handleKeyDown = (event) => {
|
|
92
|
+
if (disabled)
|
|
93
|
+
return;
|
|
94
|
+
switch (event.key) {
|
|
95
|
+
case 'Enter':
|
|
96
|
+
case ' ':
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
setIsOpen(!isOpen);
|
|
99
|
+
break;
|
|
100
|
+
case 'Escape':
|
|
101
|
+
setIsOpen(false);
|
|
102
|
+
break;
|
|
103
|
+
case 'ArrowDown':
|
|
104
|
+
event.preventDefault();
|
|
105
|
+
if (!isOpen) {
|
|
106
|
+
setIsOpen(true);
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const getDisplayLabel = () => {
|
|
112
|
+
if (selectedValue) {
|
|
113
|
+
const selectedOption = options.find(opt => opt.value === selectedValue);
|
|
114
|
+
return (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || selectedValue;
|
|
115
|
+
}
|
|
116
|
+
return placeholder;
|
|
117
|
+
};
|
|
118
|
+
const getContainerClasses = () => {
|
|
119
|
+
const classes = ['tc-filter-dropdown'];
|
|
120
|
+
classes.push(`tc-filter-dropdown--${size}`);
|
|
121
|
+
if (disabled)
|
|
122
|
+
classes.push('tc-filter-dropdown--disabled');
|
|
123
|
+
if (isFocused || isOpen)
|
|
124
|
+
classes.push('tc-filter-dropdown--focused');
|
|
125
|
+
if (isOpen)
|
|
126
|
+
classes.push('tc-filter-dropdown--open');
|
|
127
|
+
if (className)
|
|
128
|
+
classes.push(className);
|
|
129
|
+
return classes.join(' ');
|
|
130
|
+
};
|
|
131
|
+
return (jsxs("div", { ref: dropdownRef, className: getContainerClasses(), tabIndex: disabled ? -1 : 0, role: "combobox", "aria-expanded": isOpen, "aria-haspopup": "listbox", "aria-disabled": disabled, onClick: handleToggle, onKeyDown: handleKeyDown, onFocus: () => setIsFocused(true), onBlur: () => !isOpen && setIsFocused(false), children: [jsxs("div", { className: "tc-filter-dropdown__trigger", children: [jsx("span", { className: "tc-filter-dropdown__label", children: getDisplayLabel() }), jsx("div", { className: "tc-filter-dropdown__icon", children: jsx(ChevronDownIcon$2, {}) })] }), isOpen && options.length > 0 && (jsx("div", { className: "tc-filter-dropdown__menu", role: "listbox", children: options.map((option) => (jsx("div", { className: `tc-filter-dropdown__option ${selectedValue === option.value ? 'tc-filter-dropdown__option--selected' : ''}`, role: "option", "aria-selected": selectedValue === option.value, onClick: (e) => {
|
|
132
|
+
e.stopPropagation();
|
|
133
|
+
handleSelect(option.value);
|
|
134
|
+
}, children: option.label }, option.value))) }))] }));
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// Search Icon SVG
|
|
138
|
+
const SearchIcon$2 = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M15.5 14H14.71L14.43 13.73C15.41 12.59 16 11.11 16 9.5C16 5.91 13.09 3 9.5 3C5.91 3 3 5.91 3 9.5C3 13.09 5.91 16 9.5 16C11.11 16 12.59 15.41 13.73 14.43L14 14.71V15.5L19 20.49L20.49 19L15.5 14ZM9.5 14C7.01 14 5 11.99 5 9.5C5 7.01 7.01 5 9.5 5C11.99 5 14 7.01 14 9.5C14 11.99 11.99 14 9.5 14Z", fill: "currentColor" }) }));
|
|
139
|
+
// Chevron Down Icon SVG
|
|
140
|
+
const ChevronDownIcon$1 = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 10 5", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M0 0L5 5L10 0H0Z" }) }));
|
|
141
|
+
const GlobalSearch = ({ placeholder = 'Search', filterPlaceholder = 'All', filterOptions = [], filterValue: controlledFilterValue, searchValue: controlledSearchValue, disabled = false, onSearch, onFilterChange, onSubmit, className = '', }) => {
|
|
142
|
+
const [isFilterOpen, setIsFilterOpen] = useState(false);
|
|
143
|
+
const [filterValue, setFilterValue] = useState(controlledFilterValue || '');
|
|
144
|
+
const [searchValue, setSearchValue] = useState(controlledSearchValue || '');
|
|
145
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
146
|
+
const filterRef = useRef(null);
|
|
147
|
+
const inputRef = useRef(null);
|
|
148
|
+
// Update values when controlled props change
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
if (controlledFilterValue !== undefined) {
|
|
151
|
+
setFilterValue(controlledFilterValue);
|
|
152
|
+
}
|
|
153
|
+
}, [controlledFilterValue]);
|
|
154
|
+
useEffect(() => {
|
|
155
|
+
if (controlledSearchValue !== undefined) {
|
|
156
|
+
setSearchValue(controlledSearchValue);
|
|
157
|
+
}
|
|
158
|
+
}, [controlledSearchValue]);
|
|
159
|
+
// Close filter dropdown when clicking outside
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
const handleClickOutside = (event) => {
|
|
162
|
+
if (filterRef.current && !filterRef.current.contains(event.target)) {
|
|
163
|
+
setIsFilterOpen(false);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
167
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
168
|
+
}, []);
|
|
169
|
+
const handleFilterToggle = () => {
|
|
170
|
+
if (!disabled) {
|
|
171
|
+
setIsFilterOpen(!isFilterOpen);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
const handleFilterSelect = (value) => {
|
|
175
|
+
setFilterValue(value);
|
|
176
|
+
setIsFilterOpen(false);
|
|
177
|
+
onFilterChange === null || onFilterChange === void 0 ? void 0 : onFilterChange(value);
|
|
178
|
+
};
|
|
179
|
+
const handleSearchChange = (e) => {
|
|
180
|
+
const value = e.target.value;
|
|
181
|
+
setSearchValue(value);
|
|
182
|
+
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value);
|
|
183
|
+
};
|
|
184
|
+
const handleSearchSubmit = () => {
|
|
185
|
+
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(searchValue, filterValue);
|
|
186
|
+
};
|
|
187
|
+
const handleKeyDown = (e) => {
|
|
188
|
+
if (e.key === 'Enter') {
|
|
189
|
+
handleSearchSubmit();
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const getFilterLabel = () => {
|
|
193
|
+
if (filterValue) {
|
|
194
|
+
const selectedOption = filterOptions.find(opt => opt.value === filterValue);
|
|
195
|
+
return (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || filterValue;
|
|
196
|
+
}
|
|
197
|
+
return filterPlaceholder;
|
|
198
|
+
};
|
|
199
|
+
const getContainerClasses = () => {
|
|
200
|
+
const classes = ['tc-global-search'];
|
|
201
|
+
if (disabled)
|
|
202
|
+
classes.push('tc-global-search--disabled');
|
|
203
|
+
if (isFocused)
|
|
204
|
+
classes.push('tc-global-search--focused');
|
|
205
|
+
if (className)
|
|
206
|
+
classes.push(className);
|
|
207
|
+
return classes.join(' ');
|
|
208
|
+
};
|
|
209
|
+
return (jsxs("div", { className: getContainerClasses(), children: [jsxs("div", { ref: filterRef, className: `tc-global-search__filter ${isFilterOpen ? 'tc-global-search__filter--open' : ''}`, children: [jsxs("button", { type: "button", className: "tc-global-search__filter-trigger", onClick: handleFilterToggle, disabled: disabled, "aria-expanded": isFilterOpen, "aria-haspopup": "listbox", children: [jsx("span", { className: "tc-global-search__filter-label", children: getFilterLabel() }), jsx("div", { className: "tc-global-search__filter-icon", children: jsx(ChevronDownIcon$1, {}) })] }), isFilterOpen && filterOptions.length > 0 && (jsx("div", { className: "tc-global-search__filter-menu", role: "listbox", children: filterOptions.map((option) => (jsx("div", { className: `tc-global-search__filter-option ${filterValue === option.value ? 'tc-global-search__filter-option--selected' : ''}`, role: "option", "aria-selected": filterValue === option.value, onClick: () => handleFilterSelect(option.value), children: option.label }, option.value))) }))] }), jsx("div", { className: "tc-global-search__input-wrapper", children: jsx("input", { ref: inputRef, type: "text", className: "tc-global-search__input", placeholder: placeholder, value: searchValue, onChange: handleSearchChange, onKeyDown: handleKeyDown, onFocus: () => setIsFocused(true), onBlur: () => setIsFocused(false), disabled: disabled }) }), jsx("button", { type: "button", className: "tc-global-search__button", onClick: handleSearchSubmit, disabled: disabled, "aria-label": "Search", children: jsx(SearchIcon$2, {}) })] }));
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
// Default Search Icon SVG
|
|
213
|
+
const SearchIcon$1 = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M15.5 14H14.71L14.43 13.73C15.41 12.59 16 11.11 16 9.5C16 5.91 13.09 3 9.5 3C5.91 3 3 5.91 3 9.5C3 13.09 5.91 16 9.5 16C11.11 16 12.59 15.41 13.73 14.43L14 14.71V15.5L19 20.49L20.49 19L15.5 14ZM9.5 14C7.01 14 5 11.99 5 9.5C5 7.01 7.01 5 9.5 5C11.99 5 14 7.01 14 9.5C14 11.99 11.99 14 9.5 14Z", fill: "currentColor" }) }));
|
|
214
|
+
const IconButton = ({ icon, size = 'medium', color = 'default', disabled = false, onClick, ariaLabel = 'Icon button', className = '', }) => {
|
|
215
|
+
const getButtonClasses = () => {
|
|
216
|
+
const classes = ['tc-icon-button'];
|
|
217
|
+
classes.push(`tc-icon-button--${size}`);
|
|
218
|
+
classes.push(`tc-icon-button--${color}`);
|
|
219
|
+
if (disabled)
|
|
220
|
+
classes.push('tc-icon-button--disabled');
|
|
221
|
+
if (className)
|
|
222
|
+
classes.push(className);
|
|
223
|
+
return classes.join(' ');
|
|
224
|
+
};
|
|
225
|
+
return (jsx("button", { type: "button", className: getButtonClasses(), onClick: onClick, disabled: disabled, "aria-label": ariaLabel, children: jsx("span", { className: "tc-icon-button__icon", children: icon || jsx(SearchIcon$1, {}) }) }));
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
// Base Icon wrapper component
|
|
229
|
+
const IconWrapper = ({ size = 'medium', color, className = '', children, }) => {
|
|
230
|
+
const getSizeClass = () => {
|
|
231
|
+
switch (size) {
|
|
232
|
+
case 'small':
|
|
233
|
+
return 'tc-icon--small';
|
|
234
|
+
case 'large':
|
|
235
|
+
return 'tc-icon--large';
|
|
236
|
+
default:
|
|
237
|
+
return 'tc-icon--medium';
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
return (jsx("span", { className: `tc-icon ${getSizeClass()} ${className}`.trim(), style: color ? { color } : undefined, children: children }));
|
|
241
|
+
};
|
|
242
|
+
// Info Icon
|
|
243
|
+
const InfoIcon = (props) => (jsx(IconWrapper, { ...props, children: jsx("svg", { viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M9 1.5C4.86 1.5 1.5 4.86 1.5 9C1.5 13.14 4.86 16.5 9 16.5C13.14 16.5 16.5 13.14 16.5 9C16.5 4.86 13.14 1.5 9 1.5ZM9.75 12.75H8.25V8.25H9.75V12.75ZM9.75 6.75H8.25V5.25H9.75V6.75Z", fill: "currentColor" }) }) }));
|
|
244
|
+
// Search Icon
|
|
245
|
+
const SearchIcon = (props) => (jsx(IconWrapper, { ...props, children: jsx("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M15.5 14H14.71L14.43 13.73C15.41 12.59 16 11.11 16 9.5C16 5.91 13.09 3 9.5 3C5.91 3 3 5.91 3 9.5C3 13.09 5.91 16 9.5 16C11.11 16 12.59 15.41 13.73 14.43L14 14.71V15.5L19 20.49L20.49 19L15.5 14ZM9.5 14C7.01 14 5 11.99 5 9.5C5 7.01 7.01 5 9.5 5C11.99 5 14 7.01 14 9.5C14 11.99 11.99 14 9.5 14Z", fill: "currentColor" }) }) }));
|
|
246
|
+
// Chevron Down Icon
|
|
247
|
+
const ChevronDownIcon = (props) => (jsx(IconWrapper, { ...props, children: jsx("svg", { viewBox: "0 0 10 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M0 0L5 5L10 0H0Z", fill: "currentColor" }) }) }));
|
|
248
|
+
// Chevron Up Icon
|
|
249
|
+
const ChevronUpIcon = (props) => (jsx(IconWrapper, { ...props, children: jsx("svg", { viewBox: "0 0 10 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M10 6L5 1L0 6H10Z", fill: "currentColor" }) }) }));
|
|
250
|
+
// Caret Down Icon
|
|
251
|
+
const CaretDownIcon = (props) => (jsx(IconWrapper, { ...props, children: jsx("svg", { viewBox: "0 0 10 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M5 6L0 0H10L5 6Z", fill: "currentColor" }) }) }));
|
|
252
|
+
// TeamConnect Logo Icon (honeycomb hexagon pattern)
|
|
253
|
+
const TeamConnectIcon = (props) => (jsx(IconWrapper, { ...props, children: jsxs("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M5.5 4L8 2.5L10.5 4V7L8 8.5L5.5 7V4Z", fill: "#E91E63" }), jsx("path", { d: "M10.5 4L13 2.5L15.5 4V7L13 8.5L10.5 7V4Z", fill: "#9C27B0" }), jsx("path", { d: "M3 8.5L5.5 7L8 8.5V11.5L5.5 13L3 11.5V8.5Z", fill: "#7B1FA2" }), jsx("path", { d: "M8 8.5L10.5 7L13 8.5V11.5L10.5 13L8 11.5V8.5Z", fill: "#673AB7" }), jsx("path", { d: "M13 8.5L15.5 7L18 8.5V11.5L15.5 13L13 11.5V8.5Z", fill: "#3F51B5" }), jsx("path", { d: "M5.5 13L8 11.5L10.5 13V16L8 17.5L5.5 16V13Z", fill: "#303F9F" }), jsx("path", { d: "M10.5 13L13 11.5L15.5 13V16L13 17.5L10.5 16V13Z", fill: "#1A237E" })] }) }));
|
|
254
|
+
|
|
255
|
+
// TeamConnect Logo Icon (honeycomb hexagon pattern)
|
|
256
|
+
const LogoIcon = ({ className }) => (jsxs("svg", { className: className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M5.5 4L8 2.5L10.5 4V7L8 8.5L5.5 7V4Z", fill: "#E91E63" }), jsx("path", { d: "M10.5 4L13 2.5L15.5 4V7L13 8.5L10.5 7V4Z", fill: "#9C27B0" }), jsx("path", { d: "M3 8.5L5.5 7L8 8.5V11.5L5.5 13L3 11.5V8.5Z", fill: "#7B1FA2" }), jsx("path", { d: "M8 8.5L10.5 7L13 8.5V11.5L10.5 13L8 11.5V8.5Z", fill: "#673AB7" }), jsx("path", { d: "M13 8.5L15.5 7L18 8.5V11.5L15.5 13L13 11.5V8.5Z", fill: "#3F51B5" }), jsx("path", { d: "M5.5 13L8 11.5L10.5 13V16L8 17.5L5.5 16V13Z", fill: "#303F9F" }), jsx("path", { d: "M10.5 13L13 11.5L15.5 13V16L13 17.5L10.5 16V13Z", fill: "#1A237E" })] }));
|
|
257
|
+
const Logo = ({ size = 'medium', variant = 'full', showSandbox = false, className = '', onClick, }) => {
|
|
258
|
+
const getSizeClass = () => {
|
|
259
|
+
switch (size) {
|
|
260
|
+
case 'small':
|
|
261
|
+
return 'tc-logo--small';
|
|
262
|
+
case 'large':
|
|
263
|
+
return 'tc-logo--large';
|
|
264
|
+
default:
|
|
265
|
+
return 'tc-logo--medium';
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
return (jsxs("div", { className: `tc-logo ${getSizeClass()} ${className}`.trim(), onClick: onClick, role: onClick ? 'button' : undefined, tabIndex: onClick ? 0 : undefined, onKeyDown: onClick ? (e) => {
|
|
269
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
270
|
+
e.preventDefault();
|
|
271
|
+
onClick();
|
|
272
|
+
}
|
|
273
|
+
} : undefined, children: [jsx(LogoIcon, { className: "tc-logo__icon" }), variant === 'full' && (jsxs("span", { className: "tc-logo__text", children: [jsx("span", { className: "tc-logo__text-team", children: "Team" }), jsx("span", { className: "tc-logo__text-connect", children: "Connect" }), showSandbox && (jsx("span", { className: "tc-logo__text-sandbox", children: "SANDBOX" }))] }))] }));
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
const Search = ({ placeholder = 'Search', filterPlaceholder = 'All', filterOptions = [
|
|
277
|
+
{ value: 'all', label: 'All' },
|
|
278
|
+
], filterValue: controlledFilterValue, searchValue: controlledSearchValue, disabled = false, showInfoIcon = true, onSearch, onFilterChange, onSubmit, onInfoClick, className = '', }) => {
|
|
279
|
+
const [filterValue, setFilterValue] = useState(controlledFilterValue || '');
|
|
280
|
+
const [searchValue, setSearchValue] = useState(controlledSearchValue || '');
|
|
281
|
+
const handleFilterChange = (value) => {
|
|
282
|
+
setFilterValue(value);
|
|
283
|
+
onFilterChange === null || onFilterChange === void 0 ? void 0 : onFilterChange(value);
|
|
284
|
+
};
|
|
285
|
+
const handleSearch = (value) => {
|
|
286
|
+
setSearchValue(value);
|
|
287
|
+
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value);
|
|
288
|
+
};
|
|
289
|
+
const handleSubmit = (search, filter) => {
|
|
290
|
+
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(search, filter);
|
|
291
|
+
};
|
|
292
|
+
const handleInfoClick = () => {
|
|
293
|
+
onInfoClick === null || onInfoClick === void 0 ? void 0 : onInfoClick();
|
|
294
|
+
};
|
|
295
|
+
return (jsxs("div", { className: `tc-search ${className}`.trim(), children: [jsx(GlobalSearch, { placeholder: placeholder, filterPlaceholder: filterPlaceholder, filterOptions: filterOptions, filterValue: controlledFilterValue !== undefined ? controlledFilterValue : filterValue, searchValue: controlledSearchValue !== undefined ? controlledSearchValue : searchValue, disabled: disabled, onSearch: handleSearch, onFilterChange: handleFilterChange, onSubmit: handleSubmit }), showInfoIcon && (jsx(IconButton, { icon: jsx(InfoIcon, { size: "medium" }), size: "medium", color: "default", onClick: handleInfoClick, disabled: disabled, ariaLabel: "More information", className: "tc-search__info-button" }))] }));
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
// Default Wrench Icon (from Figma design)
|
|
299
|
+
const WrenchIcon = ({ className }) => (jsx("svg", { className: className, viewBox: "0 0 14 14", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M13.6 3.5C13.4 3.3 13.1 3.3 12.9 3.5L10.5 5.9L8.1 3.5L10.5 1.1C10.7 0.9 10.7 0.6 10.5 0.4C9.3 -0.4 7.7 -0.1 6.6 1C5.7 1.9 5.4 3.2 5.8 4.3L0.4 9.7C-0.1 10.2 -0.1 11 0.4 11.5L2.5 13.6C3 14.1 3.8 14.1 4.3 13.6L9.7 8.2C10.8 8.6 12.1 8.3 13 7.4C14.1 6.3 14.4 4.7 13.6 3.5Z" }) }));
|
|
300
|
+
const DropdownMenu = ({ items, selectedId, onItemClick, className = '', }) => {
|
|
301
|
+
const handleItemClick = (item) => {
|
|
302
|
+
var _a;
|
|
303
|
+
(_a = item.onClick) === null || _a === void 0 ? void 0 : _a.call(item);
|
|
304
|
+
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item);
|
|
305
|
+
};
|
|
306
|
+
return (jsx("div", { className: `tc-dropdown-menu ${className}`.trim(), children: items.map((item, index) => {
|
|
307
|
+
const isSelected = item.id === selectedId;
|
|
308
|
+
const isLast = index === items.length - 1;
|
|
309
|
+
return (jsx("div", { className: `tc-dropdown-menu__item ${isSelected ? 'tc-dropdown-menu__item--selected' : ''} ${isLast ? 'tc-dropdown-menu__item--last' : ''}`, onClick: () => handleItemClick(item), role: "menuitem", tabIndex: 0, onKeyDown: (e) => {
|
|
310
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
311
|
+
e.preventDefault();
|
|
312
|
+
handleItemClick(item);
|
|
313
|
+
}
|
|
314
|
+
}, children: jsxs("div", { className: "tc-dropdown-menu__link", children: [jsx("span", { className: "tc-dropdown-menu__icon", children: item.icon || jsx(WrenchIcon, {}) }), jsx("span", { className: "tc-dropdown-menu__label", children: item.label })] }) }, item.id));
|
|
315
|
+
}) }));
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
// Default Icons based on Figma design
|
|
319
|
+
const BookmarkIcon = () => (jsx("svg", { viewBox: "0 0 18 18", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M14 2H4C2.9 2 2 2.9 2 4V16L9 13L16 16V4C16 2.9 15.1 2 14 2Z" }) }));
|
|
320
|
+
const RecentIcon = () => (jsx("svg", { viewBox: "0 0 18 18", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M9 1C4.58 1 1 4.58 1 9C1 13.42 4.58 17 9 17C13.42 17 17 13.42 17 9C17 4.58 13.42 1 9 1ZM9 15C5.69 15 3 12.31 3 9C3 5.69 5.69 3 9 3C12.31 3 15 5.69 15 9C15 12.31 12.31 15 9 15ZM9.5 5H8V10L12.25 12.52L13 11.24L9.5 9.15V5Z" }) }));
|
|
321
|
+
const AllIcon = () => (jsx("svg", { viewBox: "0 0 21 18", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M0 10H4V6H0V10ZM0 16H4V12H0V16ZM0 4H4V0H0V4ZM6 10H21V6H6V10ZM6 16H21V12H6V16ZM6 0V4H21V0H6Z" }) }));
|
|
322
|
+
const ToolsIcon = () => (jsx("svg", { viewBox: "0 0 18 18", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M16.89 5.21L14.12 7.98L10.02 3.88L12.79 1.11C11.15 0.37 9.14 0.69 7.79 2.04C6.32 3.51 6.07 5.75 7.04 7.49L1.04 13.49C0.26 14.27 0.26 15.53 1.04 16.31C1.82 17.09 3.08 17.09 3.86 16.31L9.86 10.31C11.6 11.28 13.84 11.03 15.31 9.56C16.66 8.21 16.98 6.2 16.24 4.56L16.89 5.21Z" }) }));
|
|
323
|
+
const HelpIcon = () => (jsx("svg", { viewBox: "0 0 18 18", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M9 1C4.58 1 1 4.58 1 9C1 13.42 4.58 17 9 17C13.42 17 17 13.42 17 9C17 4.58 13.42 1 9 1ZM10 14H8V12H10V14ZM11.07 8.25L10.17 9.17C9.45 9.9 9 10.5 9 12H7V11.5C7 10.4 7.45 9.4 8.17 8.67L9.41 7.41C9.78 7.05 10 6.55 10 6C10 4.9 9.1 4 8 4C6.9 4 6 4.9 6 6H4C4 3.79 5.79 2 8 2C10.21 2 12 3.79 12 6C12 6.88 11.64 7.68 11.07 8.25Z" }) }));
|
|
324
|
+
const ClientIcon = () => (jsx("svg", { viewBox: "0 0 18 18", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M9 9C11.21 9 13 7.21 13 5C13 2.79 11.21 1 9 1C6.79 1 5 2.79 5 5C5 7.21 6.79 9 9 9ZM9 11C6.33 11 1 12.34 1 15V17H17V15C17 12.34 11.67 11 9 11Z" }) }));
|
|
325
|
+
const defaultIcons = {
|
|
326
|
+
bookmarks: jsx(BookmarkIcon, {}),
|
|
327
|
+
recent: jsx(RecentIcon, {}),
|
|
328
|
+
all: jsx(AllIcon, {}),
|
|
329
|
+
tools: jsx(ToolsIcon, {}),
|
|
330
|
+
help: jsx(HelpIcon, {}),
|
|
331
|
+
client: jsx(ClientIcon, {}),
|
|
332
|
+
};
|
|
333
|
+
const HeaderMenu = ({ items, onItemClick, onDropdownItemClick, className = '', }) => {
|
|
334
|
+
const [openMenuId, setOpenMenuId] = useState(null);
|
|
335
|
+
const menuRef = useRef(null);
|
|
336
|
+
// Close dropdown when clicking outside
|
|
337
|
+
useEffect(() => {
|
|
338
|
+
const handleClickOutside = (event) => {
|
|
339
|
+
if (menuRef.current && !menuRef.current.contains(event.target)) {
|
|
340
|
+
setOpenMenuId(null);
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
344
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
345
|
+
}, []);
|
|
346
|
+
const handleItemClick = (item) => {
|
|
347
|
+
if (item.dropdownItems && item.dropdownItems.length > 0) {
|
|
348
|
+
setOpenMenuId(openMenuId === item.id ? null : item.id);
|
|
349
|
+
}
|
|
350
|
+
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item);
|
|
351
|
+
};
|
|
352
|
+
const handleDropdownItemClick = (menuItem, dropdownItem) => {
|
|
353
|
+
setOpenMenuId(null);
|
|
354
|
+
onDropdownItemClick === null || onDropdownItemClick === void 0 ? void 0 : onDropdownItemClick(menuItem, dropdownItem);
|
|
355
|
+
};
|
|
356
|
+
return (jsx("div", { ref: menuRef, className: `tc-header-menu ${className}`.trim(), children: items.map((item) => {
|
|
357
|
+
const isOpen = openMenuId === item.id;
|
|
358
|
+
const hasDropdown = item.dropdownItems && item.dropdownItems.length > 0;
|
|
359
|
+
return (jsxs("div", { className: "tc-header-menu__item-wrapper", children: [jsxs("button", { className: `tc-header-menu__item ${isOpen ? 'tc-header-menu__item--active' : ''}`, onClick: () => handleItemClick(item), type: "button", "aria-expanded": hasDropdown ? isOpen : undefined, "aria-haspopup": hasDropdown ? 'menu' : undefined, children: [jsx("span", { className: "tc-header-menu__icon", children: item.icon || defaultIcons[item.id.toLowerCase()] || jsx(BookmarkIcon, {}) }), jsx("span", { className: "tc-header-menu__label", children: item.label })] }), hasDropdown && isOpen && (jsx("div", { className: "tc-header-menu__dropdown", children: jsx(DropdownMenu, { items: item.dropdownItems, onItemClick: (dropdownItem) => handleDropdownItemClick(item, dropdownItem) }) }))] }, item.id));
|
|
360
|
+
}) }));
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
// Default menu items matching the Figma design
|
|
364
|
+
const defaultMenuItems = [
|
|
365
|
+
{ id: 'bookmarks', label: 'Bookmarks', dropdownItems: [] },
|
|
366
|
+
{ id: 'recent', label: 'Recent', dropdownItems: [] },
|
|
367
|
+
{ id: 'all', label: 'All', dropdownItems: [] },
|
|
368
|
+
{ id: 'tools', label: 'Tools', dropdownItems: [] },
|
|
369
|
+
{ id: 'help', label: 'Help', dropdownItems: [] },
|
|
370
|
+
{ id: 'client', label: 'Client', dropdownItems: [] },
|
|
371
|
+
];
|
|
372
|
+
// Default filter options
|
|
373
|
+
const defaultFilterOptions = [
|
|
374
|
+
{ value: 'all', label: 'All' },
|
|
375
|
+
];
|
|
376
|
+
const MainHeader = ({ showSandbox = true, menuItems = defaultMenuItems, searchFilterOptions = defaultFilterOptions, searchPlaceholder = 'Search', searchFilterPlaceholder = 'All', onLogoClick, onSearch, onMenuItemClick, onDropdownItemClick, onInfoClick, className = '', }) => {
|
|
377
|
+
return (jsxs("header", { className: `tc-main-header ${className}`.trim(), children: [jsx("div", { className: "tc-main-header__logo", children: jsx(Logo, { size: "medium", showSandbox: showSandbox, onClick: onLogoClick }) }), jsx("div", { className: "tc-main-header__search", children: jsx(Search, { placeholder: searchPlaceholder, filterPlaceholder: searchFilterPlaceholder, filterOptions: searchFilterOptions, onSubmit: onSearch, onInfoClick: onInfoClick }) }), jsx("div", { className: "tc-main-header__menu", children: jsx(HeaderMenu, { items: menuItems, onItemClick: onMenuItemClick, onDropdownItemClick: onDropdownItemClick }) })] }));
|
|
378
|
+
};
|
|
379
|
+
|
|
56
380
|
var x = Object.defineProperty;
|
|
57
381
|
var T = (t, e, s) => e in t ? x(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
|
|
58
382
|
var d = (t, e, s) => T(t, typeof e != "symbol" ? e + "" : e, s);
|
|
@@ -265,7 +589,9 @@ function registerWebComponents() {
|
|
|
265
589
|
customElements.define('tc-input', TCInput);
|
|
266
590
|
}
|
|
267
591
|
}
|
|
268
|
-
}
|
|
592
|
+
}
|
|
593
|
+
// Auto-register when loaded in browser
|
|
594
|
+
registerWebComponents();
|
|
269
595
|
|
|
270
|
-
export { Button, ButtonGroup, Input, TCButton, TCButtonGroup, TCInput, registerWebComponents };
|
|
596
|
+
export { Button, ButtonGroup, CaretDownIcon, ChevronDownIcon, ChevronUpIcon, DropdownMenu, FilterDropdown, GlobalSearch, HeaderMenu, IconButton, InfoIcon, Input, Logo, MainHeader, SearchIcon, TCButton, TCButtonGroup, TCInput, TeamConnectIcon, defaultIcons, registerWebComponents };
|
|
271
597
|
//# sourceMappingURL=index.esm.js.map
|