pixelplay 1.2.1 → 1.2.3

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/CHANGELOG.md CHANGED
@@ -6,6 +6,48 @@ This project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ---
8
8
 
9
+ ## [1.2.3] — 2026-04-22
10
+
11
+ ### Fixed
12
+
13
+ - **Release publish retry for npm**: Bumped package version to `1.2.3` to avoid attempting to republish `1.2.2`, which npm rejects once already published.
14
+ - **Type-safe strict build fixes**: Resolved strict TypeScript build blockers in `AlertDialog`, `Carousel`, and `ToggleGroup` to ensure production `next build` and package validation complete successfully.
15
+
16
+ ### Changed
17
+
18
+ - **Publish workflow guardrail**: Added a pre-publish npm registry check that fails fast with a clear message when the current package version is already published.
19
+
20
+ ---
21
+
22
+ ## [1.2.2] — 2026-04-21
23
+
24
+ ### Added
25
+
26
+ - **Vitest testing stack and scripts at workspace level**: Added `test` and `test:watch` scripts in root `package.json`, plus supporting dev dependencies (`vitest`, `jsdom`, Testing Library, and `jest-axe` tooling).
27
+ - **Test infrastructure configuration**: Added root `vitest.config.ts` and `vitest.setup.ts` for shared test runtime setup.
28
+ - **CI accessibility/test workflow**: Added `.github/workflows/ui-a11y.yml` to validate shared UI accessibility/test coverage in automation.
29
+ - **Large co-located test expansion**: Added 63 new `.test.tsx` files, including shared UI component tests and targeted widget/feature tests (`VectorMap` and `SearchBar`).
30
+ - **Full shared UI folder test coverage achieved**: Every folder under `app/ui-kit/pixelplay-ui/shared/ui` now has co-located test coverage.
31
+
32
+ ### Changed
33
+
34
+ - **Broad shared UI behavior and semantics hardening**: Updated many interactive primitives and composites (accordion, alert-dialog, badge, button-group, calendar, carousel, collapsible, context-menu, drawer, dropdown-menu, hover-card, input, menubar, modal, navigation-menu, pagination, popover, select, sheet, tabs, toast, toggle-group, toolbar, and more) to improve consistency of interaction/state behavior and accessibility contracts.
35
+ - **Design-token alignment across updated controls**: Replaced remaining raw palette usage in updated surfaces/components with token-based classes to stay consistent with the PixelPlay theme system.
36
+ - **Docs/demo and widget adjustments**: Updated docs/demo pages and multiple PixelPlay widgets/entities/features (including dropdown/command-menu docs, component preview surfaces, and vector-map/widget navigation surfaces) to stay aligned with shared UI behavior updates.
37
+ - **Dependency lockfile and release metadata updates**: Regenerated lockfile and bumped package release metadata for this patch.
38
+
39
+ ### Fixed
40
+
41
+ - **Date picker dialog semantics**: Date picker triggers now consistently expose dialog linkage (`aria-haspopup`, `aria-expanded`, and `aria-controls`) to their corresponding panels across `DatePicker`, `DateTimePicker`, and `DateRangePicker`.
42
+ - **Button submit-safety defaults**: Shared `Button`, `SocialButton`, and `StoreButton` now default to `type="button"` unless explicitly overridden.
43
+ - **Tooltip trigger ARIA merging**: `TooltipTrigger` now safely merges `aria-describedby` with existing trigger attributes and binds a stable tooltip id.
44
+ - **Checkbox description linkage**: `Checkbox` now wires `aria-describedby` to its description text and supports explicit `aria-label`/`aria-labelledby` passthrough.
45
+ - **Tag control accessibility**: Tag checkbox and dismiss affordances now expose reliable accessible labels.
46
+ - **Progress semantics fallback**: `ProgressBar` and `CircularProgress` now provide fallback accessible names when labels are omitted.
47
+ - **File upload progress naming**: File upload row progressbars now expose per-file `aria-label` values.
48
+
49
+ ---
50
+
9
51
  ## [1.2.1] — 2026-04-21
10
52
 
11
53
  ### Added
package/dist/index.d.mts CHANGED
@@ -65,7 +65,11 @@ interface ButtonGroupItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
65
65
  }
66
66
 
67
67
  declare function ButtonGroup({ children, className }: ButtonGroupProps): react_jsx_runtime.JSX.Element;
68
- declare function ButtonGroupItem({ children, startContent, isIconOnly, isSelected, isDisabled, className, onClick, onFocus, onBlur, type, form, name, value, "aria-label": ariaLabel, "aria-pressed": ariaPressed, "aria-expanded": ariaExpanded, id, tabIndex, }: ButtonGroupItemProps): react_jsx_runtime.JSX.Element;
68
+ declare const ButtonGroupItem: React$1.ForwardRefExoticComponent<ButtonGroupItemProps & {
69
+ buttonRef?: React$1.Ref<HTMLButtonElement>;
70
+ } & {
71
+ onKeyDown?: React$1.KeyboardEventHandler<HTMLButtonElement>;
72
+ } & React$1.RefAttributes<HTMLButtonElement>>;
69
73
 
70
74
  type InputVariant = "bordered" | "flat" | "faded" | "underlined";
71
75
  type TextareaResize = "none" | "vertical" | "horizontal" | "both";
@@ -414,11 +418,15 @@ interface CheckboxProps {
414
418
  label?: string;
415
419
  /** Supporting description rendered below the label */
416
420
  description?: string;
421
+ /** Accessible name when no visible label should be rendered */
422
+ "aria-label"?: string;
423
+ /** Accessible label reference when no visible label should be rendered */
424
+ "aria-labelledby"?: string;
417
425
  className?: string;
418
426
  id?: string;
419
427
  }
420
428
 
421
- declare function Checkbox({ checked, indeterminate, defaultChecked, onChange, variant, size, isDisabled, label, description, className, id: idProp, }: CheckboxProps): react_jsx_runtime.JSX.Element;
429
+ declare function Checkbox({ checked, indeterminate, defaultChecked, onChange, variant, size, isDisabled, label, description, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, id: idProp, }: CheckboxProps): react_jsx_runtime.JSX.Element;
422
430
  declare namespace Checkbox {
423
431
  var displayName: string;
424
432
  }
@@ -461,8 +469,10 @@ interface CheckboxGroupProps {
461
469
  /** Uncontrolled default selected values */
462
470
  defaultValue?: string[];
463
471
  onChange?: (values: string[]) => void;
464
- /** Group label */
472
+ /** Visible group label — also provides accessible name via aria-labelledby */
465
473
  label?: string;
474
+ /** Invisible accessible name when no visible label is used */
475
+ "aria-label"?: string;
466
476
  /** Disable the entire group */
467
477
  isDisabled?: boolean;
468
478
  /** Stack direction */
@@ -475,7 +485,7 @@ interface CheckboxGroupProps {
475
485
  }
476
486
 
477
487
  declare function CheckboxCard({ value: _value, title, subtitle, description, icon, price, priceUnit, badge, badgeColor, avatarSrc, checked, defaultChecked, onChange, isDisabled, size, variant, className, id: idProp, }: CheckboxCardProps): react_jsx_runtime.JSX.Element;
478
- declare function CheckboxGroup({ options, value, defaultValue, onChange, label, isDisabled, orientation, size, variant, className, }: CheckboxGroupProps): react_jsx_runtime.JSX.Element;
488
+ declare function CheckboxGroup({ options, value, defaultValue, onChange, label, "aria-label": ariaLabel, isDisabled, orientation, size, variant, className, }: CheckboxGroupProps): react_jsx_runtime.JSX.Element;
479
489
 
480
490
  type ProgressLabelPlacement = "none" | "right" | "below" | "tooltip-above" | "tooltip-below";
481
491
  type ProgressSize = "sm" | "md";
package/dist/index.d.ts CHANGED
@@ -65,7 +65,11 @@ interface ButtonGroupItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
65
65
  }
66
66
 
67
67
  declare function ButtonGroup({ children, className }: ButtonGroupProps): react_jsx_runtime.JSX.Element;
68
- declare function ButtonGroupItem({ children, startContent, isIconOnly, isSelected, isDisabled, className, onClick, onFocus, onBlur, type, form, name, value, "aria-label": ariaLabel, "aria-pressed": ariaPressed, "aria-expanded": ariaExpanded, id, tabIndex, }: ButtonGroupItemProps): react_jsx_runtime.JSX.Element;
68
+ declare const ButtonGroupItem: React$1.ForwardRefExoticComponent<ButtonGroupItemProps & {
69
+ buttonRef?: React$1.Ref<HTMLButtonElement>;
70
+ } & {
71
+ onKeyDown?: React$1.KeyboardEventHandler<HTMLButtonElement>;
72
+ } & React$1.RefAttributes<HTMLButtonElement>>;
69
73
 
70
74
  type InputVariant = "bordered" | "flat" | "faded" | "underlined";
71
75
  type TextareaResize = "none" | "vertical" | "horizontal" | "both";
@@ -414,11 +418,15 @@ interface CheckboxProps {
414
418
  label?: string;
415
419
  /** Supporting description rendered below the label */
416
420
  description?: string;
421
+ /** Accessible name when no visible label should be rendered */
422
+ "aria-label"?: string;
423
+ /** Accessible label reference when no visible label should be rendered */
424
+ "aria-labelledby"?: string;
417
425
  className?: string;
418
426
  id?: string;
419
427
  }
420
428
 
421
- declare function Checkbox({ checked, indeterminate, defaultChecked, onChange, variant, size, isDisabled, label, description, className, id: idProp, }: CheckboxProps): react_jsx_runtime.JSX.Element;
429
+ declare function Checkbox({ checked, indeterminate, defaultChecked, onChange, variant, size, isDisabled, label, description, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, id: idProp, }: CheckboxProps): react_jsx_runtime.JSX.Element;
422
430
  declare namespace Checkbox {
423
431
  var displayName: string;
424
432
  }
@@ -461,8 +469,10 @@ interface CheckboxGroupProps {
461
469
  /** Uncontrolled default selected values */
462
470
  defaultValue?: string[];
463
471
  onChange?: (values: string[]) => void;
464
- /** Group label */
472
+ /** Visible group label — also provides accessible name via aria-labelledby */
465
473
  label?: string;
474
+ /** Invisible accessible name when no visible label is used */
475
+ "aria-label"?: string;
466
476
  /** Disable the entire group */
467
477
  isDisabled?: boolean;
468
478
  /** Stack direction */
@@ -475,7 +485,7 @@ interface CheckboxGroupProps {
475
485
  }
476
486
 
477
487
  declare function CheckboxCard({ value: _value, title, subtitle, description, icon, price, priceUnit, badge, badgeColor, avatarSrc, checked, defaultChecked, onChange, isDisabled, size, variant, className, id: idProp, }: CheckboxCardProps): react_jsx_runtime.JSX.Element;
478
- declare function CheckboxGroup({ options, value, defaultValue, onChange, label, isDisabled, orientation, size, variant, className, }: CheckboxGroupProps): react_jsx_runtime.JSX.Element;
488
+ declare function CheckboxGroup({ options, value, defaultValue, onChange, label, "aria-label": ariaLabel, isDisabled, orientation, size, variant, className, }: CheckboxGroupProps): react_jsx_runtime.JSX.Element;
479
489
 
480
490
  type ProgressLabelPlacement = "none" | "right" | "below" | "tooltip-above" | "tooltip-below";
481
491
  type ProgressSize = "sm" | "md";