@bitrise/bitkit-v2 0.3.276 → 0.3.278

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 (37) hide show
  1. package/AGENTS.md +6 -0
  2. package/dist/components/BitkitSkeletonGroup/BitkitSkeletonGroup.d.ts +15 -0
  3. package/dist/components/BitkitSkeletonGroup/BitkitSkeletonGroup.js +46 -0
  4. package/dist/components/BitkitSkeletonGroup/BitkitSkeletonGroup.js.map +1 -0
  5. package/dist/components/BitkitTextInput/BitkitTextInput.d.ts +8 -0
  6. package/dist/components/BitkitTextInput/BitkitTextInput.js +66 -18
  7. package/dist/components/BitkitTextInput/BitkitTextInput.js.map +1 -1
  8. package/dist/components/index.d.ts +1 -0
  9. package/dist/main.js +2 -1
  10. package/dist/theme/common/InputAndTextarea.common.d.ts +55 -9
  11. package/dist/theme/common/InputAndTextarea.common.js +28 -15
  12. package/dist/theme/common/InputAndTextarea.common.js.map +1 -1
  13. package/dist/theme/common/skeletonShimmer.d.ts +1 -0
  14. package/dist/theme/common/skeletonShimmer.js +17 -0
  15. package/dist/theme/common/skeletonShimmer.js.map +1 -0
  16. package/dist/theme/recipes/InputAddon.recipe.d.ts +25 -0
  17. package/dist/theme/recipes/InputAddon.recipe.js +54 -0
  18. package/dist/theme/recipes/InputAddon.recipe.js.map +1 -0
  19. package/dist/theme/recipes/Skeleton.recipe.d.ts +5 -5
  20. package/dist/theme/recipes/Skeleton.recipe.js +6 -9
  21. package/dist/theme/recipes/Skeleton.recipe.js.map +1 -1
  22. package/dist/theme/recipes/index.d.ts +29 -5
  23. package/dist/theme/recipes/index.js +2 -0
  24. package/dist/theme/recipes/index.js.map +1 -1
  25. package/dist/theme/semantic-tokens/index.d.ts +1 -1
  26. package/dist/theme/semantic-tokens/semanticColors.d.ts +1 -1
  27. package/dist/theme/semantic-tokens/semanticColors.js +1 -1
  28. package/dist/theme/semantic-tokens/semanticColors.js.map +1 -1
  29. package/dist/theme/slot-recipes/TextInput.recipe.d.ts +25 -0
  30. package/dist/theme/slot-recipes/TextInput.recipe.js +78 -0
  31. package/dist/theme/slot-recipes/TextInput.recipe.js.map +1 -0
  32. package/dist/theme/slot-recipes/index.d.ts +24 -0
  33. package/dist/theme/slot-recipes/index.js +2 -0
  34. package/dist/theme/slot-recipes/index.js.map +1 -1
  35. package/dist/theme/tokens/keyframes.js +4 -0
  36. package/dist/theme/tokens/keyframes.js.map +1 -1
  37. package/package.json +1 -1
package/AGENTS.md CHANGED
@@ -113,6 +113,12 @@ Bitkit components use consistent prop names across the library:
113
113
  <BitkitActionMenu.Item href="https://example.com" isExternal value="docs">Open docs</BitkitActionMenu.Item>
114
114
  ```
115
115
  - **Form components are flat** — `BitkitTextInput`, `BitkitSelect`, `BitkitCombobox`, etc. expose `label`, `errorText`, `helperText`, etc. directly as props. No need to wrap in a separate field component.
116
+ - **`BitkitTextInput` in-field slots** — all four slots take a `ReactNode`, not just icons/strings: `startElement` / `endElement` render inside the field (an icon, badge, text, or an interactive control like a reveal/clear button), and `startAddon` / `endAddon` render as a bordered, attached box outside the field (a text label like `$` / `USD`, or a component such as a `select` / button). These match the Figma slot names. The validation status icon (error/warning) is added automatically and sits left of `endElement`. For a component addon that brings its own styling, pass `startAddonProps={{ unstyled: true }}` (or `endAddonProps`) to drop the default grey box:
117
+ ```tsx
118
+ <BitkitTextInput startElement={<IconSearch />} endElement={<BitkitBadge>New</BitkitBadge>} />
119
+ <BitkitTextInput startAddon="$" endAddon="USD" />
120
+ <BitkitTextInput startAddon={<BitkitButton variant="secondary">USD</BitkitButton>} startAddonProps={{ unstyled: true }} />
121
+ ```
116
122
  - **Three dialog components, one shell** — pick by intent, never reach for low-level dialog primitives (there are none exported):
117
123
  - `BitkitDialog` — header (title + close) + body (`children`) + footer. The body is the dialog's `children`. The footer is two slot props: `footerButtons` (action buttons, auto-wrapped in the standard right-aligned row — no manual wrapper) and `footerContent` (arbitrary content rendered raw, e.g. an inline `BitkitAlert`). Both can be combined (content first, then buttons); omit both for a passive dialog with no footer.
118
124
  - `BitkitFormDialog` — same API as `BitkitDialog`, but the whole content is a `<form>`, so a `type="submit"` button in `footerButtons` submits natively. Accepts form props (`onSubmit`, `method`, …).
@@ -0,0 +1,15 @@
1
+ import { BoxProps } from '@chakra-ui/react/box';
2
+ export interface BitkitSkeletonGroupProps extends BoxProps {
3
+ loading?: boolean;
4
+ }
5
+ /**
6
+ * Skeletons a group of shapes under a single, unified shimmer sweep. Each direct child becomes a
7
+ * grey block (its size and the gaps between children preserved) and one `::after` highlight travels
8
+ * across the whole group. Use it as the layout container for the shapes, e.g.
9
+ * `<BitkitSkeletonGroup display="flex" flexDirection="column" gap="8"><Box h="24" />…</BitkitSkeletonGroup>`.
10
+ *
11
+ * Prefer this over several standalone `<Skeleton>`s when the shapes should read as one loading block:
12
+ * separate skeletons each animate within their own bounds, so the sweep isn't continuous across them.
13
+ */
14
+ declare const BitkitSkeletonGroup: import('react').ForwardRefExoticComponent<BitkitSkeletonGroupProps & import('react').RefAttributes<HTMLDivElement>>;
15
+ export default BitkitSkeletonGroup;
@@ -0,0 +1,46 @@
1
+ import { skeletonShimmerAfter } from "../../theme/common/skeletonShimmer.js";
2
+ import { Box } from "@chakra-ui/react/box";
3
+ import { forwardRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region lib/components/BitkitSkeletonGroup/BitkitSkeletonGroup.tsx
6
+ /**
7
+ * Skeletons a group of shapes under a single, unified shimmer sweep. Each direct child becomes a
8
+ * grey block (its size and the gaps between children preserved) and one `::after` highlight travels
9
+ * across the whole group. Use it as the layout container for the shapes, e.g.
10
+ * `<BitkitSkeletonGroup display="flex" flexDirection="column" gap="8"><Box h="24" />…</BitkitSkeletonGroup>`.
11
+ *
12
+ * Prefer this over several standalone `<Skeleton>`s when the shapes should read as one loading block:
13
+ * separate skeletons each animate within their own bounds, so the sweep isn't continuous across them.
14
+ */
15
+ var BitkitSkeletonGroup = forwardRef(({ children, loading = true, ...rest }, ref) => {
16
+ if (!loading) return /* @__PURE__ */ jsx(Box, {
17
+ ref,
18
+ ...rest,
19
+ children
20
+ });
21
+ return /* @__PURE__ */ jsx(Box, {
22
+ ref,
23
+ overflow: "hidden",
24
+ position: "relative",
25
+ css: {
26
+ "& > *": {
27
+ backgroundClip: "padding-box",
28
+ backgroundColor: "utilities/skeleton",
29
+ borderColor: "transparent",
30
+ color: "transparent",
31
+ cursor: "default",
32
+ pointerEvents: "none",
33
+ userSelect: "none"
34
+ },
35
+ "& > * *": { visibility: "hidden" },
36
+ "&::after": skeletonShimmerAfter
37
+ },
38
+ ...rest,
39
+ children
40
+ });
41
+ });
42
+ BitkitSkeletonGroup.displayName = "BitkitSkeletonGroup";
43
+ //#endregion
44
+ export { BitkitSkeletonGroup as default };
45
+
46
+ //# sourceMappingURL=BitkitSkeletonGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitkitSkeletonGroup.js","names":[],"sources":["../../../lib/components/BitkitSkeletonGroup/BitkitSkeletonGroup.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { forwardRef } from 'react';\n\nimport { skeletonShimmerAfter } from '../../theme/common/skeletonShimmer';\n\nexport interface BitkitSkeletonGroupProps extends BoxProps {\n loading?: boolean;\n}\n\n/**\n * Skeletons a group of shapes under a single, unified shimmer sweep. Each direct child becomes a\n * grey block (its size and the gaps between children preserved) and one `::after` highlight travels\n * across the whole group. Use it as the layout container for the shapes, e.g.\n * `<BitkitSkeletonGroup display=\"flex\" flexDirection=\"column\" gap=\"8\"><Box h=\"24\" />…</BitkitSkeletonGroup>`.\n *\n * Prefer this over several standalone `<Skeleton>`s when the shapes should read as one loading block:\n * separate skeletons each animate within their own bounds, so the sweep isn't continuous across them.\n */\nconst BitkitSkeletonGroup = forwardRef<HTMLDivElement, BitkitSkeletonGroupProps>(\n ({ children, loading = true, ...rest }, ref) => {\n if (!loading) {\n return (\n <Box ref={ref} {...rest}>\n {children}\n </Box>\n );\n }\n\n return (\n <Box\n ref={ref}\n overflow=\"hidden\"\n position=\"relative\"\n css={{\n // Direct children are the grey shapes; their own content is hidden. Mirrors the single-shape\n // Skeleton recipe (bg + transparent border + padding-box clip) so an outlined child doesn't\n // keep its border through the skeleton.\n '& > *': {\n backgroundClip: 'padding-box',\n backgroundColor: 'utilities/skeleton',\n borderColor: 'transparent',\n color: 'transparent',\n cursor: 'default',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n '& > * *': {\n visibility: 'hidden',\n },\n '&::after': skeletonShimmerAfter,\n }}\n {...rest}\n >\n {children}\n </Box>\n );\n },\n);\n\nBitkitSkeletonGroup.displayName = 'BitkitSkeletonGroup';\n\nexport default BitkitSkeletonGroup;\n"],"mappings":";;;;;;;;;;;;;;AAkBA,IAAM,sBAAsB,YACzB,EAAE,UAAU,UAAU,MAAM,GAAG,QAAQ,QAAQ;CAC9C,IAAI,CAAC,SACH,OACE,oBAAC,KAAD;EAAU;EAAK,GAAI;EAChB;CACE,CAAA;CAIT,OACE,oBAAC,KAAD;EACO;EACL,UAAS;EACT,UAAS;EACT,KAAK;GAIH,SAAS;IACP,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,OAAO;IACP,QAAQ;IACR,eAAe;IACf,YAAY;GACd;GACA,WAAW,EACT,YAAY,SACd;GACA,YAAY;EACd;EACA,GAAI;EAEH;CACE,CAAA;AAET,CACF;AAEA,oBAAoB,cAAc"}
@@ -1,11 +1,19 @@
1
1
  import { InputProps } from '@chakra-ui/react/input';
2
+ import { InputAddonProps } from '@chakra-ui/react/input-addon';
3
+ import { ReactNode } from 'react';
2
4
  import { BitkitFieldProps } from '../BitkitField/BitkitField';
3
5
  export interface BitkitTextInputProps extends Omit<BitkitFieldProps, 'children' | 'state'> {
4
6
  counter?: boolean;
7
+ endAddon?: ReactNode;
8
+ endAddonProps?: InputAddonProps;
9
+ endElement?: ReactNode;
5
10
  inputProps?: InputProps;
6
11
  maxLength?: HTMLInputElement['maxLength'];
7
12
  placeholder?: string;
8
13
  size?: 'md' | 'lg';
14
+ startAddon?: ReactNode;
15
+ startAddonProps?: InputAddonProps;
16
+ startElement?: ReactNode;
9
17
  state?: 'disabled' | 'error' | 'readOnly' | 'warning';
10
18
  }
11
19
  declare const BitkitTextInput: import('react').ForwardRefExoticComponent<BitkitTextInputProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,37 +1,85 @@
1
1
  import IconErrorCircleFilled from "../../icons/IconErrorCircleFilled.js";
2
2
  import IconWarningYellow from "../../icons/IconWarningYellow.js";
3
- import { rem } from "../../theme/themeUtils.js";
4
3
  import BitkitField from "../BitkitField/BitkitField.js";
4
+ import { Box } from "@chakra-ui/react/box";
5
+ import { useSlotRecipe } from "@chakra-ui/react/styled-system";
5
6
  import { forwardRef } from "react";
6
- import { jsx } from "react/jsx-runtime";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
7
8
  import { Input } from "@chakra-ui/react/input";
8
- import { InputGroup } from "@chakra-ui/react/input-group";
9
+ import { Group } from "@chakra-ui/react/group";
10
+ import { InputAddon } from "@chakra-ui/react/input-addon";
9
11
  //#region lib/components/BitkitTextInput/BitkitTextInput.tsx
10
12
  var BitkitTextInput = forwardRef((props, ref) => {
11
- const { counter, inputProps, maxLength, placeholder, size, state, ...fieldProps } = props;
13
+ const { counter, endAddon, endAddonProps, endElement, inputProps, maxLength, placeholder, size = "lg", startAddon, startAddonProps, startElement, state, ...fieldProps } = props;
14
+ const styles = useSlotRecipe({ key: "textInput" })({ size });
15
+ const iconSize = size === "md" ? "16" : "24";
16
+ const addonSize = size === "md" ? "md" : "lg";
12
17
  const hasWarning = state === "warning" || !!fieldProps.warningText;
13
18
  const isInvalid = state === "error" || !!fieldProps.errorText;
14
- let statusIcon = void 0;
19
+ let statusIcon = null;
15
20
  if (isInvalid) statusIcon = /* @__PURE__ */ jsx(IconErrorCircleFilled, {
16
- size: size === "lg" ? "24" : "16",
17
- color: "icon/negative"
21
+ color: "icon/negative",
22
+ size: iconSize
18
23
  });
19
- else if (hasWarning) statusIcon = /* @__PURE__ */ jsx(IconWarningYellow, { size: size === "lg" ? "24" : "16" });
24
+ else if (hasWarning) statusIcon = /* @__PURE__ */ jsx(IconWarningYellow, { size: iconSize });
25
+ const counterText = counter && maxLength && inputProps?.value !== void 0 ? `${inputProps.value.toString().length}/${maxLength}` : void 0;
26
+ const stateAttrs = {
27
+ "data-disabled": state === "disabled" ? "" : void 0,
28
+ "data-invalid": isInvalid ? "" : void 0,
29
+ "data-readonly": state === "readOnly" ? "" : void 0
30
+ };
20
31
  return /* @__PURE__ */ jsx(BitkitField, {
21
- counterText: counter && maxLength && inputProps?.value !== void 0 ? `${inputProps.value.toString().length}/${maxLength}` : void 0,
32
+ counterText,
22
33
  ref,
23
34
  state,
24
35
  ...fieldProps,
25
- children: /* @__PURE__ */ jsx(InputGroup, {
26
- endElement: statusIcon,
27
- endElementProps: { marginInlineEnd: size === "lg" ? rem(15) : rem(11) },
36
+ children: /* @__PURE__ */ jsxs(Group, {
37
+ attached: true,
28
38
  width: "100%",
29
- children: /* @__PURE__ */ jsx(Input, {
30
- placeholder,
31
- size,
32
- maxLength,
33
- ...inputProps
34
- })
39
+ children: [
40
+ startAddon != null && /* @__PURE__ */ jsx(InputAddon, {
41
+ position: "start",
42
+ size: addonSize,
43
+ ...stateAttrs,
44
+ ...startAddonProps,
45
+ children: startAddon
46
+ }),
47
+ /* @__PURE__ */ jsxs(Box, {
48
+ css: styles.field,
49
+ ...stateAttrs,
50
+ children: [
51
+ startElement != null && /* @__PURE__ */ jsx(Box, {
52
+ css: styles.element,
53
+ ...stateAttrs,
54
+ children: startElement
55
+ }),
56
+ /* @__PURE__ */ jsx(Input, {
57
+ css: styles.input,
58
+ maxLength,
59
+ placeholder,
60
+ ...inputProps,
61
+ unstyled: true
62
+ }),
63
+ statusIcon != null && /* @__PURE__ */ jsx(Box, {
64
+ css: styles.element,
65
+ ...stateAttrs,
66
+ children: statusIcon
67
+ }),
68
+ endElement != null && /* @__PURE__ */ jsx(Box, {
69
+ css: styles.element,
70
+ ...stateAttrs,
71
+ children: endElement
72
+ })
73
+ ]
74
+ }),
75
+ endAddon != null && /* @__PURE__ */ jsx(InputAddon, {
76
+ position: "end",
77
+ size: addonSize,
78
+ ...stateAttrs,
79
+ ...endAddonProps,
80
+ children: endAddon
81
+ })
82
+ ]
35
83
  })
36
84
  });
37
85
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitTextInput.js","names":[],"sources":["../../../lib/components/BitkitTextInput/BitkitTextInput.tsx"],"sourcesContent":["import { Input, type InputProps } from '@chakra-ui/react/input';\nimport { InputGroup } from '@chakra-ui/react/input-group';\nimport { forwardRef } from 'react';\n\nimport { IconErrorCircleFilled, IconWarningYellow } from '../../icons';\nimport { rem } from '../../theme/themeUtils';\nimport BitkitField, { type BitkitFieldProps } from '../BitkitField/BitkitField';\n\nexport interface BitkitTextInputProps extends Omit<BitkitFieldProps, 'children' | 'state'> {\n counter?: boolean;\n inputProps?: InputProps;\n maxLength?: HTMLInputElement['maxLength'];\n placeholder?: string;\n size?: 'md' | 'lg';\n state?: 'disabled' | 'error' | 'readOnly' | 'warning';\n}\n\nconst BitkitTextInput = forwardRef<HTMLDivElement, BitkitTextInputProps>((props: BitkitTextInputProps, ref) => {\n const { counter, inputProps, maxLength, placeholder, size, state, ...fieldProps } = props;\n\n const hasWarning = state === 'warning' || !!fieldProps.warningText;\n const isInvalid = state === 'error' || !!fieldProps.errorText;\n\n let statusIcon = undefined;\n if (isInvalid) {\n statusIcon = <IconErrorCircleFilled size={size === 'lg' ? '24' : '16'} color=\"icon/negative\" />;\n } else if (hasWarning) {\n statusIcon = <IconWarningYellow size={size === 'lg' ? '24' : '16'} />;\n }\n\n const counterText =\n counter && maxLength && inputProps?.value !== undefined\n ? `${inputProps.value.toString().length}/${maxLength}`\n : undefined;\n\n return (\n <BitkitField counterText={counterText} ref={ref} state={state} {...fieldProps}>\n <InputGroup\n endElement={statusIcon}\n endElementProps={{\n marginInlineEnd: size === 'lg' ? rem(15) : rem(11),\n }}\n width=\"100%\"\n >\n <Input placeholder={placeholder} size={size} maxLength={maxLength} {...inputProps} />\n </InputGroup>\n </BitkitField>\n );\n});\n\nBitkitTextInput.displayName = 'BitkitTextInput';\n\nexport default BitkitTextInput;\n"],"mappings":";;;;;;;;;AAiBA,IAAM,kBAAkB,YAAkD,OAA6B,QAAQ;CAC7G,MAAM,EAAE,SAAS,YAAY,WAAW,aAAa,MAAM,OAAO,GAAG,eAAe;CAEpF,MAAM,aAAa,UAAU,aAAa,CAAC,CAAC,WAAW;CACvD,MAAM,YAAY,UAAU,WAAW,CAAC,CAAC,WAAW;CAEpD,IAAI,aAAa,KAAA;CACjB,IAAI,WACF,aAAa,oBAAC,uBAAD;EAAuB,MAAM,SAAS,OAAO,OAAO;EAAM,OAAM;CAAiB,CAAA;MACzF,IAAI,YACT,aAAa,oBAAC,mBAAD,EAAmB,MAAM,SAAS,OAAO,OAAO,KAAO,CAAA;CAQtE,OACE,oBAAC,aAAD;EAA0B,aAL1B,WAAW,aAAa,YAAY,UAAU,KAAA,IAC1C,GAAG,WAAW,MAAM,SAAS,EAAE,OAAO,GAAG,cACzC,KAAA;EAGwC;EAAY;EAAO,GAAI;YACjE,oBAAC,YAAD;GACE,YAAY;GACZ,iBAAiB,EACf,iBAAiB,SAAS,OAAO,IAAI,EAAE,IAAI,IAAI,EAAE,EACnD;GACA,OAAM;aAEN,oBAAC,OAAD;IAAoB;IAAmB;IAAiB;IAAW,GAAI;GAAa,CAAA;EAC1E,CAAA;CACD,CAAA;AAEjB,CAAC;AAED,gBAAgB,cAAc"}
1
+ {"version":3,"file":"BitkitTextInput.js","names":[],"sources":["../../../lib/components/BitkitTextInput/BitkitTextInput.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { Group } from '@chakra-ui/react/group';\nimport { Input, type InputProps } from '@chakra-ui/react/input';\nimport { InputAddon, type InputAddonProps } from '@chakra-ui/react/input-addon';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type ReactNode } from 'react';\n\nimport { IconErrorCircleFilled, IconWarningYellow } from '../../icons';\nimport BitkitField, { type BitkitFieldProps } from '../BitkitField/BitkitField';\n\nexport interface BitkitTextInputProps extends Omit<BitkitFieldProps, 'children' | 'state'> {\n counter?: boolean;\n endAddon?: ReactNode;\n endAddonProps?: InputAddonProps;\n endElement?: ReactNode;\n inputProps?: InputProps;\n maxLength?: HTMLInputElement['maxLength'];\n placeholder?: string;\n size?: 'md' | 'lg';\n startAddon?: ReactNode;\n startAddonProps?: InputAddonProps;\n startElement?: ReactNode;\n state?: 'disabled' | 'error' | 'readOnly' | 'warning';\n}\n\nconst BitkitTextInput = forwardRef<HTMLDivElement, BitkitTextInputProps>((props, ref) => {\n const {\n counter,\n endAddon,\n endAddonProps,\n endElement,\n inputProps,\n maxLength,\n placeholder,\n size = 'lg',\n startAddon,\n startAddonProps,\n startElement,\n state,\n ...fieldProps\n } = props;\n\n const recipe = useSlotRecipe({ key: 'textInput' });\n const styles = recipe({ size });\n\n const iconSize = size === 'md' ? '16' : '24';\n const addonSize = size === 'md' ? 'md' : 'lg';\n\n const hasWarning = state === 'warning' || !!fieldProps.warningText;\n const isInvalid = state === 'error' || !!fieldProps.errorText;\n\n let statusIcon: ReactNode = null;\n if (isInvalid) {\n statusIcon = <IconErrorCircleFilled color=\"icon/negative\" size={iconSize} />;\n } else if (hasWarning) {\n statusIcon = <IconWarningYellow size={iconSize} />;\n }\n\n const counterText =\n counter && maxLength && inputProps?.value !== undefined\n ? `${inputProps.value.toString().length}/${maxLength}`\n : undefined;\n\n const stateAttrs = {\n 'data-disabled': state === 'disabled' ? '' : undefined,\n 'data-invalid': isInvalid ? '' : undefined,\n 'data-readonly': state === 'readOnly' ? '' : undefined,\n };\n\n return (\n <BitkitField counterText={counterText} ref={ref} state={state} {...fieldProps}>\n <Group attached width=\"100%\">\n {startAddon != null && (\n <InputAddon position=\"start\" size={addonSize} {...stateAttrs} {...startAddonProps}>\n {startAddon}\n </InputAddon>\n )}\n <Box css={styles.field} {...stateAttrs}>\n {startElement != null && (\n <Box css={styles.element} {...stateAttrs}>\n {startElement}\n </Box>\n )}\n <Input css={styles.input} maxLength={maxLength} placeholder={placeholder} {...inputProps} unstyled />\n {statusIcon != null && (\n <Box css={styles.element} {...stateAttrs}>\n {statusIcon}\n </Box>\n )}\n {endElement != null && (\n <Box css={styles.element} {...stateAttrs}>\n {endElement}\n </Box>\n )}\n </Box>\n {endAddon != null && (\n <InputAddon position=\"end\" size={addonSize} {...stateAttrs} {...endAddonProps}>\n {endAddon}\n </InputAddon>\n )}\n </Group>\n </BitkitField>\n );\n});\n\nBitkitTextInput.displayName = 'BitkitTextInput';\n\nexport default BitkitTextInput;\n"],"mappings":";;;;;;;;;;;AAyBA,IAAM,kBAAkB,YAAkD,OAAO,QAAQ;CACvF,MAAM,EACJ,SACA,UACA,eACA,YACA,YACA,WACA,aACA,OAAO,MACP,YACA,iBACA,cACA,OACA,GAAG,eACD;CAGJ,MAAM,SADS,cAAc,EAAE,KAAK,YAAY,CACjC,EAAO,EAAE,KAAK,CAAC;CAE9B,MAAM,WAAW,SAAS,OAAO,OAAO;CACxC,MAAM,YAAY,SAAS,OAAO,OAAO;CAEzC,MAAM,aAAa,UAAU,aAAa,CAAC,CAAC,WAAW;CACvD,MAAM,YAAY,UAAU,WAAW,CAAC,CAAC,WAAW;CAEpD,IAAI,aAAwB;CAC5B,IAAI,WACF,aAAa,oBAAC,uBAAD;EAAuB,OAAM;EAAgB,MAAM;CAAW,CAAA;MACtE,IAAI,YACT,aAAa,oBAAC,mBAAD,EAAmB,MAAM,SAAW,CAAA;CAGnD,MAAM,cACJ,WAAW,aAAa,YAAY,UAAU,KAAA,IAC1C,GAAG,WAAW,MAAM,SAAS,EAAE,OAAO,GAAG,cACzC,KAAA;CAEN,MAAM,aAAa;EACjB,iBAAiB,UAAU,aAAa,KAAK,KAAA;EAC7C,gBAAgB,YAAY,KAAK,KAAA;EACjC,iBAAiB,UAAU,aAAa,KAAK,KAAA;CAC/C;CAEA,OACE,oBAAC,aAAD;EAA0B;EAAkB;EAAY;EAAO,GAAI;YACjE,qBAAC,OAAD;GAAO,UAAA;GAAS,OAAM;aAAtB;IACG,cAAc,QACb,oBAAC,YAAD;KAAY,UAAS;KAAQ,MAAM;KAAW,GAAI;KAAY,GAAI;eAC/D;IACS,CAAA;IAEd,qBAAC,KAAD;KAAK,KAAK,OAAO;KAAO,GAAI;eAA5B;MACG,gBAAgB,QACf,oBAAC,KAAD;OAAK,KAAK,OAAO;OAAS,GAAI;iBAC3B;MACE,CAAA;MAEP,oBAAC,OAAD;OAAO,KAAK,OAAO;OAAkB;OAAwB;OAAa,GAAI;OAAY,UAAA;MAAU,CAAA;MACnG,cAAc,QACb,oBAAC,KAAD;OAAK,KAAK,OAAO;OAAS,GAAI;iBAC3B;MACE,CAAA;MAEN,cAAc,QACb,oBAAC,KAAD;OAAK,KAAK,OAAO;OAAS,GAAI;iBAC3B;MACE,CAAA;KAEJ;;IACJ,YAAY,QACX,oBAAC,YAAD;KAAY,UAAS;KAAM,MAAM;KAAW,GAAI;KAAY,GAAI;eAC7D;IACS,CAAA;GAET;;CACI,CAAA;AAEjB,CAAC;AAED,gBAAgB,cAAc"}
@@ -61,6 +61,7 @@ export { default as BitkitSelectMenu, type BitkitSelectMenuProps } from './Bitki
61
61
  export { default as BitkitSelectMenuAction, type BitkitSelectMenuActionProps, } from './BitkitSelectMenu/BitkitSelectMenuAction';
62
62
  export { default as BitkitSettingsCard, type BitkitSettingsCardContentProps, type BitkitSettingsCardProps, type BitkitSettingsCardStatusProps, } from './BitkitSettingsCard/BitkitSettingsCard';
63
63
  export { default as BitkitSidebar, type BitkitSidebarFooterProps, type BitkitSidebarGroupHeadingProps, type BitkitSidebarItemProps, type BitkitSidebarProjectProps, type BitkitSidebarProps, type BitkitSidebarTitleProps, } from './BitkitSidebar/BitkitSidebar';
64
+ export { default as BitkitSkeletonGroup, type BitkitSkeletonGroupProps, } from './BitkitSkeletonGroup/BitkitSkeletonGroup';
64
65
  export { default as BitkitSpinner, type BitkitSpinnerProps } from './BitkitSpinner/BitkitSpinner';
65
66
  export { default as BitkitSplitButton, type BitkitSplitButtonProps } from './BitkitSplitButton/BitkitSplitButton';
66
67
  export { default as BitkitStat, type BitkitStatProps, type TrendColor, type TrendDirection, type TrendTextPlacement, } from './BitkitStat/BitkitStat';
package/dist/main.js CHANGED
@@ -349,6 +349,7 @@ import BitkitSelect_default from "./components/BitkitSelect/BitkitSelect.js";
349
349
  import BitkitSelectableTag_default from "./components/BitkitSelectableTag/BitkitSelectableTag.js";
350
350
  import BitkitSettingsCard_default from "./components/BitkitSettingsCard/BitkitSettingsCard.js";
351
351
  import BitkitSidebar_default from "./components/BitkitSidebar/BitkitSidebar.js";
352
+ import BitkitSkeletonGroup from "./components/BitkitSkeletonGroup/BitkitSkeletonGroup.js";
352
353
  import BitkitSpinner from "./components/BitkitSpinner/BitkitSpinner.js";
353
354
  import BitkitSplitButton_default from "./components/BitkitSplitButton/BitkitSplitButton.js";
354
355
  import BitkitStat from "./components/BitkitStat/BitkitStat.js";
@@ -366,4 +367,4 @@ import BitkitTreeView, { createTreeCollection } from "./components/BitkitTreeVie
366
367
  import useResponsive, { ResponsiveProvider } from "./hooks/useResponsive.js";
367
368
  import bitkitTheme from "./theme/index.js";
368
369
  import Provider from "./providers/BitkitProvider.js";
369
- export { BitkitAccordion, BitkitActionBar, BitkitActionMenu, BitkitAlert, BitkitAvatar, BitkitBadge, BitkitBreadcrumb, BitkitButton, BitkitCalendar, BitkitCheckbox, BitkitCheckboxGroup, BitkitCloseButton, BitkitCodeSnippet, BitkitCollapsible, BitkitColorButton, BitkitCombobox_default as BitkitCombobox, BitkitControlButton, BitkitDataWidget, BitkitDefinitionTooltip, BitkitDialog_default as BitkitDialog, BitkitDraggableCard, BitkitDrawer, BitkitEmptyState, BitkitExpandableCard, BitkitExpandableRow, BitkitField, BitkitFileInput, BitkitFormDialog_default as BitkitFormDialog, BitkitGroupHeading, BitkitIconButton, BitkitInlineLoading, BitkitLabel, BitkitLabelTooltip, BitkitLabeledData, BitkitLink, BitkitLinkButton, BitkitList_default as BitkitList, BitkitMarkdown, BitkitMarkdownCard, BitkitMultiselect_default as BitkitMultiselect, BitkitMultiselectMenu, BitkitNativeSelect, BitkitNoteCard, BitkitNumberInput, BitkitOverflowContent, BitkitOverflowTooltip, BitkitPageFooter_default as BitkitPageFooter, BitkitPagination, BitkitPaginationLoadMore, BitkitPopover, Provider as BitkitProvider, BitkitRadio, BitkitRadioGroup, BitkitRibbon, BitkitSearchInput, BitkitSectionHeading, BitkitSegmentedControl_default as BitkitSegmentedControl, BitkitSelect_default as BitkitSelect, BitkitSelectMenu, BitkitSelectMenuAction, BitkitSelectableTag_default as BitkitSelectableTag, BitkitSettingsCard_default as BitkitSettingsCard, BitkitSidebar_default as BitkitSidebar, BitkitSortableColumnHeader, BitkitSpinner, BitkitSplitButton_default as BitkitSplitButton, BitkitStat, BitkitStepperDialog_default as BitkitStepperDialog, BitkitSteps_default as BitkitSteps, BitkitStepsCard_default as BitkitStepsCard, BitkitSwitch, BitkitTabs, BitkitTag, BitkitTagsInput, BitkitTextArea, BitkitTextInput, BitkitToggleButton, BitkitTooltip, BitkitTreeView, IconAbortCircle, IconAbortCircleFilled, IconAddons, IconAgent, IconAnchor, IconAndroid, IconApp, IconAppSettings, IconAppStore, IconAppStoreColor, IconApple, IconArchive, IconArchiveDelete, IconArchiveRestore, IconArrowBackAndDown, IconArrowBackAndUp, IconArrowDown, IconArrowForwardAndDown, IconArrowForwardAndUp, IconArrowLeft, IconArrowNortheast, IconArrowNorthwest, IconArrowRight, IconArrowUp, IconArrowsHorizontal, IconArrowsVertical, IconAutomation, IconAws, IconAwsColor, IconBadge3RdParty, IconBadgeBitrise, IconBadgeUpgrade, IconBadgeVersionOk, IconBazel, IconBell, IconBitbot, IconBitbotError, IconBitbucket, IconBitbucketColor, IconBitbucketNeutral, IconBitbucketWhite, IconBlockCircle, IconBook, IconBoxArrowDown, IconBoxDot, IconBoxLinesOverflow, IconBoxLinesWrap, IconBranch, IconBrowserstackColor, IconBug, IconBuild, IconBuildCache, IconBuildCacheFilled, IconBuildEnvSetup, IconBuildHub, IconBuildHubFilled, IconCalendar, IconChangePlan, IconChat, IconCheck, IconCheckCircle, IconCheckCircleFilled, IconChevronDown, IconChevronLeft, IconChevronRight, IconChevronUp, IconCi, IconCiFilled, IconCircle, IconCircleDashed, IconCircleHalfFilled, IconClaude, IconClaudeColor, IconClock, IconCode, IconCodePush, IconCodeSigning, IconCoffee, IconCommit, IconConfigure, IconConnectedAccounts, IconContainer, IconCopy, IconCordova, IconCpu, IconCreditcard, IconCredits, IconCross, IconCrossCircle, IconCrossCircleFilled, IconCrown, IconCycle, IconDashboard, IconDashboardFilled, IconDeployment, IconDetails, IconDoc, IconDollar, IconDot, IconDotnet, IconDotnetColor, IconDotnetText, IconDotnetTextColor, IconDoubleCircle, IconDownload, IconDragHandle, IconEc2Ami, IconEnterprise, IconErrorCircle, IconErrorCircleFilled, IconExpand, IconExtraBuildCapacity, IconEye, IconEyeSlash, IconFastlane, IconFileDoc, IconFilePdf, IconFilePlist, IconFileYml, IconFileZip, IconFilter, IconFlag, IconFlutter, IconFolder, IconFullscreen, IconFullscreenExit, IconGauge, IconGit, IconGithub, IconGitlab, IconGitlabColor, IconGitlabWhite, IconGlobe, IconGo, IconGoogleColor, IconGooglePlay, IconGooglePlayColor, IconGradle, IconGroup, IconHashtag, IconHeadset, IconHeart, IconHistory, IconHourglass, IconImage, IconInfoCircle, IconInfoCircleFilled, IconInsights, IconInsightsFilled, IconInstall, IconInteraction, IconInvoice, IconIonic, IconJapanese, IconJava, IconJavaColor, IconJavaDuke, IconJavaDukeColor, IconKey, IconKotlin, IconKotlinColor, IconKotlinWhite, IconLaptop, IconLaunchdarkly, IconLegacyApp, IconLightbulb, IconLink, IconLinux, IconLock, IconLockOpen, IconLogin, IconLogout, IconMacos, IconMagicWand, IconMagnifier, IconMail, IconMedal, IconMemory, IconMenuGrid, IconMenuHamburger, IconMessage, IconMessageAlert, IconMessageQuestion, IconMicrophone, IconMinus, IconMinusCircle, IconMinusCircleFilled, IconMobile, IconMobileLandscape, IconMonitorChart, IconMoreHorizontal, IconMoreVertical, IconNews, IconNextjs, IconNodejs, IconOpenInNew, IconOther, IconOutsideContributor, IconOverview, IconPause, IconPencil, IconPeople, IconPercent, IconPerson, IconPersonWithDesk, IconPlay, IconPlus, IconPlusCircle, IconPlusCircleFilled, IconPower, IconProject, IconProjectSettings, IconPull, IconPush, IconPuzzle, IconPython, IconPythonColor, IconQuestionCircle, IconQuestionCircleFilled, IconReact, IconRefresh, IconRegex, IconRelease, IconReleaseFilled, IconRemoteAccess, IconReplace, IconResponsiveness, IconReviewerApproved, IconReviewerAssigned, IconReviewerRejected, IconRuby, IconRubyColor, IconSave, IconSecurityShield, IconSettings, IconSettingsFilled, IconShuffle, IconSiren, IconSkip, IconSkipCircle, IconSkipCircleFilled, IconSlack, IconSlackColor, IconSparkle, IconSparkleFilled, IconSpinnerOnDisabled, IconSpinnerPurple, IconSpinnerPurpleDouble, IconSpinnerWhite, IconStability, IconStack, IconStar, IconStep, IconStop, IconStopwatch, IconTag, IconTasks, IconTeams, IconTeamsColor, IconTemplateCode, IconTerminal, IconTestQuarantine, IconThemeDarkToggle, IconThumbDown, IconThumbUp, IconTools, IconTrash, IconTrigger, IconUbuntu, IconUbuntuColor, IconUnity3D, IconUpload, IconValidateShield, IconVideo, IconWarning, IconWarningYellow, IconWebUi, IconWebhooks, IconWorkflow, IconWorkflowFlow, IconXTwitter, IconXamarin, IconXcode, ResponsiveProvider, bitkitIcon, bitkitTheme as bitriseTheme, createBitkitToast, createTreeCollection, rem, useResponsive, useStepperDialog };
370
+ export { BitkitAccordion, BitkitActionBar, BitkitActionMenu, BitkitAlert, BitkitAvatar, BitkitBadge, BitkitBreadcrumb, BitkitButton, BitkitCalendar, BitkitCheckbox, BitkitCheckboxGroup, BitkitCloseButton, BitkitCodeSnippet, BitkitCollapsible, BitkitColorButton, BitkitCombobox_default as BitkitCombobox, BitkitControlButton, BitkitDataWidget, BitkitDefinitionTooltip, BitkitDialog_default as BitkitDialog, BitkitDraggableCard, BitkitDrawer, BitkitEmptyState, BitkitExpandableCard, BitkitExpandableRow, BitkitField, BitkitFileInput, BitkitFormDialog_default as BitkitFormDialog, BitkitGroupHeading, BitkitIconButton, BitkitInlineLoading, BitkitLabel, BitkitLabelTooltip, BitkitLabeledData, BitkitLink, BitkitLinkButton, BitkitList_default as BitkitList, BitkitMarkdown, BitkitMarkdownCard, BitkitMultiselect_default as BitkitMultiselect, BitkitMultiselectMenu, BitkitNativeSelect, BitkitNoteCard, BitkitNumberInput, BitkitOverflowContent, BitkitOverflowTooltip, BitkitPageFooter_default as BitkitPageFooter, BitkitPagination, BitkitPaginationLoadMore, BitkitPopover, Provider as BitkitProvider, BitkitRadio, BitkitRadioGroup, BitkitRibbon, BitkitSearchInput, BitkitSectionHeading, BitkitSegmentedControl_default as BitkitSegmentedControl, BitkitSelect_default as BitkitSelect, BitkitSelectMenu, BitkitSelectMenuAction, BitkitSelectableTag_default as BitkitSelectableTag, BitkitSettingsCard_default as BitkitSettingsCard, BitkitSidebar_default as BitkitSidebar, BitkitSkeletonGroup, BitkitSortableColumnHeader, BitkitSpinner, BitkitSplitButton_default as BitkitSplitButton, BitkitStat, BitkitStepperDialog_default as BitkitStepperDialog, BitkitSteps_default as BitkitSteps, BitkitStepsCard_default as BitkitStepsCard, BitkitSwitch, BitkitTabs, BitkitTag, BitkitTagsInput, BitkitTextArea, BitkitTextInput, BitkitToggleButton, BitkitTooltip, BitkitTreeView, IconAbortCircle, IconAbortCircleFilled, IconAddons, IconAgent, IconAnchor, IconAndroid, IconApp, IconAppSettings, IconAppStore, IconAppStoreColor, IconApple, IconArchive, IconArchiveDelete, IconArchiveRestore, IconArrowBackAndDown, IconArrowBackAndUp, IconArrowDown, IconArrowForwardAndDown, IconArrowForwardAndUp, IconArrowLeft, IconArrowNortheast, IconArrowNorthwest, IconArrowRight, IconArrowUp, IconArrowsHorizontal, IconArrowsVertical, IconAutomation, IconAws, IconAwsColor, IconBadge3RdParty, IconBadgeBitrise, IconBadgeUpgrade, IconBadgeVersionOk, IconBazel, IconBell, IconBitbot, IconBitbotError, IconBitbucket, IconBitbucketColor, IconBitbucketNeutral, IconBitbucketWhite, IconBlockCircle, IconBook, IconBoxArrowDown, IconBoxDot, IconBoxLinesOverflow, IconBoxLinesWrap, IconBranch, IconBrowserstackColor, IconBug, IconBuild, IconBuildCache, IconBuildCacheFilled, IconBuildEnvSetup, IconBuildHub, IconBuildHubFilled, IconCalendar, IconChangePlan, IconChat, IconCheck, IconCheckCircle, IconCheckCircleFilled, IconChevronDown, IconChevronLeft, IconChevronRight, IconChevronUp, IconCi, IconCiFilled, IconCircle, IconCircleDashed, IconCircleHalfFilled, IconClaude, IconClaudeColor, IconClock, IconCode, IconCodePush, IconCodeSigning, IconCoffee, IconCommit, IconConfigure, IconConnectedAccounts, IconContainer, IconCopy, IconCordova, IconCpu, IconCreditcard, IconCredits, IconCross, IconCrossCircle, IconCrossCircleFilled, IconCrown, IconCycle, IconDashboard, IconDashboardFilled, IconDeployment, IconDetails, IconDoc, IconDollar, IconDot, IconDotnet, IconDotnetColor, IconDotnetText, IconDotnetTextColor, IconDoubleCircle, IconDownload, IconDragHandle, IconEc2Ami, IconEnterprise, IconErrorCircle, IconErrorCircleFilled, IconExpand, IconExtraBuildCapacity, IconEye, IconEyeSlash, IconFastlane, IconFileDoc, IconFilePdf, IconFilePlist, IconFileYml, IconFileZip, IconFilter, IconFlag, IconFlutter, IconFolder, IconFullscreen, IconFullscreenExit, IconGauge, IconGit, IconGithub, IconGitlab, IconGitlabColor, IconGitlabWhite, IconGlobe, IconGo, IconGoogleColor, IconGooglePlay, IconGooglePlayColor, IconGradle, IconGroup, IconHashtag, IconHeadset, IconHeart, IconHistory, IconHourglass, IconImage, IconInfoCircle, IconInfoCircleFilled, IconInsights, IconInsightsFilled, IconInstall, IconInteraction, IconInvoice, IconIonic, IconJapanese, IconJava, IconJavaColor, IconJavaDuke, IconJavaDukeColor, IconKey, IconKotlin, IconKotlinColor, IconKotlinWhite, IconLaptop, IconLaunchdarkly, IconLegacyApp, IconLightbulb, IconLink, IconLinux, IconLock, IconLockOpen, IconLogin, IconLogout, IconMacos, IconMagicWand, IconMagnifier, IconMail, IconMedal, IconMemory, IconMenuGrid, IconMenuHamburger, IconMessage, IconMessageAlert, IconMessageQuestion, IconMicrophone, IconMinus, IconMinusCircle, IconMinusCircleFilled, IconMobile, IconMobileLandscape, IconMonitorChart, IconMoreHorizontal, IconMoreVertical, IconNews, IconNextjs, IconNodejs, IconOpenInNew, IconOther, IconOutsideContributor, IconOverview, IconPause, IconPencil, IconPeople, IconPercent, IconPerson, IconPersonWithDesk, IconPlay, IconPlus, IconPlusCircle, IconPlusCircleFilled, IconPower, IconProject, IconProjectSettings, IconPull, IconPush, IconPuzzle, IconPython, IconPythonColor, IconQuestionCircle, IconQuestionCircleFilled, IconReact, IconRefresh, IconRegex, IconRelease, IconReleaseFilled, IconRemoteAccess, IconReplace, IconResponsiveness, IconReviewerApproved, IconReviewerAssigned, IconReviewerRejected, IconRuby, IconRubyColor, IconSave, IconSecurityShield, IconSettings, IconSettingsFilled, IconShuffle, IconSiren, IconSkip, IconSkipCircle, IconSkipCircleFilled, IconSlack, IconSlackColor, IconSparkle, IconSparkleFilled, IconSpinnerOnDisabled, IconSpinnerPurple, IconSpinnerPurpleDouble, IconSpinnerWhite, IconStability, IconStack, IconStar, IconStep, IconStop, IconStopwatch, IconTag, IconTasks, IconTeams, IconTeamsColor, IconTemplateCode, IconTerminal, IconTestQuarantine, IconThemeDarkToggle, IconThumbDown, IconThumbUp, IconTools, IconTrash, IconTrigger, IconUbuntu, IconUbuntuColor, IconUnity3D, IconUpload, IconValidateShield, IconVideo, IconWarning, IconWarningYellow, IconWebUi, IconWebhooks, IconWorkflow, IconWorkflowFlow, IconXTwitter, IconXamarin, IconXcode, ResponsiveProvider, bitkitIcon, bitkitTheme as bitriseTheme, createBitkitToast, createTreeCollection, rem, useResponsive, useStepperDialog };
@@ -1,17 +1,10 @@
1
- export declare const base: {
2
- appearance: "none";
1
+ export declare const frame: {
3
2
  background: "background/primary";
4
3
  borderColor: "border/regular";
5
4
  borderRadius: "4";
6
5
  borderWidth: "1";
7
- color: "input/text/inputValue";
8
- textStyle: "body/lg/regular";
9
- width: "100%";
10
6
  boxShadow: "inset/field";
11
7
  transition: "border 200ms";
12
- _placeholder: {
13
- color: "input/text/placeholder";
14
- };
15
8
  _hover: {
16
9
  borderColor: "border/hover";
17
10
  };
@@ -21,22 +14,75 @@ export declare const base: {
21
14
  borderColor: "border/error";
22
15
  };
23
16
  };
17
+ _readOnly: {
18
+ background: "background/disabled";
19
+ _hover: {
20
+ borderColor: "border/regular";
21
+ };
22
+ };
24
23
  _disabled: {
24
+ background: "background/disabled";
25
+ borderColor: "border/disabled";
26
+ cursor: "not-allowed";
25
27
  _hover: {
26
28
  borderColor: "border/disabled";
27
29
  };
30
+ };
31
+ };
32
+ export declare const text: {
33
+ appearance: "none";
34
+ color: "input/text/inputValue";
35
+ textStyle: "body/lg/regular";
36
+ _placeholder: {
37
+ color: "input/text/placeholder";
38
+ };
39
+ _disabled: {
40
+ color: "text/disabled";
28
41
  _placeholder: {
29
42
  color: "text/disabled";
30
43
  };
44
+ };
45
+ };
46
+ export declare const base: {
47
+ width: "100%";
48
+ _disabled: {
31
49
  color: "text/disabled";
50
+ _placeholder: {
51
+ color: "text/disabled";
52
+ };
32
53
  background: "background/disabled";
54
+ borderColor: "border/disabled";
33
55
  cursor: "not-allowed";
56
+ _hover: {
57
+ borderColor: "border/disabled";
58
+ };
59
+ };
60
+ appearance: "none";
61
+ color: "input/text/inputValue";
62
+ textStyle: "body/lg/regular";
63
+ _placeholder: {
64
+ color: "input/text/placeholder";
65
+ };
66
+ background: "background/primary";
67
+ borderColor: "border/regular";
68
+ borderRadius: "4";
69
+ borderWidth: "1";
70
+ boxShadow: "inset/field";
71
+ transition: "border 200ms";
72
+ _hover: {
73
+ borderColor: "border/hover";
74
+ };
75
+ _invalid: {
76
+ borderColor: "border/error";
77
+ _hover: {
78
+ borderColor: "border/error";
79
+ };
34
80
  };
35
81
  _readOnly: {
82
+ background: "background/disabled";
36
83
  _hover: {
37
84
  borderColor: "border/regular";
38
85
  };
39
- background: "background/disabled";
40
86
  };
41
87
  };
42
88
  export declare const variants: {
@@ -1,32 +1,45 @@
1
1
  import { rem } from "../themeUtils.js";
2
2
  //#region lib/theme/common/InputAndTextarea.common.ts
3
- var base = {
4
- appearance: "none",
3
+ var frame = {
5
4
  background: "background/primary",
6
5
  borderColor: "border/regular",
7
6
  borderRadius: "4",
8
7
  borderWidth: "1",
9
- color: "input/text/inputValue",
10
- textStyle: "body/lg/regular",
11
- width: "100%",
12
8
  boxShadow: "inset/field",
13
9
  transition: "border 200ms",
14
- _placeholder: { color: "input/text/placeholder" },
15
10
  _hover: { borderColor: "border/hover" },
16
11
  _invalid: {
17
12
  borderColor: "border/error",
18
13
  _hover: { borderColor: "border/error" }
19
14
  },
20
- _disabled: {
21
- _hover: { borderColor: "border/disabled" },
22
- _placeholder: { color: "text/disabled" },
23
- color: "text/disabled",
15
+ _readOnly: {
24
16
  background: "background/disabled",
25
- cursor: "not-allowed"
17
+ _hover: { borderColor: "border/regular" }
26
18
  },
27
- _readOnly: {
28
- _hover: { borderColor: "border/regular" },
29
- background: "background/disabled"
19
+ _disabled: {
20
+ background: "background/disabled",
21
+ borderColor: "border/disabled",
22
+ cursor: "not-allowed",
23
+ _hover: { borderColor: "border/disabled" }
24
+ }
25
+ };
26
+ var text = {
27
+ appearance: "none",
28
+ color: "input/text/inputValue",
29
+ textStyle: "body/lg/regular",
30
+ _placeholder: { color: "input/text/placeholder" },
31
+ _disabled: {
32
+ color: "text/disabled",
33
+ _placeholder: { color: "text/disabled" }
34
+ }
35
+ };
36
+ var base = {
37
+ ...frame,
38
+ ...text,
39
+ width: "100%",
40
+ _disabled: {
41
+ ...frame._disabled,
42
+ ...text._disabled
30
43
  }
31
44
  };
32
45
  var variants = { size: {
@@ -52,6 +65,6 @@ var defaultVariants = { size: "lg" };
52
65
  */
53
66
  var singleLineInputOverrides = { lineHeight: "normal" };
54
67
  //#endregion
55
- export { base, defaultVariants, singleLineInputOverrides, variants };
68
+ export { base, defaultVariants, frame, singleLineInputOverrides, text, variants };
56
69
 
57
70
  //# sourceMappingURL=InputAndTextarea.common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputAndTextarea.common.js","names":[],"sources":["../../../lib/theme/common/InputAndTextarea.common.ts"],"sourcesContent":["import { type SystemStyleObject } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nexport const base = {\n appearance: 'none',\n background: 'background/primary',\n borderColor: 'border/regular',\n borderRadius: '4',\n borderWidth: '1',\n color: 'input/text/inputValue',\n textStyle: 'body/lg/regular',\n width: '100%',\n boxShadow: 'inset/field',\n transition: 'border 200ms',\n _placeholder: {\n color: 'input/text/placeholder',\n },\n _hover: {\n borderColor: 'border/hover',\n },\n _invalid: {\n borderColor: 'border/error',\n _hover: {\n borderColor: 'border/error',\n },\n },\n _disabled: {\n _hover: {\n borderColor: 'border/disabled',\n },\n _placeholder: {\n color: 'text/disabled',\n },\n color: 'text/disabled',\n background: 'background/disabled',\n cursor: 'not-allowed',\n },\n _readOnly: {\n _hover: {\n borderColor: 'border/regular',\n },\n background: 'background/disabled',\n },\n} satisfies SystemStyleObject;\n\nexport const variants = {\n size: {\n md: {\n paddingInline: rem(11),\n paddingBlock: rem(9),\n textStyle: 'body/md/regular',\n '--input-height': rem(40),\n },\n lg: {\n paddingInline: rem(15),\n paddingBlock: rem(11),\n textStyle: 'body/lg/regular',\n '--input-height': rem(48),\n },\n },\n} satisfies Record<'size', Record<'md' | 'lg', SystemStyleObject>>;\n\nexport const defaultVariants: Record<'size', 'md' | 'lg'> = {\n size: 'lg',\n};\n\n/**\n * Additional styles for single-line `<input>` elements to opt out of the textStyle's explicit\n * line-height. With this override the caret follows the font's natural metrics (~font-size ×\n * 1.15) instead of the 20/24px line-height, so it no longer visually extends past sibling icons\n * in input groups. Textarea should NOT use this — multi-line text needs the textStyle line-height.\n */\nexport const singleLineInputOverrides = {\n lineHeight: 'normal',\n} satisfies SystemStyleObject;\n"],"mappings":";;AAIA,IAAa,OAAO;CAClB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,OAAO;CACP,WAAW;CACX,OAAO;CACP,WAAW;CACX,YAAY;CACZ,cAAc,EACZ,OAAO,yBACT;CACA,QAAQ,EACN,aAAa,eACf;CACA,UAAU;EACR,aAAa;EACb,QAAQ,EACN,aAAa,eACf;CACF;CACA,WAAW;EACT,QAAQ,EACN,aAAa,kBACf;EACA,cAAc,EACZ,OAAO,gBACT;EACA,OAAO;EACP,YAAY;EACZ,QAAQ;CACV;CACA,WAAW;EACT,QAAQ,EACN,aAAa,iBACf;EACA,YAAY;CACd;AACF;AAEA,IAAa,WAAW,EACtB,MAAM;CACJ,IAAI;EACF,eAAe,IAAI,EAAE;EACrB,cAAc,IAAI,CAAC;EACnB,WAAW;EACX,kBAAkB,IAAI,EAAE;CAC1B;CACA,IAAI;EACF,eAAe,IAAI,EAAE;EACrB,cAAc,IAAI,EAAE;EACpB,WAAW;EACX,kBAAkB,IAAI,EAAE;CAC1B;AACF,EACF;AAEA,IAAa,kBAA+C,EAC1D,MAAM,KACR;;;;;;;AAQA,IAAa,2BAA2B,EACtC,YAAY,SACd"}
1
+ {"version":3,"file":"InputAndTextarea.common.js","names":[],"sources":["../../../lib/theme/common/InputAndTextarea.common.ts"],"sourcesContent":["import { type SystemStyleObject } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nexport const frame = {\n background: 'background/primary',\n borderColor: 'border/regular',\n borderRadius: '4',\n borderWidth: '1',\n boxShadow: 'inset/field',\n transition: 'border 200ms',\n _hover: {\n borderColor: 'border/hover',\n },\n _invalid: {\n borderColor: 'border/error',\n _hover: {\n borderColor: 'border/error',\n },\n },\n _readOnly: {\n background: 'background/disabled',\n _hover: {\n borderColor: 'border/regular',\n },\n },\n _disabled: {\n background: 'background/disabled',\n borderColor: 'border/disabled',\n cursor: 'not-allowed',\n _hover: {\n borderColor: 'border/disabled',\n },\n },\n} satisfies SystemStyleObject;\n\nexport const text = {\n appearance: 'none',\n color: 'input/text/inputValue',\n textStyle: 'body/lg/regular',\n _placeholder: {\n color: 'input/text/placeholder',\n },\n _disabled: {\n color: 'text/disabled',\n _placeholder: {\n color: 'text/disabled',\n },\n },\n} satisfies SystemStyleObject;\n\nexport const base = {\n ...frame,\n ...text,\n width: '100%',\n _disabled: {\n ...frame._disabled,\n ...text._disabled,\n },\n} satisfies SystemStyleObject;\n\nexport const variants = {\n size: {\n md: {\n paddingInline: rem(11),\n paddingBlock: rem(9),\n textStyle: 'body/md/regular',\n '--input-height': rem(40),\n },\n lg: {\n paddingInline: rem(15),\n paddingBlock: rem(11),\n textStyle: 'body/lg/regular',\n '--input-height': rem(48),\n },\n },\n} satisfies Record<'size', Record<'md' | 'lg', SystemStyleObject>>;\n\nexport const defaultVariants: Record<'size', 'md' | 'lg'> = {\n size: 'lg',\n};\n\n/**\n * Additional styles for single-line `<input>` elements to opt out of the textStyle's explicit\n * line-height. With this override the caret follows the font's natural metrics (~font-size ×\n * 1.15) instead of the 20/24px line-height, so it no longer visually extends past sibling icons\n * in input groups. Textarea should NOT use this — multi-line text needs the textStyle line-height.\n */\nexport const singleLineInputOverrides = {\n lineHeight: 'normal',\n} satisfies SystemStyleObject;\n"],"mappings":";;AAIA,IAAa,QAAQ;CACnB,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,QAAQ,EACN,aAAa,eACf;CACA,UAAU;EACR,aAAa;EACb,QAAQ,EACN,aAAa,eACf;CACF;CACA,WAAW;EACT,YAAY;EACZ,QAAQ,EACN,aAAa,iBACf;CACF;CACA,WAAW;EACT,YAAY;EACZ,aAAa;EACb,QAAQ;EACR,QAAQ,EACN,aAAa,kBACf;CACF;AACF;AAEA,IAAa,OAAO;CAClB,YAAY;CACZ,OAAO;CACP,WAAW;CACX,cAAc,EACZ,OAAO,yBACT;CACA,WAAW;EACT,OAAO;EACP,cAAc,EACZ,OAAO,gBACT;CACF;AACF;AAEA,IAAa,OAAO;CAClB,GAAG;CACH,GAAG;CACH,OAAO;CACP,WAAW;EACT,GAAG,MAAM;EACT,GAAG,KAAK;CACV;AACF;AAEA,IAAa,WAAW,EACtB,MAAM;CACJ,IAAI;EACF,eAAe,IAAI,EAAE;EACrB,cAAc,IAAI,CAAC;EACnB,WAAW;EACX,kBAAkB,IAAI,EAAE;CAC1B;CACA,IAAI;EACF,eAAe,IAAI,EAAE;EACrB,cAAc,IAAI,EAAE;EACpB,WAAW;EACX,kBAAkB,IAAI,EAAE;CAC1B;AACF,EACF;AAEA,IAAa,kBAA+C,EAC1D,MAAM,KACR;;;;;;;AAQA,IAAa,2BAA2B,EACtC,YAAY,SACd"}
@@ -0,0 +1 @@
1
+ export declare const skeletonShimmerAfter: import('@chakra-ui/react').SystemStyleObject;
@@ -0,0 +1,17 @@
1
+ import { defineStyle } from "@chakra-ui/react/styled-system";
2
+ //#region lib/theme/common/skeletonShimmer.ts
3
+ var shimmerMask = "linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.63) 35%, rgb(0, 0, 0) 48%, rgba(0, 0, 0, 0.57) 55%, rgba(0, 0, 0, 0) 100%)";
4
+ var skeletonShimmerAfter = defineStyle({
5
+ content: "\"\"",
6
+ position: "absolute",
7
+ inset: 0,
8
+ backgroundColor: "utilities/skeleton-highlight",
9
+ maskImage: shimmerMask,
10
+ WebkitMaskImage: shimmerMask,
11
+ animation: "skeleton-shimmer var(--duration, 1.5s) linear infinite",
12
+ pointerEvents: "none"
13
+ });
14
+ //#endregion
15
+ export { skeletonShimmerAfter };
16
+
17
+ //# sourceMappingURL=skeletonShimmer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeletonShimmer.js","names":[],"sources":["../../../lib/theme/common/skeletonShimmer.ts"],"sourcesContent":["import { defineStyle } from '@chakra-ui/react/styled-system';\n\nconst shimmerMask =\n 'linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.63) 35%, rgb(0, 0, 0) 48%, rgba(0, 0, 0, 0.57) 55%, rgba(0, 0, 0, 0) 100%)';\n\n// A soft-masked highlight band sweeping left→right, painted as an `::after` overlay. Shared by the\n// single-shape Skeleton recipe and BitkitSkeletonGroup so one sweep can span a whole group of shapes.\nexport const skeletonShimmerAfter = defineStyle({\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundColor: 'utilities/skeleton-highlight',\n maskImage: shimmerMask,\n WebkitMaskImage: shimmerMask,\n animation: 'skeleton-shimmer var(--duration, 1.5s) linear infinite',\n pointerEvents: 'none',\n});\n"],"mappings":";;AAEA,IAAM,cACJ;AAIF,IAAa,uBAAuB,YAAY;CAC9C,SAAS;CACT,UAAU;CACV,OAAO;CACP,iBAAiB;CACjB,WAAW;CACX,iBAAiB;CACjB,WAAW;CACX,eAAe;AACjB,CAAC"}
@@ -0,0 +1,25 @@
1
+ declare const inputAddonRecipe: import('@chakra-ui/react').RecipeDefinition<{
2
+ position: {
3
+ start: {
4
+ borderInlineStartWidth: "1";
5
+ borderStartStartRadius: "4";
6
+ borderEndStartRadius: "4";
7
+ };
8
+ end: {
9
+ borderInlineWidth: "1";
10
+ borderStartEndRadius: "4";
11
+ borderEndEndRadius: "4";
12
+ };
13
+ };
14
+ size: {
15
+ md: {
16
+ paddingInline: string;
17
+ textStyle: "body/md/regular";
18
+ };
19
+ lg: {
20
+ paddingInline: string;
21
+ textStyle: "body/lg/regular";
22
+ };
23
+ };
24
+ }>;
25
+ export default inputAddonRecipe;
@@ -0,0 +1,54 @@
1
+ import { rem } from "../themeUtils.js";
2
+ import { defineRecipe } from "@chakra-ui/react/styled-system";
3
+ //#region lib/theme/recipes/InputAddon.recipe.ts
4
+ var inputAddonRecipe = defineRecipe({
5
+ className: "input-addon",
6
+ base: {
7
+ alignItems: "center",
8
+ alignSelf: "stretch",
9
+ background: "background/secondary",
10
+ borderBlockWidth: "1",
11
+ borderColor: "border/regular",
12
+ borderStyle: "solid",
13
+ color: "text/body",
14
+ display: "flex",
15
+ flexShrink: 0,
16
+ justifyContent: "center",
17
+ whiteSpace: "nowrap",
18
+ _readOnly: { background: "background/disabled" },
19
+ _disabled: {
20
+ background: "background/disabled",
21
+ borderColor: "border/disabled",
22
+ color: "text/disabled"
23
+ }
24
+ },
25
+ variants: {
26
+ position: {
27
+ start: {
28
+ borderInlineStartWidth: "1",
29
+ borderStartStartRadius: "4",
30
+ borderEndStartRadius: "4"
31
+ },
32
+ end: {
33
+ borderInlineWidth: "1",
34
+ borderStartEndRadius: "4",
35
+ borderEndEndRadius: "4"
36
+ }
37
+ },
38
+ size: {
39
+ md: {
40
+ paddingInline: rem(11),
41
+ textStyle: "body/md/regular"
42
+ },
43
+ lg: {
44
+ paddingInline: rem(15),
45
+ textStyle: "body/lg/regular"
46
+ }
47
+ }
48
+ },
49
+ defaultVariants: { size: "lg" }
50
+ });
51
+ //#endregion
52
+ export { inputAddonRecipe as default };
53
+
54
+ //# sourceMappingURL=InputAddon.recipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputAddon.recipe.js","names":[],"sources":["../../../lib/theme/recipes/InputAddon.recipe.ts"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nconst inputAddonRecipe = defineRecipe({\n className: 'input-addon',\n base: {\n alignItems: 'center',\n alignSelf: 'stretch',\n background: 'background/secondary',\n borderBlockWidth: '1',\n borderColor: 'border/regular',\n borderStyle: 'solid',\n color: 'text/body',\n display: 'flex',\n flexShrink: 0,\n justifyContent: 'center',\n whiteSpace: 'nowrap',\n _readOnly: {\n background: 'background/disabled',\n },\n _disabled: {\n background: 'background/disabled',\n borderColor: 'border/disabled',\n color: 'text/disabled',\n },\n },\n variants: {\n position: {\n start: {\n borderInlineStartWidth: '1',\n borderStartStartRadius: '4',\n borderEndStartRadius: '4',\n },\n end: {\n borderInlineWidth: '1',\n borderStartEndRadius: '4',\n borderEndEndRadius: '4',\n },\n },\n size: {\n md: { paddingInline: rem(11), textStyle: 'body/md/regular' },\n lg: { paddingInline: rem(15), textStyle: 'body/lg/regular' },\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n\nexport default inputAddonRecipe;\n"],"mappings":";;;AAIA,IAAM,mBAAmB,aAAa;CACpC,WAAW;CACX,MAAM;EACJ,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,aAAa;EACb,aAAa;EACb,OAAO;EACP,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,WAAW,EACT,YAAY,sBACd;EACA,WAAW;GACT,YAAY;GACZ,aAAa;GACb,OAAO;EACT;CACF;CACA,UAAU;EACR,UAAU;GACR,OAAO;IACL,wBAAwB;IACxB,wBAAwB;IACxB,sBAAsB;GACxB;GACA,KAAK;IACH,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;GACtB;EACF;EACA,MAAM;GACJ,IAAI;IAAE,eAAe,IAAI,EAAE;IAAG,WAAW;GAAkB;GAC3D,IAAI;IAAE,eAAe,IAAI,EAAE;IAAG,WAAW;GAAkB;EAC7D;CACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC"}
@@ -1,10 +1,9 @@
1
1
  declare const skeletonRecipe: import('@chakra-ui/react').RecipeDefinition<{
2
2
  loading: {
3
3
  true: {
4
- backgroundImage: "linear-gradient(270deg,var(--start-color),var(--end-color),var(--end-color),var(--start-color))";
5
- backgroundSize: "200% 100%";
6
- animation: "bg-position var(--duration, 1.5s) linear infinite";
7
- borderRadius: "4";
4
+ position: "relative";
5
+ overflow: "hidden";
6
+ backgroundColor: "utilities/skeleton";
8
7
  borderColor: "transparent";
9
8
  backgroundClip: "padding-box";
10
9
  cursor: "default";
@@ -12,9 +11,10 @@ declare const skeletonRecipe: import('@chakra-ui/react').RecipeDefinition<{
12
11
  pointerEvents: "none";
13
12
  userSelect: "none";
14
13
  flexShrink: "0";
15
- '&::before, &::after, *': {
14
+ '&::before, *': {
16
15
  visibility: "hidden";
17
16
  };
17
+ '&::after': import('@chakra-ui/react').SystemStyleObject;
18
18
  };
19
19
  false: {
20
20
  animation: "fade-in var(--fade-duration, 0.1s) ease-out !important";