foldkit 0.40.0 → 0.42.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 (83) hide show
  1. package/README.md +20 -18
  2. package/dist/devtools/overlay.d.ts.map +1 -1
  3. package/dist/devtools/overlay.js +35 -6
  4. package/dist/devtools/store.d.ts +2 -1
  5. package/dist/devtools/store.d.ts.map +1 -1
  6. package/dist/devtools/store.js +4 -1
  7. package/dist/runtime/browserListeners.d.ts +2 -2
  8. package/dist/runtime/browserListeners.js +11 -11
  9. package/dist/runtime/crashUI.d.ts.map +1 -1
  10. package/dist/runtime/crashUI.js +1 -3
  11. package/dist/runtime/public.d.ts +2 -2
  12. package/dist/runtime/public.d.ts.map +1 -1
  13. package/dist/runtime/public.js +1 -1
  14. package/dist/runtime/runtime.d.ts +33 -46
  15. package/dist/runtime/runtime.d.ts.map +1 -1
  16. package/dist/runtime/runtime.js +25 -43
  17. package/dist/ui/checkbox/index.d.ts +3 -3
  18. package/dist/ui/checkbox/index.d.ts.map +1 -1
  19. package/dist/ui/checkbox/index.js +11 -8
  20. package/dist/ui/combobox/multi.d.ts +4 -3
  21. package/dist/ui/combobox/multi.d.ts.map +1 -1
  22. package/dist/ui/combobox/multi.js +4 -4
  23. package/dist/ui/combobox/public.d.ts +2 -2
  24. package/dist/ui/combobox/public.d.ts.map +1 -1
  25. package/dist/ui/combobox/public.js +1 -1
  26. package/dist/ui/combobox/shared.d.ts +12 -1
  27. package/dist/ui/combobox/shared.d.ts.map +1 -1
  28. package/dist/ui/combobox/shared.js +32 -19
  29. package/dist/ui/combobox/single.d.ts +4 -3
  30. package/dist/ui/combobox/single.d.ts.map +1 -1
  31. package/dist/ui/combobox/single.js +4 -4
  32. package/dist/ui/dialog/index.d.ts +11 -3
  33. package/dist/ui/dialog/index.d.ts.map +1 -1
  34. package/dist/ui/dialog/index.js +15 -7
  35. package/dist/ui/dialog/public.d.ts +1 -1
  36. package/dist/ui/dialog/public.d.ts.map +1 -1
  37. package/dist/ui/dialog/public.js +1 -1
  38. package/dist/ui/disclosure/index.d.ts +8 -3
  39. package/dist/ui/disclosure/index.d.ts.map +1 -1
  40. package/dist/ui/disclosure/index.js +12 -7
  41. package/dist/ui/disclosure/public.d.ts +2 -2
  42. package/dist/ui/disclosure/public.d.ts.map +1 -1
  43. package/dist/ui/disclosure/public.js +1 -1
  44. package/dist/ui/listbox/multi.d.ts +4 -3
  45. package/dist/ui/listbox/multi.d.ts.map +1 -1
  46. package/dist/ui/listbox/multi.js +4 -4
  47. package/dist/ui/listbox/public.d.ts +3 -3
  48. package/dist/ui/listbox/public.d.ts.map +1 -1
  49. package/dist/ui/listbox/public.js +2 -2
  50. package/dist/ui/listbox/shared.d.ts +14 -1
  51. package/dist/ui/listbox/shared.d.ts.map +1 -1
  52. package/dist/ui/listbox/shared.js +31 -16
  53. package/dist/ui/listbox/single.d.ts +10 -5
  54. package/dist/ui/listbox/single.d.ts.map +1 -1
  55. package/dist/ui/listbox/single.js +8 -5
  56. package/dist/ui/menu/index.d.ts +19 -3
  57. package/dist/ui/menu/index.d.ts.map +1 -1
  58. package/dist/ui/menu/index.js +39 -21
  59. package/dist/ui/menu/public.d.ts +2 -2
  60. package/dist/ui/menu/public.d.ts.map +1 -1
  61. package/dist/ui/menu/public.js +1 -1
  62. package/dist/ui/popover/index.d.ts +20 -3
  63. package/dist/ui/popover/index.d.ts.map +1 -1
  64. package/dist/ui/popover/index.js +31 -14
  65. package/dist/ui/popover/public.d.ts +2 -2
  66. package/dist/ui/popover/public.d.ts.map +1 -1
  67. package/dist/ui/popover/public.js +1 -1
  68. package/dist/ui/radioGroup/index.d.ts +10 -5
  69. package/dist/ui/radioGroup/index.d.ts.map +1 -1
  70. package/dist/ui/radioGroup/index.js +18 -20
  71. package/dist/ui/radioGroup/public.d.ts +2 -2
  72. package/dist/ui/radioGroup/public.d.ts.map +1 -1
  73. package/dist/ui/radioGroup/public.js +1 -1
  74. package/dist/ui/switch/index.d.ts +3 -3
  75. package/dist/ui/switch/index.d.ts.map +1 -1
  76. package/dist/ui/switch/index.js +11 -8
  77. package/dist/ui/tabs/index.d.ts +8 -3
  78. package/dist/ui/tabs/index.d.ts.map +1 -1
  79. package/dist/ui/tabs/index.js +15 -8
  80. package/dist/ui/tabs/public.d.ts +2 -2
  81. package/dist/ui/tabs/public.d.ts.map +1 -1
  82. package/dist/ui/tabs/public.js +1 -1
  83. package/package.json +1 -1
@@ -27,7 +27,7 @@ const defaultSlowViewCallback = (context) => {
27
27
  /** Effect service tag that provides message dispatching to the view layer. */
28
28
  export class Dispatch extends Context.Tag('@foldkit/Dispatch')() {
29
29
  }
30
- const makeRuntime = ({ Model, flags: resolveFlags, init, update, view, subscriptions, container, browser: browserConfig, crash, slowView, resources, managedResources, devtools, }) => {
30
+ const makeRuntime = ({ Model, flags: resolveFlags, init, update, view, subscriptions, container, routing: routingConfig, crash, slowView, resources, managedResources, title, devtools, }) => {
31
31
  const resolvedSlowView = pipe(slowView ?? {}, Option.liftPredicate(config => config !== false), Option.filter(config => Match.value(config.show ?? DEFAULT_SLOW_VIEW_SHOW).pipe(Match.when('Always', () => true), Match.when('Development', () => !!import.meta.hot), Match.exhaustive)), Option.map(config => ({
32
32
  thresholdMs: config.thresholdMs ?? DEFAULT_SLOW_VIEW_THRESHOLD_MS,
33
33
  onSlowView: config.onSlowView ?? defaultSlowViewCallback,
@@ -67,7 +67,7 @@ const makeRuntime = ({ Model, flags: resolveFlags, init, update, view, subscript
67
67
  const modelEquivalence = Schema.equivalence(Model);
68
68
  const messageQueue = yield* Queue.unbounded();
69
69
  const enqueueMessage = (message) => Queue.offer(messageQueue, message);
70
- const currentUrl = Option.fromNullable(browserConfig).pipe(Option.flatMap(() => urlFromString(window.location.href)));
70
+ const currentUrl = Option.fromNullable(routingConfig).pipe(Option.flatMap(() => urlFromString(window.location.href)));
71
71
  const [initModel, initCommands] = Predicate.isNotUndefined(hmrModel)
72
72
  ? pipe(hmrModel, Schema.decodeUnknownEither(Model), Either.match({
73
73
  onLeft: () => init(flags, Option.getOrUndefined(currentUrl)),
@@ -78,8 +78,8 @@ const makeRuntime = ({ Model, flags: resolveFlags, init, update, view, subscript
78
78
  yield* Effect.forEach(
79
79
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
80
80
  initCommands, command => Effect.forkDaemon(command.effect.pipe(Effect.withSpan(command.name), provideAllResources, Effect.flatMap(enqueueMessage))));
81
- if (browserConfig) {
82
- addNavigationEventListeners(messageQueue, browserConfig);
81
+ if (routingConfig) {
82
+ addNavigationEventListeners(messageQueue, routingConfig);
83
83
  }
84
84
  const modelRef = yield* Ref.make(initModel);
85
85
  const maybeCurrentVNodeRef = yield* Ref.make(Option.none());
@@ -165,6 +165,9 @@ const makeRuntime = ({ Model, flags: resolveFlags, init, update, view, subscript
165
165
  const maybeCurrentVNode = yield* Ref.get(maybeCurrentVNodeRef);
166
166
  const patchedVNode = yield* Effect.sync(() => patchVNode(maybeCurrentVNode, nextVNodeNullish, container));
167
167
  yield* Ref.set(maybeCurrentVNodeRef, Option.some(patchedVNode));
168
+ if (title) {
169
+ document.title = title(model);
170
+ }
168
171
  }).pipe(Effect.provideService(Dispatch, {
169
172
  dispatchAsync,
170
173
  dispatchSync,
@@ -189,7 +192,7 @@ const makeRuntime = ({ Model, flags: resolveFlags, init, update, view, subscript
189
192
  getCurrentModel: Ref.get(modelRef),
190
193
  });
191
194
  yield* Ref.set(maybeDevtoolsStoreRef, Option.some(devtoolsStore));
192
- yield* devtoolsStore.recordInit(initModel);
195
+ yield* devtoolsStore.recordInit(initModel, Array.map(initCommands, ({ name }) => name));
193
196
  yield* createOverlay(devtoolsStore, position, mode, maybeBanner);
194
197
  }
195
198
  yield* render(initModel, Option.none());
@@ -284,13 +287,19 @@ const renderCrashView = (context, crash, container, maybeCurrentVNodeRef) => {
284
287
  patchVNode(maybeCurrentVNode, vnode, container);
285
288
  }
286
289
  };
287
- export function makeElement(config) {
290
+ export function makeProgram(config) {
291
+ const hasRouting = 'routing' in config;
292
+ const hasFlags = 'Flags' in config;
293
+ const currentUrl = hasRouting
294
+ ? Option.getOrThrow(urlFromString(window.location.href))
295
+ : undefined;
288
296
  const baseConfig = {
289
297
  Model: config.Model,
290
298
  update: config.update,
291
299
  view: config.view,
292
300
  ...(config.subscriptions && { subscriptions: config.subscriptions }),
293
301
  container: config.container,
302
+ ...(hasRouting && { routing: config.routing }),
294
303
  ...(config.crash && { crash: config.crash }),
295
304
  ...(Predicate.isNotUndefined(config.slowView) && {
296
305
  slowView: config.slowView,
@@ -299,72 +308,45 @@ export function makeElement(config) {
299
308
  ...(config.managedResources && {
300
309
  managedResources: config.managedResources,
301
310
  }),
311
+ ...(config.title && { title: config.title }),
302
312
  ...(Predicate.isNotUndefined(config.devtools) && {
303
313
  devtools: config.devtools,
304
314
  }),
305
315
  };
306
- if ('Flags' in config) {
307
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
316
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
317
+ if (hasFlags && hasRouting) {
308
318
  return makeRuntime({
309
319
  ...baseConfig,
310
320
  Flags: config.Flags,
311
321
  flags: config.flags,
312
- init: (flags) =>
313
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
314
- config.init(flags),
322
+ init: (flags, url) => config.init(flags, url ?? currentUrl),
315
323
  });
316
324
  }
317
- else {
318
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
325
+ else if (hasRouting) {
319
326
  return makeRuntime({
320
327
  ...baseConfig,
321
328
  Flags: Schema.Void,
322
329
  flags: Effect.succeed(undefined),
323
- init: () => config.init(),
330
+ init: (_flags, url) => config.init(url ?? currentUrl),
324
331
  });
325
332
  }
326
- }
327
- export function makeApplication(config) {
328
- const currentUrl = Option.getOrThrow(urlFromString(window.location.href));
329
- const baseConfig = {
330
- Model: config.Model,
331
- update: config.update,
332
- view: config.view,
333
- ...(config.subscriptions && { subscriptions: config.subscriptions }),
334
- container: config.container,
335
- browser: config.browser,
336
- ...(config.crash && { crash: config.crash }),
337
- ...(Predicate.isNotUndefined(config.slowView) && {
338
- slowView: config.slowView,
339
- }),
340
- ...(config.resources && { resources: config.resources }),
341
- ...(config.managedResources && {
342
- managedResources: config.managedResources,
343
- }),
344
- ...(Predicate.isNotUndefined(config.devtools) && {
345
- devtools: config.devtools,
346
- }),
347
- };
348
- if ('Flags' in config) {
349
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
333
+ else if (hasFlags) {
350
334
  return makeRuntime({
351
335
  ...baseConfig,
352
336
  Flags: config.Flags,
353
337
  flags: config.flags,
354
- init: (flags, url) =>
355
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
356
- config.init(flags, url ?? currentUrl),
338
+ init: (flags) => config.init(flags),
357
339
  });
358
340
  }
359
341
  else {
360
- /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
361
342
  return makeRuntime({
362
343
  ...baseConfig,
363
344
  Flags: Schema.Void,
364
345
  flags: Effect.succeed(undefined),
365
- init: (_flags, url) => config.init(url ?? currentUrl),
346
+ init: () => config.init(),
366
347
  });
367
348
  }
349
+ /* eslint-enable @typescript-eslint/consistent-type-assertions */
368
350
  }
369
351
  const preserveModel = (model) => {
370
352
  if (import.meta.hot) {
@@ -32,7 +32,7 @@ export type CheckboxAttributes<Message> = Readonly<{
32
32
  /** Configuration for rendering a checkbox with `view`. */
33
33
  export type ViewConfig<Message> = Readonly<{
34
34
  model: Model;
35
- toMessage: (message: Toggled) => Message;
35
+ toParentMessage: (message: Toggled) => Message;
36
36
  toView: (attributes: CheckboxAttributes<Message>) => Html;
37
37
  isDisabled?: boolean;
38
38
  isIndeterminate?: boolean;
@@ -42,6 +42,6 @@ export type ViewConfig<Message> = Readonly<{
42
42
  /** Renders an accessible checkbox by building ARIA attribute groups and delegating layout to the consumer's `toView` callback. */
43
43
  export declare const view: <Message>(config: ViewConfig<Message>) => Html;
44
44
  /** Creates a memoized checkbox view. Static config is captured in a closure;
45
- * only `model` and `toMessage` are compared per render via `createLazy`. */
46
- export declare const lazy: <Message>(staticConfig: Omit<ViewConfig<Message>, "model" | "toMessage">) => ((model: Model, toMessage: ViewConfig<Message>["toMessage"]) => Html);
45
+ * only `model` and `toParentMessage` are compared per render via `createLazy`. */
46
+ export declare const lazy: <Message>(staticConfig: Omit<ViewConfig<Message>, "model" | "toParentMessage">) => ((model: Model, toParentMessage: ViewConfig<Message>["toParentMessage"]) => Html);
47
47
  //# sourceMappingURL=index.d.ts.map
@@ -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,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,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAGlD,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
+ {"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,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAGlD,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,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IAC9C,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,IA2E3D,CAAA;AAED;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,OAAO,EAC1B,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC,KACnE,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,KACpD,IAAI,CAgBR,CAAA"}
@@ -29,8 +29,8 @@ const descriptionId = (id) => `${id}-description`;
29
29
  /** Renders an accessible checkbox by building ARIA attribute groups and delegating layout to the consumer's `toView` callback. */
30
30
  export const view = (config) => {
31
31
  const { AriaChecked, AriaDescribedBy, AriaDisabled, AriaLabelledBy, DataAttribute, Id, Name, OnClick, OnKeyUpPreventDefault, Role, Tabindex, Type, Value, } = html();
32
- const { model: { id, isChecked }, toMessage, isDisabled = false, isIndeterminate = false, name, value: formValue = 'on', } = config;
33
- const handleKeyUp = (key) => M.value(key).pipe(M.when(' ', () => Option.some(toMessage(Toggled()))), M.orElse(() => Option.none()));
32
+ const { model: { id, isChecked }, toParentMessage, isDisabled = false, isIndeterminate = false, name, value: formValue = 'on', } = config;
33
+ const handleKeyUp = (key) => M.value(key).pipe(M.when(' ', () => Option.some(toParentMessage(Toggled()))), M.orElse(() => Option.none()));
34
34
  const stateAttributes = isIndeterminate
35
35
  ? [DataAttribute('indeterminate', '')]
36
36
  : isChecked
@@ -49,11 +49,14 @@ export const view = (config) => {
49
49
  ...disabledAttributes,
50
50
  ...(isDisabled
51
51
  ? []
52
- : [OnClick(toMessage(Toggled())), OnKeyUpPreventDefault(handleKeyUp)]),
52
+ : [
53
+ OnClick(toParentMessage(Toggled())),
54
+ OnKeyUpPreventDefault(handleKeyUp),
55
+ ]),
53
56
  ];
54
57
  const labelAttributes = [
55
58
  Id(labelId(id)),
56
- ...(isDisabled ? [] : [OnClick(toMessage(Toggled()))]),
59
+ ...(isDisabled ? [] : [OnClick(toParentMessage(Toggled()))]),
57
60
  ];
58
61
  const descriptionAttributes = [Id(descriptionId(id))];
59
62
  const hiddenInputAttributes = name
@@ -67,12 +70,12 @@ export const view = (config) => {
67
70
  });
68
71
  };
69
72
  /** Creates a memoized checkbox view. Static config is captured in a closure;
70
- * only `model` and `toMessage` are compared per render via `createLazy`. */
73
+ * only `model` and `toParentMessage` are compared per render via `createLazy`. */
71
74
  export const lazy = (staticConfig) => {
72
75
  const lazyView = createLazy();
73
- return (model, toMessage) => lazyView((currentModel, currentToMessage) => view({
76
+ return (model, toParentMessage) => lazyView((currentModel, currentToMessage) => view({
74
77
  ...staticConfig,
75
78
  model: currentModel,
76
- toMessage: currentToMessage,
77
- }), [model, toMessage]);
79
+ toParentMessage: currentToMessage,
80
+ }), [model, toParentMessage]);
78
81
  };
@@ -146,7 +146,8 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
146
146
  } & {
147
147
  readonly selectedItems: readonly string[];
148
148
  };
149
- 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").CompletedLockScroll | import("./shared").CompletedUnlockScroll | import("./shared").CompletedSetupInert | import("./shared").CompletedTeardownInert | import("./shared").CompletedFocusInput | import("./shared").CompletedScrollIntoView | import("./shared").CompletedClickItem) => Message;
149
+ toParentMessage: (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").CompletedLockScroll | import("./shared").CompletedUnlockScroll | import("./shared").CompletedSetupInert | import("./shared").CompletedTeardownInert | import("./shared").CompletedFocusInput | import("./shared").CompletedScrollIntoView | import("./shared").CompletedClickItem) => Message;
150
+ onSelectedItem?: (value: string) => Message;
150
151
  items: readonly Item[];
151
152
  itemToConfig: (item: Item, context: Readonly<{
152
153
  isActive: boolean;
@@ -197,6 +198,6 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
197
198
  }>;
198
199
  }>) => Html;
199
200
  /** Creates a memoized multi-select combobox view. Static config is captured in a closure;
200
- * only `model` and `toMessage` are compared per render via `createLazy`. */
201
- export declare const lazy: <Message, Item extends string>(staticConfig: Omit<ViewConfig<Message, Item>, "model" | "toMessage">) => ((model: Model, toMessage: BaseViewConfig<Message, Item, Model>["toMessage"]) => Html);
201
+ * only `model` and `toParentMessage` are compared per render via `createLazy`. */
202
+ export declare const lazy: <Message, Item extends string>(staticConfig: Omit<ViewConfig<Message, Item>, "model" | "toParentMessage" | "onSelectedItem">) => ((model: Model, toParentMessage: BaseViewConfig<Message, Item, Model>["toParentMessage"]) => Html);
202
203
  //# sourceMappingURL=multi.d.ts.map
@@ -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,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
+ {"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;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAChB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EACzB,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,KACrE,IAAI,CAoBR,CAAA"}
@@ -42,12 +42,12 @@ export const view = makeView({
42
42
  ariaMultiSelectable: true,
43
43
  });
44
44
  /** Creates a memoized multi-select combobox view. Static config is captured in a closure;
45
- * only `model` and `toMessage` are compared per render via `createLazy`. */
45
+ * only `model` and `toParentMessage` are compared per render via `createLazy`. */
46
46
  export const lazy = (staticConfig) => {
47
47
  const lazyView = createLazy();
48
- return (model, toMessage) => lazyView((currentModel, currentToMessage) => view({
48
+ return (model, toParentMessage) => lazyView((currentModel, currentToMessage) => view({
49
49
  ...staticConfig,
50
50
  model: currentModel,
51
- toMessage: currentToMessage,
52
- }), [model, toMessage]);
51
+ toParentMessage: currentToMessage,
52
+ }), [model, toParentMessage]);
53
53
  };
@@ -1,7 +1,7 @@
1
1
  export { init, update, view, lazy, Model } from './single';
2
- export { Message } from './shared';
2
+ export { Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, AdvancedTransitionFrame, EndedTransition, DetectedInputMovement, RequestFrame, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusInput, ScrollIntoView, ClickItem, WaitForTransitions, DetectMovementOrTransitionEnd, } from './shared';
3
3
  export { TransitionState } from '../transition';
4
- export type { ActivationTrigger, Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, SelectedItem, MovedPointerOverItem, RequestedItemClick, UpdatedInputValue, PressedToggleButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, AdvancedTransitionFrame, EndedTransition, DetectedInputMovement, ItemConfig, GroupHeading, } from './shared';
4
+ export type { ActivationTrigger, Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, MovedPointerOverItem, RequestedItemClick, UpdatedInputValue, PressedToggleButton, 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,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
+ {"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,EACL,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,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,4 +1,4 @@
1
1
  export { init, update, view, lazy, Model } from './single';
2
- export { Message } from './shared';
2
+ export { Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, AdvancedTransitionFrame, EndedTransition, DetectedInputMovement, RequestFrame, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusInput, ScrollIntoView, ClickItem, WaitForTransitions, DetectMovementOrTransitionEnd, } from './shared';
3
3
  export { TransitionState } from '../transition';
4
4
  export * as Multi from './multiPublic';
@@ -156,33 +156,43 @@ export type SelectedItemContext = Readonly<{
156
156
  maybeRestoreInert: Option.Option<Command.Command<Message>>;
157
157
  }>;
158
158
  /** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
159
+ /** Advances the combobox's enter/leave transition by waiting a double-rAF. */
159
160
  export declare const RequestFrame: Command.CommandDefinition<"RequestFrame", {
160
161
  readonly _tag: "AdvancedTransitionFrame";
161
162
  }>;
163
+ /** Prevents page scrolling while the combobox popup is open in modal mode. */
162
164
  export declare const LockScroll: Command.CommandDefinition<"LockScroll", {
163
165
  readonly _tag: "CompletedLockScroll";
164
166
  }>;
167
+ /** Re-enables page scrolling after the combobox popup closes. */
165
168
  export declare const UnlockScroll: Command.CommandDefinition<"UnlockScroll", {
166
169
  readonly _tag: "CompletedUnlockScroll";
167
170
  }>;
171
+ /** Marks all elements outside the combobox as inert for modal behavior. */
168
172
  export declare const InertOthers: Command.CommandDefinition<"InertOthers", {
169
173
  readonly _tag: "CompletedSetupInert";
170
174
  }>;
175
+ /** Removes the inert attribute from elements outside the combobox. */
171
176
  export declare const RestoreInert: Command.CommandDefinition<"RestoreInert", {
172
177
  readonly _tag: "CompletedTeardownInert";
173
178
  }>;
179
+ /** Moves focus to the combobox input after selection or close. */
174
180
  export declare const FocusInput: Command.CommandDefinition<"FocusInput", {
175
181
  readonly _tag: "CompletedFocusInput";
176
182
  }>;
183
+ /** Scrolls the active combobox item into view after keyboard navigation. */
177
184
  export declare const ScrollIntoView: Command.CommandDefinition<"ScrollIntoView", {
178
185
  readonly _tag: "CompletedScrollIntoView";
179
186
  }>;
187
+ /** Programmatically clicks the active combobox item's DOM element. */
180
188
  export declare const ClickItem: Command.CommandDefinition<"ClickItem", {
181
189
  readonly _tag: "CompletedClickItem";
182
190
  }>;
191
+ /** Waits for all CSS transitions on the combobox items container to complete. */
183
192
  export declare const WaitForTransitions: Command.CommandDefinition<"WaitForTransitions", {
184
193
  readonly _tag: "EndedTransition";
185
194
  }>;
195
+ /** Detects whether the combobox input moved or the leave transition ended — whichever comes first. */
186
196
  export declare const DetectMovementOrTransitionEnd: Command.CommandDefinition<"DetectMovementOrTransitionEnd", {
187
197
  readonly _tag: "EndedTransition";
188
198
  } | {
@@ -263,7 +273,8 @@ export type GroupHeading = Readonly<{
263
273
  /** Configuration for rendering a combobox with `view`. */
264
274
  export type BaseViewConfig<Message, Item extends string, Model extends BaseModel> = Readonly<{
265
275
  model: Model;
266
- toMessage: (message: Opened | Closed | ClosedByTab | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | CompletedLockScroll | CompletedUnlockScroll | CompletedSetupInert | CompletedTeardownInert | CompletedFocusInput | CompletedScrollIntoView | CompletedClickItem) => Message;
276
+ toParentMessage: (message: Opened | Closed | ClosedByTab | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | CompletedLockScroll | CompletedUnlockScroll | CompletedSetupInert | CompletedTeardownInert | CompletedFocusInput | CompletedScrollIntoView | CompletedClickItem) => Message;
277
+ onSelectedItem?: (value: string) => Message;
267
278
  items: ReadonlyArray<Item>;
268
279
  itemToConfig: (item: Item, context: Readonly<{
269
280
  isActive: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}
@@ -120,15 +120,25 @@ export const closedBaseModel = (model) => constrainedEvo(model, {
120
120
  maybeLastPointerPosition: () => Option.none(),
121
121
  });
122
122
  /** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
123
+ /** Advances the combobox's enter/leave transition by waiting a double-rAF. */
123
124
  export const RequestFrame = Command.define('RequestFrame', AdvancedTransitionFrame);
125
+ /** Prevents page scrolling while the combobox popup is open in modal mode. */
124
126
  export const LockScroll = Command.define('LockScroll', CompletedLockScroll);
127
+ /** Re-enables page scrolling after the combobox popup closes. */
125
128
  export const UnlockScroll = Command.define('UnlockScroll', CompletedUnlockScroll);
129
+ /** Marks all elements outside the combobox as inert for modal behavior. */
126
130
  export const InertOthers = Command.define('InertOthers', CompletedSetupInert);
131
+ /** Removes the inert attribute from elements outside the combobox. */
127
132
  export const RestoreInert = Command.define('RestoreInert', CompletedTeardownInert);
133
+ /** Moves focus to the combobox input after selection or close. */
128
134
  export const FocusInput = Command.define('FocusInput', CompletedFocusInput);
135
+ /** Scrolls the active combobox item into view after keyboard navigation. */
129
136
  export const ScrollIntoView = Command.define('ScrollIntoView', CompletedScrollIntoView);
137
+ /** Programmatically clicks the active combobox item's DOM element. */
130
138
  export const ClickItem = Command.define('ClickItem', CompletedClickItem);
139
+ /** Waits for all CSS transitions on the combobox items container to complete. */
131
140
  export const WaitForTransitions = Command.define('WaitForTransitions', EndedTransition);
141
+ /** Detects whether the combobox input moved or the leave transition ended — whichever comes first. */
132
142
  export const DetectMovementOrTransitionEnd = Command.define('DetectMovementOrTransitionEnd', DetectedInputMovement, EndedTransition);
133
143
  export const makeUpdate = (handlers) => {
134
144
  const withUpdateReturn = M.withReturnType();
@@ -318,7 +328,13 @@ export const makeUpdate = (handlers) => {
318
328
  /** Creates a combobox view function from variant-specific behavior. Shared rendering logic (input, items, transitions, keyboard navigation) is handled internally; only selection display varies by variant. */
319
329
  export const makeView = (behavior) => (config) => {
320
330
  const { div, input, AriaActiveDescendant, AriaControls, AriaDisabled, AriaExpanded, AriaInvalid, AriaLabelledBy, AriaMultiSelectable, AriaSelected, Attribute, Autocomplete, Class, DataAttribute, Id, Name, OnBlur, OnClick, OnDestroy, OnFocus, OnInput, OnInsert, OnKeyDownPreventDefault, OnPointerLeave, OnPointerMove, Placeholder, Role, Style, Tabindex, Type, Value, keyed, } = html();
321
- const { model: { id, isOpen, immediate, transitionState, maybeActiveItemIndex }, toMessage, items, itemToConfig, itemToValue, itemToDisplayText, isItemDisabled, inputClassName, inputAttributes = [], inputPlaceholder, inputWrapperClassName, inputWrapperAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], buttonContent, buttonClassName, buttonAttributes = [], formName, isDisabled, isInvalid, openOnFocus, itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, } = config;
331
+ const { model: { id, isOpen, immediate, transitionState, maybeActiveItemIndex }, toParentMessage, onSelectedItem, items, itemToConfig, itemToValue, itemToDisplayText, isItemDisabled, inputClassName, inputAttributes = [], inputPlaceholder, inputWrapperClassName, inputWrapperAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], buttonContent, buttonClassName, buttonAttributes = [], formName, isDisabled, isInvalid, openOnFocus, itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, } = config;
332
+ const dispatchSelectedItem = (item, index) => onSelectedItem
333
+ ? onSelectedItem(itemToValue(item, index))
334
+ : toParentMessage(SelectedItem({
335
+ item: itemToValue(item, index),
336
+ displayText: itemToDisplayText(item, index),
337
+ }));
322
338
  const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
323
339
  const isVisible = isOpen || isLeaving;
324
340
  const transitionAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
@@ -350,24 +366,24 @@ export const makeView = (behavior) => (config) => {
350
366
  })));
351
367
  const handleInputKeyDown = (key) => M.value(key).pipe(M.when('ArrowDown', () => {
352
368
  if (!isOpen) {
353
- return Option.some(toMessage(Opened({
369
+ return Option.some(toParentMessage(Opened({
354
370
  maybeActiveItemIndex: Option.some(firstEnabledIndex),
355
371
  })));
356
372
  }
357
373
  const targetIndex = resolveActiveIndex('ArrowDown');
358
- return Option.some(toMessage(ActivatedItem({
374
+ return Option.some(toParentMessage(ActivatedItem({
359
375
  index: targetIndex,
360
376
  activationTrigger: 'Keyboard',
361
377
  maybeImmediateSelection: resolveImmediateSelection(targetIndex),
362
378
  })));
363
379
  }), M.when('ArrowUp', () => {
364
380
  if (!isOpen) {
365
- return Option.some(toMessage(Opened({
381
+ return Option.some(toParentMessage(Opened({
366
382
  maybeActiveItemIndex: Option.some(lastEnabledIndex),
367
383
  })));
368
384
  }
369
385
  const targetIndex = resolveActiveIndex('ArrowUp');
370
- return Option.some(toMessage(ActivatedItem({
386
+ return Option.some(toParentMessage(ActivatedItem({
371
387
  index: targetIndex,
372
388
  activationTrigger: 'Keyboard',
373
389
  maybeImmediateSelection: resolveImmediateSelection(targetIndex),
@@ -376,18 +392,18 @@ export const makeView = (behavior) => (config) => {
376
392
  if (!isOpen) {
377
393
  return Option.none();
378
394
  }
379
- return Option.map(maybeActiveItemIndex, index => toMessage(RequestedItemClick({ index })));
395
+ return Option.map(maybeActiveItemIndex, index => toParentMessage(RequestedItemClick({ index })));
380
396
  }), M.when('Escape', () => {
381
397
  if (!isOpen) {
382
398
  return Option.none();
383
399
  }
384
- return Option.some(toMessage(Closed()));
400
+ return Option.some(toParentMessage(Closed()));
385
401
  }), M.whenOr('Home', 'End', () => {
386
402
  if (!isOpen) {
387
403
  return Option.none();
388
404
  }
389
405
  const targetIndex = resolveActiveIndex(key);
390
- return Option.some(toMessage(ActivatedItem({
406
+ return Option.some(toParentMessage(ActivatedItem({
391
407
  index: targetIndex,
392
408
  activationTrigger: 'Keyboard',
393
409
  maybeImmediateSelection: resolveImmediateSelection(targetIndex),
@@ -416,12 +432,12 @@ export const makeView = (behavior) => (config) => {
416
432
  ...(isDisabled
417
433
  ? [AriaDisabled(true), DataAttribute('disabled', '')]
418
434
  : [
419
- OnInput(value => toMessage(UpdatedInputValue({ value }))),
435
+ OnInput(value => toParentMessage(UpdatedInputValue({ value }))),
420
436
  OnKeyDownPreventDefault(handleInputKeyDown),
421
- OnBlur(toMessage(ClosedByTab())),
437
+ OnBlur(toParentMessage(ClosedByTab())),
422
438
  ...(openOnFocus
423
439
  ? [
424
- OnFocus(toMessage(Opened({ maybeActiveItemIndex: Option.none() }))),
440
+ OnFocus(toParentMessage(Opened({ maybeActiveItemIndex: Option.none() }))),
425
441
  ]
426
442
  : []),
427
443
  ]),
@@ -490,16 +506,13 @@ export const makeView = (behavior) => (config) => {
490
506
  : []),
491
507
  ...(isInteractive
492
508
  ? [
493
- OnClick(toMessage(SelectedItem({
494
- item: itemToValue(item, index),
495
- displayText: itemToDisplayText(item, index),
496
- }))),
509
+ OnClick(dispatchSelectedItem(item, index)),
497
510
  ...(isActiveItem
498
511
  ? []
499
512
  : [
500
- OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toMessage(MovedPointerOverItem({ index, screenX, screenY })))),
513
+ OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
501
514
  ]),
502
- OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toMessage(DeactivatedItem()))),
515
+ OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
503
516
  ]
504
517
  : []),
505
518
  ...(itemConfig.className ? [Class(itemConfig.className)] : []),
@@ -548,7 +561,7 @@ export const makeView = (behavior) => (config) => {
548
561
  });
549
562
  };
550
563
  const backdrop = keyed('div')(`${id}-backdrop`, [
551
- ...(isLeaving ? [] : [OnClick(toMessage(Closed()))]),
564
+ ...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
552
565
  ...(backdropClassName ? [Class(backdropClassName)] : []),
553
566
  ...backdropAttributes,
554
567
  ], []);
@@ -582,7 +595,7 @@ export const makeView = (behavior) => (config) => {
582
595
  Attribute('aria-haspopup', 'listbox'),
583
596
  ...(isDisabled
584
597
  ? [AriaDisabled(true), DataAttribute('disabled', '')]
585
- : [OnClick(toMessage(PressedToggleButton()))]),
598
+ : [OnClick(toParentMessage(PressedToggleButton()))]),
586
599
  OnInsert(preventBlurOnPointerDown),
587
600
  ...(buttonClassName ? [Class(buttonClassName)] : []),
588
601
  ...buttonAttributes,
@@ -151,7 +151,8 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
151
151
  readonly maybeSelectedItem: Option.Option<string>;
152
152
  readonly maybeSelectedDisplayText: Option.Option<string>;
153
153
  };
154
- 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").CompletedLockScroll | import("./shared").CompletedUnlockScroll | import("./shared").CompletedSetupInert | import("./shared").CompletedTeardownInert | import("./shared").CompletedFocusInput | import("./shared").CompletedScrollIntoView | import("./shared").CompletedClickItem) => Message;
154
+ toParentMessage: (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").CompletedLockScroll | import("./shared").CompletedUnlockScroll | import("./shared").CompletedSetupInert | import("./shared").CompletedTeardownInert | import("./shared").CompletedFocusInput | import("./shared").CompletedScrollIntoView | import("./shared").CompletedClickItem) => Message;
155
+ onSelectedItem?: (value: string) => Message;
155
156
  items: readonly Item[];
156
157
  itemToConfig: (item: Item, context: Readonly<{
157
158
  isActive: boolean;
@@ -202,6 +203,6 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
202
203
  }>;
203
204
  }>) => Html;
204
205
  /** Creates a memoized single-select combobox view. Static config is captured in a closure;
205
- * only `model` and `toMessage` are compared per render via `createLazy`. */
206
- export declare const lazy: <Message, Item extends string>(staticConfig: Omit<ViewConfig<Message, Item>, "model" | "toMessage">) => ((model: Model, toMessage: BaseViewConfig<Message, Item, Model>["toMessage"]) => Html);
206
+ * only `model` and `toParentMessage` are compared per render via `createLazy`. */
207
+ export declare const lazy: <Message, Item extends string>(staticConfig: Omit<ViewConfig<Message, Item>, "model" | "toParentMessage" | "onSelectedItem">) => ((model: Model, toParentMessage: BaseViewConfig<Message, Item, Model>["toParentMessage"]) => Html);
207
208
  //# sourceMappingURL=single.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,uJAAuJ;AACvJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;GAOjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC,CAAA;AAEJ,4IAA4I;AAC5I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAMxC,CAAA;AAIF,uIAAuI;AACvI,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDjB,CAAA;AAIF,wEAAwE;AACxE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,0IAA0I;AAC1I,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOf,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":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,uJAAuJ;AACvJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;GAOjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC,CAAA;AAEJ,4IAA4I;AAC5I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAMxC,CAAA;AAIF,uIAAuI;AACvI,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDjB,CAAA;AAIF,wEAAwE;AACxE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,0IAA0I;AAC1I,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAChB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EACzB,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,KACrE,IAAI,CAoBR,CAAA"}
@@ -62,12 +62,12 @@ export const view = makeView({
62
62
  ariaMultiSelectable: false,
63
63
  });
64
64
  /** Creates a memoized single-select combobox view. Static config is captured in a closure;
65
- * only `model` and `toMessage` are compared per render via `createLazy`. */
65
+ * only `model` and `toParentMessage` are compared per render via `createLazy`. */
66
66
  export const lazy = (staticConfig) => {
67
67
  const lazyView = createLazy();
68
- return (model, toMessage) => lazyView((currentModel, currentToMessage) => view({
68
+ return (model, toParentMessage) => lazyView((currentModel, currentToMessage) => view({
69
69
  ...staticConfig,
70
70
  model: currentModel,
71
- toMessage: currentToMessage,
72
- }), [model, toMessage]);
71
+ toParentMessage: currentToMessage,
72
+ }), [model, toParentMessage]);
73
73
  };