@a-type/ui 3.0.29 → 3.0.31

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 (58) 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/uno/preflights/globals.d.ts +4 -2
  18. package/dist/cjs/uno/preflights/globals.js +6 -1
  19. package/dist/cjs/uno/preflights/globals.js.map +1 -1
  20. package/dist/cjs/uno/preflights/index.d.ts +2 -1
  21. package/dist/cjs/uno/preflights/index.js +1 -1
  22. package/dist/cjs/uno/preflights/index.js.map +1 -1
  23. package/dist/cjs/uno/uno.preset.d.ts +2 -1
  24. package/dist/cjs/uno/uno.preset.js.map +1 -1
  25. package/dist/css/main.css +4 -4
  26. package/dist/esm/components/button/Button.d.ts +3 -0
  27. package/dist/esm/components/button/Button.js +17 -7
  28. package/dist/esm/components/button/Button.js.map +1 -1
  29. package/dist/esm/components/emojiPicker/EmojiPicker.d.ts +2 -1
  30. package/dist/esm/components/emojiPicker/EmojiPicker.js +4 -3
  31. package/dist/esm/components/emojiPicker/EmojiPicker.js.map +1 -1
  32. package/dist/esm/components/emojiPicker/EmojiPicker.stories.d.ts +1 -1
  33. package/dist/esm/components/forms/EmojiField.d.ts +7 -0
  34. package/dist/esm/components/forms/EmojiField.js +35 -0
  35. package/dist/esm/components/forms/EmojiField.js.map +1 -0
  36. package/dist/esm/components/forms/FormikForm.d.ts +2 -0
  37. package/dist/esm/components/forms/FormikForm.js +2 -0
  38. package/dist/esm/components/forms/FormikForm.js.map +1 -1
  39. package/dist/esm/components/forms/FormikForm.stories.d.ts +2 -0
  40. package/dist/esm/components/forms/FormikForm.stories.js +3 -1
  41. package/dist/esm/components/forms/FormikForm.stories.js.map +1 -1
  42. package/dist/esm/uno/preflights/globals.d.ts +4 -2
  43. package/dist/esm/uno/preflights/globals.js +5 -1
  44. package/dist/esm/uno/preflights/globals.js.map +1 -1
  45. package/dist/esm/uno/preflights/index.d.ts +2 -1
  46. package/dist/esm/uno/preflights/index.js +1 -1
  47. package/dist/esm/uno/preflights/index.js.map +1 -1
  48. package/dist/esm/uno/uno.preset.d.ts +2 -1
  49. package/dist/esm/uno/uno.preset.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/components/button/Button.tsx +27 -7
  52. package/src/components/emojiPicker/EmojiPicker.tsx +17 -3
  53. package/src/components/forms/EmojiField.tsx +64 -0
  54. package/src/components/forms/FormikForm.stories.tsx +3 -0
  55. package/src/components/forms/FormikForm.tsx +2 -0
  56. package/src/uno/preflights/globals.ts +14 -4
  57. package/src/uno/preflights/index.ts +5 -3
  58. package/src/uno/uno.preset.ts +3 -1
@@ -0,0 +1,64 @@
1
+ import clsx from 'clsx';
2
+ import { useField } from 'formik';
3
+ import { useIdOrGenerated } from '../../hooks/useIdOrGenerated.js';
4
+ import { Box } from '../box/Box.js';
5
+ import { Button, ButtonProps } from '../button/Button.js';
6
+ import { EmojiPicker } from '../emojiPicker/EmojiPicker.js';
7
+ import { Icon } from '../icon/Icon.js';
8
+ import { Popover } from '../popover/Popover.js';
9
+ import { HorizontalFieldLabel } from './FieldLabel.js';
10
+
11
+ export interface EmojiFieldProps extends ButtonProps {
12
+ name: string;
13
+ label?: string;
14
+ required?: string;
15
+ }
16
+
17
+ export function EmojiField({
18
+ name,
19
+ label,
20
+ className,
21
+ required,
22
+ id: providedId,
23
+ ...rest
24
+ }: EmojiFieldProps) {
25
+ const [props, _, tools] = useField({ name });
26
+ const id = useIdOrGenerated(providedId);
27
+ return (
28
+ <Box gap="sm" className={className}>
29
+ <Popover>
30
+ <Popover.Trigger asChild>
31
+ <Button
32
+ id={id}
33
+ aria-label="Select emoji"
34
+ size="small"
35
+ className={clsx('p-0 transition-color', className)}
36
+ {...rest}
37
+ >
38
+ <Button.Icon className="text-[19px] w-touch h-touch flex items-center justify-center">
39
+ {props.value || <Icon name="smile" />}
40
+ </Button.Icon>
41
+ </Button>
42
+ </Popover.Trigger>
43
+ <Popover.Content>
44
+ <EmojiPicker
45
+ onValueChange={(v) => {
46
+ tools.setValue(v);
47
+ }}
48
+ onClear={
49
+ required
50
+ ? undefined
51
+ : () => {
52
+ tools.setValue('');
53
+ }
54
+ }
55
+ id={id}
56
+ />
57
+ </Popover.Content>
58
+ </Popover>
59
+ {label && (
60
+ <HorizontalFieldLabel htmlFor={id}>{label}</HorizontalFieldLabel>
61
+ )}
62
+ </Box>
63
+ );
64
+ }
@@ -1,5 +1,6 @@
1
1
  import type { Meta, 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';
@@ -36,6 +37,7 @@ export const Default: Story = {
36
37
  tos: false,
37
38
  newsletter: false,
38
39
  plan: 'basic',
40
+ emoji: '',
39
41
  }}
40
42
  {...args}
41
43
  >
@@ -56,6 +58,7 @@ export const Default: Story = {
56
58
  Enterprise
57
59
  </ToggleGroupField.Item>
58
60
  </ToggleGroupField>
61
+ <EmojiField name="emoji" label="Favorite Emoji" />
59
62
  <SubmitButton>Sign up</SubmitButton>
60
63
  </FormikForm>
61
64
  );
@@ -1,6 +1,7 @@
1
1
  import { Formik, FormikConfig, FormikHelpers, FormikValues } from 'formik';
2
2
  import { useCallback } from 'react';
3
3
  import { CheckboxField } from './CheckboxField.js';
4
+ import { EmojiField } from './EmojiField.js';
4
5
  import { Form } from './Form.js';
5
6
  import { NumberStepperField } from './NumberStepperField.js';
6
7
  import { SubmitButton } from './SubmitButton.js';
@@ -56,4 +57,5 @@ export const FormikForm = Object.assign(FormikFormRoot, {
56
57
  CheckboxField,
57
58
  SwitchField,
58
59
  ToggleGroupField,
60
+ EmojiField,
59
61
  });
@@ -1,14 +1,22 @@
1
- import { Preflight } from 'unocss';
2
1
  import { preflight } from './_util.js';
3
2
 
4
- export const globalPreflight: Preflight = preflight({
5
- getCSS: () => `
3
+ export interface GlobalsPreflightConfig {
4
+ disableZIndexes?: boolean;
5
+ }
6
+
7
+ export const globalPreflight = (config: GlobalsPreflightConfig) =>
8
+ preflight({
9
+ getCSS: () => `
6
10
  :root {
7
11
  --font-sans: "Inter", sans-serif;
8
12
  --font-serif: "Domine", serif;
9
13
  --font-title: "Inter", sans-serif;
10
14
  --font-default: var(--font-sans, sans-serif);
11
15
 
16
+ ${
17
+ config.disableZIndexes
18
+ ? ''
19
+ : `
12
20
  --z-now-playing: 40;
13
21
  --z-nav: 50;
14
22
  --z-menu: 100;
@@ -16,6 +24,8 @@ export const globalPreflight: Preflight = preflight({
16
24
  --z-dialog: 1000;
17
25
  --z-tooltip: 10000;
18
26
  --z-overdraw: 100000;
27
+ `
28
+ }
19
29
 
20
30
  --un-shadow-color: #000000;
21
31
  --un-shadow-opacity: 10%;
@@ -91,4 +101,4 @@ a {
91
101
  inherits: false;
92
102
  }
93
103
  `,
94
- });
104
+ });
@@ -7,15 +7,17 @@ import {
7
7
  } from './customization.js';
8
8
  import { darkModePreflight } from './dark.js';
9
9
  import { fontsPreflight, FontsPreflightOptions } from './fonts.js';
10
- import { globalPreflight } from './globals.js';
10
+ import { globalPreflight, GlobalsPreflightConfig } from './globals.js';
11
11
  import { layerPreflight } from './layers.js';
12
12
 
13
13
  export const preflights = (
14
- config: ThemeCustomizationConfig & FontsPreflightOptions,
14
+ config: ThemeCustomizationConfig &
15
+ FontsPreflightOptions &
16
+ GlobalsPreflightConfig,
15
17
  ): Preflight<any>[] => [
16
18
  layerPreflight,
17
19
  basePreflight,
18
- globalPreflight,
20
+ globalPreflight(config),
19
21
  colorPreflight,
20
22
  darkModePreflight,
21
23
  customizationPreflight(config),
@@ -2,6 +2,7 @@ import presetWind3 from '@unocss/preset-wind3';
2
2
  import { Preset } from 'unocss';
3
3
  import { ThemeCustomizationConfig } from './preflights/customization.js';
4
4
  import { FontsPreflightOptions } from './preflights/fonts.js';
5
+ import { GlobalsPreflightConfig } from './preflights/globals.js';
5
6
  import { preflights } from './preflights/index.js';
6
7
  import { rules } from './rules/index.js';
7
8
  import { shortcuts } from './shortcuts/index.js';
@@ -10,7 +11,8 @@ import { variants } from './variants/index.js';
10
11
 
11
12
  export default function presetAtype(
12
13
  config: ThemeCustomizationConfig &
13
- FontsPreflightOptions & {
14
+ FontsPreflightOptions &
15
+ GlobalsPreflightConfig & {
14
16
  noPreflight?: boolean;
15
17
  } = {
16
18
  interFontLocation: