@stamcat/craftsman 0.0.27-alpha.7 → 0.0.27-alpha.9

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 (37) hide show
  1. package/Components.esm.js +10 -4
  2. package/package.json +13 -1
  3. package/src/components/{Button.d.ts → Button/Button.d.ts} +1 -1
  4. package/src/components/{Button.esm.js → Button/Button.esm.js} +4 -4
  5. package/src/components/Input/Checkbox.esm.js +1 -1
  6. package/src/components/Input/DatePicker.d.ts +8 -0
  7. package/src/components/Input/DatePicker.esm.js +24 -0
  8. package/src/components/Input/Input.css +1 -0
  9. package/src/components/Input/{Input.module.scss → Input.scss} +48 -50
  10. package/src/components/Input/Input2.esm.js +33 -0
  11. package/src/components/Input/InputPassword.esm.js +18 -19
  12. package/src/components/Input/InputPhone.d.ts +7 -0
  13. package/src/components/Input/InputPhone.esm.js +27 -0
  14. package/src/components/Input/InputWrapper.d.ts +1 -2
  15. package/src/components/Input/InputWrapper.esm.js +18 -24
  16. package/src/components/Input/RadioButton.esm.js +1 -1
  17. package/src/components/Input/Textarea.esm.js +18 -19
  18. package/src/components/Loader/Loader.d.ts +0 -1
  19. package/src/components/Loader/Loader.esm.js +12 -14
  20. package/src/components/Modal/Modal.d.ts +0 -1
  21. package/src/components/Modal/Modal.esm.js +25 -26
  22. package/src/components/Select/Select.d.ts +14 -0
  23. package/src/components/Select/Select.esm.js +26 -0
  24. package/src/components/index.d.ts +4 -1
  25. package/src/styles/global/components/_input.scss +0 -6
  26. package/src/styles/global/components/_reactCalendar.css +1 -0
  27. package/src/styles/global/components/_reactCalendar.scss +237 -0
  28. package/src/styles/global/components/_reactDatePicker.css +1 -0
  29. package/src/styles/global/components/_reactDatePicker.scss +152 -0
  30. package/src/styles/global/components/_reactPhone.css +1 -0
  31. package/src/styles/global/components/_reactPhone.scss +265 -0
  32. package/src/styles/global/components/_select.scss +56 -0
  33. package/src/styles/global/globalStyles.scss +2 -1
  34. package/src/styles/theme/components.esm.js +0 -1
  35. package/src/components/Input/Input.esm.js +0 -33
  36. package/src/components/Input/Input.module.css +0 -1
  37. package/src/components/Input/Input.module.esm.js +0 -13
@@ -0,0 +1,265 @@
1
+ @use "./input";
2
+ @use "../../utilities/functions" as u;
3
+
4
+ .input-phone {
5
+ &[data-label-position="inside"] {
6
+ .input-label {
7
+ top: 15px;
8
+ left: 50px;
9
+ }
10
+ }
11
+
12
+ .react-international-phone-country-selector {
13
+ position: relative;
14
+ }
15
+
16
+ .react-international-phone-flag-emoji {
17
+ width: var(--react-international-phone-flag-width, 24px);
18
+ height: var(--react-international-phone-flag-height, 24px);
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ .react-international-phone-country-selector-button {
23
+ display: flex;
24
+ height: var(--react-international-phone-height, 36px);
25
+ box-sizing: border-box;
26
+ align-items: center;
27
+ justify-content: center;
28
+ padding: 0;
29
+ border: 1px solid
30
+ var(
31
+ --react-international-phone-country-selector-border-color,
32
+ var(--react-international-phone-border-color, gainsboro)
33
+ );
34
+ margin: 0;
35
+ appearance: button;
36
+ -webkit-appearance: button;
37
+ background-color: var(
38
+ --react-international-phone-country-selector-background-color,
39
+ var(--react-international-phone-background-color, white)
40
+ );
41
+ cursor: pointer;
42
+ text-transform: none;
43
+ user-select: none;
44
+
45
+ &:hover {
46
+ background-color: var(--react-international-phone-country-selector-background-color-hover, whitesmoke);
47
+ }
48
+
49
+ &--hide-dropdown {
50
+ cursor: auto;
51
+
52
+ &:hover {
53
+ background-color: transparent;
54
+ }
55
+ }
56
+
57
+ &--disabled {
58
+ background-color: var(
59
+ --react-international-phone-disabled-country-selector-background-color,
60
+ var(--react-international-phone-disabled-background-color, whitesmoke)
61
+ );
62
+ cursor: auto;
63
+
64
+ &:hover {
65
+ background-color: var(
66
+ --react-international-phone-disabled-country-selector-background-color,
67
+ var(--react-international-phone-disabled-background-color, whitesmoke)
68
+ );
69
+ }
70
+ }
71
+
72
+ &__button-content {
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ }
77
+
78
+ &__flag-emoji {
79
+ margin: 0 4px;
80
+
81
+ &--disabled {
82
+ opacity: 0.75;
83
+ }
84
+ }
85
+
86
+ &__dropdown-arrow {
87
+ border-top: var(--react-international-phone-country-selector-arrow-size, 4px) solid
88
+ var(--react-international-phone-country-selector-arrow-color, #777);
89
+ border-right: var(--react-international-phone-country-selector-arrow-size, 4px) solid transparent;
90
+ border-left: var(--react-international-phone-country-selector-arrow-size, 4px) solid transparent;
91
+ margin-right: 4px;
92
+ transition: all 0.1s ease-out;
93
+
94
+ &--active {
95
+ transform: rotateX(180deg);
96
+ }
97
+
98
+ &--disabled {
99
+ border-top-color: var(--react-international-phone-disabled-country-selector-arrow-color, #999);
100
+ }
101
+ }
102
+ }
103
+
104
+ .react-international-phone-country-selector-dropdown {
105
+ position: absolute;
106
+ z-index: 1000;
107
+ top: var(--react-international-phone-dropdown-top, 44px);
108
+ left: var(--react-international-phone-dropdown-left, 0);
109
+ display: flex;
110
+ width: 300px;
111
+ max-height: 200px;
112
+ flex-direction: column;
113
+ padding: 4px 0;
114
+ margin: 0;
115
+ background-color: var(
116
+ --react-international-phone-dropdown-item-background-color,
117
+ var(--react-international-phone-background-color, white)
118
+ );
119
+ box-shadow: var(--react-international-phone-dropdown-shadow, 2px 2px 16px rgba(0, 0, 0, 0.25));
120
+ color: var(
121
+ --react-international-phone-dropdown-item-text-color,
122
+ var(--react-international-phone-text-color, #222)
123
+ );
124
+ list-style: none;
125
+ overflow-y: scroll;
126
+
127
+ &__preferred-list-divider {
128
+ height: 1px;
129
+ border: none;
130
+ margin: var(--react-international-phone-dropdown-preferred-list-divider-margin, 0);
131
+ background: var(
132
+ --react-international-phone-dropdown-preferred-list-divider-color,
133
+ var(--react-international-phone-border-color, gainsboro)
134
+ );
135
+ }
136
+
137
+ &__list-item {
138
+ display: flex;
139
+ min-height: var(--react-international-phone-dropdown-item-height, 28px);
140
+ box-sizing: border-box;
141
+ align-items: center;
142
+ padding: 2px 8px;
143
+
144
+ &:hover {
145
+ background-color: var(
146
+ --react-international-phone-selected-dropdown-item-background-color,
147
+ var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke)
148
+ );
149
+ cursor: pointer;
150
+ }
151
+
152
+ &--selected,
153
+ &--focused {
154
+ background-color: var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke);
155
+ color: var(
156
+ --react-international-phone-selected-dropdown-item-text-color,
157
+ var(--react-international-phone-text-color, #222)
158
+ );
159
+
160
+ .react-international-phone-country-selector-dropdown__list-item-dial-code {
161
+ color: var(
162
+ --react-international-phone-selected-dropdown-item-dial-code-color,
163
+ var(--react-international-phone-dropdown-item-dial-code-color, gray)
164
+ );
165
+ }
166
+ }
167
+
168
+ &--focused {
169
+ background-color: var(
170
+ --react-international-phone-selected-dropdown-item-background-color,
171
+ var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke)
172
+ );
173
+ }
174
+
175
+ &-flag-emoji {
176
+ margin-right: 8px;
177
+ }
178
+
179
+ &-country-name {
180
+ overflow: hidden;
181
+ margin-right: 8px;
182
+ font-size: var(--react-international-phone-dropdown-item-font-size, 14px);
183
+ text-overflow: ellipsis;
184
+ white-space: nowrap;
185
+ }
186
+
187
+ &-dial-code {
188
+ color: var(--react-international-phone-dropdown-item-dial-code-color, gray);
189
+ font-size: var(--react-international-phone-dropdown-item-font-size, 14px);
190
+ }
191
+ }
192
+ }
193
+
194
+ .react-international-phone-dial-code-preview {
195
+ display: flex;
196
+ align-items: center;
197
+ justify-content: center;
198
+ padding: 0 8px;
199
+ border: 1px solid
200
+ var(
201
+ --react-international-phone-dial-code-preview-border-color,
202
+ var(--react-international-phone-border-color, gainsboro)
203
+ );
204
+ margin-right: -1px;
205
+ background-color: var(
206
+ --react-international-phone-dial-code-preview-background-color,
207
+ var(--react-international-phone-background-color, white)
208
+ );
209
+ color: var(
210
+ --react-international-phone-dial-code-preview-text-color,
211
+ var(--react-international-phone-text-color, #222)
212
+ );
213
+ font-size: var(
214
+ --react-international-phone-dial-code-preview-font-size,
215
+ var(--react-international-phone-font-size, 13px)
216
+ );
217
+
218
+ &--disabled {
219
+ background-color: var(
220
+ --react-international-phone-dial-code-preview-disabled-background-color,
221
+ var(--react-international-phone-disabled-background-color, whitesmoke)
222
+ );
223
+ color: var(
224
+ --react-international-phone-dial-code-preview-disabled-text-color,
225
+ var(--react-international-phone-disabled-text-color, #666)
226
+ );
227
+ }
228
+ }
229
+
230
+ .react-international-phone-input-container {
231
+ display: flex;
232
+
233
+ .react-international-phone-country-selector-button {
234
+ border-radius: var(--react-international-phone-border-radius, 4px);
235
+ margin-right: -1px;
236
+ border-bottom-right-radius: 0;
237
+ border-top-right-radius: 0;
238
+ }
239
+
240
+ .react-international-phone-input {
241
+ overflow: visible;
242
+ height: var(--react-international-phone-height, 36px);
243
+ box-sizing: border-box;
244
+ padding: 0 8px;
245
+ border: 1px solid var(--react-international-phone-border-color, gainsboro);
246
+ border-radius: var(--react-international-phone-border-radius, 4px);
247
+ margin: 0;
248
+ background-color: var(--react-international-phone-background-color, white);
249
+ border-bottom-left-radius: 0;
250
+ border-top-left-radius: 0;
251
+ color: var(--react-international-phone-text-color, #222);
252
+ font-family: inherit;
253
+ font-size: var(--react-international-phone-font-size, 13px);
254
+
255
+ &:focus {
256
+ outline: none;
257
+ }
258
+
259
+ &--disabled {
260
+ background-color: var(--react-international-phone-disabled-background-color, whitesmoke);
261
+ color: var(--react-international-phone-disabled-text-color, #666);
262
+ }
263
+ }
264
+ }
265
+ }
@@ -0,0 +1,56 @@
1
+ @use "../../utilities/functions" as u;
2
+ @layer craftsman-base {
3
+ select,
4
+ ::picker(select) {
5
+ appearance: base-select;
6
+ background: #{u.color("white")};
7
+ color: #{u.color("text")};
8
+ border: 1px solid #{u.color("gray200")};
9
+ border-radius: 6px;
10
+ }
11
+ select {
12
+ padding: 10px 40px 10px 14px;
13
+ position: relative;
14
+ &:hover,
15
+ &:focus {
16
+ outline: none;
17
+ border-color: #{u.color("gray200")};
18
+ }
19
+ &:focus-visible {
20
+ outline: none;
21
+ }
22
+ &:-moz-focusring {
23
+ color: transparent;
24
+ text-shadow: 0 0 0 #{u.color("text")};
25
+ }
26
+ &::picker-icon {
27
+ color: #999999;
28
+ transition: 0.2s rotate;
29
+ content: "";
30
+ display: inline-block;
31
+ width: 10px;
32
+ height: 10px;
33
+ border-style: solid;
34
+ border-width: 0 2px 2px 0;
35
+ transform: rotate(45deg);
36
+ margin: 0px 2px 0 12px;
37
+ position: absolute;
38
+ right: 16px;
39
+ top: 12px;
40
+ }
41
+ &:open::picker-icon {
42
+ margin-top: 6px;
43
+ rotate: 180deg;
44
+ }
45
+ option {
46
+ padding: #{u.width("gutter", 0.5)};
47
+ &:hover,
48
+ &:focus {
49
+ background: #{u.color("gray100")};
50
+ }
51
+ &::checkmark {
52
+ content: "";
53
+ }
54
+ }
55
+ }
56
+ }
@@ -5,7 +5,7 @@
5
5
  @use "./components/radioButton";
6
6
  @use "./components/button";
7
7
  @use "./components/input";
8
-
8
+ @use "./components/select";
9
9
  @layer craftsman-base, craftsman-theme;
10
10
 
11
11
  @layer craftsman-base {
@@ -79,4 +79,5 @@
79
79
  a {
80
80
  @extend %text-link;
81
81
  }
82
+
82
83
  }
@@ -2,7 +2,6 @@ import { htmlTagNames as e } from "./constants.esm.js";
2
2
  import { components_exports as t } from "../../../Components.esm.js";
3
3
  //#region src/styles/theme/components.ts
4
4
  var n = {
5
- button: "button",
6
5
  input: "input:not([type='radio']):not([type='checkbox'])",
7
6
  checkbox: "input[type='checkbox']",
8
7
  radioButton: "input[type='radio']"
@@ -1,33 +0,0 @@
1
- "use client";
2
- import { isEmpty as e } from "../../utilities/validations.esm.js";
3
- import t from "./Input.module.esm.js";
4
- import { InputWrapper as n } from "./InputWrapper.esm.js";
5
- import r from "clsx";
6
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
- import { useId as o } from "react";
8
- //#region src/components/Input/Input.tsx
9
- var s = ({ label: s, id: c, labelPosition: l = "top", required: u = !1, type: d = "text", error: f, styles: p, endAdornment: m, ...h }) => {
10
- let g = o(), _ = c || g;
11
- return /* @__PURE__ */ i(n, {
12
- label: s,
13
- labelPosition: l,
14
- error: f,
15
- required: u,
16
- styles: p,
17
- children: /* @__PURE__ */ a("span", {
18
- className: t.inputField,
19
- "data-has-end-adornment": !e(m),
20
- children: [/* @__PURE__ */ i("input", {
21
- id: _,
22
- type: d,
23
- className: r(t.input, d),
24
- ...h
25
- }), !e(m) && /* @__PURE__ */ i("span", {
26
- className: t.inputAdornment,
27
- children: m
28
- })]
29
- })
30
- });
31
- };
32
- //#endregion
33
- export { s as Input };
@@ -1 +0,0 @@
1
- @layer craftsman-base{._wrapper_1xyh8_2[data-label-position=inside]{--react-international-phone-height:50px;--react-international-phone-border-radius:8px;--react-international-phone-border-color:silver;position:relative}}._wrapper_1xyh8_2 label ._inputLabel_1xyh8_9{margin-bottom:calc(var(--w-gutter) * .25)}._wrapper_1xyh8_2[data-required=true] label ._inputLabel_1xyh8_9:after{content:"*";color:var(--red700)}._wrapper_1xyh8_2[data-label-position=left] label{align-items:center;display:inline-flex}._wrapper_1xyh8_2[data-label-position=left] label ._inputLabel_1xyh8_9{width:fit-content;margin-right:calc(var(--w-gutter) * .75)}._wrapper_1xyh8_2[data-label-position=left]._textarea_1xyh8_24 label{align-items:flex-start}._wrapper_1xyh8_2[data-label-position=bottom] label{flex-direction:column-reverse;align-items:flex-start;display:inline-flex}._wrapper_1xyh8_2[data-label-position=bottom] label ._inputLabel_1xyh8_9{margin-bottom:0;margin-top:calc(var(--w-gutter) * .25)}._wrapper_1xyh8_2[data-label-position=right] label{flex-direction:row-reverse;align-items:baseline;display:inline-flex}._wrapper_1xyh8_2[data-label-position=right] label ._inputLabel_1xyh8_9{margin-left:calc(var(--w-gutter) * .25);margin-bottom:0}._wrapper_1xyh8_2[data-label-position=inside] ._inputLabel_1xyh8_9{background-color:var(--white);z-index:1;width:fit-content;top:calc(var(--w-gutter) * .25);left:calc(var(--w-gutter) * .25);pointer-events:none;padding:0 5px;transition:top .15s,left .15s,font-size .15s,color .15s;position:absolute}._wrapper_1xyh8_2[data-label-position=inside]>label>._inputField_1xyh8_56>._input_1xyh8_9,._wrapper_1xyh8_2[data-label-position=inside]>._input_1xyh8_9{transition:border-color .2s}._wrapper_1xyh8_2[data-label-position=inside]:focus-within ._inputLabel_1xyh8_9{top:-.5rem;left:calc(var(--w-gutter) * .125);font-size:calc(var(--w-text) * .75);color:var(--blue500)}._wrapper_1xyh8_2[data-label-position=inside]:focus-within ._input_1xyh8_9{border-color:var(--blue500)}._wrapper_1xyh8_2[data-label-position=inside]:focus-within ._input_1xyh8_9::placeholder{opacity:1}._wrapper_1xyh8_2[data-label-position=inside][data-has-input=true] ._inputLabel_1xyh8_9{top:-.5rem;left:calc(var(--w-gutter) * .125);font-size:calc(var(--w-text) * .75)}._wrapper_1xyh8_2[data-label-position=inside]:has(._input_1xyh8_9:not(:placeholder-shown)) ._inputLabel_1xyh8_9{top:-.5rem;left:calc(var(--w-gutter) * .125);font-size:calc(var(--w-text) * .75)}._wrapper_1xyh8_2[data-label-position=inside]:has(._input_1xyh8_9:-webkit-autofill) ._inputLabel_1xyh8_9{top:-.5rem;left:calc(var(--w-gutter) * .125);font-size:calc(var(--w-text) * .75)}._wrapper_1xyh8_2[data-label-position=inside] ._input_1xyh8_9[type=tel]{width:100%}._wrapper_1xyh8_2[data-label-position=inside] ._input_1xyh8_9::placeholder{opacity:0;transition:opacity .2s}._inputField_1xyh8_56{align-items:center;display:inline-flex;position:relative}._inputField_1xyh8_56[data-has-end-adornment=true]>._input_1xyh8_9{width:100%;padding-right:calc(var(--w-gutter) * 1.5)}._inputAdornment_1xyh8_95{right:calc(var(--w-gutter) * .5);z-index:1;align-items:center;margin-top:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}._error_1xyh8_106{margin-top:calc(var(--w-gutter) * .25);font-size:calc(var(--w-text) * .75);color:var(--red600)}._inputViewToggle_1xyh8_112{align-items:"center";padding:0;line-height:1;display:inline-flex}
@@ -1,13 +0,0 @@
1
- import './Input.module.css';//#region src/components/Input/Input.module.scss
2
- var e = "_wrapper_1xyh8_2", t = "_inputLabel_1xyh8_9", n = "_textarea_1xyh8_24", r = "_inputField_1xyh8_56", i = "_input_1xyh8_9", a = "_inputAdornment_1xyh8_95", o = "_error_1xyh8_106", s = "_inputViewToggle_1xyh8_112", c = {
3
- wrapper: e,
4
- inputLabel: t,
5
- textarea: n,
6
- inputField: r,
7
- input: i,
8
- inputAdornment: a,
9
- error: o,
10
- inputViewToggle: s
11
- };
12
- //#endregion
13
- export { c as default, o as error, i as input, a as inputAdornment, r as inputField, t as inputLabel, s as inputViewToggle, n as textarea, e as wrapper };