@pie-lib/config-ui 13.1.0-beta.7 → 14.0.0-next.35

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 (233) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +11 -0
  2. package/dist/alert-dialog.d.ts +44 -0
  3. package/dist/alert-dialog.js +47 -0
  4. package/dist/checkbox.d.ts +34 -0
  5. package/dist/checkbox.js +57 -0
  6. package/dist/choice-configuration/feedback-menu.d.ts +32 -0
  7. package/dist/choice-configuration/feedback-menu.js +85 -0
  8. package/dist/choice-configuration/index.d.ts +62 -0
  9. package/dist/choice-configuration/index.js +240 -0
  10. package/dist/choice-utils.d.ts +21 -0
  11. package/dist/choice-utils.js +15 -0
  12. package/dist/feedback-config/feedback-selector.d.ts +33 -0
  13. package/dist/feedback-config/feedback-selector.js +92 -0
  14. package/dist/feedback-config/group.d.ts +21 -0
  15. package/dist/feedback-config/group.js +33 -0
  16. package/dist/feedback-config/index.d.ts +48 -0
  17. package/dist/feedback-config/index.js +96 -0
  18. package/dist/form-section.d.ts +25 -0
  19. package/dist/form-section.js +25 -0
  20. package/dist/fraction-to-number.d.ts +7 -0
  21. package/dist/fraction-to-number.js +9 -0
  22. package/dist/help.d.ts +41 -0
  23. package/dist/help.js +62 -0
  24. package/dist/index.d.ts +31 -0
  25. package/dist/index.js +34 -0
  26. package/dist/input.d.ts +29 -0
  27. package/dist/input.js +65 -0
  28. package/dist/inputs.d.ts +63 -0
  29. package/dist/inputs.js +70 -0
  30. package/dist/langs.d.ts +41 -0
  31. package/dist/langs.js +76 -0
  32. package/dist/layout/config-layout.d.ts +10 -0
  33. package/dist/layout/config-layout.js +75 -0
  34. package/dist/layout/index.d.ts +11 -0
  35. package/dist/layout/index.js +10 -0
  36. package/dist/layout/layout-contents.d.ts +21 -0
  37. package/dist/layout/layout-contents.js +70 -0
  38. package/dist/layout/settings-box.d.ts +19 -0
  39. package/dist/layout/settings-box.js +32 -0
  40. package/dist/mui-box/index.d.ts +21 -0
  41. package/dist/mui-box/index.js +47 -0
  42. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  43. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +7 -0
  44. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  45. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +8 -0
  46. package/dist/node_modules/.bun/react-measure@2.5.2_6dbf9a050bc9aadb/node_modules/react-measure/dist/index.esm.js +122 -0
  47. package/dist/node_modules/.bun/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +276 -0
  48. package/dist/number-text-field-custom.d.ts +51 -0
  49. package/dist/number-text-field-custom.js +192 -0
  50. package/dist/number-text-field.d.ts +47 -0
  51. package/dist/number-text-field.js +122 -0
  52. package/dist/radio-with-label.d.ts +25 -0
  53. package/dist/radio-with-label.js +27 -0
  54. package/dist/settings/display-size.d.ts +26 -0
  55. package/dist/settings/display-size.js +45 -0
  56. package/dist/settings/index.d.ts +45 -0
  57. package/dist/settings/index.js +63 -0
  58. package/dist/settings/panel.d.ts +27 -0
  59. package/dist/settings/panel.js +201 -0
  60. package/dist/settings/settings-radio-label.d.ts +25 -0
  61. package/dist/settings/settings-radio-label.js +29 -0
  62. package/dist/settings/toggle.d.ts +25 -0
  63. package/dist/settings/toggle.js +33 -0
  64. package/dist/tabs/index.d.ts +22 -0
  65. package/dist/tabs/index.js +39 -0
  66. package/dist/tags-input/index.d.ts +21 -0
  67. package/dist/tags-input/index.js +83 -0
  68. package/dist/two-choice.d.ts +43 -0
  69. package/dist/two-choice.js +79 -0
  70. package/dist/with-stateful-model.d.ts +42 -0
  71. package/dist/with-stateful-model.js +32 -0
  72. package/package.json +31 -19
  73. package/CHANGELOG.json +0 -32
  74. package/CHANGELOG.md +0 -2419
  75. package/lib/__tests__/alert-dialog.test.js +0 -262
  76. package/lib/__tests__/alert-dialog.test.js.map +0 -1
  77. package/lib/__tests__/checkbox.test.js +0 -227
  78. package/lib/__tests__/checkbox.test.js.map +0 -1
  79. package/lib/__tests__/choice-utils.test.js +0 -14
  80. package/lib/__tests__/choice-utils.test.js.map +0 -1
  81. package/lib/__tests__/form-section.test.js +0 -252
  82. package/lib/__tests__/form-section.test.js.map +0 -1
  83. package/lib/__tests__/help.test.js +0 -270
  84. package/lib/__tests__/help.test.js.map +0 -1
  85. package/lib/__tests__/input.test.js +0 -268
  86. package/lib/__tests__/input.test.js.map +0 -1
  87. package/lib/__tests__/langs.test.js +0 -541
  88. package/lib/__tests__/langs.test.js.map +0 -1
  89. package/lib/__tests__/number-text-field-custom.test.js +0 -362
  90. package/lib/__tests__/number-text-field-custom.test.js.map +0 -1
  91. package/lib/__tests__/number-text-field.test.js +0 -421
  92. package/lib/__tests__/number-text-field.test.js.map +0 -1
  93. package/lib/__tests__/radio-with-label.test.js +0 -233
  94. package/lib/__tests__/radio-with-label.test.js.map +0 -1
  95. package/lib/__tests__/settings-panel.test.js +0 -184
  96. package/lib/__tests__/settings-panel.test.js.map +0 -1
  97. package/lib/__tests__/settings.test.js +0 -653
  98. package/lib/__tests__/settings.test.js.map +0 -1
  99. package/lib/__tests__/tabs.test.js +0 -211
  100. package/lib/__tests__/tabs.test.js.map +0 -1
  101. package/lib/__tests__/two-choice.test.js +0 -124
  102. package/lib/__tests__/two-choice.test.js.map +0 -1
  103. package/lib/__tests__/with-stateful-model.test.js +0 -221
  104. package/lib/__tests__/with-stateful-model.test.js.map +0 -1
  105. package/lib/alert-dialog.js +0 -68
  106. package/lib/alert-dialog.js.map +0 -1
  107. package/lib/checkbox.js +0 -84
  108. package/lib/checkbox.js.map +0 -1
  109. package/lib/choice-configuration/__tests__/feedback-menu.test.js +0 -287
  110. package/lib/choice-configuration/__tests__/feedback-menu.test.js.map +0 -1
  111. package/lib/choice-configuration/__tests__/index.test.js +0 -253
  112. package/lib/choice-configuration/__tests__/index.test.js.map +0 -1
  113. package/lib/choice-configuration/feedback-menu.js +0 -129
  114. package/lib/choice-configuration/feedback-menu.js.map +0 -1
  115. package/lib/choice-configuration/index.js +0 -381
  116. package/lib/choice-configuration/index.js.map +0 -1
  117. package/lib/choice-utils.js +0 -42
  118. package/lib/choice-utils.js.map +0 -1
  119. package/lib/feedback-config/__tests__/feedback-config.test.js +0 -201
  120. package/lib/feedback-config/__tests__/feedback-config.test.js.map +0 -1
  121. package/lib/feedback-config/__tests__/feedback-selector.test.js +0 -177
  122. package/lib/feedback-config/__tests__/feedback-selector.test.js.map +0 -1
  123. package/lib/feedback-config/feedback-selector.js +0 -155
  124. package/lib/feedback-config/feedback-selector.js.map +0 -1
  125. package/lib/feedback-config/group.js +0 -61
  126. package/lib/feedback-config/group.js.map +0 -1
  127. package/lib/feedback-config/index.js +0 -146
  128. package/lib/feedback-config/index.js.map +0 -1
  129. package/lib/form-section.js +0 -44
  130. package/lib/form-section.js.map +0 -1
  131. package/lib/help.js +0 -106
  132. package/lib/help.js.map +0 -1
  133. package/lib/index.js +0 -186
  134. package/lib/index.js.map +0 -1
  135. package/lib/input.js +0 -106
  136. package/lib/input.js.map +0 -1
  137. package/lib/inputs.js +0 -105
  138. package/lib/inputs.js.map +0 -1
  139. package/lib/langs.js +0 -136
  140. package/lib/langs.js.map +0 -1
  141. package/lib/layout/__tests__/config.layout.test.js +0 -70
  142. package/lib/layout/__tests__/config.layout.test.js.map +0 -1
  143. package/lib/layout/__tests__/layout-content.test.js +0 -6
  144. package/lib/layout/__tests__/layout-content.test.js.map +0 -1
  145. package/lib/layout/config-layout.js +0 -137
  146. package/lib/layout/config-layout.js.map +0 -1
  147. package/lib/layout/index.js +0 -21
  148. package/lib/layout/index.js.map +0 -1
  149. package/lib/layout/layout-contents.js +0 -160
  150. package/lib/layout/layout-contents.js.map +0 -1
  151. package/lib/layout/settings-box.js +0 -57
  152. package/lib/layout/settings-box.js.map +0 -1
  153. package/lib/mui-box/index.js +0 -63
  154. package/lib/mui-box/index.js.map +0 -1
  155. package/lib/number-text-field-custom.js +0 -376
  156. package/lib/number-text-field-custom.js.map +0 -1
  157. package/lib/number-text-field.js +0 -229
  158. package/lib/number-text-field.js.map +0 -1
  159. package/lib/radio-with-label.js +0 -48
  160. package/lib/radio-with-label.js.map +0 -1
  161. package/lib/settings/display-size.js +0 -61
  162. package/lib/settings/display-size.js.map +0 -1
  163. package/lib/settings/index.js +0 -110
  164. package/lib/settings/index.js.map +0 -1
  165. package/lib/settings/panel.js +0 -392
  166. package/lib/settings/panel.js.map +0 -1
  167. package/lib/settings/settings-radio-label.js +0 -51
  168. package/lib/settings/settings-radio-label.js.map +0 -1
  169. package/lib/settings/toggle.js +0 -63
  170. package/lib/settings/toggle.js.map +0 -1
  171. package/lib/tabs/index.js +0 -75
  172. package/lib/tabs/index.js.map +0 -1
  173. package/lib/tags-input/__tests__/index.test.js +0 -183
  174. package/lib/tags-input/__tests__/index.test.js.map +0 -1
  175. package/lib/tags-input/index.js +0 -149
  176. package/lib/tags-input/index.js.map +0 -1
  177. package/lib/two-choice.js +0 -136
  178. package/lib/two-choice.js.map +0 -1
  179. package/lib/with-stateful-model.js +0 -61
  180. package/lib/with-stateful-model.js.map +0 -1
  181. package/src/__tests__/alert-dialog.test.jsx +0 -183
  182. package/src/__tests__/checkbox.test.jsx +0 -152
  183. package/src/__tests__/choice-utils.test.js +0 -12
  184. package/src/__tests__/form-section.test.jsx +0 -328
  185. package/src/__tests__/help.test.jsx +0 -184
  186. package/src/__tests__/input.test.jsx +0 -156
  187. package/src/__tests__/langs.test.jsx +0 -376
  188. package/src/__tests__/number-text-field-custom.test.jsx +0 -255
  189. package/src/__tests__/number-text-field.test.jsx +0 -263
  190. package/src/__tests__/radio-with-label.test.jsx +0 -155
  191. package/src/__tests__/settings-panel.test.js +0 -187
  192. package/src/__tests__/settings.test.jsx +0 -452
  193. package/src/__tests__/tabs.test.jsx +0 -188
  194. package/src/__tests__/two-choice.test.js +0 -110
  195. package/src/__tests__/with-stateful-model.test.jsx +0 -139
  196. package/src/alert-dialog.jsx +0 -75
  197. package/src/checkbox.jsx +0 -61
  198. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +0 -151
  199. package/src/choice-configuration/__tests__/index.test.jsx +0 -234
  200. package/src/choice-configuration/feedback-menu.jsx +0 -96
  201. package/src/choice-configuration/index.jsx +0 -357
  202. package/src/choice-utils.js +0 -30
  203. package/src/feedback-config/__tests__/feedback-config.test.jsx +0 -141
  204. package/src/feedback-config/__tests__/feedback-selector.test.jsx +0 -97
  205. package/src/feedback-config/feedback-selector.jsx +0 -112
  206. package/src/feedback-config/group.jsx +0 -51
  207. package/src/feedback-config/index.jsx +0 -111
  208. package/src/form-section.jsx +0 -31
  209. package/src/help.jsx +0 -79
  210. package/src/index.js +0 -55
  211. package/src/input.jsx +0 -72
  212. package/src/inputs.jsx +0 -69
  213. package/src/langs.jsx +0 -111
  214. package/src/layout/__tests__/config.layout.test.jsx +0 -59
  215. package/src/layout/__tests__/layout-content.test.jsx +0 -3
  216. package/src/layout/config-layout.jsx +0 -103
  217. package/src/layout/index.js +0 -4
  218. package/src/layout/layout-contents.jsx +0 -117
  219. package/src/layout/settings-box.jsx +0 -32
  220. package/src/mui-box/index.jsx +0 -56
  221. package/src/number-text-field-custom.jsx +0 -333
  222. package/src/number-text-field.jsx +0 -215
  223. package/src/radio-with-label.jsx +0 -30
  224. package/src/settings/display-size.jsx +0 -53
  225. package/src/settings/index.js +0 -83
  226. package/src/settings/panel.jsx +0 -333
  227. package/src/settings/settings-radio-label.jsx +0 -32
  228. package/src/settings/toggle.jsx +0 -46
  229. package/src/tabs/index.jsx +0 -47
  230. package/src/tags-input/__tests__/index.test.jsx +0 -113
  231. package/src/tags-input/index.jsx +0 -116
  232. package/src/two-choice.jsx +0 -90
  233. package/src/with-stateful-model.jsx +0 -36
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _propTypes = _interopRequireDefault(require("prop-types"));
16
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
17
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
18
- var withStatefulModel = function withStatefulModel(Component) {
19
- var Stateful = /*#__PURE__*/function (_React$Component) {
20
- function Stateful(props) {
21
- var _this;
22
- (0, _classCallCheck2["default"])(this, Stateful);
23
- _this = _callSuper(this, Stateful, [props]);
24
- (0, _defineProperty2["default"])(_this, "onChange", function (model) {
25
- _this.setState({
26
- model: model
27
- }, function () {
28
- _this.props.onChange(_this.state.model);
29
- });
30
- });
31
- _this.state = {
32
- model: props.model
33
- };
34
- return _this;
35
- }
36
- (0, _inherits2["default"])(Stateful, _React$Component);
37
- return (0, _createClass2["default"])(Stateful, [{
38
- key: "UNSAFE_componentWillReceiveProps",
39
- value: function UNSAFE_componentWillReceiveProps(props) {
40
- this.setState({
41
- model: props.model
42
- });
43
- }
44
- }, {
45
- key: "render",
46
- value: function render() {
47
- return /*#__PURE__*/_react["default"].createElement(Component, {
48
- model: this.state.model,
49
- onChange: this.onChange
50
- });
51
- }
52
- }]);
53
- }(_react["default"].Component);
54
- (0, _defineProperty2["default"])(Stateful, "propTypes", {
55
- model: _propTypes["default"].object.isRequired,
56
- onChange: _propTypes["default"].func.isRequired
57
- });
58
- return Stateful;
59
- };
60
- var _default = exports["default"] = withStatefulModel;
61
- //# sourceMappingURL=with-stateful-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"with-stateful-model.js","names":["_react","_interopRequireDefault","require","_propTypes","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","withStatefulModel","Component","Stateful","_React$Component","props","_this","_classCallCheck2","_defineProperty2","model","setState","onChange","state","_inherits2","_createClass2","key","value","UNSAFE_componentWillReceiveProps","render","createElement","React","PropTypes","object","isRequired","func","_default","exports"],"sources":["../src/with-stateful-model.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst withStatefulModel = (Component) => {\n class Stateful extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n model: props.model,\n };\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n this.setState({ model: props.model });\n }\n\n onChange = (model) => {\n this.setState({ model }, () => {\n this.props.onChange(this.state.model);\n });\n };\n\n render() {\n return <Component model={this.state.model} onChange={this.onChange} />;\n }\n }\n\n return Stateful;\n};\n\nexport default withStatefulModel;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAmC,SAAAE,WAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,WAAAD,CAAA,OAAAE,gBAAA,aAAAF,CAAA,OAAAG,2BAAA,aAAAJ,CAAA,EAAAK,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAN,CAAA,EAAAC,CAAA,YAAAC,gBAAA,aAAAH,CAAA,EAAAQ,WAAA,IAAAP,CAAA,CAAAQ,KAAA,CAAAT,CAAA,EAAAE,CAAA;AAAA,SAAAG,0BAAA,cAAAL,CAAA,IAAAU,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAP,OAAA,CAAAC,SAAA,CAAAG,OAAA,iCAAAV,CAAA,aAAAK,yBAAA,YAAAA,0BAAA,aAAAL,CAAA;AAEnC,IAAMc,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,SAAS,EAAK;EAAA,IACjCC,QAAQ,0BAAAC,gBAAA;IAMZ,SAAAD,SAAYE,KAAK,EAAE;MAAA,IAAAC,KAAA;MAAA,IAAAC,gBAAA,mBAAAJ,QAAA;MACjBG,KAAA,GAAApB,UAAA,OAAAiB,QAAA,GAAME,KAAK;MAAE,IAAAG,gBAAA,aAAAF,KAAA,cAUJ,UAACG,KAAK,EAAK;QACpBH,KAAA,CAAKI,QAAQ,CAAC;UAAED,KAAK,EAALA;QAAM,CAAC,EAAE,YAAM;UAC7BH,KAAA,CAAKD,KAAK,CAACM,QAAQ,CAACL,KAAA,CAAKM,KAAK,CAACH,KAAK,CAAC;QACvC,CAAC,CAAC;MACJ,CAAC;MAbCH,KAAA,CAAKM,KAAK,GAAG;QACXH,KAAK,EAAEJ,KAAK,CAACI;MACf,CAAC;MAAC,OAAAH,KAAA;IACJ;IAAC,IAAAO,UAAA,aAAAV,QAAA,EAAAC,gBAAA;IAAA,WAAAU,aAAA,aAAAX,QAAA;MAAAY,GAAA;MAAAC,KAAA,EAED,SAAAC,gCAAgCA,CAACZ,KAAK,EAAE;QACtC,IAAI,CAACK,QAAQ,CAAC;UAAED,KAAK,EAAEJ,KAAK,CAACI;QAAM,CAAC,CAAC;MACvC;IAAC;MAAAM,GAAA;MAAAC,KAAA,EAQD,SAAAE,MAAMA,CAAA,EAAG;QACP,oBAAOpC,MAAA,YAAAqC,aAAA,CAACjB,SAAS;UAACO,KAAK,EAAE,IAAI,CAACG,KAAK,CAACH,KAAM;UAACE,QAAQ,EAAE,IAAI,CAACA;QAAS,CAAE,CAAC;MACxE;IAAC;EAAA,EAzBoBS,iBAAK,CAAClB,SAAS;EAAA,IAAAM,gBAAA,aAAhCL,QAAQ,eACO;IACjBM,KAAK,EAAEY,qBAAS,CAACC,MAAM,CAACC,UAAU;IAClCZ,QAAQ,EAAEU,qBAAS,CAACG,IAAI,CAACD;EAC3B,CAAC;EAwBH,OAAOpB,QAAQ;AACjB,CAAC;AAAC,IAAAsB,QAAA,GAAAC,OAAA,cAEazB,iBAAiB","ignoreList":[]}
@@ -1,183 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import AlertDialog from '../alert-dialog';
5
-
6
- describe('AlertDialog Component', () => {
7
- const onClose = jest.fn();
8
- const onConfirm = jest.fn();
9
-
10
- beforeEach(() => {
11
- onClose.mockClear();
12
- onConfirm.mockClear();
13
- });
14
-
15
- describe('Rendering when open', () => {
16
- it('should render dialog when open is true', () => {
17
- render(<AlertDialog open={true} title="Confirm" text="Are you sure?" onClose={onClose} onConfirm={onConfirm} />);
18
-
19
- expect(screen.getByText('Confirm')).toBeInTheDocument();
20
- expect(screen.getByText('Are you sure?')).toBeInTheDocument();
21
- });
22
-
23
- it('should not render dialog when open is false', () => {
24
- const { container } = render(
25
- <AlertDialog open={false} title="Confirm" text="Are you sure?" onClose={onClose} onConfirm={onConfirm} />,
26
- );
27
-
28
- const dialogs = container.querySelectorAll('[role="dialog"]');
29
- expect(dialogs.length).toBe(0);
30
- });
31
- });
32
-
33
- describe('Title and Text', () => {
34
- it('should handle both title and text', () => {
35
- render(
36
- <AlertDialog
37
- open={true}
38
- title="Important"
39
- text="This is an important message"
40
- onClose={onClose}
41
- onConfirm={onConfirm}
42
- />,
43
- );
44
-
45
- expect(screen.getByText('Important')).toBeInTheDocument();
46
- expect(screen.getByText('This is an important message')).toBeInTheDocument();
47
- });
48
-
49
- it('should handle text as object', () => {
50
- const textObj = <div>Rich text content</div>;
51
- render(<AlertDialog open={true} title="Rich Content" text={textObj} onClose={onClose} onConfirm={onConfirm} />);
52
-
53
- expect(screen.getByText('Rich text content')).toBeInTheDocument();
54
- });
55
- });
56
-
57
- describe('Buttons', () => {
58
- it('should render close button when onClose is provided', () => {
59
- render(<AlertDialog open={true} title="Dialog" text="Content" onClose={onClose} onConfirm={onConfirm} />);
60
-
61
- expect(screen.getByRole('button', { name: 'CANCEL' })).toBeInTheDocument();
62
- });
63
-
64
- it('should render confirm button when onConfirm is provided', () => {
65
- render(<AlertDialog open={true} title="Dialog" text="Content" onClose={onClose} onConfirm={onConfirm} />);
66
-
67
- expect(screen.getByRole('button', { name: 'OK' })).toBeInTheDocument();
68
- });
69
-
70
- it('should have default button text', () => {
71
- render(<AlertDialog open={true} title="Dialog" text="Content" onClose={onClose} onConfirm={onConfirm} />);
72
-
73
- expect(screen.getByRole('button', { name: 'CANCEL' })).toBeInTheDocument();
74
- expect(screen.getByRole('button', { name: 'OK' })).toBeInTheDocument();
75
- });
76
- });
77
-
78
- describe('User interactions', () => {
79
- it('should call onClose when close button is clicked', async () => {
80
- const user = userEvent.setup();
81
- render(<AlertDialog open={true} title="Dialog" text="Content" onClose={onClose} onConfirm={onConfirm} />);
82
-
83
- const closeButton = screen.getByRole('button', { name: 'CANCEL' });
84
- await user.click(closeButton);
85
-
86
- expect(onClose).toHaveBeenCalled();
87
- });
88
-
89
- it('should call onConfirm when confirm button is clicked', async () => {
90
- const user = userEvent.setup();
91
- render(<AlertDialog open={true} title="Dialog" text="Content" onClose={onClose} onConfirm={onConfirm} />);
92
-
93
- const confirmButton = screen.getByRole('button', { name: 'OK' });
94
- await user.click(confirmButton);
95
-
96
- expect(onConfirm).toHaveBeenCalled();
97
- });
98
- });
99
-
100
- describe('Focus management', () => {
101
- it('should have autoFocus on confirm button by default', () => {
102
- render(<AlertDialog open={true} title="Dialog" text="Content" onClose={onClose} onConfirm={onConfirm} />);
103
-
104
- const confirmButton = screen.getByRole('button', { name: 'OK' });
105
- expect(confirmButton).toBeInTheDocument();
106
- });
107
-
108
- it('should disable auto focus when disableAutoFocus is true', () => {
109
- render(
110
- <AlertDialog
111
- open={true}
112
- title="Dialog"
113
- text="Content"
114
- onClose={onClose}
115
- onConfirm={onConfirm}
116
- disableAutoFocus={true}
117
- />,
118
- );
119
-
120
- expect(screen.getByText('Dialog')).toBeInTheDocument();
121
- });
122
-
123
- it('should disable enforce focus when disableEnforceFocus is true', () => {
124
- render(
125
- <AlertDialog
126
- open={true}
127
- title="Dialog"
128
- text="Content"
129
- onClose={onClose}
130
- onConfirm={onConfirm}
131
- disableEnforceFocus={true}
132
- />,
133
- );
134
-
135
- expect(screen.getByText('Dialog')).toBeInTheDocument();
136
- });
137
-
138
- it('should disable restore focus when disableRestoreFocus is true', () => {
139
- render(
140
- <AlertDialog
141
- open={true}
142
- title="Dialog"
143
- text="Content"
144
- onClose={onClose}
145
- onConfirm={onConfirm}
146
- disableRestoreFocus={true}
147
- />,
148
- );
149
-
150
- expect(screen.getByText('Dialog')).toBeInTheDocument();
151
- });
152
- });
153
-
154
- describe('Edge cases', () => {
155
- it('should handle very long title', () => {
156
- const longTitle = 'This is a very long title that should wrap properly in the dialog';
157
- render(<AlertDialog open={true} title={longTitle} text="Content" onClose={onClose} onConfirm={onConfirm} />);
158
-
159
- expect(screen.getByText(longTitle)).toBeInTheDocument();
160
- });
161
-
162
- it('should handle very long text', () => {
163
- const longText = 'This is a very long text that should wrap properly in the dialog. '.repeat(10);
164
- render(<AlertDialog open={true} title="Dialog" text={longText} onClose={onClose} onConfirm={onConfirm} />);
165
-
166
- expect(screen.getByText(new RegExp(longText.slice(0, 50)))).toBeInTheDocument();
167
- });
168
-
169
- it('should handle only close callback', () => {
170
- render(<AlertDialog open={true} title="Close Only" text="Content" onClose={onClose} />);
171
-
172
- expect(screen.getByRole('button', { name: 'CANCEL' })).toBeInTheDocument();
173
- expect(screen.queryByRole('button', { name: 'OK' })).not.toBeInTheDocument();
174
- });
175
-
176
- it('should handle only confirm callback', () => {
177
- render(<AlertDialog open={true} title="Confirm Only" text="Content" onConfirm={onConfirm} />);
178
-
179
- expect(screen.getByRole('button', { name: 'OK' })).toBeInTheDocument();
180
- expect(screen.queryByRole('button', { name: 'CANCEL' })).not.toBeInTheDocument();
181
- });
182
- });
183
- });
@@ -1,152 +0,0 @@
1
- import React from 'react';
2
- import { render, screen } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import Checkbox from '../checkbox';
5
-
6
- describe('Checkbox Component', () => {
7
- const onChange = jest.fn();
8
-
9
- beforeEach(() => {
10
- onChange.mockClear();
11
- });
12
-
13
- describe('Rendering', () => {
14
- it('should render checkbox with label', () => {
15
- render(<Checkbox checked={false} onChange={onChange} label="Accept terms" />);
16
-
17
- expect(screen.getByText('Accept terms')).toBeInTheDocument();
18
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
19
- });
20
-
21
- it('should render checkbox in checked state', () => {
22
- render(<Checkbox checked={true} onChange={onChange} label="Accept terms" />);
23
-
24
- expect(screen.getByRole('checkbox')).toBeChecked();
25
- });
26
-
27
- it('should render checkbox in unchecked state', () => {
28
- render(<Checkbox checked={false} onChange={onChange} label="Accept terms" />);
29
-
30
- expect(screen.getByRole('checkbox')).not.toBeChecked();
31
- });
32
-
33
- it('should render mini checkbox with reduced styling', () => {
34
- render(<Checkbox checked={false} onChange={onChange} label="Mini" mini={true} />);
35
-
36
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
37
- expect(screen.getByText('Mini')).toBeInTheDocument();
38
- });
39
- });
40
-
41
- describe('User interaction', () => {
42
- it('should call onChange when checkbox is clicked', async () => {
43
- const user = userEvent.setup();
44
- render(<Checkbox checked={false} onChange={onChange} label="Accept" />);
45
-
46
- const checkbox = screen.getByRole('checkbox');
47
- await user.click(checkbox);
48
-
49
- expect(onChange).toHaveBeenCalled();
50
- });
51
-
52
- it('should call onChange when label is clicked', async () => {
53
- const user = userEvent.setup();
54
- render(<Checkbox checked={false} onChange={onChange} label="Click label" />);
55
-
56
- const label = screen.getByText('Click label');
57
- await user.click(label);
58
-
59
- expect(onChange).toHaveBeenCalled();
60
- });
61
- });
62
-
63
- describe('Props', () => {
64
- it('should handle value prop', () => {
65
- render(<Checkbox checked={true} onChange={onChange} label="With value" value="option1" />);
66
-
67
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
68
- });
69
-
70
- it('should display error styling when error is true', () => {
71
- render(<Checkbox checked={false} onChange={onChange} label="Error state" error={true} />);
72
-
73
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
74
- expect(screen.getByText('Error state')).toBeInTheDocument();
75
- });
76
- });
77
-
78
- describe('Default props', () => {
79
- it('should have mini default to false', () => {
80
- const { container } = render(<Checkbox checked={true} onChange={onChange} label="Test" />);
81
-
82
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
83
- });
84
-
85
- it('should have error default to false', () => {
86
- const { container } = render(<Checkbox checked={true} onChange={onChange} label="Test" />);
87
-
88
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
89
- });
90
-
91
- it('should have value default to empty string', () => {
92
- render(<Checkbox checked={true} onChange={onChange} label="Test" />);
93
-
94
- expect(screen.getByRole('checkbox')).toBeInTheDocument();
95
- });
96
- });
97
-
98
- describe('Accessibility', () => {
99
- it('should have proper label association', () => {
100
- render(<Checkbox checked={false} onChange={onChange} label="Accessible label" />);
101
-
102
- expect(screen.getByLabelText('Accessible label')).toBeInTheDocument();
103
- });
104
-
105
- it('should be keyboard accessible', async () => {
106
- const user = userEvent.setup();
107
- render(<Checkbox checked={false} onChange={onChange} label="Keyboard test" />);
108
-
109
- const checkbox = screen.getByRole('checkbox');
110
- checkbox.focus();
111
- expect(checkbox).toHaveFocus();
112
-
113
- await user.keyboard(' ');
114
- expect(onChange).toHaveBeenCalled();
115
- });
116
- });
117
-
118
- describe('Multiple checkboxes', () => {
119
- it('should render multiple independent checkboxes', () => {
120
- const onChange1 = jest.fn();
121
- const onChange2 = jest.fn();
122
-
123
- render(
124
- <>
125
- <Checkbox checked={true} onChange={onChange1} label="Option 1" />
126
- <Checkbox checked={false} onChange={onChange2} label="Option 2" />
127
- </>,
128
- );
129
-
130
- expect(screen.getByLabelText('Option 1')).toBeChecked();
131
- expect(screen.getByLabelText('Option 2')).not.toBeChecked();
132
- });
133
-
134
- it('should handle independent onChange callbacks', async () => {
135
- const user = userEvent.setup();
136
- const onChange1 = jest.fn();
137
- const onChange2 = jest.fn();
138
-
139
- render(
140
- <>
141
- <Checkbox checked={true} onChange={onChange1} label="Option 1" />
142
- <Checkbox checked={false} onChange={onChange2} label="Option 2" />
143
- </>,
144
- );
145
-
146
- await user.click(screen.getByLabelText('Option 2'));
147
-
148
- expect(onChange2).toHaveBeenCalled();
149
- expect(onChange1).not.toHaveBeenCalled();
150
- });
151
- });
152
- });
@@ -1,12 +0,0 @@
1
- import { firstAvailableIndex } from '../choice-utils';
2
-
3
- describe('firstAvailableIndex', () => {
4
- const assert = (values, index, expected) => {
5
- it(`[${values.join(',')}], ${index} ==> ${expected}`, () => {
6
- expect(firstAvailableIndex(['0'], 0)).toEqual('1');
7
- });
8
- };
9
- assert(['0'], 0, '1');
10
- assert(['0', '1', '2'], 0, '3');
11
- assert(['0', '1', '2'], 100, '100');
12
- });