@wavemaker-ai/react-runtime 1.0.0-rc.322 → 1.0.0-rc.324

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 (217) hide show
  1. package/actions/login-action.js +1 -1
  2. package/components/advanced/carousel/index.d.ts +1 -0
  3. package/components/advanced/carousel/template.d.ts +1 -0
  4. package/components/advanced/login/index.d.ts +1 -0
  5. package/components/advanced/marquee/index.d.ts +1 -0
  6. package/components/basic/anchor/index.d.ts +1 -0
  7. package/components/basic/anchor/index.js +16 -14
  8. package/components/basic/audio/index.d.ts +1 -0
  9. package/components/basic/html/index.d.ts +1 -0
  10. package/components/basic/icon/index.d.ts +1 -0
  11. package/components/basic/icon/index.js +13 -16
  12. package/components/basic/iframe/index.d.ts +1 -0
  13. package/components/basic/label/index.d.ts +1 -0
  14. package/components/basic/label/index.js +5 -3
  15. package/components/basic/label/props.d.ts +1 -1
  16. package/components/basic/picture/index.d.ts +1 -0
  17. package/components/basic/picture/index.js +3 -2
  18. package/components/basic/progress-bar/index.d.ts +1 -0
  19. package/components/basic/progress-circle/index.d.ts +1 -0
  20. package/components/basic/richtexteditor/index.d.ts +2 -0
  21. package/components/basic/search/index.d.ts +6 -0
  22. package/components/basic/search/index.js +69 -9
  23. package/components/basic/search/props.d.ts +4 -0
  24. package/components/basic/spinner/index.d.ts +2 -0
  25. package/components/basic/spinner/index.js +11 -9
  26. package/components/basic/spinner/props.d.ts +5 -0
  27. package/components/basic/tile/index.d.ts +1 -0
  28. package/components/basic/tree/index.d.ts +1 -0
  29. package/components/basic/video/index.d.ts +1 -0
  30. package/components/chart/index.d.ts +2 -0
  31. package/components/chart/props.d.ts +1 -0
  32. package/components/chart/src/chart.js +12 -1
  33. package/components/chart/src/types.d.ts +2 -0
  34. package/components/common/WmAppIcon/index.d.ts +15 -0
  35. package/components/common/WmAppIcon/index.js +130 -0
  36. package/components/common/WmAppIcon/props.d.ts +17 -0
  37. package/components/common/WmAppIcon/props.js +0 -0
  38. package/components/common/index.d.ts +3 -1
  39. package/components/common/index.js +10 -2
  40. package/components/common/wm-skeleton.d.ts +7 -0
  41. package/components/common/wm-skeleton.js +11 -1
  42. package/components/container/accordion/accordion-pane/index.d.ts +2 -0
  43. package/components/container/accordion/accordion-pane/index.js +10 -1
  44. package/components/container/accordion/accordion-pane/props.d.ts +1 -0
  45. package/components/container/accordion/index.d.ts +1 -0
  46. package/components/container/accordion/index.js +2 -2
  47. package/components/container/index.d.ts +1 -0
  48. package/components/container/layout-grid/grid-column/index.d.ts +1 -0
  49. package/components/container/layout-grid/grid-row/index.d.ts +1 -0
  50. package/components/container/layout-grid/index.d.ts +1 -0
  51. package/components/container/linear-layout/index.d.ts +1 -0
  52. package/components/container/linear-layout/linear-layout-item/index.d.ts +1 -0
  53. package/components/container/panel/components/panel-header/index.js +16 -16
  54. package/components/container/panel/index.d.ts +1 -0
  55. package/components/container/repeat-template/index.d.ts +1 -0
  56. package/components/container/tabs/index.d.ts +1 -0
  57. package/components/container/tabs/index.js +18 -18
  58. package/components/container/tabs/props.d.ts +1 -0
  59. package/components/container/tabs/tab-pane/index.d.ts +2 -0
  60. package/components/container/tabs/tab-pane/index.js +2 -0
  61. package/components/container/tabs/tab-pane/props.d.ts +1 -0
  62. package/components/container/wizard/components/StepComponents.js +14 -6
  63. package/components/container/wizard/index.d.ts +2 -0
  64. package/components/container/wizard/index.js +2 -2
  65. package/components/container/wizard/props.d.ts +4 -0
  66. package/components/container/wizard/wizard-step/index.d.ts +1 -0
  67. package/components/container/wizard/wizard-step/index.js +6 -0
  68. package/components/data/card/card-actions/index.d.ts +1 -0
  69. package/components/data/card/card-content/index.d.ts +1 -0
  70. package/components/data/card/card-footer/index.d.ts +1 -0
  71. package/components/data/card/index.d.ts +1 -0
  72. package/components/data/card/index.js +13 -6
  73. package/components/data/form/dynamic-fields/index.js +1 -0
  74. package/components/data/form/form-action/index.d.ts +2 -0
  75. package/components/data/form/form-action/index.js +6 -4
  76. package/components/data/form/form-field/index.js +5 -4
  77. package/components/data/form/form-header/index.d.ts +1 -1
  78. package/components/data/form/form-header/index.js +10 -1
  79. package/components/data/form/index.js +5 -3
  80. package/components/data/form/props.d.ts +1 -0
  81. package/components/data/list/components/ListHeader.js +19 -3
  82. package/components/data/list/components/ListItemWithTemplate.js +5 -1
  83. package/components/data/list/components/ListItems.d.ts +1 -1
  84. package/components/data/list/components/ListItems.js +5 -1
  85. package/components/data/list/components/LoadMoreButton.js +14 -2
  86. package/components/data/list/components/StandardListItems.js +1 -1
  87. package/components/data/list/components/props.d.ts +11 -5
  88. package/components/data/list/hooks/props.d.ts +2 -2
  89. package/components/data/list/hooks/useListEventHandlers.js +3 -2
  90. package/components/data/list/index.d.ts +5 -1
  91. package/components/data/list/index.js +17 -4
  92. package/components/data/list/props.d.ts +14 -2
  93. package/components/data/list/utils/list-helpers.d.ts +5 -1
  94. package/components/data/list/utils/list-helpers.js +10 -0
  95. package/components/data/pagination/components/PageSizeSelector.js +49 -155
  96. package/components/data/pagination/hooks/usePagination.js +24 -1
  97. package/components/data/table/components/RowCells.js +1 -1
  98. package/components/data/table/components/TableDataRow.js +16 -3
  99. package/components/data/table/components/TableHeader.js +1 -1
  100. package/components/data/table/components/TablePanelHeading.js +14 -2
  101. package/components/data/table/hooks/useResponsiveColumns.d.ts +1 -0
  102. package/components/data/table/hooks/useTableColumns.js +2 -2
  103. package/components/data/table/hooks/useTableData.js +30 -1
  104. package/components/data/table/index.d.ts +4 -0
  105. package/components/data/table/index.js +47 -30
  106. package/components/data/table/live-table/index.d.ts +1 -0
  107. package/components/data/table/props.d.ts +11 -2
  108. package/components/data/table/table-action/index.d.ts +1 -0
  109. package/components/data/table/table-column/index.d.ts +1 -0
  110. package/components/data/table/table-row/index.d.ts +1 -0
  111. package/components/data/table/table-row-action/index.d.ts +1 -0
  112. package/components/data/table/utils/buildSelectionColumns.d.ts +1 -1
  113. package/components/data/table/utils/buildSelectionColumns.js +97 -71
  114. package/components/data/table/utils/columnBuilder.d.ts +13 -0
  115. package/components/data/table/utils/columnBuilder.js +27 -18
  116. package/components/data/table/utils/columnWidthDistribution.d.ts +1 -1
  117. package/components/data/table/utils/columnWidthDistribution.js +4 -1
  118. package/components/data/table/utils/constants.d.ts +1 -1
  119. package/components/data/table/utils/constants.js +1 -1
  120. package/components/dialogs/alert-dialog/index.d.ts +2 -0
  121. package/components/dialogs/confirm-dialog/index.d.ts +2 -0
  122. package/components/dialogs/dialog/index.d.ts +2 -0
  123. package/components/dialogs/dialog-actions/index.d.ts +1 -0
  124. package/components/dialogs/dialog-body/index.d.ts +1 -0
  125. package/components/dialogs/dialog-content/index.d.ts +1 -0
  126. package/components/dialogs/dialog-header/index.d.ts +1 -0
  127. package/components/dialogs/dialog-header/index.js +11 -12
  128. package/components/dialogs/iframe-dialog/index.d.ts +2 -0
  129. package/components/dialogs/login-dialog/index.d.ts +4 -0
  130. package/components/dialogs/login-dialog/index.js +2 -1
  131. package/components/dialogs/login-dialog/props.d.ts +1 -0
  132. package/components/dialogs/page-dialog/index.d.ts +4 -0
  133. package/components/dialogs/page-dialog/index.js +2 -1
  134. package/components/dialogs/page-dialog/props.d.ts +1 -0
  135. package/components/form/button/index.d.ts +1 -0
  136. package/components/form/button/index.js +29 -33
  137. package/components/form/button-group/index.d.ts +1 -0
  138. package/components/input/calendar/index.d.ts +2 -0
  139. package/components/input/chips/index.d.ts +2 -0
  140. package/components/input/chips/index.js +9 -3
  141. package/components/input/chips/utils.d.ts +5 -0
  142. package/components/input/chips/utils.js +29 -0
  143. package/components/input/color-picker/index.d.ts +2 -0
  144. package/components/input/composite/index.d.ts +1 -0
  145. package/components/input/composite/index.js +1 -0
  146. package/components/input/currency/index.d.ts +2 -0
  147. package/components/input/default/checkbox/index.d.ts +6 -0
  148. package/components/input/default/checkbox/index.js +48 -18
  149. package/components/input/default/checkbox/props.d.ts +8 -0
  150. package/components/input/default/checkboxset/index.d.ts +2 -0
  151. package/components/input/default/radioset/index.d.ts +2 -0
  152. package/components/input/default/switch/index.d.ts +6 -0
  153. package/components/input/default/switch/index.js +36 -9
  154. package/components/input/default/switch/prop.d.ts +2 -0
  155. package/components/input/epoch/date/index.d.ts +1 -0
  156. package/components/input/epoch/datetime/index.d.ts +1 -0
  157. package/components/input/epoch/time/index.d.ts +1 -0
  158. package/components/input/fileupload/components/ListItems.d.ts +5 -1
  159. package/components/input/fileupload/components/ListItems.js +27 -5
  160. package/components/input/fileupload/components/MultiUpload.js +12 -1
  161. package/components/input/fileupload/components/SingleUpload.js +12 -1
  162. package/components/input/fileupload/index.d.ts +3 -0
  163. package/components/input/fileupload/index.js +11 -0
  164. package/components/input/fileupload/props.d.ts +10 -0
  165. package/components/input/number/index.d.ts +2 -0
  166. package/components/input/rating/index.d.ts +6 -0
  167. package/components/input/rating/index.js +10 -5
  168. package/components/input/rating/props.d.ts +8 -0
  169. package/components/input/select/index.d.ts +2 -0
  170. package/components/input/slider/index.d.ts +6 -0
  171. package/components/input/slider/index.js +19 -2
  172. package/components/input/slider/props.d.ts +2 -0
  173. package/components/input/text/index.d.ts +7 -1
  174. package/components/input/text/index.js +25 -6
  175. package/components/input/text/props.d.ts +8 -0
  176. package/components/input/textarea/index.d.ts +2 -0
  177. package/components/input/textarea/index.js +9 -4
  178. package/components/input/textarea/util.d.ts +1 -0
  179. package/components/input/textarea/util.js +17 -0
  180. package/components/input/upload/index.d.ts +2 -0
  181. package/components/navbar/index.d.ts +7 -0
  182. package/components/navbar/index.js +21 -7
  183. package/components/navbar/nav/index.d.ts +1 -0
  184. package/components/navbar/nav-item/index.d.ts +1 -0
  185. package/components/navigation/breadcrumb/index.d.ts +1 -0
  186. package/components/navigation/menu/index.d.ts +3 -1
  187. package/components/navigation/menu/index.js +22 -4
  188. package/components/navigation/menu/props.d.ts +1 -0
  189. package/components/navigation/popover/index.d.ts +1 -0
  190. package/components/navigation/popover/index.js +8 -2
  191. package/components/page/partial/index.d.ts +1 -0
  192. package/core/appstore.d.ts +10 -0
  193. package/core/appstore.js +9 -1
  194. package/core/constants/events.d.ts +3 -0
  195. package/core/constants/events.js +13 -1
  196. package/core/proxy-service.js +1 -1
  197. package/core/util/index.d.ts +2 -0
  198. package/core/util/index.js +29 -0
  199. package/higherOrder/BasePage.js +81 -26
  200. package/higherOrder/props.d.ts +1 -0
  201. package/higherOrder/useActivePageReactivity.d.ts +21 -0
  202. package/higherOrder/useActivePageReactivity.js +57 -0
  203. package/higherOrder/withBaseWrapper.js +2 -0
  204. package/higherOrder/withRenderLogger.d.ts +15 -0
  205. package/higherOrder/withRenderLogger.js +53 -0
  206. package/hooks/useAuth.js +7 -1
  207. package/package-lock.json +219 -198
  208. package/package.json +4 -3
  209. package/runtime-dynamic/factories/dynamic-component.js +18 -5
  210. package/runtime-dynamic/factories/utils.js +7 -1
  211. package/runtime-dynamic/services/compile-render.js +2 -1
  212. package/store/slices/i18nSlice.d.ts +2 -0
  213. package/store/slices/i18nSlice.js +3 -1
  214. package/types/index.d.ts +6 -0
  215. package/utils/attr.js +4 -1
  216. package/utils/svg-icon.d.ts +27 -0
  217. package/utils/svg-icon.js +75 -0
@@ -9,7 +9,9 @@ declare const WmRatingStandalone: React.ComponentType<import("../../data/form/fo
9
9
  iconcolor?: string;
10
10
  iconsize?: string;
11
11
  activeiconclass?: string;
12
+ activeiconurl?: string;
12
13
  inactiveiconclass?: string;
14
+ inactiveiconurl?: string;
13
15
  setDatasetItems?: (items: RatingItem[]) => void;
14
16
  dataset?: any;
15
17
  datafield?: string;
@@ -93,6 +95,7 @@ declare const WmRatingStandalone: React.ComponentType<import("../../data/form/fo
93
95
  prefabName?: string;
94
96
  loading?: boolean;
95
97
  showSkeleton?: boolean;
98
+ widget?: string;
96
99
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
97
100
  export { WmRatingStandalone as WmRating };
98
101
  /**
@@ -129,7 +132,9 @@ declare const _default: React.ComponentType<{
129
132
  iconcolor?: string;
130
133
  iconsize?: string;
131
134
  activeiconclass?: string;
135
+ activeiconurl?: string;
132
136
  inactiveiconclass?: string;
137
+ inactiveiconurl?: string;
133
138
  setDatasetItems?: (items: RatingItem[]) => void;
134
139
  dataset?: any;
135
140
  datafield?: string;
@@ -208,5 +213,6 @@ declare const _default: React.ComponentType<{
208
213
  prefabName?: string;
209
214
  loading?: boolean;
210
215
  showSkeleton?: boolean;
216
+ widget?: string;
211
217
  }>;
212
218
  export default _default;
@@ -23,6 +23,7 @@ import clsx from "clsx";
23
23
  import Tooltip from "@mui/material/Tooltip";
24
24
  import { isEmpty, isEqual } from "lodash-es";
25
25
  import { withBaseWrapper } from "../../../higherOrder/withBaseWrapper";
26
+ import { WmAppIcon } from "../../common/WmAppIcon";
26
27
  import { Box } from "@mui/material";
27
28
  import { transformDataset } from "../../../utils/transformedDataset-utils";
28
29
  import withFormController from "../../data/form/form-controller/withFormController";
@@ -47,7 +48,9 @@ const WmRating = memo((props) => {
47
48
  iconcolor,
48
49
  iconsize,
49
50
  activeiconclass = DEFAULT_ICON_CLASS.active,
51
+ activeiconurl,
50
52
  inactiveiconclass = DEFAULT_ICON_CLASS.inactive,
53
+ inactiveiconurl,
51
54
  datasetItems = [],
52
55
  value,
53
56
  datafield = "index",
@@ -411,11 +414,13 @@ const WmRating = memo((props) => {
411
414
  ),
412
415
  children: [
413
416
  /* @__PURE__ */ jsx(
414
- Box,
417
+ WmAppIcon,
415
418
  {
416
- component: "i",
417
- className: clsx("app-icon", "wm-rating-star-icon", iconClass),
418
- "aria-hidden": "true"
419
+ iconclass: isActive ? activeiconclass : inactiveiconclass,
420
+ iconurl: isActive ? activeiconurl : inactiveiconurl,
421
+ prefabName: props.prefabName,
422
+ defaultClasses: "wm-rating-star-icon",
423
+ alt: "Rating"
419
424
  }
420
425
  ),
421
426
  /* @__PURE__ */ jsx(
@@ -440,7 +445,7 @@ const WmRating = memo((props) => {
440
445
  {
441
446
  hidden: props.hidden,
442
447
  sx: __spreadProps(__spreadValues({}, styles), { height, width }),
443
- className: clsx("app-ratings", { disabled: readonly }),
448
+ className: clsx("app-ratings", { disabled: readonly }, props.className),
444
449
  ref: ratingsRef,
445
450
  tabIndex: (_a = props.tabindex) != null ? _a : 0,
446
451
  children: /* @__PURE__ */ jsxs(
@@ -52,11 +52,19 @@ export interface RatingProps {
52
52
  * @default "wi wi-star"
53
53
  */
54
54
  activeiconclass?: string;
55
+ /**
56
+ * URL for the active (selected) icon.
57
+ */
58
+ activeiconurl?: string;
55
59
  /**
56
60
  * CSS class for the inactive (unselected) icon.
57
61
  * @default "wi wi-star-border"
58
62
  */
59
63
  inactiveiconclass?: string;
64
+ /**
65
+ * URL for the inactive (unselected) icon.
66
+ */
67
+ inactiveiconurl?: string;
60
68
  /**
61
69
  * Setter function for dataset items (injected by HOC).
62
70
  */
@@ -75,6 +75,7 @@ declare const WmSelectStandalone: React.ComponentType<import("../../data/form/fo
75
75
  prefabName?: string;
76
76
  loading?: boolean;
77
77
  showSkeleton?: boolean;
78
+ widget?: string;
78
79
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
79
80
  export { WmSelectStandalone as WmSelect };
80
81
  /**
@@ -173,5 +174,6 @@ declare const _default: React.ComponentType<{
173
174
  prefabName?: string;
174
175
  loading?: boolean;
175
176
  showSkeleton?: boolean;
177
+ widget?: string;
176
178
  }>;
177
179
  export default _default;
@@ -17,7 +17,9 @@ declare const WmSliderStandalone: React.ComponentType<import("../../data/form/fo
17
17
  markerlabeltext?: string | string[];
18
18
  showicons?: boolean;
19
19
  starticon?: string;
20
+ starticonurl?: string;
20
21
  endicon?: string;
22
+ endiconurl?: string;
21
23
  rangelabelposition?: "top" | "bottom" | "side";
22
24
  standalone?: boolean;
23
25
  ref?: React.RefObject<HTMLElement> | React.RefObject<null>;
@@ -69,6 +71,7 @@ declare const WmSliderStandalone: React.ComponentType<import("../../data/form/fo
69
71
  prefabName?: string;
70
72
  loading?: boolean;
71
73
  showSkeleton?: boolean;
74
+ widget?: string;
72
75
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
73
76
  export { WmSliderStandalone as WmSlider };
74
77
  /**
@@ -114,7 +117,9 @@ declare const _default: React.ComponentType<{
114
117
  markerlabeltext?: string | string[];
115
118
  showicons?: boolean;
116
119
  starticon?: string;
120
+ starticonurl?: string;
117
121
  endicon?: string;
122
+ endiconurl?: string;
118
123
  rangelabelposition?: "top" | "bottom" | "side";
119
124
  ref?: React.RefObject<HTMLElement> | React.RefObject<null>;
120
125
  animation?: string;
@@ -162,5 +167,6 @@ declare const _default: React.ComponentType<{
162
167
  prefabName?: string;
163
168
  loading?: boolean;
164
169
  showSkeleton?: boolean;
170
+ widget?: string;
165
171
  }>;
166
172
  export default _default;
@@ -23,6 +23,7 @@ import clsx from "clsx";
23
23
  import Box from "@mui/material/Box";
24
24
  import { Input } from "@base-ui-components/react/input";
25
25
  import { withBaseWrapper } from "../../../higherOrder/withBaseWrapper";
26
+ import { WmAppIcon } from "../../common/WmAppIcon";
26
27
  import withFormController from "../../data/form/form-controller/withFormController";
27
28
  import { convertDataToObject } from "../../../utils/transformedDataset-utils";
28
29
  import withStandalone from "../../../higherOrder/withStandalone";
@@ -49,7 +50,9 @@ const WmSlider = memo(
49
50
  markerlabeltext,
50
51
  showicons = false,
51
52
  starticon = "wi wi-minus",
53
+ starticonurl,
52
54
  endicon = "wi wi-plus",
55
+ endiconurl,
53
56
  rangelabelposition = "bottom"
54
57
  } = props;
55
58
  const initialValue = datavalue !== void 0 ? datavalue : (minvalue + maxvalue) / 2;
@@ -249,7 +252,14 @@ const WmSlider = memo(
249
252
  name: "decrementButton",
250
253
  onClick: decrementButtonClick,
251
254
  disabled,
252
- children: /* @__PURE__ */ jsx(Box, { component: "i", "aria-hidden": "true", className: starticon })
255
+ children: /* @__PURE__ */ jsx(
256
+ WmAppIcon,
257
+ {
258
+ iconclass: starticon,
259
+ iconurl: starticonurl,
260
+ prefabName: props.prefabName
261
+ }
262
+ )
253
263
  }
254
264
  ),
255
265
  /* @__PURE__ */ jsxs(Box, { className: "slider-control wm-slider-control", style: sliderControlStyle, children: [
@@ -293,7 +303,14 @@ const WmSlider = memo(
293
303
  name: "incrementButton",
294
304
  onClick: incrementButtonClick,
295
305
  disabled,
296
- children: /* @__PURE__ */ jsx(Box, { component: "i", "aria-hidden": "true", className: endicon })
306
+ children: /* @__PURE__ */ jsx(
307
+ WmAppIcon,
308
+ {
309
+ iconclass: endicon,
310
+ iconurl: endiconurl,
311
+ prefabName: props.prefabName
312
+ }
313
+ )
297
314
  }
298
315
  )
299
316
  ] }),
@@ -74,10 +74,12 @@ export interface SliderProps {
74
74
  * CSS class for the icon at the start of the slider.
75
75
  */
76
76
  starticon?: string;
77
+ starticonurl?: string;
77
78
  /**
78
79
  * CSS class for the icon at the end of the slider.
79
80
  */
80
81
  endicon?: string;
82
+ endiconurl?: string;
81
83
  /**
82
84
  * Position of range labels (min/max).
83
85
  * @default "top"
@@ -22,7 +22,9 @@ declare const WmTextStandalone: import("react").ComponentType<import("../../data
22
22
  autocapitalize?: "none" | "sentences" | "words" | "characters";
23
23
  onChange?: (event: React.ChangeEvent<HTMLInputElement>, widget: Record<string, unknown>, newVal: string | null, oldVal: string | null) => void;
24
24
  leadingiconclass?: string;
25
+ leadingiconurl?: string;
25
26
  trailingiconclass?: string;
27
+ trailingiconurl?: string;
26
28
  supportingtext?: string;
27
29
  onLeadingiconclick?: (event: React.MouseEvent<HTMLButtonElement>, widget?: Record<string, unknown>) => void;
28
30
  onTrailingiconclick?: (event: React.MouseEvent<HTMLButtonElement>, widget?: Record<string, unknown>) => void;
@@ -78,6 +80,7 @@ declare const WmTextStandalone: import("react").ComponentType<import("../../data
78
80
  prefabName?: string;
79
81
  loading?: boolean;
80
82
  showSkeleton?: boolean;
83
+ widget?: string;
81
84
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
82
85
  export { WmTextStandalone as WmText };
83
86
  /**
@@ -104,7 +107,7 @@ declare const _default: import("react").ComponentType<{
104
107
  regexp?: string | (RegExp & string);
105
108
  validationmessage?: string;
106
109
  hint?: string;
107
- type?: "number" | "url" | "search" | "text" | "color" | "email" | "password" | "tel";
110
+ type?: "number" | "search" | "text" | "url" | "color" | "email" | "password" | "tel";
108
111
  observe?: string[];
109
112
  onBlur?: ((e: any) => void) & ((event: React.FocusEvent<HTMLElement>, widget?: Record<string, any>, newVal?: string | number | null, oldVal?: string | number | null) => void);
110
113
  datavaluesource?: Record<string, unknown>;
@@ -125,7 +128,9 @@ declare const _default: import("react").ComponentType<{
125
128
  autocapitalize?: "none" | "sentences" | "words" | "characters";
126
129
  onChange?: (event: React.ChangeEvent<HTMLInputElement>, widget: Record<string, unknown>, newVal: string | null, oldVal: string | null) => void;
127
130
  leadingiconclass?: string;
131
+ leadingiconurl?: string;
128
132
  trailingiconclass?: string;
133
+ trailingiconurl?: string;
129
134
  supportingtext?: string;
130
135
  onLeadingiconclick?: (event: React.MouseEvent<HTMLButtonElement>, widget?: Record<string, unknown>) => void;
131
136
  onTrailingiconclick?: (event: React.MouseEvent<HTMLButtonElement>, widget?: Record<string, unknown>) => void;
@@ -177,5 +182,6 @@ declare const _default: import("react").ComponentType<{
177
182
  prefabName?: string;
178
183
  loading?: boolean;
179
184
  showSkeleton?: boolean;
185
+ widget?: string;
180
186
  }>;
181
187
  export default _default;
@@ -25,6 +25,7 @@ import clsx from "clsx";
25
25
  import toNumber from "lodash-es/toNumber";
26
26
  import debounce from "lodash-es/debounce";
27
27
  import { withBaseWrapper } from "../../../higherOrder/withBaseWrapper";
28
+ import { WmAppIcon } from "../../common/WmAppIcon";
28
29
  import withFormController from "../../data/form/form-controller/withFormController";
29
30
  import { formatInput, removeDisplayFormat, applyAutoCapitalize, getFormatMaxLength } from "./util";
30
31
  import delay from "lodash-es/delay";
@@ -68,7 +69,9 @@ const WmText = memo(
68
69
  id,
69
70
  error,
70
71
  leadingiconclass,
72
+ leadingiconurl,
71
73
  trailingiconclass,
74
+ trailingiconurl,
72
75
  supportingtext,
73
76
  onLeadingiconclick,
74
77
  onTrailingiconclick
@@ -388,7 +391,7 @@ const WmText = memo(
388
391
  name: "supportingText"
389
392
  },
390
393
  input: {
391
- startAdornment: leadingiconclass ? /* @__PURE__ */ jsx(InputAdornment, { position: "start", children: /* @__PURE__ */ jsx(
394
+ startAdornment: leadingiconclass || leadingiconurl ? /* @__PURE__ */ jsx(InputAdornment, { position: "start", children: /* @__PURE__ */ jsx(
392
395
  "button",
393
396
  {
394
397
  type: "button",
@@ -397,10 +400,17 @@ const WmText = memo(
397
400
  onClick: handleLeadingIconClick,
398
401
  "aria-hidden": "true",
399
402
  tabIndex: -1,
400
- children: /* @__PURE__ */ jsx("i", { "aria-hidden": "true", className: leadingiconclass })
403
+ children: /* @__PURE__ */ jsx(
404
+ WmAppIcon,
405
+ {
406
+ iconclass: leadingiconclass,
407
+ iconurl: leadingiconurl,
408
+ prefabName: props.prefabName
409
+ }
410
+ )
401
411
  }
402
412
  ) }) : void 0,
403
- endAdornment: trailingiconclass ? /* @__PURE__ */ jsx(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx(
413
+ endAdornment: trailingiconclass || trailingiconurl ? /* @__PURE__ */ jsx(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx(
404
414
  "button",
405
415
  {
406
416
  type: "button",
@@ -409,7 +419,14 @@ const WmText = memo(
409
419
  onClick: handleTrailingIconClick,
410
420
  "aria-hidden": "true",
411
421
  tabIndex: -1,
412
- children: /* @__PURE__ */ jsx("i", { "aria-hidden": "true", className: trailingiconclass })
422
+ children: /* @__PURE__ */ jsx(
423
+ WmAppIcon,
424
+ {
425
+ iconclass: trailingiconclass,
426
+ iconurl: trailingiconurl,
427
+ prefabName: props.prefabName
428
+ }
429
+ )
413
430
  }
414
431
  ) }) : void 0
415
432
  },
@@ -421,8 +438,8 @@ const WmText = memo(
421
438
  DEFAULT_CLASS,
422
439
  className,
423
440
  "wm-text-input",
424
- leadingiconclass && "with-leading-icon",
425
- trailingiconclass && "with-trailing-icon",
441
+ (leadingiconclass || leadingiconurl) && "with-leading-icon",
442
+ (trailingiconclass || trailingiconurl) && "with-trailing-icon",
426
443
  isTouched ? "ng-touched" : "ng-untouched",
427
444
  displayError && "ng-invalid"
428
445
  ),
@@ -454,7 +471,9 @@ const WmText = memo(
454
471
  "className",
455
472
  "hidden",
456
473
  "leadingiconclass",
474
+ "leadingiconurl",
457
475
  "trailingiconclass",
476
+ "trailingiconurl",
458
477
  "supportingtext"
459
478
  ];
460
479
  return keys.every((key) => prev[key] === current[key]);
@@ -102,10 +102,18 @@ export interface TextProps {
102
102
  * CSS class for the leading icon.
103
103
  */
104
104
  leadingiconclass?: string;
105
+ /**
106
+ * URL for the leading icon (.svg renders inline, other URLs as image).
107
+ */
108
+ leadingiconurl?: string;
105
109
  /**
106
110
  * CSS class for the trailing icon.
107
111
  */
108
112
  trailingiconclass?: string;
113
+ /**
114
+ * URL for the trailing icon (.svg renders inline, other URLs as image).
115
+ */
116
+ trailingiconurl?: string;
109
117
  /**
110
118
  * Supporting text displayed below the input.
111
119
  */
@@ -65,6 +65,7 @@ declare const WmTextareaStandalone: React.ComponentType<import("../../data/form/
65
65
  prefabName?: string;
66
66
  loading?: boolean;
67
67
  showSkeleton?: boolean;
68
+ widget?: string;
68
69
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
69
70
  export { WmTextareaStandalone as WmTextarea };
70
71
  /**
@@ -151,5 +152,6 @@ declare const _default: React.ComponentType<{
151
152
  prefabName?: string;
152
153
  loading?: boolean;
153
154
  showSkeleton?: boolean;
155
+ widget?: string;
154
156
  }>;
155
157
  export default _default;
@@ -15,7 +15,7 @@ var __spreadValues = (a, b) => {
15
15
  return a;
16
16
  };
17
17
  import { Fragment, jsx } from "react/jsx-runtime";
18
- import { memo, useEffect, useRef, useState, useCallback } from "react";
18
+ import { memo, useEffect, useRef, useState, useCallback, useMemo } from "react";
19
19
  import clsx from "clsx";
20
20
  import TextField from "@mui/material/TextField";
21
21
  import * as lodash from "lodash-es";
@@ -24,6 +24,7 @@ import withFormController from "../../data/form/form-controller/withFormControll
24
24
  import delay from "lodash-es/delay";
25
25
  import { sanitizeInputValue } from "../util";
26
26
  import withStandalone from "../../../higherOrder/withStandalone";
27
+ import { resolveCharacterCountText } from "./util";
27
28
  const DEFAULT_CLASS = "form-control app-textarea";
28
29
  const TextareaCount = ({ children }) => /* @__PURE__ */ jsx("div", { className: "textarea-count", children });
29
30
  const WmTextarea = memo(
@@ -146,11 +147,15 @@ const WmTextarea = memo(
146
147
  }, [shortcutkey]);
147
148
  const handleUpdateCharLength = useCallback(
148
149
  (charLength) => {
149
- if ((listener == null ? void 0 : listener.onChange) && limitdisplaytext !== "") {
150
+ if ((listener == null ? void 0 : listener.onChange) && (limitdisplaytext !== "" || maxchars)) {
150
151
  debouncedCharLengthUpdate(charLength);
151
152
  }
152
153
  },
153
- [limitdisplaytext, debouncedCharLengthUpdate]
154
+ [limitdisplaytext, maxchars, debouncedCharLengthUpdate]
155
+ );
156
+ const characterCountText = useMemo(
157
+ () => maxchars ? resolveCharacterCountText(maxchars, displayValue, limitdisplaytext) : void 0,
158
+ [maxchars, displayValue, limitdisplaytext]
154
159
  );
155
160
  const handleInputChange = useCallback((event) => {
156
161
  var _a;
@@ -273,7 +278,7 @@ const WmTextarea = memo(
273
278
  ),
274
279
  style: styles,
275
280
  "aria-readonly": readonly,
276
- helperText: maxchars ? limitdisplaytext.replaceAll("undefined", `${(displayValue == null ? void 0 : displayValue.length) || 0}`) : void 0,
281
+ helperText: characterCountText,
277
282
  slotProps: {
278
283
  htmlInput: {
279
284
  type: "textarea",
@@ -0,0 +1 @@
1
+ export declare const resolveCharacterCountText: (maxchars: number, displayValue: string, limitdisplaytext: string) => string;
@@ -0,0 +1,17 @@
1
+ const resolveCharacterCountText = (maxchars, displayValue, limitdisplaytext) => {
2
+ var _a;
3
+ const currentLength = (_a = displayValue == null ? void 0 : displayValue.length) != null ? _a : 0;
4
+ if (!limitdisplaytext) {
5
+ return `${currentLength}/${maxchars}`;
6
+ }
7
+ if (/left out of/i.test(limitdisplaytext)) {
8
+ return `${Math.max(maxchars - currentLength, 0)} characters left out of ${maxchars}`;
9
+ }
10
+ if (/filled out of/i.test(limitdisplaytext)) {
11
+ return `${currentLength} characters filled out of ${maxchars}`;
12
+ }
13
+ return `${currentLength}/${maxchars}`;
14
+ };
15
+ export {
16
+ resolveCharacterCountText
17
+ };
@@ -60,6 +60,7 @@ declare const WithForm: React.NamedExoticComponent<import("../../data/form/form-
60
60
  prefabName?: string;
61
61
  loading?: boolean;
62
62
  showSkeleton?: boolean;
63
+ widget?: string;
63
64
  }>;
64
65
  /**
65
66
  * The WmUpload component provides a file upload input for form fields with blob support.
@@ -142,5 +143,6 @@ declare const _default: React.ComponentType<{
142
143
  prefabName?: string;
143
144
  loading?: boolean;
144
145
  showSkeleton?: boolean;
146
+ widget?: string;
145
147
  }>;
146
148
  export default _default;
@@ -3,6 +3,9 @@ export declare const WmNavbar: import("react").MemoExoticComponent<(props: BaseP
3
3
  title?: string;
4
4
  brandHref?: string;
5
5
  showToggle?: boolean;
6
+ menuiconclass?: string;
7
+ menuiconurl?: string;
8
+ imgsrc?: string;
6
9
  }) => import("react/jsx-runtime").JSX.Element>;
7
10
  /**
8
11
  * The WmNavbar component renders a top navigation bar with brand, toggle, and child nav items.
@@ -65,8 +68,12 @@ declare const _default: import("react").MemoExoticComponent<import("react").Comp
65
68
  prefabName?: string;
66
69
  loading?: boolean;
67
70
  showSkeleton?: boolean;
71
+ widget?: string;
68
72
  title?: string;
69
73
  brandHref?: string;
70
74
  showToggle?: boolean;
75
+ menuiconclass?: string;
76
+ menuiconurl?: string;
77
+ imgsrc?: string;
71
78
  }>>;
72
79
  export default _default;
@@ -38,7 +38,7 @@ import Link from "@mui/material/Link";
38
38
  import {
39
39
  withBaseWrapper
40
40
  } from "../../higherOrder/withBaseWrapper";
41
- import { WmButton } from "../form/button";
41
+ import { WmAppIcon } from "../common/WmAppIcon";
42
42
  import { removeInvalidAttributes } from "../../utils/attr";
43
43
  const DEFAULT_CLASS = "navbar navbar-default app-navbar";
44
44
  const WmNavbar = memo(
@@ -51,6 +51,8 @@ const WmNavbar = memo(
51
51
  title,
52
52
  brandHref = "#",
53
53
  showToggle = true,
54
+ menuiconclass = "wi wi-more-vert",
55
+ menuiconurl,
54
56
  listener
55
57
  } = _a, restProps = __objRest(_a, [
56
58
  "className",
@@ -60,6 +62,8 @@ const WmNavbar = memo(
60
62
  "title",
61
63
  "brandHref",
62
64
  "showToggle",
65
+ "menuiconclass",
66
+ "menuiconurl",
63
67
  "listener"
64
68
  ]);
65
69
  const [isCollapsed, setIsCollapsed] = useState(true);
@@ -83,16 +87,26 @@ const WmNavbar = memo(
83
87
  }, removeInvalidAttributes(restProps)), {
84
88
  children: /* @__PURE__ */ jsxs(Box, { component: "div", className: "container-fluid", children: [
85
89
  /* @__PURE__ */ jsxs(Box, { component: "div", className: "navbar-header", children: [
86
- showToggle && /* @__PURE__ */ jsx(
87
- WmButton,
90
+ showToggle && /* @__PURE__ */ jsxs(
91
+ "button",
88
92
  {
89
- name: "navbar-toggle",
90
93
  type: "button",
91
94
  className: clsx("btn-transparent navbar-toggle", { collapsed: isCollapsed }),
92
95
  onClick: handleToggle,
93
- arialabel: "Toggle navigation",
94
- iconclass: "wi wi-more-vert",
95
- listener
96
+ "aria-label": "Toggle navigation",
97
+ "aria-expanded": !isCollapsed,
98
+ children: [
99
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle navigation" }),
100
+ /* @__PURE__ */ jsx(
101
+ WmAppIcon,
102
+ {
103
+ iconclass: menuiconclass,
104
+ iconurl: menuiconurl,
105
+ prefabName: props.prefabName,
106
+ alt: "Menu icon"
107
+ }
108
+ )
109
+ ]
96
110
  }
97
111
  ),
98
112
  title && /* @__PURE__ */ jsx(Link, { className: "navbar-brand", href: brandHref, underline: "none", children: /* @__PURE__ */ jsx("span", { className: "title", children: title }) })
@@ -88,5 +88,6 @@ declare const _default: import("react").MemoExoticComponent<import("react").Comp
88
88
  prefabName?: string;
89
89
  loading?: boolean;
90
90
  showSkeleton?: boolean;
91
+ widget?: string;
91
92
  }>>;
92
93
  export default _default;
@@ -61,5 +61,6 @@ declare const _default: import("react").MemoExoticComponent<import("react").Comp
61
61
  prefabName?: string;
62
62
  loading?: boolean;
63
63
  showSkeleton?: boolean;
64
+ widget?: string;
64
65
  }>>;
65
66
  export default _default;
@@ -64,5 +64,6 @@ declare const _default: React.ComponentType<{
64
64
  prefabName?: string;
65
65
  loading?: boolean;
66
66
  showSkeleton?: boolean;
67
+ widget?: string;
67
68
  }>;
68
69
  export default _default;
@@ -30,10 +30,10 @@ declare const _default: React.ComponentType<{
30
30
  loggedInUser?: import("../../../store/slices/authSlice").LoggedInUserConfig | null;
31
31
  type?: "button" | "anchor";
32
32
  prefabName?: string;
33
+ caption?: string;
33
34
  key?: string;
34
35
  loading?: boolean;
35
36
  id?: string;
36
- caption?: string;
37
37
  ref?: React.RefObject<HTMLElement> | React.RefObject<null>;
38
38
  "data-widget-id"?: string;
39
39
  datavalue?: any;
@@ -75,8 +75,10 @@ declare const _default: React.ComponentType<{
75
75
  updateon?: string;
76
76
  dataset?: any;
77
77
  showSkeleton?: boolean;
78
+ widget?: string;
78
79
  orderby?: string;
79
80
  iconclass?: string;
81
+ iconurl?: string;
80
82
  onSelect?: ($event: React.MouseEvent<HTMLElement>, widget: any, $item: any) => void;
81
83
  shortcutkey?: string;
82
84
  iconposition?: string;
@@ -36,6 +36,7 @@ import Box from "@mui/material/Box";
36
36
  import Button from "@mui/material/Button";
37
37
  import Tooltip from "@mui/material/Tooltip";
38
38
  import { withBaseWrapper } from "../../../higherOrder/withBaseWrapper";
39
+ import { WmAppIcon } from "../../common/WmAppIcon";
39
40
  import { transformDataset } from "../../../utils/transformedDataset-utils";
40
41
  import {
41
42
  POSITION,
@@ -82,6 +83,7 @@ const WmMenu = memo((props) => {
82
83
  menuclass,
83
84
  linktarget = "_self",
84
85
  iconclass,
86
+ iconurl,
85
87
  type = "button",
86
88
  animateitems,
87
89
  disableMenuContext = false,
@@ -130,6 +132,7 @@ const WmMenu = memo((props) => {
130
132
  "menuclass",
131
133
  "linktarget",
132
134
  "iconclass",
135
+ "iconurl",
133
136
  "type",
134
137
  "animateitems",
135
138
  "disableMenuContext",
@@ -389,7 +392,7 @@ const WmMenu = memo((props) => {
389
392
  icon: ((_d = item.dataObject) == null ? void 0 : _d.icon) || icon,
390
393
  link,
391
394
  target: (_e = item.dataObject) == null ? void 0 : _e.target
392
- }), item == null ? void 0 : item.value);
395
+ }), typeof (item == null ? void 0 : item.value) === "object" && (item == null ? void 0 : item.value) !== null ? item.value : {});
393
396
  if (onSelect) {
394
397
  onSelect(event, props, simplifiedItem);
395
398
  }
@@ -1009,7 +1012,15 @@ const WmMenu = memo((props) => {
1009
1012
  }
1010
1013
  }, removeInvalidAttributes(restProps)), {
1011
1014
  children: [
1012
- iconclass && /* @__PURE__ */ jsx("i", { className: clsx("app-icon", iconclass), "aria-hidden": "true" }),
1015
+ (iconclass || iconurl) && /* @__PURE__ */ jsx(
1016
+ WmAppIcon,
1017
+ {
1018
+ iconclass,
1019
+ iconurl,
1020
+ prefabName: props.prefabName,
1021
+ alt: "Menu icon"
1022
+ }
1023
+ ),
1013
1024
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: `${caption} ${(_c = listener == null ? void 0 : listener.appLocale) == null ? void 0 : _c.LABEL_ICON}` }),
1014
1025
  /* @__PURE__ */ jsx("span", { className: "anchor-caption", children: caption || "" }),
1015
1026
  /* @__PURE__ */ jsx(
@@ -1028,7 +1039,6 @@ const WmMenu = memo((props) => {
1028
1039
  __spreadProps(__spreadValues({
1029
1040
  className: clsx(
1030
1041
  "btn dropdown-toggle",
1031
- `icon-position-${iconposition}`,
1032
1042
  "app-button",
1033
1043
  menuclass,
1034
1044
  `menu-layout-${menulayout}`,
@@ -1050,7 +1060,15 @@ const WmMenu = memo((props) => {
1050
1060
  }, buttonStyles), menuContainerStyles)
1051
1061
  }, removeInvalidAttributes(restProps)), {
1052
1062
  children: [
1053
- iconclass && /* @__PURE__ */ jsx("i", { className: clsx("app-icon", iconclass), "aria-hidden": "true" }),
1063
+ (iconclass || iconurl) && /* @__PURE__ */ jsx(
1064
+ WmAppIcon,
1065
+ {
1066
+ iconclass,
1067
+ iconurl,
1068
+ prefabName: props.prefabName,
1069
+ alt: "Menu icon"
1070
+ }
1071
+ ),
1054
1072
  /* @__PURE__ */ jsx("span", { className: "btn-caption", children: caption }),
1055
1073
  /* @__PURE__ */ jsx(
1056
1074
  "span",