@limetech/lime-elements 40.12.0 → 40.12.2

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 (69) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/{checkbox.template-CoNVC4Nf.js → checkbox.template-_WUgtMJy.js} +2 -2
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +5 -10
  5. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-chip-set.cjs.entry.js +8 -3
  7. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -2
  8. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-file-viewer.cjs.entry.js +75 -12
  10. package/dist/cjs/limel-helper-line_3.cjs.entry.js +3 -3
  11. package/dist/cjs/limel-list-item.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +280 -121
  13. package/dist/cjs/limel-select.cjs.entry.js +8 -3
  14. package/dist/cjs/limel-text-editor.cjs.entry.js +4 -7
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/collection/components/checkbox/checkbox.template.js +2 -2
  17. package/dist/collection/components/chip-set/chip-set.js +8 -3
  18. package/dist/collection/components/code-editor/code-editor.js +1 -2
  19. package/dist/collection/components/color-picker/color-picker.js +3 -3
  20. package/dist/collection/components/date-picker/date-picker.js +2 -2
  21. package/dist/collection/components/helper-line/helper-line.css +10 -14
  22. package/dist/collection/components/helper-line/helper-line.js +9 -6
  23. package/dist/collection/components/input-field/input-field.js +7 -12
  24. package/dist/collection/components/select/select.template.js +8 -3
  25. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +196 -4
  26. package/dist/collection/components/text-editor/text-editor.js +5 -7
  27. package/dist/esm/{checkbox.template-IDyv2bgn.js → checkbox.template-BFL4SMzl.js} +2 -2
  28. package/dist/esm/lime-elements.js +1 -1
  29. package/dist/esm/limel-breadcrumbs_6.entry.js +5 -10
  30. package/dist/esm/limel-checkbox.entry.js +1 -1
  31. package/dist/esm/limel-chip-set.entry.js +8 -3
  32. package/dist/esm/limel-code-editor.entry.js +1 -2
  33. package/dist/esm/limel-color-picker.entry.js +1 -1
  34. package/dist/esm/limel-file-viewer.entry.js +75 -12
  35. package/dist/esm/limel-helper-line_3.entry.js +3 -3
  36. package/dist/esm/limel-list-item.entry.js +1 -1
  37. package/dist/esm/limel-prosemirror-adapter.entry.js +280 -121
  38. package/dist/esm/limel-select.entry.js +8 -3
  39. package/dist/esm/limel-text-editor.entry.js +4 -7
  40. package/dist/esm/loader.js +1 -1
  41. package/dist/lime-elements/lime-elements.esm.js +1 -1
  42. package/dist/lime-elements/p-06850418.entry.js +1 -0
  43. package/dist/lime-elements/p-074275f4.entry.js +1 -0
  44. package/dist/lime-elements/p-1qqvOwzC.js +1 -0
  45. package/dist/lime-elements/p-236743f1.entry.js +1 -0
  46. package/dist/lime-elements/p-2528f75e.entry.js +159 -0
  47. package/dist/lime-elements/{p-cf6fab84.entry.js → p-43c36a02.entry.js} +1 -1
  48. package/dist/lime-elements/{p-7a2e0e18.entry.js → p-675a7469.entry.js} +1 -1
  49. package/dist/lime-elements/{p-9b1934fb.entry.js → p-90286e5c.entry.js} +1 -1
  50. package/dist/lime-elements/p-92fab922.entry.js +23 -0
  51. package/dist/lime-elements/p-b609552e.entry.js +1 -0
  52. package/dist/lime-elements/{p-14aff731.entry.js → p-c492af1b.entry.js} +1 -1
  53. package/dist/lime-elements/{p-e247e9fe.entry.js → p-fb15f608.entry.js} +1 -1
  54. package/dist/types/components/chip-set/chip-set.d.ts +2 -0
  55. package/dist/types/components/color-picker/color-picker.d.ts +10 -3
  56. package/dist/types/components/date-picker/date-picker.d.ts +11 -2
  57. package/dist/types/components/helper-line/helper-line.d.ts +7 -3
  58. package/dist/types/components/input-field/input-field.d.ts +10 -2
  59. package/dist/types/components/text-editor/prosemirror-adapter/prosemirror-adapter.d.ts +34 -0
  60. package/dist/types/components/text-editor/text-editor.d.ts +1 -3
  61. package/dist/types/components.d.ts +91 -22
  62. package/package.json +3 -3
  63. package/dist/lime-elements/p-25d0d06b.entry.js +0 -159
  64. package/dist/lime-elements/p-5a15606a.entry.js +0 -1
  65. package/dist/lime-elements/p-732e7807.entry.js +0 -23
  66. package/dist/lime-elements/p-9ed21407.entry.js +0 -1
  67. package/dist/lime-elements/p-DqQOawxc.js +0 -1
  68. package/dist/lime-elements/p-b69af611.entry.js +0 -1
  69. package/dist/lime-elements/p-ec74a07a.entry.js +0 -1
@@ -182,6 +182,7 @@ export declare class ChipSet {
182
182
  private mdcTextField;
183
183
  private readonly handleKeyDown;
184
184
  private labelId;
185
+ private helperTextId;
185
186
  constructor();
186
187
  connectedCallback(): void;
187
188
  private initialize;
@@ -210,6 +211,7 @@ export declare class ChipSet {
210
211
  disconnectedCallback(): void;
211
212
  render(): any;
212
213
  private getContentProps;
214
+ private getDescribedBy;
213
215
  private renderContent;
214
216
  private readonly getValue;
215
217
  protected handleChangeChips(newValue: Chip[], oldValue: Chip[]): void;
@@ -27,7 +27,10 @@ export declare class ColorPicker implements FormComponent {
27
27
  */
28
28
  label: string;
29
29
  /**
30
- * Helper text of the input field
30
+ * Optional helper text to display below the input field when it has focus.
31
+ * Screen readers read it as the description of the field, so use it for
32
+ * what the user needs to know, such as the format of the value or a
33
+ * requirement.
31
34
  */
32
35
  helperText: string;
33
36
  /**
@@ -57,8 +60,12 @@ export declare class ColorPicker implements FormComponent {
57
60
  */
58
61
  invalid: boolean;
59
62
  /**
60
- * The placeholder text shown inside the input field,
61
- * when the field is focused and empty.
63
+ * A hint about what to type, such as an example or the format of the
64
+ * value. It is shown inside the field when the field is focused and empty.
65
+ *
66
+ * Do not use it instead of a `label`, and do not put anything in it that
67
+ * the user needs to know. It disappears when the user starts to type, and
68
+ * some screen readers do not read it. Use `helperText` for that.
62
69
  */
63
70
  placeholder: string;
64
71
  /**
@@ -36,11 +36,20 @@ export declare class DatePicker {
36
36
  */
37
37
  label: string;
38
38
  /**
39
- * The placeholder text shown inside the input field, when the field is focused and empty
39
+ * A hint about what to type, such as an example or the format of the
40
+ * value. It is shown inside the field when the field is focused and empty,
41
+ * but not on iOS and Android, where the native date picker is used.
42
+ *
43
+ * Do not use it instead of a `label`, and do not put anything in it that
44
+ * the user needs to know. It disappears when the user starts to type, and
45
+ * some screen readers do not read it. Use `helperText` for that.
40
46
  */
41
47
  placeholder: string;
42
48
  /**
43
- * Optional helper text to display below the input field when it has focus
49
+ * Optional helper text to display below the input field when it has focus.
50
+ * Screen readers read it as the description of the field, so use it for
51
+ * what the user needs to know, such as the format of the value or a
52
+ * requirement.
44
53
  */
45
54
  helperText: string;
46
55
  /**
@@ -6,8 +6,12 @@
6
6
  * We created this to keep the visual styles the same everywhere
7
7
  * and to avoid importing styles separately.
8
8
  *
9
- * Also this enables us to open the helper line in limel-portal,
10
- * more easily without having to send the styles to the portal.
9
+ * :::note
10
+ * The component has `shadow: false`, so that the helper text is part of the
11
+ * DOM of the consumer. This way, the `id` of the helper text can be used in
12
+ * the `aria-describedby` of the input element in the consumer, which is
13
+ * not possible across a shadow root.
14
+ * :::
11
15
  *
12
16
  * @exampleComponent limel-example-helper-line-basic
13
17
  * @exampleComponent limel-example-helper-line-invalid
@@ -40,7 +44,7 @@ export declare class HelperLine {
40
44
  */
41
45
  invalid?: boolean;
42
46
  /**
43
- * Used by `aria-controls` and `aria-describedby` in the parent component.
47
+ * Used by `aria-describedby` in the parent component.
44
48
  */
45
49
  helperTextId?: string;
46
50
  render(): any;
@@ -43,11 +43,19 @@ export declare class InputField {
43
43
  */
44
44
  label: string;
45
45
  /**
46
- * The placeholder text shown inside the input field, when the field is focused and empty.
46
+ * A hint about what to type, such as an example or the format of the
47
+ * value. It is shown inside the field when the field is focused and empty.
48
+ *
49
+ * Do not use it instead of a `label`, and do not put anything in it that
50
+ * the user needs to know. It disappears when the user starts to type, and
51
+ * some screen readers do not read it. Use `helperText` for that.
47
52
  */
48
53
  placeholder: string;
49
54
  /**
50
- * Optional helper text to display below the input field when it has focus
55
+ * Optional helper text to display below the input field when it has focus.
56
+ * Screen readers read it as the description of the field, so use it for
57
+ * what the user needs to know, such as the format of the value or a
58
+ * requirement.
51
59
  */
52
60
  helperText: string;
53
61
  /**
@@ -62,6 +62,31 @@ export declare class ProsemirrorAdapter {
62
62
  * Specifies the visual appearance of the editor.
63
63
  */
64
64
  ui: EditorUiType;
65
+ /**
66
+ * The name of the editable area, read by assistive technology.
67
+ * Ids cannot be referenced across a shadow root, so a label that is
68
+ * rendered outside of the adapter cannot name the editable area.
69
+ */
70
+ accessibleLabel?: string;
71
+ /**
72
+ * The description of the editable area, read by assistive technology
73
+ * after its name.
74
+ */
75
+ accessibleDescription?: string;
76
+ /**
77
+ * A hint about what to type, which is exposed as the placeholder of the
78
+ * editable area. It is not shown by the adapter.
79
+ */
80
+ accessiblePlaceholder?: string;
81
+ /**
82
+ * Set to `true` to indicate that the editable area is required.
83
+ */
84
+ required?: boolean;
85
+ /**
86
+ * Set to `true` to indicate that the current value of the editable area
87
+ * is invalid.
88
+ */
89
+ invalid?: boolean;
65
90
  private host;
66
91
  private portalId;
67
92
  private view;
@@ -90,6 +115,7 @@ export declare class ProsemirrorAdapter {
90
115
  private transactionFired;
91
116
  private lastClickedPos;
92
117
  private focusRestoreTimeout;
118
+ private hadFocusWhenDisabled;
93
119
  private metadata;
94
120
  /**
95
121
  * Used to stop change event emitting as result of getting updated value from consumer
@@ -142,6 +168,8 @@ export declare class ProsemirrorAdapter {
142
168
  * their own copy when calling this.
143
169
  */
144
170
  clear(): Promise<void>;
171
+ protected watchEditableAttributes(): void;
172
+ protected watchDisabled(disabled: boolean): void;
145
173
  protected watchValue(newValue: string): void;
146
174
  componentWillLoad(): void;
147
175
  componentDidLoad(): void;
@@ -149,12 +177,17 @@ export declare class ProsemirrorAdapter {
149
177
  disconnectedCallback(): void;
150
178
  render(): any;
151
179
  renderToolbar(): any;
180
+ private getToolbarItems;
152
181
  renderLinkMenu(): any;
153
182
  private validateInlineImages;
154
183
  private setupContentConverter;
155
184
  private getActionBarItems;
156
185
  private getTranslatedItem;
157
186
  private initializeTextEditor;
187
+ private readonly isEditable;
188
+ private updateEditableProps;
189
+ private restoreFocus;
190
+ private getEditableAttributes;
158
191
  private initializeSchema;
159
192
  private parseInitialContent;
160
193
  private createEditorState;
@@ -165,6 +198,7 @@ export declare class ProsemirrorAdapter {
165
198
  private removeImagesFromCache;
166
199
  private handleActionBarItem;
167
200
  private handleCancelLinkMenu;
201
+ private closeLinkMenu;
168
202
  private handleSaveLinkMenu;
169
203
  private handleLinkChange;
170
204
  private handleFocus;
@@ -26,6 +26,7 @@ import { EditorUiType } from './types';
26
26
  * @exampleComponent limel-example-text-editor-ui
27
27
  * @exampleComponent limel-example-text-editor-custom-element
28
28
  * @exampleComponent limel-example-text-editor-triggers
29
+ * @exampleComponent limel-example-text-editor-accessibility
29
30
  * @exampleComponent limel-example-text-editor-composite
30
31
  * @beta
31
32
  */
@@ -191,10 +192,7 @@ export declare class TextEditor implements FormComponent<string> {
191
192
  * @alpha
192
193
  */
193
194
  triggerChange: EventEmitter<TriggerEventDetail>;
194
- private readonly helperTextId;
195
- private readonly editorId;
196
195
  private adapterElement?;
197
- constructor();
198
196
  /**
199
197
  * Emits any pending `change` event immediately, instead of waiting
200
198
  * for the debounce delay to elapse. Does nothing if no change is
@@ -1213,7 +1213,7 @@ export namespace Components {
1213
1213
  */
1214
1214
  "disabled": boolean;
1215
1215
  /**
1216
- * Helper text of the input field
1216
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
1217
1217
  */
1218
1218
  "helperText": string;
1219
1219
  /**
@@ -1239,7 +1239,7 @@ export namespace Components {
1239
1239
  */
1240
1240
  "paletteColumnCount"?: number;
1241
1241
  /**
1242
- * The placeholder text shown inside the input field, when the field is focused and empty.
1242
+ * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
1243
1243
  */
1244
1244
  "placeholder": string;
1245
1245
  /**
@@ -1349,7 +1349,7 @@ export namespace Components {
1349
1349
  */
1350
1350
  "formatter"?: (date: Date) => string;
1351
1351
  /**
1352
- * Optional helper text to display below the input field when it has focus
1352
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
1353
1353
  */
1354
1354
  "helperText": string;
1355
1355
  /**
@@ -1367,7 +1367,7 @@ export namespace Components {
1367
1367
  */
1368
1368
  "language": Languages;
1369
1369
  /**
1370
- * The placeholder text shown inside the input field, when the field is focused and empty
1370
+ * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty, but not on iOS and Android, where the native date picker is used. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
1371
1371
  */
1372
1372
  "placeholder": string;
1373
1373
  /**
@@ -2059,8 +2059,12 @@ export namespace Components {
2059
2059
  * input field.
2060
2060
  * We created this to keep the visual styles the same everywhere
2061
2061
  * and to avoid importing styles separately.
2062
- * Also this enables us to open the helper line in limel-portal,
2063
- * more easily without having to send the styles to the portal.
2062
+ * :::note
2063
+ * The component has `shadow: false`, so that the helper text is part of the
2064
+ * DOM of the consumer. This way, the `id` of the helper text can be used in
2065
+ * the `aria-describedby` of the input element in the consumer, which is
2066
+ * not possible across a shadow root.
2067
+ * :::
2064
2068
  * @exampleComponent limel-example-helper-line-basic
2065
2069
  * @exampleComponent limel-example-helper-line-invalid
2066
2070
  * @exampleComponent limel-example-helper-line-long-text
@@ -2076,7 +2080,7 @@ export namespace Components {
2076
2080
  */
2077
2081
  "helperText"?: string;
2078
2082
  /**
2079
- * Used by `aria-controls` and `aria-describedby` in the parent component.
2083
+ * Used by `aria-describedby` in the parent component.
2080
2084
  */
2081
2085
  "helperTextId"?: string;
2082
2086
  /**
@@ -2295,7 +2299,7 @@ export namespace Components {
2295
2299
  */
2296
2300
  "getSelectionStart": () => Promise<number | null>;
2297
2301
  /**
2298
- * Optional helper text to display below the input field when it has focus
2302
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
2299
2303
  */
2300
2304
  "helperText": string;
2301
2305
  /**
@@ -2337,7 +2341,7 @@ export namespace Components {
2337
2341
  */
2338
2342
  "pattern": string;
2339
2343
  /**
2340
- * The placeholder text shown inside the input field, when the field is focused and empty.
2344
+ * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
2341
2345
  */
2342
2346
  "placeholder": string;
2343
2347
  /**
@@ -3304,6 +3308,18 @@ export namespace Components {
3304
3308
  * @private
3305
3309
  */
3306
3310
  interface LimelProsemirrorAdapter {
3311
+ /**
3312
+ * The description of the editable area, read by assistive technology after its name.
3313
+ */
3314
+ "accessibleDescription"?: string;
3315
+ /**
3316
+ * The name of the editable area, read by assistive technology. Ids cannot be referenced across a shadow root, so a label that is rendered outside of the adapter cannot name the editable area.
3317
+ */
3318
+ "accessibleLabel"?: string;
3319
+ /**
3320
+ * A hint about what to type, which is exposed as the placeholder of the editable area. It is not shown by the adapter.
3321
+ */
3322
+ "accessiblePlaceholder"?: string;
3307
3323
  /**
3308
3324
  * Clear the editor's content imperatively. Assigning an empty `value` prop only clears the editor when the value changes. The editor debounces its `change` event, so a consumer's bound value can lag the live document; assigning `''` when the prop was already `''` is skipped by change detection and would leave the typed content untouched — for example, clearing the editor right after a send. Use this to empty the editor regardless of the prop's change detection. Does not emit a `change` event. Consumers that mirror the editor content on `change` (drafts, validation, dirty state) should reset their own copy when calling this.
3309
3325
  */
@@ -3335,10 +3351,20 @@ export namespace Components {
3335
3351
  * @alpha
3336
3352
  */
3337
3353
  "inlineImages"?: InlineImages;
3354
+ /**
3355
+ * Set to `true` to indicate that the current value of the editable area is invalid.
3356
+ * @default false
3357
+ */
3358
+ "invalid"?: boolean;
3338
3359
  /**
3339
3360
  * Defines the language for translations.
3340
3361
  */
3341
3362
  "language": Languages;
3363
+ /**
3364
+ * Set to `true` to indicate that the editable area is required.
3365
+ * @default false
3366
+ */
3367
+ "required"?: boolean;
3342
3368
  /**
3343
3369
  * set to private to avoid usage while under development
3344
3370
  * @private
@@ -4117,6 +4143,7 @@ export namespace Components {
4117
4143
  * @exampleComponent limel-example-text-editor-ui
4118
4144
  * @exampleComponent limel-example-text-editor-custom-element
4119
4145
  * @exampleComponent limel-example-text-editor-triggers
4146
+ * @exampleComponent limel-example-text-editor-accessibility
4120
4147
  * @exampleComponent limel-example-text-editor-composite
4121
4148
  * @beta
4122
4149
  */
@@ -5739,8 +5766,12 @@ declare global {
5739
5766
  * input field.
5740
5767
  * We created this to keep the visual styles the same everywhere
5741
5768
  * and to avoid importing styles separately.
5742
- * Also this enables us to open the helper line in limel-portal,
5743
- * more easily without having to send the styles to the portal.
5769
+ * :::note
5770
+ * The component has `shadow: false`, so that the helper text is part of the
5771
+ * DOM of the consumer. This way, the `id` of the helper text can be used in
5772
+ * the `aria-describedby` of the input element in the consumer, which is
5773
+ * not possible across a shadow root.
5774
+ * :::
5744
5775
  * @exampleComponent limel-example-helper-line-basic
5745
5776
  * @exampleComponent limel-example-helper-line-invalid
5746
5777
  * @exampleComponent limel-example-helper-line-long-text
@@ -6948,6 +6979,7 @@ declare global {
6948
6979
  * @exampleComponent limel-example-text-editor-ui
6949
6980
  * @exampleComponent limel-example-text-editor-custom-element
6950
6981
  * @exampleComponent limel-example-text-editor-triggers
6982
+ * @exampleComponent limel-example-text-editor-accessibility
6951
6983
  * @exampleComponent limel-example-text-editor-composite
6952
6984
  * @beta
6953
6985
  */
@@ -8291,7 +8323,7 @@ declare namespace LocalJSX {
8291
8323
  */
8292
8324
  "disabled"?: boolean;
8293
8325
  /**
8294
- * Helper text of the input field
8326
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
8295
8327
  */
8296
8328
  "helperText"?: string;
8297
8329
  /**
@@ -8321,7 +8353,7 @@ declare namespace LocalJSX {
8321
8353
  */
8322
8354
  "paletteColumnCount"?: number;
8323
8355
  /**
8324
- * The placeholder text shown inside the input field, when the field is focused and empty.
8356
+ * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
8325
8357
  */
8326
8358
  "placeholder"?: string;
8327
8359
  /**
@@ -8435,7 +8467,7 @@ declare namespace LocalJSX {
8435
8467
  */
8436
8468
  "formatter"?: (date: Date) => string;
8437
8469
  /**
8438
- * Optional helper text to display below the input field when it has focus
8470
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
8439
8471
  */
8440
8472
  "helperText"?: string;
8441
8473
  /**
@@ -8457,7 +8489,7 @@ declare namespace LocalJSX {
8457
8489
  */
8458
8490
  "onChange"?: (event: LimelDatePickerCustomEvent<Date>) => void;
8459
8491
  /**
8460
- * The placeholder text shown inside the input field, when the field is focused and empty
8492
+ * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty, but not on iOS and Android, where the native date picker is used. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
8461
8493
  */
8462
8494
  "placeholder"?: string;
8463
8495
  /**
@@ -9222,8 +9254,12 @@ declare namespace LocalJSX {
9222
9254
  * input field.
9223
9255
  * We created this to keep the visual styles the same everywhere
9224
9256
  * and to avoid importing styles separately.
9225
- * Also this enables us to open the helper line in limel-portal,
9226
- * more easily without having to send the styles to the portal.
9257
+ * :::note
9258
+ * The component has `shadow: false`, so that the helper text is part of the
9259
+ * DOM of the consumer. This way, the `id` of the helper text can be used in
9260
+ * the `aria-describedby` of the input element in the consumer, which is
9261
+ * not possible across a shadow root.
9262
+ * :::
9227
9263
  * @exampleComponent limel-example-helper-line-basic
9228
9264
  * @exampleComponent limel-example-helper-line-invalid
9229
9265
  * @exampleComponent limel-example-helper-line-long-text
@@ -9239,7 +9275,7 @@ declare namespace LocalJSX {
9239
9275
  */
9240
9276
  "helperText"?: string;
9241
9277
  /**
9242
- * Used by `aria-controls` and `aria-describedby` in the parent component.
9278
+ * Used by `aria-describedby` in the parent component.
9243
9279
  */
9244
9280
  "helperTextId"?: string;
9245
9281
  /**
@@ -9446,7 +9482,7 @@ declare namespace LocalJSX {
9446
9482
  */
9447
9483
  "formatNumber"?: boolean;
9448
9484
  /**
9449
- * Optional helper text to display below the input field when it has focus
9485
+ * Optional helper text to display below the input field when it has focus. Screen readers read it as the description of the field, so use it for what the user needs to know, such as the format of the value or a requirement.
9450
9486
  */
9451
9487
  "helperText"?: string;
9452
9488
  /**
@@ -9496,7 +9532,7 @@ declare namespace LocalJSX {
9496
9532
  */
9497
9533
  "pattern"?: string;
9498
9534
  /**
9499
- * The placeholder text shown inside the input field, when the field is focused and empty.
9535
+ * A hint about what to type, such as an example or the format of the value. It is shown inside the field when the field is focused and empty. Do not use it instead of a `label`, and do not put anything in it that the user needs to know. It disappears when the user starts to type, and some screen readers do not read it. Use `helperText` for that.
9500
9536
  */
9501
9537
  "placeholder"?: string;
9502
9538
  /**
@@ -10524,6 +10560,18 @@ declare namespace LocalJSX {
10524
10560
  * @private
10525
10561
  */
10526
10562
  interface LimelProsemirrorAdapter {
10563
+ /**
10564
+ * The description of the editable area, read by assistive technology after its name.
10565
+ */
10566
+ "accessibleDescription"?: string;
10567
+ /**
10568
+ * The name of the editable area, read by assistive technology. Ids cannot be referenced across a shadow root, so a label that is rendered outside of the adapter cannot name the editable area.
10569
+ */
10570
+ "accessibleLabel"?: string;
10571
+ /**
10572
+ * A hint about what to type, which is exposed as the placeholder of the editable area. It is not shown by the adapter.
10573
+ */
10574
+ "accessiblePlaceholder"?: string;
10527
10575
  /**
10528
10576
  * The type of content that the editor should handle and emit, defaults to `markdown` Assumed to be set only once, so not reactive to changes
10529
10577
  * @default 'markdown'
@@ -10547,6 +10595,11 @@ declare namespace LocalJSX {
10547
10595
  * @alpha
10548
10596
  */
10549
10597
  "inlineImages"?: InlineImages;
10598
+ /**
10599
+ * Set to `true` to indicate that the current value of the editable area is invalid.
10600
+ * @default false
10601
+ */
10602
+ "invalid"?: boolean;
10550
10603
  /**
10551
10604
  * Defines the language for translations.
10552
10605
  */
@@ -10573,6 +10626,11 @@ declare namespace LocalJSX {
10573
10626
  * @alpha
10574
10627
  */
10575
10628
  "onMetadataChange"?: (event: LimelProsemirrorAdapterCustomEvent<EditorMetadata>) => void;
10629
+ /**
10630
+ * Set to `true` to indicate that the editable area is required.
10631
+ * @default false
10632
+ */
10633
+ "required"?: boolean;
10576
10634
  /**
10577
10635
  * set to private to avoid usage while under development
10578
10636
  * @private
@@ -11432,6 +11490,7 @@ declare namespace LocalJSX {
11432
11490
  * @exampleComponent limel-example-text-editor-ui
11433
11491
  * @exampleComponent limel-example-text-editor-custom-element
11434
11492
  * @exampleComponent limel-example-text-editor-triggers
11493
+ * @exampleComponent limel-example-text-editor-accessibility
11435
11494
  * @exampleComponent limel-example-text-editor-composite
11436
11495
  * @beta
11437
11496
  */
@@ -12170,6 +12229,11 @@ declare namespace LocalJSX {
12170
12229
  "language": Languages;
12171
12230
  "disabled": boolean;
12172
12231
  "ui": EditorUiType;
12232
+ "accessibleLabel": string;
12233
+ "accessibleDescription": string;
12234
+ "accessiblePlaceholder": string;
12235
+ "required": boolean;
12236
+ "invalid": boolean;
12173
12237
  }
12174
12238
  interface LimelRadioButtonAttributes {
12175
12239
  "checked": boolean;
@@ -13134,8 +13198,12 @@ declare module "@stencil/core" {
13134
13198
  * input field.
13135
13199
  * We created this to keep the visual styles the same everywhere
13136
13200
  * and to avoid importing styles separately.
13137
- * Also this enables us to open the helper line in limel-portal,
13138
- * more easily without having to send the styles to the portal.
13201
+ * :::note
13202
+ * The component has `shadow: false`, so that the helper text is part of the
13203
+ * DOM of the consumer. This way, the `id` of the helper text can be used in
13204
+ * the `aria-describedby` of the input element in the consumer, which is
13205
+ * not possible across a shadow root.
13206
+ * :::
13139
13207
  * @exampleComponent limel-example-helper-line-basic
13140
13208
  * @exampleComponent limel-example-helper-line-invalid
13141
13209
  * @exampleComponent limel-example-helper-line-long-text
@@ -13841,6 +13909,7 @@ declare module "@stencil/core" {
13841
13909
  * @exampleComponent limel-example-text-editor-ui
13842
13910
  * @exampleComponent limel-example-text-editor-custom-element
13843
13911
  * @exampleComponent limel-example-text-editor-triggers
13912
+ * @exampleComponent limel-example-text-editor-accessibility
13844
13913
  * @exampleComponent limel-example-text-editor-composite
13845
13914
  * @beta
13846
13915
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "40.12.0",
3
+ "version": "40.12.2",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -70,7 +70,7 @@
70
70
  "@types/react": "^19.3.0",
71
71
  "@types/react-dom": "^19.3.0",
72
72
  "@types/tabulator-tables": "^6.3.6",
73
- "@vitest/browser-playwright": "^4.1.11",
73
+ "@vitest/browser-playwright": "^4.1.12",
74
74
  "axe-core": "4.14.0",
75
75
  "codemirror": "^5.65.9",
76
76
  "cross-env": "^10.1.0",
@@ -93,7 +93,7 @@
93
93
  "morphdom": "^2.7.8",
94
94
  "number-abbreviate": "^2.0.0",
95
95
  "parse-css-color": "^0.2.1",
96
- "postal-mime": "^4.0.6",
96
+ "postal-mime": "^4.0.7",
97
97
  "prettier": "^3.9.10",
98
98
  "prosemirror-example-setup": "^1.2.3",
99
99
  "prosemirror-markdown": "^1.13.8",