@corva/ui 3.70.0-7 → 3.70.0-8

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 (57) hide show
  1. package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js +1 -1
  2. package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
  3. package/cjs-bundle/componentsV2/ButtonIcon/ButtonIcon.js +1 -1
  4. package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js +1 -1
  5. package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.scss.js +1 -1
  6. package/cjs-bundle/componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js +1 -1
  7. package/cjs-bundle/componentsV2/ColorPicker/OpacityDragtracker/OpacityDragtracker.js +1 -1
  8. package/cjs-bundle/componentsV2/ColorPicker/Swatches/Swatches.js +1 -1
  9. package/cjs-bundle/componentsV2/ColorPicker/Swatches/Swatches.scss.js +1 -1
  10. package/cjs-bundle/componentsV2/ColorPicker/useChromePickerAccessibility.js +2 -0
  11. package/cjs-bundle/componentsV2/ColorPicker/useChromePickerAccessibility.js.map +1 -0
  12. package/cjs-bundle/componentsV2/ColorPicker/utils.js +1 -1
  13. package/cjs-bundle/componentsV2/TextInputNext/TextInputNext.js +1 -1
  14. package/componentsV2/Autocomplete/Autocomplete.d.ts +3 -1
  15. package/componentsV2/Autocomplete/Autocomplete.d.ts.map +1 -1
  16. package/componentsV2/Autocomplete/Autocomplete.js +1 -1
  17. package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  18. package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
  19. package/componentsV2/Autocomplete/AutocompleteNext.stories.d.ts.map +1 -1
  20. package/componentsV2/Autocomplete/__tests__/AutocompleteNext.test.d.ts +2 -0
  21. package/componentsV2/Autocomplete/__tests__/AutocompleteNext.test.d.ts.map +1 -0
  22. package/componentsV2/ButtonIcon/ButtonIcon.d.ts +6 -5
  23. package/componentsV2/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  24. package/componentsV2/ButtonIcon/ButtonIcon.js +1 -1
  25. package/componentsV2/ButtonIcon/ButtonIcon.stories.d.ts.map +1 -1
  26. package/componentsV2/ButtonIcon/__tests__/ButtonIcon.test.d.ts +2 -0
  27. package/componentsV2/ButtonIcon/__tests__/ButtonIcon.test.d.ts.map +1 -0
  28. package/componentsV2/ColorPicker/ColorPicker.d.ts.map +1 -1
  29. package/componentsV2/ColorPicker/ColorPicker.js +1 -1
  30. package/componentsV2/ColorPicker/ColorPicker.scss.js +1 -1
  31. package/componentsV2/ColorPicker/ColorPicker.stories.d.ts.map +1 -1
  32. package/componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js +1 -1
  33. package/componentsV2/ColorPicker/OpacityDragtracker/OpacityDragtracker.d.ts +2 -1
  34. package/componentsV2/ColorPicker/OpacityDragtracker/OpacityDragtracker.d.ts.map +1 -1
  35. package/componentsV2/ColorPicker/OpacityDragtracker/OpacityDragtracker.js +1 -1
  36. package/componentsV2/ColorPicker/Swatches/Swatches.d.ts +3 -1
  37. package/componentsV2/ColorPicker/Swatches/Swatches.d.ts.map +1 -1
  38. package/componentsV2/ColorPicker/Swatches/Swatches.js +1 -1
  39. package/componentsV2/ColorPicker/Swatches/Swatches.scss.js +1 -1
  40. package/componentsV2/ColorPicker/__tests__/ColorPicker.test.d.ts +2 -0
  41. package/componentsV2/ColorPicker/__tests__/ColorPicker.test.d.ts.map +1 -0
  42. package/componentsV2/ColorPicker/useChromePickerAccessibility.d.ts +15 -0
  43. package/componentsV2/ColorPicker/useChromePickerAccessibility.d.ts.map +1 -0
  44. package/componentsV2/ColorPicker/useChromePickerAccessibility.js +2 -0
  45. package/componentsV2/ColorPicker/useChromePickerAccessibility.js.map +1 -0
  46. package/componentsV2/ColorPicker/utils.d.ts +8 -0
  47. package/componentsV2/ColorPicker/utils.d.ts.map +1 -1
  48. package/componentsV2/ColorPicker/utils.js +1 -1
  49. package/componentsV2/Select/Select.stories.d.ts.map +1 -1
  50. package/componentsV2/TextInputNext/TextInputNext.d.ts +6 -1
  51. package/componentsV2/TextInputNext/TextInputNext.d.ts.map +1 -1
  52. package/componentsV2/TextInputNext/TextInputNext.js +1 -1
  53. package/mcp-server/server.mjs +45 -7
  54. package/package.json +1 -1
  55. package/styles/common.scss +15 -0
  56. package/styles/mixins.scss +15 -0
  57. package/tsconfig.tsbuildinfo +1 -1
@@ -231,7 +231,7 @@ const validateDsn = (dsn) => {
231
231
 
232
232
  const MCP_SERVER_VERSION = '1.4.0';
233
233
 
234
- var version = "3.70.0-7";
234
+ var version = "3.70.0-8";
235
235
 
236
236
  const CORVA_UI_VERSION = version;
237
237
 
@@ -2477,9 +2477,27 @@ var componentsV2Data = [
2477
2477
  props: [
2478
2478
  {
2479
2479
  name: "children",
2480
- type: "React.ReactNode",
2480
+ type: "ReactNode",
2481
2481
  required: false,
2482
- description: "Content"
2482
+ description: ""
2483
+ },
2484
+ {
2485
+ name: "ariaLabel",
2486
+ type: "AriaAttributes['aria-label']",
2487
+ required: false,
2488
+ description: "Accessible name for the icon-only button."
2489
+ },
2490
+ {
2491
+ name: "ariaLabelledBy",
2492
+ type: "AriaAttributes['aria-labelledby']",
2493
+ required: false,
2494
+ description: ""
2495
+ },
2496
+ {
2497
+ name: "ariaDescribedBy",
2498
+ type: "AriaAttributes['aria-describedby']",
2499
+ required: false,
2500
+ description: ""
2483
2501
  },
2484
2502
  {
2485
2503
  name: "onClick",
@@ -2564,18 +2582,18 @@ var componentsV2Data = [
2564
2582
  examples: [
2565
2583
  {
2566
2584
  name: "Default",
2567
- description: "",
2585
+ description: "Icon-only buttons must have an accessible name. Use `ariaLabel` when there is no visible element that can be referenced by `ariaLabelledBy`.",
2568
2586
  code: "<ButtonIcon {...props}>\n <SettingTwoIcon />\n </ButtonIcon>"
2569
2587
  },
2570
2588
  {
2571
2589
  name: "Sizes",
2572
2590
  description: "Component supports 3 sizes through `size` prop:\n\n- `large`: use for large, very important buttons\n- `medium` (default): should be used in most cases\n- `small`: use when space is at a premium\n- `xs`: even smaller",
2573
- code: "<SbColumn>\n <ButtonIcon size=\"large\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon size=\"medium\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon size=\"small\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon size=\"xs\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n </SbColumn>"
2591
+ code: "<SbColumn>\n <ButtonIcon ariaLabel=\"Settings\" size=\"large\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" size=\"medium\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" size=\"small\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" size=\"xs\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n </SbColumn>"
2574
2592
  },
2575
2593
  {
2576
2594
  name: "Type",
2577
2595
  description: "Component's appearance is controlled through the `type` prop:\n\n- `primary`: use primarily as a FAB\n- `secondary`: use for important actions\n- `tertiary` (default): use for regular actions\n- `secondaryBg`: secondary, with a background\n- `tertiaryBg`: tertiary, with a background",
2578
- code: "<SbColumn>\n <ButtonIcon type=\"primary\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon type=\"secondary\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon type=\"tertiary\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon type=\"secondaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n </SbColumn>"
2596
+ code: "<SbColumn>\n <ButtonIcon ariaLabel=\"Settings\" type=\"primary\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" type=\"secondary\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" type=\"tertiary\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" type=\"secondaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n <ButtonIcon ariaLabel=\"Settings\" type=\"tertiaryBg\">\n <SettingTwoIcon />\n </ButtonIcon>\n </SbColumn>"
2579
2597
  }
2580
2598
  ],
2581
2599
  sourceUrl: "https://github.com/corva-ai/corva-ui/blob/develop/src/componentsV2/ButtonIcon/ButtonIcon.tsx",
@@ -3431,7 +3449,7 @@ var componentsV2Data = [
3431
3449
  examples: [
3432
3450
  {
3433
3451
  name: "Default",
3434
- description: "",
3452
+ description: "Keyboard: Enter, Space, or Arrow Down opens the picker. Arrow keys move through palette colors. In the custom picker, Left/Right adjust saturation, Up/Down adjust brightness, and the hue and opacity sliders support arrow keys, Page Up/Down, Home, and End. Hold Shift with an arrow key for a coarse adjustment.",
3435
3453
  code: "{\n const [value, setValue] = useState<string>();\n return (\n <ColorPicker\n {...props}\n value={value}\n onChange={(value, ...rest) => {\n setValue(value);\n props.onChange?.(value, ...rest);\n }}\n />\n );\n}"
3436
3454
  },
3437
3455
  {
@@ -8017,6 +8035,16 @@ var componentsV2Data = [
8017
8035
  "end"
8018
8036
  ]
8019
8037
  },
8038
+ {
8039
+ name: "rootTagName",
8040
+ type: "'label' | 'div'",
8041
+ required: false,
8042
+ description: "HTML tag of the root element. Use `div` when `prefix`/`suffix` contain interactive\ncontrols — nested interactive elements inside a `label` are invalid for assistive tech",
8043
+ enumValues: [
8044
+ "label",
8045
+ "div"
8046
+ ]
8047
+ },
8020
8048
  {
8021
8049
  name: "onChange",
8022
8050
  type: "(value: string, changeReason: TextInputChangeReason, event: ChangeEvent<HTMLInputElement>) => void",
@@ -20097,6 +20125,11 @@ var scssMixins = [
20097
20125
  signature: "transparencyCheckerboard($checkerboardSize)",
20098
20126
  description: "Add a checkerboard pattern background to indicate transparency."
20099
20127
  },
20128
+ {
20129
+ name: "focusVisibleOutline",
20130
+ signature: "focusVisibleOutline($borderRadius: null)",
20131
+ description: ""
20132
+ },
20100
20133
  {
20101
20134
  name: "transparencyTransparentIndicator",
20102
20135
  signature: "transparencyTransparentIndicator($borderWidth: 1px)",
@@ -92560,6 +92593,9 @@ var migrationsData = [
92560
92593
  ],
92561
92594
  autoDerived: {
92562
92595
  addedProps: [
92596
+ "ariaLabel",
92597
+ "ariaLabelledBy",
92598
+ "ariaDescribedBy",
92563
92599
  "onMouseDown",
92564
92600
  "onMouseUp",
92565
92601
  "type",
@@ -93234,6 +93270,7 @@ var migrationsData = [
93234
93270
  "label",
93235
93271
  "size",
93236
93272
  "labelPlacement",
93273
+ "rootTagName",
93237
93274
  "disabled",
93238
93275
  "inputType",
93239
93276
  "inputMode",
@@ -93615,6 +93652,7 @@ var migrationsData = [
93615
93652
  addedProps: [
93616
93653
  "size",
93617
93654
  "labelPlacement",
93655
+ "rootTagName",
93618
93656
  "inputMode",
93619
93657
  "clearable",
93620
93658
  "inputContainerRef",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corva/ui",
3
- "version": "3.70.0-7",
3
+ "version": "3.70.0-8",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "description": "Shared components/utils for Corva ui projects",
6
6
  "keywords": [
@@ -151,6 +151,21 @@ $AppContainer-ContainerName: CorvaUI-AppContainer-root;
151
151
  background-size: $checkerboardSize $checkerboardSize;
152
152
  }
153
153
 
154
+ // Design system focus state: crisp primary ring + 4px halo (palette/primary/p12)
155
+ // https://www.figma.com/design/PUgBxjNswqqG1yyU6OQERZ/Corva-Design-System?node-id=138328-22115
156
+ @mixin focusVisibleOutline($borderRadius: null) {
157
+ // Transparent outline stays visible in Windows High Contrast Mode where box-shadow is not rendered
158
+ outline: 2px solid transparent;
159
+ box-shadow:
160
+ 0 0 0 1px $palette_primary_main,
161
+ 0 0 0 5px colorAlpha($palette_primary_main, 0.12);
162
+
163
+ // The ring follows the element's own border-radius; pass one for square elements
164
+ @if $borderRadius {
165
+ border-radius: $borderRadius;
166
+ }
167
+ }
168
+
154
169
  @mixin transparencyTransparentIndicator($borderWidth: 1px) {
155
170
  position: relative;
156
171
 
@@ -36,6 +36,21 @@
36
36
  background-size: $checkerboardSize $checkerboardSize;
37
37
  }
38
38
 
39
+ // Design system focus state: crisp primary ring + 4px halo (palette/primary/p12)
40
+ // https://www.figma.com/design/PUgBxjNswqqG1yyU6OQERZ/Corva-Design-System?node-id=138328-22115
41
+ @mixin focusVisibleOutline($borderRadius: null) {
42
+ // Transparent outline stays visible in Windows High Contrast Mode where box-shadow is not rendered
43
+ outline: 2px solid transparent;
44
+ box-shadow:
45
+ 0 0 0 1px $palette_primary_main,
46
+ 0 0 0 5px colorAlpha($palette_primary_main, 0.12);
47
+
48
+ // The ring follows the element's own border-radius; pass one for square elements
49
+ @if $borderRadius {
50
+ border-radius: $borderRadius;
51
+ }
52
+ }
53
+
39
54
  @mixin transparencyTransparentIndicator($borderWidth: 1px) {
40
55
  position: relative;
41
56