buildgrid-ui 1.1.0-dev.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/blocks/help-carousel/help-carousel.d.ts +9 -0
  2. package/dist/blocks/help-carousel/index.d.ts +1 -0
  3. package/dist/blocks/index.d.ts +4 -0
  4. package/dist/blocks/month-navigator/index.d.ts +1 -0
  5. package/dist/blocks/month-navigator/month-navigator.d.ts +9 -0
  6. package/dist/blocks/pagination-controls/index.d.ts +1 -0
  7. package/dist/blocks/pagination-controls/pagination-controls.d.ts +7 -0
  8. package/dist/blocks/sidebar/index.d.ts +1 -0
  9. package/dist/blocks/sidebar/sidebar.d.ts +26 -0
  10. package/dist/buildgrid-ui.es.js +10607 -4877
  11. package/dist/buildgrid-ui.umd.js +134 -63
  12. package/dist/components/adaptive-input/index.d.ts +1 -0
  13. package/dist/components/alert-dialog/alert-dialog.d.ts +20 -0
  14. package/dist/components/alert-dialog/index.d.ts +1 -0
  15. package/dist/components/autocomplete/autocomplete.d.ts +1 -0
  16. package/dist/components/badge/badge.d.ts +1 -1
  17. package/dist/components/button/button.d.ts +1 -1
  18. package/dist/components/calendar/calendar.d.ts +8 -0
  19. package/dist/components/calendar/index.d.ts +1 -0
  20. package/dist/components/currency-input/currency-input.d.ts +1 -1
  21. package/dist/components/dialog/dialog.d.ts +19 -0
  22. package/dist/components/dialog/index.d.ts +1 -0
  23. package/dist/components/index.d.ts +16 -1
  24. package/dist/components/label/index.d.ts +1 -0
  25. package/dist/components/label/label.d.ts +5 -0
  26. package/dist/components/navigation-menu/index.d.ts +1 -0
  27. package/dist/components/navigation-menu/navigation-menu.d.ts +12 -0
  28. package/dist/components/pagination/index.d.ts +1 -0
  29. package/dist/components/pagination/pagination.d.ts +28 -0
  30. package/dist/components/radio-group/index.d.ts +1 -0
  31. package/dist/components/radio-group/radio-group.d.ts +5 -0
  32. package/dist/components/select/index.d.ts +1 -0
  33. package/dist/components/select/select.d.ts +13 -0
  34. package/dist/components/table/index.d.ts +1 -0
  35. package/dist/components/table/table.d.ts +10 -0
  36. package/dist/components/tabs/index.d.ts +1 -0
  37. package/dist/components/tabs/tabs.d.ts +7 -0
  38. package/dist/components/textarea/index.d.ts +1 -0
  39. package/dist/components/textarea/textarea.d.ts +3 -0
  40. package/dist/components/toaster/index.d.ts +2 -0
  41. package/dist/components/toaster/toaster.d.ts +9 -0
  42. package/dist/components/toggle/index.d.ts +1 -0
  43. package/dist/components/toggle/toggle.d.ts +12 -0
  44. package/dist/components/toggle-group/index.d.ts +1 -0
  45. package/dist/components/toggle-group/toggle-group.d.ts +12 -0
  46. package/dist/components/tooltip/index.d.ts +1 -0
  47. package/dist/components/tooltip/tooltip.d.ts +7 -0
  48. package/dist/index.d.ts +3 -1
  49. package/dist/lib/hooks/index.d.ts +5 -0
  50. package/dist/lib/hooks/use-debounce.d.ts +2 -0
  51. package/dist/lib/hooks/use-dialog.d.ts +30 -0
  52. package/dist/lib/hooks/use-media-query.d.ts +1 -0
  53. package/dist/lib/hooks/use-mobile.d.ts +1 -0
  54. package/dist/lib/hooks/use-pwa-install.d.ts +7 -0
  55. package/dist/lib/utils/index.d.ts +2 -0
  56. package/package.json +19 -2
  57. package/.editorconfig +0 -5
  58. package/.eslintrc.json +0 -3
  59. package/.github/workflows/release.yml +0 -25
  60. package/.husky/commit-msg +0 -1
  61. package/.prettierignore +0 -6
  62. package/.prettierrc +0 -6
  63. package/.releaserc.json +0 -40
  64. package/.storybook/main.ts +0 -26
  65. package/.storybook/preview.ts +0 -15
  66. package/CHANGELOG.md +0 -53
  67. package/commitlint.config.js +0 -3
  68. package/components.json +0 -21
  69. package/dist/components/adaptative-input/index.d.ts +0 -1
  70. package/dist/lib/index.d.ts +0 -2
  71. package/eslint.config.mjs +0 -13
  72. package/postcss.config.js +0 -6
  73. package/src/components/adaptative-input/adaptative-input.stories.tsx +0 -31
  74. package/src/components/adaptative-input/adaptative-input.tsx +0 -66
  75. package/src/components/adaptative-input/index.ts +0 -1
  76. package/src/components/autocomplete/autocomplete.stories.tsx +0 -84
  77. package/src/components/autocomplete/autocomplete.tsx +0 -136
  78. package/src/components/autocomplete/index.ts +0 -1
  79. package/src/components/avatar/avatar.stories.tsx +0 -29
  80. package/src/components/avatar/avatar.tsx +0 -48
  81. package/src/components/avatar/index.ts +0 -1
  82. package/src/components/badge/badge.stories.tsx +0 -30
  83. package/src/components/badge/badge.tsx +0 -34
  84. package/src/components/badge/index.ts +0 -1
  85. package/src/components/button/button.stories.tsx +0 -62
  86. package/src/components/button/button.tsx +0 -82
  87. package/src/components/button/index.ts +0 -1
  88. package/src/components/card/card.stories.tsx +0 -41
  89. package/src/components/card/card.tsx +0 -61
  90. package/src/components/card/index.ts +0 -1
  91. package/src/components/checkbox/checkbox.stories.tsx +0 -36
  92. package/src/components/checkbox/checkbox.tsx +0 -28
  93. package/src/components/checkbox/index.ts +0 -1
  94. package/src/components/currency-input/currency-input.stories.tsx +0 -28
  95. package/src/components/currency-input/currency-input.tsx +0 -93
  96. package/src/components/currency-input/index.ts +0 -1
  97. package/src/components/dropdown-menu/dropdown-menu.stories.tsx +0 -90
  98. package/src/components/dropdown-menu/dropdown-menu.tsx +0 -192
  99. package/src/components/dropdown-menu/index.ts +0 -1
  100. package/src/components/index.ts +0 -15
  101. package/src/components/input/index.ts +0 -1
  102. package/src/components/input/input.stories.tsx +0 -22
  103. package/src/components/input/input.tsx +0 -41
  104. package/src/components/password-input/index.ts +0 -1
  105. package/src/components/password-input/password-input.stories.tsx +0 -26
  106. package/src/components/password-input/password-input.tsx +0 -98
  107. package/src/components/popover/index.ts +0 -1
  108. package/src/components/popover/popover.stories.tsx +0 -32
  109. package/src/components/popover/popover.tsx +0 -30
  110. package/src/components/progress/index.ts +0 -1
  111. package/src/components/progress/progress.stories.tsx +0 -21
  112. package/src/components/progress/progress.tsx +0 -26
  113. package/src/components/skeleton/index.ts +0 -1
  114. package/src/components/skeleton/skeleton.stories.tsx +0 -24
  115. package/src/components/skeleton/skeleton.tsx +0 -19
  116. package/src/components/switch/index.ts +0 -1
  117. package/src/components/switch/switch.stories.tsx +0 -21
  118. package/src/components/switch/switch.tsx +0 -26
  119. package/src/index.ts +0 -2
  120. package/src/lib/index.ts +0 -2
  121. package/src/lib/utils/cn.ts +0 -6
  122. package/src/lib/utils/formatters.ts +0 -55
  123. package/src/styles/tailwind.css +0 -66
  124. package/tailwind.config.js +0 -57
  125. package/tsconfig.app.json +0 -10
  126. package/tsconfig.json +0 -29
  127. package/vite.config.ts +0 -34
  128. /package/dist/components/{adaptative-input/adaptative-input.d.ts → adaptive-input/adaptive-input.d.ts} +0 -0
@@ -1,22 +0,0 @@
1
- // organize-imports-ignore
2
- import React from 'react'
3
- import type { Meta, StoryObj } from '@storybook/react'
4
-
5
- import { Input } from './input'
6
-
7
- const meta: Meta<typeof Input> = {
8
- title: 'Components/input/simple',
9
- component: Input,
10
- }
11
-
12
- export default meta
13
- type Story = StoryObj<typeof Input>
14
-
15
- const Template = () => {
16
- return <Input className="w-64" />
17
- }
18
-
19
- export const Default: Story = {
20
- render: Template.bind({}),
21
- args: {},
22
- }
@@ -1,41 +0,0 @@
1
- import { cn } from '@/lib/utils/cn'
2
- import { cva, VariantProps } from 'class-variance-authority'
3
- import * as React from 'react'
4
-
5
- const inputVariants = cva(
6
- 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',
7
- {
8
- variants: {
9
- sizing: {
10
- sm: 'h-8 text-xs px-2',
11
- md: 'h-10 text-sm px-3',
12
- lg: 'h-12 text-base px-4',
13
- xl: 'h-14 text-lg px-5',
14
- '2xl': 'h-16 text-xl px-6',
15
- },
16
- },
17
- defaultVariants: {
18
- sizing: 'md',
19
- },
20
- },
21
- )
22
-
23
- export interface InputProps
24
- extends React.InputHTMLAttributes<HTMLInputElement>,
25
- VariantProps<typeof inputVariants> {}
26
-
27
- const Input = React.forwardRef<HTMLInputElement, InputProps>(
28
- ({ className, sizing, type, ...props }, ref) => {
29
- return (
30
- <input
31
- type={type}
32
- className={cn(inputVariants({ sizing, className }))}
33
- ref={ref}
34
- {...props}
35
- />
36
- )
37
- },
38
- )
39
- Input.displayName = 'Input'
40
-
41
- export { Input }
@@ -1 +0,0 @@
1
- export * from './password-input'
@@ -1,26 +0,0 @@
1
- // organize-imports-ignore
2
- import React from 'react'
3
- import type { Meta, StoryObj } from '@storybook/react'
4
-
5
- import { PasswordInput } from './password-input'
6
-
7
- const meta: Meta<typeof PasswordInput> = {
8
- title: 'Components/input/password',
9
- component: PasswordInput,
10
- }
11
-
12
- export default meta
13
- type Story = StoryObj<typeof PasswordInput>
14
-
15
- const Template = () => {
16
- return (
17
- <div className="w-96">
18
- <PasswordInput />
19
- </div>
20
- )
21
- }
22
-
23
- export const Default: Story = {
24
- render: Template.bind({}),
25
- args: {},
26
- }
@@ -1,98 +0,0 @@
1
- import { Eye, EyeOff } from 'lucide-react'
2
- import React, { InputHTMLAttributes, useState } from 'react'
3
- import { Button } from '../button'
4
- import { Input } from '../input'
5
- import { Progress } from '../progress'
6
-
7
- interface PasswordInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
8
- showStrengthMeter?: boolean
9
- strengthLabels?: {
10
- veryWeak: string
11
- weak: string
12
- medium: string
13
- strong: string
14
- veryStrong: string
15
- }
16
- showPasswordLabel?: string
17
- hidePasswordLabel?: string
18
- strengthTitle?: string
19
- }
20
-
21
- export function PasswordInput(props: PasswordInputProps) {
22
- const {
23
- showStrengthMeter = true,
24
- className,
25
- strengthLabels = {
26
- veryWeak: 'Very weak',
27
- weak: 'Weak',
28
- medium: 'Medium',
29
- strong: 'Strong',
30
- veryStrong: 'Very strong',
31
- },
32
- showPasswordLabel = 'Show password',
33
- hidePasswordLabel = 'Hide password',
34
- strengthTitle = 'Password strength',
35
- ...rest
36
- } = props
37
-
38
- const [password, setPassword] = useState('')
39
- const [showPassword, setShowPassword] = useState(false)
40
-
41
- const calculateStrength = (password: string): number => {
42
- let strength = 0
43
- if (password.length >= 8) strength += 25
44
- if (password.match(/[a-z]/)) strength += 25
45
- if (password.match(/[A-Z]/)) strength += 25
46
- if (password.match(/[0-9]/)) strength += 25
47
- return strength
48
- }
49
-
50
- const getStrengthLabel = (strength: number): string => {
51
- if (strength === 0) return strengthLabels.veryWeak
52
- if (strength <= 25) return strengthLabels.weak
53
- if (strength <= 50) return strengthLabels.medium
54
- if (strength <= 75) return strengthLabels.strong
55
- return strengthLabels.veryStrong
56
- }
57
-
58
- const strength = calculateStrength(password)
59
- const strengthLabel = getStrengthLabel(strength)
60
-
61
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
62
- setPassword(e.target.value)
63
- props.onChange?.(e)
64
- }
65
-
66
- return (
67
- <div className="w-full space-y-4">
68
- <div className="relative">
69
- <Input
70
- {...rest}
71
- type={showPassword ? 'text' : 'password'}
72
- value={password}
73
- onChange={handleChange}
74
- className={`pr-10 ${className || ''}`}
75
- />
76
- <Button
77
- type="button"
78
- variant="ghost"
79
- size="icon"
80
- className="absolute right-0 top-0 h-full"
81
- onClick={() => setShowPassword(!showPassword)}
82
- aria-label={showPassword ? hidePasswordLabel : showPasswordLabel}
83
- >
84
- {showPassword ? <EyeOff className="h-4 w-4" /> : <Eye className="h-4 w-4" />}
85
- </Button>
86
- </div>
87
- {showStrengthMeter && (
88
- <div className="space-y-2">
89
- <div className="flex justify-between text-sm">
90
- <span>{strengthTitle}:</span>
91
- <span>{strengthLabel}</span>
92
- </div>
93
- <Progress value={strength} className="h-2" />
94
- </div>
95
- )}
96
- </div>
97
- )
98
- }
@@ -1 +0,0 @@
1
- export * from './popover'
@@ -1,32 +0,0 @@
1
- // organize-imports-ignore
2
- import React from 'react'
3
- import type { Meta, StoryObj } from '@storybook/react'
4
-
5
- import { Popover, PopoverContent, PopoverTrigger } from './popover'
6
- import { Button } from '../button/button'
7
-
8
- const meta: Meta<typeof Popover> = {
9
- component: Popover,
10
- }
11
-
12
- export default meta
13
- type Story = StoryObj<typeof Popover>
14
-
15
- const Template = () => {
16
- const variants = ['default', 'secondary', 'destructive', 'outline']
17
- return (
18
- <Popover>
19
- <PopoverTrigger asChild>
20
- <Button variant="outline">Open popover</Button>
21
- </PopoverTrigger>
22
- <PopoverContent className="w-80">
23
- <div className="bg-gray-200 p-6 w-full h-20">Popover content</div>
24
- </PopoverContent>
25
- </Popover>
26
- )
27
- }
28
-
29
- export const Default: Story = {
30
- render: Template.bind({}),
31
- args: {},
32
- }
@@ -1,30 +0,0 @@
1
- import { cn } from '@/lib'
2
- import * as PopoverPrimitive from '@radix-ui/react-popover'
3
- import * as React from 'react'
4
-
5
- const Popover = PopoverPrimitive.Root
6
-
7
- const PopoverTrigger = PopoverPrimitive.Trigger
8
-
9
- const PopoverAnchor = PopoverPrimitive.Anchor
10
-
11
- const PopoverContent = React.forwardRef<
12
- React.ElementRef<typeof PopoverPrimitive.Content>,
13
- React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>
14
- >(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (
15
- <PopoverPrimitive.Portal>
16
- <PopoverPrimitive.Content
17
- ref={ref}
18
- align={align}
19
- sideOffset={sideOffset}
20
- className={cn(
21
- 'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',
22
- className,
23
- )}
24
- {...props}
25
- />
26
- </PopoverPrimitive.Portal>
27
- ))
28
- PopoverContent.displayName = PopoverPrimitive.Content.displayName
29
-
30
- export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger }
@@ -1 +0,0 @@
1
- export * from './progress'
@@ -1,21 +0,0 @@
1
- // organize-imports-ignore
2
- import React from 'react'
3
- import type { Meta, StoryObj } from '@storybook/react'
4
-
5
- import { Progress } from './progress'
6
-
7
- const meta: Meta<typeof Progress> = {
8
- component: Progress,
9
- }
10
-
11
- export default meta
12
- type Story = StoryObj<typeof Progress>
13
-
14
- const Template = () => {
15
- return <Progress value={90} />
16
- }
17
-
18
- export const Default: Story = {
19
- render: Template.bind({}),
20
- args: {},
21
- }
@@ -1,26 +0,0 @@
1
- import * as ProgressPrimitive from '@radix-ui/react-progress'
2
- import * as React from 'react'
3
-
4
- import { cn } from '@/lib/utils/cn'
5
-
6
- const Progress = React.forwardRef<
7
- React.ElementRef<typeof ProgressPrimitive.Root>,
8
- React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>
9
- >(({ className, value, ...props }, ref) => (
10
- <ProgressPrimitive.Root
11
- ref={ref}
12
- className={cn(
13
- 'relative h-2 w-full overflow-hidden rounded-full bg-primary/20',
14
- className,
15
- )}
16
- {...props}
17
- >
18
- <ProgressPrimitive.Indicator
19
- className="h-full w-full flex-1 bg-primary transition-all"
20
- style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
21
- />
22
- </ProgressPrimitive.Root>
23
- ))
24
- Progress.displayName = ProgressPrimitive.Root.displayName
25
-
26
- export { Progress }
@@ -1 +0,0 @@
1
- export * from './skeleton'
@@ -1,24 +0,0 @@
1
- // organize-imports-ignore
2
- import React from 'react'
3
- import type { Meta, StoryObj } from '@storybook/react'
4
- import { Skeleton } from './Skeleton'
5
-
6
- const meta: Meta<typeof Skeleton> = {
7
- component: Skeleton,
8
- }
9
-
10
- export default meta
11
- type Story = StoryObj<typeof Skeleton>
12
-
13
- const Template = () => {
14
- return (
15
- <div className="space-y-2">
16
- <Skeleton className="w-96 h-5" repeat={3} />
17
- </div>
18
- )
19
- }
20
-
21
- export const Default: Story = {
22
- render: Template.bind({}),
23
- args: {},
24
- }
@@ -1,19 +0,0 @@
1
- import { cn } from '@/lib/utils/cn'
2
-
3
- type SkeletonProps = {
4
- repeat?: number
5
- } & React.ComponentProps<'div'>
6
-
7
- export const Skeleton = ({ className, repeat = 1, ...props }: SkeletonProps) => {
8
- return (
9
- <>
10
- {Array.from({ length: repeat ?? 1 }).map((_, index) => (
11
- <div
12
- key={index}
13
- className={cn('animate-pulse rounded-md bg-gray-700/10', className)}
14
- {...props}
15
- />
16
- ))}
17
- </>
18
- )
19
- }
@@ -1 +0,0 @@
1
- export * from './switch'
@@ -1,21 +0,0 @@
1
- // organize-imports-ignore
2
- import React from 'react'
3
- import type { Meta, StoryObj } from '@storybook/react'
4
-
5
- import { Switch } from './switch'
6
-
7
- const meta: Meta<typeof Switch> = {
8
- component: Switch,
9
- }
10
-
11
- export default meta
12
- type Story = StoryObj<typeof Switch>
13
-
14
- const Template = () => {
15
- return <Switch />
16
- }
17
-
18
- export const Default: Story = {
19
- render: Template.bind({}),
20
- args: {},
21
- }
@@ -1,26 +0,0 @@
1
- import { cn } from '@/lib'
2
- import * as SwitchPrimitives from '@radix-ui/react-switch'
3
- import * as React from 'react'
4
-
5
- const Switch = React.forwardRef<
6
- React.ElementRef<typeof SwitchPrimitives.Root>,
7
- React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>
8
- >(({ className, ...props }, ref) => (
9
- <SwitchPrimitives.Root
10
- className={cn(
11
- 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',
12
- className,
13
- )}
14
- {...props}
15
- ref={ref}
16
- >
17
- <SwitchPrimitives.Thumb
18
- className={cn(
19
- 'pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',
20
- )}
21
- />
22
- </SwitchPrimitives.Root>
23
- ))
24
- Switch.displayName = SwitchPrimitives.Root.displayName
25
-
26
- export { Switch }
package/src/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './components'
2
- export * from './lib'
package/src/lib/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './utils/cn'
2
- export * from './utils/formatters'
@@ -1,6 +0,0 @@
1
- import { clsx, type ClassValue } from "clsx"
2
- import { twMerge } from "tailwind-merge"
3
-
4
- export function cn(...inputs: ClassValue[]) {
5
- return twMerge(clsx(inputs))
6
- }
@@ -1,55 +0,0 @@
1
- export const formatCurrency = (
2
- number: number,
3
- language = 'pt-BR',
4
- currency = 'BRL',
5
- ): string => {
6
- return new Intl.NumberFormat(language, {
7
- style: 'currency',
8
- currency,
9
- minimumFractionDigits: 2,
10
- }).format(number)
11
- }
12
-
13
- export const formatDateAndWeekday = (date: Date | string, language = 'pt-BR'): string =>
14
- new Intl.DateTimeFormat(language, {
15
- day: '2-digit',
16
- month: 'long',
17
- weekday: 'long',
18
- }).format(new Date(date))
19
-
20
- export const formatDateAndWeekdayAndYear = (
21
- date: Date | string,
22
- language = 'pt-BR',
23
- ): string =>
24
- new Intl.DateTimeFormat(language, {
25
- day: '2-digit',
26
- month: 'long',
27
- weekday: 'long',
28
- year: 'numeric',
29
- }).format(new Date(date))
30
-
31
- export const formatDateAndMonth = (date: Date | string, language = 'pt-BR'): string =>
32
- new Intl.DateTimeFormat(language, {
33
- day: '2-digit',
34
- month: 'long',
35
- }).format(new Date(date))
36
-
37
- export const formatLongDate = (date: Date | string, language = 'pt-BR'): string =>
38
- new Intl.DateTimeFormat(language, { dateStyle: 'long' }).format(
39
- typeof date === 'string' ? new Date(date) : date,
40
- )
41
-
42
- export const formatShortDate = (date: Date, language = 'pt-BR'): string =>
43
- new Intl.DateTimeFormat(language, { dateStyle: 'short' }).format(date)
44
-
45
- export const getMonthYearFromISODate = (date: string): string => {
46
- return date.slice(0, 7)
47
- }
48
-
49
- export const formatWeekDayAndShortDate = (date: Date, language = 'pt-BR') => {
50
- return date.toLocaleDateString(language, {
51
- weekday: 'short',
52
- day: '2-digit',
53
- month: '2-digit',
54
- })
55
- }
@@ -1,66 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
- @layer base {
5
- :root {
6
- --background: 0 0% 100%;
7
- --foreground: 0 0% 3.9%;
8
- --card: 0 0% 100%;
9
- --card-foreground: 0 0% 3.9%;
10
- --popover: 0 0% 100%;
11
- --popover-foreground: 0 0% 3.9%;
12
- --primary: 0 0% 9%;
13
- --primary-foreground: 0 0% 98%;
14
- --secondary: 0 0% 96.1%;
15
- --secondary-foreground: 0 0% 9%;
16
- --muted: 0 0% 96.1%;
17
- --muted-foreground: 0 0% 45.1%;
18
- --accent: 0 0% 96.1%;
19
- --accent-foreground: 0 0% 9%;
20
- --destructive: 0 84.2% 60.2%;
21
- --destructive-foreground: 0 0% 98%;
22
- --border: 0 0% 89.8%;
23
- --input: 0 0% 89.8%;
24
- --ring: 0 0% 3.9%;
25
- --chart-1: 12 76% 61%;
26
- --chart-2: 173 58% 39%;
27
- --chart-3: 197 37% 24%;
28
- --chart-4: 43 74% 66%;
29
- --chart-5: 27 87% 67%;
30
- --radius: 0.5rem
31
- }
32
- .dark {
33
- --background: 0 0% 3.9%;
34
- --foreground: 0 0% 98%;
35
- --card: 0 0% 3.9%;
36
- --card-foreground: 0 0% 98%;
37
- --popover: 0 0% 3.9%;
38
- --popover-foreground: 0 0% 98%;
39
- --primary: 0 0% 98%;
40
- --primary-foreground: 0 0% 9%;
41
- --secondary: 0 0% 14.9%;
42
- --secondary-foreground: 0 0% 98%;
43
- --muted: 0 0% 14.9%;
44
- --muted-foreground: 0 0% 63.9%;
45
- --accent: 0 0% 14.9%;
46
- --accent-foreground: 0 0% 98%;
47
- --destructive: 0 62.8% 30.6%;
48
- --destructive-foreground: 0 0% 98%;
49
- --border: 0 0% 14.9%;
50
- --input: 0 0% 14.9%;
51
- --ring: 0 0% 83.1%;
52
- --chart-1: 220 70% 50%;
53
- --chart-2: 160 60% 45%;
54
- --chart-3: 30 80% 55%;
55
- --chart-4: 280 65% 60%;
56
- --chart-5: 340 75% 55%
57
- }
58
- }
59
- @layer base {
60
- * {
61
- @apply border-border;
62
- }
63
- body {
64
- @apply bg-background text-foreground;
65
- }
66
- }
@@ -1,57 +0,0 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- darkMode: ["class"],
4
- content: ["./src/**/*.{js,ts,jsx,tsx}"],
5
- theme: {
6
- extend: {
7
- borderRadius: {
8
- lg: 'var(--radius)',
9
- md: 'calc(var(--radius) - 2px)',
10
- sm: 'calc(var(--radius) - 4px)'
11
- },
12
- colors: {
13
- background: 'hsl(var(--background))',
14
- foreground: 'hsl(var(--foreground))',
15
- card: {
16
- DEFAULT: 'hsl(var(--card))',
17
- foreground: 'hsl(var(--card-foreground))'
18
- },
19
- popover: {
20
- DEFAULT: 'hsl(var(--popover))',
21
- foreground: 'hsl(var(--popover-foreground))'
22
- },
23
- primary: {
24
- DEFAULT: 'hsl(var(--primary))',
25
- foreground: 'hsl(var(--primary-foreground))'
26
- },
27
- secondary: {
28
- DEFAULT: 'hsl(var(--secondary))',
29
- foreground: 'hsl(var(--secondary-foreground))'
30
- },
31
- muted: {
32
- DEFAULT: 'hsl(var(--muted))',
33
- foreground: 'hsl(var(--muted-foreground))'
34
- },
35
- accent: {
36
- DEFAULT: 'hsl(var(--accent))',
37
- foreground: 'hsl(var(--accent-foreground))'
38
- },
39
- destructive: {
40
- DEFAULT: 'hsl(var(--destructive))',
41
- foreground: 'hsl(var(--destructive-foreground))'
42
- },
43
- border: 'hsl(var(--border))',
44
- input: 'hsl(var(--input))',
45
- ring: 'hsl(var(--ring))',
46
- chart: {
47
- '1': 'hsl(var(--chart-1))',
48
- '2': 'hsl(var(--chart-2))',
49
- '3': 'hsl(var(--chart-3))',
50
- '4': 'hsl(var(--chart-4))',
51
- '5': 'hsl(var(--chart-5))'
52
- }
53
- }
54
- }
55
- },
56
- plugins: [require("tailwindcss-animate")],
57
- };
package/tsconfig.app.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- // ...
4
- "baseUrl": ".",
5
- "paths": {
6
- "@/*": ["./src/*"]
7
- }
8
- // ...
9
- }
10
- }
package/tsconfig.json DELETED
@@ -1,29 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": ".",
4
- "target": "esnext",
5
- "module": "esnext",
6
- "lib": ["dom", "esnext"],
7
- "jsx": "react-jsx",
8
- "strict": true,
9
- "moduleResolution": "node",
10
- "esModuleInterop": true,
11
- "declaration": true,
12
- "emitDeclarationOnly": true,
13
- "outDir": "dist",
14
- "skipLibCheck": true,
15
- "forceConsistentCasingInFileNames": true,
16
- "paths": {
17
- "@/*": ["./src/*"]
18
- }
19
- },
20
- "include": ["src"],
21
- "exclude": [
22
- "node_modules",
23
- "dist",
24
- ".husky",
25
- "**/*.test.ts",
26
- "**/*.test.tsx",
27
- "**/*.stories.tsx"
28
- ]
29
- }