xmlui 0.10.10 → 0.10.11

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 (85) hide show
  1. package/dist/{metadata/apiInterceptorWorker-Bb5-fQup.mjs → lib/apiInterceptorWorker-DPgtUtdA.mjs} +5870 -3195
  2. package/dist/lib/index-BuIblMfO.mjs +50034 -0
  3. package/dist/lib/index.css +1 -1
  4. package/dist/lib/initMock-CV-9AUzP.mjs +843 -0
  5. package/dist/lib/language-server-web-worker.mjs +8 -7
  6. package/dist/lib/language-server.mjs +6 -6
  7. package/dist/lib/{metadata-utils-gIOZMGG7.mjs → metadata-utils-DzONZF-e.mjs} +159 -114
  8. package/dist/lib/scss/components-core/theming/_themes.scss +6 -7
  9. package/dist/lib/{server-common-BfCSNpXG.mjs → server-common-Dsyp3-Ro.mjs} +14497 -10458
  10. package/dist/lib/syntax-monaco.mjs +14 -11
  11. package/dist/lib/syntax-textmate.d.ts +2 -2
  12. package/dist/lib/syntax-textmate.mjs +128 -109
  13. package/dist/lib/transform-CBz7TQJh.mjs +7375 -0
  14. package/dist/lib/xmlui-parser.mjs +49 -49
  15. package/dist/lib/xmlui-serializer-Bf9bdvlV.mjs +667 -0
  16. package/dist/lib/xmlui.d.ts +3 -2
  17. package/dist/lib/xmlui.mjs +43 -43
  18. package/dist/{lib/apiInterceptorWorker-DH8wqOVq.mjs → metadata/apiInterceptorWorker-BmKP8bnq.mjs} +5432 -3502
  19. package/dist/metadata/collectedComponentMetadata-Cdi6AFD3.mjs +55851 -0
  20. package/dist/metadata/initMock-B7OlSKKb.mjs +843 -0
  21. package/dist/metadata/style.css +1 -1
  22. package/dist/metadata/xmlui-metadata.mjs +3 -3
  23. package/dist/metadata/xmlui-metadata.umd.js +207 -419
  24. package/dist/scripts/package.json +3 -1
  25. package/dist/scripts/src/components/APICall/APICall.js +4 -4
  26. package/dist/scripts/src/components/Accordion/Accordion.js +1 -1
  27. package/dist/scripts/src/components/Animation/AnimationNative.js +259 -0
  28. package/dist/scripts/src/components/App/App.js +10 -0
  29. package/dist/scripts/src/components/App/AppNative.js +23 -2
  30. package/dist/scripts/src/components/AutoComplete/AutoComplete.js +1 -1
  31. package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +5 -4
  32. package/dist/scripts/src/components/Button/Button.js +1 -1
  33. package/dist/scripts/src/components/Charts/AreaChart/AreaChart.js +92 -0
  34. package/dist/scripts/src/components/Charts/AreaChart/AreaChartNative.js +127 -0
  35. package/dist/scripts/src/components/Charts/BarChart/BarChartNative.js +85 -81
  36. package/dist/scripts/src/components/Charts/RadarChart/RadarChart.js +92 -0
  37. package/dist/scripts/src/components/Charts/RadarChart/RadarChartNative.js +125 -0
  38. package/dist/scripts/src/components/Checkbox/Checkbox.js +2 -1
  39. package/dist/scripts/src/components/ComponentProvider.js +4 -0
  40. package/dist/scripts/src/components/DataSource/DataSource.js +124 -0
  41. package/dist/scripts/src/components/DropdownMenu/DropdownMenu.js +1 -1
  42. package/dist/scripts/src/components/Footer/Footer.js +1 -1
  43. package/dist/scripts/src/components/FormItem/FormItem.js +1 -1
  44. package/dist/scripts/src/components/Heading/Heading.js +83 -28
  45. package/dist/scripts/src/components/Heading/HeadingNative.js +10 -1
  46. package/dist/scripts/src/components/HtmlTags/HtmlTags.js +1 -1
  47. package/dist/scripts/src/components/Image/ImageNative.js +13 -0
  48. package/dist/scripts/src/components/NavLink/NavLink.js +1 -1
  49. package/dist/scripts/src/components/Option/Option.js +2 -2
  50. package/dist/scripts/src/components/Option/OptionNative.js +12 -1
  51. package/dist/scripts/src/components/RadioGroup/RadioGroup.js +7 -3
  52. package/dist/scripts/src/components/RadioGroup/RadioGroupNative.js +20 -5
  53. package/dist/scripts/src/components/RadioGroup/RadioItemNative.js +2 -1
  54. package/dist/scripts/src/components/Select/Select.js +1 -1
  55. package/dist/scripts/src/components/Select/SelectNative.js +1 -1
  56. package/dist/scripts/src/components/Switch/Switch.js +2 -1
  57. package/dist/scripts/src/components/Table/Table.js +1 -1
  58. package/dist/scripts/src/components/TableOfContents/TableOfContents.js +1 -1
  59. package/dist/scripts/src/components/Text/Text.js +32 -14
  60. package/dist/scripts/src/components/Text/TextNative.js +17 -5
  61. package/dist/scripts/src/components/TextBox/TextBoxNative.js +1 -1
  62. package/dist/scripts/src/components/Toggle/Toggle.js +2 -2
  63. package/dist/scripts/src/components/abstractions.js +2 -1
  64. package/dist/scripts/src/components/collectedComponentMetadata.js +316 -0
  65. package/dist/scripts/src/components-core/RestApiProxy.js +3 -1
  66. package/dist/scripts/src/components-core/StandaloneApp.js +823 -0
  67. package/dist/scripts/src/components-core/markup-check.js +279 -0
  68. package/dist/scripts/src/components-core/rendering/ComponentAdapter.js +36 -16
  69. package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +4 -1
  70. package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +4 -1
  71. package/dist/scripts/src/components-core/theming/themes/root.js +30 -17
  72. package/dist/scripts/src/components-core/theming/transformThemeVars.js +14 -7
  73. package/dist/scripts/src/components-core/xmlui-parser.js +60 -43
  74. package/dist/scripts/src/index.js +120 -0
  75. package/dist/scripts/src/parsers/xmlui-parser/transform.js +15 -4
  76. package/dist/standalone/xmlui-standalone.es.d.ts +4 -2
  77. package/dist/standalone/xmlui-standalone.umd.js +319 -823
  78. package/package.json +3 -1
  79. package/src/syntax/textMate/xmlui.tmLanguage.json +2 -2
  80. package/dist/lib/index-C71PAj7E.mjs +0 -38677
  81. package/dist/lib/initMock-Bvbl2Pa3.mjs +0 -571
  82. package/dist/lib/transform-SMWeyMoq.mjs +0 -5391
  83. package/dist/lib/xmlui-serializer-a0O0jFY-.mjs +0 -497
  84. package/dist/metadata/collectedComponentMetadata-Dn91__HO.mjs +0 -43087
  85. package/dist/metadata/initMock-ghNfStAu.mjs +0 -571
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataSourceMd = void 0;
4
+ const abstractions_1 = require("../abstractions");
5
+ const metadata_helpers_1 = require("../metadata-helpers");
6
+ // NOTE: Original component this is based on is the `Loader` component
7
+ const COMP = "DataSource";
8
+ exports.DataSourceMd = (0, metadata_helpers_1.createMetadata)({
9
+ status: "stable",
10
+ description: "`DataSource` fetches and caches data from API endpoints, versus " +
11
+ "[`APICall`](/components/APICall) which creates, updates or deletes data.",
12
+ props: {
13
+ method: {
14
+ description: `Set the HTTP method.`,
15
+ defaultValue: "get",
16
+ availableValues: abstractions_1.httpMethodNames,
17
+ },
18
+ id: {
19
+ description: `Set the ID used by other components to access the retrieved data in the \`value\`` +
20
+ "property of a \`DataSource\`, or status info in the \`loaded\` and \`error\` properties." +
21
+ "When no `id` is set, the component cannot be used programmatically.",
22
+ isRequired: true,
23
+ valueType: "string",
24
+ },
25
+ url: {
26
+ description: `Set the URL.`,
27
+ isRequired: true,
28
+ valueType: "string",
29
+ },
30
+ body: {
31
+ description: `Set the optional request body. The object you pass is serialized as a JSON string.`,
32
+ valueType: "any",
33
+ },
34
+ rawBody: {
35
+ description: `Set the request body with no serialization. Use it to send a payload ` +
36
+ `that has already been serialized to a JSON string.`,
37
+ valueType: "string",
38
+ },
39
+ queryParams: {
40
+ description: `Append optional key-value pairs to the URL.`,
41
+ valueType: "any",
42
+ },
43
+ headers: {
44
+ description: `Set request headers. Pass an object whose keys are header names and values are header values.`,
45
+ valueType: "any",
46
+ },
47
+ pollIntervalInSeconds: {
48
+ description: "Set the interval for periodic data fetching. If the data changes on refresh, " +
49
+ "XMLUI will re-render components that refer directly or indirectly to the \`DataSource\`. " +
50
+ "If not set or set to zero, the component does not poll for data.",
51
+ valueType: "number",
52
+ },
53
+ inProgressNotificationMessage: {
54
+ description: "Set the message to display when the data fetch is in progress. " +
55
+ "If the property value is not set, no progress message is displayed.",
56
+ valueType: "string",
57
+ },
58
+ completedNotificationMessage: {
59
+ description: "Set the message to display when the data fetch completes." +
60
+ "If the property value is not set, no completion message is displayed.",
61
+ valueType: "string",
62
+ },
63
+ errorNotificationMessage: {
64
+ description: "Set the message to display when the there is an error. " +
65
+ "You can use the `$error` context value in an expression to " +
66
+ "refer to the original error message.",
67
+ valueType: "string",
68
+ },
69
+ resultSelector: {
70
+ description: "Set an optional object key to extract a subset of the response data. If this " +
71
+ "value is not set, the entire response body is considered the result.",
72
+ valueType: "string",
73
+ },
74
+ transformResult: {
75
+ description: "Set an optional function to perform a final transformation of the " +
76
+ "response data. If this value is not set, the result is not transformed.",
77
+ },
78
+ prevPageSelector: {
79
+ description: `When using \`${COMP}\` with paging, the response may contain information about the ` +
80
+ `previous and next page. This property defines the selector that extracts the ` +
81
+ `previous page information from the response deserialized to an object.`,
82
+ },
83
+ nextPageSelector: {
84
+ description: `When using \`${COMP}\` with paging, the response may contain information about ` +
85
+ `the previous and next page. This property defines the selector that extracts ` +
86
+ `the next page information from the response deserialized to an object.`,
87
+ },
88
+ structuralSharing: {
89
+ description: "This property allows structural sharing. When turned on, `DataSource` will keep " +
90
+ "the original reference if nothing has changed in the data. If a subset has " +
91
+ "changed, `DataSource` will keep the unchanged parts and only replace the changed " +
92
+ "parts. If you do not need this behavior, set this property to `false`.",
93
+ defaultValue: "true",
94
+ },
95
+ },
96
+ events: {
97
+ loaded: (0, metadata_helpers_1.d)("The component triggers this event when the fetch operation has been completed " +
98
+ "and the data is loaded. The event has two arguments. The first is the data " +
99
+ "loaded; the second indicates if the event is a result of a refetch."),
100
+ error: (0, metadata_helpers_1.d)(`This event fires when a request results in an error.`),
101
+ },
102
+ apis: {
103
+ value: {
104
+ description: `This property retrieves the data queried from the source after optional transformations.`,
105
+ signature: "get value(): any",
106
+ },
107
+ inProgress: {
108
+ description: "This property indicates if the data is being fetched.",
109
+ signature: "get inProgress(): boolean",
110
+ },
111
+ isRefetching: {
112
+ description: "This property indicates if the data is being re-fetched.",
113
+ signature: "get isRefetching(): boolean",
114
+ },
115
+ loaded: {
116
+ description: "This property indicates if the data has been loaded.",
117
+ signature: "get loaded(): boolean",
118
+ },
119
+ refetch: {
120
+ description: "This method requests the re-fetch of the data.",
121
+ signature: "refetch(): void",
122
+ },
123
+ },
124
+ });
@@ -130,7 +130,7 @@ exports.MenuItemMd = (0, metadata_helpers_1.createMetadata)({
130
130
  [`color-${MICOMP}`]: "$textColor-primary",
131
131
  [`color-${MICOMP}--disabled`]: "$textColor--disabled",
132
132
  [`fontFamily-${MICOMP}`]: "$fontFamily",
133
- [`fontSize-${MICOMP}`]: "$fontSize-small",
133
+ [`fontSize-${MICOMP}`]: "$fontSize-sm",
134
134
  [`paddingVertical-${MICOMP}`]: "$space-2",
135
135
  [`paddingHorizontal-${MICOMP}`]: "$space-3",
136
136
  [`backgroundColor-${MICOMP}--hover`]: "$backgroundColor-dropdown-item--hover",
@@ -22,7 +22,7 @@ exports.FooterMd = (0, metadata_helpers_1.createMetadata)({
22
22
  defaultThemeVars: {
23
23
  [`backgroundColor-${COMP}`]: "$backgroundColor-AppHeader",
24
24
  [`verticalAlignment-${COMP}`]: "center",
25
- [`fontSize-${COMP}`]: "$fontSize-small",
25
+ [`fontSize-${COMP}`]: "$fontSize-sm",
26
26
  [`textColor-${COMP}`]: "$textColor-secondary",
27
27
  [`maxWidth-content-${COMP}`]: "$maxWidth-content",
28
28
  [`borderTop-${COMP}`]: `1px solid $borderColor`,
@@ -193,7 +193,7 @@ exports.FormItemMd = (0, metadata_helpers_1.createMetadata)({
193
193
  themeVars: (0, themeVars_1.parseScssVar)(FormItem_module_scss_1.default.themeVars),
194
194
  defaultThemeVars: {
195
195
  "textColor-FormItemLabel": "$textColor-primary",
196
- "fontSize-FormItemLabel": "$fontSize-small",
196
+ "fontSize-FormItemLabel": "$fontSize-sm",
197
197
  "fontWeight-FormItemLabel": "$fontWeight-medium",
198
198
  "fontStyle-FormItemLabel": "normal",
199
199
  "textTransform-FormItemLabel": "none",
@@ -43,6 +43,22 @@ const OMIT_FROM_TOC_DESC = {
43
43
  type: "boolean",
44
44
  defaultValue: HeadingNative_1.defaultProps.omitFromToc,
45
45
  };
46
+ const SHOW_ANCHOR_DESC = {
47
+ description: "This property indicates whether an anchor link should be displayed next to the heading. " +
48
+ "If set to `true`, an anchor link will be displayed on hover next to the heading.",
49
+ type: "boolean",
50
+ defaultValue: HeadingNative_1.defaultProps.showAnchor,
51
+ };
52
+ const APIS_DESC = {
53
+ scrollIntoView: {
54
+ signature: "scrollIntoView()",
55
+ description: "Scrolls the heading into view.",
56
+ },
57
+ hasOverflow: {
58
+ signature: "hasOverflow()",
59
+ description: "Returns true when the displayed text overflows the bounds of this heading component.",
60
+ },
61
+ };
46
62
  exports.HeadingMd = (0, metadata_helpers_1.createMetadata)({
47
63
  status: "stable",
48
64
  description: "`Heading` displays hierarchical text headings with semantic importance levels " +
@@ -60,18 +76,9 @@ exports.HeadingMd = (0, metadata_helpers_1.createMetadata)({
60
76
  ellipses: ELLIPSES_DESC,
61
77
  preserveLinebreaks: PRESERVE_DESC,
62
78
  omitFromToc: OMIT_FROM_TOC_DESC,
63
- showAnchor: {
64
- description: "This property indicates whether an anchor link should be displayed next to the heading. " +
65
- "If set to `true`, an anchor link will be displayed on hover next to the heading.",
66
- type: "boolean",
67
- },
68
- },
69
- apis: {
70
- scrollIntoView: {
71
- signature: "scrollIntoView()",
72
- description: "Scrolls the heading into view.",
73
- },
79
+ showAnchor: SHOW_ANCHOR_DESC,
74
80
  },
81
+ apis: APIS_DESC,
75
82
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
76
83
  limitThemeVarsToComponent: true,
77
84
  defaultThemeVars: {
@@ -98,14 +105,20 @@ exports.H1Md = (0, metadata_helpers_1.createMetadata)({
98
105
  props: {
99
106
  value: VALUE_DESC,
100
107
  maxLines: MAX_LINES_DESC,
108
+ ellipses: ELLIPSES_DESC,
109
+ preserveLinebreaks: PRESERVE_DESC,
101
110
  omitFromToc: OMIT_FROM_TOC_DESC,
111
+ showAnchor: SHOW_ANCHOR_DESC,
102
112
  },
113
+ apis: APIS_DESC,
103
114
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
104
115
  defaultThemeVars: {
105
- [`fontSize-${H1}`]: "$fontSize-large",
116
+ [`fontSize-${H1}`]: "$fontSize-2xl",
117
+ [`lineHeight-${H1}`]: "$lineHeight-2xl",
106
118
  [`marginTop-${H1}`]: "0",
107
119
  [`marginBottom-${H1}`]: "0",
108
- [`fontSize-${H1}-markdown`]: "$fontSize-large",
120
+ [`fontSize-${H1}-markdown`]: "$fontSize-2xl",
121
+ [`lineHeight-${H1}-markdown`]: "$lineHeight-2xl",
109
122
  [`marginTop-${H1}-markdown`]: "0",
110
123
  [`marginBottom-${H1}-markdown`]: "$space-6",
111
124
  light: {
@@ -124,13 +137,20 @@ exports.H2Md = (0, metadata_helpers_1.createMetadata)({
124
137
  props: {
125
138
  value: VALUE_DESC,
126
139
  maxLines: MAX_LINES_DESC,
140
+ ellipses: ELLIPSES_DESC,
141
+ preserveLinebreaks: PRESERVE_DESC,
127
142
  omitFromToc: OMIT_FROM_TOC_DESC,
143
+ showAnchor: SHOW_ANCHOR_DESC,
128
144
  },
145
+ apis: APIS_DESC,
129
146
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
130
147
  defaultThemeVars: {
131
- [`fontSize-${H2}`]: "$fontSize-medium",
148
+ [`fontSize-${H2}`]: "$fontSize-xl",
149
+ [`lineHeight-${H2}`]: "$lineHeight-xl",
132
150
  [`marginTop-${H2}`]: "0",
133
151
  [`marginBottom-${H2}`]: "0",
152
+ [`fontSize-${H2}-markdown`]: "$fontSize-xl",
153
+ [`lineHeight-${H2}-markdown`]: "$lineHeight-xl",
134
154
  [`marginTop-${H2}-markdown`]: "$space-10",
135
155
  [`marginBottom-${H2}-markdown`]: "$space-3",
136
156
  light: {
@@ -149,13 +169,20 @@ exports.H3Md = (0, metadata_helpers_1.createMetadata)({
149
169
  props: {
150
170
  value: VALUE_DESC,
151
171
  maxLines: MAX_LINES_DESC,
172
+ ellipses: ELLIPSES_DESC,
173
+ preserveLinebreaks: PRESERVE_DESC,
152
174
  omitFromToc: OMIT_FROM_TOC_DESC,
175
+ showAnchor: SHOW_ANCHOR_DESC,
153
176
  },
177
+ apis: APIS_DESC,
154
178
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
155
179
  defaultThemeVars: {
156
- [`fontSize-${H3}`]: "$fontSize-normal",
180
+ [`fontSize-${H3}`]: "$fontSize-lg",
181
+ [`lineHeight-${H3}`]: "$lineHeight-lg",
157
182
  [`marginTop-${H3}`]: "0",
158
183
  [`marginBottom-${H3}`]: "0",
184
+ [`fontSize-${H3}-markdown`]: "$fontSize-lg",
185
+ [`lineHeight-${H3}-markdown`]: "$lineHeight-lg",
159
186
  [`marginTop-${H3}-markdown`]: "$space-6",
160
187
  [`marginBottom-${H3}-markdown`]: "$space-2",
161
188
  light: {
@@ -175,12 +202,19 @@ exports.H4Md = (0, metadata_helpers_1.createMetadata)({
175
202
  value: VALUE_DESC,
176
203
  maxLines: MAX_LINES_DESC,
177
204
  omitFromToc: OMIT_FROM_TOC_DESC,
205
+ ellipses: ELLIPSES_DESC,
206
+ preserveLinebreaks: PRESERVE_DESC,
207
+ showAnchor: SHOW_ANCHOR_DESC,
178
208
  },
209
+ apis: APIS_DESC,
179
210
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
180
211
  defaultThemeVars: {
181
- [`fontSize-${H4}`]: "$fontSize-small",
212
+ [`fontSize-${H4}`]: "$fontSize-base",
213
+ [`lineHeight-${H4}`]: "$lineHeight-base",
182
214
  [`marginTop-${H4}`]: "0",
183
215
  [`marginBottom-${H4}`]: "0",
216
+ [`fontSize-${H4}-markdown`]: "$fontSize-base",
217
+ [`lineHeight-${H4}-markdown`]: "$lineHeight-base",
184
218
  [`marginTop-${H4}-markdown`]: "$space-5",
185
219
  [`marginBottom-${H4}-markdown`]: "$space-1",
186
220
  light: {
@@ -200,12 +234,19 @@ exports.H5Md = (0, metadata_helpers_1.createMetadata)({
200
234
  value: VALUE_DESC,
201
235
  maxLines: MAX_LINES_DESC,
202
236
  omitFromToc: OMIT_FROM_TOC_DESC,
237
+ ellipses: ELLIPSES_DESC,
238
+ preserveLinebreaks: PRESERVE_DESC,
239
+ showAnchor: SHOW_ANCHOR_DESC,
203
240
  },
241
+ apis: APIS_DESC,
204
242
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
205
243
  defaultThemeVars: {
206
- [`fontSize-${H5}`]: "$fontSize-smaller",
244
+ [`fontSize-${H5}`]: "$fontSize-sm",
245
+ [`lineHeight-${H5}`]: "$lineHeight-sm",
207
246
  [`marginTop-${H5}`]: "0",
208
247
  [`marginBottom-${H5}`]: "0",
248
+ [`fontSize-${H5}-markdown`]: "$fontSize-sm",
249
+ [`lineHeight-${H5}-markdown`]: "$lineHeight-sm",
209
250
  [`marginTop-${H5}-markdown`]: "0",
210
251
  [`marginBottom-${H5}-markdown`]: "$space-0",
211
252
  light: {
@@ -225,12 +266,19 @@ exports.H6Md = (0, metadata_helpers_1.createMetadata)({
225
266
  value: VALUE_DESC,
226
267
  maxLines: MAX_LINES_DESC,
227
268
  omitFromToc: OMIT_FROM_TOC_DESC,
269
+ ellipses: ELLIPSES_DESC,
270
+ preserveLinebreaks: PRESERVE_DESC,
271
+ showAnchor: SHOW_ANCHOR_DESC,
228
272
  },
273
+ apis: APIS_DESC,
229
274
  themeVars: (0, themeVars_1.parseScssVar)(Heading_module_scss_1.default.themeVars),
230
275
  defaultThemeVars: {
231
- [`fontSize-${H6}`]: "$fontSize-tiny",
276
+ [`fontSize-${H6}`]: "$fontSize-xs",
277
+ [`lineHeight-${H6}`]: "$lineHeight-xs",
232
278
  [`marginTop-${H6}`]: "0",
233
279
  [`marginBottom-${H6}`]: "0",
280
+ [`fontSize-${H6}-markdown`]: "$fontSize-xs",
281
+ [`lineHeight-${H6}-markdown`]: "$lineHeight-xs",
234
282
  [`marginTop-${H6}-markdown`]: "0",
235
283
  [`marginBottom-${H6}-markdown`]: "$space-0",
236
284
  light: {
@@ -241,72 +289,79 @@ exports.H6Md = (0, metadata_helpers_1.createMetadata)({
241
289
  },
242
290
  },
243
291
  });
244
- function renderHeading({ node, extractValue, className, level, showAnchor, renderChild, }) {
292
+ function renderHeading({ node, extractValue, className, level, showAnchor, renderChild, registerComponentApi, }) {
245
293
  var _a, _b;
246
294
  const _c = node.props, { maxLines, preserveLinebreaks, ellipses } = _c, restProps = __rest(_c, ["maxLines", "preserveLinebreaks", "ellipses"]);
247
295
  delete restProps.level; // Remove level from restProps as it is handled separately
248
- return ((0, jsx_runtime_1.jsx)(HeadingNative_1.Heading, Object.assign({ uid: node.uid, level: ((_a = extractValue.asOptionalString(level)) !== null && _a !== void 0 ? _a : "h1"), maxLines: extractValue.asOptionalNumber(maxLines), preserveLinebreaks: extractValue.asOptionalBoolean(preserveLinebreaks, false), ellipses: extractValue.asOptionalBoolean(ellipses, true), showAnchor: extractValue.asOptionalBoolean(showAnchor), className: className, omitFromToc: extractValue.asOptionalBoolean((_b = node.props) === null || _b === void 0 ? void 0 : _b.omitFromToc) }, (0, extractParam_1.resolveAndCleanProps)(restProps, extractValue), { children: extractValue.asDisplayText(node.props.value) || renderChild(node.children) })));
296
+ return ((0, jsx_runtime_1.jsx)(HeadingNative_1.Heading, Object.assign({ uid: node.uid, level: ((_a = extractValue.asOptionalString(level)) !== null && _a !== void 0 ? _a : "h1"), maxLines: extractValue.asOptionalNumber(maxLines), preserveLinebreaks: extractValue.asOptionalBoolean(preserveLinebreaks, false), ellipses: extractValue.asOptionalBoolean(ellipses, true), showAnchor: extractValue.asOptionalBoolean(showAnchor), className: className, omitFromToc: extractValue.asOptionalBoolean((_b = node.props) === null || _b === void 0 ? void 0 : _b.omitFromToc), registerComponentApi: registerComponentApi }, (0, extractParam_1.resolveAndCleanProps)(restProps, extractValue), { children: extractValue.asDisplayText(node.props.value) || renderChild(node.children) })));
249
297
  }
250
- exports.headingComponentRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.HeadingMd, ({ node, extractValue, className, renderChild }) => {
298
+ exports.headingComponentRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.HeadingMd, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
251
299
  return renderHeading({
252
- node,
300
+ node: node,
253
301
  extractValue,
254
302
  className,
255
303
  level: node.props.level,
256
304
  renderChild,
305
+ registerComponentApi,
257
306
  });
258
307
  });
259
- exports.h1ComponentRenderer = (0, renderers_1.createComponentRenderer)(H1, exports.H1Md, ({ node, extractValue, className, renderChild }) => {
308
+ exports.h1ComponentRenderer = (0, renderers_1.createComponentRenderer)(H1, exports.H1Md, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
260
309
  return renderHeading({
261
310
  node,
262
311
  extractValue,
263
312
  className,
264
313
  level: "h1",
265
314
  renderChild,
315
+ registerComponentApi,
266
316
  });
267
317
  });
268
- exports.h2ComponentRenderer = (0, renderers_1.createComponentRenderer)(H2, exports.H2Md, ({ node, extractValue, className, renderChild }) => {
318
+ exports.h2ComponentRenderer = (0, renderers_1.createComponentRenderer)(H2, exports.H2Md, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
269
319
  return renderHeading({
270
320
  node,
271
321
  extractValue,
272
322
  className,
273
323
  level: "h2",
274
324
  renderChild,
325
+ registerComponentApi,
275
326
  });
276
327
  });
277
- exports.h3ComponentRenderer = (0, renderers_1.createComponentRenderer)(H3, exports.H3Md, ({ node, extractValue, className, renderChild }) => {
328
+ exports.h3ComponentRenderer = (0, renderers_1.createComponentRenderer)(H3, exports.H3Md, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
278
329
  return renderHeading({
279
330
  node,
280
331
  extractValue,
281
332
  className,
282
333
  level: "h3",
283
334
  renderChild,
335
+ registerComponentApi,
284
336
  });
285
337
  });
286
- exports.h4ComponentRenderer = (0, renderers_1.createComponentRenderer)(H4, exports.H4Md, ({ node, extractValue, className, renderChild }) => {
338
+ exports.h4ComponentRenderer = (0, renderers_1.createComponentRenderer)(H4, exports.H4Md, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
287
339
  return renderHeading({
288
340
  node,
289
341
  extractValue,
290
342
  className,
291
343
  level: "h4",
292
344
  renderChild,
345
+ registerComponentApi,
293
346
  });
294
347
  });
295
- exports.h5ComponentRenderer = (0, renderers_1.createComponentRenderer)(H5, exports.H5Md, ({ node, extractValue, className, renderChild }) => {
348
+ exports.h5ComponentRenderer = (0, renderers_1.createComponentRenderer)(H5, exports.H5Md, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
296
349
  return renderHeading({
297
350
  node,
298
351
  extractValue,
299
352
  className,
300
353
  level: "h5",
301
354
  renderChild,
355
+ registerComponentApi,
302
356
  });
303
357
  });
304
- exports.h6ComponentRenderer = (0, renderers_1.createComponentRenderer)(H6, exports.H6Md, ({ node, extractValue, className, renderChild }) => {
358
+ exports.h6ComponentRenderer = (0, renderers_1.createComponentRenderer)(H6, exports.H6Md, ({ node, extractValue, className, renderChild, registerComponentApi }) => {
305
359
  return renderHeading({
306
360
  node,
307
361
  extractValue,
308
362
  className,
309
363
  level: "h6",
310
364
  renderChild,
365
+ registerComponentApi,
311
366
  });
312
367
  });
@@ -31,6 +31,7 @@ exports.defaultProps = {
31
31
  omitFromToc: false,
32
32
  maxLines: 0,
33
33
  preserveLinebreaks: false,
34
+ showAnchor: false,
34
35
  };
35
36
  exports.Heading = (0, react_1.forwardRef)(function Heading(_a, forwardedRef) {
36
37
  var _b, _c;
@@ -51,11 +52,19 @@ exports.Heading = (0, react_1.forwardRef)(function Heading(_a, forwardedRef) {
51
52
  elementRef.current.scrollIntoView(Object.assign({ behavior: 'smooth', block: 'start' }, options));
52
53
  }
53
54
  }, []);
55
+ const hasOverflow = (0, react_1.useCallback)(() => {
56
+ if (elementRef.current) {
57
+ const element = elementRef.current;
58
+ return element.scrollWidth > element.clientWidth || element.scrollHeight > element.clientHeight;
59
+ }
60
+ return false;
61
+ }, []);
54
62
  (0, react_1.useEffect)(() => {
55
63
  registerComponentApi === null || registerComponentApi === void 0 ? void 0 : registerComponentApi({
56
64
  scrollIntoView,
65
+ hasOverflow,
57
66
  });
58
- }, [registerComponentApi, scrollIntoView]);
67
+ }, [registerComponentApi, scrollIntoView, hasOverflow]);
59
68
  (0, react_1.useEffect)(() => {
60
69
  var _a, _b, _c, _d;
61
70
  if (elementRef.current) {
@@ -1336,7 +1336,7 @@ exports.HtmlTrMd = (0, metadata_helpers_1.createMetadata)({
1336
1336
  isHtmlTag: true,
1337
1337
  themeVars: (0, themeVars_1.parseScssVar)(HtmlTags_module_scss_1.default.themeVarsTr),
1338
1338
  defaultThemeVars: {
1339
- "fontSize-HtmlTr": "$fontSize-small",
1339
+ "fontSize-HtmlTr": "$fontSize-sm",
1340
1340
  "backgroundColor-row-HtmlTr": "inherit",
1341
1341
  //"backgroundColor-HtmlTr--hover": "$color-primary-50",
1342
1342
  },
@@ -26,7 +26,20 @@ exports.defaultProps = {
26
26
  };
27
27
  exports.Image = (0, react_1.forwardRef)(function Img(_a, ref) {
28
28
  var { src, alt, fit = exports.defaultProps.fit, style, className, onClick, aspectRatio, lazyLoad = exports.defaultProps.lazyLoad, inline = exports.defaultProps.inline } = _a, rest = __rest(_a, ["src", "alt", "fit", "style", "className", "onClick", "aspectRatio", "lazyLoad", "inline"]);
29
+ src = safeConvertPropToString(src);
30
+ alt = safeConvertPropToString(alt);
29
31
  return ((0, jsx_runtime_1.jsx)("img", Object.assign({}, rest, { src: src, ref: ref, alt: alt, loading: lazyLoad ? "lazy" : "eager", className: (0, classnames_1.default)(Image_module_scss_1.default.img, {
30
32
  [Image_module_scss_1.default.clickable]: !!onClick,
31
33
  }, className), style: Object.assign(Object.assign(Object.assign({ objectFit: fit, boxShadow: "none" }, style), { flexShrink: 1, aspectRatio: aspectRatio }), (inline ? { display: "inline" } : {})), onClick: onClick })));
32
34
  });
35
+ function safeConvertPropToString(prop) {
36
+ if (typeof prop === "string")
37
+ return prop;
38
+ if (prop != null &&
39
+ typeof prop !== "object" &&
40
+ typeof prop !== "function" &&
41
+ !Number.isNaN(prop)) {
42
+ return String(prop);
43
+ }
44
+ return undefined;
45
+ }
@@ -62,7 +62,7 @@ exports.NavLinkMd = (0, metadata_helpers_1.createMetadata)({
62
62
  [`backgroundColor-${COMP}`]: "transparent",
63
63
  [`paddingHorizontal-${COMP}`]: "$space-4",
64
64
  [`paddingVertical-${COMP}`]: "$space-2",
65
- [`fontSize-${COMP}`]: "$fontSize-small",
65
+ [`fontSize-${COMP}`]: "$fontSize-sm",
66
66
  [`fontWeight-${COMP}`]: "$fontWeight-normal",
67
67
  [`fontFamily-${COMP}`]: "$fontFamily",
68
68
  [`textColor-${COMP}`]: "$textColor-primary",
@@ -30,13 +30,13 @@ exports.OptionMd = (0, metadata_helpers_1.createMetadata)({
30
30
  exports.optionComponentRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.OptionMd, ({ node, extractValue, className, renderChild, layoutContext }) => {
31
31
  var _a, _b;
32
32
  const label = extractValue.asOptionalString(node.props.label);
33
- const value = extractValue.asOptionalString(node.props.value);
33
+ let value = extractValue(node.props.value);
34
34
  if (label === undefined && value === undefined) {
35
35
  return null;
36
36
  }
37
37
  const hasTextNodeChild = ((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) === 1 && (node.children[0].type === "TextNode" || node.children[0].type === "TextNodeCData");
38
38
  const textNodeChild = hasTextNodeChild ? renderChild(node.children) : undefined;
39
- return ((0, jsx_runtime_1.jsx)(OptionNative_1.OptionNative, { label: label || textNodeChild, value: value || label, enabled: extractValue.asOptionalBoolean(node.props.enabled), className: className, optionRenderer: ((_b = node.children) === null || _b === void 0 ? void 0 : _b.length) > 0
39
+ return ((0, jsx_runtime_1.jsx)(OptionNative_1.OptionNative, { label: label || textNodeChild, value: value !== undefined && value !== "" ? value : label, enabled: extractValue.asOptionalBoolean(node.props.enabled), className: className, optionRenderer: ((_b = node.children) === null || _b === void 0 ? void 0 : _b.length) > 0
40
40
  ? !hasTextNodeChild ? (contextVars) => ((0, jsx_runtime_1.jsx)(container_helpers_1.MemoizedItem, { node: node.children, renderChild: renderChild, contextVars: contextVars, layoutContext: layoutContext })) : undefined
41
41
  : undefined, children: !hasTextNodeChild && renderChild(node.children) }));
42
42
  });
@@ -1,13 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OptionNative = exports.defaultProps = void 0;
4
+ exports.convertOptionValue = convertOptionValue;
4
5
  const jsx_runtime_1 = require("react/jsx-runtime");
5
6
  const react_1 = require("react");
6
7
  const OptionTypeProvider_1 = require("./OptionTypeProvider");
7
8
  // Default props for Option component
8
9
  exports.defaultProps = {
9
- enabled: true
10
+ enabled: true,
10
11
  };
12
+ function convertOptionValue(value) {
13
+ if (typeof value !== "string" &&
14
+ (typeof value !== "number" ||
15
+ (typeof value === "number" && isNaN(value))) &&
16
+ typeof value !== "boolean" &&
17
+ value !== null) {
18
+ return "";
19
+ }
20
+ return value;
21
+ }
11
22
  exports.OptionNative = (0, react_1.memo)((props) => {
12
23
  const OptionType = (0, OptionTypeProvider_1.useOptionType)();
13
24
  if (!OptionType) {
@@ -17,7 +17,11 @@ exports.RadioGroupMd = (0, metadata_helpers_1.createMetadata)({
17
17
  description: "`RadioGroup` creates a mutually exclusive selection interface where users can " +
18
18
  "choose only one option from a group of radio buttons. It manages the selection " +
19
19
  "state and ensures that selecting one option automatically deselects all others in " +
20
- "the group.",
20
+ "the group." +
21
+ "\n\n" +
22
+ "Radio options store their values as strings. Numbers and booleans are converted to strings " +
23
+ "when assigned, while objects, functions and arrays default to an empty string unless resolved " +
24
+ "via binding expressions.",
21
25
  props: {
22
26
  initialValue: Object.assign(Object.assign({}, (0, metadata_helpers_1.dInitialValue)()), { defaultValue: RadioGroupNative_1.defaultProps.initialValue }),
23
27
  autoFocus: (0, metadata_helpers_1.dAutoFocus)(),
@@ -52,10 +56,10 @@ exports.RadioGroupMd = (0, metadata_helpers_1.createMetadata)({
52
56
  [`backgroundColor-${RGOption}--disabled`]: "$backgroundColor--disabled",
53
57
  [`backgroundColor-checked-${RGOption}`]: "$color-primary-500",
54
58
  [`backgroundColor-checked-${RGOption}--disabled`]: `$textColor--disabled`,
55
- [`fontSize-${RGOption}`]: "$fontSize-small",
59
+ [`fontSize-${RGOption}`]: "$fontSize-sm",
56
60
  [`fontWeight-${RGOption}`]: "$fontWeight-bold",
57
61
  },
58
62
  });
59
63
  exports.radioGroupRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.RadioGroupMd, ({ node, extractValue, className, state, updateState, lookupEventHandler, renderChild, registerComponentApi, }) => {
60
- return ((0, jsx_runtime_1.jsx)(RadioGroupNative_1.RadioGroup, { enabled: extractValue.asOptionalBoolean(node.props.enabled), className: className, initialValue: extractValue(node.props.initialValue), value: state === null || state === void 0 ? void 0 : state.value, updateState: updateState, validationStatus: extractValue(node.props.validationStatus), onDidChange: lookupEventHandler("didChange"), onFocus: lookupEventHandler("gotFocus"), onBlur: lookupEventHandler("lostFocus"), registerComponentApi: registerComponentApi, label: extractValue.asOptionalString(node.props.label), labelPosition: extractValue(node.props.labelPosition), labelWidth: extractValue(node.props.labelWidth), labelBreak: extractValue(node.props.labelBreak), required: extractValue.asOptionalBoolean(node.props.required), children: renderChild(node.children) }));
64
+ return ((0, jsx_runtime_1.jsx)(RadioGroupNative_1.RadioGroup, { autofocus: extractValue.asOptionalBoolean(node.props.autoFocus), enabled: extractValue.asOptionalBoolean(node.props.enabled), className: className, initialValue: extractValue(node.props.initialValue), value: state === null || state === void 0 ? void 0 : state.value, updateState: updateState, validationStatus: extractValue(node.props.validationStatus), onDidChange: lookupEventHandler("didChange"), onFocus: lookupEventHandler("gotFocus"), onBlur: lookupEventHandler("lostFocus"), registerComponentApi: registerComponentApi, label: extractValue.asOptionalString(node.props.label), labelPosition: extractValue(node.props.labelPosition), labelWidth: extractValue(node.props.labelWidth), labelBreak: extractValue(node.props.labelBreak), required: extractValue.asOptionalBoolean(node.props.required), readOnly: extractValue.asOptionalBoolean(node.props.readOnly), children: renderChild(node.children) }));
61
65
  });
@@ -58,32 +58,47 @@ const misc_1 = require("../../components-core/utils/misc");
58
58
  const ItemWithLabel_1 = require("../FormItem/ItemWithLabel");
59
59
  const OptionTypeProvider_1 = __importDefault(require("../Option/OptionTypeProvider"));
60
60
  const RadioItemNative_1 = require("./RadioItemNative");
61
+ const OptionNative_1 = require("../Option/OptionNative");
61
62
  exports.defaultProps = {
62
63
  value: "",
63
64
  initialValue: "",
64
65
  enabled: true,
65
66
  validationStatus: "none",
66
67
  required: false,
68
+ readOnly: false,
67
69
  };
68
70
  const RadioGroupStatusContext = (0, react_1.createContext)({
69
71
  status: "none",
70
72
  enabled: exports.defaultProps.enabled,
71
73
  });
72
74
  exports.RadioGroup = (0, react_1.forwardRef)(function RadioGroup(_a, forwardedRef) {
73
- var { id, value = exports.defaultProps.value, initialValue = exports.defaultProps.initialValue, enabled = exports.defaultProps.enabled, validationStatus = exports.defaultProps.validationStatus, label, labelPosition, labelWidth, labelBreak, required = exports.defaultProps.required, updateState = constants_1.noop, onDidChange = constants_1.noop, onFocus = constants_1.noop, onBlur = constants_1.noop, children, registerComponentApi, style, className } = _a, rest = __rest(_a, ["id", "value", "initialValue", "enabled", "validationStatus", "label", "labelPosition", "labelWidth", "labelBreak", "required", "updateState", "onDidChange", "onFocus", "onBlur", "children", "registerComponentApi", "style", "className"]);
75
+ var { id, value = exports.defaultProps.value, initialValue = exports.defaultProps.initialValue, autofocus, enabled = exports.defaultProps.enabled, validationStatus = exports.defaultProps.validationStatus, label, labelPosition, labelWidth, labelBreak, required = exports.defaultProps.required, readOnly = exports.defaultProps.readOnly, updateState = constants_1.noop, onDidChange = constants_1.noop, onFocus = constants_1.noop, onBlur = constants_1.noop, children, registerComponentApi, style, className } = _a, rest = __rest(_a, ["id", "value", "initialValue", "autofocus", "enabled", "validationStatus", "label", "labelPosition", "labelWidth", "labelBreak", "required", "readOnly", "updateState", "onDidChange", "onFocus", "onBlur", "children", "registerComponentApi", "style", "className"]);
74
76
  const [focused, setFocused] = react_1.default.useState(false);
77
+ const radioGroupRef = (0, react_1.useRef)(null);
75
78
  // --- Initialize the related field with the input's initial value
76
79
  (0, react_1.useEffect)(() => {
77
- updateState({ value: initialValue }, { initial: true });
80
+ updateState({ value: (0, OptionNative_1.convertOptionValue)(initialValue) }, { initial: true });
78
81
  }, [initialValue, updateState]);
82
+ // --- Handle autofocus by focusing the first radio option
83
+ (0, react_1.useEffect)(() => {
84
+ if (autofocus && radioGroupRef.current) {
85
+ // Find the first radio item element
86
+ const firstRadioItem = radioGroupRef.current.querySelector('[role="radio"]');
87
+ if (firstRadioItem) {
88
+ firstRadioItem.focus();
89
+ }
90
+ }
91
+ }, [autofocus]);
79
92
  // --- Handle the value change events for this input
80
93
  const updateValue = (0, react_1.useCallback)((value) => {
81
94
  updateState({ value });
82
95
  onDidChange(value);
83
96
  }, [onDidChange, updateState]);
84
97
  const onInputChange = (0, react_1.useCallback)((value) => {
98
+ if (readOnly)
99
+ return;
85
100
  updateValue(value);
86
- }, [updateValue]);
101
+ }, [updateValue, readOnly]);
87
102
  // --- Manage obtaining and losing the focus
88
103
  const handleOnFocus = (0, react_1.useCallback)((ev) => {
89
104
  setFocused(true);
@@ -105,7 +120,7 @@ exports.RadioGroup = (0, react_1.forwardRef)(function RadioGroup(_a, forwardedRe
105
120
  const contextValue = (0, react_1.useMemo)(() => {
106
121
  return { value, setValue: updateValue, status: validationStatus, enabled };
107
122
  }, [value, updateValue, validationStatus, enabled]);
108
- return ((0, jsx_runtime_1.jsx)(OptionTypeProvider_1.default, { Component: exports.RadioGroupOption, children: (0, jsx_runtime_1.jsx)(RadioGroupStatusContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsx)(ItemWithLabel_1.ItemWithLabel, Object.assign({}, rest, { ref: forwardedRef, labelPosition: labelPosition, label: label, labelWidth: labelWidth, labelBreak: labelBreak, required: required, enabled: enabled, onFocus: onFocus, onBlur: onBlur, style: style, className: className, children: (0, jsx_runtime_1.jsx)(InnerRadioGroup.Root, { id: id, onBlur: handleOnBlur, onFocus: handleOnFocus, onValueChange: onInputChange, value: value, disabled: !enabled, className: (0, classnames_1.default)(RadioGroup_module_scss_1.default.radioGroupContainer, {
123
+ return ((0, jsx_runtime_1.jsx)(OptionTypeProvider_1.default, { Component: exports.RadioGroupOption, children: (0, jsx_runtime_1.jsx)(RadioGroupStatusContext.Provider, { value: contextValue, children: (0, jsx_runtime_1.jsx)(ItemWithLabel_1.ItemWithLabel, Object.assign({}, rest, { ref: forwardedRef, labelPosition: labelPosition, label: label, labelWidth: labelWidth, labelBreak: labelBreak, required: required, enabled: enabled, onFocus: onFocus, onBlur: onBlur, style: style, className: className, children: (0, jsx_runtime_1.jsx)(InnerRadioGroup.Root, { ref: radioGroupRef, id: id, onBlur: handleOnBlur, onFocus: handleOnFocus, onValueChange: onInputChange, value: value, disabled: !enabled, required: required, "aria-readonly": readOnly, className: (0, classnames_1.default)(RadioGroup_module_scss_1.default.radioGroupContainer, {
109
124
  [RadioGroup_module_scss_1.default.focused]: focused,
110
125
  [RadioGroup_module_scss_1.default.disabled]: !enabled,
111
126
  }), children: children }) })) }) }));
@@ -120,7 +135,7 @@ const RadioGroupOption = ({ value, label, enabled = true, optionRenderer, style,
120
135
  [RadioGroup_module_scss_1.default.valid]: value === radioGroupContext.value && radioGroupContext.status === "valid",
121
136
  }), [enabled, radioGroupContext, value]);
122
137
  const item = (0, react_1.useMemo)(() => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(RadioItemNative_1.UnwrappedRadioItem, { id: id, value: value, checked: value === radioGroupContext.value, disabled: !enabled, statusStyles: statusStyles }), (0, jsx_runtime_1.jsx)("label", { htmlFor: id, className: (0, classnames_1.default)(RadioGroup_module_scss_1.default.label, statusStyles), children: label !== null && label !== void 0 ? label : value })] })), [enabled, id, label, statusStyles, value, radioGroupContext]);
123
- return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(RadioGroup_module_scss_1.default.radioOptionContainer, className), style: style, children: !!optionRenderer ? ((0, jsx_runtime_1.jsxs)("label", { className: RadioGroup_module_scss_1.default.optionLabel, children: [(0, jsx_runtime_1.jsx)("div", { className: RadioGroup_module_scss_1.default.itemContainer, children: item }), optionRenderer({
138
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(RadioGroup_module_scss_1.default.radioOptionContainer, className), style: style, "data-radio-item": true, children: !!optionRenderer ? ((0, jsx_runtime_1.jsxs)("label", { className: RadioGroup_module_scss_1.default.optionLabel, children: [(0, jsx_runtime_1.jsx)("div", { className: RadioGroup_module_scss_1.default.itemContainer, children: item }), optionRenderer({
124
139
  $checked: value === radioGroupContext.value,
125
140
  $setChecked: radioGroupContext.setValue,
126
141
  })] })) : (item) }, id));