@ttoss/ui 4.1.16 → 5.0.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/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  **@ttoss/ui** is a library of React low level components for building user interfaces and defining the design system of your application. It is built on top of [Theme UI: The Design Graph Framework](https://theme-ui.com/), so that you'll be able to consult the [Theme UI documentation](https://theme-ui.com/getting-started) to learn more about the design system and the components.
4
4
 
5
+ ## ESM Only
6
+
7
+ This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
8
+
5
9
  ## Installation
6
10
 
7
11
  ```shell
package/dist/esm/index.js CHANGED
@@ -92,7 +92,7 @@ import * as React from "react";
92
92
  import { Button as ButtonUi } from "theme-ui";
93
93
  import { Icon as Icon2 } from "@ttoss/react-icons";
94
94
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
95
- var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
95
+ var Button = React.forwardRef((props, ref) => {
96
96
  const {
97
97
  children,
98
98
  leftIcon,
@@ -151,7 +151,7 @@ import * as React2 from "react";
151
151
  import { Icon as Icon3 } from "@ttoss/react-icons";
152
152
  import { Input as InputUI } from "theme-ui";
153
153
  import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
154
- var Input = /*#__PURE__*/React2.forwardRef(({
154
+ var Input = React2.forwardRef(({
155
155
  leadingIcon,
156
156
  trailingIcon: trailingIconProp,
157
157
  onLeadingIconClick,
@@ -253,7 +253,7 @@ var Label = ({
253
253
  import * as React3 from "react";
254
254
  import { Link as LinkUi } from "theme-ui";
255
255
  import { jsx as jsx6 } from "react/jsx-runtime";
256
- var Link = /*#__PURE__*/React3.forwardRef(({
256
+ var Link = React3.forwardRef(({
257
257
  quiet,
258
258
  className,
259
259
  ...props
@@ -430,7 +430,7 @@ var ValueContainer = ({
430
430
  })]
431
431
  });
432
432
  };
433
- var Select = /*#__PURE__*/React4.forwardRef(({
433
+ var Select = React4.forwardRef(({
434
434
  ...props
435
435
  }, ref) => {
436
436
  const value = props.options?.find(option => {
@@ -478,7 +478,7 @@ import { Radio } from "theme-ui";
478
478
  import * as React5 from "react";
479
479
  import { IconButton as IconButtonUi } from "theme-ui";
480
480
  import { jsx as jsx8 } from "react/jsx-runtime";
481
- var IconButton = /*#__PURE__*/React5.forwardRef((props, ref) => {
481
+ var IconButton = React5.forwardRef((props, ref) => {
482
482
  return /* @__PURE__ */jsx8(IconButtonUi, {
483
483
  type: "button",
484
484
  ...props,
@@ -494,7 +494,7 @@ import { Slider } from "theme-ui";
494
494
  import * as React6 from "react";
495
495
  import { Checkbox as CheckBoxUi } from "theme-ui";
496
496
  import { jsx as jsx9 } from "react/jsx-runtime";
497
- var Checkbox = /*#__PURE__*/React6.forwardRef(({
497
+ var Checkbox = React6.forwardRef(({
498
498
  indeterminate = false,
499
499
  ...rest
500
500
  }, ref) => {
@@ -560,7 +560,7 @@ import * as React8 from "react";
560
560
  import { Icon as Icon6 } from "@ttoss/react-icons";
561
561
  import { Textarea as TextareaUI } from "theme-ui";
562
562
  import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
563
- var Textarea = /*#__PURE__*/React8.forwardRef(({
563
+ var Textarea = React8.forwardRef(({
564
564
  trailingIcon,
565
565
  className,
566
566
  sx,
@@ -605,7 +605,7 @@ Textarea.displayName = "Textarea";
605
605
  import * as React9 from "react";
606
606
  import { Container as ContainerUi } from "theme-ui";
607
607
  import { jsx as jsx12 } from "react/jsx-runtime";
608
- var Container = /*#__PURE__*/React9.forwardRef((props, ref) => {
608
+ var Container = React9.forwardRef((props, ref) => {
609
609
  return /* @__PURE__ */jsx12(ContainerUi, {
610
610
  ref,
611
611
  ...props
@@ -639,7 +639,7 @@ var HelpText = ({
639
639
  import * as React10 from "react";
640
640
  import { Icon as Icon7 } from "@ttoss/react-icons";
641
641
  import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
642
- var CloseButton = /*#__PURE__*/React10.forwardRef(({
642
+ var CloseButton = React10.forwardRef(({
643
643
  label,
644
644
  sx,
645
645
  onlyText,
@@ -682,7 +682,7 @@ import * as React11 from "react";
682
682
  import { Icon as Icon8 } from "@ttoss/react-icons";
683
683
  import { Input as Input2 } from "theme-ui";
684
684
  import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
685
- var InputNumber = /*#__PURE__*/React11.forwardRef(({
685
+ var InputNumber = React11.forwardRef(({
686
686
  sx,
687
687
  value,
688
688
  infoIcon,
@@ -806,7 +806,7 @@ InputNumber.displayName = "InputNumber";
806
806
  // src/components/Stack.tsx
807
807
  import * as React12 from "react";
808
808
  import { jsx as jsx16 } from "react/jsx-runtime";
809
- var Stack = /*#__PURE__*/React12.forwardRef((props, ref) => {
809
+ var Stack = React12.forwardRef((props, ref) => {
810
810
  return /* @__PURE__ */jsx16(Flex, {
811
811
  ref,
812
812
  ...props,
@@ -851,7 +851,7 @@ var useHidePassInput = (defaultValue = true) => {
851
851
 
852
852
  // src/components/InputPassword/InputPassword.tsx
853
853
  import { jsx as jsx17 } from "react/jsx-runtime";
854
- var InputPassword = /*#__PURE__*/React14.forwardRef(({
854
+ var InputPassword = React14.forwardRef(({
855
855
  showPasswordByDefault,
856
856
  ...inputPasswordProps
857
857
  }, ref) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttoss/ui",
3
- "version": "4.1.16",
3
+ "version": "5.0.0",
4
4
  "description": "Primitive layout, typographic, and other components for styling applications.",
5
5
  "author": "ttoss",
6
6
  "contributors": [
@@ -11,10 +11,10 @@
11
11
  "url": "https://github.com/ttoss/ttoss.git",
12
12
  "directory": "packages/ui"
13
13
  },
14
+ "type": "module",
14
15
  "exports": {
15
16
  ".": {
16
17
  "import": "./dist/esm/index.js",
17
- "require": "./dist/index.js",
18
18
  "types": "./dist/index.d.ts"
19
19
  }
20
20
  },
@@ -27,12 +27,12 @@
27
27
  "@theme-ui/match-media": "^0.16.2",
28
28
  "react-select": "^5.8.0",
29
29
  "theme-ui": "^0.16.2",
30
- "@ttoss/theme": "^1.7.13"
30
+ "@ttoss/theme": "^1.7.15"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@emotion/react": "^11",
34
34
  "react": ">=16.8.0",
35
- "@ttoss/react-icons": "^0.3.12"
35
+ "@ttoss/react-icons": "^0.4.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@emotion/react": "^11.11.4",
@@ -42,9 +42,9 @@
42
42
  "jest": "^29.7.0",
43
43
  "react": "^18.3.1",
44
44
  "tsup": "^8.2.4",
45
- "@ttoss/config": "^1.32.8",
46
- "@ttoss/react-icons": "^0.3.12",
47
- "@ttoss/test-utils": "^2.1.12"
45
+ "@ttoss/config": "^1.32.9",
46
+ "@ttoss/test-utils": "^2.1.13",
47
+ "@ttoss/react-icons": "^0.4.0"
48
48
  },
49
49
  "keywords": [
50
50
  "React",
@@ -60,6 +60,6 @@
60
60
  "scripts": {
61
61
  "build": "tsup",
62
62
  "dev": "pnpm --filter @docs/storybook run dev",
63
- "test": "jest"
63
+ "test": "jest --projects tests/unit"
64
64
  }
65
65
  }
package/dist/index.d.mts DELETED
@@ -1,143 +0,0 @@
1
- import * as theme_ui from 'theme-ui';
2
- import { Theme, BadgeProps as BadgeProps$1, ButtonProps as ButtonProps$1, InputProps as InputProps$1, LabelProps as LabelProps$1, LinkProps as LinkProps$1, SxProp, IconButtonProps, CheckboxProps as CheckboxProps$1, TextareaProps as TextareaProps$1, TextProps, FlexProps } from 'theme-ui';
3
- export { BaseStyles, Box, BoxProps, Card, CardProps, ContainerProps, Divider, DividerProps, Flex, FlexProps, Global, Grid, GridProps, Heading, HeadingProps, IconButtonProps, Image, ImageProps, Progress as LinearProgress, ProgressProps as LinearProgressProps, Paragraph, ParagraphProps, Radio, RadioProps, Slider, SliderProps, Spinner, SpinnerProps, SxProp, Text, TextProps, Theme, ThemeUIStyleObject } from 'theme-ui';
4
- export { useBreakpointIndex, useResponsiveValue } from '@theme-ui/match-media';
5
- export { Keyframes, keyframes } from '@emotion/react';
6
- import * as react_jsx_runtime from 'react/jsx-runtime';
7
- import * as React from 'react';
8
- import { IconType } from '@ttoss/react-icons';
9
- import { Props } from 'react-select';
10
-
11
- type ThemeProviderProps = {
12
- children?: React.ReactNode;
13
- theme?: Theme;
14
- /**
15
- * Fonts URLs.
16
- */
17
- fonts?: string[];
18
- };
19
- declare const ThemeProvider: ({ children, theme, fonts, }: ThemeProviderProps) => react_jsx_runtime.JSX.Element;
20
-
21
- declare const useTheme: () => theme_ui.ThemeUIContextValue;
22
-
23
- type BadgeProps = BadgeProps$1 & {
24
- icon?: IconType;
25
- chip?: boolean;
26
- onDelete?: () => void;
27
- };
28
- declare const Badge: ({ icon, children, sx, chip, onDelete, ...props }: BadgeProps) => react_jsx_runtime.JSX.Element;
29
-
30
- type ButtonProps = ButtonProps$1 & {
31
- leftIcon?: IconType;
32
- rightIcon?: IconType;
33
- loading?: boolean;
34
- };
35
- declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
36
-
37
- interface InputProps extends InputProps$1 {
38
- leadingIcon?: IconType;
39
- onLeadingIconClick?: () => void;
40
- trailingIcon?: IconType;
41
- onTrailingIconClick?: () => void;
42
- }
43
- declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
44
-
45
- type LabelProps = LabelProps$1 & {
46
- tooltip?: boolean;
47
- onTooltipClick?: () => void;
48
- };
49
- declare const Label: ({ children, onTooltipClick, tooltip, sx, ...props }: LabelProps) => react_jsx_runtime.JSX.Element;
50
-
51
- type LinkProps = LinkProps$1 & {
52
- quiet?: boolean;
53
- };
54
- declare const Link: React.ForwardRefExoticComponent<Omit<LinkProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
55
-
56
- /**
57
- * We're using React Select component to build ttoss Select.
58
- * More info about React Select: https://react-select.com/home
59
- * ttoss Figma: https://www.figma.com/file/VrB76VkH4hKCDUe9iYhpYu/_Component-%2F-Forms-%2F-Select?type=design&mode=design&t=ZBIeOpqcvQn3yq2t-0
60
- */
61
-
62
- type SelectOptionValue = string | number | boolean;
63
- type SelectOption = {
64
- label: string;
65
- value: SelectOptionValue;
66
- };
67
- type SelectOptions = SelectOption[];
68
- /**
69
- * TODO: remove this when we accept multi select.
70
- */
71
- type IsMulti = false;
72
- type SelectProps = Omit<Props<SelectOption, IsMulti>, 'styles' | 'value' | 'onChange' | 'components'> & SxProp & {
73
- value?: SelectOptionValue;
74
- onChange?: (value: SelectOptionValue | undefined) => void;
75
- disabled?: boolean;
76
- leadingIcon?: IconType;
77
- trailingIcon?: IconType;
78
- };
79
- /**
80
- * https://react-select.com/home
81
- */
82
- declare const Select: React.ForwardRefExoticComponent<Omit<Props<SelectOption, false>, "value" | "onChange" | "styles" | "components"> & SxProp & {
83
- value?: SelectOptionValue;
84
- onChange?: (value: SelectOptionValue | undefined) => void;
85
- disabled?: boolean;
86
- leadingIcon?: IconType;
87
- trailingIcon?: IconType;
88
- } & React.RefAttributes<any>>;
89
-
90
- declare const IconButton: React.ForwardRefExoticComponent<Omit<IconButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
91
-
92
- interface CheckboxProps extends CheckboxProps$1 {
93
- indeterminate?: boolean;
94
- }
95
- declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
96
-
97
- declare const InfiniteLinearProgress: () => react_jsx_runtime.JSX.Element;
98
-
99
- interface TextareaProps extends TextareaProps$1 {
100
- trailingIcon?: IconType;
101
- }
102
- declare const Textarea: React.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
103
-
104
- declare const Container: React.ForwardRefExoticComponent<theme_ui.BoxProps & React.RefAttributes<HTMLDivElement>>;
105
-
106
- type HelpTextProps = Omit<TextProps, 'variant'> & {
107
- disabled?: boolean;
108
- negative?: boolean;
109
- };
110
- declare const HelpText: ({ sx, disabled, negative, ...props }: HelpTextProps) => react_jsx_runtime.JSX.Element;
111
-
112
- type CloseButtonProps = ButtonProps & {
113
- label?: string;
114
- onlyText?: boolean;
115
- };
116
- declare const CloseButton: React.ForwardRefExoticComponent<Omit<CloseButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
117
-
118
- type InputNumberProps = Omit<InputProps$1, 'type' | 'variant' | 'onChange'> & {
119
- onChange: (value: number) => void;
120
- value?: number;
121
- infoIcon?: boolean;
122
- onClickInfoIcon?: () => void;
123
- };
124
- declare const InputNumber: React.ForwardRefExoticComponent<Omit<InputNumberProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
125
-
126
- type StackProps = FlexProps;
127
- /**
128
- * A component that renders its children in a column.
129
- */
130
- declare const Stack: React.ForwardRefExoticComponent<theme_ui.BoxProps & React.RefAttributes<HTMLElement>>;
131
-
132
- type InputPasswordProps = Omit<InputProps, 'trailingIcon' | 'onTrailingIconClick' | 'type'> & {
133
- showPasswordByDefault?: boolean;
134
- };
135
- declare const InputPassword: React.ForwardRefExoticComponent<Omit<InputPasswordProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
136
-
137
- type ActionButtonProps = Omit<ButtonProps, 'rightIcon' | 'leftIcon' | 'variant'> & {
138
- icon: ButtonProps['leftIcon'];
139
- variant?: 'default' | 'accent' | 'quiet';
140
- };
141
- declare const ActionButton: ({ icon, variant, sx, ...props }: ActionButtonProps) => react_jsx_runtime.JSX.Element;
142
-
143
- export { ActionButton, type ActionButtonProps, Badge, type BadgeProps, Button, type ButtonProps, Checkbox, type CheckboxProps, CloseButton, type CloseButtonProps, Container, HelpText, type HelpTextProps, IconButton, InfiniteLinearProgress, Input, InputNumber, type InputNumberProps, InputPassword, type InputPasswordProps, type InputProps, Label, type LabelProps, Link, type LinkProps, Select, type SelectOption, type SelectOptions, type SelectProps, Stack, type StackProps, Textarea, type TextareaProps, ThemeProvider, type ThemeProviderProps, useTheme };
package/dist/index.js DELETED
@@ -1,1017 +0,0 @@
1
- /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
- "use strict";
3
-
4
- var __create = Object.create;
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __export = (target, all) => {
11
- for (var name in all) __defProp(target, name, {
12
- get: all[name],
13
- enumerable: true
14
- });
15
- };
16
- var __copyProps = (to, from, except, desc) => {
17
- if (from && typeof from === "object" || typeof from === "function") {
18
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
- get: () => from[key],
20
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
- });
22
- }
23
- return to;
24
- };
25
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
- // If the importer is in node compatibility mode or this is not an ESM
27
- // file that has been converted to a CommonJS file using a Babel-
28
- // compatible transform (i.e. "__esModule" has not been set), then set
29
- // "default" to the CommonJS "module.exports" for node compatibility.
30
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
31
- value: mod,
32
- enumerable: true
33
- }) : target, mod));
34
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
35
- value: true
36
- }), mod);
37
-
38
- // src/index.ts
39
- var src_exports = {};
40
- __export(src_exports, {
41
- ActionButton: () => ActionButton,
42
- Badge: () => Badge,
43
- BaseStyles: () => import_theme_ui26.BaseStyles,
44
- Box: () => import_theme_ui5.Box,
45
- Button: () => Button,
46
- Card: () => import_theme_ui7.Card,
47
- Checkbox: () => Checkbox,
48
- CloseButton: () => CloseButton,
49
- Container: () => Container,
50
- Divider: () => import_theme_ui8.Divider,
51
- Flex: () => import_theme_ui9.Flex,
52
- Global: () => import_theme_ui26.Global,
53
- Grid: () => import_theme_ui10.Grid,
54
- Heading: () => import_theme_ui11.Heading,
55
- HelpText: () => HelpText,
56
- IconButton: () => IconButton,
57
- Image: () => import_theme_ui12.Image,
58
- InfiniteLinearProgress: () => InfiniteLinearProgress,
59
- Input: () => Input,
60
- InputNumber: () => InputNumber,
61
- InputPassword: () => InputPassword,
62
- Label: () => Label,
63
- LinearProgress: () => import_theme_ui16.Progress,
64
- Link: () => Link,
65
- Paragraph: () => import_theme_ui25.Paragraph,
66
- Radio: () => import_theme_ui18.Radio,
67
- Select: () => Select,
68
- Slider: () => import_theme_ui20.Slider,
69
- Spinner: () => import_theme_ui17.Spinner,
70
- Stack: () => Stack,
71
- Text: () => import_theme_ui3.Text,
72
- Textarea: () => Textarea,
73
- ThemeProvider: () => ThemeProvider,
74
- keyframes: () => import_react2.keyframes,
75
- useBreakpointIndex: () => import_match_media.useBreakpointIndex,
76
- useResponsiveValue: () => import_match_media.useResponsiveValue,
77
- useTheme: () => useTheme
78
- });
79
- module.exports = __toCommonJS(src_exports);
80
- var import_theme_ui26 = require("theme-ui");
81
- var import_match_media = require("@theme-ui/match-media");
82
- var import_react2 = require("@emotion/react");
83
-
84
- // src/theme/ThemeProvider.tsx
85
- var import_Bruttal = require("@ttoss/theme/Bruttal");
86
- var import_react = require("@emotion/react");
87
- var import_theme_ui = require("theme-ui");
88
- var import_jsx_runtime = require("react/jsx-runtime");
89
- var ThemeProvider = ({
90
- children,
91
- theme = import_Bruttal.BruttalTheme,
92
- fonts = import_Bruttal.BruttalFonts
93
- }) => {
94
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
95
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_theme_ui.ThemeUIProvider, {
96
- theme,
97
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.Global, {
98
- styles: import_react.css`
99
- ${fonts.map(url => {
100
- return `@import url('${url}');`;
101
- }).join("\n")}
102
- `
103
- }), children]
104
- })
105
- });
106
- };
107
-
108
- // src/theme/useTheme.ts
109
- var import_theme_ui2 = require("theme-ui");
110
- var useTheme = import_theme_ui2.useThemeUI;
111
-
112
- // src/components/Badge.tsx
113
- var import_theme_ui4 = require("theme-ui");
114
- var import_react_icons = require("@ttoss/react-icons");
115
-
116
- // src/components/Text.tsx
117
- var import_theme_ui3 = require("theme-ui");
118
-
119
- // src/components/Badge.tsx
120
- var import_jsx_runtime2 = require("react/jsx-runtime");
121
- var Badge = ({
122
- icon,
123
- children,
124
- sx,
125
- chip,
126
- onDelete,
127
- ...props
128
- }) => {
129
- return /* @__PURE__ */(0, import_jsx_runtime2.jsxs)(import_theme_ui4.Badge, {
130
- sx: {
131
- display: "flex",
132
- alignItems: "center",
133
- fontFamily: "caption",
134
- fontWeight: "normal",
135
- lineHeight: "base",
136
- fontSize: "sm",
137
- paddingX: "xs",
138
- borderRadius: "informative",
139
- paddingY: "2xs",
140
- gap: "xs",
141
- ...sx
142
- },
143
- ...props,
144
- children: [icon && /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_react_icons.Icon, {
145
- inline: true,
146
- icon
147
- }), children, chip && /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_theme_ui3.Text, {
148
- sx: {
149
- cursor: "pointer",
150
- lineHeight: 0,
151
- color: "currentcolor",
152
- alignSelf: "center"
153
- },
154
- children: /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_react_icons.Icon, {
155
- onClick: onDelete,
156
- inline: true,
157
- icon: "close"
158
- })
159
- })]
160
- });
161
- };
162
-
163
- // src/components/Box.tsx
164
- var import_theme_ui5 = require("theme-ui");
165
-
166
- // src/components/Button.tsx
167
- var React = __toESM(require("react"));
168
- var import_theme_ui6 = require("theme-ui");
169
- var import_react_icons2 = require("@ttoss/react-icons");
170
- var import_jsx_runtime3 = require("react/jsx-runtime");
171
- var Button = React.forwardRef((props, ref) => {
172
- const {
173
- children,
174
- leftIcon,
175
- rightIcon,
176
- loading,
177
- ...restProps
178
- } = props;
179
- return /* @__PURE__ */(0, import_jsx_runtime3.jsxs)(import_theme_ui6.Button, {
180
- type: "button",
181
- ...restProps,
182
- ref,
183
- sx: {
184
- cursor: "pointer",
185
- paddingX: "xl",
186
- paddingY: "lg",
187
- fontFamily: "body",
188
- display: "inline-flex",
189
- alignItems: "center",
190
- gap: "lg",
191
- ...restProps.sx
192
- },
193
- children: [loading && /* @__PURE__ */(0, import_jsx_runtime3.jsx)(import_react_icons2.Icon, {
194
- inline: true,
195
- icon: "three-dots-loading"
196
- }), !loading && leftIcon && /* @__PURE__ */(0, import_jsx_runtime3.jsx)(import_react_icons2.Icon, {
197
- inline: true,
198
- icon: leftIcon
199
- }), children, rightIcon && /* @__PURE__ */(0, import_jsx_runtime3.jsx)(import_react_icons2.Icon, {
200
- inline: true,
201
- icon: rightIcon
202
- })]
203
- });
204
- });
205
- Button.displayName = "Button";
206
-
207
- // src/components/Card.tsx
208
- var import_theme_ui7 = require("theme-ui");
209
-
210
- // src/components/Divider.tsx
211
- var import_theme_ui8 = require("theme-ui");
212
-
213
- // src/components/Flex.tsx
214
- var import_theme_ui9 = require("theme-ui");
215
-
216
- // src/components/Grid.tsx
217
- var import_theme_ui10 = require("theme-ui");
218
-
219
- // src/components/Heading.tsx
220
- var import_theme_ui11 = require("theme-ui");
221
-
222
- // src/components/Image.tsx
223
- var import_theme_ui12 = require("theme-ui");
224
-
225
- // src/components/Input.tsx
226
- var React2 = __toESM(require("react"));
227
- var import_react_icons3 = require("@ttoss/react-icons");
228
- var import_theme_ui13 = require("theme-ui");
229
- var import_jsx_runtime4 = require("react/jsx-runtime");
230
- var Input = React2.forwardRef(({
231
- leadingIcon,
232
- trailingIcon: trailingIconProp,
233
- onLeadingIconClick,
234
- onTrailingIconClick,
235
- className,
236
- sx,
237
- ...inputProps
238
- }, ref) => {
239
- const trailingIcon = inputProps["aria-invalid"] ? "warning-alt" : trailingIconProp;
240
- return /* @__PURE__ */(0, import_jsx_runtime4.jsxs)(import_theme_ui9.Flex, {
241
- className,
242
- sx: {
243
- ...sx,
244
- position: "relative",
245
- padding: 0,
246
- border: "none"
247
- },
248
- children: [leadingIcon && /* @__PURE__ */(0, import_jsx_runtime4.jsx)(import_theme_ui3.Text, {
249
- sx: {
250
- position: "absolute",
251
- alignSelf: "center",
252
- left: "1rem",
253
- cursor: onLeadingIconClick ? "pointer" : "default"
254
- },
255
- onClick: onLeadingIconClick,
256
- variant: "leading-icon",
257
- children: /* @__PURE__ */(0, import_jsx_runtime4.jsx)(import_react_icons3.Icon, {
258
- inline: true,
259
- icon: leadingIcon
260
- })
261
- }), /* @__PURE__ */(0, import_jsx_runtime4.jsx)(import_theme_ui13.Input, {
262
- ref,
263
- sx: {
264
- fontFamily: "body",
265
- paddingY: "lg",
266
- paddingX: "xl",
267
- ...sx,
268
- paddingLeft: leadingIcon ? "3xl" : void 0,
269
- paddingRight: trailingIcon ? "3xl" : void 0,
270
- margin: 0
271
- },
272
- className,
273
- ...inputProps
274
- }), trailingIcon && /* @__PURE__ */(0, import_jsx_runtime4.jsx)(import_theme_ui3.Text, {
275
- sx: {
276
- position: "absolute",
277
- right: "1rem",
278
- alignSelf: "center",
279
- cursor: onTrailingIconClick ? "pointer" : "default"
280
- },
281
- variant: "trailing-icon",
282
- onClick: onTrailingIconClick,
283
- children: /* @__PURE__ */(0, import_jsx_runtime4.jsx)(import_react_icons3.Icon, {
284
- inline: true,
285
- icon: trailingIcon
286
- })
287
- })]
288
- });
289
- });
290
- Input.displayName = "Input";
291
-
292
- // src/components/Label.tsx
293
- var import_react_icons4 = require("@ttoss/react-icons");
294
- var import_theme_ui14 = require("theme-ui");
295
- var import_jsx_runtime5 = require("react/jsx-runtime");
296
- var TOOLTIP_LABEL = "tooltip";
297
- var Label = ({
298
- children,
299
- onTooltipClick,
300
- tooltip,
301
- sx,
302
- ...props
303
- }) => {
304
- return /* @__PURE__ */(0, import_jsx_runtime5.jsxs)(import_theme_ui14.Label, {
305
- sx: {
306
- fontFamily: "caption",
307
- alignItems: "center",
308
- fontSize: "sm",
309
- lineHeight: "base",
310
- ...sx
311
- },
312
- ...props,
313
- children: [children, tooltip && /* @__PURE__ */(0, import_jsx_runtime5.jsx)(import_theme_ui3.Text, {
314
- sx: {
315
- color: "currentcolor",
316
- cursor: onTooltipClick ? "pointer" : void 0
317
- },
318
- onClick: onTooltipClick,
319
- "aria-label": TOOLTIP_LABEL,
320
- children: /* @__PURE__ */(0, import_jsx_runtime5.jsx)(import_react_icons4.Icon, {
321
- inline: true,
322
- icon: "info"
323
- })
324
- })]
325
- });
326
- };
327
-
328
- // src/components/Link.tsx
329
- var React3 = __toESM(require("react"));
330
- var import_theme_ui15 = require("theme-ui");
331
- var import_jsx_runtime6 = require("react/jsx-runtime");
332
- var Link = React3.forwardRef(({
333
- quiet,
334
- className,
335
- ...props
336
- }, ref) => {
337
- return /* @__PURE__ */(0, import_jsx_runtime6.jsx)(import_theme_ui15.Link, {
338
- className: `${quiet ? "quiet" : ""} ${className ?? ""}`,
339
- ...props,
340
- ref
341
- });
342
- });
343
- Link.displayName = "Link";
344
-
345
- // src/components/LinearProgress.tsx
346
- var import_theme_ui16 = require("theme-ui");
347
-
348
- // src/components/Select.tsx
349
- var React4 = __toESM(require("react"));
350
- var import_react_icons5 = require("@ttoss/react-icons");
351
- var import_react_select = __toESM(require("react-select"));
352
- var import_jsx_runtime7 = require("react/jsx-runtime");
353
- var Control = props => {
354
- const isDisabled = props.selectProps.isDisabled;
355
- const hasError = props.selectProps["aria-invalid"] === "true";
356
- const border = (() => {
357
- if (isDisabled) {
358
- return "muted";
359
- }
360
- if (hasError) {
361
- return "danger";
362
- }
363
- return "interaction";
364
- })();
365
- const backgroundColor = (() => {
366
- if (isDisabled) {
367
- return "muted";
368
- }
369
- return "surface";
370
- })();
371
- return /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui5.Box, {
372
- sx: {
373
- ".react-select__control": {
374
- border,
375
- backgroundColor,
376
- paddingX: "xl",
377
- paddingY: "lg",
378
- borderRadius: "action"
379
- }
380
- },
381
- children: /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_react_select.components.Control, {
382
- ...props
383
- })
384
- });
385
- };
386
- var DropdownIndicator = props => {
387
- const isDisabled = props.selectProps.isDisabled;
388
- const color = (() => {
389
- if (isDisabled) {
390
- return "onMuted";
391
- }
392
- return "text";
393
- })();
394
- return /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui3.Text, {
395
- sx: {
396
- fontSize: "base",
397
- color,
398
- alignSelf: "center",
399
- display: "flex",
400
- alignItems: "center"
401
- },
402
- children: /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_react_icons5.Icon, {
403
- icon: "picker-down"
404
- })
405
- });
406
- };
407
- var IndicatorsContainer = ({
408
- children
409
- }) => {
410
- return /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui5.Box, {
411
- sx: {
412
- marginLeft: "lg",
413
- border: "none"
414
- },
415
- children
416
- });
417
- };
418
- var Placeholder = ({
419
- children
420
- }) => {
421
- return /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui3.Text, {
422
- sx: {
423
- color: "onMuted",
424
- alignSelf: "center"
425
- },
426
- children
427
- });
428
- };
429
- var SelectContainer = ({
430
- children,
431
- ...props
432
- }) => {
433
- const {
434
- sx,
435
- css: css2
436
- } = props.selectProps;
437
- return (
438
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
439
- /* @__PURE__ */
440
- (0, import_jsx_runtime7.jsx)(import_theme_ui5.Box, {
441
- sx,
442
- css: css2,
443
- children: /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_react_select.components.SelectContainer, {
444
- ...props,
445
- children
446
- })
447
- })
448
- );
449
- };
450
- var ValueContainer = ({
451
- children,
452
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
453
- ...props
454
- }) => {
455
- const {
456
- leadingIcon,
457
- trailingIcon,
458
- isSearchable
459
- } = props.selectProps;
460
- const hasError = props.selectProps["aria-invalid"] === "true";
461
- const trailingIconColor = (() => {
462
- if (hasError) {
463
- return "danger";
464
- }
465
- return "text";
466
- })();
467
- const finalLeadingIcon = (() => {
468
- if (!isSearchable) {
469
- return leadingIcon;
470
- }
471
- return leadingIcon || "search";
472
- })();
473
- return /* @__PURE__ */(0, import_jsx_runtime7.jsxs)(import_theme_ui9.Flex, {
474
- sx: {
475
- gap: "lg",
476
- flex: 1
477
- },
478
- children: [finalLeadingIcon && /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui3.Text, {
479
- sx: {
480
- alignSelf: "center",
481
- pointerEvents: "none",
482
- lineHeight: 0,
483
- fontSize: "base"
484
- },
485
- children: /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_react_icons5.Icon, {
486
- icon: finalLeadingIcon
487
- })
488
- }), /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui9.Flex, {
489
- sx: {
490
- flex: 1,
491
- alignItems: "center"
492
- },
493
- children
494
- }), (trailingIcon || hasError) && /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_theme_ui3.Text, {
495
- className: hasError ? "error-icon" : "",
496
- sx: {
497
- alignSelf: "center",
498
- pointerEvents: "none",
499
- lineHeight: 0,
500
- fontSize: "base",
501
- color: trailingIconColor
502
- },
503
- children: /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_react_icons5.Icon, {
504
- icon: hasError ? "warning-alt" : trailingIcon
505
- })
506
- })]
507
- });
508
- };
509
- var Select = React4.forwardRef(({
510
- ...props
511
- }, ref) => {
512
- const value = props.options?.find(option => {
513
- if ("value" in option) {
514
- return option.value === props.value;
515
- }
516
- return false;
517
- });
518
- return /* @__PURE__ */(0, import_jsx_runtime7.jsx)(import_react_select.default, {
519
- ref,
520
- components: {
521
- Control,
522
- DropdownIndicator,
523
- IndicatorsContainer,
524
- Placeholder,
525
- SelectContainer,
526
- ValueContainer
527
- },
528
- isDisabled: props.disabled,
529
- ...props,
530
- value,
531
- onChange: value2 => {
532
- props.onChange?.(value2?.value);
533
- },
534
- styles: {
535
- input: baseStyles => {
536
- return {
537
- ...baseStyles,
538
- position: "absolute"
539
- };
540
- }
541
- },
542
- classNamePrefix: "react-select"
543
- });
544
- });
545
- Select.displayName = "Select";
546
-
547
- // src/components/Spinner.tsx
548
- var import_theme_ui17 = require("theme-ui");
549
-
550
- // src/components/Radio.tsx
551
- var import_theme_ui18 = require("theme-ui");
552
-
553
- // src/components/IconButton.tsx
554
- var React5 = __toESM(require("react"));
555
- var import_theme_ui19 = require("theme-ui");
556
- var import_jsx_runtime8 = require("react/jsx-runtime");
557
- var IconButton = React5.forwardRef((props, ref) => {
558
- return /* @__PURE__ */(0, import_jsx_runtime8.jsx)(import_theme_ui19.IconButton, {
559
- type: "button",
560
- ...props,
561
- ref
562
- });
563
- });
564
- IconButton.displayName = "IconButton";
565
-
566
- // src/components/Slider.tsx
567
- var import_theme_ui20 = require("theme-ui");
568
-
569
- // src/components/Checkbox.tsx
570
- var React6 = __toESM(require("react"));
571
- var import_theme_ui21 = require("theme-ui");
572
- var import_jsx_runtime9 = require("react/jsx-runtime");
573
- var Checkbox = React6.forwardRef(({
574
- indeterminate = false,
575
- ...rest
576
- }, ref) => {
577
- const innerRef = React6.useRef(null);
578
- React6.useImperativeHandle(ref, () => {
579
- return innerRef.current;
580
- });
581
- React6.useEffect(() => {
582
- if (innerRef.current) {
583
- innerRef.current.indeterminate = indeterminate;
584
- }
585
- }, [indeterminate]);
586
- if (indeterminate) {
587
- return /* @__PURE__ */(0, import_jsx_runtime9.jsx)("input", {
588
- type: "checkbox",
589
- ref: innerRef,
590
- ...rest
591
- });
592
- }
593
- return /* @__PURE__ */(0, import_jsx_runtime9.jsx)(import_theme_ui21.Checkbox, {
594
- ref: innerRef,
595
- ...rest
596
- });
597
- });
598
- Checkbox.displayName = "Checkbox";
599
-
600
- // src/components/InfiniteLinearProgress.tsx
601
- var React7 = __toESM(require("react"));
602
- var import_jsx_runtime10 = require("react/jsx-runtime");
603
- var MAX_PROGRESS = 100;
604
- var InfiniteLinearProgress = () => {
605
- const [progress, setProgress] = React7.useState(0);
606
- React7.useEffect(() => {
607
- const timer = setInterval(() => {
608
- setProgress(oldProgress => {
609
- if (oldProgress === MAX_PROGRESS) {
610
- return 0;
611
- }
612
- let diff = 0;
613
- if (oldProgress > 0.97 * MAX_PROGRESS) {
614
- diff -= 0.75 * MAX_PROGRESS;
615
- } else if (oldProgress > 0.6 * MAX_PROGRESS) {
616
- diff = Math.random() * (MAX_PROGRESS - oldProgress) * 0.1;
617
- } else {
618
- diff = Math.random() * (MAX_PROGRESS * 0.02);
619
- }
620
- return Math.min(oldProgress + diff, MAX_PROGRESS);
621
- });
622
- }, 100);
623
- return () => {
624
- clearInterval(timer);
625
- };
626
- }, []);
627
- return /* @__PURE__ */(0, import_jsx_runtime10.jsx)(import_theme_ui16.Progress, {
628
- max: MAX_PROGRESS,
629
- value: progress,
630
- role: "progressbar"
631
- });
632
- };
633
-
634
- // src/components/Textarea.tsx
635
- var React8 = __toESM(require("react"));
636
- var import_react_icons6 = require("@ttoss/react-icons");
637
- var import_theme_ui22 = require("theme-ui");
638
- var import_jsx_runtime11 = require("react/jsx-runtime");
639
- var Textarea = React8.forwardRef(({
640
- trailingIcon,
641
- className,
642
- sx,
643
- ...textareaProps
644
- }, ref) => {
645
- return /* @__PURE__ */(0, import_jsx_runtime11.jsxs)(import_theme_ui9.Flex, {
646
- className,
647
- sx: {
648
- ...sx,
649
- position: "relative",
650
- padding: 0,
651
- border: "none"
652
- },
653
- children: [/* @__PURE__ */(0, import_jsx_runtime11.jsx)(import_theme_ui22.Textarea, {
654
- ref,
655
- sx: {
656
- fontFamily: "body",
657
- paddingY: "lg",
658
- paddingX: "xl",
659
- ...sx,
660
- paddingRight: trailingIcon ? "3xl" : void 0,
661
- margin: 0
662
- },
663
- className,
664
- ...textareaProps
665
- }), trailingIcon && /* @__PURE__ */(0, import_jsx_runtime11.jsx)(import_theme_ui3.Text, {
666
- sx: {
667
- position: "absolute",
668
- right: "1.25rem",
669
- top: "0.75rem"
670
- },
671
- children: /* @__PURE__ */(0, import_jsx_runtime11.jsx)(import_react_icons6.Icon, {
672
- inline: true,
673
- icon: trailingIcon
674
- })
675
- })]
676
- });
677
- });
678
- Textarea.displayName = "Textarea";
679
-
680
- // src/components/Container.tsx
681
- var React9 = __toESM(require("react"));
682
- var import_theme_ui23 = require("theme-ui");
683
- var import_jsx_runtime12 = require("react/jsx-runtime");
684
- var Container = React9.forwardRef((props, ref) => {
685
- return /* @__PURE__ */(0, import_jsx_runtime12.jsx)(import_theme_ui23.Container, {
686
- ref,
687
- ...props
688
- });
689
- });
690
- Container.displayName = "Container";
691
-
692
- // src/components/HelpText.tsx
693
- var import_jsx_runtime13 = require("react/jsx-runtime");
694
- var HelpText = ({
695
- sx,
696
- disabled,
697
- negative,
698
- ...props
699
- }) => {
700
- const variant = ["text.help", negative ? "negative" : void 0].filter(Boolean).join(".");
701
- return /* @__PURE__ */(0, import_jsx_runtime13.jsx)(import_theme_ui3.Text, {
702
- variant,
703
- sx: {
704
- fontSize: "sm",
705
- fontFamily: "caption",
706
- lineHeight: "base",
707
- ...sx
708
- },
709
- "aria-disabled": disabled ? "true" : void 0,
710
- ...props
711
- });
712
- };
713
-
714
- // src/components/CloseButton.tsx
715
- var React10 = __toESM(require("react"));
716
- var import_react_icons7 = require("@ttoss/react-icons");
717
- var import_jsx_runtime14 = require("react/jsx-runtime");
718
- var CloseButton = React10.forwardRef(({
719
- label,
720
- sx,
721
- onlyText,
722
- ...props
723
- }, ref) => {
724
- if (onlyText && !label) {
725
- return null;
726
- }
727
- return /* @__PURE__ */(0, import_jsx_runtime14.jsxs)(Button, {
728
- variant: "buttons.closeButton",
729
- type: "button",
730
- "aria-label": label,
731
- sx: {
732
- fontFamily: "caption",
733
- fontSize: "xs",
734
- display: "inline-flex",
735
- alignItems: "center",
736
- cursor: "pointer",
737
- lineHeight: "normal",
738
- gap: "sm",
739
- padding: "sm",
740
- width: "fit-content",
741
- transition: "all 0.2s",
742
- "& > iconify-icon": {
743
- fontSize: "base"
744
- },
745
- ...sx
746
- },
747
- ...props,
748
- ref,
749
- children: [label, !onlyText && /* @__PURE__ */(0, import_jsx_runtime14.jsx)(import_react_icons7.Icon, {
750
- icon: "close"
751
- })]
752
- });
753
- });
754
- CloseButton.displayName = "CloseButton";
755
-
756
- // src/components/InputNumber.tsx
757
- var React11 = __toESM(require("react"));
758
- var import_react_icons8 = require("@ttoss/react-icons");
759
- var import_theme_ui24 = require("theme-ui");
760
- var import_jsx_runtime15 = require("react/jsx-runtime");
761
- var InputNumber = React11.forwardRef(({
762
- sx,
763
- value,
764
- infoIcon,
765
- onChange,
766
- onClickInfoIcon,
767
- ...inputProps
768
- }, ref) => {
769
- const sxProps = React11.useMemo(() => {
770
- const size = String(typeof value === "undefined" ? 0 : value).length;
771
- if (inputProps["aria-invalid"] === "true") {
772
- return {
773
- width: `calc(139px + ${size > 1 ? size * 10 : 0}px)`,
774
- textAlign: "left",
775
- "&[type=number]::-webkit-inner-spin-button, &[type=number]::-webkit-outer-spin-button": {
776
- WebkitAppearance: "none",
777
- margin: 0
778
- },
779
- ...sx,
780
- paddingLeft: "3xl",
781
- paddingRight: "2xl",
782
- margin: 0
783
- };
784
- }
785
- return {
786
- width: `calc(108px + ${size > 1 ? size * 10 : 0}px)`,
787
- textAlign: "center",
788
- "&[type=number]::-webkit-inner-spin-button, &[type=number]::-webkit-outer-spin-button": {
789
- WebkitAppearance: "none",
790
- margin: 0
791
- },
792
- fontFamily: "body",
793
- paddingY: "lg",
794
- paddingX: "xl",
795
- ...sx,
796
- paddingLeft: "2xl",
797
- paddingRight: "2xl",
798
- margin: 0
799
- };
800
- }, [inputProps, value, sx]);
801
- const handleChangeUp = () => {
802
- if (inputProps.disabled) {
803
- return;
804
- }
805
- if (typeof value !== "number") {
806
- onChange(-1);
807
- return;
808
- }
809
- onChange(value - 1);
810
- };
811
- const handleChangeDown = () => {
812
- if (inputProps.disabled) {
813
- return;
814
- }
815
- if (typeof value !== "number") {
816
- onChange(1);
817
- return;
818
- }
819
- onChange(value + 1);
820
- };
821
- return /* @__PURE__ */(0, import_jsx_runtime15.jsxs)(import_theme_ui9.Flex, {
822
- sx: {
823
- width: "fit-content",
824
- ...sx,
825
- position: "relative",
826
- padding: 0,
827
- border: "none"
828
- },
829
- ref,
830
- "aria-invalid": inputProps["aria-invalid"],
831
- children: [/* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_theme_ui24.Input, {
832
- ref,
833
- variant: "forms.inputNumber",
834
- sx: sxProps,
835
- type: "number",
836
- onChange: e => {
837
- onChange(Number(e.target.value));
838
- },
839
- value,
840
- ...inputProps
841
- }), /* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_theme_ui3.Text, {
842
- sx: {
843
- position: "absolute",
844
- alignSelf: "center",
845
- left: "1rem",
846
- zIndex: 1,
847
- cursor: "pointer"
848
- },
849
- onClick: handleChangeUp,
850
- children: /* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_react_icons8.Icon, {
851
- icon: "picker-down"
852
- })
853
- }), infoIcon && /* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_theme_ui3.Text, {
854
- sx: {
855
- position: "absolute",
856
- alignSelf: "center",
857
- right: "2.5rem",
858
- zIndex: 1,
859
- cursor: onClickInfoIcon ? "pointer" : "default"
860
- },
861
- onClick: onClickInfoIcon,
862
- children: /* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_react_icons8.Icon, {
863
- icon: "info"
864
- })
865
- }), /* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_theme_ui3.Text, {
866
- sx: {
867
- position: "absolute",
868
- alignSelf: "center",
869
- right: "1rem",
870
- zIndex: 1,
871
- cursor: "pointer"
872
- },
873
- onClick: handleChangeDown,
874
- children: /* @__PURE__ */(0, import_jsx_runtime15.jsx)(import_react_icons8.Icon, {
875
- icon: "picker-up"
876
- })
877
- })]
878
- });
879
- });
880
- InputNumber.displayName = "InputNumber";
881
-
882
- // src/components/Stack.tsx
883
- var React12 = __toESM(require("react"));
884
- var import_jsx_runtime16 = require("react/jsx-runtime");
885
- var Stack = React12.forwardRef((props, ref) => {
886
- return /* @__PURE__ */(0, import_jsx_runtime16.jsx)(import_theme_ui9.Flex, {
887
- ref,
888
- ...props,
889
- sx: {
890
- flexDirection: "column",
891
- ...props.sx
892
- }
893
- });
894
- });
895
- Stack.displayName = "Stack";
896
-
897
- // src/components/Paragraph.tsx
898
- var import_theme_ui25 = require("theme-ui");
899
-
900
- // src/components/InputPassword/InputPassword.tsx
901
- var React14 = __toESM(require("react"));
902
-
903
- // src/components/InputPassword/useHidePassInput.ts
904
- var React13 = __toESM(require("react"));
905
- var useHidePassInput = (defaultValue = true) => {
906
- const [hidePass, setHidePass] = React13.useState(Boolean(defaultValue));
907
- const {
908
- icon,
909
- inputType
910
- } = React13.useMemo(() => {
911
- return {
912
- icon: hidePass ? "view-off" : "view-on",
913
- inputType: hidePass ? "password" : "text"
914
- };
915
- }, [hidePass]);
916
- const handleClick = () => {
917
- setHidePass(prev => {
918
- return !prev;
919
- });
920
- };
921
- return {
922
- handleClick,
923
- icon,
924
- inputType
925
- };
926
- };
927
-
928
- // src/components/InputPassword/InputPassword.tsx
929
- var import_jsx_runtime17 = require("react/jsx-runtime");
930
- var InputPassword = React14.forwardRef(({
931
- showPasswordByDefault,
932
- ...inputPasswordProps
933
- }, ref) => {
934
- const {
935
- handleClick,
936
- icon,
937
- inputType
938
- } = useHidePassInput(!showPasswordByDefault);
939
- return /* @__PURE__ */(0, import_jsx_runtime17.jsx)(Input, {
940
- ref,
941
- ...inputPasswordProps,
942
- trailingIcon: icon,
943
- onTrailingIconClick: handleClick,
944
- type: inputType
945
- });
946
- });
947
- InputPassword.displayName = "InputPassword";
948
-
949
- // src/components/ActionButton.tsx
950
- var import_jsx_runtime18 = require("react/jsx-runtime");
951
- var ActionButton = ({
952
- icon,
953
- variant = "default",
954
- sx,
955
- ...props
956
- }) => {
957
- return /* @__PURE__ */(0, import_jsx_runtime18.jsx)(Button, {
958
- variant: `buttons.actionButton.${variant}`,
959
- leftIcon: icon,
960
- sx: {
961
- padding: "sm",
962
- gap: "xs",
963
- fontFamily: "caption",
964
- borderRadius: "action",
965
- outlineColor: "transparent",
966
- ":disabled": props.disabled ? {
967
- backgroundColor: "muted",
968
- color: "onMuted",
969
- cursor: "not-allowed",
970
- border: "muted",
971
- borderColor: "onMuted"
972
- } : void 0,
973
- ...sx
974
- },
975
- ...props
976
- });
977
- };
978
- // Annotate the CommonJS export names for ESM import in node:
979
- 0 && (module.exports = {
980
- ActionButton,
981
- Badge,
982
- BaseStyles,
983
- Box,
984
- Button,
985
- Card,
986
- Checkbox,
987
- CloseButton,
988
- Container,
989
- Divider,
990
- Flex,
991
- Global,
992
- Grid,
993
- Heading,
994
- HelpText,
995
- IconButton,
996
- Image,
997
- InfiniteLinearProgress,
998
- Input,
999
- InputNumber,
1000
- InputPassword,
1001
- Label,
1002
- LinearProgress,
1003
- Link,
1004
- Paragraph,
1005
- Radio,
1006
- Select,
1007
- Slider,
1008
- Spinner,
1009
- Stack,
1010
- Text,
1011
- Textarea,
1012
- ThemeProvider,
1013
- keyframes,
1014
- useBreakpointIndex,
1015
- useResponsiveValue,
1016
- useTheme
1017
- });