@iress-oss/ids-components 6.0.0-alpha.45 → 6.0.0-alpha.46

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 (48) hide show
  1. package/.ai/components/field.md +12 -0
  2. package/.ai/components/label.md +13 -0
  3. package/.ai/components/readonly.md +18 -0
  4. package/.ai/skills/ui-translation.md +2 -2
  5. package/.ai/skills/version-migration.md +11 -7
  6. package/dist/{Autocomplete-DJLmZml2.js → Autocomplete-C1SPFcaX.js} +119 -111
  7. package/dist/{TableBody-CkHJmbkD.js → TableBody-7rMp_gej.js} +1 -1
  8. package/dist/components/Autocomplete/Autocomplete.js +1 -1
  9. package/dist/components/Autocomplete/index.js +1 -1
  10. package/dist/components/Checkbox/Checkbox.d.ts +7 -2
  11. package/dist/components/Checkbox/Checkbox.js +25 -24
  12. package/dist/components/Checkbox/Checkbox.styles.js +1 -1
  13. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +2 -2
  14. package/dist/components/CheckboxGroup/CheckboxGroup.js +15 -15
  15. package/dist/components/Field/Field.d.ts +3 -2
  16. package/dist/components/Field/Field.js +37 -36
  17. package/dist/components/Input/Input.d.ts +7 -2
  18. package/dist/components/Input/Input.js +33 -32
  19. package/dist/components/Label/Label.styles.d.ts +1 -1
  20. package/dist/components/Label/Label.styles.js +11 -5
  21. package/dist/components/Label/LabelBase/LabelBase.d.ts +7 -2
  22. package/dist/components/Label/LabelBase/LabelBase.js +38 -25
  23. package/dist/components/Radio/Radio.d.ts +7 -2
  24. package/dist/components/Radio/Radio.js +55 -54
  25. package/dist/components/Radio/Radio.styles.js +1 -1
  26. package/dist/components/RadioGroup/RadioGroup.d.ts +2 -2
  27. package/dist/components/Readonly/Readonly.d.ts +8 -2
  28. package/dist/components/Readonly/Readonly.js +39 -38
  29. package/dist/components/Readonly/Readonly.styles.d.ts +22 -0
  30. package/dist/components/Readonly/Readonly.styles.js +25 -3
  31. package/dist/components/Select/Select.d.ts +2 -2
  32. package/dist/components/Select/Select.js +1 -1
  33. package/dist/components/Select/index.js +1 -1
  34. package/dist/components/Slider/Slider.d.ts +4 -4
  35. package/dist/components/Slider/Slider.js +24 -23
  36. package/dist/components/Table/Table.js +1 -1
  37. package/dist/components/Table/TableBody/TableBody.js +1 -1
  38. package/dist/components/Table/components/TableFilterButton.js +2 -2
  39. package/dist/components/Table/components/TableHeader.js +1 -1
  40. package/dist/components/Table/components/TableHeaderCell.js +1 -1
  41. package/dist/components/Table/index.js +1 -1
  42. package/dist/main.js +2 -2
  43. package/dist/patterns/DropdownMenu/DropdownMenu.js +1 -1
  44. package/dist/patterns/Form/FormField/FormField.d.ts +5 -2
  45. package/dist/patterns/Shadow/Shadow.js +1 -1
  46. package/dist/style.css +1 -1
  47. package/dist/types.d.ts +8 -0
  48. package/package.json +1 -1
@@ -95,6 +95,18 @@ You can also pass `readOnly` prop to remove the asterisk symbol (\*) even when t
95
95
 
96
96
  [View "ReadonlyData" example in Storybook →](https://main--691abcc79dfa560a36d0a74f.chromatic.com/?path=/story/components_components-field--readonly-data)
97
97
 
98
+ Use `readOnly="locked"` when a value is read-only due to user permissions.
99
+ This variation adds a lock icon to the label for a stronger visual cue while
100
+ keeping the field value and label relationship accessible.
101
+
102
+ ```tsx
103
+ <IressField>
104
+ <IressReadonly {...input} />
105
+ </IressField>
106
+ ```
107
+
108
+ [View "LockedReadonlyData" example in Storybook →](https://main--691abcc79dfa560a36d0a74f.chromatic.com/?path=/story/components_components-field--locked-readonly-data)
109
+
98
110
  ### Supplementary
99
111
 
100
112
  The `supplementary` prop can be used to display additional information about the field.
@@ -51,6 +51,19 @@ You can render custom content into the label.
51
51
 
52
52
  [View "RichContent" example in Storybook →](https://main--691abcc79dfa560a36d0a74f.chromatic.com/?path=/story/components_components-label--rich-content)
53
53
 
54
+ ### Locked readonly
55
+
56
+ Use `readOnly="locked"` when the associated field is readonly due to
57
+ permissions. This adds a lock indicator on the label.
58
+
59
+ ```tsx
60
+ <IressLabel readOnly="locked">
61
+ This label is locked
62
+ </IressLabel>
63
+ ```
64
+
65
+ [View "LockedReadonly" example in Storybook →](https://main--691abcc79dfa560a36d0a74f.chromatic.com/?path=/story/components_components-label--locked-readonly)
66
+
54
67
  ## Accessibility
55
68
 
56
69
  Don't place interactive elements such as anchors or buttons inside the `IressLabel`. Doing so makes it difficult for people to activate the form input associated with the label.
@@ -41,6 +41,24 @@ The `actions` prop allows you to add buttons next to the readonly field. These c
41
41
 
42
42
  [View "Actions" example in Storybook →](https://main--691abcc79dfa560a36d0a74f.chromatic.com/?path=/story/components_components-readonly--actions)
43
43
 
44
+ ### Locked
45
+
46
+ Use `variant="locked"` to indicate the value is read-only due to permissions.
47
+ This applies disabled-like styling (greyed out, `not-allowed` cursor) and
48
+ still submits the value via a hidden input, but the locked field itself is
49
+ not focusable or announced as an editable form control by assistive
50
+ technologies.
51
+
52
+ When form controls such as `IressInput` or `IressSelect` are rendered with
53
+ `readOnly="locked"`, they automatically pass the locked variant through to
54
+ `IressReadonly`.
55
+
56
+ ```tsx
57
+ <IressReadonly value="AU" variant="locked" />
58
+ ```
59
+
60
+ [View "Locked" example in Storybook →](https://main--691abcc79dfa560a36d0a74f.chromatic.com/?path=/story/components_components-readonly--locked)
61
+
44
62
  ## Props
45
63
 
46
64
  - **Type:** `IressReadonlyProps`
@@ -36,7 +36,7 @@ Translate natural language UI descriptions into IDS (Iress Design System) compon
36
36
  | Toggle switch | `IressToggle` | `<IressToggle label="Enable" />` |
37
37
  | Slider / range | `IressSlider` | `<IressSlider min={0} max={100} />` |
38
38
  | Autocomplete / typeahead | `IressAutocomplete` | See component docs |
39
- | Read-only display | `IressReadonly` | `<IressReadonly label="Status" value="Active" />` — supports `actions` prop for inline action buttons (e.g. edit toggle) |
39
+ | Read-only display | `IressReadonly` | `<IressReadonly label="Status" value="Active" />` — supports `actions` prop for inline action buttons (e.g. edit toggle). Use `variant="locked"` when the value is read-only due to permissions |
40
40
 
41
41
  ## Layout
42
42
 
@@ -189,7 +189,7 @@ When you need to find the right IDS component for a UI element, read references/
189
189
  | Toggle switch | `IressToggle` | `<IressToggle label="Enable" />` |
190
190
  | Slider / range | `IressSlider` | `<IressSlider min={0} max={100} />` |
191
191
  | Autocomplete / typeahead | `IressAutocomplete` | See component docs |
192
- | Read-only display | `IressReadonly` | `<IressReadonly label="Status" value="Active" />` — supports `actions` prop for inline action buttons (e.g. edit toggle) |
192
+ | Read-only display | `IressReadonly` | `<IressReadonly label="Status" value="Active" />` — supports `actions` prop for inline action buttons (e.g. edit toggle). Use `variant="locked"` when the value is read-only due to permissions |
193
193
 
194
194
  ## Layout
195
195
 
@@ -47,7 +47,7 @@ These prop names have been verified against the actual IDS v6 source. Using the
47
47
  | `RadioGroup` | `legendHidden` | removed | Use `IressFormField` `hiddenLabel` prop |
48
48
  | `RadioGroup` | `options` | `children` | Use `<IressRadio>` children instead of options array |
49
49
  | `RadioGroup` | `checked` | `value` | — |
50
- | `RadioGroup` | `readOnly` | `readOnly` | Unchanged |
50
+ | `RadioGroup` | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'` |
51
51
  | `Toggle` | `legend` | `children` | — |
52
52
  | `Toggle` | `legendHidden` | `hiddenLabel` | — |
53
53
  | `Toggle` | `toggled` | `checked` | — |
@@ -390,7 +390,7 @@ These prop names have been verified against the actual IDS v6 source. Using the
390
390
  | `RadioGroup` | `legendHidden` | removed | Use `IressFormField` `hiddenLabel` prop |
391
391
  | `RadioGroup` | `options` | `children` | Use `<IressRadio>` children instead of options array |
392
392
  | `RadioGroup` | `checked` | `value` | — |
393
- | `RadioGroup` | `readOnly` | `readOnly` | Unchanged |
393
+ | `RadioGroup` | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'` |
394
394
  | `Toggle` | `legend` | `children` | — |
395
395
  | `Toggle` | `legendHidden` | `hiddenLabel` | — |
396
396
  | `Toggle` | `toggled` | `checked` | — |
@@ -794,7 +794,7 @@ This document covers changes specific to migrating from IDS v5 (`@iress-oss/ids-
794
794
  | `errorMessages` | `errorMessages` | Unchanged |
795
795
  | `optional` | removed | Use `required={false}` instead |
796
796
  | `required` | `required` | Unchanged |
797
- | `readOnly` | `readOnly` | Unchanged |
797
+ | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'`. Use `'locked'` when the field is read-only due to permissions |
798
798
  | `htmlFor` | `htmlFor` | Unchanged |
799
799
  | — | `horizontal` | New: inline label/input layout |
800
800
  | — | `labelWidth` | New: label width in horizontal mode |
@@ -858,6 +858,7 @@ This document covers changes specific to migrating from IDS v5 (`@iress-oss/ids-
858
858
  | v5 prop | v6 prop | Notes |
859
859
  | ------- | --------- | ---------------------------------------------------------------------------------------------------- |
860
860
  | — | `actions` | New: array of button props rendered alongside the readonly value (e.g. edit/save toggles) |
861
+ | — | `variant` | New: set to `'locked'` for disabled-like styling when the value is read-only due to permissions |
861
862
  | — | — | ⚠️ **Breaking:** DOM structure changed — inner content is now wrapped in an additional `wrapper` div inside `root`. CSS selectors targeting direct children of the root may need updating |
862
863
 
863
864
  ## Styling Changes
@@ -970,7 +971,7 @@ These prop names have been verified against the actual IDS v6 source. Using the
970
971
  | `RadioGroup` | `legendHidden` | removed | Use `IressFormField` `hiddenLabel` prop |
971
972
  | `RadioGroup` | `options` | `children` | Use `<IressRadio>` children instead of options array |
972
973
  | `RadioGroup` | `checked` | `value` | — |
973
- | `RadioGroup` | `readOnly` | `readOnly` | Unchanged |
974
+ | `RadioGroup` | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'` |
974
975
  | `Toggle` | `legend` | `children` | — |
975
976
  | `Toggle` | `legendHidden` | `hiddenLabel` | — |
976
977
  | `Toggle` | `toggled` | `checked` | — |
@@ -1374,7 +1375,7 @@ This document covers changes specific to migrating from IDS v5 (`@iress-oss/ids-
1374
1375
  | `errorMessages` | `errorMessages` | Unchanged |
1375
1376
  | `optional` | removed | Use `required={false}` instead |
1376
1377
  | `required` | `required` | Unchanged |
1377
- | `readOnly` | `readOnly` | Unchanged |
1378
+ | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'`. Use `'locked'` when the field is read-only due to permissions |
1378
1379
  | `htmlFor` | `htmlFor` | Unchanged |
1379
1380
  | — | `horizontal` | New: inline label/input layout |
1380
1381
  | — | `labelWidth` | New: label width in horizontal mode |
@@ -1438,6 +1439,7 @@ This document covers changes specific to migrating from IDS v5 (`@iress-oss/ids-
1438
1439
  | v5 prop | v6 prop | Notes |
1439
1440
  | ------- | --------- | ---------------------------------------------------------------------------------------------------- |
1440
1441
  | — | `actions` | New: array of button props rendered alongside the readonly value (e.g. edit/save toggles) |
1442
+ | — | `variant` | New: set to `'locked'` for disabled-like styling when the value is read-only due to permissions |
1441
1443
  | — | — | ⚠️ **Breaking:** DOM structure changed — inner content is now wrapped in an additional `wrapper` div inside `root`. CSS selectors targeting direct children of the root may need updating |
1442
1444
 
1443
1445
  ## Styling Changes
@@ -1679,7 +1681,7 @@ This document covers changes specific to migrating from IDS v5 (`@iress-oss/ids-
1679
1681
  | `errorMessages` | `errorMessages` | Unchanged |
1680
1682
  | `optional` | removed | Use `required={false}` instead |
1681
1683
  | `required` | `required` | Unchanged |
1682
- | `readOnly` | `readOnly` | Unchanged |
1684
+ | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'`. Use `'locked'` when the field is read-only due to permissions |
1683
1685
  | `htmlFor` | `htmlFor` | Unchanged |
1684
1686
  | — | `horizontal` | New: inline label/input layout |
1685
1687
  | — | `labelWidth` | New: label width in horizontal mode |
@@ -1743,6 +1745,7 @@ This document covers changes specific to migrating from IDS v5 (`@iress-oss/ids-
1743
1745
  | v5 prop | v6 prop | Notes |
1744
1746
  | ------- | --------- | ---------------------------------------------------------------------------------------------------- |
1745
1747
  | — | `actions` | New: array of button props rendered alongside the readonly value (e.g. edit/save toggles) |
1748
+ | — | `variant` | New: set to `'locked'` for disabled-like styling when the value is read-only due to permissions |
1746
1749
  | — | — | ⚠️ **Breaking:** DOM structure changed — inner content is now wrapped in an additional `wrapper` div inside `root`. CSS selectors targeting direct children of the root may need updating |
1747
1750
 
1748
1751
  ## Styling Changes
@@ -1959,7 +1962,7 @@ These prop names have been verified against the actual IDS v6 source. Using the
1959
1962
  | `RadioGroup` | `legendHidden` | removed | Use `IressFormField` `hiddenLabel` prop |
1960
1963
  | `RadioGroup` | `options` | `children` | Use `<IressRadio>` children instead of options array |
1961
1964
  | `RadioGroup` | `checked` | `value` | — |
1962
- | `RadioGroup` | `readOnly` | `readOnly` | Unchanged |
1965
+ | `RadioGroup` | `readOnly` | `readOnly` | Now accepts `boolean \| 'locked'` |
1963
1966
  | `Toggle` | `legend` | `children` | — |
1964
1967
  | `Toggle` | `legendHidden` | `hiddenLabel` | — |
1965
1968
  | `Toggle` | `toggled` | `checked` | — |
@@ -3033,6 +3036,7 @@ See references/common-gotchas.md for a comprehensive troubleshooting guide cover
3033
3036
  | `IressSelect` `value` not selecting | Passing a string instead of `LabelValueMeta` | v6 now accepts plain strings for `value`/`defaultValue` — ensure the string matches an option's `value` field. A console warning is logged if the value can't be resolved against the available options |
3034
3037
  | `IressPopover` content has extra padding | Default padding added in v6 | Popover content now has `padding: spacing.4` by default. Override with `contentStyle={{ padding: 'spacing.0' }}` if you were providing your own inner padding |
3035
3038
  | `IressReadonly` CSS selectors broken | DOM structure changed | Inner content is now wrapped in an additional `wrapper` div inside `root`. Update CSS selectors targeting direct children of the readonly root element |
3039
+ | Form control `readOnly` type changed | `readOnly` now accepts `boolean \| 'locked'` | Use `readOnly="locked"` when the field is read-only due to permissions. This applies locked styling via `IressReadonly variant="locked"` |
3036
3040
  | `IressModal` `title` not rendering | Prop renamed | Use `heading` prop |
3037
3041
  | `IressSlideout` `eleToPush` selector | Needs valid CSS selector or element ref | Pass string selector, HTMLElement, or React ref |
3038
3042