@startlibs/form 1.1.3 → 1.2.0-rc.1

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 (112) hide show
  1. package/lib/AutoComplete.mjs +7 -7
  2. package/lib/AutoComplete.mjs.map +1 -1
  3. package/lib/Checkbox.mjs +4 -2
  4. package/lib/Checkbox.mjs.map +1 -1
  5. package/lib/Combobox.mjs +1 -1
  6. package/lib/Combobox.mjs.map +1 -1
  7. package/lib/DatePicker.mjs +25 -9
  8. package/lib/DatePicker.mjs.map +1 -1
  9. package/lib/Errors.mjs +20 -10
  10. package/lib/Errors.mjs.map +1 -1
  11. package/lib/ExpandableBox.mjs +1 -1
  12. package/lib/ExpandableBox.mjs.map +1 -1
  13. package/lib/Field.mjs +10 -5
  14. package/lib/Field.mjs.map +1 -1
  15. package/lib/FieldBox.mjs +3 -3
  16. package/lib/FieldBox.mjs.map +1 -1
  17. package/lib/InputboxGroup.mjs +1 -1
  18. package/lib/InputboxGroup.mjs.map +1 -1
  19. package/lib/RichText.mjs +11 -6
  20. package/lib/RichText.mjs.map +1 -1
  21. package/lib/TextInput.mjs +4 -4
  22. package/lib/TextInput.mjs.map +1 -1
  23. package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
  24. package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
  25. package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
  26. package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
  27. package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
  28. package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
  29. package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
  30. package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
  31. package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
  32. package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
  33. package/lib/index.cjs +94 -51
  34. package/lib/index.cjs.map +1 -1
  35. package/lib/index.mjs +2 -2
  36. package/lib/withFormImageInput.mjs +1 -1
  37. package/lib/withFormImageInput.mjs.map +1 -1
  38. package/lib-yak/AutoComplete.mjs +705 -0
  39. package/lib-yak/AutoComplete.mjs.map +1 -0
  40. package/lib-yak/Checkbox.mjs +80 -0
  41. package/lib-yak/Checkbox.mjs.map +1 -0
  42. package/lib-yak/Combobox.mjs +652 -0
  43. package/lib-yak/Combobox.mjs.map +1 -0
  44. package/lib-yak/ComboboxWithCustom.mjs +77 -0
  45. package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
  46. package/lib-yak/DatePicker.mjs +774 -0
  47. package/lib-yak/DatePicker.mjs.map +1 -0
  48. package/lib-yak/EditableBox.mjs +495 -0
  49. package/lib-yak/EditableBox.mjs.map +1 -0
  50. package/lib-yak/Errors.mjs +226 -0
  51. package/lib-yak/Errors.mjs.map +1 -0
  52. package/lib-yak/ExpandableBox.mjs +247 -0
  53. package/lib-yak/ExpandableBox.mjs.map +1 -0
  54. package/lib-yak/Field.mjs +93 -0
  55. package/lib-yak/Field.mjs.map +1 -0
  56. package/lib-yak/FieldBox.mjs +173 -0
  57. package/lib-yak/FieldBox.mjs.map +1 -0
  58. package/lib-yak/Form.mjs +322 -0
  59. package/lib-yak/Form.mjs.map +1 -0
  60. package/lib-yak/FormValue.mjs +111 -0
  61. package/lib-yak/FormValue.mjs.map +1 -0
  62. package/lib-yak/InputboxGroup.mjs +146 -0
  63. package/lib-yak/InputboxGroup.mjs.map +1 -0
  64. package/lib-yak/Radiobox.mjs +69 -0
  65. package/lib-yak/Radiobox.mjs.map +1 -0
  66. package/lib-yak/RichText.mjs +776 -0
  67. package/lib-yak/RichText.mjs.map +1 -0
  68. package/lib-yak/TextInput.mjs +589 -0
  69. package/lib-yak/TextInput.mjs.map +1 -0
  70. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
  71. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
  72. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
  73. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
  74. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
  75. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
  76. package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
  77. package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
  78. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
  79. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
  80. package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
  81. package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
  82. package/lib-yak/enhanceInput.mjs +131 -0
  83. package/lib-yak/enhanceInput.mjs.map +1 -0
  84. package/lib-yak/index.mjs +28 -0
  85. package/lib-yak/index.mjs.map +1 -0
  86. package/lib-yak/useConfirmDialog.mjs +117 -0
  87. package/lib-yak/useConfirmDialog.mjs.map +1 -0
  88. package/lib-yak/useDraftConfirmation.mjs +56 -0
  89. package/lib-yak/useDraftConfirmation.mjs.map +1 -0
  90. package/lib-yak/validation.mjs +91 -0
  91. package/lib-yak/validation.mjs.map +1 -0
  92. package/lib-yak/withFormImageInput.mjs +298 -0
  93. package/lib-yak/withFormImageInput.mjs.map +1 -0
  94. package/package.json +13 -3
  95. package/src/AutoComplete.jsx +12 -12
  96. package/src/Checkbox.jsx +2 -2
  97. package/src/Combobox.jsx +1 -1
  98. package/src/DatePicker.jsx +25 -22
  99. package/src/Errors.jsx +18 -8
  100. package/src/ExpandableBox.jsx +3 -3
  101. package/src/Field.jsx +9 -4
  102. package/src/FieldBox.jsx +6 -6
  103. package/src/IconRadioBoxOldHubt.jsx +1 -1
  104. package/src/InputboxGroup.jsx +1 -1
  105. package/src/RichText.jsx +17 -13
  106. package/src/TextInput.jsx +37 -26
  107. package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
  108. package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
  109. package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
  110. package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
  111. package/src/alt/radiobox/TabRadiobox.jsx +4 -4
  112. package/src/withFormImageInput.jsx +2 -2
@@ -0,0 +1,225 @@
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { yakDomTag } from '@startlibs/utils/yakDomTag';
4
+ import React from 'react';
5
+ import { Icon } from '@startlibs/components';
6
+ import { getColor } from '@startlibs/utils';
7
+ import { styled, css } from '@yak/react';
8
+ import { desaturate, lighten } from 'polished';
9
+ import { Checkbox } from '../../Checkbox.mjs';
10
+ import { HelpText } from '../../Field.mjs';
11
+
12
+ const _excluded = ["path", "disabled", "label", "descText", "helpText", "isFirst", "isLast", "tabIndex", "className", "framedBoxes", "highlightSelected", "ultraHighlightSelected"];
13
+ const CheckboxPseudoInput = styled(yakDomTag("div"))`
14
+ border-radius: 4px;
15
+ content: '';
16
+ border: 1px solid ${__yakProps => {
17
+ const v = getColor('gray210');
18
+ return typeof v === 'function' ? v(__yakProps) : v;
19
+ }};
20
+ width: 18px;
21
+ height: 18px;
22
+ background-color: white;
23
+ position: absolute;
24
+ left: -2rem;
25
+ top: 50%;
26
+ transform: translateY(-50%);
27
+
28
+ ${__yakProps => __yakProps["focused"] && css`
29
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
30
+ border-color: ${__yakProps => {
31
+ const v = getColor('gray180');
32
+ return typeof v === 'function' ? v(__yakProps) : v;
33
+ }};
34
+ `}
35
+
36
+ ${Icon} {
37
+ position: absolute;
38
+ top: 50%;
39
+ left: 50%;
40
+ transform: translate(-50%,-50%);
41
+ font-weight: bold;
42
+ font-size: 16px;
43
+ color: ${__yakProps => {
44
+ const v = getColor('gray90');
45
+ return typeof v === 'function' ? v(__yakProps) : v;
46
+ }};
47
+ }
48
+ `;
49
+ const TextLabel = styled(yakDomTag("span"))`
50
+ font-size: 13px;
51
+ line-height: 16px;
52
+ margin: 2px 0;
53
+ display: block;
54
+ `;
55
+ const DescText = styled(yakDomTag("div"))`
56
+ color: rgba(0,0,0,0.4);
57
+ display: block;
58
+ font-size: 12px;
59
+ font-weight: 400;
60
+ `;
61
+ const TextLabelContainer = styled(yakDomTag("div"))`
62
+ display: flex;
63
+ align-items: center;
64
+ position: relative;
65
+ ${HelpText} {
66
+ margin-left: 0.25rem;
67
+ }
68
+ `;
69
+ const CheckboxContent = styled(yakDomTag("div"))`
70
+ cursor: pointer;
71
+ position: relative;
72
+ padding-left: 2rem;
73
+ transition: background 0.2s linear;
74
+ ${props => props.framed && css`
75
+ border: 1px solid ${__yakProps => {
76
+ const v = getColor('gray210');
77
+ return typeof v === 'function' ? v(__yakProps) : v;
78
+ }};
79
+ border-radius: 8px;
80
+ min-height: 3rem;
81
+ min-width: 8rem;
82
+ background: white;
83
+ width: 100%;
84
+ align-items: center;
85
+ display: flex;
86
+ &:hover {
87
+ background: rgb(245,245,245);
88
+ }
89
+ &:active {
90
+ background: rgb(235,235,235);
91
+ transition: none;
92
+ }
93
+ padding: 10px 12px 10px 32px;
94
+ @media (min-width: 601px) {
95
+ padding: 7px 12px 7px 32px;
96
+ }
97
+ ${props => props.hasErrors && css`
98
+ border-color: ${__yakProps => {
99
+ const v = getColor('alert');
100
+ return typeof v === 'function' ? v(__yakProps) : v;
101
+ }} !important;
102
+ `}
103
+ ${props => props.checked && props.highlightSelected && css`
104
+ border-color: ${__yakProps => {
105
+ const v = getColor('main');
106
+ return typeof v === 'function' ? v(__yakProps) : v;
107
+ }};
108
+ background: ${props => desaturate(0.3, lighten(0.52, getColor("main")(props)))};
109
+ &:hover {
110
+ background: ${props => desaturate(0.3, lighten(0.52, getColor("main")(props)))};
111
+ }
112
+ ${CheckboxPseudoInput} {
113
+ ${Icon} {
114
+ color: ${__yakProps => {
115
+ const v = getColor('main');
116
+ return typeof v === 'function' ? v(__yakProps) : v;
117
+ }};
118
+ }
119
+ }
120
+ `}
121
+ ${props => props.checked && props.ultraHighlightSelected && css`
122
+ border-color: ${__yakProps => {
123
+ const v = getColor('main');
124
+ return typeof v === 'function' ? v(__yakProps) : v;
125
+ }};
126
+ background: ${__yakProps => {
127
+ const v = getColor('main');
128
+ return typeof v === 'function' ? v(__yakProps) : v;
129
+ }};
130
+ color: white;
131
+ a, a.link {
132
+ color: white;
133
+ }
134
+ &:hover {
135
+ background: ${__yakProps => {
136
+ const v = getColor('main');
137
+ return typeof v === 'function' ? v(__yakProps) : v;
138
+ }};
139
+ }
140
+ ${CheckboxPseudoInput} {
141
+ ${Icon} {
142
+ color: ${__yakProps => {
143
+ const v = getColor('main');
144
+ return typeof v === 'function' ? v(__yakProps) : v;
145
+ }};
146
+ }
147
+ }
148
+ ${HelpText} {
149
+ color: rgba(255, 255, 255, 0.65);
150
+ }
151
+ ${DescText} {
152
+ color: rgba(255, 255, 255, 0.65);
153
+ }
154
+ `}
155
+ ${props => props.disabled && css`
156
+ background-color: rgba(0,0,0,0.075) !important;
157
+ color: rgba(0,0,0,0.6);
158
+ &[disabled] {
159
+ opacity: 0.75 !important;
160
+ }
161
+ ${CheckboxPseudoInput} {
162
+ background: transparent;
163
+ }
164
+ `}
165
+ `}
166
+ `;
167
+ const SimpleCheckbox = styled(_ref => {
168
+ let {
169
+ path,
170
+ disabled,
171
+ label,
172
+ descText,
173
+ helpText,
174
+ isFirst,
175
+ isLast,
176
+ tabIndex,
177
+ className,
178
+ framedBoxes,
179
+ highlightSelected,
180
+ ultraHighlightSelected
181
+ } = _ref,
182
+ rest = _objectWithoutProperties(_ref, _excluded);
183
+ return /*#__PURE__*/React.createElement(Checkbox, _extends({
184
+ className: className,
185
+ path: path,
186
+ tabIndex: tabIndex
187
+ }, rest), _ref2 => {
188
+ let {
189
+ checked,
190
+ hasErrors,
191
+ focused
192
+ } = _ref2;
193
+ return /*#__PURE__*/React.createElement(CheckboxContent, {
194
+ checked: checked,
195
+ framed: framedBoxes,
196
+ highlightSelected: highlightSelected,
197
+ ultraHighlightSelected: ultraHighlightSelected,
198
+ hasErrors: hasErrors,
199
+ disabled: disabled
200
+ }, /*#__PURE__*/React.createElement("div", {
201
+ className: "textContainer"
202
+ }, /*#__PURE__*/React.createElement(TextLabelContainer, null, /*#__PURE__*/React.createElement(CheckboxPseudoInput, {
203
+ focused: focused,
204
+ tabIndex: tabIndex
205
+ }, checked && /*#__PURE__*/React.createElement(Icon, {
206
+ icon: "check"
207
+ })), /*#__PURE__*/React.createElement(TextLabel, null, label), helpText && /*#__PURE__*/React.createElement(HelpText, null, helpText)), descText && /*#__PURE__*/React.createElement(DescText, null, descText)));
208
+ });
209
+ }).attrs({
210
+ className: "styled-simple-checkbox"
211
+ })`
212
+ cursor: pointer;
213
+ position: relative;
214
+ margin-bottom: 1rem;
215
+ display: flex;
216
+ ${__yakProps => __yakProps["disabled"] && css`
217
+ pointer-events: none;
218
+ `}
219
+ .textContainer {
220
+ width: 100%;
221
+ }
222
+ `;
223
+
224
+ export { SimpleCheckbox };
225
+ //# sourceMappingURL=SimpleCheckbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleCheckbox.mjs","sources":["../../../src/alt/checkbox/SimpleCheckbox.jsx"],"sourcesContent":["import React from 'react'\n\nimport {Icon} from '@startlibs/components'\nimport { getColor, ifProp, media } from '@startlibs/utils';\nimport styled, {css} from 'styled-components'\nimport {lighten, desaturate} from 'polished'\nimport {Checkbox} from '../../Checkbox'\nimport {HelpText} from '../../Field'\n\nconst CheckboxPseudoInput = styled.div`\n border-radius: 4px;\n content: '';\n border: 1px solid ${getColor('gray210')};\n width: 18px;\n height: 18px;\n background-color: white;\n position: absolute;\n left: -2rem;\n top: 50%;\n transform: translateY(-50%);\n\n ${ifProp('focused', css`\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n border-color: ${getColor('gray180')};\n `)}\n\n ${Icon} {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%,-50%);\n font-weight: bold;\n font-size: 16px;\n color: ${getColor('gray90')};\n }\n`\nconst TextLabel = styled.span `\n font-size: 13px;\n line-height: 16px;\n margin: 2px 0;\n display: block;\n`\nconst DescText = styled.div `\n color: rgba(0,0,0,0.4);\n display: block;\n font-size: 12px;\n font-weight: 400;\n`\nconst TextLabelContainer = styled.div `\n display: flex;\n align-items: center;\n position: relative;\n ${HelpText} {\n margin-left: 0.25rem;\n }\n`\nconst CheckboxContent = styled.div `\n cursor: pointer;\n position: relative;\n padding-left: 2rem;\n transition: background 0.2s linear;\n ${props => props.framed && css`\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n min-height: 3rem;\n min-width: 8rem;\n background: white;\n width: 100%;\n align-items: center;\n display: flex;\n &:hover {\n background: rgb(245,245,245);\n }\n &:active {\n background: rgb(235,235,235);\n transition: none;\n }\n padding: 10px 12px 10px 32px;\n ${media.desktop`\n padding: 7px 12px 7px 32px;\n `}\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n ${props => props.checked && props.highlightSelected && css`\n border-color: ${getColor('main')};\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n &:hover {\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n }\n ${CheckboxPseudoInput} {\n ${Icon} {\n color: ${getColor('main')};\n }\n }\n `}\n ${props => props.checked && props.ultraHighlightSelected && css`\n border-color: ${getColor('main')};\n background: ${getColor('main')};\n color: white;\n a, a.link {\n color: white;\n }\n &:hover {\n background: ${getColor('main')};\n }\n ${CheckboxPseudoInput} {\n ${Icon} {\n color: ${getColor('main')};\n }\n }\n ${HelpText} {\n color: rgba(255, 255, 255, 0.65);\n }\n ${DescText} {\n color: rgba(255, 255, 255, 0.65);\n }\n `}\n ${props => props.disabled && css`\n background-color: rgba(0,0,0,0.075) !important;\n color: rgba(0,0,0,0.6);\n &[disabled] {\n opacity: 0.75 !important;\n }\n ${CheckboxPseudoInput} {\n background: transparent;\n }\n `}\n `}\n`\n\nexport const SimpleCheckbox = styled(({path, disabled, label, descText, helpText, isFirst, isLast, tabIndex, className,framedBoxes,highlightSelected,ultraHighlightSelected,...rest}) =>\n <Checkbox\n className={className}\n path={path}\n tabIndex={tabIndex}\n {...rest}\n >{({checked, hasErrors, focused}) =>\n <CheckboxContent checked={checked} framed={framedBoxes} highlightSelected={highlightSelected} ultraHighlightSelected={ultraHighlightSelected} hasErrors={hasErrors} disabled={disabled}>\n <div className=\"textContainer\">\n <TextLabelContainer>\n <CheckboxPseudoInput focused={focused} tabIndex={tabIndex}>\n {checked && <Icon icon=\"check\"/>}\n </CheckboxPseudoInput>\n <TextLabel>{label}</TextLabel>{helpText && <HelpText>{helpText}</HelpText>}\n </TextLabelContainer>\n {descText && <DescText>{descText}</DescText>}\n </div>\n </CheckboxContent>\n }</Checkbox>\n)`\n cursor: pointer;\n position: relative;\n margin-bottom: 1rem;\n display: flex;\n ${ifProp('disabled', css`\n pointer-events: none;\n `)}\n .textContainer {\n width: 100%;\n }\n`\n"],"names":["CheckboxPseudoInput","styled","yakDomTag","__yakProps","v","getColor","css","Icon","TextLabel","DescText","TextLabelContainer","HelpText","CheckboxContent","props","framed","hasErrors","checked","highlightSelected","desaturate","lighten","ultraHighlightSelected","disabled","SimpleCheckbox","_ref","path","label","descText","helpText","isFirst","isLast","tabIndex","className","framedBoxes","rest","_objectWithoutProperties","_excluded","React","createElement","Checkbox","_extends","_ref2","focused","icon","attrs"],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { yakDomTag } from '@startlibs/utils/yakDomTag';
4
+ import React from 'react';
5
+ import { styled, css } from '@yak/react';
6
+ import { Checkbox } from '../../Checkbox.mjs';
7
+ import { HelpText } from '../../Field.mjs';
8
+ import { getColor } from '@startlibs/utils';
9
+ import { darken } from 'polished';
10
+ import { TransitionDiv } from '@startlibs/components';
11
+
12
+ const _excluded = ["path", "disabled", "rightInfo", "label", "descText", "helpText", "tabIndex", "noFocus", "margin", "className"];
13
+ styled(yakDomTag("div"))`
14
+ `;
15
+ const Toggle = styled(yakDomTag("div")).attrs({
16
+ className: "styled-theme-toggle-checkbox"
17
+ })`
18
+ cursor: pointer;
19
+ flex-shrink: 0;
20
+ margin-left: 1rem;
21
+ float: right;
22
+ transition: 0.25s ease;
23
+ width: 2.75rem;
24
+ height: 18px;
25
+ border-radius: 18px;
26
+ background: ${props => props.checked ? getColor('main') : 'rgba(0,0,0,0.14)'};
27
+ display: inline-block;
28
+ position: relative;
29
+ font-weight: 600;
30
+ &:after {
31
+ content: '';
32
+ transition: 0.25s ease;
33
+ border-radius: 50%;
34
+ display: block;
35
+ position: absolute;
36
+ top: 50%;
37
+ transform: translateY(-50%);
38
+ width: 14px;
39
+ height: 14px;
40
+ background: white;
41
+ ${props => props.checked ? css`
42
+ margin-left: -2px;
43
+ left: 100%;
44
+ transform: translate(-100%,-50%);
45
+ ` : css`
46
+ margin-left: 2px;
47
+ left: 0;
48
+ `}
49
+ }
50
+
51
+ `;
52
+ const ToggleLabel = styled(yakDomTag("div"))`
53
+ flex-basis: 0;
54
+ flex-grow: 1;
55
+ display: inline-block;
56
+ font-size: 15px;
57
+ `;
58
+ const DescText = styled(yakDomTag("div"))`
59
+ font-weight: 400;
60
+ color: rgba(0,0,0,0.4);
61
+ font-size: 12px;
62
+ margin-top: 0.25rem;
63
+ `;
64
+ const ToggleCheckboxStyled = styled(Checkbox).attrs({
65
+ className: "styled-theme-toggle-checkbox-box"
66
+ })`
67
+ position:relative;
68
+ border-radius: 8px;
69
+ padding: 1rem;
70
+ min-height: 42px;
71
+ font-weight: 550;
72
+ cursor: pointer;
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: space-between;
76
+ transition: background 0.2s linear;
77
+ & ~ & {
78
+ margin-top: -1rem;
79
+ }
80
+ ${props => props.margin ? css`
81
+ margin-bottom: ${props => props.margin}px;
82
+ ` : css`
83
+ margin-bottom: 1.5rem;
84
+ & ~ & {
85
+ margin-top: -1rem;
86
+ }
87
+ `}
88
+ ${props => props.gray ? css`
89
+ background-color: rgba(0,0,0,0.06);
90
+ &:hover {
91
+ background-color: rgba(0,0,0,0.08);
92
+ }
93
+ &:active {
94
+ background-color: rgba(0,0,0,0.1);
95
+ transition: none;
96
+ }
97
+ ` : css`
98
+ background-color: ${__yakProps => {
99
+ const v = getColor('lightBluishGray');
100
+ return typeof v === 'function' ? v(__yakProps) : v;
101
+ }};
102
+ &:hover {
103
+ background: ${props => darken(0.035, getColor('lightBluishGray')(props))};
104
+ }
105
+ &:active {
106
+ background: ${props => darken(0.05, getColor('lightBluishGray')(props))};
107
+ transition: none;
108
+ }
109
+ `}
110
+ ${props => !props.noFocus && css`
111
+ &:focus-within {
112
+ background-color: rgba(0,0,0,0.09);
113
+ &:after{
114
+ content: '';
115
+ pointer-events: none;
116
+ position: absolute;
117
+ top: -3px;
118
+ right: -3px;
119
+ left: -3px;
120
+ bottom: -3px;
121
+ border-radius: 9px;
122
+ border: 2px solid rgba(0, 0, 0, 0.15);
123
+ }
124
+ }
125
+ `}
126
+ ${props => props.disabled && css`
127
+ opacity: 0.8;
128
+ pointer-events:none;
129
+ `}
130
+
131
+ `;
132
+ const ToggleCheckbox = styled(_ref => {
133
+ let {
134
+ path,
135
+ disabled,
136
+ rightInfo,
137
+ label,
138
+ descText,
139
+ helpText,
140
+ tabIndex,
141
+ noFocus,
142
+ margin,
143
+ className
144
+ } = _ref,
145
+ rest = _objectWithoutProperties(_ref, _excluded);
146
+ return /*#__PURE__*/React.createElement(ToggleCheckboxStyled, _extends({
147
+ path: path,
148
+ tabIndex: tabIndex,
149
+ disabled: disabled,
150
+ noFocus: noFocus,
151
+ className: className,
152
+ margin: margin
153
+ }, rest), _ref2 => {
154
+ let {
155
+ disabled,
156
+ checked,
157
+ hasErrors,
158
+ focused
159
+ } = _ref2;
160
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ToggleLabel, null, label, helpText && /*#__PURE__*/React.createElement(HelpText, null, " ", helpText), /*#__PURE__*/React.createElement(TransitionDiv, {
161
+ block: true
162
+ }, descText && /*#__PURE__*/React.createElement(DescText, null, descText))), rightInfo, /*#__PURE__*/React.createElement(Toggle, {
163
+ checked: checked,
164
+ className: checked ? 'styled-toggle-checkbox-checked' : undefined
165
+ }));
166
+ });
167
+ }).attrs({
168
+ className: "styled-toggle-checkbox"
169
+ })`
170
+ `;
171
+
172
+ export { ToggleCheckbox };
173
+ //# sourceMappingURL=ToggleCheckbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleCheckbox.mjs","sources":["../../../src/alt/checkbox/ToggleCheckbox.jsx"],"sourcesContent":["import React from 'react'\nimport styled, {css} from 'styled-components'\nimport {Checkbox} from '../../Checkbox'\nimport {HelpText} from '../../Field'\nimport {customTheme, getColor} from '@startlibs/utils'\nimport {darken} from 'polished';\nimport { TransitionDiv } from '@startlibs/components';\nconst ToggleContainer = styled.div `\n`\n\nconst Toggle = styled.div `\n cursor: pointer;\n flex-shrink: 0;\n margin-left: 1rem;\n float: right;\n transition: 0.25s ease;\n width: 2.75rem;\n height: 18px;\n border-radius: 18px;\n background: ${props => props.checked ? getColor('main') : 'rgba(0,0,0,0.14)'};\n display: inline-block;\n position: relative;\n font-weight: 600;\n &:after {\n content: '';\n transition: 0.25s ease;\n border-radius: 50%;\n display: block;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 14px;\n height: 14px;\n background: white;\n ${props => props.checked ? css`\n margin-left: -2px;\n left: 100%;\n transform: translate(-100%,-50%);\n ` : css`\n margin-left: 2px;\n left: 0;\n `}\n }\n ${customTheme('ToggleCheckbox')}\n`\nconst ToggleLabel = styled.div `\n flex-basis: 0;\n flex-grow: 1;\n display: inline-block;\n font-size: 15px;\n`\nconst DescText = styled.div `\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n margin-top: 0.25rem;\n`\nconst ToggleCheckboxStyled = styled(Checkbox)`\n position:relative;\n border-radius: 8px;\n padding: 1rem;\n min-height: 42px;\n font-weight: 550;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between; \n transition: background 0.2s linear;\n & ~ & {\n margin-top: -1rem;\n }\n ${props => props.margin ? css`\n margin-bottom: ${props => props.margin}px;\n `: css`\n margin-bottom: 1.5rem;\n & ~ & {\n margin-top: -1rem;\n }\n `}\n ${props => props.gray ? `\n background-color: rgba(0,0,0,0.06);\n &:hover {\n background-color: rgba(0,0,0,0.08);\n }\n &:active {\n background-color: rgba(0,0,0,0.1);\n transition: none;\n }\n `:css`\n background-color: ${getColor('lightBluishGray')};\n &:hover {\n background: ${props => darken(0.035, getColor('lightBluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.05, getColor('lightBluishGray')(props))};\n transition: none;\n }\n `}\n ${props => !props.noFocus && css`\n &:focus-within {\n background-color: rgba(0,0,0,0.09);\n &:after{\n content: '';\n pointer-events: none;\n position: absolute;\n top: -3px;\n right: -3px;\n left: -3px;\n bottom: -3px;\n border-radius: 9px;\n border: 2px solid rgba(0, 0, 0, 0.15);\n }\n }\n `}\n ${props => props.disabled && `\n opacity: 0.8;\n pointer-events:none;\n `}\n ${customTheme('ToggleCheckboxBox')}\n`\n\nexport const ToggleCheckbox = styled(({path, disabled, rightInfo, label, descText, helpText, tabIndex,noFocus, margin, className,...rest}) =>\n <ToggleCheckboxStyled\n path={path}\n tabIndex={tabIndex}\n disabled={disabled}\n noFocus={noFocus}\n className={className}\n margin={margin}\n {...rest}\n >{({disabled, checked, hasErrors, focused}) =>\n <>\n <ToggleLabel>\n {label}{helpText && <HelpText> {helpText}</HelpText>}\n <TransitionDiv block>{descText && <DescText>{descText}</DescText>}</TransitionDiv>\n </ToggleLabel>\n {rightInfo}\n {/* variante como classe: no yak, o override de theme.startlibs.ToggleCheckbox não lê props */}\n <Toggle checked={checked} className={checked ? 'styled-toggle-checkbox-checked' : undefined}/>\n </>\n }\n </ToggleCheckboxStyled>\n)`\n`\n"],"names":["styled","yakDomTag","Toggle","attrs","className","props","checked","getColor","css","ToggleLabel","DescText","ToggleCheckboxStyled","Checkbox","margin","gray","__yakProps","v","darken","noFocus","disabled","ToggleCheckbox","_ref","path","rightInfo","label","descText","helpText","tabIndex","rest","_objectWithoutProperties","_excluded","React","createElement","_extends","_ref2","hasErrors","focused","Fragment","HelpText","TransitionDiv","block","undefined"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import { yakDomTag } from '@startlibs/utils/yakDomTag';
3
+ import React from 'react';
4
+ import { styled, css } from '@yak/react';
5
+ import { getColor } from '@startlibs/utils';
6
+ import { Radiobox } from '../../Radiobox.mjs';
7
+
8
+ const _excluded = ["label", "white", "icon"];
9
+ const Tab = styled(yakDomTag("div")).attrs({
10
+ className: "styled-tab styled-theme-clean-tab-button"
11
+ })`
12
+ width:100%;
13
+ font-size: 16px;
14
+ color: ${__yakProps => {
15
+ const v = getColor("gray120");
16
+ return typeof v === 'function' ? v(__yakProps) : v;
17
+ }};
18
+ font-weight: 500;
19
+ margin-left: 0;
20
+ padding: 12px 2.5rem;
21
+ flex-grow: 1;
22
+ height: 100%;
23
+ border-bottom: 1px solid ${__yakProps => {
24
+ const v = getColor("gray210");
25
+ return typeof v === 'function' ? v(__yakProps) : v;
26
+ }};
27
+ position: relative;
28
+ ${props => props.checked ? css`
29
+ color: ${__yakProps => {
30
+ const v = getColor("main");
31
+ return typeof v === 'function' ? v(__yakProps) : v;
32
+ }};
33
+ &:after {
34
+ content: '';
35
+ position: absolute;
36
+ bottom: -2px;
37
+ left: 0;
38
+ right: 0;
39
+ height: 3px;
40
+ background: ${__yakProps => {
41
+ const v = getColor("main");
42
+ return typeof v === 'function' ? v(__yakProps) : v;
43
+ }};
44
+ border-radius: 10px;
45
+ }
46
+ ` : css`
47
+ cursor: pointer;
48
+ &:hover {
49
+ color: ${__yakProps => {
50
+ const v = getColor("gray90");
51
+ return typeof v === 'function' ? v(__yakProps) : v;
52
+ }};
53
+ }
54
+ `}
55
+
56
+ `;
57
+ const InnerButton = styled(yakDomTag("a"))``;
58
+ const CleanTabRadiobox = styled(_ref => {
59
+ let {
60
+ label,
61
+ white,
62
+ icon
63
+ } = _ref,
64
+ props = _objectWithoutProperties(_ref, _excluded);
65
+ return /*#__PURE__*/React.createElement(Radiobox, props, _ref2 => {
66
+ let {
67
+ disabled,
68
+ checked,
69
+ hasErrors,
70
+ focused
71
+ } = _ref2;
72
+ return /*#__PURE__*/React.createElement(Tab, {
73
+ innerAs: InnerButton,
74
+ tabIndex: -1,
75
+ focused: focused,
76
+ checked: checked,
77
+ disabled: disabled
78
+ }, label);
79
+ });
80
+ }).attrs({
81
+ className: "styled-clean-tab-radiobox"
82
+ })`
83
+ display: inline-block;
84
+ `;
85
+
86
+ export { CleanTabRadiobox, Tab };
87
+ //# sourceMappingURL=CleanTabRadiobox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CleanTabRadiobox.mjs","sources":["../../../src/alt/radiobox/CleanTabRadiobox.jsx"],"sourcesContent":["import React from 'react'\nimport styled, {css} from 'styled-components'\nimport {getColor, customTheme} from '@startlibs/utils'\nimport {Radiobox} from '../../Radiobox'\n\nexport const Tab = styled.div`\n width:100%;\n font-size: 16px;\n color: ${getColor(\"gray120\")};\n font-weight: 500;\n margin-left: 0; \n padding: 12px 2.5rem;\n flex-grow: 1;\n height: 100%;\n border-bottom: 1px solid ${getColor(\"gray210\")};\n position: relative;\n ${props => props.checked ? css`\n color: ${getColor(\"main\")};\n &:after {\n content: '';\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n height: 3px;\n background: ${getColor(\"main\")};\n border-radius: 10px;\n }\n `: css`\n cursor: pointer;\n &:hover {\n color: ${getColor(\"gray90\")};\n }\n `}\n ${customTheme('CleanTabButton')}\n`\n\nconst InnerButton = styled.a``\n\nexport const CleanTabRadiobox = styled(({label, white,icon,...props}) =>\n <Radiobox {...props}>{({disabled, checked, hasErrors, focused}) =>\n <Tab innerAs={InnerButton} tabIndex={-1} focused={focused} checked={checked} disabled={disabled}>{label}</Tab>\n }</Radiobox>\n)`\n display: inline-block;\n`"],"names":["Tab","styled","yakDomTag","attrs","className","__yakProps","v","getColor","props","checked","css","InnerButton","CleanTabRadiobox","_ref","label","white","icon","_objectWithoutProperties","_excluded","React","createElement","Radiobox","_ref2","disabled","hasErrors","focused","innerAs","tabIndex"],"mappings":";;;;;;;;MAKaA,GAAG,GAAGC,MAAA,CAAAC,SAAA,SAAAC,KAAA,CAAA;EAAAC,SAAA,EAAA,0CAAA;AAAA,CAAA,CAAA,CAAA;AACnB;AACA;AACA,SAAA,EAHmBC,UAAA,IAAA;AAAA,EAAA,MAAAC,CAAA,GAGRC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAAA,EAAA,OAAA,OAAAD,CAAA,KAAAA,UAAAA,GAAAA,CAAA,CAAAD,UAAA,IAAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAC9B;AACA;AACA;AACA;AACA;AACA,2BAAA,EAN8BD,UAAA,IAAA;AAAA,EAAA,MAAAC,CAAA,GAMDC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAAA,EAAA,OAAA,OAAAD,CAAA,KAAAA,UAAAA,GAAAA,CAAA,CAAAD,UAAA,IAAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAChD;AACA,EAAA,EAAIE,KAAK,IAAIA,KAAK,CAACC,OAAO,GAAGC,GAAG,CAAA;AAChC,WAAA,EADgCL,UAAA,IAAA;AAAA,EAAA,MAAAC,CAAA,GACnBC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAAA,EAAA,OAAA,OAAAD,CAAA,KAAAA,UAAAA,GAAAA,CAAA,CAAAD,UAAA,IAAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAA,EAR6BD,UAAA,IAAA;AAAA,EAAA,MAAAC,CAAA,GAQTC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAAA,EAAA,OAAA,OAAAD,CAAA,KAAAA,UAAAA,GAAAA,CAAA,CAAAD,UAAA,IAAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AACpC;AACA;AACA,EAAA,CAAG,GAAEI,GAAG,CAAA;AACR;AACA;AACA,aAAA,EAHQL,UAAA,IAAA;AAAA,EAAA,MAAAC,CAAA,GAGOC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAAA,EAAA,OAAA,OAAAD,CAAA,KAAAA,UAAAA,GAAAA,CAAA,CAAAD,UAAA,IAAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AACjC;AACA,EAAG,CAAA,CAAA;AACH;AACA,EAAC;AAED,MAAMK,WAAW,GAAGV,MAAA,CAAAC,SAAA,CAAU,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEjBU,MAAAA,gBAAgB,GAAGX,MAAM,CAACY,IAAA,IAAA;EAAA,IAAC;MAACC,KAAK;MAAEC,KAAK;AAACC,MAAAA,IAAAA;AAAa,KAAC,GAAAH,IAAA;AAANL,IAAAA,KAAK,GAAAS,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;EAAA,oBACjEC,KAAA,CAAAC,aAAA,CAACC,QAAQ,EAAKb,KAAK,EAAGc,KAAA,IAAA;IAAA,IAAC;MAACC,QAAQ;MAAEd,OAAO;MAAEe,SAAS;AAAEC,MAAAA,OAAAA;AAAO,KAAC,GAAAH,KAAA,CAAA;AAAA,IAAA,oBAC5DH,KAAA,CAAAC,aAAA,CAACpB,GAAG,EAAA;AAAC0B,MAAAA,OAAO,EAAEf,WAAY;MAACgB,QAAQ,EAAE,CAAC,CAAE;AAACF,MAAAA,OAAO,EAAEA,OAAQ;AAAChB,MAAAA,OAAO,EAAEA,OAAQ;AAACc,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,EAAET,KAAW,CAAC,CAAA;AAAA,GACrG,CAAC,CAAA;AAAA,CACd,CAAC,CAAAX,KAAA,CAAA;EAAAC,SAAA,EAAA,2BAAA;AAAA,CAAA,CAAA,CAAA;AACD;AACA;;;;"}
@@ -0,0 +1,138 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import { yakDomTag } from '@startlibs/utils/yakDomTag';
3
+ import React from 'react';
4
+ import { styled, css } from '@yak/react';
5
+ import { Icon } from '@startlibs/components';
6
+ import { getColor } from '@startlibs/utils';
7
+ import { Radiobox } from '../../Radiobox.mjs';
8
+ import { desaturate, lighten } from 'polished';
9
+
10
+ const _excluded = ["icon", "label", "highlightedDesc"];
11
+ const IconRadioBoxText = styled(yakDomTag("div")).attrs({
12
+ className: "styled-icon-radio-box-text"
13
+ })`
14
+ flex-grow: 1;
15
+ padding: 0 0.5rem 0.5rem;
16
+ min-height: 2rem;
17
+ display: flex;
18
+ justify-content: center;
19
+ align-items: center;
20
+ text-align: center;
21
+ font-size: 12px;
22
+ color: ${__yakProps => {
23
+ const v = getColor('gray120');
24
+ return typeof v === 'function' ? v(__yakProps) : v;
25
+ }};
26
+ ${props => props.checked && css`
27
+ color: ${__yakProps => {
28
+ const v = getColor('main');
29
+ return typeof v === 'function' ? v(__yakProps) : v;
30
+ }};
31
+ `}
32
+ ${props => props.highlightedDesc && css`
33
+ background: ${__yakProps => {
34
+ const v = getColor('gray240');
35
+ return typeof v === 'function' ? v(__yakProps) : v;
36
+ }};
37
+ padding: 0.25rem 0.5rem;
38
+ min-height: 3rem;
39
+ ${props => props.checked && css`
40
+ background: ${props => desaturate(0.3, lighten(0.52, getColor("main")(props)))};
41
+ `}
42
+ `}
43
+ `;
44
+ const IconRadioBoxIconContainer = styled(yakDomTag("div")).attrs({
45
+ className: "styled-icon-radio-box-icon-container"
46
+ })`
47
+ display: flex;
48
+ justify-content: center;
49
+ align-items: center;
50
+ text-align: center;
51
+ `;
52
+ const Wrapper = styled(yakDomTag("div")).attrs({
53
+ className: "styled-theme-icon-radio-box"
54
+ })`
55
+ width: 100%;
56
+ display: flex;
57
+ flex-direction: column;
58
+ cursor: pointer;
59
+ border-radius: 8px;
60
+ background-color: white;
61
+ border: 1px solid ${__yakProps => {
62
+ const v = getColor('gray210');
63
+ return typeof v === 'function' ? v(__yakProps) : v;
64
+ }};
65
+ overflow: hidden;
66
+ color: ${__yakProps => {
67
+ const v = getColor('gray150');
68
+ return typeof v === 'function' ? v(__yakProps) : v;
69
+ }};
70
+
71
+ ${Icon} {
72
+ font-size: 100px;
73
+ line-height: 50px;
74
+ line-height: 76px;
75
+ width: 100%;
76
+ }
77
+
78
+ ${props => props.checked && css`
79
+ color: ${__yakProps => {
80
+ const v = getColor('main');
81
+ return typeof v === 'function' ? v(__yakProps) : v;
82
+ }};
83
+ border-color: ${__yakProps => {
84
+ const v = getColor('main');
85
+ return typeof v === 'function' ? v(__yakProps) : v;
86
+ }};
87
+ `}
88
+
89
+ input {
90
+ opacity: 0;
91
+ position: absolute;
92
+ left: -20000000px;
93
+ }
94
+
95
+ ${props => props.focused && css`
96
+ ${IconRadioBoxIconContainer}::after {
97
+ content: '';
98
+ position: absolute;
99
+ top: -4px;
100
+ right: -4px;
101
+ left: -4px;
102
+ bottom: -4px;
103
+ border-radius: 10px;
104
+ border: 3px solid rgba(0, 0, 0, 0.15);
105
+ }`}
106
+
107
+
108
+ `;
109
+ const IconRadioBox = styled(_ref => {
110
+ let {
111
+ icon,
112
+ label,
113
+ highlightedDesc
114
+ } = _ref,
115
+ props = _objectWithoutProperties(_ref, _excluded);
116
+ return /*#__PURE__*/React.createElement(Radiobox, props, _ref2 => {
117
+ let {
118
+ checked,
119
+ focused,
120
+ hasErrors,
121
+ disabled
122
+ } = _ref2;
123
+ return /*#__PURE__*/React.createElement(Wrapper, {
124
+ checked: checked,
125
+ focused: focused
126
+ }, /*#__PURE__*/React.createElement(IconRadioBoxIconContainer, null, /*#__PURE__*/React.createElement(Icon, {
127
+ icon: icon
128
+ })), checked, /*#__PURE__*/React.createElement(IconRadioBoxText, {
129
+ highlightedDesc: highlightedDesc,
130
+ checked: checked
131
+ }, label));
132
+ });
133
+ }).attrs({
134
+ className: "styled-icon-radio-box"
135
+ })`outline: none;`;
136
+
137
+ export { IconRadioBox, IconRadioBoxIconContainer, IconRadioBoxText };
138
+ //# sourceMappingURL=IconRadioBox.mjs.map