@frontify/fondue-components 1.0.0 → 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 (86) hide show
  1. package/dist/fondue-components.js +10 -0
  2. package/dist/fondue-components.js.map +1 -0
  3. package/dist/fondue-components10.js +38 -0
  4. package/dist/fondue-components10.js.map +1 -0
  5. package/dist/fondue-components11.js +10 -0
  6. package/dist/fondue-components11.js.map +1 -0
  7. package/dist/fondue-components12.js +5 -0
  8. package/dist/fondue-components12.js.map +1 -0
  9. package/dist/fondue-components13.js +33 -0
  10. package/dist/fondue-components13.js.map +1 -0
  11. package/dist/fondue-components14.js +602 -0
  12. package/dist/fondue-components14.js.map +1 -0
  13. package/dist/fondue-components15.js +2363 -0
  14. package/dist/fondue-components15.js.map +1 -0
  15. package/dist/fondue-components16.js +146 -0
  16. package/dist/fondue-components16.js.map +1 -0
  17. package/dist/fondue-components17.js +5 -0
  18. package/dist/fondue-components17.js.map +1 -0
  19. package/dist/fondue-components18.js +5 -0
  20. package/dist/fondue-components18.js.map +1 -0
  21. package/dist/fondue-components19.js +32 -0
  22. package/dist/fondue-components19.js.map +1 -0
  23. package/dist/fondue-components2.js +2 -0
  24. package/dist/fondue-components2.js.map +1 -0
  25. package/dist/fondue-components3.js +49 -0
  26. package/dist/fondue-components3.js.map +1 -0
  27. package/dist/fondue-components4.js +56 -0
  28. package/dist/fondue-components4.js.map +1 -0
  29. package/dist/fondue-components5.js +38 -0
  30. package/dist/fondue-components5.js.map +1 -0
  31. package/dist/fondue-components6.js +9 -0
  32. package/dist/fondue-components6.js.map +1 -0
  33. package/dist/fondue-components7.js +144 -0
  34. package/dist/fondue-components7.js.map +1 -0
  35. package/dist/fondue-components8.js +108 -0
  36. package/dist/fondue-components8.js.map +1 -0
  37. package/dist/fondue-components9.js +105 -0
  38. package/dist/fondue-components9.js.map +1 -0
  39. package/dist/index.d.ts +122 -0
  40. package/dist/style.css +1 -0
  41. package/package.json +9 -3
  42. package/.eslintignore +0 -4
  43. package/.eslintrc.cjs +0 -33
  44. package/.prettierignore +0 -1
  45. package/.prettierrc +0 -17
  46. package/.storybook/DocumentationTemplate.mdx +0 -25
  47. package/.storybook/main.ts +0 -29
  48. package/.storybook/preview.ts +0 -54
  49. package/CHANGELOG.md +0 -24
  50. package/playwright/index.html +0 -12
  51. package/playwright/index.ts +0 -3
  52. package/playwright.config.ts +0 -29
  53. package/postcss.config.cjs +0 -8
  54. package/scripts/createNewComponent.ts +0 -42
  55. package/scripts/templates/__tests__/component.ct.tsx +0 -25
  56. package/scripts/templates/__tests__/component.spec.tsx +0 -24
  57. package/scripts/templates/component.stories.ts +0 -35
  58. package/scripts/templates/component.ts +0 -25
  59. package/scripts/templates/index.ts +0 -15
  60. package/scripts/templates/styles/componentStyles.tsx +0 -16
  61. package/scripts/transforms.ts +0 -13
  62. package/scripts/types.ts +0 -7
  63. package/src/components/Button/Button.stories.tsx +0 -57
  64. package/src/components/Button/Button.tsx +0 -111
  65. package/src/components/Button/styles/buttonStyles.ts +0 -175
  66. package/src/components/Button/styles/iconStyles.ts +0 -152
  67. package/src/components/Button/styles/textStyles.ts +0 -149
  68. package/src/components/Button/tests/Button.ct.tsx +0 -61
  69. package/src/components/Button/tests/Button.spec.tsx +0 -34
  70. package/src/components/Divider/Divider.stories.ts +0 -47
  71. package/src/components/Divider/Divider.tsx +0 -69
  72. package/src/components/Divider/__tests__/Divider.spec.tsx +0 -88
  73. package/src/components/LoadingBar/LoadingBar.stories.tsx +0 -32
  74. package/src/components/LoadingBar/LoadingBar.tsx +0 -68
  75. package/src/components/LoadingBar/styles/loadingBarStyles.ts +0 -38
  76. package/src/components/LoadingBar/tests/LoadingBar.ct.tsx +0 -39
  77. package/src/index.ts +0 -7
  78. package/src/setupTests.ts +0 -19
  79. package/src/styles.css +0 -33
  80. package/src/utilities/focusStyle.ts +0 -12
  81. package/src/utilities/styleUtilities.ts +0 -19
  82. package/src/utilities/tests/styleUtilities.spec.ts +0 -114
  83. package/tailwind.config.ts +0 -148
  84. package/tsconfig.json +0 -26
  85. package/tsconfig.node.json +0 -21
  86. package/vite.config.ts +0 -67
@@ -1,114 +0,0 @@
1
- /* (c) Copyright Frontify Ltd., all rights reserved. */
2
-
3
- import { describe, expect, it } from 'vitest';
4
-
5
- import { cn, sv } from '#/utilities/styleUtilities';
6
-
7
- describe('class merging utility', () => {
8
- it('concatinates strings from list', () => {
9
- const className = cn('tw-flex', 'tw-p-8 tw-justiify-center', 'tw-items-start');
10
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
11
- });
12
-
13
- it('allows for dynamic inputs', () => {
14
- // eslint-disable-next-line no-constant-condition
15
- const className = cn('tw-flex', 'tw-p-8 tw-justiify-center', true ? 'tw-items-start' : 'kiwi');
16
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
17
- });
18
-
19
- it('removes whitespaces', () => {
20
- const className = cn('tw-flex', 'tw-p-8 tw-justiify-center', ' tw-items-start');
21
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
22
- });
23
-
24
- it('supports arrays', () => {
25
- const className = cn('tw-flex', ['tw-p-8', ' tw-justiify-center'], 'tw-items-start');
26
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
27
- });
28
-
29
- it('removes empty strings', () => {
30
- const className = cn('tw-flex', 'tw-p-8', ' ', 'tw-justiify-center', 'tw-items-start');
31
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
32
- });
33
-
34
- it('removes null values', () => {
35
- const className = cn('tw-flex', 'tw-p-8', null, 'tw-justiify-center', 'tw-items-start');
36
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
37
- });
38
-
39
- it('removes undefined values', () => {
40
- const className = cn('tw-flex', 'tw-p-8', undefined, 'tw-justiify-center', 'tw-items-start');
41
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
42
- });
43
-
44
- it('removes false values', () => {
45
- const className = cn('tw-flex', 'tw-p-8', false, 'tw-justiify-center', 'tw-items-start');
46
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
47
- });
48
-
49
- it('removes 0 values', () => {
50
- const className = cn('tw-flex', 'tw-p-8', 0, 'tw-justiify-center', 'tw-items-start');
51
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
52
- });
53
-
54
- it('removes empty arrays', () => {
55
- const className = cn('tw-flex', 'tw-p-8', [], 'tw-justiify-center', 'tw-items-start');
56
- expect(className).toBe('tw-flex tw-p-8 tw-justiify-center tw-items-start');
57
- });
58
-
59
- it('removes overridden classes', () => {
60
- const className = cn('tw-flex', 'tw-p-8', 'tw-justiify-center', 'tw-items-start', 'tw-flex', 'tw-p-2');
61
- expect(className).toBe('tw-justiify-center tw-items-start tw-flex tw-p-2');
62
- });
63
- });
64
-
65
- describe('tailwind variants utility', () => {
66
- const styledDiv = sv({
67
- base: 'tw-flex tw-flex-col',
68
- variants: {
69
- size: {
70
- small: 'tw-px-2 tw-h-6',
71
- medium: 'tw-px-4 tw-h-9',
72
- large: 'tw-px-6 tw-h-12',
73
- },
74
- emphasis: {
75
- default: '',
76
- weak: '',
77
- strong: '',
78
- },
79
- alignment: {
80
- start: 'tw-items-start',
81
- center: 'tw-items-center',
82
- end: 'tw-items-end',
83
- },
84
- },
85
- compoundVariants: [
86
- {
87
- size: 'large',
88
- alignment: 'end',
89
- class: 'tw-border-2 tw-border-black',
90
- },
91
- ],
92
- });
93
-
94
- it('returns base styles', () => {
95
- const className = styledDiv();
96
- expect(className).toBe('tw-flex tw-flex-col');
97
- });
98
-
99
- it('applies variants', () => {
100
- const className = styledDiv({ alignment: 'start', size: 'medium' });
101
- expect(className).toBe('tw-flex tw-flex-col tw-px-4 tw-h-9 tw-items-start');
102
- });
103
-
104
- it('ignores invalid variants', () => {
105
- // @ts-expect-error Wrong value on purpose for the test
106
- const className = styledDiv({ alignment: 'weird', size: 'medium' });
107
- expect(className).toBe('tw-flex tw-flex-col tw-px-4 tw-h-9');
108
- });
109
-
110
- it('applies compound variants', () => {
111
- const className = styledDiv({ alignment: 'end', size: 'large' });
112
- expect(className).toBe('tw-flex tw-flex-col tw-px-6 tw-h-12 tw-items-end tw-border-2 tw-border-black');
113
- });
114
- });
@@ -1,148 +0,0 @@
1
- /* (c) Copyright Frontify Ltd., all rights reserved. */
2
-
3
- // @ts-expect-error Untyped
4
- import frontifyTailwindConfig from '@frontify/fondue-tokens/tailwind';
5
- import tailwindForms from '@tailwindcss/forms';
6
- import { type Config } from 'tailwindcss';
7
-
8
- export default {
9
- presets: [frontifyTailwindConfig as Config],
10
- content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}', './.storybook/DocumentationTemplate.mdx'],
11
- plugins: [
12
- tailwindForms({
13
- strategy: 'class',
14
- }),
15
- ],
16
- theme: {
17
- extend: {
18
- outline: {
19
- violet: '1px solid #825fff',
20
- },
21
- boxShadow: {
22
- large: '0 25px 80px 0 rgba(45, 50, 50, 0.4)',
23
- mid: '0 3px 10px 0 rgba(8, 8, 8, 0.15)',
24
- 'mid-top': '0 -10px 10px -5px rgba(45, 50, 50, 0.1)',
25
- 'mid-bottom': '0 10px 10px -5px rgba(45, 50, 50, 0.1)',
26
- 'inner-mighty': 'inset 0 0 0 var(--line-width) var(--line-color-mighty)',
27
- none: 'none',
28
- },
29
- ringColor: {
30
- blue: '#5e9ed6',
31
- },
32
- colors: {
33
- transparent: 'transparent',
34
- current: 'currentColor',
35
- white: '#ffffff',
36
- black: {
37
- DEFAULT: '#2d3232',
38
-
39
- // Solids
40
- superdark: '#1a1d1d',
41
- 100: '#2d3232',
42
- 95: '#424747',
43
- 90: '#575b5b',
44
- 85: '#5f6363',
45
- 80: '#6c7070',
46
- 70: '#818484',
47
- 60: '#969898',
48
- 50: '#abadad',
49
- 40: '#b3b5b5',
50
- 30: '#c0c2c2',
51
- 20: '#d5d6d6',
52
- 10: '#eaebeb',
53
- 5: '#f7f7f7',
54
- 0: '#fafafa',
55
- warm: '#e6dcdc',
56
- },
57
- violet: {
58
- // Solids
59
- 90: '#443185',
60
- 70: '#6449c4',
61
- 60: '#825fff',
62
- 50: '#9088ff',
63
- 40: '#c8d1ed',
64
- 20: '#e3e8f6',
65
- },
66
- green: {
67
- 90: '#006452',
68
- 75: '#00866E',
69
- 70: '#00a084',
70
- 60: '#00c8a5',
71
- 50: '#80dbb7',
72
- 40: '#bee1d4',
73
- 20: '#def0e9',
74
- },
75
-
76
- yellow: {
77
- 90: '#cc9000',
78
- 70: '#e6a200',
79
- 60: '#ffb400',
80
- 50: '#eec779',
81
- 40: '#e1d4be',
82
- 20: '#f0e9de',
83
- },
84
-
85
- red: {
86
- 90: '#992136',
87
- 70: '#cc2c48',
88
- 65: '#E52144',
89
- 60: '#ff375a',
90
- 50: '#ff8066',
91
- 40: '#e1c4be',
92
- 20: '#f0e1de',
93
- },
94
- },
95
- fontFamily: {
96
- sans: [
97
- '"Space Grotesk Frontify"',
98
- 'Arial',
99
- '-apple-system',
100
- 'BlinkMacSystemFont',
101
- 'Segoe UI',
102
- 'Roboto',
103
- 'Helvetica',
104
- 'sans-serif',
105
- '"Apple Color Emoji"',
106
- '"Segoe UI Emoji"',
107
- '"Segoe UI Symbol"',
108
- ],
109
- mono: ['Menlo', 'Courier', 'monospace'],
110
- },
111
- fontSize: {
112
- xxs: ['0.75rem', { letterSpacing: '0.02rem', lineHeight: '1rem' }],
113
- xs: ['0.813rem', '1rem'],
114
- s: ['0.875rem', '1rem'],
115
- m: ['1rem', '1.25rem'],
116
- l: ['1.125rem', '1.5rem'],
117
- xl: ['1.5rem', '2rem'],
118
- xxl: ['2rem', '2.5rem'],
119
- xxxl: ['3rem', '3.5rem'],
120
- },
121
- transitionProperty: {
122
- height: 'height',
123
- width: 'width',
124
- },
125
- screens: {
126
- xs: '480px',
127
- sm: '600px',
128
- md: '768px',
129
- lg: '1024px',
130
- xl: '1280px',
131
- '2xl': '1536px',
132
- },
133
- animation: {
134
- 'loading-bar-infinite': 'loading-bar-infinite 1s infinite linear',
135
- },
136
- keyframes: {
137
- 'loading-bar-infinite': {
138
- '0%': { transform: ' translateX(0) scaleX(0)' },
139
- '40%': { transform: 'translateX(0) scaleX(0.4)' },
140
- '100%': { transform: 'translateX(100%) scaleX(0.5)' },
141
- },
142
- },
143
- transformOrigin: {
144
- 'left-right': '0% 50%',
145
- },
146
- },
147
- },
148
- } satisfies Config;
package/tsconfig.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2021",
4
- "useDefineForClassFields": true,
5
- "lib": ["ES2021", "DOM", "DOM.Iterable"],
6
- "module": "ESNext",
7
- "skipLibCheck": true,
8
- "moduleResolution": "bundler",
9
- "allowImportingTsExtensions": true,
10
- "resolveJsonModule": true,
11
- "isolatedModules": true,
12
- "noEmit": true,
13
- "jsx": "react-jsx",
14
- "strict": true,
15
- "noUncheckedIndexedAccess": true,
16
- "noUnusedLocals": true,
17
- "noUnusedParameters": true,
18
- "noFallthroughCasesInSwitch": true,
19
- "baseUrl": ".",
20
- "paths": {
21
- "#/*": ["./src/*"]
22
- }
23
- },
24
- "include": [".storybook", "src"],
25
- "references": [{ "path": "./tsconfig.node.json" }]
26
- }
@@ -1,21 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "composite": true,
4
- "module": "ESNext",
5
- "moduleResolution": "Node",
6
- "allowSyntheticDefaultImports": true,
7
- "resolveJsonModule": true,
8
- "baseUrl": ".",
9
- "lib": ["ESNext"]
10
- },
11
- "include": [
12
- ".eslintrc.cjs",
13
- "tailwind.config.ts",
14
- "vite.config.ts",
15
- "postcss.config.cjs",
16
- "package.json",
17
- "playwright.config.ts",
18
- "playwright",
19
- "scripts"
20
- ]
21
- }
package/vite.config.ts DELETED
@@ -1,67 +0,0 @@
1
- /* (c) Copyright Frontify Ltd., all rights reserved. */
2
-
3
- import react from '@vitejs/plugin-react';
4
- import dts from 'vite-plugin-dts';
5
- import tsConfigPaths from 'vite-tsconfig-paths';
6
- import { configDefaults, defineConfig } from 'vitest/config';
7
-
8
- import { dependencies as dependenciesMap, peerDependencies as peerDependenciesMap } from './package.json';
9
-
10
- const peerDependencies = Object.keys(peerDependenciesMap);
11
- const dependencies = Object.keys(dependenciesMap);
12
-
13
- export const globals = {
14
- react: 'React',
15
- 'react-dom': 'ReactDOM',
16
- 'react-dom/client': 'ReactDOMClient',
17
- 'react/jsx-runtime': 'react/jsx-runtime',
18
- };
19
-
20
- export default defineConfig({
21
- plugins: [
22
- react(),
23
- tsConfigPaths(),
24
- dts({ insertTypesEntry: true, rollupTypes: true, exclude: ['**/*.stories.tsx'] }),
25
- ],
26
- build: {
27
- lib: {
28
- entry: './src/index.ts',
29
- name: 'FondueComponents',
30
- formats: ['es'],
31
- },
32
- sourcemap: true,
33
- minify: true,
34
- rollupOptions: {
35
- external: [...dependencies, ...peerDependencies],
36
- output: [
37
- {
38
- name: 'FondueComponents',
39
- format: 'es',
40
- preserveModules: true,
41
- preserveModulesRoot: 'src',
42
- globals,
43
- },
44
- ],
45
- },
46
- },
47
- test: {
48
- environment: 'happy-dom',
49
- setupFiles: ['./src/setupTests.ts'],
50
- css: true,
51
- exclude: [...configDefaults.exclude, 'scripts/templates/**/*.**'],
52
- coverage: {
53
- exclude: [
54
- ...configDefaults.exclude,
55
- '.storybook',
56
- 'playwright',
57
- 'scripts/templates',
58
- '.eslintrc.cjs',
59
- '**.config.{ts,cjs}',
60
- '**/**/*.{ct,spec,test,stories}.{ts,tsx}',
61
- ],
62
- enabled: true,
63
- provider: 'v8',
64
- reporter: ['text', 'lcov', 'html'],
65
- },
66
- },
67
- });