@times-design-system/components-react 1.2.1-alpha.8 → 1.3.0

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 (45) hide show
  1. package/README.md +1 -1
  2. package/dist/AdContainer/AdContainer.cjs +1 -0
  3. package/dist/AdContainer/AdContainer.cjs.map +1 -1
  4. package/dist/AdContainer/AdContainer.js +1 -0
  5. package/dist/AdContainer/AdContainer.js.map +1 -1
  6. package/dist/Button/Button.cjs +1 -1
  7. package/dist/Button/Button.js +1 -1
  8. package/dist/Button/ButtonContainer.cjs +1 -1
  9. package/dist/Button/ButtonContainer.js +1 -1
  10. package/dist/Chip/Chip.cjs +1 -1
  11. package/dist/Chip/Chip.js +1 -1
  12. package/dist/DialogBox/DialogBox.d.ts +41 -0
  13. package/dist/Divider/Divider.cjs +1 -1
  14. package/dist/Divider/Divider.js +1 -1
  15. package/dist/Flag/Flag.cjs +1 -1
  16. package/dist/Flag/Flag.js +1 -1
  17. package/dist/Icon/Icon.cjs +1 -1
  18. package/dist/Icon/Icon.js +1 -1
  19. package/dist/IconButton/IconButton.cjs +1 -1
  20. package/dist/IconButton/IconButton.js +1 -1
  21. package/dist/Input/Input.cjs +1 -1
  22. package/dist/Input/Input.js +1 -1
  23. package/dist/InputHelperMessage/InputHelperMessage.d.ts +17 -0
  24. package/dist/Link/Link.cjs +1 -1
  25. package/dist/Link/Link.js +1 -1
  26. package/dist/Tab/Tab.d.ts +44 -0
  27. package/dist/TabGroup/TabGroup.d.ts +26 -0
  28. package/dist/Text/Text.cjs +16 -14
  29. package/dist/Text/Text.cjs.map +1 -1
  30. package/dist/Text/Text.d.ts +35 -9
  31. package/dist/Text/Text.js +16 -14
  32. package/dist/Text/Text.js.map +1 -1
  33. package/dist/Toast/Toast.cjs +1 -1
  34. package/dist/Toast/Toast.js +1 -1
  35. package/dist/index.cjs +382 -5
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.js +382 -5
  38. package/dist/index.js.map +1 -1
  39. package/dist/shared/{_rollupPluginBabelHelpers-xUOatjtv.cjs → _rollupPluginBabelHelpers-B3P3Gzh9.cjs} +14 -1
  40. package/dist/shared/_rollupPluginBabelHelpers-B3P3Gzh9.cjs.map +1 -0
  41. package/dist/shared/{_rollupPluginBabelHelpers-CSWl3xs2.js → _rollupPluginBabelHelpers-BYQx3gqx.js} +14 -2
  42. package/dist/shared/{_rollupPluginBabelHelpers-CSWl3xs2.js.map → _rollupPluginBabelHelpers-BYQx3gqx.js.map} +1 -1
  43. package/dist/styles.css +4 -71
  44. package/package.json +2 -2
  45. package/dist/shared/_rollupPluginBabelHelpers-xUOatjtv.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -5,20 +5,393 @@ var IconButton_IconButton = require('./IconButton/IconButton.cjs');
5
5
  var AdContainer_AdContainer = require('./AdContainer/AdContainer.cjs');
6
6
  var Text_Text = require('./Text/Text.cjs');
7
7
  var Input_Input = require('./Input/Input.cjs');
8
+ var React = require('react');
9
+ var Icon_Icon = require('./Icon/Icon.cjs');
10
+ var cn = require('./shared/cn-CPfjOlzZ.cjs');
11
+ var styleInject_es = require('./shared/style-inject.es-DnsWrQaj.cjs');
8
12
  var Divider_Divider = require('./Divider/Divider.cjs');
9
13
  var Link_Link = require('./Link/Link.cjs');
10
14
  var Chip_Chip = require('./Chip/Chip.cjs');
15
+ var _rollupPluginBabelHelpers = require('./shared/_rollupPluginBabelHelpers-B3P3Gzh9.cjs');
11
16
  var Flag_Flag = require('./Flag/Flag.cjs');
12
17
  var Toast_Toast = require('./Toast/Toast.cjs');
13
18
  var utils_hooks = require('./utils/hooks.cjs');
14
- require('react');
15
19
  require('./Button/ButtonContainer.cjs');
16
- require('./shared/cn-CPfjOlzZ.cjs');
17
- require('./shared/style-inject.es-DnsWrQaj.cjs');
18
- require('./Icon/Icon.cjs');
19
- require('./shared/_rollupPluginBabelHelpers-xUOatjtv.cjs');
20
20
 
21
+ var css_248z$3 = ".tds-input-helper-message{align-items:center;color:var(--text-primary,#1a1a1a);display:inline-flex;gap:var(--spacing-05,8px)}.tds-input-helper-message__icon{align-items:center;display:inline-flex;flex:0 0 auto;justify-content:center}.tds-input-helper-message__text{font-family:var(--fontFamily040,sans-serif);font-size:var(--fontSize030,1rem);font-weight:var(--fontWeight040,400);line-height:var(--fontLineHeight040,1.5)}.tds-input-helper-message--error .tds-input-helper-message__icon{color:var(--messaging-icon-error,#cb0705)}.tds-input-helper-message--success .tds-input-helper-message__icon{color:var(--messaging-icon-success,#31a46f)}.tds-input-helper-message--info .tds-input-helper-message__icon{color:var(--messaging-icon-info,#0f4aa2)}.tds-input-helper-message--warning .tds-input-helper-message__icon{color:var(--messaging-icon-warning,#e49307)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBRUUsa0JBQW1CLENBRW5CLGlDQUFtQyxDQUhuQyxtQkFBb0IsQ0FFcEIseUJBRUYsQ0FFQSxnQ0FFRSxrQkFBbUIsQ0FEbkIsbUJBQW9CLENBR3BCLGFBQWMsQ0FEZCxzQkFFRixDQUVBLGdDQUNFLDJDQUE2QyxDQUM3QyxpQ0FBbUMsQ0FDbkMsb0NBQXNDLENBQ3RDLHdDQUNGLENBR0EsaUVBQ0UseUNBQ0YsQ0FFQSxtRUFDRSwyQ0FDRixDQUVBLGdFQUNFLHdDQUNGLENBRUEsbUVBQ0UsMkNBQ0YiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZHMtaW5wdXQtaGVscGVyLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTA1LCA4cHgpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LCAjMWExYTFhKTtcbn1cblxuLnRkcy1pbnB1dC1oZWxwZXItbWVzc2FnZV9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi50ZHMtaW5wdXQtaGVscGVyLW1lc3NhZ2VfX3RleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEZhbWlseTA0MCwgc2Fucy1zZXJpZik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemUwMzAsIDFyZW0pO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udFdlaWdodDA0MCwgNDAwKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnRMaW5lSGVpZ2h0MDQwLCAxLjUpO1xufVxuXG4vKiBJbnRlbnQgaWNvbiBjb2xvdXJzICovXG4udGRzLWlucHV0LWhlbHBlci1tZXNzYWdlLS1lcnJvciAudGRzLWlucHV0LWhlbHBlci1tZXNzYWdlX19pY29uIHtcbiAgY29sb3I6IHZhcigtLW1lc3NhZ2luZy1pY29uLWVycm9yLCAjY2IwNzA1KTtcbn1cblxuLnRkcy1pbnB1dC1oZWxwZXItbWVzc2FnZS0tc3VjY2VzcyAudGRzLWlucHV0LWhlbHBlci1tZXNzYWdlX19pY29uIHtcbiAgY29sb3I6IHZhcigtLW1lc3NhZ2luZy1pY29uLXN1Y2Nlc3MsICMzMWE0NmYpO1xufVxuXG4udGRzLWlucHV0LWhlbHBlci1tZXNzYWdlLS1pbmZvIC50ZHMtaW5wdXQtaGVscGVyLW1lc3NhZ2VfX2ljb24ge1xuICBjb2xvcjogdmFyKC0tbWVzc2FnaW5nLWljb24taW5mbywgIzBmNGFhMik7XG59XG5cbi50ZHMtaW5wdXQtaGVscGVyLW1lc3NhZ2UtLXdhcm5pbmcgLnRkcy1pbnB1dC1oZWxwZXItbWVzc2FnZV9faWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1tZXNzYWdpbmctaWNvbi13YXJuaW5nLCAjZTQ5MzA3KTtcbn1cbiJdfQ== */";
22
+ styleInject_es.styleInject(css_248z$3);
21
23
 
24
+ var HELPER_MESSAGE_ICON = {
25
+ error: 'filled_report',
26
+ success: 'filled_check_circle',
27
+ info: 'filled_info',
28
+ warning: 'filled_warning'
29
+ };
30
+ /**
31
+ * Per-field status indicator. Renders a status icon and helper text beneath
32
+ * an input control. Always used as a supporting component inside an input — never standalone.
33
+ */
34
+ var InputHelperMessage = function InputHelperMessage(_ref) {
35
+ var type = _ref.type,
36
+ message = _ref.message,
37
+ id = _ref.id,
38
+ className = _ref.className;
39
+ var iconName = HELPER_MESSAGE_ICON[type];
40
+ return /*#__PURE__*/React.createElement("span", {
41
+ id: id,
42
+ className: cn.cn('tds-input-helper-message', "tds-input-helper-message--".concat(type), className)
43
+ }, /*#__PURE__*/React.createElement("span", {
44
+ className: "tds-input-helper-message__icon",
45
+ "aria-hidden": "true"
46
+ }, /*#__PURE__*/React.createElement(Icon_Icon.Icon, {
47
+ iconName: iconName,
48
+ size: {
49
+ width: '24px',
50
+ height: '24px'
51
+ }
52
+ })), /*#__PURE__*/React.createElement("span", {
53
+ className: "tds-input-helper-message__text"
54
+ }, message));
55
+ };
56
+
57
+ var css_248z$2 = ".tds-dialog-box{align-items:center;background:var(--surface-overlay);box-sizing:border-box;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.tds-dialog-box--no-overlay{background:transparent;inset:auto;padding:0;position:relative}.tds-dialog-box__overlay{background:transparent;inset:0;position:absolute}.tds-dialog-box__surface{background:var(--surface-level-4);border-radius:var(--border-radius-100);box-sizing:border-box;display:flex;flex-direction:column;max-height:min(85vh,720px);max-width:var(--tds-dialog-box-surface-width,353px);outline:none;overflow:hidden;padding-bottom:var(--spacing-09);padding-top:var(--spacing-05);position:relative;width:100%}.tds-dialog-box__header{align-items:center;display:flex;gap:var(--spacing-05);padding-bottom:var(--spacing-05);padding-left:var(--spacing-09);padding-right:var(--spacing-09)}.tds-dialog-box__title{color:var(--text-primary);flex:1 1 auto;font-family:var(--fontFamily010);font-size:var(--fontSize070);font-weight:400;line-height:var(--fontLineHeight070,1.15);margin:0}.tds-dialog-box__dismiss{align-items:center;background:transparent;border:none;border-radius:var(--border-radius-100);color:var(--text-primary);cursor:pointer;display:inline-flex;flex:0 0 auto;height:40px;justify-content:center;margin-left:var(--spacing-05);padding:0;width:40px}.tds-dialog-box__dismiss:hover{background:var(--surface-level-3,transparent)}.tds-dialog-box__dismiss:focus-visible{outline:2px solid var(--text-primary);outline-offset:-2px}.tds-dialog-box__dismiss>svg{display:block;height:24px;width:24px}.tds-dialog-box__body{color:var(--text-primary);flex:1 1 auto;flex-direction:column;font-family:var(--fontFamily040,var(--fontFamily010));font-size:var(--fontSize030,1.6rem);gap:var(--spacing-06,10px);line-height:var(--fontLineHeight030,1.5);overflow-y:auto}.tds-dialog-box__body,.tds-dialog-box__footer{display:flex;padding-left:var(--spacing-09);padding-right:var(--spacing-09)}.tds-dialog-box__footer{align-items:center;gap:var(--spacing-05);justify-content:flex-end;padding-top:var(--spacing-09)}@media (min-width:768px){.tds-dialog-box{padding:24px}.tds-dialog-box__surface{max-width:var(--tds-dialog-box-surface-width,720px)}}@media (min-width:1024px){.tds-dialog-box__surface{max-width:var(--tds-dialog-box-surface-width,976px)}}@media (min-width:1144px){.tds-dialog-box__surface{max-width:var(--tds-dialog-box-surface-width,1096px)}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBS0Usa0JBQW1CLENBSW5CLGlDQUFrQyxDQURsQyxxQkFBc0IsQ0FKdEIsWUFBYSxDQUZiLE9BQVEsQ0FJUixzQkFBdUIsQ0FDdkIsWUFBYSxDQU5iLGNBQWUsQ0FFZixZQU9GLENBRUEsNEJBSUUsc0JBQXVCLENBRnZCLFVBQVcsQ0FDWCxTQUFVLENBRlYsaUJBSUYsQ0FFQSx5QkFHRSxzQkFBdUIsQ0FEdkIsT0FBUSxDQURSLGlCQUdGLENBRUEseUJBT0UsaUNBQWtDLENBQ2xDLHNDQUF1QyxDQUt2QyxxQkFBc0IsQ0FYdEIsWUFBYSxDQUNiLHFCQUFzQixDQUd0QiwwQkFBNEIsQ0FENUIsbURBQXFELENBSXJELFlBQWEsQ0FDYixlQUFnQixDQUVoQixnQ0FBaUMsQ0FEakMsNkJBQThCLENBVjlCLGlCQUFrQixDQUdsQixVQVVGLENBRUEsd0JBRUUsa0JBQW1CLENBRG5CLFlBQWEsQ0FFYixxQkFBc0IsQ0FHdEIsZ0NBQWlDLENBRmpDLDhCQUErQixDQUMvQiwrQkFFRixDQUVBLHVCQU9FLHlCQUEwQixDQU4xQixhQUFjLENBRWQsZ0NBQWlDLENBQ2pDLDRCQUE2QixDQUU3QixlQUFnQixDQURoQix5Q0FBMkMsQ0FIM0MsUUFNRixDQUVBLHlCQU1FLGtCQUFtQixDQUluQixzQkFBdUIsQ0FEdkIsV0FBWSxDQUlaLHNDQUF1QyxDQUZ2Qyx5QkFBMEIsQ0FDMUIsY0FBZSxDQVBmLG1CQUFvQixDQUpwQixhQUFjLENBR2QsV0FBWSxDQUdaLHNCQUF1QixDQUx2Qiw2QkFBOEIsQ0FNOUIsU0FBVSxDQUxWLFVBV0YsQ0FFQSwrQkFDRSw2Q0FDRixDQUVBLHVDQUNFLHFDQUFzQyxDQUN0QyxtQkFDRixDQUVBLDZCQUdFLGFBQWMsQ0FEZCxXQUFZLENBRFosVUFHRixDQUVBLHNCQVdFLHlCQUEwQixDQVYxQixhQUFjLENBRWQscUJBQXNCLENBS3RCLHFEQUF1RCxDQUN2RCxtQ0FBcUMsQ0FMckMsMEJBQTRCLENBTTVCLHdDQUEwQyxDQUgxQyxlQUtGLENBRUEsOENBWkUsWUFBYSxDQUdiLDhCQUErQixDQUMvQiwrQkFnQkYsQ0FSQSx3QkFFRSxrQkFBbUIsQ0FFbkIscUJBQXNCLENBRHRCLHdCQUF5QixDQUl6Qiw2QkFDRixDQUlBLHlCQUNFLGdCQUNFLFlBQ0YsQ0FDQSx5QkFDRSxtREFDRixDQUNGLENBRUEsMEJBQ0UseUJBQ0UsbURBQ0YsQ0FDRixDQUVBLDBCQUNFLHlCQUNFLG9EQUNGLENBQ0YiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZHMtZGlhbG9nLWJveCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlLW92ZXJsYXkpO1xufVxuXG4udGRzLWRpYWxvZy1ib3gtLW5vLW92ZXJsYXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGluc2V0OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnRkcy1kaWFsb2ctYm94X19vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi50ZHMtZGlhbG9nLWJveF9fc3VyZmFjZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tdGRzLWRpYWxvZy1ib3gtc3VyZmFjZS13aWR0aCwgMzUzcHgpO1xuICBtYXgtaGVpZ2h0OiBtaW4oODV2aCwgNzIwcHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlLWxldmVsLTQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLTEwMCk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLTA1KTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctMDkpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4udGRzLWRpYWxvZy1ib3hfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0wNSk7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy0wOSk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwYWNpbmctMDkpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2luZy0wNSk7XG59XG5cbi50ZHMtZGlhbG9nLWJveF9fdGl0bGUge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEZhbWlseTAxMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemUwNzApO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udExpbmVIZWlnaHQwNzAsIDEuMTUpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbn1cblxuLnRkcy1kaWFsb2ctYm94X19kaXNtaXNzIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjaW5nLTA1KTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLTEwMCk7XG59XG5cbi50ZHMtZGlhbG9nLWJveF9fZGlzbWlzczpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UtbGV2ZWwtMywgdHJhbnNwYXJlbnQpO1xufVxuXG4udGRzLWRpYWxvZy1ib3hfX2Rpc21pc3M6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLnRkcy1kaWFsb2ctYm94X19kaXNtaXNzID4gc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50ZHMtZGlhbG9nLWJveF9fYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMDYsIDEwcHgpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctMDkpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLTA5KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRGYW1pbHkwNDAsIHZhcigtLWZvbnRGYW1pbHkwMTApKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U2l6ZTAzMCwgMS42cmVtKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnRMaW5lSGVpZ2h0MDMwLCAxLjUpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbn1cblxuLnRkcy1kaWFsb2ctYm94X19mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMDUpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctMDkpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLTA5KTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNpbmctMDkpO1xufVxuXG4vKiBWaWV3cG9ydCB3aWR0aHMgbWlycm9yIHRoZSBGaWdtYSBWaWV3cG9ydCBjb2xsZWN0aW9uIG1vZGVzXG4gICAoZ3JpZC9jb250ZW50QXJlYSDiiJIgMiDDlyBncmlkL21hcmdpbiBwZXIgbW9kZSkuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRkcy1kaWFsb2ctYm94IHtcbiAgICBwYWRkaW5nOiAyNHB4O1xuICB9XG4gIC50ZHMtZGlhbG9nLWJveF9fc3VyZmFjZSB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS10ZHMtZGlhbG9nLWJveC1zdXJmYWNlLXdpZHRoLCA3MjBweCk7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudGRzLWRpYWxvZy1ib3hfX3N1cmZhY2Uge1xuICAgIG1heC13aWR0aDogdmFyKC0tdGRzLWRpYWxvZy1ib3gtc3VyZmFjZS13aWR0aCwgOTc2cHgpO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMTQ0cHgpIHtcbiAgLnRkcy1kaWFsb2ctYm94X19zdXJmYWNlIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLXRkcy1kaWFsb2ctYm94LXN1cmZhY2Utd2lkdGgsIDEwOTZweCk7XG4gIH1cbn1cbiJdfQ== */";
58
+ styleInject_es.styleInject(css_248z$2);
59
+
60
+ var _excluded = ["dismiss", "onDismiss", "titleId", "children", "className"],
61
+ _excluded2 = ["descriptionId", "children", "className"],
62
+ _excluded3 = ["children", "className"],
63
+ _excluded4 = ["open", "onDismiss", "dismiss", "hideOverlay", "disableOverlayDismiss", "disableEscDismiss", "role", "className", "children"];
64
+ var DialogBoxHeader = function DialogBoxHeader(_ref) {
65
+ var _ref$dismiss = _ref.dismiss,
66
+ dismiss = _ref$dismiss === void 0 ? true : _ref$dismiss,
67
+ onDismiss = _ref.onDismiss,
68
+ titleId = _ref.titleId,
69
+ children = _ref.children,
70
+ className = _ref.className,
71
+ rest = _rollupPluginBabelHelpers._objectWithoutProperties(_ref, _excluded);
72
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers._objectSpread2({
73
+ className: cn.cn('tds-dialog-box__header', className)
74
+ }, rest), /*#__PURE__*/React.createElement("div", {
75
+ id: titleId,
76
+ role: "heading",
77
+ "aria-level": 2,
78
+ className: "tds-dialog-box__title"
79
+ }, children), dismiss && (/*#__PURE__*/React.createElement("button", {
80
+ type: "button",
81
+ className: "tds-dialog-box__dismiss",
82
+ "aria-label": "Dismiss dialog",
83
+ onClick: onDismiss
84
+ }, /*#__PURE__*/React.createElement(Icon_Icon.Icon, {
85
+ iconName: "filled_close",
86
+ size: {
87
+ width: '24px',
88
+ height: '24px'
89
+ }
90
+ }))));
91
+ };
92
+ var DialogBoxBody = function DialogBoxBody(_ref2) {
93
+ var descriptionId = _ref2.descriptionId,
94
+ children = _ref2.children,
95
+ className = _ref2.className,
96
+ rest = _rollupPluginBabelHelpers._objectWithoutProperties(_ref2, _excluded2);
97
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers._objectSpread2({
98
+ id: descriptionId,
99
+ className: cn.cn('tds-dialog-box__body', className)
100
+ }, rest), children);
101
+ };
102
+ var DialogBoxFooter = function DialogBoxFooter(_ref3) {
103
+ var children = _ref3.children,
104
+ className = _ref3.className,
105
+ rest = _rollupPluginBabelHelpers._objectWithoutProperties(_ref3, _excluded3);
106
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers._objectSpread2({
107
+ className: cn.cn('tds-dialog-box__footer', className)
108
+ }, rest), children);
109
+ };
110
+ /**
111
+ * Simple dialog box for alerts and short confirmations. Renders a centered
112
+ * surface over a scrim overlay. For richer flows (forms, multi-step content),
113
+ * use the future Modal component.
114
+ */
115
+ var DialogBoxRoot = function DialogBoxRoot(_ref4) {
116
+ var open = _ref4.open,
117
+ onDismiss = _ref4.onDismiss,
118
+ dismiss = _ref4.dismiss,
119
+ _ref4$hideOverlay = _ref4.hideOverlay,
120
+ hideOverlay = _ref4$hideOverlay === void 0 ? false : _ref4$hideOverlay,
121
+ _ref4$disableOverlayD = _ref4.disableOverlayDismiss,
122
+ disableOverlayDismiss = _ref4$disableOverlayD === void 0 ? false : _ref4$disableOverlayD,
123
+ _ref4$disableEscDismi = _ref4.disableEscDismiss,
124
+ disableEscDismiss = _ref4$disableEscDismi === void 0 ? false : _ref4$disableEscDismi,
125
+ _ref4$role = _ref4.role,
126
+ role = _ref4$role === void 0 ? 'dialog' : _ref4$role,
127
+ className = _ref4.className,
128
+ children = _ref4.children,
129
+ rest = _rollupPluginBabelHelpers._objectWithoutProperties(_ref4, _excluded4);
130
+ var surfaceRef = React.useRef(null);
131
+ var previouslyFocusedRef = React.useRef(null);
132
+ var autoTitleId = React.useId();
133
+ var autoDescriptionId = React.useId();
134
+ var titleId = "tds-dialog-box-title-".concat(autoTitleId);
135
+ var descriptionId = "tds-dialog-box-body-".concat(autoDescriptionId);
136
+ var requestDismiss = React.useCallback(function () {
137
+ if (onDismiss) onDismiss();
138
+ }, [onDismiss]);
139
+ React.useEffect(function () {
140
+ if (!open || disableEscDismiss) return undefined;
141
+ var handler = function handler(event) {
142
+ if (event.key === 'Escape') {
143
+ event.stopPropagation();
144
+ requestDismiss();
145
+ }
146
+ };
147
+ window.addEventListener('keydown', handler);
148
+ return function () {
149
+ return window.removeEventListener('keydown', handler);
150
+ };
151
+ }, [open, disableEscDismiss, requestDismiss]);
152
+ React.useEffect(function () {
153
+ var _surfaceRef$current;
154
+ if (!open) return undefined;
155
+ previouslyFocusedRef.current = document.activeElement;
156
+ (_surfaceRef$current = surfaceRef.current) === null || _surfaceRef$current === void 0 || _surfaceRef$current.focus({
157
+ preventScroll: true
158
+ });
159
+ return function () {
160
+ var _previouslyFocusedRef, _previouslyFocusedRef2;
161
+ (_previouslyFocusedRef = previouslyFocusedRef.current) === null || _previouslyFocusedRef === void 0 || (_previouslyFocusedRef2 = _previouslyFocusedRef.focus) === null || _previouslyFocusedRef2 === void 0 || _previouslyFocusedRef2.call(_previouslyFocusedRef);
162
+ };
163
+ }, [open]);
164
+ if (!open) return null;
165
+ var decoratedChildren = React.Children.map(children, function (child) {
166
+ if (! /*#__PURE__*/React.isValidElement(child)) return child;
167
+ if (child.type === DialogBoxHeader) {
168
+ var childProps = child.props;
169
+ // Root `dismiss` mirrors the Figma master toggle; an explicit Header `dismiss` still wins.
170
+ var resolvedDismiss = childProps.dismiss !== undefined ? childProps.dismiss : dismiss;
171
+ return /*#__PURE__*/React.cloneElement(child, {
172
+ onDismiss: requestDismiss,
173
+ titleId: titleId,
174
+ dismiss: resolvedDismiss
175
+ });
176
+ }
177
+ if (child.type === DialogBoxBody) {
178
+ return /*#__PURE__*/React.cloneElement(child, {
179
+ descriptionId: descriptionId
180
+ });
181
+ }
182
+ return child;
183
+ });
184
+ var handleOverlayClick = function handleOverlayClick() {
185
+ if (!disableOverlayDismiss) requestDismiss();
186
+ };
187
+ return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers._objectSpread2({
188
+ className: cn.cn('tds-dialog-box', hideOverlay && 'tds-dialog-box--no-overlay', className)
189
+ }, rest), !hideOverlay && (/*#__PURE__*/React.createElement("div", {
190
+ className: "tds-dialog-box__overlay",
191
+ "aria-hidden": "true",
192
+ onClick: handleOverlayClick
193
+ })), /*#__PURE__*/React.createElement("div", {
194
+ ref: surfaceRef,
195
+ className: "tds-dialog-box__surface",
196
+ role: role,
197
+ "aria-modal": "true",
198
+ "aria-labelledby": titleId,
199
+ "aria-describedby": descriptionId,
200
+ tabIndex: -1
201
+ }, decoratedChildren));
202
+ };
203
+ var DialogBox = DialogBoxRoot;
204
+ DialogBox.Header = DialogBoxHeader;
205
+ DialogBox.Body = DialogBoxBody;
206
+ DialogBox.Footer = DialogBoxFooter;
207
+ DialogBox.displayName = 'DialogBox';
208
+ DialogBoxHeader.displayName = 'DialogBox.Header';
209
+ DialogBoxBody.displayName = 'DialogBox.Body';
210
+ DialogBoxFooter.displayName = 'DialogBox.Footer';
211
+
212
+ var css_248z$1 = ".tds-tab{--tds-tab-bg:var(--interactive-tab-fill-default,transparent);--tds-tab-bg-hover:var(--interactive-tab-fill-hover,#f2f2f2);--tds-tab-bg-pressed:var(--interactive-tab-fill-pressed,#e6e6e6);--tds-tab-fg:var(--interactive-tab-text-default,#1a1a1a);--tds-tab-fg-hover:var(--interactive-tab-text-hover,#404040);--tds-tab-fg-pressed:var(--interactive-tab-text-pressed,#404040);--tds-tab-icon:var(--interactive-tab-icon-default,#1a1a1a);--tds-tab-icon-hover:var(--interactive-tab-icon-hover,#404040);--tds-tab-icon-pressed:var(--interactive-tab-icon-pressed,#404040);--tds-tab-selected-border:var(\n --interactive-tab-selected-border-default,#1a1a1a\n );--tds-tab-focus-ring:var(--focus-border,#737373);align-items:center;background-color:var(--tds-tab-bg);border:0;border-bottom:2px solid transparent;color:var(--tds-tab-fg);cursor:pointer;display:inline-flex;font-family:var(--fontFamily040,sans-serif);font-weight:var(--fontWeight050,500);gap:var(--spacing-05);justify-content:center;line-height:var(--fontLineHeight030,1.25);position:relative;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}.tds-tab:hover:not(:disabled){background-color:var(--tds-tab-bg-hover);color:var(--tds-tab-fg-hover)}.tds-tab:active:not(:disabled){background-color:var(--tds-tab-bg-pressed);color:var(--tds-tab-fg-pressed)}.tds-tab:focus-visible{background-color:var(--tds-tab-bg-hover);color:var(--tds-tab-fg-hover);outline:none}.tds-tab:focus-visible:after{border:var(--spacing-01,1px) solid var(--tds-tab-focus-ring);border-radius:var(--spacing-02,2px);content:\"\";inset:calc(var(--spacing-02, 2px)*-1);pointer-events:none;position:absolute}.tds-tab:disabled{background-color:var(--interactive-disabled-b,#bfbfbf);color:var(--interactive-disabled-a,#d9d9d9);cursor:not-allowed}.tds-tab--state-hover:not(:disabled){background-color:var(--tds-tab-bg-hover);color:var(--tds-tab-fg-hover)}.tds-tab--state-pressed:not(:disabled){background-color:var(--tds-tab-bg-pressed);color:var(--tds-tab-fg-pressed)}.tds-tab--state-focus:not(:disabled){background-color:var(--tds-tab-bg-hover);color:var(--tds-tab-fg-hover)}.tds-tab--state-focus:not(:disabled):after{border:var(--spacing-01,1px) solid var(--tds-tab-focus-ring);border-radius:var(--spacing-02,2px);content:\"\";inset:calc(var(--spacing-02, 2px)*-1);pointer-events:none;position:absolute}.tds-tab--state-disabled{background-color:var(--interactive-disabled-b,#bfbfbf);color:var(--interactive-disabled-a,#d9d9d9);cursor:not-allowed}.tds-tab--active-true{border-bottom-color:var(--tds-tab-selected-border)}.tds-tab--active-false{border-bottom-color:transparent}.tds-tab--size-medium{font-size:var(--fontSize030,1rem);line-height:var(--fontLineHeight020,1.125);min-height:var(--spacing-17,40px);padding:0 var(--spacing-07)}.tds-tab--size-large{font-size:var(--fontSize040,1.125rem);line-height:var(--fontLineHeight020,1.125);min-height:var(--spacing-18,48px);padding:0 var(--spacing-09)}.tds-tab__icon,.tds-tab__label{align-items:center;display:inline-flex;justify-content:center}.tds-tab__icon{color:var(--tds-tab-icon)}.tds-tab--state-focus:not(:disabled) .tds-tab__icon,.tds-tab--state-hover:not(:disabled) .tds-tab__icon,.tds-tab:focus-visible .tds-tab__icon,.tds-tab:hover:not(:disabled) .tds-tab__icon{color:var(--tds-tab-icon-hover)}.tds-tab--state-pressed:not(:disabled) .tds-tab__icon,.tds-tab:active:not(:disabled) .tds-tab__icon{color:var(--tds-tab-icon-pressed)}.tds-tab--state-disabled .tds-tab__icon,.tds-tab:disabled .tds-tab__icon{color:var(--interactive-disabled-a,#d9d9d9)}.tds-tab--size-medium .tds-tab__icon{height:var(--spacing-09,16px);width:var(--spacing-09,16px)}.tds-tab--size-large .tds-tab__icon{height:var(--spacing-11,20px);width:var(--spacing-11,20px)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRSw0REFBOEQsQ0FDOUQsNERBQThELENBQzlELGdFQUFrRSxDQUNsRSx3REFBMEQsQ0FDMUQsNERBQThELENBQzlELGdFQUFrRSxDQUNsRSwwREFBNEQsQ0FDNUQsOERBQWdFLENBQ2hFLGtFQUFvRSxDQUNwRTs7R0FHQyxDQUNELGdEQUFrRCxDQUlsRCxrQkFBbUIsQ0FLbkIsa0NBQW1DLENBRm5DLFFBQVMsQ0FDVCxtQ0FBb0MsQ0FFcEMsdUJBQXdCLENBS3hCLGNBQWUsQ0FaZixtQkFBb0IsQ0FRcEIsMkNBQTZDLENBQzdDLG9DQUFzQyxDQU50QyxxQkFBc0IsQ0FEdEIsc0JBQXVCLENBUXZCLHlDQUEyQyxDQVgzQyxpQkFBa0IsQ0FjbEIsaUdBSXVCLENBTnZCLGtCQU9GLENBRUEsOEJBQ0Usd0NBQXlDLENBQ3pDLDZCQUNGLENBRUEsK0JBQ0UsMENBQTJDLENBQzNDLCtCQUNGLENBRUEsdUJBRUUsd0NBQXlDLENBQ3pDLDZCQUE4QixDQUY5QixZQUdGLENBRUEsNkJBSUUsNERBQThELENBQzlELG1DQUFxQyxDQUpyQyxVQUFXLENBRVgscUNBQXdDLENBR3hDLG1CQUFvQixDQUpwQixpQkFLRixDQUVBLGtCQUNFLHNEQUF3RCxDQUN4RCwyQ0FBNkMsQ0FDN0Msa0JBQ0YsQ0FFQSxxQ0FDRSx3Q0FBeUMsQ0FDekMsNkJBQ0YsQ0FFQSx1Q0FDRSwwQ0FBMkMsQ0FDM0MsK0JBQ0YsQ0FFQSxxQ0FDRSx3Q0FBeUMsQ0FDekMsNkJBQ0YsQ0FFQSwyQ0FJRSw0REFBOEQsQ0FDOUQsbUNBQXFDLENBSnJDLFVBQVcsQ0FFWCxxQ0FBd0MsQ0FHeEMsbUJBQW9CLENBSnBCLGlCQUtGLENBRUEseUJBQ0Usc0RBQXdELENBQ3hELDJDQUE2QyxDQUM3QyxrQkFDRixDQUVBLHNCQUNFLGtEQUNGLENBRUEsdUJBQ0UsK0JBQ0YsQ0FFQSxzQkFHRSxpQ0FBbUMsQ0FDbkMsMENBQTRDLENBSDVDLGlDQUFtQyxDQUNuQywyQkFHRixDQUVBLHFCQUdFLHFDQUF1QyxDQUN2QywwQ0FBNEMsQ0FINUMsaUNBQW1DLENBQ25DLDJCQUdGLENBUUEsK0JBSkUsa0JBQW1CLENBRG5CLG1CQUFvQixDQUVwQixzQkFRRixDQUxBLGVBSUUseUJBQ0YsQ0FFQSwyTEFJRSwrQkFDRixDQUVBLG9HQUVFLGlDQUNGLENBRUEseUVBRUUsMkNBQ0YsQ0FFQSxxQ0FFRSw2QkFBK0IsQ0FEL0IsNEJBRUYsQ0FFQSxvQ0FFRSw2QkFBK0IsQ0FEL0IsNEJBRUYiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50ZHMtdGFiIHtcbiAgLS10ZHMtdGFiLWJnOiB2YXIoLS1pbnRlcmFjdGl2ZS10YWItZmlsbC1kZWZhdWx0LCB0cmFuc3BhcmVudCk7XG4gIC0tdGRzLXRhYi1iZy1ob3ZlcjogdmFyKC0taW50ZXJhY3RpdmUtdGFiLWZpbGwtaG92ZXIsICNmMmYyZjIpO1xuICAtLXRkcy10YWItYmctcHJlc3NlZDogdmFyKC0taW50ZXJhY3RpdmUtdGFiLWZpbGwtcHJlc3NlZCwgI2U2ZTZlNik7XG4gIC0tdGRzLXRhYi1mZzogdmFyKC0taW50ZXJhY3RpdmUtdGFiLXRleHQtZGVmYXVsdCwgIzFhMWExYSk7XG4gIC0tdGRzLXRhYi1mZy1ob3ZlcjogdmFyKC0taW50ZXJhY3RpdmUtdGFiLXRleHQtaG92ZXIsICM0MDQwNDApO1xuICAtLXRkcy10YWItZmctcHJlc3NlZDogdmFyKC0taW50ZXJhY3RpdmUtdGFiLXRleHQtcHJlc3NlZCwgIzQwNDA0MCk7XG4gIC0tdGRzLXRhYi1pY29uOiB2YXIoLS1pbnRlcmFjdGl2ZS10YWItaWNvbi1kZWZhdWx0LCAjMWExYTFhKTtcbiAgLS10ZHMtdGFiLWljb24taG92ZXI6IHZhcigtLWludGVyYWN0aXZlLXRhYi1pY29uLWhvdmVyLCAjNDA0MDQwKTtcbiAgLS10ZHMtdGFiLWljb24tcHJlc3NlZDogdmFyKC0taW50ZXJhY3RpdmUtdGFiLWljb24tcHJlc3NlZCwgIzQwNDA0MCk7XG4gIC0tdGRzLXRhYi1zZWxlY3RlZC1ib3JkZXI6IHZhcihcbiAgICAtLWludGVyYWN0aXZlLXRhYi1zZWxlY3RlZC1ib3JkZXItZGVmYXVsdCxcbiAgICAjMWExYTFhXG4gICk7XG4gIC0tdGRzLXRhYi1mb2N1cy1yaW5nOiB2YXIoLS1mb2N1cy1ib3JkZXIsICM3MzczNzMpO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMDUpO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGRzLXRhYi1iZyk7XG4gIGNvbG9yOiB2YXIoLS10ZHMtdGFiLWZnKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRGYW1pbHkwNDAsIHNhbnMtc2VyaWYpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udFdlaWdodDA1MCwgNTAwKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnRMaW5lSGVpZ2h0MDMwLCAxLjI1KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZSxcbiAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICBjb2xvciAwLjE1cyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMC4xNXMgZWFzZTtcbn1cblxuLnRkcy10YWI6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZHMtdGFiLWJnLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLXRkcy10YWItZmctaG92ZXIpO1xufVxuXG4udGRzLXRhYjphY3RpdmU6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZHMtdGFiLWJnLXByZXNzZWQpO1xuICBjb2xvcjogdmFyKC0tdGRzLXRhYi1mZy1wcmVzc2VkKTtcbn1cblxuLnRkcy10YWI6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRkcy10YWItYmctaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tdGRzLXRhYi1mZy1ob3Zlcik7XG59XG5cbi50ZHMtdGFiOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IGNhbGModmFyKC0tc3BhY2luZy0wMiwgMnB4KSAqIC0xKTtcbiAgYm9yZGVyOiB2YXIoLS1zcGFjaW5nLTAxLCAxcHgpIHNvbGlkIHZhcigtLXRkcy10YWItZm9jdXMtcmluZyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNwYWNpbmctMDIsIDJweCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udGRzLXRhYjpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWludGVyYWN0aXZlLWRpc2FibGVkLWIsICNiZmJmYmYpO1xuICBjb2xvcjogdmFyKC0taW50ZXJhY3RpdmUtZGlzYWJsZWQtYSwgI2Q5ZDlkOSk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi50ZHMtdGFiLS1zdGF0ZS1ob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRkcy10YWItYmctaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tdGRzLXRhYi1mZy1ob3Zlcik7XG59XG5cbi50ZHMtdGFiLS1zdGF0ZS1wcmVzc2VkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGRzLXRhYi1iZy1wcmVzc2VkKTtcbiAgY29sb3I6IHZhcigtLXRkcy10YWItZmctcHJlc3NlZCk7XG59XG5cbi50ZHMtdGFiLS1zdGF0ZS1mb2N1czpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRkcy10YWItYmctaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tdGRzLXRhYi1mZy1ob3Zlcik7XG59XG5cbi50ZHMtdGFiLS1zdGF0ZS1mb2N1czpub3QoOmRpc2FibGVkKTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogY2FsYyh2YXIoLS1zcGFjaW5nLTAyLCAycHgpICogLTEpO1xuICBib3JkZXI6IHZhcigtLXNwYWNpbmctMDEsIDFweCkgc29saWQgdmFyKC0tdGRzLXRhYi1mb2N1cy1yaW5nKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2luZy0wMiwgMnB4KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi50ZHMtdGFiLS1zdGF0ZS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWludGVyYWN0aXZlLWRpc2FibGVkLWIsICNiZmJmYmYpO1xuICBjb2xvcjogdmFyKC0taW50ZXJhY3RpdmUtZGlzYWJsZWQtYSwgI2Q5ZDlkOSk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi50ZHMtdGFiLS1hY3RpdmUtdHJ1ZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRkcy10YWItc2VsZWN0ZWQtYm9yZGVyKTtcbn1cblxuLnRkcy10YWItLWFjdGl2ZS1mYWxzZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4udGRzLXRhYi0tc2l6ZS1tZWRpdW0ge1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zcGFjaW5nLTE3LCA0MHB4KTtcbiAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLTA3KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U2l6ZTAzMCwgMXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250TGluZUhlaWdodDAyMCwgMS4xMjUpO1xufVxuXG4udGRzLXRhYi0tc2l6ZS1sYXJnZSB7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNwYWNpbmctMTgsIDQ4cHgpO1xuICBwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctMDkpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplMDQwLCAxLjEyNXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250TGluZUhlaWdodDAyMCwgMS4xMjUpO1xufVxuXG4udGRzLXRhYl9fbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi50ZHMtdGFiX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGRzLXRhYi1pY29uKTtcbn1cblxuLnRkcy10YWI6aG92ZXI6bm90KDpkaXNhYmxlZCkgLnRkcy10YWJfX2ljb24sXG4udGRzLXRhYjpmb2N1cy12aXNpYmxlIC50ZHMtdGFiX19pY29uLFxuLnRkcy10YWItLXN0YXRlLWhvdmVyOm5vdCg6ZGlzYWJsZWQpIC50ZHMtdGFiX19pY29uLFxuLnRkcy10YWItLXN0YXRlLWZvY3VzOm5vdCg6ZGlzYWJsZWQpIC50ZHMtdGFiX19pY29uIHtcbiAgY29sb3I6IHZhcigtLXRkcy10YWItaWNvbi1ob3Zlcik7XG59XG5cbi50ZHMtdGFiOmFjdGl2ZTpub3QoOmRpc2FibGVkKSAudGRzLXRhYl9faWNvbixcbi50ZHMtdGFiLS1zdGF0ZS1wcmVzc2VkOm5vdCg6ZGlzYWJsZWQpIC50ZHMtdGFiX19pY29uIHtcbiAgY29sb3I6IHZhcigtLXRkcy10YWItaWNvbi1wcmVzc2VkKTtcbn1cblxuLnRkcy10YWI6ZGlzYWJsZWQgLnRkcy10YWJfX2ljb24sXG4udGRzLXRhYi0tc3RhdGUtZGlzYWJsZWQgLnRkcy10YWJfX2ljb24ge1xuICBjb2xvcjogdmFyKC0taW50ZXJhY3RpdmUtZGlzYWJsZWQtYSwgI2Q5ZDlkOSk7XG59XG5cbi50ZHMtdGFiLS1zaXplLW1lZGl1bSAudGRzLXRhYl9faWNvbiB7XG4gIHdpZHRoOiB2YXIoLS1zcGFjaW5nLTA5LCAxNnB4KTtcbiAgaGVpZ2h0OiB2YXIoLS1zcGFjaW5nLTA5LCAxNnB4KTtcbn1cblxuLnRkcy10YWItLXNpemUtbGFyZ2UgLnRkcy10YWJfX2ljb24ge1xuICB3aWR0aDogdmFyKC0tc3BhY2luZy0xMSwgMjBweCk7XG4gIGhlaWdodDogdmFyKC0tc3BhY2luZy0xMSwgMjBweCk7XG59XG4iXX0= */";
213
+ styleInject_es.styleInject(css_248z$1);
214
+
215
+ /** Single tab inside a TabGroup. Render through TabGroup for tablist semantics and keyboard nav. */
216
+ var Tab = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
217
+ var _ref2;
218
+ var _ref$state = _ref.state,
219
+ state = _ref$state === void 0 ? 'base' : _ref$state,
220
+ _ref$size = _ref.size,
221
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
222
+ _ref$active = _ref.active,
223
+ active = _ref$active === void 0 ? true : _ref$active,
224
+ _ref$channel = _ref.channel,
225
+ channel = _ref$channel === void 0 ? false : _ref$channel,
226
+ leftIcon = _ref.leftIcon,
227
+ rightIcon = _ref.rightIcon,
228
+ label = _ref.label,
229
+ children = _ref.children,
230
+ ariaLabelProp = _ref['aria-label'],
231
+ ariaLabel = _ref.ariaLabel,
232
+ id = _ref.id,
233
+ ariaControls = _ref['aria-controls'],
234
+ onClick = _ref.onClick,
235
+ onKeyDown = _ref.onKeyDown,
236
+ className = _ref.className,
237
+ _ref$disabled = _ref.disabled,
238
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
239
+ tabIndex = _ref.tabIndex;
240
+ var resolvedDisabled = disabled || state === 'disabled';
241
+ var resolvedLabel = (_ref2 = label !== null && label !== void 0 ? label : children) !== null && _ref2 !== void 0 ? _ref2 : 'Tab Label';
242
+ var resolvedAriaLabel = ariaLabelProp !== null && ariaLabelProp !== void 0 ? ariaLabelProp : ariaLabel;
243
+ return /*#__PURE__*/React.createElement("button", {
244
+ ref: ref,
245
+ type: "button",
246
+ role: "tab",
247
+ id: id,
248
+ "aria-selected": active,
249
+ "aria-controls": ariaControls,
250
+ "aria-label": resolvedAriaLabel,
251
+ tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : active ? 0 : -1,
252
+ className: cn.cn('tds-tab', "tds-tab--state-".concat(state), "tds-tab--size-".concat(size), active ? 'tds-tab--active-true' : 'tds-tab--active-false', channel ? 'tds-tab--channel-true' : 'tds-tab--channel-false', className),
253
+ disabled: resolvedDisabled,
254
+ onClick: onClick,
255
+ onKeyDown: onKeyDown
256
+ }, leftIcon && (/*#__PURE__*/React.createElement("span", {
257
+ className: "tds-tab__icon",
258
+ "aria-hidden": "true"
259
+ }, /*#__PURE__*/React.createElement(Icon_Icon.Icon, {
260
+ iconName: leftIcon
261
+ }))), /*#__PURE__*/React.createElement("span", {
262
+ className: "tds-tab__label"
263
+ }, resolvedLabel), rightIcon && (/*#__PURE__*/React.createElement("span", {
264
+ className: "tds-tab__icon",
265
+ "aria-hidden": "true"
266
+ }, /*#__PURE__*/React.createElement(Icon_Icon.Icon, {
267
+ iconName: rightIcon
268
+ }))));
269
+ });
270
+ Tab.displayName = 'Tab';
271
+
272
+ var css_248z = ".tds-tab-group{align-items:stretch;border-bottom:1px solid var(--border-primary,#b3b3b3);display:inline-flex;gap:0}.tds-tab-group--behaviour-hug{display:inline-flex;width:auto}.tds-tab-group--behaviour-fill{display:flex;width:100%}.tds-tab-group--behaviour-fill>.tds-tab{flex:1 1 0;min-width:0}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFFRSxtQkFBb0IsQ0FFcEIscURBQXVELENBSHZELG1CQUFvQixDQUVwQixLQUVGLENBRUEsOEJBQ0UsbUJBQW9CLENBQ3BCLFVBQ0YsQ0FFQSwrQkFDRSxZQUFhLENBQ2IsVUFDRixDQUVBLHdDQUNFLFVBQVcsQ0FDWCxXQUNGIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGRzLXRhYi1ncm91cCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXByaW1hcnksICNiM2IzYjMpO1xufVxuXG4udGRzLXRhYi1ncm91cC0tYmVoYXZpb3VyLWh1ZyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogYXV0bztcbn1cblxuLnRkcy10YWItZ3JvdXAtLWJlaGF2aW91ci1maWxsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi50ZHMtdGFiLWdyb3VwLS1iZWhhdmlvdXItZmlsbCA+IC50ZHMtdGFiIHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbiJdfQ== */";
273
+ styleInject_es.styleInject(css_248z);
274
+
275
+ var isTabElement = function isTabElement(node) {
276
+ return /*#__PURE__*/React.isValidElement(node);
277
+ };
278
+ /**
279
+ * React.Children.toArray does not unpack fragments; this walker does, so a
280
+ * caller can pass <>...</> or any nested fragment of Tab children.
281
+ */
282
+ var _flattenChildren = function flattenChildren(children) {
283
+ var out = [];
284
+ React.Children.forEach(children, function (child) {
285
+ if (/*#__PURE__*/React.isValidElement(child) && child.type === React.Fragment) {
286
+ out.push.apply(out, _rollupPluginBabelHelpers._toConsumableArray(_flattenChildren(child.props.children)));
287
+ } else {
288
+ out.push(child);
289
+ }
290
+ });
291
+ return out;
292
+ };
293
+ /** Tablist container that manages selection and keyboard navigation across Tab children. */
294
+ var TabGroup = function TabGroup(_ref) {
295
+ var _ref$behaviour = _ref.behaviour,
296
+ behaviour = _ref$behaviour === void 0 ? 'hug' : _ref$behaviour,
297
+ _ref$defaultSelectedI = _ref.defaultSelectedIndex,
298
+ defaultSelectedIndex = _ref$defaultSelectedI === void 0 ? 0 : _ref$defaultSelectedI,
299
+ controlledSelectedIndex = _ref.selectedIndex,
300
+ onSelectedIndexChange = _ref.onSelectedIndexChange,
301
+ children = _ref.children,
302
+ ariaLabelProp = _ref['aria-label'],
303
+ ariaLabel = _ref.ariaLabel,
304
+ id = _ref.id,
305
+ className = _ref.className;
306
+ var isControlled = controlledSelectedIndex !== undefined;
307
+ var _useState = React.useState(defaultSelectedIndex),
308
+ _useState2 = _rollupPluginBabelHelpers._slicedToArray(_useState, 2),
309
+ internalSelectedIndex = _useState2[0],
310
+ setInternalSelectedIndex = _useState2[1];
311
+ var selectedIndex = isControlled ? controlledSelectedIndex : internalSelectedIndex;
312
+ var resolvedAriaLabel = ariaLabelProp !== null && ariaLabelProp !== void 0 ? ariaLabelProp : ariaLabel;
313
+ var tabRefs = React.useRef([]);
314
+ var tabChildren = React.useMemo(function () {
315
+ return _flattenChildren(children).filter(isTabElement);
316
+ }, [children]);
317
+ var focusTabAt = React.useCallback(function (index) {
318
+ var node = tabRefs.current[index];
319
+ if (node) {
320
+ node.focus();
321
+ }
322
+ }, []);
323
+ var selectIndex = React.useCallback(function (nextIndex) {
324
+ if (!isControlled) {
325
+ setInternalSelectedIndex(nextIndex);
326
+ }
327
+ onSelectedIndexChange === null || onSelectedIndexChange === void 0 || onSelectedIndexChange(nextIndex);
328
+ }, [isControlled, onSelectedIndexChange]);
329
+ var findNextEnabledIndex = React.useCallback(function (startIndex, direction) {
330
+ var total = tabChildren.length;
331
+ if (total === 0) return startIndex;
332
+ var nextIndex = startIndex;
333
+ for (var i = 0; i < total; i += 1) {
334
+ nextIndex = (nextIndex + direction + total) % total;
335
+ var child = tabChildren[nextIndex];
336
+ if (!child.props.disabled && child.props.state !== 'disabled') {
337
+ return nextIndex;
338
+ }
339
+ }
340
+ return startIndex;
341
+ }, [tabChildren]);
342
+ var handleKeyDown = React.useCallback(function (event) {
343
+ var total = tabChildren.length;
344
+ if (total === 0) return;
345
+ var nextIndex = null;
346
+ switch (event.key) {
347
+ case 'ArrowRight':
348
+ nextIndex = findNextEnabledIndex(selectedIndex, 1);
349
+ break;
350
+ case 'ArrowLeft':
351
+ nextIndex = findNextEnabledIndex(selectedIndex, -1);
352
+ break;
353
+ case 'Home':
354
+ nextIndex = findNextEnabledIndex(-1, 1);
355
+ break;
356
+ case 'End':
357
+ nextIndex = findNextEnabledIndex(total, -1);
358
+ break;
359
+ default:
360
+ return;
361
+ }
362
+ if (nextIndex !== null && nextIndex !== selectedIndex) {
363
+ event.preventDefault();
364
+ selectIndex(nextIndex);
365
+ focusTabAt(nextIndex);
366
+ }
367
+ }, [tabChildren, selectedIndex, findNextEnabledIndex, selectIndex, focusTabAt]);
368
+ return /*#__PURE__*/React.createElement("div", {
369
+ role: "tablist",
370
+ "aria-orientation": "horizontal",
371
+ "aria-label": resolvedAriaLabel,
372
+ id: id,
373
+ className: cn.cn('tds-tab-group', "tds-tab-group--behaviour-".concat(behaviour === '100%' ? 'fill' : 'hug'), className),
374
+ onKeyDown: handleKeyDown
375
+ }, tabChildren.map(function (child, index) {
376
+ var _child$key;
377
+ var isActive = index === selectedIndex;
378
+ var originalOnClick = child.props.onClick;
379
+ return /*#__PURE__*/React.cloneElement(child, {
380
+ key: (_child$key = child.key) !== null && _child$key !== void 0 ? _child$key : index,
381
+ active: isActive,
382
+ tabIndex: isActive ? 0 : -1,
383
+ ref: function ref(node) {
384
+ tabRefs.current[index] = node;
385
+ },
386
+ onClick: function onClick(event) {
387
+ originalOnClick === null || originalOnClick === void 0 || originalOnClick(event);
388
+ if (!event.defaultPrevented) {
389
+ selectIndex(index);
390
+ }
391
+ }
392
+ });
393
+ }));
394
+ };
22
395
 
23
396
  exports.Button = Button_Button.Button;
24
397
  exports.IconButton = IconButton_IconButton.IconButton;
@@ -31,4 +404,8 @@ exports.Chip = Chip_Chip.Chip;
31
404
  exports.Flag = Flag_Flag.Flag;
32
405
  exports.Toast = Toast_Toast.Toast;
33
406
  exports.useTypographyToken = utils_hooks.useTypographyToken;
407
+ exports.DialogBox = DialogBox;
408
+ exports.InputHelperMessage = InputHelperMessage;
409
+ exports.Tab = Tab;
410
+ exports.TabGroup = TabGroup;
34
411
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/InputHelperMessage/InputHelperMessage.tsx","../src/DialogBox/DialogBox.tsx","../src/Tab/Tab.tsx","../src/TabGroup/TabGroup.tsx"],"sourcesContent":["import React from 'react';\nimport { type IconName } from '@times-design-system/icons';\nimport { Icon } from '../Icon/Icon';\nimport { cn } from '../utils/cn';\nimport './styles.css';\n\nexport type InputHelperMessageType = 'error' | 'success' | 'info' | 'warning';\n\nconst HELPER_MESSAGE_ICON: Record<InputHelperMessageType, IconName> = {\n error: 'filled_report',\n success: 'filled_check_circle',\n info: 'filled_info',\n warning: 'filled_warning'\n};\n\nexport interface InputHelperMessageProps {\n /** Sets semantic intent, icon variant, and icon colour */\n type: InputHelperMessageType;\n /** Required. Plain text or text with inline Link component(s) */\n message: React.ReactNode;\n /** Expose for aria-describedby association from parent input */\n id?: string;\n className?: string;\n}\n\n/**\n * Per-field status indicator. Renders a status icon and helper text beneath\n * an input control. Always used as a supporting component inside an input — never standalone.\n */\nexport const InputHelperMessage: React.FC<InputHelperMessageProps> = ({\n type,\n message,\n id,\n className\n}) => {\n const iconName = HELPER_MESSAGE_ICON[type];\n\n return (\n <span\n id={id}\n className={cn(\n 'tds-input-helper-message',\n `tds-input-helper-message--${type}`,\n className\n )}\n >\n <span className=\"tds-input-helper-message__icon\" aria-hidden=\"true\">\n <Icon iconName={iconName} size={{ width: '24px', height: '24px' }} />\n </span>\n <span className=\"tds-input-helper-message__text\">{message}</span>\n </span>\n );\n};\n","import React, { useCallback, useEffect, useId, useRef } from 'react';\nimport { Icon } from '../Icon/Icon';\nimport { cn } from '../utils/cn';\nimport './styles.css';\n\nexport interface DialogBoxProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Controls dialog visibility */\n open: boolean;\n /** Called when the user requests close (dismiss icon, overlay click, ESC) */\n onDismiss?: () => void;\n /** Show or hide the dismiss icon button in the header. Mirrors the `dismiss` toggle surfaced on the Figma master. */\n dismiss?: boolean;\n /** Hide the overlay scrim (use only for embedded demos) */\n hideOverlay?: boolean;\n /** Disable overlay click-to-dismiss (recommended for destructive confirmations) */\n disableOverlayDismiss?: boolean;\n /** Disable ESC-to-dismiss (recommended for destructive confirmations) */\n disableEscDismiss?: boolean;\n /** Accessible role; use `alertdialog` for urgent confirmations */\n role?: 'dialog' | 'alertdialog';\n}\n\ninterface DialogBoxHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Show or hide the dismiss icon button in the top right */\n dismiss?: boolean;\n /** Internal: dismiss handler bound by parent DialogBox */\n onDismiss?: () => void;\n /** Internal: id assigned to the title for aria-labelledby */\n titleId?: string;\n}\n\ninterface DialogBoxBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Internal: id assigned to the body for aria-describedby */\n descriptionId?: string;\n}\n\ntype DialogBoxFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst DialogBoxHeader: React.FC<DialogBoxHeaderProps> = ({\n dismiss = true,\n onDismiss,\n titleId,\n children,\n className,\n ...rest\n}) => (\n <div className={cn('tds-dialog-box__header', className)} {...rest}>\n <div\n id={titleId}\n role=\"heading\"\n aria-level={2}\n className=\"tds-dialog-box__title\"\n >\n {children}\n </div>\n {dismiss && (\n <button\n type=\"button\"\n className=\"tds-dialog-box__dismiss\"\n aria-label=\"Dismiss dialog\"\n onClick={onDismiss}\n >\n <Icon\n iconName=\"filled_close\"\n size={{ width: '24px', height: '24px' }}\n />\n </button>\n )}\n </div>\n);\n\nconst DialogBoxBody: React.FC<DialogBoxBodyProps> = ({\n descriptionId,\n children,\n className,\n ...rest\n}) => (\n <div\n id={descriptionId}\n className={cn('tds-dialog-box__body', className)}\n {...rest}\n >\n {children}\n </div>\n);\n\nconst DialogBoxFooter: React.FC<DialogBoxFooterProps> = ({\n children,\n className,\n ...rest\n}) => (\n <div className={cn('tds-dialog-box__footer', className)} {...rest}>\n {children}\n </div>\n);\n\ninterface DialogBoxComposition {\n Header: typeof DialogBoxHeader;\n Body: typeof DialogBoxBody;\n Footer: typeof DialogBoxFooter;\n}\n\n/**\n * Simple dialog box for alerts and short confirmations. Renders a centered\n * surface over a scrim overlay. For richer flows (forms, multi-step content),\n * use the future Modal component.\n */\nconst DialogBoxRoot: React.FC<DialogBoxProps> = ({\n open,\n onDismiss,\n dismiss,\n hideOverlay = false,\n disableOverlayDismiss = false,\n disableEscDismiss = false,\n role = 'dialog',\n className,\n children,\n ...rest\n}) => {\n const surfaceRef = useRef<HTMLDivElement | null>(null);\n const previouslyFocusedRef = useRef<HTMLElement | null>(null);\n const autoTitleId = useId();\n const autoDescriptionId = useId();\n const titleId = `tds-dialog-box-title-${autoTitleId}`;\n const descriptionId = `tds-dialog-box-body-${autoDescriptionId}`;\n\n const requestDismiss = useCallback(() => {\n if (onDismiss) onDismiss();\n }, [onDismiss]);\n\n useEffect(() => {\n if (!open || disableEscDismiss) return undefined;\n const handler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n requestDismiss();\n }\n };\n window.addEventListener('keydown', handler);\n return () => window.removeEventListener('keydown', handler);\n }, [open, disableEscDismiss, requestDismiss]);\n\n useEffect(() => {\n if (!open) return undefined;\n previouslyFocusedRef.current = document.activeElement as HTMLElement | null;\n surfaceRef.current?.focus({ preventScroll: true });\n return () => {\n previouslyFocusedRef.current?.focus?.();\n };\n }, [open]);\n\n if (!open) return null;\n\n const decoratedChildren = React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) return child;\n if (child.type === DialogBoxHeader) {\n const childProps = (child as React.ReactElement<DialogBoxHeaderProps>)\n .props;\n // Root `dismiss` mirrors the Figma master toggle; an explicit Header `dismiss` still wins.\n const resolvedDismiss =\n childProps.dismiss !== undefined ? childProps.dismiss : dismiss;\n return React.cloneElement(\n child as React.ReactElement<DialogBoxHeaderProps>,\n {\n onDismiss: requestDismiss,\n titleId,\n dismiss: resolvedDismiss\n }\n );\n }\n if (child.type === DialogBoxBody) {\n return React.cloneElement(\n child as React.ReactElement<DialogBoxBodyProps>,\n {\n descriptionId\n }\n );\n }\n return child;\n });\n\n const handleOverlayClick = () => {\n if (!disableOverlayDismiss) requestDismiss();\n };\n\n return (\n <div\n className={cn(\n 'tds-dialog-box',\n hideOverlay && 'tds-dialog-box--no-overlay',\n className\n )}\n {...rest}\n >\n {!hideOverlay && (\n <div\n className=\"tds-dialog-box__overlay\"\n aria-hidden=\"true\"\n onClick={handleOverlayClick}\n />\n )}\n <div\n ref={surfaceRef}\n className=\"tds-dialog-box__surface\"\n role={role}\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n tabIndex={-1}\n >\n {decoratedChildren}\n </div>\n </div>\n );\n};\n\nconst DialogBox = DialogBoxRoot as React.FC<DialogBoxProps> &\n DialogBoxComposition;\nDialogBox.Header = DialogBoxHeader;\nDialogBox.Body = DialogBoxBody;\nDialogBox.Footer = DialogBoxFooter;\nDialogBox.displayName = 'DialogBox';\nDialogBoxHeader.displayName = 'DialogBox.Header';\nDialogBoxBody.displayName = 'DialogBox.Body';\nDialogBoxFooter.displayName = 'DialogBox.Footer';\n\nexport { DialogBox };\n","import React, { forwardRef } from 'react';\nimport { cn } from '../utils/cn';\nimport './styles.css';\nimport { IconName } from '@times-design-system/icons';\nimport { Icon } from '../Icon/Icon';\n\ntype TabState = 'base' | 'hover' | 'pressed' | 'disabled' | 'focus';\ntype TabSize = 'medium' | 'large';\n\nexport interface TabProps {\n /** Visual preview state for parity/testing */\n state?: TabState;\n /** Tab size variant */\n size?: TabSize;\n /** Whether the tab is the selected tab in its group */\n active?: boolean;\n /** Applies channel color token family */\n channel?: boolean;\n /** Show a leading icon */\n leftIcon?: IconName;\n /** Show a trailing icon */\n rightIcon?: IconName;\n /** Visible label */\n label?: React.ReactNode;\n /** Optional alias for label content */\n children?: React.ReactNode;\n /** Optional accessible name override */\n 'aria-label'?: string;\n /** Optional camelCase alias for aria-label */\n ariaLabel?: string;\n /** Optional id for aria-controls relationships */\n id?: string;\n /** Id of the panel this tab controls */\n 'aria-controls'?: string;\n /** @ignore */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n /** @ignore */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n /** @ignore */\n className?: string;\n /** @ignore */\n disabled?: boolean;\n /** @ignore */\n tabIndex?: number;\n}\n\n/** Single tab inside a TabGroup. Render through TabGroup for tablist semantics and keyboard nav. */\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(\n (\n {\n state = 'base',\n size = 'medium',\n active = true,\n channel = false,\n leftIcon,\n rightIcon,\n label,\n children,\n 'aria-label': ariaLabelProp,\n ariaLabel,\n id,\n 'aria-controls': ariaControls,\n onClick,\n onKeyDown,\n className,\n disabled = false,\n tabIndex\n },\n ref\n ) => {\n const resolvedDisabled = disabled || state === 'disabled';\n const resolvedLabel = label ?? children ?? 'Tab Label';\n const resolvedAriaLabel = ariaLabelProp ?? ariaLabel;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"tab\"\n id={id}\n aria-selected={active}\n aria-controls={ariaControls}\n aria-label={resolvedAriaLabel}\n tabIndex={tabIndex ?? (active ? 0 : -1)}\n className={cn(\n 'tds-tab',\n `tds-tab--state-${state}`,\n `tds-tab--size-${size}`,\n active ? 'tds-tab--active-true' : 'tds-tab--active-false',\n channel ? 'tds-tab--channel-true' : 'tds-tab--channel-false',\n className\n )}\n disabled={resolvedDisabled}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {leftIcon && (\n <span className=\"tds-tab__icon\" aria-hidden=\"true\">\n <Icon iconName={leftIcon} />\n </span>\n )}\n\n <span className=\"tds-tab__label\">{resolvedLabel}</span>\n\n {rightIcon && (\n <span className=\"tds-tab__icon\" aria-hidden=\"true\">\n <Icon iconName={rightIcon} />\n </span>\n )}\n </button>\n );\n }\n);\n\nTab.displayName = 'Tab';\n","import React, {\n Children,\n cloneElement,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { cn } from '../utils/cn';\nimport './styles.css';\nimport { type TabProps } from '../Tab/Tab';\n\ntype TabGroupBehaviour = 'hug' | '100%';\n\nexport interface TabGroupProps {\n /** Sizing behaviour: hug content or fill the container */\n behaviour?: TabGroupBehaviour;\n /** Index of the initially selected tab (uncontrolled) */\n defaultSelectedIndex?: number;\n /** Index of the selected tab (controlled) */\n selectedIndex?: number;\n /** Callback fired when the selected tab changes */\n onSelectedIndexChange?: (index: number) => void;\n /** Tab children */\n children?: React.ReactNode;\n /** Optional accessible name for the tablist */\n 'aria-label'?: string;\n /** Optional camelCase alias for aria-label */\n ariaLabel?: string;\n /** Optional id for the tablist root */\n id?: string;\n /** @ignore */\n className?: string;\n}\n\nconst isTabElement = (\n node: React.ReactNode\n): node is React.ReactElement<TabProps> => isValidElement(node);\n\n/**\n * React.Children.toArray does not unpack fragments; this walker does, so a\n * caller can pass <>...</> or any nested fragment of Tab children.\n */\nconst flattenChildren = (children: React.ReactNode): React.ReactNode[] => {\n const out: React.ReactNode[] = [];\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === React.Fragment) {\n out.push(\n ...flattenChildren(\n (child.props as { children?: React.ReactNode }).children\n )\n );\n } else {\n out.push(child);\n }\n });\n return out;\n};\n\n/** Tablist container that manages selection and keyboard navigation across Tab children. */\nexport const TabGroup: React.FC<TabGroupProps> = ({\n behaviour = 'hug',\n defaultSelectedIndex = 0,\n selectedIndex: controlledSelectedIndex,\n onSelectedIndexChange,\n children,\n 'aria-label': ariaLabelProp,\n ariaLabel,\n id,\n className\n}) => {\n const isControlled = controlledSelectedIndex !== undefined;\n const [internalSelectedIndex, setInternalSelectedIndex] =\n useState(defaultSelectedIndex);\n const selectedIndex = isControlled\n ? (controlledSelectedIndex as number)\n : internalSelectedIndex;\n const resolvedAriaLabel = ariaLabelProp ?? ariaLabel;\n\n const tabRefs = useRef<Array<HTMLButtonElement | null>>([]);\n\n const tabChildren = useMemo(() => {\n return flattenChildren(children).filter(isTabElement);\n }, [children]);\n\n const focusTabAt = useCallback((index: number) => {\n const node = tabRefs.current[index];\n if (node) {\n node.focus();\n }\n }, []);\n\n const selectIndex = useCallback(\n (nextIndex: number) => {\n if (!isControlled) {\n setInternalSelectedIndex(nextIndex);\n }\n onSelectedIndexChange?.(nextIndex);\n },\n [isControlled, onSelectedIndexChange]\n );\n\n const findNextEnabledIndex = useCallback(\n (startIndex: number, direction: 1 | -1): number => {\n const total = tabChildren.length;\n if (total === 0) return startIndex;\n let nextIndex = startIndex;\n for (let i = 0; i < total; i += 1) {\n nextIndex = (nextIndex + direction + total) % total;\n const child = tabChildren[nextIndex];\n if (!child.props.disabled && child.props.state !== 'disabled') {\n return nextIndex;\n }\n }\n return startIndex;\n },\n [tabChildren]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const total = tabChildren.length;\n if (total === 0) return;\n\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowRight':\n nextIndex = findNextEnabledIndex(selectedIndex, 1);\n break;\n case 'ArrowLeft':\n nextIndex = findNextEnabledIndex(selectedIndex, -1);\n break;\n case 'Home':\n nextIndex = findNextEnabledIndex(-1, 1);\n break;\n case 'End':\n nextIndex = findNextEnabledIndex(total, -1);\n break;\n default:\n return;\n }\n\n if (nextIndex !== null && nextIndex !== selectedIndex) {\n event.preventDefault();\n selectIndex(nextIndex);\n focusTabAt(nextIndex);\n }\n },\n [tabChildren, selectedIndex, findNextEnabledIndex, selectIndex, focusTabAt]\n );\n\n return (\n <div\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n aria-label={resolvedAriaLabel}\n id={id}\n className={cn(\n 'tds-tab-group',\n `tds-tab-group--behaviour-${behaviour === '100%' ? 'fill' : 'hug'}`,\n className\n )}\n onKeyDown={handleKeyDown}\n >\n {tabChildren.map((child, index) => {\n const isActive = index === selectedIndex;\n const originalOnClick = child.props.onClick;\n\n return cloneElement(child, {\n key: child.key ?? index,\n active: isActive,\n tabIndex: isActive ? 0 : -1,\n ref: (node: HTMLButtonElement | null) => {\n tabRefs.current[index] = node;\n },\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n originalOnClick?.(event);\n if (!event.defaultPrevented) {\n selectIndex(index);\n }\n }\n } as Partial<TabProps> & { ref: React.Ref<HTMLButtonElement> });\n })}\n </div>\n );\n};\n"],"names":["HELPER_MESSAGE_ICON","error","success","info","warning","InputHelperMessage","_ref","type","message","id","className","iconName","React","createElement","cn","concat","Icon","size","width","height","DialogBoxHeader","_ref$dismiss","dismiss","onDismiss","titleId","children","rest","_objectWithoutProperties","_excluded","_objectSpread","role","onClick","DialogBoxBody","_ref2","descriptionId","_excluded2","DialogBoxFooter","_ref3","_excluded3","DialogBoxRoot","_ref4","open","_ref4$hideOverlay","hideOverlay","_ref4$disableOverlayD","disableOverlayDismiss","_ref4$disableEscDismi","disableEscDismiss","_ref4$role","_excluded4","surfaceRef","useRef","previouslyFocusedRef","autoTitleId","useId","autoDescriptionId","requestDismiss","useCallback","useEffect","undefined","handler","event","key","stopPropagation","window","addEventListener","removeEventListener","_surfaceRef$current","current","document","activeElement","focus","preventScroll","_previouslyFocusedRef","_previouslyFocusedRef2","call","decoratedChildren","Children","map","child","isValidElement","childProps","props","resolvedDismiss","cloneElement","handleOverlayClick","ref","tabIndex","DialogBox","Header","Body","Footer","displayName","Tab","forwardRef","_ref$state","state","_ref$size","_ref$active","active","_ref$channel","channel","leftIcon","rightIcon","label","ariaLabelProp","ariaLabel","ariaControls","onKeyDown","_ref$disabled","disabled","resolvedDisabled","resolvedLabel","resolvedAriaLabel","isTabElement","node","flattenChildren","out","forEach","Fragment","push","apply","_toConsumableArray","TabGroup","_ref$behaviour","behaviour","_ref$defaultSelectedI","defaultSelectedIndex","controlledSelectedIndex","selectedIndex","onSelectedIndexChange","isControlled","_useState","useState","_useState2","_slicedToArray","internalSelectedIndex","setInternalSelectedIndex","tabRefs","tabChildren","useMemo","filter","focusTabAt","index","selectIndex","nextIndex","findNextEnabledIndex","startIndex","direction","total","length","i","handleKeyDown","preventDefault","_child$key","isActive","originalOnClick","defaultPrevented"],"mappings":"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"}