ng-primitives 0.91.2 → 0.93.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.
Files changed (55) hide show
  1. package/a11y/index.d.ts +3 -1
  2. package/accordion/index.d.ts +8 -1
  3. package/autofill/index.d.ts +4 -0
  4. package/avatar/index.d.ts +11 -2
  5. package/breadcrumbs/index.d.ts +21 -7
  6. package/button/index.d.ts +3 -1
  7. package/checkbox/index.d.ts +3 -1
  8. package/fesm2022/ng-primitives-checkbox.mjs +7 -8
  9. package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
  10. package/fesm2022/ng-primitives-file-upload.mjs +209 -202
  11. package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
  12. package/fesm2022/ng-primitives-focus-trap.mjs +107 -138
  13. package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
  14. package/fesm2022/ng-primitives-form-field.mjs +323 -399
  15. package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
  16. package/fesm2022/ng-primitives-interactions.mjs +57 -58
  17. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  18. package/fesm2022/ng-primitives-listbox.mjs +2 -2
  19. package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
  20. package/fesm2022/ng-primitives-menu.mjs.map +1 -1
  21. package/fesm2022/ng-primitives-portal.mjs +5 -1
  22. package/fesm2022/ng-primitives-portal.mjs.map +1 -1
  23. package/fesm2022/ng-primitives-slider.mjs +4 -5
  24. package/fesm2022/ng-primitives-slider.mjs.map +1 -1
  25. package/fesm2022/ng-primitives-state.mjs +36 -8
  26. package/fesm2022/ng-primitives-state.mjs.map +1 -1
  27. package/fesm2022/ng-primitives-switch.mjs +4 -5
  28. package/fesm2022/ng-primitives-switch.mjs.map +1 -1
  29. package/fesm2022/ng-primitives-tabs.mjs +194 -192
  30. package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
  31. package/fesm2022/ng-primitives-toggle-group.mjs +4 -5
  32. package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
  33. package/fesm2022/ng-primitives-toggle.mjs +4 -5
  34. package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
  35. package/fesm2022/ng-primitives-tooltip.mjs +4 -4
  36. package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
  37. package/fesm2022/ng-primitives-utils.mjs +23 -14
  38. package/fesm2022/ng-primitives-utils.mjs.map +1 -1
  39. package/file-upload/index.d.ts +100 -52
  40. package/focus-trap/index.d.ts +33 -75
  41. package/form-field/index.d.ts +320 -123
  42. package/input/index.d.ts +6 -0
  43. package/interactions/index.d.ts +16 -16
  44. package/package.json +1 -1
  45. package/roving-focus/index.d.ts +6 -2
  46. package/schematics/ng-generate/templates/tabs/tabs.__fileSuffix@dasherize__.ts.template +2 -2
  47. package/slider/index.d.ts +14 -6
  48. package/state/index.d.ts +23 -8
  49. package/switch/index.d.ts +8 -4
  50. package/tabs/index.d.ts +333 -84
  51. package/textarea/index.d.ts +6 -0
  52. package/toggle/index.d.ts +5 -3
  53. package/toggle-group/index.d.ts +6 -2
  54. package/toolbar/index.d.ts +5 -0
  55. package/utils/index.d.ts +1 -1
package/a11y/index.d.ts CHANGED
@@ -71,10 +71,12 @@ declare const injectVisuallyHiddenState: {
71
71
  (): Signal<NgpVisuallyHiddenState>;
72
72
  (options: {
73
73
  hoisted: true;
74
+ optional?: boolean;
74
75
  }): Signal<NgpVisuallyHiddenState | null>;
75
76
  (options?: {
76
77
  hoisted?: boolean;
77
- }): Signal<NgpVisuallyHiddenState | null>;
78
+ optional?: boolean;
79
+ }): Signal<NgpVisuallyHiddenState> | Signal<NgpVisuallyHiddenState | null>;
78
80
  };
79
81
  declare const provideVisuallyHiddenState: (opts?: {
80
82
  inherit?: boolean;
@@ -34,10 +34,12 @@ declare const injectAccordionContentState: {
34
34
  (): Signal<{}>;
35
35
  (options: {
36
36
  hoisted: true;
37
+ optional?: boolean;
37
38
  }): Signal<{} | null>;
38
39
  (options?: {
39
40
  hoisted?: boolean;
40
- }): Signal<{} | null>;
41
+ optional?: boolean;
42
+ }): Signal<{}> | Signal<{} | null>;
41
43
  };
42
44
  declare const provideAccordionContentState: (opts?: {
43
45
  inherit?: boolean;
@@ -342,15 +344,20 @@ declare const injectAccordionTriggerState: {
342
344
  }>;
343
345
  (options: {
344
346
  hoisted: true;
347
+ optional?: boolean;
345
348
  }): Signal<{
346
349
  id: Signal<string>;
347
350
  toggle: () => void;
348
351
  } | null>;
349
352
  (options?: {
350
353
  hoisted?: boolean;
354
+ optional?: boolean;
351
355
  }): Signal<{
352
356
  id: Signal<string>;
353
357
  toggle: () => void;
358
+ }> | Signal<{
359
+ id: Signal<string>;
360
+ toggle: () => void;
354
361
  } | null>;
355
362
  };
356
363
  declare const provideAccordionTriggerState: (opts?: {
@@ -45,13 +45,17 @@ declare const injectAutofillState: {
45
45
  }>;
46
46
  (options: {
47
47
  hoisted: true;
48
+ optional?: boolean;
48
49
  }): Signal<{
49
50
  autofilled: _angular_core.WritableSignal<boolean>;
50
51
  } | null>;
51
52
  (options?: {
52
53
  hoisted?: boolean;
54
+ optional?: boolean;
53
55
  }): Signal<{
54
56
  autofilled: _angular_core.WritableSignal<boolean>;
57
+ }> | Signal<{
58
+ autofilled: _angular_core.WritableSignal<boolean>;
55
59
  } | null>;
56
60
  };
57
61
  declare const provideAutofillState: (opts?: {
package/avatar/index.d.ts CHANGED
@@ -34,10 +34,12 @@ declare const injectAvatarFallbackState: {
34
34
  (): Signal<{}>;
35
35
  (options: {
36
36
  hoisted: true;
37
+ optional?: boolean;
37
38
  }): Signal<{} | null>;
38
39
  (options?: {
39
40
  hoisted?: boolean;
40
- }): Signal<{} | null>;
41
+ optional?: boolean;
42
+ }): Signal<{}> | Signal<{} | null>;
41
43
  };
42
44
  declare const provideAvatarFallbackState: (opts?: {
43
45
  inherit?: boolean;
@@ -62,10 +64,12 @@ declare const injectAvatarImageState: {
62
64
  (): _angular_core.Signal<{}>;
63
65
  (options: {
64
66
  hoisted: true;
67
+ optional?: boolean;
65
68
  }): _angular_core.Signal<{} | null>;
66
69
  (options?: {
67
70
  hoisted?: boolean;
68
- }): _angular_core.Signal<{} | null>;
71
+ optional?: boolean;
72
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
69
73
  };
70
74
  declare const provideAvatarImageState: (opts?: {
71
75
  inherit?: boolean;
@@ -98,15 +102,20 @@ declare const injectAvatarState: {
98
102
  }>;
99
103
  (options: {
100
104
  hoisted: true;
105
+ optional?: boolean;
101
106
  }): Signal<{
102
107
  status: _angular_core.WritableSignal<NgpAvatarStatus>;
103
108
  setStatus: (newStatus: NgpAvatarStatus) => void;
104
109
  } | null>;
105
110
  (options?: {
106
111
  hoisted?: boolean;
112
+ optional?: boolean;
107
113
  }): Signal<{
108
114
  status: _angular_core.WritableSignal<NgpAvatarStatus>;
109
115
  setStatus: (newStatus: NgpAvatarStatus) => void;
116
+ }> | Signal<{
117
+ status: _angular_core.WritableSignal<NgpAvatarStatus>;
118
+ setStatus: (newStatus: NgpAvatarStatus) => void;
110
119
  } | null>;
111
120
  };
112
121
  declare const provideAvatarState: (opts?: {
@@ -73,10 +73,12 @@ declare const injectBreadcrumbsState: {
73
73
  (): _angular_core.Signal<{}>;
74
74
  (options: {
75
75
  hoisted: true;
76
+ optional?: boolean;
76
77
  }): _angular_core.Signal<{} | null>;
77
78
  (options?: {
78
79
  hoisted?: boolean;
79
- }): _angular_core.Signal<{} | null>;
80
+ optional?: boolean;
81
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
80
82
  };
81
83
  declare const provideBreadcrumbsState: (opts?: {
82
84
  inherit?: boolean;
@@ -92,10 +94,12 @@ declare const injectBreadcrumbListState: {
92
94
  (): _angular_core.Signal<{}>;
93
95
  (options: {
94
96
  hoisted: true;
97
+ optional?: boolean;
95
98
  }): _angular_core.Signal<{} | null>;
96
99
  (options?: {
97
100
  hoisted?: boolean;
98
- }): _angular_core.Signal<{} | null>;
101
+ optional?: boolean;
102
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
99
103
  };
100
104
  declare const provideBreadcrumbListState: (opts?: {
101
105
  inherit?: boolean;
@@ -111,10 +115,12 @@ declare const injectBreadcrumbItemState: {
111
115
  (): _angular_core.Signal<{}>;
112
116
  (options: {
113
117
  hoisted: true;
118
+ optional?: boolean;
114
119
  }): _angular_core.Signal<{} | null>;
115
120
  (options?: {
116
121
  hoisted?: boolean;
117
- }): _angular_core.Signal<{} | null>;
122
+ optional?: boolean;
123
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
118
124
  };
119
125
  declare const provideBreadcrumbItemState: (opts?: {
120
126
  inherit?: boolean;
@@ -130,10 +136,12 @@ declare const injectBreadcrumbLinkState: {
130
136
  (): _angular_core.Signal<{}>;
131
137
  (options: {
132
138
  hoisted: true;
139
+ optional?: boolean;
133
140
  }): _angular_core.Signal<{} | null>;
134
141
  (options?: {
135
142
  hoisted?: boolean;
136
- }): _angular_core.Signal<{} | null>;
143
+ optional?: boolean;
144
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
137
145
  };
138
146
  declare const provideBreadcrumbLinkState: (opts?: {
139
147
  inherit?: boolean;
@@ -149,10 +157,12 @@ declare const injectBreadcrumbPageState: {
149
157
  (): _angular_core.Signal<{}>;
150
158
  (options: {
151
159
  hoisted: true;
160
+ optional?: boolean;
152
161
  }): _angular_core.Signal<{} | null>;
153
162
  (options?: {
154
163
  hoisted?: boolean;
155
- }): _angular_core.Signal<{} | null>;
164
+ optional?: boolean;
165
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
156
166
  };
157
167
  declare const provideBreadcrumbPageState: (opts?: {
158
168
  inherit?: boolean;
@@ -168,10 +178,12 @@ declare const injectBreadcrumbSeparatorState: {
168
178
  (): _angular_core.Signal<{}>;
169
179
  (options: {
170
180
  hoisted: true;
181
+ optional?: boolean;
171
182
  }): _angular_core.Signal<{} | null>;
172
183
  (options?: {
173
184
  hoisted?: boolean;
174
- }): _angular_core.Signal<{} | null>;
185
+ optional?: boolean;
186
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
175
187
  };
176
188
  declare const provideBreadcrumbSeparatorState: (opts?: {
177
189
  inherit?: boolean;
@@ -187,10 +199,12 @@ declare const injectBreadcrumbEllipsisState: {
187
199
  (): _angular_core.Signal<{}>;
188
200
  (options: {
189
201
  hoisted: true;
202
+ optional?: boolean;
190
203
  }): _angular_core.Signal<{} | null>;
191
204
  (options?: {
192
205
  hoisted?: boolean;
193
- }): _angular_core.Signal<{} | null>;
206
+ optional?: boolean;
207
+ }): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
194
208
  };
195
209
  declare const provideBreadcrumbEllipsisState: (opts?: {
196
210
  inherit?: boolean;
package/button/index.d.ts CHANGED
@@ -13,10 +13,12 @@ declare const injectButtonState: {
13
13
  (): Signal<NgpButtonState>;
14
14
  (options: {
15
15
  hoisted: true;
16
+ optional?: boolean;
16
17
  }): Signal<NgpButtonState | null>;
17
18
  (options?: {
18
19
  hoisted?: boolean;
19
- }): Signal<NgpButtonState | null>;
20
+ optional?: boolean;
21
+ }): Signal<NgpButtonState> | Signal<NgpButtonState | null>;
20
22
  };
21
23
  declare const provideButtonState: (opts?: {
22
24
  inherit?: boolean;
@@ -82,10 +82,12 @@ declare const injectCheckboxState: {
82
82
  (): Signal<NgpCheckboxState>;
83
83
  (options: {
84
84
  hoisted: true;
85
+ optional?: boolean;
85
86
  }): Signal<NgpCheckboxState | null>;
86
87
  (options?: {
87
88
  hoisted?: boolean;
88
- }): Signal<NgpCheckboxState | null>;
89
+ optional?: boolean;
90
+ }): Signal<NgpCheckboxState> | Signal<NgpCheckboxState | null>;
89
91
  };
90
92
  declare const provideCheckboxState: (opts?: {
91
93
  inherit?: boolean;
@@ -4,16 +4,15 @@ import { uniqueId } from 'ng-primitives/utils';
4
4
  import { ngpFormControl } from 'ng-primitives/form-field';
5
5
  import { ngpInteractions } from 'ng-primitives/interactions';
6
6
  import { injectElementRef } from 'ng-primitives/internal';
7
- import { createPrimitive, controlled, attrBinding, dataBinding, listener, deprecatedSetter } from 'ng-primitives/state';
8
- import { Subject } from 'rxjs';
7
+ import { createPrimitive, controlled, emitter, attrBinding, dataBinding, listener, deprecatedSetter } from 'ng-primitives/state';
9
8
 
10
9
  const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] = createPrimitive('NgpCheckbox', ({ id = signal(uniqueId('ngp-checkbox')), checked: _checked = signal(false), indeterminate: _indeterminate = signal(false), disabled: _disabled = signal(false), onCheckedChange, onIndeterminateChange, }) => {
11
10
  const element = injectElementRef();
12
11
  const checked = controlled(_checked);
13
12
  const indeterminate = controlled(_indeterminate);
14
13
  const disabled = controlled(_disabled);
15
- const checkedChange = new Subject();
16
- const indeterminateChange = new Subject();
14
+ const checkedChange = emitter();
15
+ const indeterminateChange = emitter();
17
16
  const tabindex = computed(() => (disabled() ? -1 : 0), ...(ngDevMode ? [{ debugName: "tabindex" }] : []));
18
17
  // Setup interactions and form control hooks
19
18
  ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });
@@ -53,12 +52,12 @@ const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxS
53
52
  function setChecked(value) {
54
53
  checked.set(value);
55
54
  onCheckedChange?.(value);
56
- checkedChange.next(value);
55
+ checkedChange.emit(value);
57
56
  }
58
57
  function setIndeterminate(value) {
59
58
  indeterminate.set(value);
60
59
  onIndeterminateChange?.(value);
61
- indeterminateChange.next(value);
60
+ indeterminateChange.emit(value);
62
61
  }
63
62
  function setDisabled(value) {
64
63
  disabled.set(value);
@@ -68,8 +67,8 @@ const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxS
68
67
  checked: deprecatedSetter(checked, 'setChecked'),
69
68
  indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),
70
69
  disabled: deprecatedSetter(disabled, 'setDisabled'),
71
- checkedChange,
72
- indeterminateChange,
70
+ checkedChange: checkedChange.asObservable(),
71
+ indeterminateChange: indeterminateChange.asObservable(),
73
72
  toggle,
74
73
  setChecked,
75
74
  setIndeterminate,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-checkbox.mjs","sources":["../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox-state.ts","../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox.ts","../../../../packages/ng-primitives/checkbox/src/ng-primitives-checkbox.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable, Subject } from 'rxjs';\n\n/**\n * Public state surface for the Checkbox primitive.\n */\nexport interface NgpCheckboxState {\n /**\n * The id of the checkbox.\n */\n readonly id: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate: WritableSignal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Emits when the indeterminate state changes.\n */\n readonly indeterminateChange: Observable<boolean>;\n /**\n * Toggle the checkbox value.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void;\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Checkbox primitive.\n */\nexport interface NgpCheckboxProps {\n /**\n * The id of the checkbox.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate?: Signal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /**\n * Callback fired when the indeterminate state changes.\n */\n readonly onIndeterminateChange?: (indeterminate: boolean) => void;\n}\n\nexport const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] =\n createPrimitive(\n 'NgpCheckbox',\n ({\n id = signal(uniqueId('ngp-checkbox')),\n checked: _checked = signal(false),\n indeterminate: _indeterminate = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n onIndeterminateChange,\n }: NgpCheckboxProps): NgpCheckboxState => {\n const element = injectElementRef();\n const checked = controlled(_checked);\n const indeterminate = controlled(_indeterminate);\n const disabled = controlled(_disabled);\n const checkedChange = new Subject<boolean>();\n const indeterminateChange = new Subject<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Setup interactions and form control hooks\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'role', 'checkbox');\n attrBinding(element, 'aria-checked', () => (indeterminate() ? 'mixed' : checked()));\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-indeterminate', indeterminate);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Event listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n // According to WAI ARIA, checkboxes don't activate on enter keypress\n event.preventDefault();\n return;\n }\n\n if (event.key === ' ' || event.key === 'Spacebar') {\n toggle(event);\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n // prevent this firing twice in cases where the label is clicked and the checkbox is clicked by the one event\n event?.preventDefault();\n\n const nextChecked = indeterminate() ? true : !checked();\n setChecked(nextChecked);\n\n // if the checkbox was indeterminate, it isn't anymore\n if (indeterminate()) {\n setIndeterminate(false);\n }\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.next(value);\n }\n\n function setIndeterminate(value: boolean): void {\n indeterminate.set(value);\n onIndeterminateChange?.(value);\n indeterminateChange.next(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n checkedChange,\n indeterminateChange,\n toggle,\n setChecked,\n setIndeterminate,\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpCheckbox, provideCheckboxState } from './checkbox-state';\n\n/**\n * Apply the `ngpCheckbox` directive to an element to that represents the checkbox, such as a `button`.\n */\n@Directive({\n selector: '[ngpCheckbox]',\n providers: [provideCheckboxState({ inherit: false })],\n})\nexport class NgpCheckbox {\n /**\n * The id of the checkbox.\n * @internal\n */\n readonly id = input(uniqueId('ngp-checkbox'));\n\n /**\n * Defines whether the checkbox is checked.\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the checkbox value changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpCheckboxCheckedChange',\n });\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxIndeterminate',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the indeterminate value changes.\n */\n readonly indeterminateChange = output<boolean>({\n alias: 'ngpCheckboxIndeterminateChange',\n });\n\n /**\n * Whether the checkbox is required.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxRequired',\n transform: booleanAttribute,\n });\n\n /**\n * Defines whether the checkbox is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the checkbox.\n */\n protected readonly state = ngpCheckbox({\n id: this.id,\n checked: this.checked,\n indeterminate: this.indeterminate,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n onIndeterminateChange: value => this.indeterminateChange.emit(value),\n });\n\n toggle(event?: Event): void {\n this.state.toggle(event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-primitives-checkbox.mjs","sources":["../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox-state.ts","../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox.ts","../../../../packages/ng-primitives/checkbox/src/ng-primitives-checkbox.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Checkbox primitive.\n */\nexport interface NgpCheckboxState {\n /**\n * The id of the checkbox.\n */\n readonly id: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate: WritableSignal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Emits when the indeterminate state changes.\n */\n readonly indeterminateChange: Observable<boolean>;\n /**\n * Toggle the checkbox value.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void;\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Checkbox primitive.\n */\nexport interface NgpCheckboxProps {\n /**\n * The id of the checkbox.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate?: Signal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /**\n * Callback fired when the indeterminate state changes.\n */\n readonly onIndeterminateChange?: (indeterminate: boolean) => void;\n}\n\nexport const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] =\n createPrimitive(\n 'NgpCheckbox',\n ({\n id = signal(uniqueId('ngp-checkbox')),\n checked: _checked = signal(false),\n indeterminate: _indeterminate = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n onIndeterminateChange,\n }: NgpCheckboxProps): NgpCheckboxState => {\n const element = injectElementRef();\n const checked = controlled(_checked);\n const indeterminate = controlled(_indeterminate);\n const disabled = controlled(_disabled);\n const checkedChange = emitter<boolean>();\n const indeterminateChange = emitter<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Setup interactions and form control hooks\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'role', 'checkbox');\n attrBinding(element, 'aria-checked', () => (indeterminate() ? 'mixed' : checked()));\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-indeterminate', indeterminate);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Event listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n // According to WAI ARIA, checkboxes don't activate on enter keypress\n event.preventDefault();\n return;\n }\n\n if (event.key === ' ' || event.key === 'Spacebar') {\n toggle(event);\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n // prevent this firing twice in cases where the label is clicked and the checkbox is clicked by the one event\n event?.preventDefault();\n\n const nextChecked = indeterminate() ? true : !checked();\n setChecked(nextChecked);\n\n // if the checkbox was indeterminate, it isn't anymore\n if (indeterminate()) {\n setIndeterminate(false);\n }\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.emit(value);\n }\n\n function setIndeterminate(value: boolean): void {\n indeterminate.set(value);\n onIndeterminateChange?.(value);\n indeterminateChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n checkedChange: checkedChange.asObservable(),\n indeterminateChange: indeterminateChange.asObservable(),\n toggle,\n setChecked,\n setIndeterminate,\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpCheckbox, provideCheckboxState } from './checkbox-state';\n\n/**\n * Apply the `ngpCheckbox` directive to an element to that represents the checkbox, such as a `button`.\n */\n@Directive({\n selector: '[ngpCheckbox]',\n providers: [provideCheckboxState({ inherit: false })],\n})\nexport class NgpCheckbox {\n /**\n * The id of the checkbox.\n * @internal\n */\n readonly id = input(uniqueId('ngp-checkbox'));\n\n /**\n * Defines whether the checkbox is checked.\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the checkbox value changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpCheckboxCheckedChange',\n });\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxIndeterminate',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the indeterminate value changes.\n */\n readonly indeterminateChange = output<boolean>({\n alias: 'ngpCheckboxIndeterminateChange',\n });\n\n /**\n * Whether the checkbox is required.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxRequired',\n transform: booleanAttribute,\n });\n\n /**\n * Defines whether the checkbox is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the checkbox.\n */\n protected readonly state = ngpCheckbox({\n id: this.id,\n checked: this.checked,\n indeterminate: this.indeterminate,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n onIndeterminateChange: value => this.indeterminateChange.emit(value),\n });\n\n toggle(event?: Event): void {\n this.state.toggle(event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}