foldkit 0.33.5 → 0.34.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 (82) hide show
  1. package/README.md +19 -19
  2. package/dist/devtools/overlay-styles.d.ts +1 -1
  3. package/dist/devtools/overlay-styles.d.ts.map +1 -1
  4. package/dist/devtools/overlay-styles.js +3 -0
  5. package/dist/devtools/overlay.d.ts.map +1 -1
  6. package/dist/devtools/overlay.js +79 -34
  7. package/dist/html/index.d.ts +431 -5
  8. package/dist/html/index.d.ts.map +1 -1
  9. package/dist/html/index.js +1 -0
  10. package/dist/html/public.d.ts +1 -2
  11. package/dist/html/public.d.ts.map +1 -1
  12. package/dist/html/public.js +1 -2
  13. package/dist/task/dom.d.ts +6 -6
  14. package/dist/task/dom.js +6 -6
  15. package/dist/task/inert.d.ts +2 -2
  16. package/dist/task/inert.js +2 -2
  17. package/dist/task/scrollLock.d.ts +2 -2
  18. package/dist/task/scrollLock.js +2 -2
  19. package/dist/ui/checkbox/index.d.ts +5 -9
  20. package/dist/ui/checkbox/index.d.ts.map +1 -1
  21. package/dist/ui/checkbox/index.js +7 -10
  22. package/dist/ui/checkbox/public.d.ts +1 -1
  23. package/dist/ui/checkbox/public.d.ts.map +1 -1
  24. package/dist/ui/combobox/multi.d.ts +31 -10
  25. package/dist/ui/combobox/multi.d.ts.map +1 -1
  26. package/dist/ui/combobox/multi.js +1 -1
  27. package/dist/ui/combobox/public.d.ts +1 -1
  28. package/dist/ui/combobox/public.d.ts.map +1 -1
  29. package/dist/ui/combobox/shared.d.ts +53 -14
  30. package/dist/ui/combobox/shared.d.ts.map +1 -1
  31. package/dist/ui/combobox/shared.js +72 -28
  32. package/dist/ui/combobox/single.d.ts +31 -10
  33. package/dist/ui/combobox/single.d.ts.map +1 -1
  34. package/dist/ui/combobox/single.js +1 -1
  35. package/dist/ui/dialog/index.d.ts +14 -8
  36. package/dist/ui/dialog/index.d.ts.map +1 -1
  37. package/dist/ui/dialog/index.js +21 -12
  38. package/dist/ui/dialog/public.d.ts +1 -1
  39. package/dist/ui/dialog/public.d.ts.map +1 -1
  40. package/dist/ui/dialog/public.js +1 -1
  41. package/dist/ui/disclosure/index.d.ts +11 -8
  42. package/dist/ui/disclosure/index.d.ts.map +1 -1
  43. package/dist/ui/disclosure/index.js +20 -18
  44. package/dist/ui/disclosure/public.d.ts +1 -1
  45. package/dist/ui/disclosure/public.d.ts.map +1 -1
  46. package/dist/ui/listbox/multi.d.ts +34 -9
  47. package/dist/ui/listbox/multi.d.ts.map +1 -1
  48. package/dist/ui/listbox/multi.js +1 -1
  49. package/dist/ui/listbox/public.d.ts +1 -1
  50. package/dist/ui/listbox/public.d.ts.map +1 -1
  51. package/dist/ui/listbox/shared.d.ts +57 -13
  52. package/dist/ui/listbox/shared.d.ts.map +1 -1
  53. package/dist/ui/listbox/shared.js +77 -27
  54. package/dist/ui/listbox/single.d.ts +34 -9
  55. package/dist/ui/listbox/single.d.ts.map +1 -1
  56. package/dist/ui/listbox/single.js +1 -1
  57. package/dist/ui/menu/index.d.ts +39 -11
  58. package/dist/ui/menu/index.d.ts.map +1 -1
  59. package/dist/ui/menu/index.js +81 -32
  60. package/dist/ui/menu/public.d.ts +1 -1
  61. package/dist/ui/menu/public.d.ts.map +1 -1
  62. package/dist/ui/popover/index.d.ts +28 -12
  63. package/dist/ui/popover/index.d.ts.map +1 -1
  64. package/dist/ui/popover/index.js +50 -24
  65. package/dist/ui/popover/public.d.ts +1 -1
  66. package/dist/ui/popover/public.d.ts.map +1 -1
  67. package/dist/ui/radioGroup/index.d.ts +8 -7
  68. package/dist/ui/radioGroup/index.d.ts.map +1 -1
  69. package/dist/ui/radioGroup/index.js +12 -9
  70. package/dist/ui/radioGroup/public.d.ts +1 -1
  71. package/dist/ui/radioGroup/public.d.ts.map +1 -1
  72. package/dist/ui/switch/index.d.ts +5 -9
  73. package/dist/ui/switch/index.d.ts.map +1 -1
  74. package/dist/ui/switch/index.js +7 -10
  75. package/dist/ui/switch/public.d.ts +1 -1
  76. package/dist/ui/switch/public.d.ts.map +1 -1
  77. package/dist/ui/tabs/index.d.ts +9 -7
  78. package/dist/ui/tabs/index.d.ts.map +1 -1
  79. package/dist/ui/tabs/index.js +27 -17
  80. package/dist/ui/tabs/public.d.ts +1 -1
  81. package/dist/ui/tabs/public.d.ts.map +1 -1
  82. package/package.json +3 -3
package/dist/task/dom.js CHANGED
@@ -15,7 +15,7 @@ const FOCUSABLE_SELECTOR = Array.join([
15
15
  *
16
16
  * @example
17
17
  * ```typescript
18
- * Task.focus('#email-input').pipe(Effect.ignore, Effect.as(NoOp()))
18
+ * Task.focus('#email-input').pipe(Effect.ignore, Effect.as(CompletedInputFocus()))
19
19
  * ```
20
20
  */
21
21
  export const focus = (selector) => Effect.async(resume => {
@@ -37,7 +37,7 @@ export const focus = (selector) => Effect.async(resume => {
37
37
  *
38
38
  * @example
39
39
  * ```typescript
40
- * Task.showModal('#my-dialog').pipe(Effect.ignore, Effect.as(NoOp()))
40
+ * Task.showModal('#my-dialog').pipe(Effect.ignore, Effect.as(CompletedDialogShow()))
41
41
  * ```
42
42
  */
43
43
  export const showModal = (selector) => Effect.async(resume => {
@@ -59,7 +59,7 @@ export const showModal = (selector) => Effect.async(resume => {
59
59
  *
60
60
  * @example
61
61
  * ```typescript
62
- * Task.closeModal('#my-dialog').pipe(Effect.ignore, Effect.as(NoOp()))
62
+ * Task.closeModal('#my-dialog').pipe(Effect.ignore, Effect.as(CompletedDialogClose()))
63
63
  * ```
64
64
  */
65
65
  export const closeModal = (selector) => Effect.async(resume => {
@@ -81,7 +81,7 @@ export const closeModal = (selector) => Effect.async(resume => {
81
81
  *
82
82
  * @example
83
83
  * ```typescript
84
- * Task.clickElement('#menu-item-2').pipe(Effect.ignore, Effect.as(NoOp()))
84
+ * Task.clickElement('#menu-item-2').pipe(Effect.ignore, Effect.as(CompletedItemClick()))
85
85
  * ```
86
86
  */
87
87
  export const clickElement = (selector) => Effect.async(resume => {
@@ -103,7 +103,7 @@ export const clickElement = (selector) => Effect.async(resume => {
103
103
  *
104
104
  * @example
105
105
  * ```typescript
106
- * Task.scrollIntoView('#active-item').pipe(Effect.ignore, Effect.as(NoOp()))
106
+ * Task.scrollIntoView('#active-item').pipe(Effect.ignore, Effect.as(CompletedScrollIntoView()))
107
107
  * ```
108
108
  */
109
109
  export const scrollIntoView = (selector) => Effect.async(resume => {
@@ -125,7 +125,7 @@ export const scrollIntoView = (selector) => Effect.async(resume => {
125
125
  *
126
126
  * @example
127
127
  * ```typescript
128
- * Task.advanceFocus('#menu-button', 'Next').pipe(Effect.ignore, Effect.as(NoOp()))
128
+ * Task.advanceFocus('#menu-button', 'Next').pipe(Effect.ignore, Effect.as(CompletedFocusAdvance()))
129
129
  * ```
130
130
  */
131
131
  export const advanceFocus = (selector, direction) => Effect.async(resume => {
@@ -8,7 +8,7 @@ import { Effect } from 'effect';
8
8
  * @example
9
9
  * ```typescript
10
10
  * Task.inertOthers('my-menu', ['#menu-button', '#menu-items']).pipe(
11
- * Effect.as(NoOp()),
11
+ * Effect.as(CompletedInertSetup()),
12
12
  * )
13
13
  * ```
14
14
  */
@@ -19,7 +19,7 @@ export declare const inertOthers: (id: string, allowedSelectors: ReadonlyArray<s
19
19
  *
20
20
  * @example
21
21
  * ```typescript
22
- * Task.restoreInert('my-menu').pipe(Effect.as(NoOp()))
22
+ * Task.restoreInert('my-menu').pipe(Effect.as(CompletedInertTeardown()))
23
23
  * ```
24
24
  */
25
25
  export declare const restoreInert: (id: string) => Effect.Effect<void>;
@@ -60,7 +60,7 @@ const inertableSiblings = (parent, allowedElements) => pipe(parent.children, Arr
60
60
  * @example
61
61
  * ```typescript
62
62
  * Task.inertOthers('my-menu', ['#menu-button', '#menu-items']).pipe(
63
- * Effect.as(NoOp()),
63
+ * Effect.as(CompletedInertSetup()),
64
64
  * )
65
65
  * ```
66
66
  */
@@ -75,7 +75,7 @@ export const inertOthers = (id, allowedSelectors) => Effect.sync(() => {
75
75
  *
76
76
  * @example
77
77
  * ```typescript
78
- * Task.restoreInert('my-menu').pipe(Effect.as(NoOp()))
78
+ * Task.restoreInert('my-menu').pipe(Effect.as(CompletedInertTeardown()))
79
79
  * ```
80
80
  */
81
81
  export const restoreInert = (id) => Effect.sync(() => {
@@ -9,7 +9,7 @@ import { Effect } from 'effect';
9
9
  *
10
10
  * @example
11
11
  * ```typescript
12
- * Task.lockScroll.pipe(Effect.as(NoOp()))
12
+ * Task.lockScroll.pipe(Effect.as(CompletedScrollLock()))
13
13
  * ```
14
14
  */
15
15
  export declare const lockScroll: Effect.Effect<void>;
@@ -20,7 +20,7 @@ export declare const lockScroll: Effect.Effect<void>;
20
20
  *
21
21
  * @example
22
22
  * ```typescript
23
- * Task.unlockScroll.pipe(Effect.as(NoOp()))
23
+ * Task.unlockScroll.pipe(Effect.as(CompletedScrollUnlock()))
24
24
  * ```
25
25
  */
26
26
  export declare const unlockScroll: Effect.Effect<void>;
@@ -46,7 +46,7 @@ const handleTouchMove = (event) => {
46
46
  *
47
47
  * @example
48
48
  * ```typescript
49
- * Task.lockScroll.pipe(Effect.as(NoOp()))
49
+ * Task.lockScroll.pipe(Effect.as(CompletedScrollLock()))
50
50
  * ```
51
51
  */
52
52
  export const lockScroll = Effect.sync(() => {
@@ -73,7 +73,7 @@ export const lockScroll = Effect.sync(() => {
73
73
  *
74
74
  * @example
75
75
  * ```typescript
76
- * Task.unlockScroll.pipe(Effect.as(NoOp()))
76
+ * Task.unlockScroll.pipe(Effect.as(CompletedScrollUnlock()))
77
77
  * ```
78
78
  */
79
79
  export const unlockScroll = Effect.sync(() => {
@@ -1,7 +1,6 @@
1
1
  import { Schema as S } from 'effect';
2
2
  import type { Command } from '../../command';
3
- import type { Attribute } from '../../html';
4
- import type { Html } from '../../html';
3
+ import { type Attribute, type Html } from '../../html';
5
4
  /** Schema for the checkbox component's state, tracking the checked status. */
6
5
  export declare const Model: S.Struct<{
7
6
  id: typeof S.String;
@@ -10,12 +9,9 @@ export declare const Model: S.Struct<{
10
9
  export type Model = typeof Model.Type;
11
10
  /** Sent when the user toggles the checkbox via click or Space key. */
12
11
  export declare const Toggled: import("../../schema").CallableTaggedStruct<"Toggled", {}>;
13
- /** Placeholder message used when no action is needed. */
14
- export declare const NoOp: import("../../schema").CallableTaggedStruct<"NoOp", {}>;
15
- /** Union of all messages the checkbox component can produce. */
16
- export declare const Message: S.Union<[import("../../schema").CallableTaggedStruct<"Toggled", {}>, import("../../schema").CallableTaggedStruct<"NoOp", {}>]>;
12
+ /** Schema for all messages the checkbox component can produce. */
13
+ export declare const Message: import("../../schema").CallableTaggedStruct<"Toggled", {}>;
17
14
  export type Toggled = typeof Toggled.Type;
18
- export type NoOp = typeof NoOp.Type;
19
15
  export type Message = typeof Message.Type;
20
16
  /** Configuration for creating a checkbox model with `init`. */
21
17
  export type InitConfig = Readonly<{
@@ -25,7 +21,7 @@ export type InitConfig = Readonly<{
25
21
  /** Creates an initial checkbox model from a config. Defaults to unchecked. */
26
22
  export declare const init: (config: InitConfig) => Model;
27
23
  /** Processes a checkbox message and returns the next model and commands. */
28
- export declare const update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message>>];
24
+ export declare const update: (model: Model, _message: Message) => [Model, ReadonlyArray<Command<Message>>];
29
25
  /** Attribute groups the checkbox component provides to the consumer's `toView` callback. */
30
26
  export type CheckboxAttributes<Message> = Readonly<{
31
27
  checkbox: ReadonlyArray<Attribute<Message>>;
@@ -36,7 +32,7 @@ export type CheckboxAttributes<Message> = Readonly<{
36
32
  /** Configuration for rendering a checkbox with `view`. */
37
33
  export type ViewConfig<Message> = Readonly<{
38
34
  model: Model;
39
- toMessage: (message: Toggled | NoOp) => Message;
35
+ toMessage: (message: Toggled) => Message;
40
36
  toView: (attributes: CheckboxAttributes<Message>) => Html;
41
37
  isDisabled?: boolean;
42
38
  isIndeterminate?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOtC,8EAA8E;AAC9E,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,sEAAsE;AACtE,eAAO,MAAM,OAAO,4DAAe,CAAA;AACnC,yDAAyD;AACzD,eAAO,MAAM,IAAI,yDAAY,CAAA;AAE7B,gEAAgE;AAChE,eAAO,MAAM,OAAO,gIAAyB,CAAA;AAE7C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AACzC,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AAEnC,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAC,CAAA;AAEF,8EAA8E;AAC9E,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,4EAA4E;AAC5E,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAOvC,CAAA;AAIH,4FAA4F;AAC5F,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI,QAAQ,CAAC;IACjD,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEF,0DAA0D;AAC1D,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,OAAO,CAAA;IAC/C,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACzD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC,CAAA;AAKF,kIAAkI;AAClI,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,QAAQ,UAAU,CAAC,OAAO,CAAC,KAAG,IAwE3D,CAAA;AAED;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAC1B,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KAC7D,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAgBtE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAoB,MAAM,YAAY,CAAA;AAMxE,8EAA8E;AAC9E,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,sEAAsE;AACtE,eAAO,MAAM,OAAO,4DAAe,CAAA;AAEnC,kEAAkE;AAClE,eAAO,MAAM,OAAO,4DAAU,CAAA;AAE9B,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAC,CAAA;AAEF,8EAA8E;AAC9E,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,4EAA4E;AAC5E,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,UAAU,OAAO,KAChB,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAGzC,CAAA;AAID,4FAA4F;AAC5F,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI,QAAQ,CAAC;IACjD,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEF,0DAA0D;AAC1D,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IACxC,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACzD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC,CAAA;AAKF,kIAAkI;AAClI,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,QAAQ,UAAU,CAAC,OAAO,CAAC,KAAG,IAwE3D,CAAA;AAED;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAC1B,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KAC7D,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAgBtE,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Match as M, Option, Schema as S } from 'effect';
2
- import { html } from '../../html';
3
- import { createLazy } from '../../html/lazy';
2
+ import { createLazy, html } from '../../html';
4
3
  import { m } from '../../message';
5
4
  import { evo } from '../../struct';
6
5
  // MODEL
@@ -12,10 +11,8 @@ export const Model = S.Struct({
12
11
  // MESSAGE
13
12
  /** Sent when the user toggles the checkbox via click or Space key. */
14
13
  export const Toggled = m('Toggled');
15
- /** Placeholder message used when no action is needed. */
16
- export const NoOp = m('NoOp');
17
- /** Union of all messages the checkbox component can produce. */
18
- export const Message = S.Union(Toggled, NoOp);
14
+ /** Schema for all messages the checkbox component can produce. */
15
+ export const Message = Toggled;
19
16
  /** Creates an initial checkbox model from a config. Defaults to unchecked. */
20
17
  export const init = (config) => ({
21
18
  id: config.id,
@@ -23,10 +20,10 @@ export const init = (config) => ({
23
20
  });
24
21
  // UPDATE
25
22
  /** Processes a checkbox message and returns the next model and commands. */
26
- export const update = (model, message) => M.value(message).pipe(M.withReturnType(), M.tagsExhaustive({
27
- Toggled: () => [evo(model, { isChecked: isChecked => !isChecked }), []],
28
- NoOp: () => [model, []],
29
- }));
23
+ export const update = (model, _message) => [
24
+ evo(model, { isChecked: isChecked => !isChecked }),
25
+ [],
26
+ ];
30
27
  const labelId = (id) => `${id}-label`;
31
28
  const descriptionId = (id) => `${id}-description`;
32
29
  /** Renders an accessible checkbox by building ARIA attribute groups and delegating layout to the consumer's `toView` callback. */
@@ -1,3 +1,3 @@
1
1
  export { init, update, view, lazy, Model, Message } from './index';
2
- export type { Toggled, NoOp, InitConfig, ViewConfig, CheckboxAttributes, } from './index';
2
+ export type { Toggled, InitConfig, ViewConfig, CheckboxAttributes, } from './index';
3
3
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/checkbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAElE,YAAY,EACV,OAAO,EACP,IAAI,EACJ,UAAU,EACV,UAAU,EACV,kBAAkB,GACnB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/checkbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAElE,YAAY,EACV,OAAO,EACP,UAAU,EACV,UAAU,EACV,kBAAkB,GACnB,MAAM,SAAS,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Schema as S } from 'effect';
2
- import type { Html } from '../../html';
2
+ import { type Html } from '../../html';
3
3
  import { type BaseInitConfig, type BaseViewConfig } from './shared';
4
4
  /** Schema for the multi-select combobox component's state, tracking open/closed status, active item, input value, and selected items. */
5
5
  export declare const Model: S.extend<S.Struct<{
@@ -66,8 +66,6 @@ export declare const update: (model: {
66
66
  } & {
67
67
  readonly selectedItems: readonly string[];
68
68
  }, readonly import("../../command").Command<{
69
- readonly _tag: "NoOp";
70
- } | {
71
69
  readonly _tag: "Opened";
72
70
  readonly maybeActiveItemIndex: import("effect/Option").Option<number>;
73
71
  } | {
@@ -96,6 +94,20 @@ export declare const update: (model: {
96
94
  } | {
97
95
  readonly _tag: "RequestedItemClick";
98
96
  readonly index: number;
97
+ } | {
98
+ readonly _tag: "CompletedScrollLock";
99
+ } | {
100
+ readonly _tag: "CompletedScrollUnlock";
101
+ } | {
102
+ readonly _tag: "CompletedInertSetup";
103
+ } | {
104
+ readonly _tag: "CompletedInertTeardown";
105
+ } | {
106
+ readonly _tag: "CompletedInputFocus";
107
+ } | {
108
+ readonly _tag: "CompletedScrollIntoView";
109
+ } | {
110
+ readonly _tag: "CompletedItemClick";
99
111
  } | {
100
112
  readonly _tag: "AdvancedTransitionFrame";
101
113
  } | {
@@ -131,28 +143,35 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
131
143
  } & {
132
144
  readonly selectedItems: readonly string[];
133
145
  };
134
- toMessage: (message: import("./shared").Opened | import("./shared").Closed | import("./shared").ClosedByTab | import("./shared").ActivatedItem | import("./shared").DeactivatedItem | import("./shared").SelectedItem | import("./shared").MovedPointerOverItem | import("./shared").RequestedItemClick | import("./shared").UpdatedInputValue | import("./shared").PressedToggleButton | import("./shared").NoOp) => Message;
146
+ toMessage: (message: import("./shared").Opened | import("./shared").Closed | import("./shared").ClosedByTab | import("./shared").ActivatedItem | import("./shared").DeactivatedItem | import("./shared").SelectedItem | import("./shared").MovedPointerOverItem | import("./shared").RequestedItemClick | import("./shared").UpdatedInputValue | import("./shared").PressedToggleButton | import("./shared").CompletedScrollLock | import("./shared").CompletedScrollUnlock | import("./shared").CompletedInertSetup | import("./shared").CompletedInertTeardown | import("./shared").CompletedInputFocus | import("./shared").CompletedScrollIntoView | import("./shared").CompletedItemClick) => Message;
135
147
  items: readonly Item[];
136
148
  itemToConfig: (item: Item, context: Readonly<{
137
149
  isActive: boolean;
138
150
  isDisabled: boolean;
139
151
  isSelected: boolean;
140
152
  }>) => Readonly<{
141
- className: string;
153
+ className?: string;
142
154
  content: Html;
143
155
  }>;
144
156
  itemToValue: (item: Item, index: number) => string;
145
157
  itemToDisplayText: (item: Item, index: number) => string;
146
158
  isItemDisabled?: (item: Item, index: number) => boolean;
147
- inputClassName: string;
159
+ inputClassName?: string;
160
+ inputAttributes?: readonly import("../../html").Attribute<Message>[];
148
161
  inputPlaceholder?: string;
149
- itemsClassName: string;
162
+ inputWrapperClassName?: string;
163
+ inputWrapperAttributes?: readonly import("../../html").Attribute<Message>[];
164
+ itemsClassName?: string;
165
+ itemsAttributes?: readonly import("../../html").Attribute<Message>[];
150
166
  itemsScrollClassName?: string;
151
- backdropClassName: string;
167
+ itemsScrollAttributes?: readonly import("../../html").Attribute<Message>[];
168
+ backdropClassName?: string;
169
+ backdropAttributes?: readonly import("../../html").Attribute<Message>[];
152
170
  className?: string;
153
- inputWrapperClassName?: string;
171
+ attributes?: readonly import("../../html").Attribute<Message>[];
154
172
  buttonContent?: Html;
155
173
  buttonClassName?: string;
174
+ buttonAttributes?: readonly import("../../html").Attribute<Message>[];
156
175
  formName?: string;
157
176
  isDisabled?: boolean;
158
177
  isInvalid?: boolean;
@@ -160,10 +179,12 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
160
179
  itemGroupKey?: (item: Item, index: number) => string;
161
180
  groupToHeading?: (groupKey: string) => Readonly<{
162
181
  content: Html;
163
- className: string;
182
+ className?: string;
164
183
  }> | undefined;
165
184
  groupClassName?: string;
185
+ groupAttributes?: readonly import("../../html").Attribute<Message>[];
166
186
  separatorClassName?: string;
187
+ separatorAttributes?: readonly import("../../html").Attribute<Message>[];
167
188
  anchor?: Readonly<{
168
189
  placement?: import("@floating-ui/dom").Placement;
169
190
  gap?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGtC,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,yIAAyI;AACzI,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;GAEjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC,CAAC,CAAA;AAEJ,2IAA2I;AAC3I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAcF,yJAAyJ;AACzJ,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBjB,CAAA;AAIF,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,yIAAyI;AACzI,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAIf,CAAA;AAEF;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KACnE,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KACzD,IAAI,CAgBR,CAAA"}
1
+ {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,yIAAyI;AACzI,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;GAEjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC,CAAC,CAAA;AAEJ,2IAA2I;AAC3I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAcF,yJAAyJ;AACzJ,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBjB,CAAA;AAIF,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,yIAAyI;AACzI,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAIf,CAAA;AAEF;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KACnE,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KACzD,IAAI,CAgBR,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Array, Schema as S } from 'effect';
2
- import { createLazy } from '../../html/lazy';
2
+ import { createLazy } from '../../html';
3
3
  import { evo } from '../../struct';
4
4
  import { BaseModel, baseInit, closedBaseModel, makeUpdate, makeView, } from './shared';
5
5
  // MODEL
@@ -1,7 +1,7 @@
1
1
  export { init, update, view, lazy, Model } from './single';
2
2
  export { Message } from './shared';
3
3
  export { TransitionState } from '../transition';
4
- export type { ActivationTrigger, Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, SelectedItem, MovedPointerOverItem, RequestedItemClick, UpdatedInputValue, PressedToggleButton, NoOp, AdvancedTransitionFrame, EndedTransition, DetectedInputMovement, ItemConfig, GroupHeading, } from './shared';
4
+ export type { ActivationTrigger, Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, SelectedItem, MovedPointerOverItem, RequestedItemClick, UpdatedInputValue, PressedToggleButton, CompletedScrollLock, CompletedScrollUnlock, CompletedInertSetup, CompletedInertTeardown, CompletedInputFocus, CompletedScrollIntoView, CompletedItemClick, AdvancedTransitionFrame, EndedTransition, DetectedInputMovement, ItemConfig, GroupHeading, } from './shared';
5
5
  export type { InitConfig, ViewConfig } from './single';
6
6
  export type { AnchorConfig } from '../anchor';
7
7
  export * as Multi from './multiPublic';
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,IAAI,EACJ,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,YAAY,GACb,MAAM,UAAU,CAAA;AAEjB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAEtD,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,YAAY,GACb,MAAM,UAAU,CAAA;AAEjB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAEtD,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,eAAe,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Option, Schema as S } from 'effect';
2
2
  import type { Command } from '../../command';
3
- import { type Html } from '../../html';
3
+ import { type Attribute, type Html } from '../../html';
4
4
  import type { AnchorConfig } from '../anchor';
5
5
  import { groupContiguous } from '../group';
6
6
  export { groupContiguous };
@@ -71,8 +71,20 @@ export declare const MovedPointerOverItem: import("../../schema").CallableTagged
71
71
  export declare const RequestedItemClick: import("../../schema").CallableTaggedStruct<"RequestedItemClick", {
72
72
  index: typeof S.Number;
73
73
  }>;
74
- /** Placeholder message used when no action is needed. */
75
- export declare const NoOp: import("../../schema").CallableTaggedStruct<"NoOp", {}>;
74
+ /** Sent when the scroll lock command completes. */
75
+ export declare const CompletedScrollLock: import("../../schema").CallableTaggedStruct<"CompletedScrollLock", {}>;
76
+ /** Sent when the scroll unlock command completes. */
77
+ export declare const CompletedScrollUnlock: import("../../schema").CallableTaggedStruct<"CompletedScrollUnlock", {}>;
78
+ /** Sent when the inert-others command completes. */
79
+ export declare const CompletedInertSetup: import("../../schema").CallableTaggedStruct<"CompletedInertSetup", {}>;
80
+ /** Sent when the restore-inert command completes. */
81
+ export declare const CompletedInertTeardown: import("../../schema").CallableTaggedStruct<"CompletedInertTeardown", {}>;
82
+ /** Sent when the focus-input command completes. */
83
+ export declare const CompletedInputFocus: import("../../schema").CallableTaggedStruct<"CompletedInputFocus", {}>;
84
+ /** Sent when the scroll-into-view command completes after keyboard activation. */
85
+ export declare const CompletedScrollIntoView: import("../../schema").CallableTaggedStruct<"CompletedScrollIntoView", {}>;
86
+ /** Sent when the programmatic item click command completes. */
87
+ export declare const CompletedItemClick: import("../../schema").CallableTaggedStruct<"CompletedItemClick", {}>;
76
88
  /** Sent internally when a double-rAF completes, advancing the transition to its animating phase. */
77
89
  export declare const AdvancedTransitionFrame: import("../../schema").CallableTaggedStruct<"AdvancedTransitionFrame", {}>;
78
90
  /** Sent internally when all CSS transitions on the items container have completed. */
@@ -104,7 +116,7 @@ export declare const Message: S.Union<[import("../../schema").CallableTaggedStru
104
116
  screenY: typeof S.Number;
105
117
  }>, import("../../schema").CallableTaggedStruct<"RequestedItemClick", {
106
118
  index: typeof S.Number;
107
- }>, import("../../schema").CallableTaggedStruct<"NoOp", {}>, import("../../schema").CallableTaggedStruct<"AdvancedTransitionFrame", {}>, import("../../schema").CallableTaggedStruct<"EndedTransition", {}>, import("../../schema").CallableTaggedStruct<"DetectedInputMovement", {}>, import("../../schema").CallableTaggedStruct<"UpdatedInputValue", {
119
+ }>, import("../../schema").CallableTaggedStruct<"CompletedScrollLock", {}>, import("../../schema").CallableTaggedStruct<"CompletedScrollUnlock", {}>, import("../../schema").CallableTaggedStruct<"CompletedInertSetup", {}>, import("../../schema").CallableTaggedStruct<"CompletedInertTeardown", {}>, import("../../schema").CallableTaggedStruct<"CompletedInputFocus", {}>, import("../../schema").CallableTaggedStruct<"CompletedScrollIntoView", {}>, import("../../schema").CallableTaggedStruct<"CompletedItemClick", {}>, import("../../schema").CallableTaggedStruct<"AdvancedTransitionFrame", {}>, import("../../schema").CallableTaggedStruct<"EndedTransition", {}>, import("../../schema").CallableTaggedStruct<"DetectedInputMovement", {}>, import("../../schema").CallableTaggedStruct<"UpdatedInputValue", {
108
120
  value: typeof S.String;
109
121
  }>, import("../../schema").CallableTaggedStruct<"PressedToggleButton", {}>]>;
110
122
  export type Opened = typeof Opened.Type;
@@ -115,7 +127,13 @@ export type DeactivatedItem = typeof DeactivatedItem.Type;
115
127
  export type SelectedItem = typeof SelectedItem.Type;
116
128
  export type MovedPointerOverItem = typeof MovedPointerOverItem.Type;
117
129
  export type RequestedItemClick = typeof RequestedItemClick.Type;
118
- export type NoOp = typeof NoOp.Type;
130
+ export type CompletedScrollLock = typeof CompletedScrollLock.Type;
131
+ export type CompletedScrollUnlock = typeof CompletedScrollUnlock.Type;
132
+ export type CompletedInertSetup = typeof CompletedInertSetup.Type;
133
+ export type CompletedInertTeardown = typeof CompletedInertTeardown.Type;
134
+ export type CompletedInputFocus = typeof CompletedInputFocus.Type;
135
+ export type CompletedScrollIntoView = typeof CompletedScrollIntoView.Type;
136
+ export type CompletedItemClick = typeof CompletedItemClick.Type;
119
137
  export type AdvancedTransitionFrame = typeof AdvancedTransitionFrame.Type;
120
138
  export type EndedTransition = typeof EndedTransition.Type;
121
139
  export type DetectedInputMovement = typeof DetectedInputMovement.Type;
@@ -142,8 +160,6 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
142
160
  handleSelectedItem: (model: Model, item: string, displayText: string, context: SelectedItemContext) => [Model, ReadonlyArray<Command<Message>>];
143
161
  handleImmediateActivation: (model: Model, item: string, displayText: string) => Model;
144
162
  }>) => (model: Model, message: Message) => [Model, readonly Command<{
145
- readonly _tag: "NoOp";
146
- } | {
147
163
  readonly _tag: "Opened";
148
164
  readonly maybeActiveItemIndex: Option.Option<number>;
149
165
  } | {
@@ -172,6 +188,20 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
172
188
  } | {
173
189
  readonly _tag: "RequestedItemClick";
174
190
  readonly index: number;
191
+ } | {
192
+ readonly _tag: "CompletedScrollLock";
193
+ } | {
194
+ readonly _tag: "CompletedScrollUnlock";
195
+ } | {
196
+ readonly _tag: "CompletedInertSetup";
197
+ } | {
198
+ readonly _tag: "CompletedInertTeardown";
199
+ } | {
200
+ readonly _tag: "CompletedInputFocus";
201
+ } | {
202
+ readonly _tag: "CompletedScrollIntoView";
203
+ } | {
204
+ readonly _tag: "CompletedItemClick";
175
205
  } | {
176
206
  readonly _tag: "AdvancedTransitionFrame";
177
207
  } | {
@@ -186,18 +216,18 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
186
216
  }>[]];
187
217
  /** Configuration for an individual combobox item's appearance. */
188
218
  export type ItemConfig = Readonly<{
189
- className: string;
219
+ className?: string;
190
220
  content: Html;
191
221
  }>;
192
222
  /** Configuration for a group heading rendered above a group of items. */
193
223
  export type GroupHeading = Readonly<{
194
224
  content: Html;
195
- className: string;
225
+ className?: string;
196
226
  }>;
197
227
  /** Configuration for rendering a combobox with `view`. */
198
228
  export type BaseViewConfig<Message, Item extends string, Model extends BaseModel> = Readonly<{
199
229
  model: Model;
200
- toMessage: (message: Opened | Closed | ClosedByTab | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | NoOp) => Message;
230
+ toMessage: (message: Opened | Closed | ClosedByTab | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | CompletedScrollLock | CompletedScrollUnlock | CompletedInertSetup | CompletedInertTeardown | CompletedInputFocus | CompletedScrollIntoView | CompletedItemClick) => Message;
201
231
  items: ReadonlyArray<Item>;
202
232
  itemToConfig: (item: Item, context: Readonly<{
203
233
  isActive: boolean;
@@ -207,15 +237,22 @@ export type BaseViewConfig<Message, Item extends string, Model extends BaseModel
207
237
  itemToValue: (item: Item, index: number) => string;
208
238
  itemToDisplayText: (item: Item, index: number) => string;
209
239
  isItemDisabled?: (item: Item, index: number) => boolean;
210
- inputClassName: string;
240
+ inputClassName?: string;
241
+ inputAttributes?: ReadonlyArray<Attribute<Message>>;
211
242
  inputPlaceholder?: string;
212
- itemsClassName: string;
243
+ inputWrapperClassName?: string;
244
+ inputWrapperAttributes?: ReadonlyArray<Attribute<Message>>;
245
+ itemsClassName?: string;
246
+ itemsAttributes?: ReadonlyArray<Attribute<Message>>;
213
247
  itemsScrollClassName?: string;
214
- backdropClassName: string;
248
+ itemsScrollAttributes?: ReadonlyArray<Attribute<Message>>;
249
+ backdropClassName?: string;
250
+ backdropAttributes?: ReadonlyArray<Attribute<Message>>;
215
251
  className?: string;
216
- inputWrapperClassName?: string;
252
+ attributes?: ReadonlyArray<Attribute<Message>>;
217
253
  buttonContent?: Html;
218
254
  buttonClassName?: string;
255
+ buttonAttributes?: ReadonlyArray<Attribute<Message>>;
219
256
  formName?: string;
220
257
  isDisabled?: boolean;
221
258
  isInvalid?: boolean;
@@ -223,7 +260,9 @@ export type BaseViewConfig<Message, Item extends string, Model extends BaseModel
223
260
  itemGroupKey?: (item: Item, index: number) => string;
224
261
  groupToHeading?: (groupKey: string) => GroupHeading | undefined;
225
262
  groupClassName?: string;
263
+ groupAttributes?: ReadonlyArray<Attribute<Message>>;
226
264
  separatorClassName?: string;
265
+ separatorAttributes?: ReadonlyArray<Attribute<Message>>;
227
266
  anchor?: AnchorConfig;
228
267
  }>;
229
268
  /** Variant-specific view behavior injected into the shared combobox view factory. */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAEN,MAAM,IAAI,CAAC,EAEZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,YAAY,CAAA;AAK5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI1C,OAAO,EAAE,eAAe,EAAE,CAAA;AAI1B,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,oCAAmC,CAAA;AACjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,oKAAoK;AACpK,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;EAepB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAC,CAAA;AAEF,kIAAkI;AAClI,eAAO,MAAM,QAAQ,GAAI,QAAQ,cAAc,KAAG,SAahD,CAAA;AAIF,0FAA0F;AAC1F,eAAO,MAAM,MAAM;;EAEjB,CAAA;AACF,sEAAsE;AACtE,eAAO,MAAM,MAAM,2DAAc,CAAA;AACjC,4DAA4D;AAC5D,eAAO,MAAM,WAAW,gEAAmB,CAAA;AAC3C,yIAAyI;AACzI,eAAO,MAAM,aAAa;;;;;;;EAMxB,CAAA;AACF,kDAAkD;AAClD,eAAO,MAAM,eAAe,oEAAuB,CAAA;AACnD,kHAAkH;AAClH,eAAO,MAAM,YAAY;;;EAGvB,CAAA;AACF,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;;;EAI/B,CAAA;AACF,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB;;EAE7B,CAAA;AACF,yDAAyD;AACzD,eAAO,MAAM,IAAI,yDAAY,CAAA;AAC7B,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,4EAA+B,CAAA;AACnE,sFAAsF;AACtF,eAAO,MAAM,eAAe,oEAAuB,CAAA;AACnD,wHAAwH;AACxH,eAAO,MAAM,qBAAqB,0EAA6B,CAAA;AAC/D,6CAA6C;AAC7C,eAAO,MAAM,iBAAiB;;EAE5B,CAAA;AACF,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,wEAA2B,CAAA;AAE3D,gEAAgE;AAChE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;4EAenB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AACjD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AACrD,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AACnD,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;AAC/D,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AACnC,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AACzE,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AACzD,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAC7D,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAEjE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAAwB,CAAA;AACnE,eAAO,MAAM,oBAAoB,GAAI,IAAI,MAAM,KAAG,MAC1B,CAAA;AACxB,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAAwB,CAAA;AACnE,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,OAAO,MAAM,KAAG,MACjC,CAAA;AACxB,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,EAAE,OAAO,MAAM,KAAG,MAC5B,CAAA;AAMvB,iIAAiI;AACjI,eAAO,MAAM,eAAe,GAAI,KAAK,SAAS,SAAS,EAAE,OAAO,KAAK,KAAG,KAQpE,CAAA;AAIJ,+GAA+G;AAC/G,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/C,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAClD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CACnD,CAAC,CAAA;AAEF,6NAA6N;AAC7N,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,SAAS,EAChD,UAAU,QAAQ,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAA;IACpC,kBAAkB,EAAE,CAClB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,KACzB,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7C,yBAAyB,EAAE,CACzB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,KAChB,KAAK,CAAA;CACX,CAAC,MAKM,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4RvC,CAAA;AAID,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,IAAI,CAAA;CACd,CAAC,CAAA;AAEF,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CAAA;AAEF,0DAA0D;AAC1D,MAAM,MAAM,cAAc,CACxB,OAAO,EACP,IAAI,SAAS,MAAM,EACnB,KAAK,SAAS,SAAS,IACrB,QAAQ,CAAC;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,CACT,OAAO,EACH,MAAM,GACN,MAAM,GACN,WAAW,GACX,aAAa,GACb,eAAe,GACf,YAAY,GACZ,oBAAoB,GACpB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,IAAI,KACL,OAAO,CAAA;IACZ,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAC1B,YAAY,EAAE,CACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,QAAQ,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAA;QACjB,UAAU,EAAE,OAAO,CAAA;QACnB,UAAU,EAAE,OAAO,CAAA;KACpB,CAAC,KACC,UAAU,CAAA;IACf,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACvD,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACpD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB,CAAC,CAAA;AAIF,qFAAqF;AACrF,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,SAAS,IAAI,QAAQ,CAAC;IAC3D,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5D,mBAAmB,EAAE,OAAO,CAAA;CAC7B,CAAC,CAAA;AAEF,gNAAgN;AAChN,eAAO,MAAM,QAAQ,GAClB,KAAK,SAAS,SAAS,EAAE,UAAU,YAAY,CAAC,KAAK,CAAC,MACtD,OAAO,EAAE,IAAI,SAAS,MAAM,EAC3B,QAAQ,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAC3C,IA6fF,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}