tyrell-react 1.0.0-TC49 → 1.0.0-TC51

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.
@@ -17,10 +17,24 @@ export interface TyModalProps extends React.HTMLAttributes<HTMLElement> {
17
17
  open?: boolean;
18
18
  /** Show backdrop behind modal (default: true) */
19
19
  backdrop?: boolean;
20
- /** Allow closing modal by clicking backdrop (default: true) */
20
+ /**
21
+ * @deprecated Use `preventOutsideClick` — string-boolean attrs are being
22
+ * phased out. Still works; prevent-* wins when both are set.
23
+ */
21
24
  closeOnOutsideClick?: boolean;
22
- /** Allow closing modal with Escape key (default: true) */
25
+ /**
26
+ * @deprecated Use `preventEscape` — string-boolean attrs are being phased
27
+ * out. Still works; prevent-* wins when both are set.
28
+ */
23
29
  closeOnEscape?: boolean;
30
+ /** Backdrop clicks no longer close the modal (also hides the built-in ✕) */
31
+ preventOutsideClick?: boolean;
32
+ /**
33
+ * ESC no longer closes the modal (keydown is consumed, so the browser's
34
+ * double-ESC anti-trap never fires). A fully guarded modal must render its
35
+ * own close control — WCAG 2.1.2.
36
+ */
37
+ preventEscape?: boolean;
24
38
  /**
25
39
  * Accessible name — sets aria-label on the internal <dialog>. The dialog
26
40
  * gets role="dialog" for free, but nothing names it unless you set this.
@@ -1 +1 @@
1
- {"version":3,"file":"TyModal.d.ts","sourceRoot":"","sources":["../../src/components/TyModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAKtE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC;CAC5E;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACrE,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IAEvE,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,OAAO,iFA8HnB,CAAC"}
1
+ {"version":3,"file":"TyModal.d.ts","sourceRoot":"","sources":["../../src/components/TyModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAKtE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC;CAC5E;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACrE,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IAEvE,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,OAAO,iFAyInB,CAAC"}
@@ -2,7 +2,7 @@ import React, { useEffect, useRef, useImperativeHandle } from 'react';
2
2
  import { hostProps } from '../utils/host-props';
3
3
  import { useBooleanProperty, coerceBool } from '../utils/use-boolean-prop';
4
4
  import { needsPropertyBridge } from '../utils/react-version';
5
- export const TyModal = React.forwardRef(({ open, backdrop, closeOnOutsideClick, closeOnEscape, label, onOpen, onClose, onBeforeClose, children, ...props }, ref) => {
5
+ export const TyModal = React.forwardRef(({ open, backdrop, closeOnOutsideClick, closeOnEscape, preventOutsideClick, preventEscape, label, onOpen, onClose, onBeforeClose, children, ...props }, ref) => {
6
6
  const elementRef = useRef(null);
7
7
  useImperativeHandle(ref, () => ({
8
8
  show: () => {
@@ -88,7 +88,9 @@ export const TyModal = React.forwardRef(({ open, backdrop, closeOnOutsideClick,
88
88
  setIf('backdrop', backdrop);
89
89
  setIf('closeOnOutsideClick', closeOnOutsideClick);
90
90
  setIf('closeOnEscape', closeOnEscape);
91
- }, [backdrop, closeOnOutsideClick, closeOnEscape]);
91
+ setIf('preventOutsideClick', preventOutsideClick);
92
+ setIf('preventEscape', preventEscape);
93
+ }, [backdrop, closeOnOutsideClick, closeOnEscape, preventOutsideClick, preventEscape]);
92
94
  const webComponentProps = {
93
95
  ...hostProps(props),
94
96
  ref: elementRef,
@@ -106,6 +108,13 @@ export const TyModal = React.forwardRef(({ open, backdrop, closeOnOutsideClick,
106
108
  if (closeOnEscape !== undefined && !coerceBool(closeOnEscape)) {
107
109
  webComponentProps['close-on-escape'] = 'false';
108
110
  }
111
+ // Presence booleans: render the bare attribute only when true
112
+ if (preventOutsideClick !== undefined && coerceBool(preventOutsideClick)) {
113
+ webComponentProps['prevent-outside-click'] = '';
114
+ }
115
+ if (preventEscape !== undefined && coerceBool(preventEscape)) {
116
+ webComponentProps['prevent-escape'] = '';
117
+ }
109
118
  if (label)
110
119
  webComponentProps.label = label;
111
120
  return React.createElement('ty-modal', webComponentProps, children);
@@ -1 +1 @@
1
- {"version":3,"file":"TyModal.js","sourceRoot":"","sources":["../../src/components/TyModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TyModal.js","sourceRoot":"","sources":["../../src/components/TyModal.tsx"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Current version of tyrell-react. Synced with package.json on build. */
2
- export declare const VERSION = "1.0.0-TC49";
2
+ export declare const VERSION = "1.0.0-TC51";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  // Generated from package.json by scripts/generate-version.js
3
3
  // Run 'npm run generate:version' to regenerate.
4
4
  /** Current version of tyrell-react. Synced with package.json on build. */
5
- export const VERSION = '1.0.0-TC49';
5
+ export const VERSION = '1.0.0-TC51';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tyrell-react",
3
- "version": "1.0.0-TC49",
3
+ "version": "1.0.0-TC51",
4
4
  "description": "React wrappers for Tyrell Components",
5
5
  "type": "module",
6
6
  "main": "./dist/components/index.js",
@@ -25,12 +25,28 @@ export interface TyModalProps extends React.HTMLAttributes<HTMLElement> {
25
25
  /** Show backdrop behind modal (default: true) */
26
26
  backdrop?: boolean;
27
27
 
28
- /** Allow closing modal by clicking backdrop (default: true) */
28
+ /**
29
+ * @deprecated Use `preventOutsideClick` — string-boolean attrs are being
30
+ * phased out. Still works; prevent-* wins when both are set.
31
+ */
29
32
  closeOnOutsideClick?: boolean;
30
33
 
31
- /** Allow closing modal with Escape key (default: true) */
34
+ /**
35
+ * @deprecated Use `preventEscape` — string-boolean attrs are being phased
36
+ * out. Still works; prevent-* wins when both are set.
37
+ */
32
38
  closeOnEscape?: boolean;
33
39
 
40
+ /** Backdrop clicks no longer close the modal (also hides the built-in ✕) */
41
+ preventOutsideClick?: boolean;
42
+
43
+ /**
44
+ * ESC no longer closes the modal (keydown is consumed, so the browser's
45
+ * double-ESC anti-trap never fires). A fully guarded modal must render its
46
+ * own close control — WCAG 2.1.2.
47
+ */
48
+ preventEscape?: boolean;
49
+
34
50
  /**
35
51
  * Accessible name — sets aria-label on the internal <dialog>. The dialog
36
52
  * gets role="dialog" for free, but nothing names it unless you set this.
@@ -67,6 +83,8 @@ export const TyModal = React.forwardRef<TyModalRef, TyModalProps>(
67
83
  backdrop,
68
84
  closeOnOutsideClick,
69
85
  closeOnEscape,
86
+ preventOutsideClick,
87
+ preventEscape,
70
88
  label,
71
89
  onOpen,
72
90
  onClose,
@@ -159,7 +177,9 @@ export const TyModal = React.forwardRef<TyModalRef, TyModalProps>(
159
177
  setIf('backdrop', backdrop);
160
178
  setIf('closeOnOutsideClick', closeOnOutsideClick);
161
179
  setIf('closeOnEscape', closeOnEscape);
162
- }, [backdrop, closeOnOutsideClick, closeOnEscape]);
180
+ setIf('preventOutsideClick', preventOutsideClick);
181
+ setIf('preventEscape', preventEscape);
182
+ }, [backdrop, closeOnOutsideClick, closeOnEscape, preventOutsideClick, preventEscape]);
163
183
 
164
184
  const webComponentProps: Record<string, any> = {
165
185
  ...hostProps(props),
@@ -179,6 +199,13 @@ export const TyModal = React.forwardRef<TyModalRef, TyModalProps>(
179
199
  if (closeOnEscape !== undefined && !coerceBool(closeOnEscape)) {
180
200
  webComponentProps['close-on-escape'] = 'false';
181
201
  }
202
+ // Presence booleans: render the bare attribute only when true
203
+ if (preventOutsideClick !== undefined && coerceBool(preventOutsideClick)) {
204
+ webComponentProps['prevent-outside-click'] = '';
205
+ }
206
+ if (preventEscape !== undefined && coerceBool(preventEscape)) {
207
+ webComponentProps['prevent-escape'] = '';
208
+ }
182
209
  if (label) webComponentProps.label = label;
183
210
 
184
211
  return React.createElement(
package/src/version.ts CHANGED
@@ -3,4 +3,4 @@
3
3
  // Run 'npm run generate:version' to regenerate.
4
4
 
5
5
  /** Current version of tyrell-react. Synced with package.json on build. */
6
- export const VERSION = '1.0.0-TC49'
6
+ export const VERSION = '1.0.0-TC51'