@seeqdev/qomponents 0.0.14 → 0.0.16

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 (92) hide show
  1. package/README.md +76 -2
  2. package/dist/Button/Button.js +71 -0
  3. package/dist/Button/Button.js.map +1 -0
  4. package/dist/Button/Button.stories.d.ts +1 -0
  5. package/dist/Button/Button.stories.js +58 -0
  6. package/dist/Button/Button.stories.js.map +1 -0
  7. package/dist/Button/Button.test.js +49 -0
  8. package/dist/Button/Button.test.js.map +1 -0
  9. package/dist/Button/Button.types.d.ts +2 -0
  10. package/dist/Button/Button.types.js +4 -0
  11. package/dist/Button/Button.types.js.map +1 -0
  12. package/dist/Button/index.js +2 -0
  13. package/dist/Button/index.js.map +1 -0
  14. package/dist/Checkbox/Checkbox.js +23 -0
  15. package/dist/Checkbox/Checkbox.js.map +1 -0
  16. package/dist/Checkbox/Checkbox.stories.js +29 -0
  17. package/dist/Checkbox/Checkbox.stories.js.map +1 -0
  18. package/dist/Checkbox/Checkbox.test.js +94 -0
  19. package/dist/Checkbox/Checkbox.test.js.map +1 -0
  20. package/dist/Checkbox/Checkbox.types.js +2 -0
  21. package/dist/Checkbox/Checkbox.types.js.map +1 -0
  22. package/dist/Checkbox/index.js +2 -0
  23. package/dist/Checkbox/index.js.map +1 -0
  24. package/dist/Icon/Icon.js +54 -0
  25. package/dist/Icon/Icon.js.map +1 -0
  26. package/dist/Icon/Icon.stories.js +40 -0
  27. package/dist/Icon/Icon.stories.js.map +1 -0
  28. package/dist/Icon/Icon.test.js +55 -0
  29. package/dist/Icon/Icon.test.js.map +1 -0
  30. package/dist/Icon/Icon.types.js +16 -0
  31. package/dist/Icon/Icon.types.js.map +1 -0
  32. package/dist/Icon/index.js +2 -0
  33. package/dist/Icon/index.js.map +1 -0
  34. package/dist/Select/Select.js +168 -0
  35. package/dist/Select/Select.js.map +1 -0
  36. package/dist/Select/Select.stories.js +72 -0
  37. package/dist/Select/Select.stories.js.map +1 -0
  38. package/dist/Select/Select.test.js +161 -0
  39. package/dist/Select/Select.test.js.map +1 -0
  40. package/dist/Select/Select.types.js +2 -0
  41. package/dist/Select/Select.types.js.map +1 -0
  42. package/dist/Select/index.js +2 -0
  43. package/dist/Select/index.js.map +1 -0
  44. package/dist/TextArea/TextArea.js +15 -0
  45. package/dist/TextArea/TextArea.js.map +1 -0
  46. package/dist/TextArea/TextArea.stories.js +35 -0
  47. package/dist/TextArea/TextArea.stories.js.map +1 -0
  48. package/dist/TextArea/TextArea.test.js +68 -0
  49. package/dist/TextArea/TextArea.test.js.map +1 -0
  50. package/dist/TextArea/TextArea.types.js +2 -0
  51. package/dist/TextArea/TextArea.types.js.map +1 -0
  52. package/dist/TextArea/index.js +2 -0
  53. package/dist/TextArea/index.js.map +1 -0
  54. package/dist/TextField/TextField.js +56 -0
  55. package/dist/TextField/TextField.js.map +1 -0
  56. package/dist/TextField/TextField.stories.js +37 -0
  57. package/dist/TextField/TextField.stories.js.map +1 -0
  58. package/dist/TextField/TextField.test.js +35 -0
  59. package/dist/TextField/TextField.test.js.map +1 -0
  60. package/dist/TextField/TextField.types.js +2 -0
  61. package/dist/TextField/TextField.types.js.map +1 -0
  62. package/dist/TextField/index.js +2 -0
  63. package/dist/TextField/index.js.map +1 -0
  64. package/dist/Tooltip/Tooltip.js +30 -0
  65. package/dist/Tooltip/Tooltip.js.map +1 -0
  66. package/dist/Tooltip/Tooltip.stories.js +32 -0
  67. package/dist/Tooltip/Tooltip.stories.js.map +1 -0
  68. package/dist/Tooltip/Tooltip.types.js +3 -0
  69. package/dist/Tooltip/Tooltip.types.js.map +1 -0
  70. package/dist/Tooltip/index.js +2 -0
  71. package/dist/Tooltip/index.js.map +1 -0
  72. package/dist/example/.eslintrc.cjs +14 -0
  73. package/dist/example/README.md +33 -0
  74. package/dist/example/index.html +13 -0
  75. package/dist/example/package.json +30 -0
  76. package/dist/example/src/Example.tsx +146 -0
  77. package/dist/example/src/index.css +73 -0
  78. package/dist/example/src/main.tsx +10 -0
  79. package/dist/example/src/vite-env.d.ts +1 -0
  80. package/dist/example/tsconfig.json +33 -0
  81. package/dist/example/tsconfig.node.json +10 -0
  82. package/dist/example/vite.config.ts +12 -0
  83. package/dist/index.esm.js +12 -9
  84. package/dist/index.esm.js.map +1 -1
  85. package/dist/index.js +12 -9
  86. package/dist/index.js.map +1 -1
  87. package/dist/styles.css +8 -4
  88. package/dist/types.js +2 -0
  89. package/dist/types.js.map +1 -0
  90. package/dist/utils/browserId.js +29 -0
  91. package/dist/utils/browserId.js.map +1 -0
  92. package/package.json +1 -1
@@ -0,0 +1,73 @@
1
+ @import '@seeqdev/qomponents/dist/styles.css';
2
+ @import "@fortawesome/fontawesome-free/css/all.css";
3
+
4
+ .tw-light {
5
+ background-color: white;
6
+ color: #1a1a1a;
7
+ }
8
+
9
+ .tw-dark {
10
+ background-color: rgb(36, 36, 34);
11
+ color: rgb(194, 188, 176);
12
+ }
13
+
14
+ .backdrop {
15
+ display: flex;
16
+ height: 100vh;
17
+ width: 100vw;
18
+ align-items: center;
19
+ justify-content: center;
20
+ }
21
+
22
+ .formPanel {
23
+ align-items: center;
24
+ width: 500px;
25
+ display: flex;
26
+ }
27
+
28
+ .header {
29
+ font-size: larger;
30
+ font-weight: bold;
31
+ }
32
+
33
+ .container {
34
+ display: flex;
35
+ gap: 20px;
36
+ flex-direction: column;
37
+ width: 500px;
38
+ margin-left: auto;
39
+ margin-right: auto;
40
+ margin-top: 30px;
41
+ }
42
+
43
+ .formRow {
44
+ display: flex;
45
+ flex-direction: row;
46
+ }
47
+
48
+ .formColumn {
49
+ display: flex;
50
+ flex-direction: column;
51
+ }
52
+
53
+ .buttonRow {
54
+ display: flex;
55
+ justify-content: center;
56
+ }
57
+
58
+ .labelWidth {
59
+ width: 150px;
60
+ }
61
+
62
+ .formElementWidth {
63
+ width: 350px;
64
+ }
65
+
66
+ .mr-10 {
67
+ margin-right: 10px;
68
+ }
69
+
70
+ .ml-10 {
71
+ margin-left: 10px;
72
+ }
73
+
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom/client';
3
+ import Example from './Example.tsx';
4
+ import './index.css';
5
+
6
+ ReactDOM.createRoot(document.body as HTMLElement).render(
7
+ <React.StrictMode>
8
+ <Example />
9
+ </React.StrictMode>,
10
+ );
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -0,0 +1,33 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": [
6
+ "ES2020",
7
+ "DOM",
8
+ "DOM.Iterable"
9
+ ],
10
+ "module": "ESNext",
11
+ "skipLibCheck": true,
12
+ "moduleResolution": "node",
13
+ "allowImportingTsExtensions": true,
14
+ "resolveJsonModule": true,
15
+ "isolatedModules": true,
16
+ "noEmit": true,
17
+ "jsx": "react",
18
+ /* Linting */
19
+ "strict": true,
20
+ "noUnusedLocals": true,
21
+ "noUnusedParameters": true,
22
+ "noFallthroughCasesInSwitch": true,
23
+ "allowSyntheticDefaultImports": true
24
+ },
25
+ "include": [
26
+ "src"
27
+ ],
28
+ "references": [
29
+ {
30
+ "path": "./tsconfig.node.json"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true
8
+ },
9
+ "include": ["vite.config.ts"]
10
+ }
@@ -0,0 +1,12 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+
4
+ // https://vitejs.dev/config/
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ css: {
8
+ postcss: {
9
+ plugins: [],
10
+ },
11
+ },
12
+ });
package/dist/index.esm.js CHANGED
@@ -114,13 +114,13 @@ const Icon = ({ onClick, icon, type = 'theme', extraClassNames, id, large, small
114
114
  * - use "variant" to achieve the desired style
115
115
  * - include tooltips and/or icons
116
116
  */
117
- const Button = ({ onClick, label, variant = 'outline', type = 'button', size = 'sm', disabled, extraClassNames, id, testId, stopPropagation = true, tooltip, tooltipOptions, iconStyle = 'text', icon, iconColor, }) => {
117
+ const Button = ({ onClick, label, variant = 'outline', type = 'button', size = 'sm', disabled, extraClassNames, id, testId, stopPropagation = true, tooltip, tooltipOptions, iconStyle = 'text', icon, iconColor, preventBlur = false, }) => {
118
118
  const baseClasses = 'tw-py-1 tw-px-2.5 tw-rounded-sm focus:tw-ring-0 disabled:tw-pointer-events-none';
119
119
  const baseClassesByVariant = {
120
120
  'outline': 'tw-border-solid tw-border',
121
- 'theme': 'disabled:tw-bg-opacity-50',
122
- 'danger': 'tw-bg-sq-danger-color hover:tw-bg-sq-danger-color-hover disabled:tw-bg-opacity-50',
123
- 'theme-light': 'disabled:tw-bg-opacity-50',
121
+ 'theme': 'disabled:tw-opacity-50',
122
+ 'danger': 'tw-bg-sq-danger-color hover:tw-bg-sq-danger-color-hover disabled:tw-opacity-50',
123
+ 'theme-light': 'disabled:tw-opacity-50',
124
124
  'no-border': '',
125
125
  'warning': 'tw-bg-sq-warning-color',
126
126
  };
@@ -167,9 +167,12 @@ const Button = ({ onClick, label, variant = 'outline', type = 'button', size = '
167
167
  const button = (React__default.createElement("button", { id: id, disabled: disabled, "data-testid": testId, type: type === 'link' || (type === 'submit' && browserIsFirefox) ? 'button' : type, onClick: (e) => {
168
168
  stopPropagation && e.stopPropagation();
169
169
  onClick && onClick();
170
+ }, onMouseDown: (e) => {
171
+ if (preventBlur) {
172
+ e.preventDefault();
173
+ }
170
174
  }, className: appliedClasses },
171
- icon && (React__default.createElement(Icon, { icon: icon, type: iconStyle, color: iconColor, extraClassNames: label ?
172
- `tw-mr-1 ${textClassesByVariantLightTheme[variant]} ${textClassesByVariantDarkTheme[variant]}` : '', testId: `${id}_spinner` })),
175
+ icon && (React__default.createElement(Icon, { icon: icon, type: iconStyle, color: iconColor, extraClassNames: label ? `tw-mr-1 ${textClassesByVariantLightTheme[variant]} ${textClassesByVariantDarkTheme[variant]}` : '', testId: `${id}_spinner` })),
173
176
  label));
174
177
  return tooltip ? (React__default.createElement(Tooltip, { text: tooltip, ...tooltipOptions }, button)) : (button);
175
178
  };
@@ -250,10 +253,10 @@ const Checkbox = (props) => {
250
253
  };
251
254
 
252
255
  const baseClasses$1 = 'tw-leading-normal tw-outline-none tw-py-1 tw-px-3 tw-rounded-sm' +
253
- ' disabled:tw-cursor-not-allowed tw-p-1 tw-border-solid tw-border';
256
+ ' disabled:tw-cursor-not-allowed tw-p-1 tw-border-solid tw-border tw-text-sm';
254
257
  const darkTheme = 'dark:tw-border-sq-dark-disabled-gray dark:tw-bg-sq-dark-background dark:tw-text-sq-dark-text' +
255
- ' dark:focus:tw-border-sq-color-dark-dark dark:active:tw-border-sq-color-dark-dark';
256
- const lightTheme = 'tw-border-sq-disabled-gray tw-text-sq-text-color focus:tw-border-sq-color-dark active:tw-border-sq-color-dark';
258
+ ' dark:focus:tw-border-sq-color-dark-dark dark:active:tw-border-sq-color-dark-dark dark:tw-placeholder-sq-dark-text-lighter';
259
+ const lightTheme = 'tw-border-sq-disabled-gray tw-text-sq-text-color focus:tw-border-sq-color-dark active:tw-border-sq-color-dark tw-placeholder-gray-400';
257
260
  /**
258
261
  * TextArea.
259
262
  */