@a-type/ui 3.0.28 → 3.0.30

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 (51) hide show
  1. package/dist/cjs/components/button/Button.d.ts +3 -0
  2. package/dist/cjs/components/button/Button.js +16 -6
  3. package/dist/cjs/components/button/Button.js.map +1 -1
  4. package/dist/cjs/components/emojiPicker/EmojiPicker.d.ts +2 -1
  5. package/dist/cjs/components/emojiPicker/EmojiPicker.js +4 -3
  6. package/dist/cjs/components/emojiPicker/EmojiPicker.js.map +1 -1
  7. package/dist/cjs/components/emojiPicker/EmojiPicker.stories.d.ts +1 -1
  8. package/dist/cjs/components/forms/EmojiField.d.ts +7 -0
  9. package/dist/cjs/components/forms/EmojiField.js +41 -0
  10. package/dist/cjs/components/forms/EmojiField.js.map +1 -0
  11. package/dist/cjs/components/forms/FormikForm.d.ts +2 -0
  12. package/dist/cjs/components/forms/FormikForm.js +2 -0
  13. package/dist/cjs/components/forms/FormikForm.js.map +1 -1
  14. package/dist/cjs/components/forms/FormikForm.stories.d.ts +2 -0
  15. package/dist/cjs/components/forms/FormikForm.stories.js +3 -1
  16. package/dist/cjs/components/forms/FormikForm.stories.js.map +1 -1
  17. package/dist/cjs/components/slider/Slider.js +4 -4
  18. package/dist/cjs/components/slider/Slider.js.map +1 -1
  19. package/dist/cjs/components/slider/Slider.stories.d.ts +2 -0
  20. package/dist/cjs/components/slider/Slider.stories.js +32 -1
  21. package/dist/cjs/components/slider/Slider.stories.js.map +1 -1
  22. package/dist/css/main.css +4 -4
  23. package/dist/esm/components/button/Button.d.ts +3 -0
  24. package/dist/esm/components/button/Button.js +17 -7
  25. package/dist/esm/components/button/Button.js.map +1 -1
  26. package/dist/esm/components/emojiPicker/EmojiPicker.d.ts +2 -1
  27. package/dist/esm/components/emojiPicker/EmojiPicker.js +4 -3
  28. package/dist/esm/components/emojiPicker/EmojiPicker.js.map +1 -1
  29. package/dist/esm/components/emojiPicker/EmojiPicker.stories.d.ts +1 -1
  30. package/dist/esm/components/forms/EmojiField.d.ts +7 -0
  31. package/dist/esm/components/forms/EmojiField.js +35 -0
  32. package/dist/esm/components/forms/EmojiField.js.map +1 -0
  33. package/dist/esm/components/forms/FormikForm.d.ts +2 -0
  34. package/dist/esm/components/forms/FormikForm.js +2 -0
  35. package/dist/esm/components/forms/FormikForm.js.map +1 -1
  36. package/dist/esm/components/forms/FormikForm.stories.d.ts +2 -0
  37. package/dist/esm/components/forms/FormikForm.stories.js +3 -1
  38. package/dist/esm/components/forms/FormikForm.stories.js.map +1 -1
  39. package/dist/esm/components/slider/Slider.js +4 -4
  40. package/dist/esm/components/slider/Slider.js.map +1 -1
  41. package/dist/esm/components/slider/Slider.stories.d.ts +2 -0
  42. package/dist/esm/components/slider/Slider.stories.js +28 -0
  43. package/dist/esm/components/slider/Slider.stories.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/components/button/Button.tsx +27 -7
  46. package/src/components/emojiPicker/EmojiPicker.tsx +17 -3
  47. package/src/components/forms/EmojiField.tsx +64 -0
  48. package/src/components/forms/FormikForm.stories.tsx +3 -0
  49. package/src/components/forms/FormikForm.tsx +2 -0
  50. package/src/components/slider/Slider.stories.tsx +40 -0
  51. package/src/components/slider/Slider.tsx +6 -3
@@ -16,6 +16,9 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
16
16
  disableDropdownTriggerIcon?: boolean;
17
17
  }
18
18
  export declare function ButtonRoot({ className, color, emphasis, size, toggled, toggleMode, align, visuallyDisabled, visuallyFocused, loading, children, disabled, asChild, disableIconMode, disableDropdownTriggerIcon, ref, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare namespace ButtonRoot {
20
+ var displayName: string;
21
+ }
19
22
  export declare const ButtonToggleIndicator: import("react").NamedExoticComponent<{
20
23
  value: boolean;
21
24
  }>;
@@ -14,7 +14,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  import { Slot } from '@radix-ui/react-slot';
15
15
  import { clsx } from 'clsx';
16
16
  import { AnimatePresence, motion } from 'motion/react';
17
- import { Children, Fragment, memo, useCallback, useState, } from 'react';
17
+ import { Children, Fragment, memo, useCallback, useDebugValue, useState, } from 'react';
18
18
  import { withClassName } from '../../hooks.js';
19
19
  import useMergedRef from '../../hooks/useMergedRef.js';
20
20
  import { DropdownMenuTriggerIcon } from '../dropdownMenu/DropdownMenu.js';
@@ -32,12 +32,13 @@ export function ButtonRoot(_a) {
32
32
  const childArray = childArrayWithoutFragments(children);
33
33
  const iconChildCount = childArray.filter(isIconChild).length;
34
34
  const hasLabelChild = childArray.length > iconChildCount;
35
+ useDebugValue(`Children introspection: Icons: ${iconChildCount}, Label: ${hasLabelChild}, Total: ${childArray.length}`);
35
36
  const isDropdownTriggerFromContext = useIsDropdownTrigger();
36
37
  const isDropdownTrigger = !disableDropdownTriggerIcon &&
37
38
  hasLabelChild &&
38
39
  isDropdownTriggerFromContext;
39
40
  const finalRef = useMergedRef(useAnnotateWithChildParts(), ref);
40
- const buttonProps = Object.assign(Object.assign({ ref: finalRef }, props), { disabled: disabled || isLoading, 'data-disabled': visuallyDisabled, 'data-focus': visuallyFocused, 'data-size': size, 'data-loading': isLoading, 'data-has-label': hasLabelChild || undefined, 'data-has-icon': iconChildCount > 0 ? true : undefined, 'data-icon-count': iconChildCount > 0 ? iconChildCount : undefined, 'data-dropdown-trigger': isDropdownTrigger ? true : undefined, tabIndex: visuallyDisabled ? -1 : undefined, className: clsx(getButtonClassName({
41
+ const buttonProps = Object.assign(Object.assign({ ref: finalRef }, props), { disabled: disabled || isLoading, 'data-disabled': visuallyDisabled, 'data-focus': visuallyFocused, 'data-size': size, 'data-loading': isLoading, 'data-has-label': hasLabelChild, 'data-has-icon': iconChildCount > 0, 'data-icon-count': iconChildCount > 0 ? iconChildCount : undefined, 'data-dropdown-trigger': isDropdownTrigger ? true : undefined, tabIndex: visuallyDisabled ? -1 : undefined, className: clsx(getButtonClassName({
41
42
  color,
42
43
  emphasis,
43
44
  size,
@@ -59,6 +60,7 @@ export function ButtonRoot(_a) {
59
60
  (toggleMode === 'indicator' ||
60
61
  toggleMode === 'color-and-indicator') && (_jsx(ButtonToggleIndicator, { value: toggled })), children, isDropdownTrigger && (_jsx(IconLoadingProvider, { value: false, children: _jsx(DropdownMenuTriggerIcon, { asChild: true, children: _jsx(Icon, { name: "chevron" }) }) }))] })) }));
61
62
  }
63
+ ButtonRoot.displayName = 'Button';
62
64
  export const ButtonToggleIndicator = memo(function ToggleIndicator({ value, }) {
63
65
  return (_jsx(Icon, { "aria-hidden": true, name: "check", className: "transition-width w-0 ml--1", style: {
64
66
  width: value ? '15px' : 0,
@@ -66,6 +68,7 @@ export const ButtonToggleIndicator = memo(function ToggleIndicator({ value, }) {
66
68
  });
67
69
  // allows custom icons to trigger icon button behavior
68
70
  export const ButtonIcon = withClassName('div', 'icon flex-shrink-0 flex');
71
+ ButtonIcon.displayName = 'ButtonIcon';
69
72
  export const Button = Object.assign(ButtonRoot, {
70
73
  ToggleIndicator: ButtonToggleIndicator,
71
74
  Icon: ButtonIcon,
@@ -96,6 +99,7 @@ function applyPartAttributes(button) {
96
99
  icon: 0,
97
100
  label: 0,
98
101
  };
102
+ const iconNodes = [];
99
103
  button.childNodes.forEach((child) => {
100
104
  if (!(child instanceof HTMLElement || child instanceof SVGElement))
101
105
  return;
@@ -104,13 +108,17 @@ function applyPartAttributes(button) {
104
108
  if ((child instanceof HTMLElement || child instanceof SVGElement) &&
105
109
  child.classList.contains('icon')) {
106
110
  registry.icon++;
111
+ iconNodes.push(child);
107
112
  }
108
113
  else {
109
114
  registry.label++;
110
115
  }
111
116
  });
112
117
  if (button.textContent) {
113
- registry.label++;
118
+ const iconText = iconNodes.map((n) => n.textContent).join('');
119
+ const labelText = button.textContent.replace(iconText, '').trim();
120
+ if (labelText.length > 0)
121
+ registry.label++;
114
122
  }
115
123
  button.setAttribute('data-has-icon', String(registry.icon > 0));
116
124
  button.setAttribute('data-has-label', String(registry.label > 0));
@@ -121,11 +129,13 @@ function isIconChild(child) {
121
129
  return false;
122
130
  if ('type' in child) {
123
131
  const type = child.type;
124
- if (type === ButtonIcon)
125
- return true;
126
- if (type === Icon)
132
+ if (type === ButtonIcon ||
133
+ type === 'ButtonIcon' ||
134
+ type.displayName === 'ButtonIcon')
127
135
  return true;
128
- if (typeof type === 'function' && type.displayName === 'Icon')
136
+ if (type === Icon ||
137
+ type === 'Icon' ||
138
+ type.displayName === 'Icon')
129
139
  return true;
130
140
  }
131
141
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../src/components/button/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../src/components/button/Button.tsx"],"names":[],"mappings":"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"}
@@ -14,8 +14,9 @@ export type SkinTone = ReturnType<typeof useSkinTone>[0];
14
14
  export declare const EmojiPickerSkinToneSelector: (props: BoxProps) => import("react/jsx-runtime").JSX.Element;
15
15
  export interface EmojiPickerProps extends Omit<EmojiPickerRootProps, 'emoji' | 'onEmojiSelect'> {
16
16
  onValueChange: (value: string, label: string) => void;
17
+ onClear?: () => void;
17
18
  }
18
- export declare const EmojiPicker: (({ onValueChange, ...props }: EmojiPickerProps) => import("react/jsx-runtime").JSX.Element) & {
19
+ export declare const EmojiPicker: (({ onValueChange, onClear, ...props }: EmojiPickerProps) => import("react/jsx-runtime").JSX.Element) & {
19
20
  Root: import("react").FunctionComponent<Omit<EmojiPickerRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
20
21
  Search: import("react").FunctionComponent<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
21
22
  Viewport: ({ className, ...props }: EmojiPickerViewportProps) => import("react/jsx-runtime").JSX.Element;
@@ -17,10 +17,11 @@ import { withClassName, withProps } from '../../hooks.js';
17
17
  import { useLocalStorage } from '../../hooks/useStorage.js';
18
18
  import { Box } from '../box/Box.js';
19
19
  import { Button } from '../button/Button.js';
20
+ import { Icon } from '../icon/Icon.js';
20
21
  import { inputClassName } from '../input/Input.js';
21
22
  import { Spinner } from '../spinner/Spinner.js';
22
23
  export const EmojiPickerRoot = withClassName(Core.Root, 'layer-components:isolate layer-components:flex layer-components:flex-col layer-components:w-fit layer-components:h-368px layer-components:gap-sm');
23
- export const EmojiPickerSearch = withClassName(Core.Search, 'layer-components:z-10', inputClassName);
24
+ export const EmojiPickerSearch = withClassName(Core.Search, 'layer-components:z-10 layer-components:min-w-80px', inputClassName);
24
25
  export const EmojiPickerViewport = (_a) => {
25
26
  var { className } = _a, props = __rest(_a, ["className"]);
26
27
  return (_jsx(Box, { className: "flex-1 min-h-0 overflow-hidden rounded-md bg-white", children: _jsx(Core.Viewport, Object.assign({ className: "layer-components:relative layer-components:outline-hidden" }, props)) }));
@@ -50,9 +51,9 @@ export const EmojiPickerSkinToneSelector = (props) => {
50
51
  return (_jsx(Box, Object.assign({ d: "row", gap: true }, props, { children: options.map((option) => (_jsx(Button, { emphasis: "ghost", toggled: option.skinTone === skinTone, toggleMode: "color", size: "small", "aria-label": `Skin tone ${option}`, className: "text-md p-xs", onClick: () => setSkinTone(option.skinTone), children: _jsx(Button.Icon, { children: option.emoji }) }, option.skinTone))) })));
51
52
  };
52
53
  const EmojiPickerPrefab = (_a) => {
53
- var { onValueChange } = _a, props = __rest(_a, ["onValueChange"]);
54
+ var { onValueChange, onClear } = _a, props = __rest(_a, ["onValueChange", "onClear"]);
54
55
  const [skinTone] = useEmojiSkinTone();
55
- return (_jsxs(EmojiPickerRoot, Object.assign({}, props, { onEmojiSelect: (emoji) => onValueChange(emoji.emoji, emoji.label), skinTone: skinTone, children: [_jsx(EmojiPickerSearch, {}), _jsxs(EmojiPickerViewport, { children: [_jsx(EmojiPickerList, {}), _jsx(EmojiPickerLoading, {}), _jsx(EmojiPickerEmpty, {})] }), _jsx(EmojiPickerSkinToneSelector, { className: "mr-auto" })] })));
56
+ return (_jsxs(EmojiPickerRoot, Object.assign({}, props, { onEmojiSelect: (emoji) => onValueChange(emoji.emoji, emoji.label), skinTone: skinTone, children: [_jsxs(Box, { col: true, gap: true, items: "start", full: "width", children: [_jsx(EmojiPickerSearch, {}), onClear && (_jsxs(Button, { emphasis: "ghost", size: "small", onClick: () => onClear(), children: [_jsx(Icon, { name: "x" }), "Clear selection"] }))] }), _jsxs(EmojiPickerViewport, { children: [_jsx(EmojiPickerList, {}), _jsx(EmojiPickerLoading, {}), _jsx(EmojiPickerEmpty, {})] }), _jsx(EmojiPickerSkinToneSelector, { className: "mr-auto" })] })));
56
57
  };
57
58
  export const EmojiPicker = Object.assign(EmojiPickerPrefab, {
58
59
  Root: EmojiPickerRoot,
@@ -1 +1 @@
1
- {"version":3,"file":"EmojiPicker.js","sourceRoot":"","sources":["../../../../src/components/emojiPicker/EmojiPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmojiPicker.js","sourceRoot":"","sources":["../../../../src/components/emojiPicker/EmojiPicker.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { StoryObj } from '@storybook/react';
2
2
  import { EmojiPicker } from './EmojiPicker.js';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: (({ onValueChange, ...props }: import("./EmojiPicker.js").EmojiPickerProps) => import("react/jsx-runtime").JSX.Element) & {
5
+ component: (({ onValueChange, onClear, ...props }: import("./EmojiPicker.js").EmojiPickerProps) => import("react/jsx-runtime").JSX.Element) & {
6
6
  Root: import("react").FunctionComponent<Omit<import("frimousse").EmojiPickerRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
7
  Search: import("react").FunctionComponent<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
8
8
  Viewport: ({ className, ...props }: import("frimousse").EmojiPickerViewportProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { ButtonProps } from '../button/Button.js';
2
+ export interface EmojiFieldProps extends ButtonProps {
3
+ name: string;
4
+ label?: string;
5
+ required?: string;
6
+ }
7
+ export declare function EmojiField({ name, label, className, required, id: providedId, ...rest }: EmojiFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,35 @@
1
+ // @unocss-include
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import clsx from 'clsx';
15
+ import { useField } from 'formik';
16
+ import { useIdOrGenerated } from '../../hooks/useIdOrGenerated.js';
17
+ import { Box } from '../box/Box.js';
18
+ import { Button } from '../button/Button.js';
19
+ import { EmojiPicker } from '../emojiPicker/EmojiPicker.js';
20
+ import { Icon } from '../icon/Icon.js';
21
+ import { Popover } from '../popover/Popover.js';
22
+ import { HorizontalFieldLabel } from './FieldLabel.js';
23
+ export function EmojiField(_a) {
24
+ var { name, label, className, required, id: providedId } = _a, rest = __rest(_a, ["name", "label", "className", "required", "id"]);
25
+ const [props, _, tools] = useField({ name });
26
+ const id = useIdOrGenerated(providedId);
27
+ return (_jsxs(Box, { gap: "sm", className: className, children: [_jsxs(Popover, { children: [_jsx(Popover.Trigger, { asChild: true, children: _jsx(Button, Object.assign({ id: id, "aria-label": "Select emoji", size: "small", className: clsx('p-0 transition-color', className) }, rest, { children: _jsx(Button.Icon, { className: "text-[19px] w-touch h-touch flex items-center justify-center", children: props.value || _jsx(Icon, { name: "smile" }) }) })) }), _jsx(Popover.Content, { children: _jsx(EmojiPicker, { onValueChange: (v) => {
28
+ tools.setValue(v);
29
+ }, onClear: required
30
+ ? undefined
31
+ : () => {
32
+ tools.setValue('');
33
+ }, id: id }) })] }), label && (_jsx(HorizontalFieldLabel, { htmlFor: id, children: label }))] }));
34
+ }
35
+ //# sourceMappingURL=EmojiField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiField.js","sourceRoot":"","sources":["../../../../src/components/forms/EmojiField.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAQvD,MAAM,UAAU,UAAU,CAAC,EAOT;QAPS,EAC1B,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,EAAE,EAAE,UAAU,OAEG,EADd,IAAI,cANmB,gDAO1B,CADO;IAEP,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CACN,MAAC,GAAG,IAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAE,SAAS,aACjC,MAAC,OAAO,eACP,KAAC,OAAO,CAAC,OAAO,IAAC,OAAO,kBACvB,KAAC,MAAM,kBACN,EAAE,EAAE,EAAE,gBACK,cAAc,EACzB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,IAC9C,IAAI,cAER,KAAC,MAAM,CAAC,IAAI,IAAC,SAAS,EAAC,8DAA8D,YACnF,KAAK,CAAC,KAAK,IAAI,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACxB,IACN,GACQ,EAClB,KAAC,OAAO,CAAC,OAAO,cACf,KAAC,WAAW,IACX,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gCACpB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACnB,CAAC,EACD,OAAO,EACN,QAAQ;gCACP,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,GAAG,EAAE;oCACL,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gCACnB,CAAC,EAEL,EAAE,EAAE,EAAE,GACL,GACe,IACT,EACT,KAAK,IAAI,CACT,KAAC,oBAAoB,IAAC,OAAO,EAAE,EAAE,YAAG,KAAK,GAAwB,CACjE,IACI,CACN,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { FormikConfig, FormikValues } from 'formik';
2
2
  import { CheckboxField } from './CheckboxField.js';
3
+ import { EmojiField } from './EmojiField.js';
3
4
  import { NumberStepperField } from './NumberStepperField.js';
4
5
  import { SubmitButton } from './SubmitButton.js';
5
6
  import { SwitchField } from './SwitchField.js';
@@ -21,4 +22,5 @@ export declare const FormikForm: typeof FormikFormRoot & {
21
22
  ToggleGroupField: (({ name, label, required, className, id, ...props }: import("./ToggleGroupField.js").ToggleGroupFieldProps) => import("react/jsx-runtime").JSX.Element) & {
22
23
  Item: import("react").FunctionComponent<import("@radix-ui/react-toggle-group").ToggleGroupItemProps & import("react").RefAttributes<HTMLButtonElement>>;
23
24
  };
25
+ EmojiField: typeof EmojiField;
24
26
  };
@@ -14,6 +14,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { Formik } from 'formik';
15
15
  import { useCallback } from 'react';
16
16
  import { CheckboxField } from './CheckboxField.js';
17
+ import { EmojiField } from './EmojiField.js';
17
18
  import { Form } from './Form.js';
18
19
  import { NumberStepperField } from './NumberStepperField.js';
19
20
  import { SubmitButton } from './SubmitButton.js';
@@ -45,5 +46,6 @@ export const FormikForm = Object.assign(FormikFormRoot, {
45
46
  CheckboxField,
46
47
  SwitchField,
47
48
  ToggleGroupField,
49
+ EmojiField,
48
50
  });
49
51
  //# sourceMappingURL=FormikForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormikForm.js","sourceRoot":"","sources":["../../../../src/components/forms/FormikForm.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAA6C,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,cAAc,CAA8B,EAKlC;QALkC,EAC3D,SAAS,EACT,QAAQ,EACR,QAAQ,OAEiB,EADtB,KAAK,cAJmD,qCAK3D,CADQ;IAER,MAAM,eAAe,GAAG,WAAW,CAClC,KAAK,EAAE,MAAc,EAAE,GAA0B,EAAE,EAAE;QACpD,IAAI,CAAC;YACJ,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,MAAM,EAAE,GAAG,CAAC,CAAA,CAAC;QACtC,CAAC;gBAAS,CAAC;YACV,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IAEF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CACN,KAAC,MAAM,kBAAS,QAAQ,EAAE,eAAe,IAAM,KAAK,cAClD,CAAC,MAAM,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,SAAS,EAAE,SAAS,YAAG,QAAQ,CAAC,MAAM,CAAC,GAAQ,IAC1D,CACT,CAAC;IACH,CAAC;IAED,OAAO,CACN,KAAC,MAAM,kBAAS,QAAQ,EAAE,eAAe,IAAM,KAAK,cACnD,KAAC,IAAI,IAAC,SAAS,EAAE,SAAS,YAAG,QAAQ,GAAQ,IACrC,CACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;IACvD,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,gBAAgB;CAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"FormikForm.js","sourceRoot":"","sources":["../../../../src/components/forms/FormikForm.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAA6C,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,cAAc,CAA8B,EAKlC;QALkC,EAC3D,SAAS,EACT,QAAQ,EACR,QAAQ,OAEiB,EADtB,KAAK,cAJmD,qCAK3D,CADQ;IAER,MAAM,eAAe,GAAG,WAAW,CAClC,KAAK,EAAE,MAAc,EAAE,GAA0B,EAAE,EAAE;QACpD,IAAI,CAAC;YACJ,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,MAAM,EAAE,GAAG,CAAC,CAAA,CAAC;QACtC,CAAC;gBAAS,CAAC;YACV,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IAEF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CACN,KAAC,MAAM,kBAAS,QAAQ,EAAE,eAAe,IAAM,KAAK,cAClD,CAAC,MAAM,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,SAAS,EAAE,SAAS,YAAG,QAAQ,CAAC,MAAM,CAAC,GAAQ,IAC1D,CACT,CAAC;IACH,CAAC;IAED,OAAO,CACN,KAAC,MAAM,kBAAS,QAAQ,EAAE,eAAe,IAAM,KAAK,cACnD,KAAC,IAAI,IAAC,SAAS,EAAE,SAAS,YAAG,QAAQ,GAAQ,IACrC,CACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;IACvD,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,UAAU;CACV,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { StoryObj } from '@storybook/react';
2
2
  import { CheckboxField } from './CheckboxField.js';
3
+ import { EmojiField } from './EmojiField.js';
3
4
  import { FormikForm } from './FormikForm.js';
4
5
  import { NumberStepperField } from './NumberStepperField.js';
5
6
  import { SubmitButton } from './SubmitButton.js';
@@ -18,6 +19,7 @@ declare const meta: {
18
19
  ToggleGroupField: (({ name, label, required, className, id, ...props }: import("./ToggleGroupField.js").ToggleGroupFieldProps) => import("react/jsx-runtime").JSX.Element) & {
19
20
  Item: import("react").FunctionComponent<import("@radix-ui/react-toggle-group").ToggleGroupItemProps & import("react").RefAttributes<HTMLButtonElement>>;
20
21
  };
22
+ EmojiField: typeof EmojiField;
21
23
  };
22
24
  argTypes: {};
23
25
  parameters: {
@@ -12,6 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  };
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  import { CheckboxField } from './CheckboxField.js';
15
+ import { EmojiField } from './EmojiField.js';
15
16
  import { FormikForm } from './FormikForm.js';
16
17
  import { NumberStepperField } from './NumberStepperField.js';
17
18
  import { SubmitButton } from './SubmitButton.js';
@@ -42,7 +43,8 @@ export const Default = {
42
43
  tos: false,
43
44
  newsletter: false,
44
45
  plan: 'basic',
45
- } }, args, { children: [_jsx(TextField, { name: "email", type: "email", label: "Email" }), _jsx(TextField, { name: "password", type: "password", label: "Password" }), _jsx(NumberStepperField, { name: "age", label: "Age", min: 13, max: 100 }), _jsx(CheckboxField, { name: "tos", label: "I agree" }), _jsx(SwitchField, { name: "newsletter", label: "Subscribe to newsletter" }), _jsxs(ToggleGroupField, { type: "single", name: "plan", label: "Select your plan", required: true, children: [_jsx(ToggleGroupField.Item, { value: "basic", children: "Basic" }), _jsx(ToggleGroupField.Item, { value: "pro", children: "Pro" }), _jsx(ToggleGroupField.Item, { value: "enterprise", children: "Enterprise" })] }), _jsx(SubmitButton, { children: "Sign up" })] })));
46
+ emoji: '',
47
+ } }, args, { children: [_jsx(TextField, { name: "email", type: "email", label: "Email" }), _jsx(TextField, { name: "password", type: "password", label: "Password" }), _jsx(NumberStepperField, { name: "age", label: "Age", min: 13, max: 100 }), _jsx(CheckboxField, { name: "tos", label: "I agree" }), _jsx(SwitchField, { name: "newsletter", label: "Subscribe to newsletter" }), _jsxs(ToggleGroupField, { type: "single", name: "plan", label: "Select your plan", required: true, children: [_jsx(ToggleGroupField.Item, { value: "basic", children: "Basic" }), _jsx(ToggleGroupField.Item, { value: "pro", children: "Pro" }), _jsx(ToggleGroupField.Item, { value: "enterprise", children: "Enterprise" })] }), _jsx(EmojiField, { name: "emoji", label: "Favorite Emoji" }), _jsx(SubmitButton, { children: "Sign up" })] })));
46
48
  },
47
49
  };
48
50
  //# sourceMappingURL=FormikForm.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormikForm.stories.js","sourceRoot":"","sources":["../../../../src/components/forms/FormikForm.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACiC,CAAC;AAEpC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,IAAI,EAAE;QACL,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;KACD;IACD,MAAM,CAAC,EAA0B;YAA1B,EAAE,aAAa,OAAW,EAAN,IAAI,cAAxB,iBAA0B,CAAF;QAC9B,OAAO,CACN,MAAC,UAAU,kBACV,aAAa,EAAE;gBACd,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,KAAK;gBACV,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,OAAO;aACb,IACG,IAAI,eAER,KAAC,SAAS,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,GAAG,EACrD,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,GAAG,EAC9D,KAAC,kBAAkB,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAI,EAChE,KAAC,aAAa,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,GAAG,EAC5C,KAAC,WAAW,IAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,yBAAyB,GAAG,EACjE,MAAC,gBAAgB,IAChB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,kBAAkB,EACxB,QAAQ,mBAER,KAAC,gBAAgB,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,sBAA8B,EAClE,KAAC,gBAAgB,CAAC,IAAI,IAAC,KAAK,EAAC,KAAK,oBAA4B,EAC9D,KAAC,gBAAgB,CAAC,IAAI,IAAC,KAAK,EAAC,YAAY,2BAEjB,IACN,EACnB,KAAC,YAAY,0BAAuB,KACxB,CACb,CAAC;IACH,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"FormikForm.stories.js","sourceRoot":"","sources":["../../../../src/components/forms/FormikForm.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACiC,CAAC;AAEpC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,IAAI,EAAE;QACL,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;KACD;IACD,MAAM,CAAC,EAA0B;YAA1B,EAAE,aAAa,OAAW,EAAN,IAAI,cAAxB,iBAA0B,CAAF;QAC9B,OAAO,CACN,MAAC,UAAU,kBACV,aAAa,EAAE;gBACd,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,KAAK;gBACV,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE;aACT,IACG,IAAI,eAER,KAAC,SAAS,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,GAAG,EACrD,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,GAAG,EAC9D,KAAC,kBAAkB,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAI,EAChE,KAAC,aAAa,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,GAAG,EAC5C,KAAC,WAAW,IAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,yBAAyB,GAAG,EACjE,MAAC,gBAAgB,IAChB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,kBAAkB,EACxB,QAAQ,mBAER,KAAC,gBAAgB,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,sBAA8B,EAClE,KAAC,gBAAgB,CAAC,IAAI,IAAC,KAAK,EAAC,KAAK,oBAA4B,EAC9D,KAAC,gBAAgB,CAAC,IAAI,IAAC,KAAK,EAAC,YAAY,2BAEjB,IACN,EACnB,KAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,gBAAgB,GAAG,EAClD,KAAC,YAAY,0BAAuB,KACxB,CACb,CAAC;IACH,CAAC;CACD,CAAC"}
@@ -14,10 +14,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  import * as SliderPrimitive from '@radix-ui/react-slider';
15
15
  import clsx from 'clsx';
16
16
  import { withClassName } from '../../hooks.js';
17
- export const SliderRoot = withClassName(SliderPrimitive.Root, 'layer-components:relative layer-components:flex layer-components:items-center layer-components:select-none layer-components:touch-none layer-components:w-full layer-components:h-30px layer-components:translate-z-0');
18
- export const SliderTrack = withClassName(SliderPrimitive.Track, 'layer-components:bg-transparent layer-components:relative layer-components:grow layer-components:rounded-lg layer-components:h-9px layer-components:border layer-components:border-1 layer-components:border-solid layer-components:border-black');
19
- export const SliderRange = withClassName(SliderPrimitive.Range, 'layer-components:absolute layer-components:bg-main layer-components:rounded-lg layer-components:h-full');
20
- export const SliderThumb = withClassName(SliderPrimitive.Thumb, 'layer-components:block layer-components:cursor-pointer layer-components:w-5 layer-components:h-5 layer-components:bg-white layer-components:shadow-sm layer-components:rounded-lg layer-components:ring-2 layer-components:ring-black layer-components:touch-none layer-components:transition-all', 'layer-components:hover:shadow-md', 'layer-components:active:shadow-lg layer-components:active:ring-4 layer-components:active:ring-main-dark layer-components:active:ring-opacity-50 layer-components:active:bg-main-light', 'layer-components:focus-visible:shadow-lg layer-components:focus-visible:ring-4 layer-components:focus-visible:ring-accent layer-components:focus-visible:ring-opacity-50 layer-components:focus-visible:outline-none layer-components:focus-visible:bg-main-light', 'layer-components:focus:outline-none', 'layer-components:disabled:opacity-50');
17
+ export const SliderRoot = withClassName(SliderPrimitive.Root, 'layer-components:relative layer-components:flex layer-components:items-center layer-components:select-none layer-components:touch-none layer-components:w-full layer-components:h-30px layer-components:translate-z-0', 'layer-variants:[&[data-orientation=vertical]]:flex-col layer-variants:[&[data-orientation=vertical]]:h-full layer-variants:[&[data-orientation=vertical]]:w-30px');
18
+ export const SliderTrack = withClassName(SliderPrimitive.Track, 'layer-components:bg-transparent layer-components:relative layer-components:grow layer-components:rounded-lg layer-components:h-9px layer-components:border layer-components:border-1 layer-components:border-solid layer-components:border-black layer-components:transition-colors', 'layer-variants:[&[data-orientation=vertical]]:w-9px layer-variants:[&[data-orientation=vertical]]:h-full layer-variants:[&[data-orientation=vertical]]:flex-1');
19
+ export const SliderRange = withClassName(SliderPrimitive.Range, 'layer-components:absolute layer-components:bg-main layer-components:rounded-lg layer-components:h-full layer-components:transition-colors', 'layer-variants:[&[data-orientation=vertical]]:w-full layer-variants:[&[data-orientation=vertical]]:h-auto');
20
+ export const SliderThumb = withClassName(SliderPrimitive.Thumb, 'layer-components:flex layer-components:items-center layer-components:justify-center layer-components:leading-none layer-components:cursor-pointer layer-components:w-5 layer-components:h-5 layer-components:bg-white layer-components:shadow-sm layer-components:rounded-lg layer-components:ring-2 layer-components:ring-black layer-components:touch-none layer-components:transition-all', 'layer-components:hover:shadow-md', 'layer-components:active:shadow-lg layer-components:active:ring-4 layer-components:active:ring-main-dark layer-components:active:ring-opacity-50 layer-components:active:bg-main-light', 'layer-components:focus-visible:shadow-lg layer-components:focus-visible:ring-4 layer-components:focus-visible:ring-accent layer-components:focus-visible:ring-opacity-50 layer-components:focus-visible:outline-none layer-components:focus-visible:bg-main-light', 'layer-components:focus:outline-none', 'layer-components:disabled:opacity-50');
21
21
  export const Slider = Object.assign(function Slider(_a) {
22
22
  var { ref, label, color, className } = _a, props = __rest(_a, ["ref", "label", "color", "className"]);
23
23
  return (_jsxs(SliderRoot, Object.assign({ ref: ref, className: clsx(color && `palette-${color}`, className) }, props, { children: [_jsx(SliderTrack, { children: _jsx(SliderRange, { "data-color": color }) }), _jsx(SliderThumb, { "aria-label": label, "data-color": color })] })));
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CACtC,eAAe,CAAC,IAAI,EACpB,kGAAkG,CAClG,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,CAAC,KAAK,EACrB,4GAA4G,CAC5G,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,CAAC,KAAK,EACrB,uDAAuD,CACvD,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,CAAC,KAAK,EACrB,2HAA2H,EAC3H,oCAAoC,EACpC,yFAAyF,EACzF,0GAA0G,EAC1G,uCAAuC,EACvC,wCAAwC,CACxC,CAAC;AAOF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAClC,SAAS,MAAM,CAAC,EAQf;QARe,EACf,GAAG,EACH,KAAK,EACL,KAAK,EACL,SAAS,OAIT,EAHG,KAAK,cALO,sCAMf,CADQ;IAIR,OAAO,CACN,MAAC,UAAU,kBACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,WAAW,KAAK,EAAE,EAAE,SAAS,CAAC,IACnD,KAAK,eAET,KAAC,WAAW,cACX,KAAC,WAAW,kBAAa,KAAK,GAAI,GACrB,EACd,KAAC,WAAW,kBAAa,KAAK,gBAAc,KAAK,GAAI,KACzC,CACb,CAAC;AACH,CAAC,EACD;IACC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;CAClB,CACD,CAAC"}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CACtC,eAAe,CAAC,IAAI,EACpB,kGAAkG,EAClG,wEAAwE,CACxE,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,CAAC,KAAK,EACrB,8HAA8H,EAC9H,qEAAqE,CACrE,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,CAAC,KAAK,EACrB,yEAAyE,EACzE,+DAA+D,CAC/D,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,CAAC,KAAK,EACrB,mKAAmK,EACnK,oCAAoC,EACpC,yFAAyF,EACzF,0GAA0G,EAC1G,uCAAuC,EACvC,wCAAwC,CACxC,CAAC;AAOF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAClC,SAAS,MAAM,CAAC,EAQf;QARe,EACf,GAAG,EACH,KAAK,EACL,KAAK,EACL,SAAS,OAIT,EAHG,KAAK,cALO,sCAMf,CADQ;IAIR,OAAO,CACN,MAAC,UAAU,kBACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,WAAW,KAAK,EAAE,EAAE,SAAS,CAAC,IACnD,KAAK,eAET,KAAC,WAAW,cACX,KAAC,WAAW,kBAAa,KAAK,GAAI,GACrB,EACd,KAAC,WAAW,kBAAa,KAAK,gBAAc,KAAK,GAAI,KACzC,CACb,CAAC;AACH,CAAC,EACD;IACC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;CAClB,CACD,CAAC"}
@@ -20,3 +20,5 @@ declare const meta: {
20
20
  export default meta;
21
21
  type Story = StoryObj<typeof Slider>;
22
22
  export declare const Default: Story;
23
+ export declare const Vertical: Story;
24
+ export declare const CustomStyles: Story;
@@ -1,4 +1,7 @@
1
1
  // @unocss-include
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import clsx from 'clsx';
4
+ import { useState } from 'react';
2
5
  import { Slider } from './Slider.js';
3
6
  const meta = {
4
7
  title: 'Components/Slider',
@@ -10,4 +13,29 @@ const meta = {
10
13
  };
11
14
  export default meta;
12
15
  export const Default = {};
16
+ export const Vertical = {
17
+ args: {
18
+ orientation: 'vertical',
19
+ style: { height: '200px' },
20
+ },
21
+ };
22
+ export const CustomStyles = {
23
+ args: {
24
+ orientation: 'vertical',
25
+ style: { height: '200px' },
26
+ min: -2,
27
+ max: 2,
28
+ defaultValue: [0],
29
+ },
30
+ render: (args) => {
31
+ const [value, setValue] = useState([0]);
32
+ return (_jsxs(Slider.Root, Object.assign({ value: value, onValueChange: setValue }, args, { children: [_jsx(Slider.Track, { className: clsx({
33
+ 'bg-attention': value[0] === -2,
34
+ 'bg-attention-light': value[0] === -1,
35
+ 'bg-main': value[0] === 0,
36
+ 'bg-success-light': value[0] === 1,
37
+ 'bg-success': value[0] === 2,
38
+ }) }), _jsx(Slider.Thumb, { className: "w-24px h-24px", children: _jsx("div", { className: "text-lg", children: ['😭', '😔', '😐', '😊', '😃'][value[0] + 2] }) })] })));
39
+ },
40
+ };
13
41
  //# sourceMappingURL=Slider.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.stories.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CAC6B,CAAC;AAEhC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"Slider.stories.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.stories.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CAC6B,CAAC;AAEhC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC9B,IAAI,EAAE;QACL,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;KAC1B;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAU;IAClC,IAAI,EAAE;QACL,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QAC1B,GAAG,EAAE,CAAC,CAAC;QACP,GAAG,EAAE,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CACN,MAAC,MAAM,CAAC,IAAI,kBAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,IAAM,IAAI,eAC3D,KAAC,MAAM,CAAC,KAAK,IACZ,SAAS,EAAE,IAAI,CAAC;wBACf,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC/B,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACrC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;wBACzB,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;wBAClC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;qBAC5B,CAAC,GACD,EACF,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,eAAe,YACtC,cAAK,SAAS,EAAC,SAAS,YACtB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GACxC,GACQ,KACF,CACd,CAAC;IACH,CAAC;CACD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a-type/ui",
3
- "version": "3.0.28",
3
+ "version": "3.0.30",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "url": "https://github.com/a-type/ui"
@@ -9,6 +9,7 @@ import {
9
9
  ReactNode,
10
10
  Ref,
11
11
  useCallback,
12
+ useDebugValue,
12
13
  useState,
13
14
  } from 'react';
14
15
  import { withClassName } from '../../hooks.js';
@@ -72,6 +73,10 @@ export function ButtonRoot({
72
73
  const iconChildCount = childArray.filter(isIconChild).length;
73
74
  const hasLabelChild = childArray.length > iconChildCount;
74
75
 
76
+ useDebugValue(
77
+ `Children introspection: Icons: ${iconChildCount}, Label: ${hasLabelChild}, Total: ${childArray.length}`,
78
+ );
79
+
75
80
  const isDropdownTriggerFromContext = useIsDropdownTrigger();
76
81
  const isDropdownTrigger =
77
82
  !disableDropdownTriggerIcon &&
@@ -88,8 +93,8 @@ export function ButtonRoot({
88
93
  'data-focus': visuallyFocused,
89
94
  'data-size': size,
90
95
  'data-loading': isLoading,
91
- 'data-has-label': hasLabelChild || undefined,
92
- 'data-has-icon': iconChildCount > 0 ? true : undefined,
96
+ 'data-has-label': hasLabelChild,
97
+ 'data-has-icon': iconChildCount > 0,
93
98
  'data-icon-count': iconChildCount > 0 ? iconChildCount : undefined,
94
99
  'data-dropdown-trigger': isDropdownTrigger ? true : undefined,
95
100
  tabIndex: visuallyDisabled ? -1 : undefined,
@@ -155,6 +160,7 @@ export function ButtonRoot({
155
160
  </IconLoadingProvider>
156
161
  );
157
162
  }
163
+ ButtonRoot.displayName = 'Button';
158
164
 
159
165
  export const ButtonToggleIndicator = memo(function ToggleIndicator({
160
166
  value,
@@ -176,6 +182,7 @@ export const ButtonToggleIndicator = memo(function ToggleIndicator({
176
182
 
177
183
  // allows custom icons to trigger icon button behavior
178
184
  export const ButtonIcon = withClassName('div', 'icon flex-shrink-0 flex');
185
+ ButtonIcon.displayName = 'ButtonIcon';
179
186
 
180
187
  export const Button = Object.assign(ButtonRoot, {
181
188
  ToggleIndicator: ButtonToggleIndicator,
@@ -212,6 +219,7 @@ function applyPartAttributes(button: HTMLButtonElement) {
212
219
  icon: 0,
213
220
  label: 0,
214
221
  };
222
+ const iconNodes: (HTMLElement | SVGElement)[] = [];
215
223
  button.childNodes.forEach((child) => {
216
224
  if (!(child instanceof HTMLElement || child instanceof SVGElement)) return;
217
225
  if (child.style.display === 'none' || child.style.width === '0') return; // skip hidden elements
@@ -220,12 +228,15 @@ function applyPartAttributes(button: HTMLButtonElement) {
220
228
  child.classList.contains('icon')
221
229
  ) {
222
230
  registry.icon++;
231
+ iconNodes.push(child);
223
232
  } else {
224
233
  registry.label++;
225
234
  }
226
235
  });
227
236
  if (button.textContent) {
228
- registry.label++;
237
+ const iconText = iconNodes.map((n) => n.textContent).join('');
238
+ const labelText = button.textContent.replace(iconText, '').trim();
239
+ if (labelText.length > 0) registry.label++;
229
240
  }
230
241
  button.setAttribute('data-has-icon', String(registry.icon > 0));
231
242
  button.setAttribute('data-has-label', String(registry.label > 0));
@@ -235,10 +246,19 @@ function applyPartAttributes(button: HTMLButtonElement) {
235
246
  function isIconChild(child: ReactNode): boolean {
236
247
  if (typeof child !== 'object' || child === null) return false;
237
248
  if ('type' in child) {
238
- const type = (child as any).type;
239
- if (type === ButtonIcon) return true;
240
- if (type === Icon) return true;
241
- if (typeof type === 'function' && type.displayName === 'Icon') return true;
249
+ const type = child.type;
250
+ if (
251
+ type === ButtonIcon ||
252
+ type === 'ButtonIcon' ||
253
+ (type as any).displayName === 'ButtonIcon'
254
+ )
255
+ return true;
256
+ if (
257
+ type === Icon ||
258
+ type === 'Icon' ||
259
+ (type as any).displayName === 'Icon'
260
+ )
261
+ return true;
242
262
  }
243
263
  return false;
244
264
  }
@@ -12,6 +12,7 @@ import { withClassName, withProps } from '../../hooks.js';
12
12
  import { useLocalStorage } from '../../hooks/useStorage.js';
13
13
  import { Box, BoxProps } from '../box/Box.js';
14
14
  import { Button } from '../button/Button.js';
15
+ import { Icon } from '../icon/Icon.js';
15
16
  import { inputClassName } from '../input/Input.js';
16
17
  import { Spinner } from '../spinner/Spinner.js';
17
18
 
@@ -21,7 +22,7 @@ export const EmojiPickerRoot = withClassName(
21
22
  );
22
23
  export const EmojiPickerSearch = withClassName(
23
24
  Core.Search,
24
- 'layer-components:(z-10)',
25
+ 'layer-components:(z-10 min-w-80px)',
25
26
  inputClassName,
26
27
  );
27
28
  export const EmojiPickerViewport = ({
@@ -137,8 +138,13 @@ export const EmojiPickerSkinToneSelector = (props: BoxProps) => {
137
138
  export interface EmojiPickerProps
138
139
  extends Omit<EmojiPickerRootProps, 'emoji' | 'onEmojiSelect'> {
139
140
  onValueChange: (value: string, label: string) => void;
141
+ onClear?: () => void;
140
142
  }
141
- const EmojiPickerPrefab = ({ onValueChange, ...props }: EmojiPickerProps) => {
143
+ const EmojiPickerPrefab = ({
144
+ onValueChange,
145
+ onClear,
146
+ ...props
147
+ }: EmojiPickerProps) => {
142
148
  const [skinTone] = useEmojiSkinTone();
143
149
  return (
144
150
  <EmojiPickerRoot
@@ -146,7 +152,15 @@ const EmojiPickerPrefab = ({ onValueChange, ...props }: EmojiPickerProps) => {
146
152
  onEmojiSelect={(emoji) => onValueChange(emoji.emoji, emoji.label)}
147
153
  skinTone={skinTone}
148
154
  >
149
- <EmojiPickerSearch />
155
+ <Box col gap items="start" full="width">
156
+ <EmojiPickerSearch />
157
+ {onClear && (
158
+ <Button emphasis="ghost" size="small" onClick={() => onClear()}>
159
+ <Icon name="x" />
160
+ Clear selection
161
+ </Button>
162
+ )}
163
+ </Box>
150
164
  <EmojiPickerViewport>
151
165
  <EmojiPickerList />
152
166
  <EmojiPickerLoading />