@molecule/app-ui-react 1.0.1 → 1.1.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.
package/README.md CHANGED
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-08-04T01:53:05.300Z
6
+ Generated: 2026-09-24T08:01:39.991Z
7
7
  -->
8
8
 
9
9
  # @molecule/app-ui-react
@@ -423,6 +423,54 @@ interface CheckboxProps extends InputElementProps {
423
423
  }
424
424
  ```
425
425
 
426
+ #### `ConfirmButtonProps`
427
+
428
+ Props for {@link ConfirmButton}.
429
+
430
+ ```typescript
431
+ interface ConfirmButtonProps extends Omit<
432
+ ButtonProps,
433
+ 'onClick' | 'children' | 'onConfirm' | keyof React.DOMAttributes<HTMLButtonElement>
434
+ > {
435
+ /**
436
+ * Fired ONLY on the confirming (second) click — i.e. when the action
437
+ * actually commits. Errors should be handled by the caller (render an
438
+ * inline banner); while the returned promise is pending the button stays
439
+ * in its confirming state and ignores further clicks.
440
+ */
441
+ onConfirm: () => void | Promise<void>
442
+ /**
443
+ * Visible label in the idle (armed-to-be-clicked) state.
444
+ */
445
+ label: React.ReactNode
446
+ /**
447
+ * Visible label in the armed state — the "click again to confirm" step.
448
+ * Defaults to a localized "Confirm?" via the i18n bond.
449
+ */
450
+ confirmLabel?: React.ReactNode
451
+ /**
452
+ * Visible label while {@link onConfirm} is pending. Defaults to a
453
+ * localized "Working…".
454
+ */
455
+ pendingLabel?: React.ReactNode
456
+ /**
457
+ * Seconds before the armed state auto-disarms back to idle. Low-stakes
458
+ * actions tolerate a long window; destructive ones should keep it short.
459
+ * `0` disables auto-disarm (not recommended — a stray click then leaves
460
+ * the button armed forever).
461
+ */
462
+ disarmSeconds?: number
463
+ /**
464
+ * Disable the control entirely (idle and confirming states).
465
+ */
466
+ disabled?: boolean
467
+ /**
468
+ * data-mol-id for the button (all states share one element).
469
+ */
470
+ testId?: string
471
+ }
472
+ ```
473
+
426
474
  #### `ContainerProps`
427
475
 
428
476
  Props for the Container layout component.
@@ -2292,6 +2340,24 @@ const Checkbox: React.ForwardRefExoticComponent<
2292
2340
  >
2293
2341
  ```
2294
2342
 
2343
+ #### `ConfirmButton`
2344
+
2345
+ Two-step destructive-action button: the first click ARMS it ("Confirm?"),
2346
+ the second commits. Auto-disarms after {@link ConfirmButtonProps.disarmSeconds}
2347
+ (default 4s) so an armed-then-abandoned row can't surprise anyone later.
2348
+
2349
+ Replaces the fleet's hand-rolled arm-confirm pattern (previously
2350
+ reimplemented per app — button flips, dialogs, `window.confirm`, or worse,
2351
+ nothing at all) with one accessible, touch-friendly implementation:
2352
+ the whole button is the target (≥36px via the button CVA), the armed
2353
+ state is announced through `aria-live`, and Escape disarms.
2354
+
2355
+ ```typescript
2356
+ const ConfirmButton: React.ForwardRefExoticComponent<
2357
+ ConfirmButtonProps & React.RefAttributes<HTMLButtonElement>
2358
+ >
2359
+ ```
2360
+
2295
2361
  #### `Container`
2296
2362
 
2297
2363
  Container component.
@@ -0,0 +1,71 @@
1
+ /**
2
+ * ConfirmButton component.
3
+ *
4
+ * @module
5
+ */
6
+ import React from 'react';
7
+ import type { ButtonProps } from '@molecule/app-ui';
8
+ /**
9
+ * Props for {@link ConfirmButton}.
10
+ */
11
+ export interface ConfirmButtonProps extends Omit<ButtonProps, 'onClick' | 'children' | 'onConfirm' | keyof React.DOMAttributes<HTMLButtonElement>> {
12
+ /**
13
+ * Fired ONLY on the confirming (second) click — i.e. when the action
14
+ * actually commits. Errors should be handled by the caller (render an
15
+ * inline banner); while the returned promise is pending the button stays
16
+ * in its confirming state and ignores further clicks.
17
+ */
18
+ onConfirm: () => void | Promise<void>;
19
+ /**
20
+ * Visible label in the idle (armed-to-be-clicked) state.
21
+ */
22
+ label: React.ReactNode;
23
+ /**
24
+ * Visible label in the armed state — the "click again to confirm" step.
25
+ * Defaults to a localized "Confirm?" via the i18n bond.
26
+ */
27
+ confirmLabel?: React.ReactNode;
28
+ /**
29
+ * Visible label while {@link onConfirm} is pending. Defaults to a
30
+ * localized "Working…".
31
+ */
32
+ pendingLabel?: React.ReactNode;
33
+ /**
34
+ * Seconds before the armed state auto-disarms back to idle. Low-stakes
35
+ * actions tolerate a long window; destructive ones should keep it short.
36
+ * `0` disables auto-disarm (not recommended — a stray click then leaves
37
+ * the button armed forever).
38
+ */
39
+ disarmSeconds?: number;
40
+ /**
41
+ * Disable the control entirely (idle and confirming states).
42
+ */
43
+ disabled?: boolean;
44
+ /**
45
+ * data-mol-id for the button (all states share one element).
46
+ */
47
+ testId?: string;
48
+ }
49
+ /**
50
+ * Two-step destructive-action button: the first click ARMS it ("Confirm?"),
51
+ * the second commits. Auto-disarms after {@link ConfirmButtonProps.disarmSeconds}
52
+ * (default 4s) so an armed-then-abandoned row can't surprise anyone later.
53
+ *
54
+ * Replaces the fleet's hand-rolled arm-confirm pattern (previously
55
+ * reimplemented per app — button flips, dialogs, `window.confirm`, or worse,
56
+ * nothing at all) with one accessible, touch-friendly implementation:
57
+ * the whole button is the target (≥36px via the button CVA), the armed
58
+ * state is announced through `aria-live`, and Escape disarms.
59
+ *
60
+ * @example
61
+ * ```tsx
62
+ * <ConfirmButton
63
+ * label="Delete"
64
+ * confirmLabel="Confirm delete?"
65
+ * onConfirm={() => deleteClient(client.id)}
66
+ * testId="client-delete"
67
+ * />
68
+ * ```
69
+ */
70
+ export declare const ConfirmButton: React.ForwardRefExoticComponent<ConfirmButtonProps & React.RefAttributes<HTMLButtonElement>>;
71
+ //# sourceMappingURL=ConfirmButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmButton.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmButton.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAkD,MAAM,OAAO,CAAA;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,WAAW,EACX,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CACpF;IACC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,8FA6FzB,CAAA"}
@@ -0,0 +1,88 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * ConfirmButton component.
4
+ *
5
+ * @module
6
+ */
7
+ import { forwardRef, useEffect, useRef, useState } from 'react';
8
+ import { useTranslation } from '@molecule/app-react';
9
+ import { getClassMap } from '@molecule/app-ui';
10
+ /**
11
+ * Two-step destructive-action button: the first click ARMS it ("Confirm?"),
12
+ * the second commits. Auto-disarms after {@link ConfirmButtonProps.disarmSeconds}
13
+ * (default 4s) so an armed-then-abandoned row can't surprise anyone later.
14
+ *
15
+ * Replaces the fleet's hand-rolled arm-confirm pattern (previously
16
+ * reimplemented per app — button flips, dialogs, `window.confirm`, or worse,
17
+ * nothing at all) with one accessible, touch-friendly implementation:
18
+ * the whole button is the target (≥36px via the button CVA), the armed
19
+ * state is announced through `aria-live`, and Escape disarms.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <ConfirmButton
24
+ * label="Delete"
25
+ * confirmLabel="Confirm delete?"
26
+ * onConfirm={() => deleteClient(client.id)}
27
+ * testId="client-delete"
28
+ * />
29
+ * ```
30
+ */
31
+ export const ConfirmButton = forwardRef(({ onConfirm, label, confirmLabel, pendingLabel, disarmSeconds = 4, disabled, testId, className, color, size, variant, ...rest }, ref) => {
32
+ const cm = getClassMap();
33
+ const { t } = useTranslation();
34
+ const [phase, setPhase] = useState('idle');
35
+ const disarmTimer = useRef(null);
36
+ const disarm = () => {
37
+ if (disarmTimer.current)
38
+ clearTimeout(disarmTimer.current);
39
+ disarmTimer.current = null;
40
+ setPhase('idle');
41
+ };
42
+ useEffect(() => () => {
43
+ if (disarmTimer.current)
44
+ clearTimeout(disarmTimer.current);
45
+ }, []);
46
+ useEffect(() => {
47
+ if (phase !== 'armed' || disarmSeconds <= 0)
48
+ return;
49
+ disarmTimer.current = setTimeout(disarm, disarmSeconds * 1000);
50
+ return () => {
51
+ if (disarmTimer.current)
52
+ clearTimeout(disarmTimer.current);
53
+ };
54
+ }, [phase, disarmSeconds]);
55
+ useEffect(() => {
56
+ if (phase !== 'armed')
57
+ return;
58
+ const onKey = (e) => {
59
+ if (e.key === 'Escape')
60
+ disarm();
61
+ };
62
+ window.addEventListener('keydown', onKey);
63
+ return () => window.removeEventListener('keydown', onKey);
64
+ }, [phase]);
65
+ const handleClick = async () => {
66
+ if (phase === 'idle') {
67
+ setPhase('armed');
68
+ return;
69
+ }
70
+ if (phase === 'pending')
71
+ return;
72
+ setPhase('pending');
73
+ try {
74
+ await onConfirm();
75
+ }
76
+ finally {
77
+ setPhase('idle');
78
+ }
79
+ };
80
+ const visibleLabel = phase === 'pending'
81
+ ? (pendingLabel ?? t('confirmButton.pending', {}, { defaultValue: 'Working…' }))
82
+ : phase === 'armed'
83
+ ? (confirmLabel ?? t('confirmButton.confirm', {}, { defaultValue: 'Confirm?' }))
84
+ : label;
85
+ return (_jsx("button", { ref: ref, type: "button", onClick: () => void handleClick(), disabled: disabled || phase === 'pending', "aria-live": "polite", "data-state": phase, "data-testid": testId, className: cm.cn(cm.button({ color: phase === 'armed' ? 'error' : (color ?? 'primary'), size, variant }), className), ...rest, children: visibleLabel }));
86
+ });
87
+ ConfirmButton.displayName = 'ConfirmButton';
88
+ //# sourceMappingURL=ConfirmButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmButton.js","sourceRoot":"","sources":["../../src/components/ConfirmButton.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE5C,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,QAAQ,CAAC,aAAa,CAAC,EACvB,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CACxC;IACC;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAA;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwD1F"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE5C,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,QAAQ,CAAC,aAAa,CAAC,EACvB,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CACxC;IACC;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAA;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiF1F"}
@@ -24,7 +24,18 @@ import { getIcon } from '@molecule/app-icons';
24
24
  * @returns An `<svg>` element rendering the named glyph.
25
25
  */
26
26
  export function Icon({ name, size = 20, className, ...rest }) {
27
- const icon = getIcon(name);
27
+ // Graceful degradation: an icon name missing from the bonded set (icon-set
28
+ // version skew, a custom-set with a smaller catalog) must NOT crash the
29
+ // whole app — multi-vendor-marketplace shipped a dead app over this. Warn
30
+ // once per name and render a neutral placeholder circle instead.
31
+ let icon;
32
+ try {
33
+ icon = getIcon(name);
34
+ }
35
+ catch (error) {
36
+ console.warn(`Icon: no bonded glyph for "${name}" — rendering a placeholder.`, error);
37
+ return (_jsx("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: "none", className: className, "aria-hidden": rest['aria-label'] == null && rest['aria-labelledby'] == null && rest.role == null, focusable: "false", ...rest, children: _jsx("circle", { cx: "10", cy: "10", r: "8", fill: "currentColor", opacity: "0.15" }) }));
38
+ }
28
39
  const viewBox = icon.viewBox || '0 0 20 20';
29
40
  // Placed BEFORE {...rest} so an explicit caller aria-hidden/role wins.
30
41
  const decorativeProps = rest['aria-label'] == null && rest['aria-labelledby'] == null && rest.role == null
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAiB,MAAM,qBAAqB,CAAA;AA2B5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAa;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAA;IAC3C,uEAAuE;IACvE,MAAM,eAAe,GACnB,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;QAChF,CAAC,CAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAY;QACxD,CAAC,CAAC,EAAE,CAAA;IAER,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,OAAO,CACL,cACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,EACzB,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KACzC,eAAe,KACf,IAAI,GACR,CACH,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IAE/B,OAAO,CACL,cACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,KAClD,eAAe,KACf,CAAC,SAAS;YACZ,CAAC,CAAC;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC;YACH,CAAC,CAAC,EAAE,CAAC,EACP,SAAS,EAAE,SAAS,KAChB,IAAI,YAEP,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,eAEE,CAAC,EAAE,CAAC,CAAC,CAAC,KACF,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC5C,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC5C,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IALtD,CAAC,CAMN,CACH,CAAC,GACE,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../src/components/UserMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAI3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AASnD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,YAA8B,EAC9B,gBAAmC,EACnC,WAAoB,EACpB,eAAoB,EACpB,SAAuB,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,GACR,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAuC7B"}
1
+ {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../src/components/UserMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAI3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AASnD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,YAA8B,EAC9B,gBAAmC,EACnC,WAAoB,EACpB,eAAoB,EACpB,SAAuB,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,GACR,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA0C7B"}
@@ -29,6 +29,10 @@ export function UserMenu({ children, ariaLabelKey = 'userMenu.open', ariaLabelDe
29
29
  useEffect(() => {
30
30
  setOpen(false);
31
31
  }, [location.pathname, location.search]);
32
- return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: onClick ?? (() => setOpen(true)), "aria-label": t(ariaLabelKey, {}, { defaultValue: ariaLabelDefault }), "data-mol-id": dataMolId, className: className, disabled: disabled, children: _jsx(Icon, { name: triggerIcon, size: triggerIconSize }) }), _jsx(Modal, { open: open, onClose: () => setOpen(false), className: cm.drawer, "aria-label": t('userMenu.panelLabel', {}, { defaultValue: 'Account menu' }), children: _jsx(PanelCloseProvider, { close: () => setOpen(false), children: children }) })] }));
32
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: onClick ?? (() => setOpen(true)), "aria-label": t(ariaLabelKey, {}, { defaultValue: ariaLabelDefault }), "data-mol-id": dataMolId,
33
+ // 40x40 trigger floor: the icon-only `size="sm"` button measured
34
+ // 42x26px fleet-wide (flagged as a tiny target in every app QA).
35
+ // Apps can still widen via `className`; the floor is the default.
36
+ className: cm.cn('min-h-10 min-w-10', className), disabled: disabled, children: _jsx(Icon, { name: triggerIcon, size: triggerIconSize }) }), _jsx(Modal, { open: open, onClose: () => setOpen(false), className: cm.drawer, "aria-label": t('userMenu.panelLabel', {}, { defaultValue: 'Account menu' }), children: _jsx(PanelCloseProvider, { close: () => setOpen(false), children: children }) })] }));
33
37
  }
34
38
  //# sourceMappingURL=UserMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../src/components/UserMenu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAgDpD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,YAAY,GAAG,eAAe,EAC9B,gBAAgB,GAAG,gBAAgB,EACnC,WAAW,GAAG,MAAM,EACpB,eAAe,GAAG,EAAE,EACpB,SAAS,GAAG,WAAW,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,GACO;IACd,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,oEAAoE;IACpE,gEAAgE;IAChE,qEAAqE;IACrE,iEAAiE;IACjE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAExC,OAAO,CACL,8BACE,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAC7B,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,iBACtD,SAAS,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,YAElB,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAI,GAC3C,EACT,KAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,SAAS,EAAE,EAAE,CAAC,MAAM,gBAGR,CAAC,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,YAE1E,KAAC,kBAAkB,IAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAG,QAAQ,GAAsB,GAC1E,IACP,CACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../src/components/UserMenu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAgDpD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,YAAY,GAAG,eAAe,EAC9B,gBAAgB,GAAG,gBAAgB,EACnC,WAAW,GAAG,MAAM,EACpB,eAAe,GAAG,EAAE,EACpB,SAAS,GAAG,WAAW,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,GACO;IACd,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,oEAAoE;IACpE,gEAAgE;IAChE,qEAAqE;IACrE,iEAAiE;IACjE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAExC,OAAO,CACL,8BACE,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAC7B,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,iBACtD,SAAS;gBACtB,iEAAiE;gBACjE,iEAAiE;gBACjE,kEAAkE;gBAClE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAChD,QAAQ,EAAE,QAAQ,YAElB,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAI,GAC3C,EACT,KAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,SAAS,EAAE,EAAE,CAAC,MAAM,gBAGR,CAAC,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,YAE1E,KAAC,kBAAkB,IAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAG,QAAQ,GAAsB,GAC1E,IACP,CACJ,CAAA;AACH,CAAC"}
@@ -11,6 +11,7 @@ export * from './Badge.js';
11
11
  export * from './Button.js';
12
12
  export * from './Card.js';
13
13
  export * from './Checkbox.js';
14
+ export * from './ConfirmButton.js';
14
15
  export * from './Dropdown.js';
15
16
  export * from './EmptyState.js';
16
17
  export * from './FloatingInput.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
@@ -11,6 +11,7 @@ export * from './Badge.js';
11
11
  export * from './Button.js';
12
12
  export * from './Card.js';
13
13
  export * from './Checkbox.js';
14
+ export * from './ConfirmButton.js';
14
15
  export * from './Dropdown.js';
15
16
  export * from './EmptyState.js';
16
17
  export * from './FloatingInput.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/app-ui-react",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "React UI components for molecule.dev",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -41,9 +41,9 @@
41
41
  "react-router": "^7.0.0 || ^8.0.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@molecule/app-i18n": "1.0.1",
45
- "@molecule/app-icons": "1.0.1",
46
- "@molecule/app-react": "1.0.1",
44
+ "@molecule/app-i18n": "1.0.2",
45
+ "@molecule/app-icons": "1.0.2",
46
+ "@molecule/app-react": "1.6.0",
47
47
  "@testing-library/react": "16.3.2",
48
48
  "@types/node": "26.1.2",
49
49
  "@types/react": "19.2.17",
@@ -53,14 +53,14 @@
53
53
  "react-dom": "19.2.8",
54
54
  "react-router": "8.3.0",
55
55
  "typescript": "6.0.3",
56
- "vitest": "4.1.10"
56
+ "vitest": "4.1.11"
57
57
  },
58
58
  "repository": {
59
59
  "type": "git",
60
60
  "url": "https://github.com/molecule-dev/molecule.git",
61
61
  "directory": "packages/app/frameworks/react-ui"
62
62
  },
63
- "homepage": "https://github.com/molecule-dev/molecule/tree/main/packages/app/frameworks/react-ui",
63
+ "homepage": "https://www.molecule.dev/packages/app-ui-react",
64
64
  "bugs": "https://github.com/molecule-dev/molecule/issues",
65
65
  "publishConfig": {
66
66
  "access": "public"