oolib 2.177.0 → 2.177.2

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 (99) hide show
  1. package/dist/stories/v2/components/Dropdowns.stories.d.ts +121 -0
  2. package/dist/stories/v2/components/Dropdowns.stories.js +289 -0
  3. package/dist/stories/v2/components/RadioButton.stories.d.ts +4 -1
  4. package/dist/stories/v2/components/RadioButton.stories.js +3 -2
  5. package/dist/utils/comps/DisplayIcon/index.d.ts +3 -1
  6. package/dist/utils/comps/DisplayIcon/index.js +14 -2
  7. package/dist/utils/useStyleUpdateAfterToggleTransition.d.ts +8 -0
  8. package/dist/utils/useStyleUpdateAfterToggleTransition.js +41 -0
  9. package/dist/v2/components/Accordion/index.js +7 -25
  10. package/dist/v2/components/BlockLabel/index.js +17 -5
  11. package/dist/v2/components/BlockLabel/index.styled.js +1 -6
  12. package/dist/v2/components/Dropdowns/DropdownMulti/index.d.ts +38 -0
  13. package/dist/v2/components/Dropdowns/DropdownMulti/index.js +172 -0
  14. package/dist/v2/components/Dropdowns/DropdownSingle/index.d.ts +40 -0
  15. package/dist/v2/components/Dropdowns/DropdownSingle/index.js +158 -0
  16. package/dist/v2/components/Dropdowns/comps/Caret/index.d.ts +6 -0
  17. package/dist/v2/components/Dropdowns/comps/Caret/index.js +19 -0
  18. package/dist/v2/components/Dropdowns/comps/Caret/styled.d.ts +2 -0
  19. package/dist/v2/components/Dropdowns/comps/Caret/styled.js +14 -0
  20. package/dist/v2/components/Dropdowns/comps/DisplayCompSingle/index.d.ts +7 -0
  21. package/dist/v2/components/Dropdowns/comps/DisplayCompSingle/index.js +39 -0
  22. package/dist/v2/components/Dropdowns/comps/NoOptionResultsComp/index.d.ts +4 -0
  23. package/dist/v2/components/Dropdowns/comps/NoOptionResultsComp/index.js +15 -0
  24. package/dist/v2/components/Dropdowns/comps/OptionContent/index.d.ts +8 -0
  25. package/dist/v2/components/Dropdowns/comps/OptionContent/index.js +35 -0
  26. package/dist/v2/components/Dropdowns/comps/OptionsMulti/index.d.ts +28 -0
  27. package/dist/v2/components/Dropdowns/comps/OptionsMulti/index.js +158 -0
  28. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/index.d.ts +13 -0
  29. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/index.js +75 -0
  30. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/styled.d.ts +2 -0
  31. package/dist/v2/components/Dropdowns/comps/OptionsShell/comps/OptionsAnimateWrapper/styled.js +22 -0
  32. package/dist/v2/components/Dropdowns/comps/OptionsShell/index.d.ts +2 -0
  33. package/dist/v2/components/Dropdowns/comps/OptionsShell/index.js +101 -0
  34. package/dist/v2/components/Dropdowns/comps/OptionsShell/styled.d.ts +5 -0
  35. package/dist/v2/components/Dropdowns/comps/OptionsShell/styled.js +51 -0
  36. package/dist/v2/components/Dropdowns/comps/OptionsSingle/index.d.ts +28 -0
  37. package/dist/v2/components/Dropdowns/comps/OptionsSingle/index.js +105 -0
  38. package/dist/v2/components/Dropdowns/comps/OptionsSingle/styled.d.ts +1 -0
  39. package/dist/v2/components/Dropdowns/comps/OptionsSingle/styled.js +69 -0
  40. package/dist/v2/components/Dropdowns/comps/SelectDropdown/index.d.ts +13 -0
  41. package/dist/v2/components/Dropdowns/comps/SelectDropdown/index.js +54 -0
  42. package/dist/v2/components/Dropdowns/comps/SelectDropdown/styled.d.ts +1 -0
  43. package/dist/v2/components/Dropdowns/comps/SelectDropdown/styled.js +71 -0
  44. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/index.d.ts +18 -0
  45. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/index.js +124 -0
  46. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/styled.d.ts +2 -0
  47. package/dist/v2/components/Dropdowns/comps/SelectTagsInput/styled.js +53 -0
  48. package/dist/v2/components/Dropdowns/handlers/index.d.ts +14 -0
  49. package/dist/v2/components/Dropdowns/handlers/index.js +52 -0
  50. package/dist/v2/components/Dropdowns/styled.d.ts +2 -0
  51. package/dist/v2/components/Dropdowns/styled.js +49 -0
  52. package/dist/v2/components/Dropdowns/utils/genColor.d.ts +4 -0
  53. package/dist/v2/components/Dropdowns/utils/genColor.js +15 -0
  54. package/dist/v2/components/Dropdowns/utils/genIcon.d.ts +9 -0
  55. package/dist/v2/components/Dropdowns/utils/genIcon.js +18 -0
  56. package/dist/v2/components/Dropdowns/utils/genLinkOrText.d.ts +1 -0
  57. package/dist/v2/components/Dropdowns/utils/genLinkOrText.js +48 -0
  58. package/dist/v2/components/Dropdowns/utils/genProfileImg.d.ts +6 -0
  59. package/dist/v2/components/Dropdowns/utils/genProfileImg.js +14 -0
  60. package/dist/v2/components/Dropdowns/utils/genTagComp.d.ts +2 -0
  61. package/dist/v2/components/Dropdowns/utils/genTagComp.js +27 -0
  62. package/dist/v2/components/Dropdowns/utils/generateOptions.d.ts +5 -0
  63. package/dist/v2/components/Dropdowns/utils/generateOptions.js +19 -0
  64. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/genMonthsArray.d.ts +1 -0
  65. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/genMonthsArray.js +40 -0
  66. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/genYearsArray.d.ts +4 -0
  67. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/genYearsArray.js +11 -0
  68. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/getLanguagesArray.d.ts +4 -0
  69. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/getLanguagesArray.js +62 -0
  70. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/index.d.ts +1 -0
  71. package/dist/v2/components/Dropdowns/utils/getAllOptionsFns/index.js +19 -0
  72. package/dist/v2/components/Dropdowns/utils/getValue.d.ts +14 -0
  73. package/dist/v2/components/Dropdowns/utils/getValue.js +32 -0
  74. package/dist/v2/components/Dropdowns/utils/isDynamicOtherOption.d.ts +0 -0
  75. package/dist/v2/components/Dropdowns/utils/isDynamicOtherOption.js +0 -0
  76. package/dist/v2/components/Dropdowns/utils/keywordSearchOptions.d.ts +6 -0
  77. package/dist/v2/components/Dropdowns/utils/keywordSearchOptions.js +18 -0
  78. package/dist/v2/components/Dropdowns/utils/setDropdownSelectText.d.ts +12 -0
  79. package/dist/v2/components/Dropdowns/utils/setDropdownSelectText.js +19 -0
  80. package/dist/v2/components/Dropdowns/utils/useCreateDropdownRefs.d.ts +5 -0
  81. package/dist/v2/components/Dropdowns/utils/useCreateDropdownRefs.js +15 -0
  82. package/dist/v2/components/Dropdowns/utils/useHideShowOptions.d.ts +5 -0
  83. package/dist/v2/components/Dropdowns/utils/useHideShowOptions.js +20 -0
  84. package/dist/v2/components/Dropdowns/utils/useKeyboardControl.d.ts +12 -0
  85. package/dist/v2/components/Dropdowns/utils/useKeyboardControl.js +73 -0
  86. package/dist/v2/components/Dropdowns/utils/useSearchString.d.ts +4 -0
  87. package/dist/v2/components/Dropdowns/utils/useSearchString.js +20 -0
  88. package/dist/v2/components/Dropdowns/utils/useSetYOrientation.d.ts +9 -0
  89. package/dist/v2/components/Dropdowns/utils/useSetYOrientation.js +46 -0
  90. package/dist/v2/components/Hints/comps/HintsButton.js +1 -1
  91. package/dist/v2/components/InlineAlert/index.js +2 -2
  92. package/dist/v2/components/RadioAndCheckbox/comps/CheckboxList/comps/CheckboxInput/index.d.ts +2 -1
  93. package/dist/v2/components/RadioAndCheckbox/comps/CheckboxList/comps/CheckboxInput/index.js +2 -2
  94. package/dist/v2/components/RadioAndCheckbox/comps/CheckboxList/index.js +2 -1
  95. package/dist/v2/components/RadioAndCheckbox/comps/RadioList/comps/RadioInput/index.js +3 -3
  96. package/dist/v2/components/RadioAndCheckbox/comps/RadioList/index.js +2 -1
  97. package/dist/v2/components/TextInputs/index.js +11 -7
  98. package/dist/v2/components/TextInputs/index.styled.js +2 -2
  99. package/package.json +1 -1
@@ -0,0 +1,121 @@
1
+ declare namespace _default {
2
+ let title: string;
3
+ namespace argTypes {
4
+ namespace placeholder {
5
+ let name: string;
6
+ }
7
+ namespace optionIcon {
8
+ export { availableIcons as options };
9
+ export namespace control {
10
+ let type: string;
11
+ }
12
+ }
13
+ namespace selection {
14
+ let name_1: string;
15
+ export { name_1 as name };
16
+ export let options: string[];
17
+ export namespace control_1 {
18
+ let type_1: string;
19
+ export { type_1 as type };
20
+ }
21
+ export { control_1 as control };
22
+ }
23
+ namespace size {
24
+ let name_2: string;
25
+ export { name_2 as name };
26
+ export namespace control_2 {
27
+ let type_2: string;
28
+ export { type_2 as type };
29
+ }
30
+ export { control_2 as control };
31
+ let options_1: string[];
32
+ export { options_1 as options };
33
+ export namespace mapping {
34
+ let Small: string;
35
+ let Medium: string;
36
+ }
37
+ }
38
+ namespace isSearchable {
39
+ let name_3: string;
40
+ export { name_3 as name };
41
+ }
42
+ namespace showIconInSelectArea {
43
+ let name_4: string;
44
+ export { name_4 as name };
45
+ }
46
+ namespace optionImage {
47
+ let name_5: string;
48
+ export { name_5 as name };
49
+ }
50
+ namespace optionDescription {
51
+ let name_6: string;
52
+ export { name_6 as name };
53
+ }
54
+ namespace colors {
55
+ let name_7: string;
56
+ export { name_7 as name };
57
+ }
58
+ namespace disabled {
59
+ let name_8: string;
60
+ export { name_8 as name };
61
+ }
62
+ namespace readOnly {
63
+ let name_9: string;
64
+ export { name_9 as name };
65
+ }
66
+ namespace invert {
67
+ let name_10: string;
68
+ export { name_10 as name };
69
+ }
70
+ namespace showColorInSelectArea {
71
+ let name_11: string;
72
+ export { name_11 as name };
73
+ }
74
+ namespace alignDropdown {
75
+ let name_12: string;
76
+ export { name_12 as name };
77
+ let options_2: string[];
78
+ export { options_2 as options };
79
+ export namespace control_3 {
80
+ let type_3: string;
81
+ export { type_3 as type };
82
+ }
83
+ export { control_3 as control };
84
+ }
85
+ }
86
+ namespace args {
87
+ let placeholder_1: string;
88
+ export { placeholder_1 as placeholder };
89
+ let size_1: string;
90
+ export { size_1 as size };
91
+ let selection_1: string;
92
+ export { selection_1 as selection };
93
+ let isSearchable_1: boolean;
94
+ export { isSearchable_1 as isSearchable };
95
+ let optionDescription_1: string;
96
+ export { optionDescription_1 as optionDescription };
97
+ let optionImage_1: string;
98
+ export { optionImage_1 as optionImage };
99
+ let optionIcon_1: any;
100
+ export { optionIcon_1 as optionIcon };
101
+ let showIconInSelectArea_1: boolean;
102
+ export { showIconInSelectArea_1 as showIconInSelectArea };
103
+ let colors_1: boolean;
104
+ export { colors_1 as colors };
105
+ let showColorInSelectArea_1: boolean;
106
+ export { showColorInSelectArea_1 as showColorInSelectArea };
107
+ let disabled_1: boolean;
108
+ export { disabled_1 as disabled };
109
+ let readOnly_1: boolean;
110
+ export { readOnly_1 as readOnly };
111
+ let invert_1: boolean;
112
+ export { invert_1 as invert };
113
+ export let popOutOfOverflowHiddenParent: boolean;
114
+ let alignDropdown_1: string;
115
+ export { alignDropdown_1 as alignDropdown };
116
+ }
117
+ }
118
+ export default _default;
119
+ export function Dropdowns(args: any): React.JSX.Element;
120
+ declare const availableIcons: string[];
121
+ import React from "react";
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
47
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
48
+ if (ar || !(i in from)) {
49
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
50
+ ar[i] = from[i];
51
+ }
52
+ }
53
+ return to.concat(ar || Array.prototype.slice.call(from));
54
+ };
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.Dropdowns = void 0;
57
+ var react_1 = __importStar(require("react"));
58
+ var Container_1 = require("../../../components/Container");
59
+ var Paddings_1 = require("../../../components/Paddings");
60
+ var themes_1 = require("../../../themes");
61
+ var icons_1 = require("../../../icons");
62
+ var DropdownMulti_1 = require("../../../v2/components/Dropdowns/DropdownMulti");
63
+ var DropdownSingle_1 = require("../../../v2/components/Dropdowns/DropdownSingle");
64
+ // import { faker } from '@faker-js/faker';
65
+ // const generateRandomCountry = () => ({
66
+ // display: faker.address.country(),
67
+ // value: faker.address.countryCode().toLowerCase(),
68
+ // });
69
+ // const generateDropdownOptions = (length) => {
70
+ // const dropdownOptions = [];
71
+ // for (let i = 0; i < length; i++) {
72
+ // dropdownOptions.push(generateRandomCountry());
73
+ // }
74
+ // return dropdownOptions;
75
+ // };
76
+ // const dropdownOptions2 = generateDropdownOptions(200);
77
+ var availableIcons = __spreadArray([undefined], Object.keys(icons_1.icons).sort(), true);
78
+ exports.default = {
79
+ title: "Oolib V 2.0/Components/Dropdowns",
80
+ argTypes: {
81
+ // label: {
82
+ // name: "Label",
83
+ // },
84
+ // sublabel: {
85
+ // name: "Sub Label",
86
+ // },
87
+ placeholder: {
88
+ name: "Placeholder Text",
89
+ },
90
+ optionIcon: {
91
+ options: availableIcons,
92
+ control: { type: "select" },
93
+ },
94
+ selection: {
95
+ options: ["single", "multi"],
96
+ control: { type: "inline-radio" },
97
+ },
98
+ size: {
99
+ name: "Size",
100
+ control: { type: "inline-radio" },
101
+ options: ["Small", "Medium"],
102
+ mapping: {
103
+ Small: "S",
104
+ Medium: "M",
105
+ },
106
+ },
107
+ selection: {
108
+ name: "Selection Type",
109
+ options: ["single", "multi"],
110
+ control: { type: "select" },
111
+ },
112
+ isSearchable: {
113
+ name: "Searchable",
114
+ },
115
+ showIconInSelectArea: {
116
+ name: "Show Icon in Select Area",
117
+ },
118
+ optionImage: {
119
+ name: "Option Image",
120
+ },
121
+ optionDescription: {
122
+ name: "Option Description",
123
+ },
124
+ colors: {
125
+ name: 'Show Colors'
126
+ },
127
+ disabled: {
128
+ name: "Disabled",
129
+ },
130
+ readOnly: {
131
+ name: "Read Only",
132
+ },
133
+ invert: {
134
+ name: "Invert",
135
+ },
136
+ showColorInSelectArea: {
137
+ name: "Show Color in Select Area"
138
+ },
139
+ alignDropdown: {
140
+ name: "Align Dropdown",
141
+ options: ["left", "right"],
142
+ control: { type: "select" }
143
+ },
144
+ },
145
+ args: {
146
+ // label: "This is a label",
147
+ // sublabel: "This is a sub label",
148
+ placeholder: "",
149
+ size: "Medium",
150
+ selection: "single",
151
+ isSearchable: false,
152
+ optionDescription: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
153
+ optionImage: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSrVSkmNOQ6abMCc5e6R2r7VwRZDkBHFTyzAg&usqp=CAU",
154
+ optionIcon: undefined,
155
+ showIconInSelectArea: false,
156
+ colors: false,
157
+ showColorInSelectArea: false,
158
+ disabled: false,
159
+ readOnly: false,
160
+ invert: false,
161
+ popOutOfOverflowHiddenParent: false,
162
+ alignDropdown: "left",
163
+ }
164
+ };
165
+ var dropdownOptions = [
166
+ {
167
+ display: "Option with a slightly longer name",
168
+ value: "india",
169
+ color: themes_1.colors.lightRed,
170
+ // image: "xyz",
171
+ // icon: "Trash",
172
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
173
+ },
174
+ {
175
+ display: "Sri Lanka",
176
+ value: "sriLanka",
177
+ color: themes_1.colors.invertRed,
178
+ // image: "xyz",
179
+ // icon: "Trash",
180
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
181
+ },
182
+ {
183
+ display: "Japan",
184
+ value: "japan",
185
+ color: themes_1.colors.lightBlue
186
+ // image: "xyz",
187
+ // icon: "Trash",
188
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
189
+ },
190
+ {
191
+ display: "Germany",
192
+ value: "germany",
193
+ color: themes_1.colors.primaryColor100
194
+ // image: "xyz",
195
+ // icon: "Trash",
196
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
197
+ },
198
+ {
199
+ display: "USA",
200
+ value: "usa",
201
+ color: themes_1.colors.greyColor100
202
+ // image: "xyz",
203
+ // icon: "Trash",
204
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
205
+ },
206
+ {
207
+ display: "Columbia",
208
+ value: "columbia",
209
+ color: themes_1.colors.lightRed,
210
+ // image: "xyz",
211
+ // icon: "Trash",
212
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
213
+ },
214
+ {
215
+ display: "Brazil",
216
+ value: "brazil",
217
+ color: themes_1.colors.invertRed,
218
+ // image: "xyz",
219
+ // icon: "Trash",
220
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
221
+ },
222
+ {
223
+ display: "Australia",
224
+ value: "australia",
225
+ color: themes_1.colors.lightBlue
226
+ // image: "xyz",
227
+ // icon: "Trash",
228
+ // desc: "This is a story about schnil-tu, a.k.a tubito senpai. Tubito senpai loves to say bhai-god. Lol.",
229
+ },
230
+ ];
231
+ var Dropdowns = function (args) {
232
+ var _a = (0, react_1.useState)({
233
+ single: undefined,
234
+ multi: undefined,
235
+ }), val = _a[0], setVal = _a[1];
236
+ var _b = (0, react_1.useState)([]), options = _b[0], setOptions = _b[1];
237
+ (0, react_1.useEffect)(function () {
238
+ var delayOptions = setTimeout(function () {
239
+ var newOptions = dropdownOptions.map(function (op) { return (__assign(__assign({}, op), { desc: args.optionDescription, icon: !args.optionImage && args.optionIcon, image: args.optionImage && [{ publicUrl: args.optionImage }], color: args.colors && op.color })); });
240
+ setOptions(newOptions);
241
+ }, 2000);
242
+ // Cleanup the timeout on component unmount
243
+ return function () { return clearTimeout(delayOptions); };
244
+ }, [args.optionDescription, args.optionImage, args.optionIcon, args.colors]);
245
+ var Comp = args.selection === "single" ? DropdownSingle_1.DropdownSingle : DropdownMulti_1.DropdownMulti;
246
+ return (react_1.default.createElement("div", { style: { background: args.invert && themes_1.colors.greyColor100 } },
247
+ react_1.default.createElement(Container_1.Container, null,
248
+ react_1.default.createElement(Paddings_1.PaddingTopBottom40, null,
249
+ react_1.default.createElement(Comp, __assign({ key: args.selection }, args, { S: args.size == "S", options: dropdownOptions.map(function (op) { return (__assign(__assign({}, op), { desc: args.optionDescription, icon: !args.optionImage && args.optionIcon, image: args.optionImage && [{ publicUrl: args.optionImage }], color: args.colors && op.color })); }), value: val[args.selection], onChange: function (k, v) {
250
+ return setVal(function (prev) {
251
+ var _a;
252
+ return (__assign(__assign({}, prev), (_a = {}, _a[args.selection] = v, _a)));
253
+ });
254
+ }, selectConfig: args.showIconInSelectArea ? ["display", "icon"] : args.showColorInSelectArea ? ["display", "color"] : ["display"], label: "Dropdown Component", sublabel: "Select single or multiple options in dropdown based on Selection Type", popOutOfOverflowHiddenParent: args.popOutOfOverflowHiddenParent }))),
255
+ react_1.default.createElement("div", { style: { height: '1000px', background: 'red' } }))));
256
+ };
257
+ exports.Dropdowns = Dropdowns;
258
+ // export const Button_Primary = (args) => (
259
+ // <GenButtonStory args={args} Comp={ButtonPrimary} />
260
+ // )
261
+ // Button_Primary.parameters = { controls: { exclude: ['variant', 'color'] } }
262
+ // export const Button_Secondary = (args) => (
263
+ // <GenButtonStory args={args} Comp={ButtonSecondary} />
264
+ // )
265
+ // Button_Secondary.parameters = { controls: { exclude: ['variant', 'color'] } }
266
+ // Button_Secondary.args = {
267
+ // active: false,
268
+ // }
269
+ // export const Button_Ghost = (args) => (
270
+ // <GenButtonStory args={args} Comp={ButtonGhost} />
271
+ // )
272
+ // Button_Ghost.args = {
273
+ // active: false,
274
+ // }
275
+ // Button_Ghost.parameters = { controls: { exclude: ['variant'] } }
276
+ // export const Button_Custom = (args) => (
277
+ // <GenButtonStory args={args} Comp={ButtonCustom} />
278
+ // )
279
+ // Button_Custom.parameters = { controls: { exclude: ['variant', 'color'] } }
280
+ // export const Google_Login = (args) => (
281
+ // <GenButtonStory args={args} Comp={GoogleLogin} />
282
+ // )
283
+ // Google_Login.parameters = {
284
+ // controls: { exclude: ['variant', 'color', 'iconOnly', 'icon + text'] },
285
+ // }
286
+ // export const Upload_Button = (args) => (
287
+ // <GenButtonStory args={{ ...args, children: 'Upload' }} Comp={UploadButton} />
288
+ // )
289
+ // Upload_Button.parameters = { controls: { exclude: ['color'] } }
@@ -8,6 +8,8 @@ export namespace RadioList {
8
8
  let size: string;
9
9
  let listingStyle: string;
10
10
  let optionsLimit: number;
11
+ let label: string;
12
+ let sublabel: string;
11
13
  let option1: string;
12
14
  let option2: string;
13
15
  let option3: string;
@@ -170,7 +172,8 @@ export namespace RadioInput {
170
172
  export { disabled_2 as disabled };
171
173
  let invert_2: boolean;
172
174
  export { invert_2 as invert };
173
- export let label: string;
175
+ let label_1: string;
176
+ export { label_1 as label };
174
177
  }
175
178
  export { args_1 as args };
176
179
  export namespace argTypes_1 {
@@ -63,7 +63,7 @@ var RadioList = function (args) {
63
63
  }
64
64
  }, [args.markOptions, args.corrrectOption]);
65
65
  return (React.createElement("div", { style: { backgroundColor: args.invert && greyColor100, padding: "4rem" } },
66
- React.createElement(RadioAndCheckbox_1.RadioList, { options: options, readOnly: args.readOnly, value: chosenOption, onChange: function (id, val) { return setChosenOption(val); }, rightWrongResult: args.markOptions, label: args.label, listType: args.listingStyle, injectOtherOption: args.addOther, disabled: args.disabled, invert: args.invert, S: args.size == "S", commonIsCorrectDesc: args.feedbackMessage, optionsLimit: args.optionsLimit, saveValueAsString: args.saveValueAsString }),
66
+ React.createElement(RadioAndCheckbox_1.RadioList, { options: options, readOnly: args.readOnly, value: chosenOption, onChange: function (id, val) { return setChosenOption(val); }, rightWrongResult: args.markOptions, label: args.label, sublabel: args.sublabel, listType: args.listingStyle, injectOtherOption: args.addOther, disabled: args.disabled, invert: args.invert, S: args.size == "S", commonIsCorrectDesc: args.feedbackMessage, optionsLimit: args.optionsLimit, saveValueAsString: args.saveValueAsString }),
67
67
  React.createElement("br", null),
68
68
  " ",
69
69
  React.createElement(Divider_1.Divider, null),
@@ -80,7 +80,8 @@ exports.RadioList.args = {
80
80
  size: "Medium",
81
81
  listingStyle: "horizontal",
82
82
  optionsLimit: ops.length,
83
- // label: '',
83
+ label: 'Please choose an option, this is a test.',
84
+ sublabel: 'Some supplimentary text to better explain the label',
84
85
  option1: ops[0].display,
85
86
  option2: ops[1].display,
86
87
  option3: ops[2].display,
@@ -1,4 +1,4 @@
1
- import { FunctionComponent, MouseEvent } from "react";
1
+ import { FunctionComponent, MouseEvent, CSSProperties } from "react";
2
2
  import { icons } from "../../../icons";
3
3
  export interface DisplayIconProps {
4
4
  icon: keyof typeof icons;
@@ -6,6 +6,7 @@ export interface DisplayIconProps {
6
6
  color: string;
7
7
  weight?: "bold" | "regular";
8
8
  onClick?: (event: MouseEvent<HTMLDivElement>) => void;
9
+ style?: CSSProperties;
9
10
  }
10
11
  /**
11
12
  * @component Renders an icon component with customizable size, color, weight, and click handler.
@@ -16,6 +17,7 @@ export interface DisplayIconProps {
16
17
  * @prop {string} color: The color of the icon.
17
18
  * @prop {'bold' | 'regular'} weight: The weight of the icon font. Defaults to "bold".
18
19
  * @prop {function} onClick: Optional click handler for the icon.
20
+ * @prop {CSSProperties} style: Optional additional styles to apply to the container div.
19
21
  * @return {ReactElement} The rendered icon component.
20
22
  */
21
23
  declare const DisplayIcon: FunctionComponent<DisplayIconProps>;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
@@ -16,11 +27,12 @@ var themes_1 = require("../../../v2/themes");
16
27
  * @prop {string} color: The color of the icon.
17
28
  * @prop {'bold' | 'regular'} weight: The weight of the icon font. Defaults to "bold".
18
29
  * @prop {function} onClick: Optional click handler for the icon.
30
+ * @prop {CSSProperties} style: Optional additional styles to apply to the container div.
19
31
  * @return {ReactElement} The rendered icon component.
20
32
  */
21
33
  var DisplayIcon = function (_a) {
22
- var icon = _a.icon, size = _a.size, _b = _a.color, color = _b === void 0 ? themes_1.colors.grey80 : _b, _c = _a.weight, weight = _c === void 0 ? "bold" : _c, onClick = _a.onClick;
34
+ var icon = _a.icon, size = _a.size, _b = _a.color, color = _b === void 0 ? themes_1.colors.grey80 : _b, _c = _a.weight, weight = _c === void 0 ? "bold" : _c, onClick = _a.onClick, _d = _a.style, style = _d === void 0 ? {} : _d;
23
35
  var IconComp = icons_1.icons[icon];
24
- return (react_1.default.createElement("div", { style: { cursor: onClick ? "pointer" : "default", display: "flex" }, onMouseDown: onClick || undefined }, IconComp && react_1.default.createElement(IconComp, { size: size, color: color, weight: weight })));
36
+ return (react_1.default.createElement("div", { style: __assign({ cursor: onClick ? "pointer" : "default", display: "flex" }, style), onMouseDown: onClick || undefined }, IconComp && react_1.default.createElement(IconComp, { size: size, color: color, weight: weight })));
25
37
  };
26
38
  exports.DisplayIcon = DisplayIcon;
@@ -0,0 +1,8 @@
1
+ export declare const useStyleUpdateAfterToggleTransition: ({ styleOptions, initStyle: _initStyle, toggleState, transitionDuration }: {
2
+ styleOptions: any;
3
+ initStyle: any;
4
+ toggleState: any;
5
+ transitionDuration: any;
6
+ }) => {
7
+ style: any;
8
+ };
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStyleUpdateAfterToggleTransition = void 0;
4
+ var react_1 = require("react");
5
+ var useStyleUpdateAfterToggleTransition = function (_a) {
6
+ var styleOptions = _a.styleOptions, // ['hidden', 'visible']
7
+ _initStyle = _a.initStyle, //hidden
8
+ toggleState = _a.toggleState, //isExpanded
9
+ transitionDuration = _a.transitionDuration //300
10
+ ;
11
+ var initStyle = (0, react_1.useRef)(_initStyle);
12
+ //helps to make the accordionOverflow visible once its open,
13
+ //for scenarios where a data viz tooltip needs to stick out
14
+ var _b = (0, react_1.useState)(initStyle.current), style = _b[0], setStyle = _b[1];
15
+ (0, react_1.useEffect)(function () {
16
+ var timeoutId;
17
+ if (toggleState) {
18
+ // Set timeout for making content visible after animation
19
+ timeoutId = setTimeout(function () {
20
+ // Double check if still expanded before setting to visible
21
+ if (toggleState) {
22
+ setStyle(styleOptions.find(function (op) { return op !== initStyle.current; }));
23
+ }
24
+ }, transitionDuration);
25
+ }
26
+ else {
27
+ // Immediately set to hidden when closing
28
+ setStyle(initStyle.current);
29
+ }
30
+ // Cleanup function to clear timeout if component updates/unmounts
31
+ return function () {
32
+ if (timeoutId) {
33
+ clearTimeout(timeoutId);
34
+ }
35
+ };
36
+ }, [toggleState, transitionDuration]);
37
+ return ({
38
+ style: style
39
+ });
40
+ };
41
+ exports.useStyleUpdateAfterToggleTransition = useStyleUpdateAfterToggleTransition;
@@ -48,6 +48,7 @@ var ActionMenu_1 = require("../../../components/ActionMenu");
48
48
  var phosphor_react_1 = require("phosphor-react");
49
49
  var mixins_1 = require("../../../themes/mixins");
50
50
  var Typo2_1 = require("../Typo2");
51
+ var useStyleUpdateAfterToggleTransition_1 = require("../../../utils/useStyleUpdateAfterToggleTransition");
51
52
  var StyledContainer = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-radius: 0.8rem;\n border: 1px solid ", ";\n background: #ffffff;\n box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.06);\n"], ["\n border-radius: 0.8rem;\n border: 1px solid ", ";\n background: #ffffff;\n box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.06);\n"])), colors_1.colors.grey10);
52
53
  var StyledHeader = styled_components_1.default.button(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 100%;\n padding: 1rem 1.6rem;\n text-align: left;\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n"], ["\n width: 100%;\n padding: 1rem 1.6rem;\n text-align: left;\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n"])));
53
54
  var StyledRightHeaderSection = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n"], ["\n display: flex;\n align-items: center;\n"])));
@@ -104,31 +105,12 @@ var Accordion = function (_a) {
104
105
  var _d = (0, react_1.useState)(defaultExpanded), isExpanded = _d[0], setIsExpanded = _d[1];
105
106
  var _e = useCalculateWrapperHeight({ isExpanded: isExpanded }), wrapperRef = _e.wrapperRef, wrapperHeight = _e.wrapperHeight;
106
107
  var expandAnimationDuration = 300;
107
- //helps to make the accordionOverflow visible once its open,
108
- //for scenarios where a data viz tooltip needs to stick out
109
- var _f = (0, react_1.useState)("hidden"), accordionOverflow = _f[0], setAccordionOverflow = _f[1];
110
- (0, react_1.useEffect)(function () {
111
- var timeoutId;
112
- if (isExpanded) {
113
- // Set timeout for making content visible after animation
114
- timeoutId = setTimeout(function () {
115
- // Double check if still expanded before setting to visible
116
- if (isExpanded) {
117
- setAccordionOverflow("visible");
118
- }
119
- }, expandAnimationDuration);
120
- }
121
- else {
122
- // Immediately set to hidden when closing
123
- setAccordionOverflow("hidden");
124
- }
125
- // Cleanup function to clear timeout if component updates/unmounts
126
- return function () {
127
- if (timeoutId) {
128
- clearTimeout(timeoutId);
129
- }
130
- };
131
- }, [isExpanded, expandAnimationDuration]);
108
+ var accordionOverflow = (0, useStyleUpdateAfterToggleTransition_1.useStyleUpdateAfterToggleTransition)({
109
+ styleOptions: ['hidden', 'visible'],
110
+ initStyle: 'hidden',
111
+ toggleState: isExpanded,
112
+ transitionDuration: expandAnimationDuration
113
+ }).style;
132
114
  return (react_1.default.createElement(StyledContainer, null,
133
115
  react_1.default.createElement(StyledHeader, { onClick: function () { return setIsExpanded(!isExpanded); } },
134
116
  react_1.default.createElement("div", { style: { flex: "1 0 0" } },
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -47,7 +58,8 @@ var Typo2_1 = require("../Typo2");
47
58
  var colors_1 = require("../../themes/colors");
48
59
  var grey40 = colors_1.colors.grey40, grey60 = colors_1.colors.grey60;
49
60
  var BlockLabel = function (props) {
50
- var label = props.label, sublabel = props.sublabel, inputOnlyLabel = props.inputOnlyLabel, invert = props.invert, isRequired = props.isRequired, readOnly = props.readOnly, className = props.className, style = props.style, errorMsgs = props.errorMsgs, hints = props.hints, id = props.id, hintsTitle = props.hintsTitle, hintsBtnLabel = props.hintsBtnLabel, hintsSubtitle = props.hintsSubtitle, hideOptionalLabel = props.hideOptionalLabel, infoTooltip = props.infoTooltip, disabled = props.disabled, S = props.S;
61
+ var label = props.label, sublabel = props.sublabel, inputOnlyLabel = props.inputOnlyLabel, invert = props.invert, isRequired = props.isRequired, readOnly = props.readOnly, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a, marginBottom = props.marginBottom, // some comps like radiolist and checkboxlist need a bit more marginbottom, so they control it themselves
62
+ errorMsgs = props.errorMsgs, hints = props.hints, id = props.id, hintsTitle = props.hintsTitle, hintsBtnLabel = props.hintsBtnLabel, hintsSubtitle = props.hintsSubtitle, hideOptionalLabel = props.hideOptionalLabel, infoTooltip = props.infoTooltip, disabled = props.disabled, S = props.S;
51
63
  var shouldCompRender = label ||
52
64
  (!readOnly &&
53
65
  (sublabel ||
@@ -61,15 +73,15 @@ var BlockLabel = function (props) {
61
73
  var errType = (errorMsgs === null || errorMsgs === void 0 ? void 0 : errorMsgs.length) !== 1 //this first condition seems like a proper hack..
62
74
  ? "danger"
63
75
  : errorMsgs[0].type || "danger";
64
- return (shouldCompRender && (react_1.default.createElement(index_styled_1.StyledBlockLabel, { style: style, className: className, id: "tempBlocklabelOverride", sublabel: sublabel, S: S },
76
+ return (shouldCompRender && (react_1.default.createElement(index_styled_1.StyledBlockLabel, { style: __assign(__assign({}, style), { marginBottom: (marginBottom || (sublabel ? '0.6rem' : '0.4rem')) }), className: className, id: "tempBlocklabelOverride", sublabel: sublabel, S: S },
65
77
  react_1.default.createElement("div", { style: { display: "flex", gap: "0.4rem" } },
66
- (label || inputOnlyLabel) && (react_1.default.createElement(Typo2_1.UI_BODY_SM, { color: disabled ? colors_1.colors.grey40 : colors_1.colors.grey80, semibold: true }, label || inputOnlyLabel)),
78
+ (label || inputOnlyLabel) && (react_1.default.createElement(Typo2_1.UI_BODY_SM_DF, { color: disabled ? colors_1.colors.grey40 : colors_1.colors.grey80, semibold: true }, label || inputOnlyLabel)),
67
79
  !readOnly && (errorMsgs === null || errorMsgs === void 0 ? void 0 : errorMsgs.length) > 0 ? (react_1.default.createElement(InlineAlert_1.InlineAlert, { text: errText, type: errType, link: errLink, invert: invert })) : null,
68
- optional && !hideOptionalLabel && (react_1.default.createElement(Typo2_1.UI_BODY_SM, { color: disabled ? colors_1.colors.grey20 : colors_1.colors.grey40 }, "(optional)")),
80
+ optional && !hideOptionalLabel && (react_1.default.createElement(Typo2_1.UI_BODY_SM_DF, { color: disabled ? colors_1.colors.grey20 : colors_1.colors.grey40 }, "(optional)")),
69
81
  !readOnly && hints ? (react_1.default.createElement(Hints_1.default, { id: id, title: hintsTitle, btnlabel: hintsBtnLabel, subtitle: hintsSubtitle, hints: hints, disabled: disabled })) : null,
70
82
  infoTooltip && (react_1.default.createElement(Tooltip_1.Tooltip, { text: infoTooltip.text || infoTooltip, position: infoTooltip.position || "right", invert: invert, debug: infoTooltip.debug, popOutOfOverflowHiddenParent: infoTooltip.popOutOfOverflowHiddenParent, presetTarget: "infoIcon" }))),
71
83
  !readOnly &&
72
84
  sublabel &&
73
- (0, toArray_1.toArray)(sublabel).map(function (subL, i) { return (react_1.default.createElement(Typo2_1.UI_CAPTION, { key: i, color: disabled ? colors_1.colors.grey40 : grey60 }, subL)); }))));
85
+ (0, toArray_1.toArray)(sublabel).map(function (subL, i) { return (react_1.default.createElement(Typo2_1.UI_CAPTION_DF, { key: i, color: disabled ? colors_1.colors.grey40 : grey60 }, subL)); }))));
74
86
  };
75
87
  exports.BlockLabel = BlockLabel;
@@ -9,11 +9,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.StyledInfoTooltipbutton = exports.StyledBlockLabel = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
- exports.StyledBlockLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 0.2rem;\n margin-bottom: ", ";\n\n position: relative;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 0.2rem;\n margin-bottom: ", ";\n\n position: relative;\n"])), function (_a) {
13
- var sublabel = _a.sublabel, S = _a.S;
14
- return S
15
- ? (sublabel ? '0.4rem' : '0.2rem')
16
- : (sublabel ? '0.6rem' : '0.4rem');
17
- });
12
+ exports.StyledBlockLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 0.2rem;\n position: relative;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 0.2rem;\n position: relative;\n"])));
18
13
  exports.StyledInfoTooltipbutton = styled_components_1.default.button(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border: none;\n background: none;\n outline: none;\n"], ["\n border: none;\n background: none;\n outline: none;\n"])));
19
14
  var templateObject_1, templateObject_2;