@wavv/ui 2.2.2-alpha.5 → 2.2.2-alpha.6

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.
Files changed (229) hide show
  1. package/build/assets/icons/CaretDown.js +18 -0
  2. package/build/assets/icons/CaretUp.js +18 -0
  3. package/build/assets/icons/Checkbox.js +15 -0
  4. package/build/assets/icons/CheckboxOff.js +15 -0
  5. package/build/assets/icons/CheckboxPartial.js +15 -0
  6. package/build/assets/icons/Dialpad.js +18 -0
  7. package/build/assets/icons/Exclamation.js +25 -0
  8. package/build/assets/icons/Phone.js +13 -0
  9. package/build/assets/icons/PhoneAdd.js +21 -0
  10. package/build/assets/icons/PhoneBlocked.js +22 -0
  11. package/build/assets/icons/PhoneCallback.js +21 -0
  12. package/build/assets/icons/PhoneEnd.js +28 -0
  13. package/build/assets/icons/PhoneForward.js +22 -0
  14. package/build/assets/icons/PhoneHistory.js +21 -0
  15. package/build/assets/icons/PhoneHold.js +22 -0
  16. package/build/assets/icons/PhoneIncoming.js +22 -0
  17. package/build/assets/icons/PhoneMissed.js +22 -0
  18. package/build/assets/icons/PhoneTalk.js +22 -0
  19. package/build/assets/icons/PhoneTransfer.js +21 -0
  20. package/build/assets/icons/RadioButton.js +22 -0
  21. package/build/assets/icons/RadioButtonOff.js +15 -0
  22. package/build/assets/icons/Record.js +18 -0
  23. package/build/assets/icons/Screenshot.js +39 -0
  24. package/build/assets/icons/ShieldWavv.js +30 -0
  25. package/build/assets/icons/Spotify.js +15 -0
  26. package/build/assets/icons/SubArrow.js +16 -0
  27. package/build/assets/icons/ToggleOff.js +15 -0
  28. package/build/assets/icons/ToggleOn.js +15 -0
  29. package/build/assets/icons/TransferCancel.js +60 -0
  30. package/build/components/Accordion/Accordion.js +26 -0
  31. package/build/components/Accordion/Header.js +86 -0
  32. package/build/components/Accordion/Item.js +25 -0
  33. package/build/components/Accordion/Panel.js +64 -0
  34. package/build/components/Accordion/index.js +2 -0
  35. package/build/components/Audio.js +248 -0
  36. package/build/components/BarChart.js +123 -0
  37. package/build/components/Button/Button.js +258 -0
  38. package/build/components/Button/ButtonLoader.js +20 -0
  39. package/build/components/Button/ButtonTypes.js +0 -0
  40. package/build/components/Button/Group.js +58 -0
  41. package/build/components/Button/index.js +2 -0
  42. package/build/components/Calendar.js +49 -0
  43. package/build/components/CalendarParts/CalendarContainerStyles.js +15 -0
  44. package/build/components/CalendarParts/CalendarContent.js +138 -0
  45. package/build/components/CalendarParts/CalendarHeader.js +146 -0
  46. package/build/components/CalendarParts/useMinMax.js +23 -0
  47. package/build/components/CalendarParts/utils.js +6 -0
  48. package/build/components/ChartHelpers.js +121 -0
  49. package/build/components/Checkbox.js +85 -0
  50. package/build/components/Code/Code.js +117 -0
  51. package/build/components/Code/Copy.js +50 -0
  52. package/build/components/Code/Endpoint.js +82 -0
  53. package/build/components/Code/index.js +3 -0
  54. package/build/components/ComboBox.js +190 -0
  55. package/build/components/CommandMenu/CommandItem.js +32 -0
  56. package/build/components/CommandMenu/CommandMenu.js +136 -0
  57. package/build/components/CommandMenu/CommandOptions.js +24 -0
  58. package/build/components/CommandMenu/CommandSection.js +19 -0
  59. package/build/components/CommandMenu/index.js +2 -0
  60. package/build/components/DateRangeSelect.js +359 -0
  61. package/build/components/DocTable.js +32 -0
  62. package/build/components/Dot.js +60 -0
  63. package/build/components/DraftEditor.js +188 -0
  64. package/build/components/Dropdown.js +130 -0
  65. package/build/components/DropdownMenu.js +131 -0
  66. package/build/components/DropdownMenuParts/Menu.js +6 -0
  67. package/build/components/DropdownMenuParts/MenuItem.js +54 -0
  68. package/build/components/DropdownMenuParts/MenuOptions.js +47 -0
  69. package/build/components/DropdownMenuParts/MenuSection.js +14 -0
  70. package/build/components/DropdownSelect.js +171 -0
  71. package/build/components/DynamicIcon.js +49 -0
  72. package/build/components/Editor/Editor.js +356 -0
  73. package/build/components/Editor/EditorStyles.js +259 -0
  74. package/build/components/Editor/MergeFieldExtension.js +110 -0
  75. package/build/components/Editor/RichTextToolbar.js +515 -0
  76. package/build/components/Editor/editorUtils.js +213 -0
  77. package/build/components/Editor/index.js +3 -0
  78. package/build/components/Ellipsis.js +22 -0
  79. package/build/components/Focusable.js +20 -0
  80. package/build/components/Form.js +68 -0
  81. package/build/components/FormControl.js +72 -0
  82. package/build/components/Grid.js +53 -0
  83. package/build/components/Icon/Icon.js +89 -0
  84. package/build/components/Icon/customIcons.js +48 -0
  85. package/build/components/Icon/icons.js +145 -0
  86. package/build/components/Icon/index.js +3 -0
  87. package/build/components/ImageViewer.js +142 -0
  88. package/build/components/InlineCode.js +10 -0
  89. package/build/components/InputHelpers.js +106 -0
  90. package/build/components/Inputs/DatePicker.js +111 -0
  91. package/build/components/Inputs/DateRangePicker.js +166 -0
  92. package/build/components/Inputs/InlineInput.js +71 -0
  93. package/build/components/Inputs/NumberInput.js +117 -0
  94. package/build/components/Inputs/PhoneInput.js +96 -0
  95. package/build/components/Inputs/SearchInput.js +84 -0
  96. package/build/components/Inputs/TextArea.js +164 -0
  97. package/build/components/Inputs/TextInput.js +74 -0
  98. package/build/components/Inputs/TimeInput.js +74 -0
  99. package/build/components/Inputs/helpers/AriaButton.js +19 -0
  100. package/build/components/Inputs/helpers/DateSegment.js +22 -0
  101. package/build/components/Inputs/helpers/Description.js +11 -0
  102. package/build/components/Inputs/helpers/ErrorMessage.js +11 -0
  103. package/build/components/Inputs/helpers/Input.js +6 -0
  104. package/build/components/Inputs/helpers/InputContainerStyles.js +78 -0
  105. package/build/components/Inputs/helpers/InputMessage.js +30 -0
  106. package/build/components/Inputs/helpers/InputStyles.js +43 -0
  107. package/build/components/Inputs/helpers/Label.js +42 -0
  108. package/build/components/Inputs/helpers/LabelWrapper.js +14 -0
  109. package/build/components/Inputs/helpers/PickerToggle.js +7 -0
  110. package/build/components/Inputs/helpers/TextArea.js +8 -0
  111. package/build/components/Inputs/helpers/filterPastedText.js +9 -0
  112. package/build/components/Inputs/helpers/handlePaste.js +12 -0
  113. package/build/components/Inputs/helpers/isAcceptable.js +7 -0
  114. package/build/components/Inputs/helpers/useDynamicWidth.js +39 -0
  115. package/build/components/Inputs/helpers/useInputFocus.js +19 -0
  116. package/build/components/Label.js +42 -0
  117. package/build/components/LineChart.js +80 -0
  118. package/build/components/ListBoxParts/GridListItem.js +34 -0
  119. package/build/components/ListBoxParts/ListBoxItem.js +32 -0
  120. package/build/components/ListBoxParts/ListOptions.js +45 -0
  121. package/build/components/ListHelpers/GridListHeader.js +14 -0
  122. package/build/components/ListHelpers/GridListSection.js +14 -0
  123. package/build/components/ListHelpers/ItemHeaderBody.js +36 -0
  124. package/build/components/ListHelpers/ListHeader.js +14 -0
  125. package/build/components/ListHelpers/ListItemStyles.js +52 -0
  126. package/build/components/ListHelpers/ListRootStyles.js +14 -0
  127. package/build/components/ListHelpers/ListSection.js +14 -0
  128. package/build/components/ListHelpers/ListStyles.js +29 -0
  129. package/build/components/Menu.js +159 -0
  130. package/build/components/Message.js +107 -0
  131. package/build/components/MessageHr.js +32 -0
  132. package/build/components/Modal.js +212 -0
  133. package/build/components/MotionPopover.js +39 -0
  134. package/build/components/MultiSelect/MultiSelect.js +263 -0
  135. package/build/components/MultiSelect/SearchDropdown.js +155 -0
  136. package/build/components/MultiSelect/index.js +2 -0
  137. package/build/components/OptionHelpers/Container.js +34 -0
  138. package/build/components/OptionHelpers/Item.js +59 -0
  139. package/build/components/OptionHelpers/types.js +0 -0
  140. package/build/components/Pagination.js +121 -0
  141. package/build/components/PieChart.js +40 -0
  142. package/build/components/Popover.js +40 -0
  143. package/build/components/PortalScope.js +8 -0
  144. package/build/components/Progress/CirclePercent.js +56 -0
  145. package/build/components/Progress/Progress.js +59 -0
  146. package/build/components/Progress/index.js +3 -0
  147. package/build/components/Radio.js +45 -0
  148. package/build/components/RangeCalendar.js +60 -0
  149. package/build/components/Select.js +162 -0
  150. package/build/components/Slider.js +50 -0
  151. package/build/components/Spinner.js +70 -0
  152. package/build/components/Table/Body.js +49 -0
  153. package/build/components/Table/Cell.js +63 -0
  154. package/build/components/Table/Check.js +35 -0
  155. package/build/components/Table/Column.js +129 -0
  156. package/build/components/Table/ColumnSort.js +26 -0
  157. package/build/components/Table/Header.js +64 -0
  158. package/build/components/Table/Resizer.js +25 -0
  159. package/build/components/Table/Row.js +84 -0
  160. package/build/components/Table/SortCaret.js +24 -0
  161. package/build/components/Table/Table.js +88 -0
  162. package/build/components/Table/contentStyles.js +20 -0
  163. package/build/components/Table/context.js +4 -0
  164. package/build/components/Table/index.js +2 -0
  165. package/build/components/Table/types.js +0 -0
  166. package/build/components/Tabs.js +151 -0
  167. package/build/components/Tag.js +71 -0
  168. package/build/components/Toggle.js +59 -0
  169. package/build/components/ToggleButton/ToggleButton.js +104 -0
  170. package/build/components/ToggleButton/ToggleButtonGroup.js +36 -0
  171. package/build/components/ToggleButton/context.js +8 -0
  172. package/build/components/ToggleButton/index.js +3 -0
  173. package/build/components/Tooltip.js +136 -0
  174. package/build/components/TransferList.js +234 -0
  175. package/build/components/Tree/Tree.js +69 -0
  176. package/build/components/Tree/TreeContext.js +3 -0
  177. package/build/components/Tree/TreeItem.js +93 -0
  178. package/build/components/Tree/index.js +2 -0
  179. package/build/components/UnstyledButton.js +8 -0
  180. package/build/components/Waveform.js +243 -0
  181. package/build/components/draftUtils.js +193 -0
  182. package/build/components/helpers/getIcon.js +28 -0
  183. package/build/components/helpers/getPopPosition.js +20 -0
  184. package/build/components/helpers/isPropAllowed.js +3 -0
  185. package/build/components/helpers/mergePadding.js +47 -0
  186. package/build/components/helpers/styledProps.js +34 -0
  187. package/build/components/typeDefs/elementTypes.js +0 -0
  188. package/build/components/typeDefs/inputTypes.js +0 -0
  189. package/build/components/typeDefs/selectionTypes.js +0 -0
  190. package/build/components/typeDefs/tagTypes.js +0 -0
  191. package/build/components/types.js +0 -0
  192. package/build/global-styles/GlobalStorybookStyles.js +108 -0
  193. package/build/global-styles/ResetStyles.js +33 -0
  194. package/build/global-styles/ScrollbarStyles.js +26 -0
  195. package/build/global-styles/ToastStyles.js +66 -0
  196. package/build/global-styles/index.js +4 -0
  197. package/build/hooks/index.js +9 -0
  198. package/build/hooks/useConfirm.js +91 -0
  199. package/build/hooks/useControlledOpenState.js +22 -0
  200. package/build/hooks/useCopy.js +28 -0
  201. package/build/hooks/useElementObserver.js +6 -0
  202. package/build/hooks/useEventListener.js +19 -0
  203. package/build/hooks/useOnClickOutside.js +21 -0
  204. package/build/hooks/usePrevious.js +12 -0
  205. package/build/hooks/useSelectAll.js +60 -0
  206. package/build/hooks/useWindowSize.js +25 -0
  207. package/build/theme/ThemeTypes.js +0 -0
  208. package/build/theme/common/button.js +33 -0
  209. package/build/theme/common/common.js +38 -0
  210. package/build/theme/common/index.js +4 -0
  211. package/build/theme/core/colors.js +77 -0
  212. package/build/theme/core/dark/dark.js +457 -0
  213. package/build/theme/core/dark/darkScale.js +36 -0
  214. package/build/theme/core/light/light.js +456 -0
  215. package/build/theme/core/light/lightScale.js +35 -0
  216. package/build/theme/eighties/colors.js +78 -0
  217. package/build/theme/eighties/dark/dark.js +457 -0
  218. package/build/theme/eighties/dark/darkScale.js +36 -0
  219. package/build/theme/eighties/light/light.js +456 -0
  220. package/build/theme/eighties/light/lightScale.js +35 -0
  221. package/build/theme/index.js +28 -0
  222. package/build/utils/chunk.js +13 -0
  223. package/build/utils/copyToClipboard.js +29 -0
  224. package/build/utils/flattenListOptions.js +4 -0
  225. package/build/utils/formatDate.js +55 -0
  226. package/build/utils/index.js +6 -0
  227. package/build/utils/numberWithCommas.js +3 -0
  228. package/build/utils/range.js +11 -0
  229. package/package.json +1 -1
@@ -0,0 +1,19 @@
1
+ import styled from "@emotion/styled";
2
+ import { Button } from "react-aria-components";
3
+ const AriaButton = styled(Button)(({ theme: { accent }, width })=>({
4
+ appearance: 'none',
5
+ border: 'none',
6
+ borderRadius: 4,
7
+ cursor: 'pointer',
8
+ backgroundColor: 'transparent',
9
+ padding: 0,
10
+ color: 'inherit',
11
+ width,
12
+ outline: 'none',
13
+ outlineOffset: -1,
14
+ '&:focus-visible': {
15
+ outline: `${accent} solid 1px`
16
+ }
17
+ }));
18
+ const helpers_AriaButton = AriaButton;
19
+ export { helpers_AriaButton as default };
@@ -0,0 +1,22 @@
1
+ import styled from "@emotion/styled";
2
+ import { DateSegment } from "react-aria-components";
3
+ const DateSegment_DateSegment = styled(DateSegment)(({ theme, placeholderColor })=>({
4
+ outline: 'none',
5
+ borderRadius: 4,
6
+ padding: '0 2px',
7
+ '&[data-focused]': {
8
+ backgroundColor: theme.calendar.background.activeRange
9
+ },
10
+ '&[data-placeholder]': {
11
+ color: placeholderColor || theme.input.color.placeholder
12
+ },
13
+ '&[data-type="literal"]': {
14
+ padding: 0,
15
+ color: placeholderColor || theme.input.color.placeholder
16
+ },
17
+ '&[data-type="dayPeriod"]': {
18
+ textTransform: 'lowercase'
19
+ }
20
+ }));
21
+ const helpers_DateSegment = DateSegment_DateSegment;
22
+ export { helpers_DateSegment as default };
@@ -0,0 +1,11 @@
1
+ import styled from "@emotion/styled";
2
+ import { Text } from "react-aria-components";
3
+ const Description = styled(Text)(({ theme: { font, input } })=>({
4
+ color: input.color.description,
5
+ fontSize: font.size.sm,
6
+ position: 'absolute',
7
+ left: 0,
8
+ top: 'calc(100% + 4px)'
9
+ }));
10
+ const helpers_Description = Description;
11
+ export { helpers_Description as default };
@@ -0,0 +1,11 @@
1
+ import styled from "@emotion/styled";
2
+ import { FieldError } from "react-aria-components";
3
+ const ErrorMessage = styled(FieldError)(({ theme: { font, input } })=>({
4
+ color: input.color.descriptionError,
5
+ fontSize: font.size.sm,
6
+ position: 'absolute',
7
+ left: 0,
8
+ top: 'calc(100% + 4px)'
9
+ }));
10
+ const helpers_ErrorMessage = ErrorMessage;
11
+ export { helpers_ErrorMessage as default };
@@ -0,0 +1,6 @@
1
+ import styled from "@emotion/styled";
2
+ import { Input } from "react-aria-components";
3
+ import InputStyles, { preventProps } from "./InputStyles.js";
4
+ const Input_Input = styled(Input, preventProps)(InputStyles);
5
+ const helpers_Input = Input_Input;
6
+ export { helpers_Input as default };
@@ -0,0 +1,78 @@
1
+ import { marginProps, paddingProps, widthHeightProps } from "../../helpers/styledProps.js";
2
+ const baseStyles = ({ theme: { input, accent }, backgroundColor, borderRadius, borderColor, textOnly, isDisabled, isInvalid, isReadOnly, hasLabel, pointer })=>({
3
+ display: 'flex',
4
+ justifyContent: 'space-between',
5
+ alignItems: 'center',
6
+ position: 'relative',
7
+ width: '100%',
8
+ minHeight: hasLabel ? 48 : 40,
9
+ height: hasLabel ? 48 : 40,
10
+ padding: '5px 16px',
11
+ boxSizing: 'border-box',
12
+ color: isDisabled ? input.labelColor.disabled : input.labelColor.default,
13
+ backgroundColor: input.background.default,
14
+ border: 'none',
15
+ borderColor,
16
+ borderRadius: borderRadius ?? 4,
17
+ cursor: pointer ? 'pointer' : void 0,
18
+ outline: 'none',
19
+ outlineOffset: -1,
20
+ transition: 'background-color 0.2s',
21
+ '&:focus-within': {
22
+ backgroundColor: backgroundColor || textOnly || isDisabled || isInvalid ? void 0 : input.background.focused,
23
+ outline: `${accent} solid 1px`
24
+ },
25
+ '&:hover:not(:focus-within)': {
26
+ backgroundColor: isDisabled || isReadOnly || textOnly || backgroundColor ? void 0 : input.background.hover,
27
+ Label: {
28
+ color: isDisabled ? void 0 : input.labelColor.hover
29
+ }
30
+ }
31
+ });
32
+ const disabledStyles = ({ theme: { input }, isDisabled })=>({
33
+ backgroundColor: isDisabled ? input.background.disabled : void 0,
34
+ pointerEvents: isDisabled ? 'none' : void 0
35
+ });
36
+ const invalidStyles = ({ theme: { input }, isInvalid })=>({
37
+ backgroundColor: isInvalid ? input.background.invalid : void 0,
38
+ '&:hover:not(:focus-within)': {
39
+ backgroundColor: isInvalid ? input.background.invalidHover : void 0
40
+ },
41
+ '&[data-invalid]': {
42
+ backgroundColor: input.background.invalid
43
+ },
44
+ '&:hover:not(:focus-within)&[data-invalid]': {
45
+ backgroundColor: input.background.invalidHover
46
+ }
47
+ });
48
+ const readOnlyStyles = ({ isReadOnly })=>({
49
+ cursor: isReadOnly ? 'default' : void 0
50
+ });
51
+ const backgroundStyles = ({ backgroundColor })=>({
52
+ backgroundColor
53
+ });
54
+ const textOnlyStyles = ({ theme, textOnly, isDisabled })=>({
55
+ padding: textOnly ? 0 : void 0,
56
+ backgroundColor: textOnly ? 'transparent' : void 0,
57
+ width: textOnly ? 'max-content' : void 0,
58
+ height: textOnly ? 'max-content' : void 0,
59
+ minHeight: textOnly ? 'max-content' : void 0,
60
+ color: textOnly && isDisabled ? theme.scale4 : void 0
61
+ });
62
+ const minHeightStyles = ({ minHeight })=>({
63
+ minHeight
64
+ });
65
+ const styles = [
66
+ baseStyles,
67
+ disabledStyles,
68
+ readOnlyStyles,
69
+ invalidStyles,
70
+ widthHeightProps,
71
+ textOnlyStyles,
72
+ backgroundStyles,
73
+ minHeightStyles,
74
+ marginProps,
75
+ paddingProps
76
+ ];
77
+ const InputContainerStyles = styles;
78
+ export { InputContainerStyles as default };
@@ -0,0 +1,30 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { FieldError, Text } from "react-aria-components";
4
+ const InputMessage = ({ description, errorMessage })=>description || errorMessage ? /*#__PURE__*/ jsxs(Fragment, {
5
+ children: [
6
+ description && !errorMessage && /*#__PURE__*/ jsx(Description, {
7
+ slot: "description",
8
+ children: description
9
+ }),
10
+ errorMessage && /*#__PURE__*/ jsx(ErrorMessage, {
11
+ children: errorMessage
12
+ })
13
+ ]
14
+ }) : null;
15
+ const commonStyles = ({ theme })=>({
16
+ position: 'absolute',
17
+ left: 0,
18
+ top: '100%',
19
+ fontSize: theme.font.size.sm,
20
+ textAlign: 'left',
21
+ lineHeight: `${theme.font.size.lg}px`
22
+ });
23
+ const Description = styled(Text)(({ theme })=>({
24
+ color: theme.input.color.description
25
+ }), commonStyles);
26
+ const ErrorMessage = styled(FieldError)(({ theme })=>({
27
+ color: theme.input.color.descriptionError
28
+ }), commonStyles);
29
+ const helpers_InputMessage = InputMessage;
30
+ export { helpers_InputMessage as default };
@@ -0,0 +1,43 @@
1
+ import isPropAllowed from "../../helpers/isPropAllowed.js";
2
+ const preventProps = {
3
+ shouldForwardProp: (prop)=>isPropAllowed(prop, [
4
+ 'hide',
5
+ 'placeholderColor',
6
+ 'isDisabled'
7
+ ])
8
+ };
9
+ const baseStyles = ({ theme: { font, input, size, accent }, fontSize, hide, isDisabled, width, placeholderColor })=>({
10
+ outline: 'none',
11
+ border: 'none',
12
+ color: isDisabled ? input.color.disabled : input.color.default,
13
+ caretColor: accent,
14
+ backgroundColor: 'transparent',
15
+ paddingLeft: 0,
16
+ fontSize: fontSize || font.size.lg,
17
+ fontFamily: font.family.default,
18
+ width: width || '100%',
19
+ height: '100%',
20
+ marginRight: size.sm,
21
+ boxSizing: 'border-box',
22
+ cursor: isDisabled ? 'default' : 'text',
23
+ '&:not(:focus):not(:focus-within)': {
24
+ opacity: hide ? 0 : 1,
25
+ position: hide ? 'absolute' : void 0
26
+ },
27
+ '&:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active': {
28
+ transition: 'background-color 0s 50000s',
29
+ WebkitTextFillColor: input.color.default
30
+ },
31
+ '&::-webkit-search-decoration, &::-webkit-search-cancel-button, &::-webkit-search-results-button, &::-webkit-search-results-decoration': {
32
+ WebkitAppearance: 'none'
33
+ },
34
+ '&::placeholder': {
35
+ color: isDisabled ? input.color.disabled : placeholderColor || input.color.placeholder,
36
+ opacity: 1
37
+ }
38
+ });
39
+ const inputStyles = [
40
+ baseStyles
41
+ ];
42
+ const InputStyles = inputStyles;
43
+ export { InputStyles as default, preventProps };
@@ -0,0 +1,42 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { Label } from "react-aria-components";
4
+ import Ellipsis from "../../Ellipsis.js";
5
+ import isPropAllowed from "../../helpers/isPropAllowed.js";
6
+ const LabelWrapper = ({ children, label, ...props })=>/*#__PURE__*/ jsxs(Label_Label, {
7
+ ...props,
8
+ children: [
9
+ label && /*#__PURE__*/ jsx(Ellipsis, {
10
+ width: "100%",
11
+ children: label
12
+ }),
13
+ children
14
+ ]
15
+ });
16
+ const preventProps = {
17
+ shouldForwardProp: (prop)=>isPropAllowed(prop, [
18
+ 'filled',
19
+ 'disablePointerEvents'
20
+ ])
21
+ };
22
+ const Label_Label = styled(Label, preventProps)(({ theme: { font, input }, filled, disablePointerEvents })=>({
23
+ display: 'flex',
24
+ flexDirection: 'column',
25
+ alignItems: 'flex-start',
26
+ boxSizing: 'border-box',
27
+ width: '100%',
28
+ fontSize: filled ? font.size.sm : font.size.lg,
29
+ color: filled ? input.labelColor.filled : input.labelColor.default,
30
+ '&:focus-within': {
31
+ fontSize: font.size.sm,
32
+ color: input.labelColor.focused
33
+ },
34
+ position: 'relative',
35
+ transition: 'all 0.2s',
36
+ pointerEvents: disablePointerEvents ? 'none' : void 0,
37
+ overflow: 'hidden'
38
+ }), ({ theme: { input }, disabled })=>({
39
+ color: disabled ? input.labelColor.disabled : void 0
40
+ }));
41
+ const helpers_Label = LabelWrapper;
42
+ export { helpers_Label as default };
@@ -0,0 +1,14 @@
1
+ import styled from "@emotion/styled";
2
+ const LabelWrapper_LabelWrapper = styled.div(({ readOnly })=>({
3
+ display: 'flex',
4
+ flexDirection: 'column',
5
+ boxSizing: 'border-box',
6
+ width: '100%',
7
+ position: 'relative',
8
+ '& > label, & > input': {
9
+ pointerEvents: readOnly ? 'none' : void 0,
10
+ caretColor: readOnly ? 'transparent' : void 0
11
+ }
12
+ }));
13
+ const LabelWrapper = LabelWrapper_LabelWrapper;
14
+ export { LabelWrapper as default };
@@ -0,0 +1,7 @@
1
+ import styled from "@emotion/styled";
2
+ import AriaButton from "./AriaButton.js";
3
+ const PickerToggle = styled(AriaButton)(({ theme: { input }, isDisabled })=>({
4
+ color: isDisabled ? input.labelColor.disabled : input.labelColor.default
5
+ }));
6
+ const helpers_PickerToggle = PickerToggle;
7
+ export { helpers_PickerToggle as default };
@@ -0,0 +1,8 @@
1
+ import styled from "@emotion/styled";
2
+ import { TextArea } from "react-aria-components";
3
+ import InputStyles, { preventProps } from "./InputStyles.js";
4
+ const TextArea_TextArea = styled(TextArea, preventProps)(InputStyles, {
5
+ resize: 'none'
6
+ });
7
+ const helpers_TextArea = TextArea_TextArea;
8
+ export { helpers_TextArea as default };
@@ -0,0 +1,9 @@
1
+ const filterPastedText = (input, regex)=>{
2
+ if (!regex || !input) return input;
3
+ const pattern = new RegExp(regex);
4
+ let validText = '';
5
+ for (const char of input)if (pattern.test(validText + char)) validText += char;
6
+ return validText;
7
+ };
8
+ const helpers_filterPastedText = filterPastedText;
9
+ export { helpers_filterPastedText as default };
@@ -0,0 +1,12 @@
1
+ import filterPastedText from "./filterPastedText.js";
2
+ const handlePaste = (event, handleChange, accepts)=>{
3
+ if (!accepts) return;
4
+ event.stopPropagation();
5
+ event.preventDefault();
6
+ const { clipboardData } = event;
7
+ const text = clipboardData.getData('text');
8
+ const acceptableText = filterPastedText(text, accepts);
9
+ if (acceptableText) handleChange(acceptableText);
10
+ };
11
+ const helpers_handlePaste = handlePaste;
12
+ export { helpers_handlePaste as default };
@@ -0,0 +1,7 @@
1
+ const isAcceptable = (input, regex)=>{
2
+ if (!regex || !input) return true;
3
+ const pattern = new RegExp(regex);
4
+ return pattern.test(input);
5
+ };
6
+ const helpers_isAcceptable = isAcceptable;
7
+ export { helpers_isAcceptable as default };
@@ -0,0 +1,39 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { useLayoutEffect, useRef, useState } from "react";
4
+ const useDynamicWidth_useDynamicWidth = ({ value, placeholder, fontSize, active = true })=>{
5
+ const textWidthRef = useRef(null);
6
+ const [inputWidth, setInputWidth] = useState(active ? 50 : void 0);
7
+ useLayoutEffect(()=>{
8
+ if (active && textWidthRef?.current) {
9
+ const { current: el } = textWidthRef;
10
+ if (value) el.innerHTML = value.replace(/ /g, ' ');
11
+ const newWidth = el.offsetWidth;
12
+ const rightPadding = 3;
13
+ if ('number' == typeof newWidth) setInputWidth(newWidth + rightPadding);
14
+ }
15
+ }, [
16
+ active,
17
+ value,
18
+ placeholder,
19
+ textWidthRef
20
+ ]);
21
+ const HiddenWidthEl = ()=>active ? /*#__PURE__*/ jsx(HiddenWidthRef, {
22
+ ref: textWidthRef,
23
+ fontSize: fontSize,
24
+ children: value || placeholder
25
+ }) : null;
26
+ return [
27
+ inputWidth,
28
+ HiddenWidthEl
29
+ ];
30
+ };
31
+ const HiddenWidthRef = styled.div(({ theme: { font }, fontSize })=>({
32
+ position: 'absolute',
33
+ width: 'max-content',
34
+ opacity: 0,
35
+ fontSize: fontSize || font.size.lg,
36
+ zIndex: -1
37
+ }));
38
+ const useDynamicWidth = useDynamicWidth_useDynamicWidth;
39
+ export { useDynamicWidth as default };
@@ -0,0 +1,19 @@
1
+ import { useState } from "react";
2
+ const useInputFocus = (onFocus, onBlur, focusCondition = true)=>{
3
+ const [focused, setFocused] = useState(false);
4
+ const handleFocus = (event)=>{
5
+ if (focusCondition) setFocused(true);
6
+ if (onFocus) onFocus(event);
7
+ };
8
+ const handleBlur = (event)=>{
9
+ setFocused(false);
10
+ if (onBlur) onBlur(event);
11
+ };
12
+ return {
13
+ focused,
14
+ handleFocus,
15
+ handleBlur
16
+ };
17
+ };
18
+ const helpers_useInputFocus = useInputFocus;
19
+ export { helpers_useInputFocus as default };
@@ -0,0 +1,42 @@
1
+ import { jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import getIcon from "./helpers/getIcon.js";
4
+ import { marginProps } from "./helpers/styledProps.js";
5
+ const Label = ({ children, iconLeft, iconRight, disabled, pill, ...rest })=>/*#__PURE__*/ jsxs(LabelContainer, {
6
+ as: pill ? void 0 : 'label',
7
+ disabled: disabled,
8
+ rightIcon: !!iconRight,
9
+ pill: pill,
10
+ ...rest,
11
+ children: [
12
+ iconLeft && getIcon(iconLeft, {
13
+ marginRight: 4,
14
+ size: 'small'
15
+ }),
16
+ children,
17
+ iconRight && getIcon(iconRight, {
18
+ marginLeft: 4,
19
+ size: 'small'
20
+ })
21
+ ]
22
+ });
23
+ const LabelContainer = styled.div(({ theme, disabled, pill })=>({
24
+ display: 'flex',
25
+ alignItems: 'center',
26
+ width: 'max-content',
27
+ color: disabled ? theme.scale4 : theme.scale10,
28
+ cursor: 'default',
29
+ fontSize: pill ? theme.font.size.sm : theme.font.size.md,
30
+ fontWeight: pill ? theme.font.weight.medium : theme.font.weight.default,
31
+ fontFamily: theme.font.family.default
32
+ }), ({ theme, disabled, pill, rightIcon })=>pill && {
33
+ borderRadius: 40,
34
+ padding: `2px ${theme.size.sm}px`,
35
+ paddingRight: rightIcon ? theme.size.xs : void 0,
36
+ backgroundColor: disabled ? theme.scale0 : theme.scale1,
37
+ '&:hover': {
38
+ backgroundColor: disabled || !pill ? void 0 : theme.scale2
39
+ }
40
+ }, marginProps);
41
+ const components_Label = Label;
42
+ export { components_Label as default };
@@ -0,0 +1,80 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useTheme } from "@emotion/react";
3
+ import millify from "millify";
4
+ import { useState } from "react";
5
+ import { CartesianGrid, Legend, Line, LineChart, ResponsiveContainer, XAxis, YAxis } from "recharts";
6
+ import { ChartContainer, ChartStyles, LegendContent, Tooltip } from "./ChartHelpers.js";
7
+ const LineChart_LineChart = ({ data, legend, keys, enableLegendToggle, axisColor, tooltipLegendPostfix, ...rest })=>{
8
+ const [lines, setLines] = useState(keys);
9
+ const { scale2 } = useTheme();
10
+ const handleLineToggle = (item)=>{
11
+ const toggleLines = (prevLines)=>prevLines.map((lineItem)=>{
12
+ const match = lineItem.key === item.value;
13
+ if (match) return {
14
+ ...lineItem,
15
+ hidden: !lineItem.hidden
16
+ };
17
+ return lineItem;
18
+ });
19
+ setLines((prevLines)=>toggleLines(prevLines));
20
+ };
21
+ const toggleData = enableLegendToggle && keys.length > 1 ? handleLineToggle : void 0;
22
+ return /*#__PURE__*/ jsxs(ChartContainer, {
23
+ ...rest,
24
+ children: [
25
+ /*#__PURE__*/ jsx(ChartStyles, {}),
26
+ /*#__PURE__*/ jsx(ResponsiveContainer, {
27
+ width: "100%",
28
+ height: "100%",
29
+ children: /*#__PURE__*/ jsxs(LineChart, {
30
+ margin: {
31
+ top: 8,
32
+ left: -14,
33
+ right: 5,
34
+ bottom: -8
35
+ },
36
+ data: data,
37
+ children: [
38
+ /*#__PURE__*/ jsx(CartesianGrid, {
39
+ stroke: axisColor || scale2,
40
+ strokeDasharray: "3 5",
41
+ vertical: false
42
+ }),
43
+ /*#__PURE__*/ jsx(XAxis, {
44
+ stroke: axisColor || scale2,
45
+ dataKey: "name",
46
+ tickMargin: 4
47
+ }),
48
+ /*#__PURE__*/ jsx(YAxis, {
49
+ stroke: axisColor || scale2,
50
+ tickMargin: 4,
51
+ tickFormatter: (value)=>millify(value)
52
+ }),
53
+ Tooltip({
54
+ legendPostfix: tooltipLegendPostfix
55
+ }),
56
+ legend && /*#__PURE__*/ jsx(Legend, {
57
+ content: /*#__PURE__*/ jsx(LegendContent, {
58
+ toggleData: toggleData
59
+ })
60
+ }),
61
+ lines.map(({ key, color, hidden }, i)=>/*#__PURE__*/ jsx(Line, {
62
+ dataKey: key,
63
+ stroke: color,
64
+ dot: false,
65
+ hide: hidden,
66
+ activeDot: {
67
+ stroke: color,
68
+ strokeWidth: 1,
69
+ r: 3
70
+ },
71
+ type: "monotone"
72
+ }, `line-${i + 1}`))
73
+ ]
74
+ })
75
+ })
76
+ ]
77
+ });
78
+ };
79
+ const components_LineChart = LineChart_LineChart;
80
+ export { components_LineChart as default };
@@ -0,0 +1,34 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { GridListItem } from "react-aria-components";
4
+ import ItemHeaderBody from "../ListHelpers/ItemHeaderBody.js";
5
+ import ListItemStyles, { preventProps } from "../ListHelpers/ListItemStyles.js";
6
+ const GridListItem_GridListItem = ({ children, id, value, header, body, leftElement, rightElement, inline, disabled, ...props })=>{
7
+ const headerText = header || value;
8
+ const content = headerText && body ? /*#__PURE__*/ jsx(ItemHeaderBody, {
9
+ header: headerText,
10
+ body: body,
11
+ inline: inline,
12
+ disabled: disabled,
13
+ isGridItem: true
14
+ }) : value;
15
+ return /*#__PURE__*/ jsxs(Item, {
16
+ id: id || value,
17
+ textValue: value,
18
+ isDisabled: disabled,
19
+ ...props,
20
+ children: [
21
+ leftElement || null,
22
+ children || content,
23
+ rightElement && /*#__PURE__*/ jsx("div", {
24
+ style: {
25
+ marginLeft: 'auto'
26
+ },
27
+ children: rightElement
28
+ })
29
+ ]
30
+ });
31
+ };
32
+ const Item = styled(GridListItem, preventProps)(ListItemStyles);
33
+ const ListBoxParts_GridListItem = GridListItem_GridListItem;
34
+ export { ListBoxParts_GridListItem as default };
@@ -0,0 +1,32 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { ListBoxItem } from "react-aria-components";
4
+ import ItemHeaderBody from "../ListHelpers/ItemHeaderBody.js";
5
+ import ListItemStyles, { preventProps } from "../ListHelpers/ListItemStyles.js";
6
+ const ListBoxItem_ListBoxItem = ({ id, value, header, body, leftElement, rightElement, inline, disabled, ...props })=>{
7
+ const headerText = header || value;
8
+ return /*#__PURE__*/ jsxs(Item, {
9
+ id: id || value,
10
+ textValue: value,
11
+ isDisabled: disabled,
12
+ ...props,
13
+ children: [
14
+ leftElement || null,
15
+ headerText && body ? /*#__PURE__*/ jsx(ItemHeaderBody, {
16
+ header: headerText,
17
+ body: body,
18
+ inline: inline,
19
+ disabled: disabled
20
+ }) : value,
21
+ rightElement && /*#__PURE__*/ jsx("div", {
22
+ style: {
23
+ marginLeft: 'auto'
24
+ },
25
+ children: rightElement
26
+ })
27
+ ]
28
+ });
29
+ };
30
+ const Item = styled(ListBoxItem, preventProps)(ListItemStyles);
31
+ const ListBoxParts_ListBoxItem = ListBoxItem_ListBoxItem;
32
+ export { ListBoxParts_ListBoxItem as default };
@@ -0,0 +1,45 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { ListBox } from "react-aria-components";
4
+ import ListSection from "../ListHelpers/ListSection.js";
5
+ import ListStyles, { preventProps } from "../ListHelpers/ListStyles.js";
6
+ import ListBoxItem from "./ListBoxItem.js";
7
+ const ListOptions = ({ options, children, autoWidth, width, before, after, menuBackground, createOptionItem, ...props })=>/*#__PURE__*/ jsxs(ListContainer, {
8
+ autoWidth: autoWidth,
9
+ width: autoWidth ? void 0 : width,
10
+ background: menuBackground,
11
+ children: [
12
+ before,
13
+ /*#__PURE__*/ jsxs(ListBox, {
14
+ shouldFocusWrap: true,
15
+ style: {
16
+ outline: 'none'
17
+ },
18
+ ...props,
19
+ children: [
20
+ createOptionItem,
21
+ options?.map((option)=>{
22
+ if ('options' in option) {
23
+ const section = option;
24
+ return /*#__PURE__*/ jsx(ListSection, {
25
+ id: section.id,
26
+ title: section.title,
27
+ children: section.options.map((item)=>/*#__PURE__*/ jsx(ListBoxItem, {
28
+ ...item
29
+ }, item.id || item.value))
30
+ }, section.id);
31
+ }
32
+ const item = option;
33
+ return /*#__PURE__*/ jsx(ListBoxItem, {
34
+ ...item
35
+ }, item.id || item.value);
36
+ }),
37
+ children
38
+ ]
39
+ }),
40
+ after
41
+ ]
42
+ });
43
+ const ListContainer = styled('div', preventProps)(ListStyles);
44
+ const ListBoxParts_ListOptions = ListOptions;
45
+ export { ListBoxParts_ListOptions as default };
@@ -0,0 +1,14 @@
1
+ import styled from "@emotion/styled";
2
+ import { GridListHeader } from "react-aria-components";
3
+ const ListHeader = styled(GridListHeader)(({ theme })=>({
4
+ backgroundColor: theme.scale0,
5
+ padding: '0 16px',
6
+ color: theme.scale6,
7
+ fontWeight: theme.font.weight.medium,
8
+ pointerEvents: 'none',
9
+ '&:hover': {
10
+ backgroundColor: theme.scale0
11
+ }
12
+ }));
13
+ const ListHelpers_GridListHeader = ListHeader;
14
+ export { ListHelpers_GridListHeader as default };