@foldkit/ui 0.156.0 → 0.157.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 (101) hide show
  1. package/dist/anchor/anchor.d.ts +18 -18
  2. package/dist/anchor/anchor.d.ts.map +1 -1
  3. package/dist/anchor/anchor.js +16 -16
  4. package/dist/animation/index.d.ts +4 -4
  5. package/dist/animation/index.d.ts.map +1 -1
  6. package/dist/animation/index.js +8 -8
  7. package/dist/animation/public.d.ts +1 -1
  8. package/dist/animation/public.d.ts.map +1 -1
  9. package/dist/animation/public.js +1 -1
  10. package/dist/animation/schema.d.ts +6 -6
  11. package/dist/animation/schema.d.ts.map +1 -1
  12. package/dist/animation/schema.js +5 -5
  13. package/dist/animation/update.d.ts +8 -2
  14. package/dist/animation/update.d.ts.map +1 -1
  15. package/dist/animation/update.js +22 -9
  16. package/dist/calendar/index.d.ts +56 -56
  17. package/dist/calendar/index.d.ts.map +1 -1
  18. package/dist/calendar/index.js +49 -37
  19. package/dist/checkbox/index.js +2 -2
  20. package/dist/combobox/multi.d.ts +19 -19
  21. package/dist/combobox/multi.d.ts.map +1 -1
  22. package/dist/combobox/multi.js +2 -2
  23. package/dist/combobox/shared.d.ts +61 -61
  24. package/dist/combobox/shared.d.ts.map +1 -1
  25. package/dist/combobox/shared.js +74 -62
  26. package/dist/combobox/single.d.ts +19 -19
  27. package/dist/combobox/single.d.ts.map +1 -1
  28. package/dist/combobox/single.js +2 -2
  29. package/dist/datePicker/index.d.ts +72 -72
  30. package/dist/datePicker/index.d.ts.map +1 -1
  31. package/dist/datePicker/index.js +12 -12
  32. package/dist/dialog/index.d.ts +14 -14
  33. package/dist/dialog/index.d.ts.map +1 -1
  34. package/dist/dialog/index.js +35 -23
  35. package/dist/disclosure/index.js +2 -2
  36. package/dist/dragAndDrop/index.d.ts +61 -61
  37. package/dist/dragAndDrop/index.d.ts.map +1 -1
  38. package/dist/dragAndDrop/index.js +85 -85
  39. package/dist/fileDrop/index.d.ts +6 -6
  40. package/dist/fileDrop/index.d.ts.map +1 -1
  41. package/dist/fileDrop/index.js +6 -6
  42. package/dist/hoverIntent/hoverIntent.d.ts +15 -15
  43. package/dist/hoverIntent/hoverIntent.d.ts.map +1 -1
  44. package/dist/hoverIntent/hoverIntent.js +17 -17
  45. package/dist/hoverIntent/message.d.ts +4 -4
  46. package/dist/hoverIntent/message.d.ts.map +1 -1
  47. package/dist/hoverIntent/message.js +4 -4
  48. package/dist/keyboard.js +2 -2
  49. package/dist/listbox/multi.d.ts +19 -19
  50. package/dist/listbox/multi.d.ts.map +1 -1
  51. package/dist/listbox/multi.js +2 -2
  52. package/dist/listbox/shared.d.ts +58 -58
  53. package/dist/listbox/shared.d.ts.map +1 -1
  54. package/dist/listbox/shared.js +74 -62
  55. package/dist/listbox/single.d.ts +19 -19
  56. package/dist/listbox/single.d.ts.map +1 -1
  57. package/dist/listbox/single.js +2 -2
  58. package/dist/menu/index.d.ts +67 -67
  59. package/dist/menu/index.d.ts.map +1 -1
  60. package/dist/menu/index.js +82 -67
  61. package/dist/popover/index.d.ts +34 -34
  62. package/dist/popover/index.d.ts.map +1 -1
  63. package/dist/popover/index.js +49 -37
  64. package/dist/radioGroup/index.d.ts +12 -12
  65. package/dist/radioGroup/index.d.ts.map +1 -1
  66. package/dist/radioGroup/index.js +16 -16
  67. package/dist/slider/index.d.ts +14 -14
  68. package/dist/slider/index.d.ts.map +1 -1
  69. package/dist/slider/index.js +31 -31
  70. package/dist/switch/index.js +2 -2
  71. package/dist/tabs/index.d.ts +14 -14
  72. package/dist/tabs/index.d.ts.map +1 -1
  73. package/dist/tabs/index.js +18 -18
  74. package/dist/test/apps/disabledButton.d.ts +12 -12
  75. package/dist/test/apps/disabledButton.d.ts.map +1 -1
  76. package/dist/test/apps/disabledButton.js +5 -5
  77. package/dist/textarea/index.d.ts +2 -2
  78. package/dist/textarea/index.d.ts.map +1 -1
  79. package/dist/toast/index.d.ts +63 -63
  80. package/dist/toast/index.d.ts.map +1 -1
  81. package/dist/toast/index.js +19 -19
  82. package/dist/toast/schema.d.ts +55 -55
  83. package/dist/toast/schema.d.ts.map +1 -1
  84. package/dist/toast/schema.js +29 -29
  85. package/dist/toast/test.d.ts.map +1 -1
  86. package/dist/toast/test.js +3 -3
  87. package/dist/toast/update.d.ts +61 -61
  88. package/dist/toast/update.d.ts.map +1 -1
  89. package/dist/toast/update.js +13 -13
  90. package/dist/tooltip/message.d.ts +3 -3
  91. package/dist/tooltip/message.d.ts.map +1 -1
  92. package/dist/tooltip/message.js +3 -3
  93. package/dist/tooltip/tooltip.d.ts +24 -24
  94. package/dist/tooltip/tooltip.d.ts.map +1 -1
  95. package/dist/tooltip/tooltip.js +13 -13
  96. package/dist/typeahead.d.ts.map +1 -1
  97. package/dist/typeahead.js +3 -3
  98. package/dist/virtualList/index.d.ts +16 -16
  99. package/dist/virtualList/index.d.ts.map +1 -1
  100. package/dist/virtualList/index.js +13 -13
  101. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
- import { Effect, Equal, Function, Match as M, Option, Schema as S, Stream, String as String_, pipe, } from 'effect';
2
+ import { Effect, Equal, Function, Match, Option, Schema, Stream, String, pipe, } from 'effect';
3
3
  import { childAttributes } from 'foldkit/html';
4
4
  import { defineMessageUnion } from 'foldkit/message';
5
5
  import { defineTaggedUnion } from 'foldkit/schema';
@@ -10,33 +10,33 @@ import { attributeSelector } from '../internal/selectors.js';
10
10
  // MODEL
11
11
  const DragState = defineTaggedUnion({
12
12
  Idle: {},
13
- Dragging: { originValue: S.Number },
13
+ Dragging: { originValue: Schema.Number },
14
14
  });
15
15
  /** Schema for the slider component's private interaction state. The current
16
16
  * value is owned by the parent and passed in via `ViewInputs.value`, so it is
17
17
  * not stored here. `min`/`max`/`step` are configuration the drag subscription
18
18
  * reads to map pointer positions into values. `dragState` tracks the active
19
19
  * drag phase and captures the pre-drag value so Escape can restore it. */
20
- export const Model = S.Struct({
21
- id: S.String,
22
- min: S.Number,
23
- max: S.Number,
24
- step: S.Number,
20
+ export const Model = Schema.Struct({
21
+ id: Schema.String,
22
+ min: Schema.Number,
23
+ max: Schema.Number,
24
+ step: Schema.Number,
25
25
  dragState: DragState,
26
26
  });
27
27
  // MESSAGE
28
28
  /** Union of all messages the slider component can produce. */
29
29
  export const Message = defineMessageUnion({
30
- PressedThumb: { originValue: S.Number },
30
+ PressedThumb: { originValue: Schema.Number },
31
31
  PressedPointer: {
32
- value: S.Number,
33
- originValue: S.Number,
32
+ value: Schema.Number,
33
+ originValue: Schema.Number,
34
34
  },
35
- MovedDragPointer: { value: S.Number },
35
+ MovedDragPointer: { value: Schema.Number },
36
36
  ReleasedDragPointer: {},
37
37
  CancelledDrag: {},
38
38
  PressedKeyboardNavigation: {
39
- direction: S.Literals([
39
+ direction: Schema.Literals([
40
40
  'StepDecrement',
41
41
  'StepIncrement',
42
42
  'PageDecrement',
@@ -44,13 +44,13 @@ export const Message = defineMessageUnion({
44
44
  'Min',
45
45
  'Max',
46
46
  ]),
47
- value: S.Number,
47
+ value: Schema.Number,
48
48
  },
49
49
  });
50
50
  // OUT MESSAGE
51
51
  /** Union of all out-messages the slider component can emit to its parent. */
52
52
  export const OutMessage = defineMessageUnion({
53
- ChangedValue: { value: S.Number },
53
+ ChangedValue: { value: Schema.Number },
54
54
  });
55
55
  /** Creates an initial slider model from a config. The value lives in the
56
56
  * parent Model; initialize it there and snap it with {@link snapAndClamp}. */
@@ -64,7 +64,7 @@ export const init = (config) => (__foldkitBrandViewResult(({
64
64
  // HELPERS
65
65
  const stepDecimals = (step) => {
66
66
  const text = step.toString();
67
- return __foldkitBrandViewResult((pipe(text, String_.indexOf('.'), Option.match({
67
+ return __foldkitBrandViewResult((pipe(text, String.indexOf('.'), Option.match({
68
68
  onNone: () => __foldkitBrandViewResult((0), "@foldkit/ui/slider/index.js#onNone"),
69
69
  onSome: dotIndex => __foldkitBrandViewResult((text.length - dotIndex - 1), "@foldkit/ui/slider/index.js#onSome"),
70
70
  }))), "@foldkit/ui/slider/index.js#stepDecimals");
@@ -93,8 +93,8 @@ export const fractionOfValue = (value, min, max) => {
93
93
  }
94
94
  };
95
95
  const PAGE_STEP_MULTIPLIER = 10;
96
- const nextValueForDirection = (value, min, max, step, direction) => __foldkitBrandViewResult((M.value(direction).pipe(M.withReturnType(), M.when('StepIncrement', () => __foldkitBrandViewResult((snapAndClamp(value + step, min, max, step)), "@foldkit/ui/slider/index.js#anonymous")), M.when('StepDecrement', () => __foldkitBrandViewResult((snapAndClamp(value - step, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~2")), M.when('PageIncrement', () => __foldkitBrandViewResult((snapAndClamp(value + step * PAGE_STEP_MULTIPLIER, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~3")), M.when('PageDecrement', () => __foldkitBrandViewResult((snapAndClamp(value - step * PAGE_STEP_MULTIPLIER, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~4")), M.when('Min', () => __foldkitBrandViewResult((min), "@foldkit/ui/slider/index.js#anonymous~5")), M.when('Max', () => __foldkitBrandViewResult((max), "@foldkit/ui/slider/index.js#anonymous~6")), M.exhaustive)), "@foldkit/ui/slider/index.js#nextValueForDirection");
97
- const withUpdateReturn = M.withReturnType();
96
+ const nextValueForDirection = (value, min, max, step, direction) => __foldkitBrandViewResult((Match.value(direction).pipe(Match.withReturnType(), Match.when('StepIncrement', () => __foldkitBrandViewResult((snapAndClamp(value + step, min, max, step)), "@foldkit/ui/slider/index.js#anonymous")), Match.when('StepDecrement', () => __foldkitBrandViewResult((snapAndClamp(value - step, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~2")), Match.when('PageIncrement', () => __foldkitBrandViewResult((snapAndClamp(value + step * PAGE_STEP_MULTIPLIER, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~3")), Match.when('PageDecrement', () => __foldkitBrandViewResult((snapAndClamp(value - step * PAGE_STEP_MULTIPLIER, min, max, step)), "@foldkit/ui/slider/index.js#anonymous~4")), Match.when('Min', () => __foldkitBrandViewResult((min), "@foldkit/ui/slider/index.js#anonymous~5")), Match.when('Max', () => __foldkitBrandViewResult((max), "@foldkit/ui/slider/index.js#anonymous~6")), Match.exhaustive)), "@foldkit/ui/slider/index.js#nextValueForDirection");
97
+ const withUpdateReturn = Match.withReturnType();
98
98
  const withChangedValue = (model, currentValue, nextValue) => {
99
99
  if (nextValue === currentValue) {
100
100
  return __foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#withChangedValue");
@@ -112,7 +112,7 @@ const withChangedValue = (model, currentValue, nextValue) => {
112
112
  * and value changes surface as `ChangedValue` rather than mutating this
113
113
  * Model. */
114
114
  export const update = (model, message) => __foldkitBrandViewResult((Message.match(message, {
115
- PressedThumb: ({ originValue }) => __foldkitBrandViewResult((M.value(model.dragState).pipe(withUpdateReturn, M.tag('Dragging', () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~7"))), M.orElse(() => (__foldkitBrandViewResult(({
115
+ PressedThumb: ({ originValue }) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~7"))), Match.orElse(() => (__foldkitBrandViewResult(({
116
116
  model: evo(model, {
117
117
  dragState: () => __foldkitBrandViewResult((DragState.Dragging({ originValue })), "@foldkit/ui/slider/index.js#dragState"),
118
118
  }),
@@ -123,25 +123,25 @@ export const update = (model, message) => __foldkitBrandViewResult((Message.matc
123
123
  // from the thumb's current position. Fine-grained sliders (e.g. step
124
124
  // 0.05) see a visible jump without this guard, because the cursor sits
125
125
  // off-center on a non-zero-width thumb.
126
- PressedPointer: ({ value, originValue }) => __foldkitBrandViewResult((M.value(model.dragState).pipe(withUpdateReturn, M.tag('Dragging', () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~9"))), M.orElse(() => {
126
+ PressedPointer: ({ value, originValue }) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~9"))), Match.orElse(() => {
127
127
  const snapped = snapAndClamp(value, model.min, model.max, model.step);
128
128
  return __foldkitBrandViewResult((withChangedValue(evo(model, {
129
129
  dragState: () => __foldkitBrandViewResult((DragState.Dragging({ originValue })), "@foldkit/ui/slider/index.js#dragState~2"),
130
130
  }), originValue, snapped)), "@foldkit/ui/slider/index.js#anonymous~10");
131
131
  }))), "@foldkit/ui/slider/index.js#PressedPointer"),
132
- MovedDragPointer: ({ value }) => __foldkitBrandViewResult((M.value(model.dragState).pipe(withUpdateReturn, M.tag('Dragging', () => (__foldkitBrandViewResult(({
132
+ MovedDragPointer: ({ value }) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({
133
133
  model,
134
134
  outMessage: OutMessage.ChangedValue({
135
135
  value: snapAndClamp(value, model.min, model.max, model.step),
136
136
  }),
137
- }), "@foldkit/ui/slider/index.js#anonymous~11"))), M.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~12"))))), "@foldkit/ui/slider/index.js#MovedDragPointer"),
138
- ReleasedDragPointer: () => __foldkitBrandViewResult((M.value(model.dragState).pipe(withUpdateReturn, M.tag('Dragging', () => (__foldkitBrandViewResult(({
137
+ }), "@foldkit/ui/slider/index.js#anonymous~11"))), Match.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~12"))))), "@foldkit/ui/slider/index.js#MovedDragPointer"),
138
+ ReleasedDragPointer: () => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', () => (__foldkitBrandViewResult(({
139
139
  model: evo(model, { dragState: () => __foldkitBrandViewResult((DragState.Idle()), "@foldkit/ui/slider/index.js#dragState~3") }),
140
- }), "@foldkit/ui/slider/index.js#anonymous~13"))), M.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~14"))))), "@foldkit/ui/slider/index.js#ReleasedDragPointer"),
141
- CancelledDrag: () => __foldkitBrandViewResult((M.value(model.dragState).pipe(withUpdateReturn, M.tag('Dragging', ({ originValue }) => (__foldkitBrandViewResult(({
140
+ }), "@foldkit/ui/slider/index.js#anonymous~13"))), Match.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~14"))))), "@foldkit/ui/slider/index.js#ReleasedDragPointer"),
141
+ CancelledDrag: () => __foldkitBrandViewResult((Match.value(model.dragState).pipe(withUpdateReturn, Match.tag('Dragging', ({ originValue }) => (__foldkitBrandViewResult(({
142
142
  model: evo(model, { dragState: () => __foldkitBrandViewResult((DragState.Idle()), "@foldkit/ui/slider/index.js#dragState~4") }),
143
143
  outMessage: OutMessage.ChangedValue({ value: originValue }),
144
- }), "@foldkit/ui/slider/index.js#anonymous~15"))), M.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~16"))))), "@foldkit/ui/slider/index.js#CancelledDrag"),
144
+ }), "@foldkit/ui/slider/index.js#anonymous~15"))), Match.orElse(() => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/slider/index.js#anonymous~16"))))), "@foldkit/ui/slider/index.js#CancelledDrag"),
145
145
  PressedKeyboardNavigation: ({ direction, value }) => __foldkitBrandViewResult((withChangedValue(model, value, nextValueForDirection(value, model.min, model.max, model.step, direction))), "@foldkit/ui/slider/index.js#PressedKeyboardNavigation"),
146
146
  })), "@foldkit/ui/slider/index.js#update");
147
147
  /** Reflects an externally-driven range onto the slider. Use this when min/max
@@ -153,8 +153,8 @@ export const reflectRange = Function.dual(2, (model, range) => __foldkitBrandVie
153
153
  max: () => __foldkitBrandViewResult((range.max), "@foldkit/ui/slider/index.js#max"),
154
154
  })), "@foldkit/ui/slider/index.js#anonymous~17"));
155
155
  // SUBSCRIPTION
156
- const DragActivity = S.Literals(['Idle', 'Active']);
157
- const dragActivityFromModel = (model) => __foldkitBrandViewResult((M.value(model.dragState).pipe(M.withReturnType(), M.tag('Dragging', () => __foldkitBrandViewResult(('Active'), "@foldkit/ui/slider/index.js#anonymous~18")), M.orElse(() => __foldkitBrandViewResult(('Idle'), "@foldkit/ui/slider/index.js#anonymous~19")))), "@foldkit/ui/slider/index.js#dragActivityFromModel");
156
+ const DragActivity = Schema.Literals(['Idle', 'Active']);
157
+ const dragActivityFromModel = (model) => __foldkitBrandViewResult((Match.value(model.dragState).pipe(Match.withReturnType(), Match.tag('Dragging', () => __foldkitBrandViewResult(('Active'), "@foldkit/ui/slider/index.js#anonymous~18")), Match.orElse(() => __foldkitBrandViewResult(('Idle'), "@foldkit/ui/slider/index.js#anonymous~19")))), "@foldkit/ui/slider/index.js#dragActivityFromModel");
158
158
  const trackElement = (id, root) => __foldkitBrandViewResult((Option.fromNullishOr(root.querySelector(attributeSelector('data-slider-track-id', id)))), "@foldkit/ui/slider/index.js#trackElement");
159
159
  const valueFromClientX = (clientX, trackElement_, min, max) => {
160
160
  const rect = trackElement_.getBoundingClientRect();
@@ -173,9 +173,9 @@ const valueFromClientX = (clientX, trackElement_, min, max) => {
173
173
  export const subscriptionsForRoot = (getTrackRoot) => __foldkitBrandViewResult((Subscription.make()(entry => (__foldkitBrandViewResult(({
174
174
  dragPointer: entry({
175
175
  dragActivity: DragActivity,
176
- id: S.String,
177
- min: S.Number,
178
- max: S.Number,
176
+ id: Schema.String,
177
+ min: Schema.Number,
178
+ max: Schema.Number,
179
179
  }, {
180
180
  modelToDependencies: model => (__foldkitBrandViewResult(({
181
181
  dragActivity: dragActivityFromModel(model),
@@ -216,7 +216,7 @@ export const subscriptions = subscriptionsForRoot(() => __foldkitBrandViewResult
216
216
  // VIEW
217
217
  const LEFT_MOUSE_BUTTON = 0;
218
218
  const labelId = (id) => __foldkitBrandViewResult((`${id}-label`), "@foldkit/ui/slider/index.js#labelId");
219
- const keyToDirection = (key) => __foldkitBrandViewResult((M.value(key).pipe(M.withReturnType(), M.whenOr('ArrowRight', 'ArrowUp', () => __foldkitBrandViewResult(('StepIncrement'), "@foldkit/ui/slider/index.js#anonymous~36")), M.whenOr('ArrowLeft', 'ArrowDown', () => __foldkitBrandViewResult(('StepDecrement'), "@foldkit/ui/slider/index.js#anonymous~37")), M.when('PageUp', () => __foldkitBrandViewResult(('PageIncrement'), "@foldkit/ui/slider/index.js#anonymous~38")), M.when('PageDown', () => __foldkitBrandViewResult(('PageDecrement'), "@foldkit/ui/slider/index.js#anonymous~39")), M.when('Home', () => __foldkitBrandViewResult(('Min'), "@foldkit/ui/slider/index.js#anonymous~40")), M.when('End', () => __foldkitBrandViewResult(('Max'), "@foldkit/ui/slider/index.js#anonymous~41")), M.option)), "@foldkit/ui/slider/index.js#keyToDirection");
219
+ const keyToDirection = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.withReturnType(), Match.whenOr('ArrowRight', 'ArrowUp', () => __foldkitBrandViewResult(('StepIncrement'), "@foldkit/ui/slider/index.js#anonymous~36")), Match.whenOr('ArrowLeft', 'ArrowDown', () => __foldkitBrandViewResult(('StepDecrement'), "@foldkit/ui/slider/index.js#anonymous~37")), Match.when('PageUp', () => __foldkitBrandViewResult(('PageIncrement'), "@foldkit/ui/slider/index.js#anonymous~38")), Match.when('PageDown', () => __foldkitBrandViewResult(('PageDecrement'), "@foldkit/ui/slider/index.js#anonymous~39")), Match.when('Home', () => __foldkitBrandViewResult(('Min'), "@foldkit/ui/slider/index.js#anonymous~40")), Match.when('End', () => __foldkitBrandViewResult(('Max'), "@foldkit/ui/slider/index.js#anonymous~41")), Match.option)), "@foldkit/ui/slider/index.js#keyToDirection");
220
220
  const percentString = (fraction) => __foldkitBrandViewResult((`${Math.round(fraction * 10000) / 100}%`), "@foldkit/ui/slider/index.js#percentString");
221
221
  /** Renders an accessible slider by building ARIA attribute groups and
222
222
  * delegating layout to the consumer's `toView` callback. Follows the
@@ -1,5 +1,5 @@
1
1
  import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
- import { Match as M, Option } from 'effect';
2
+ import { Match, Option } from 'effect';
3
3
  /** Returns the label element id, derived from the switch's base id. */
4
4
  export const labelId = (id) => __foldkitBrandViewResult((`${id}-label`), "@foldkit/ui/switch/index.js#labelId");
5
5
  /** Returns the description element id, derived from the switch's base id. */
@@ -28,7 +28,7 @@ export const descriptionId = (id) => __foldkitBrandViewResult((`${id}-descriptio
28
28
  export const view = (config, h) => {
29
29
  const { id, isChecked, onToggle, toView, isDisabled = false, isReadOnly = false, name, value: formValue = 'on', } = config;
30
30
  const nextChecked = !isChecked;
31
- const handleKeyUp = (key) => __foldkitBrandViewResult((M.value(key).pipe(M.when(' ', () => __foldkitBrandViewResult((Option.some(onToggle(nextChecked))), "@foldkit/ui/switch/index.js#anonymous")), M.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/switch/index.js#anonymous~2")))), "@foldkit/ui/switch/index.js#handleKeyUp");
31
+ const handleKeyUp = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.when(' ', () => __foldkitBrandViewResult((Option.some(onToggle(nextChecked))), "@foldkit/ui/switch/index.js#anonymous")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/switch/index.js#anonymous~2")))), "@foldkit/ui/switch/index.js#handleKeyUp");
32
32
  const checkedAttributes = isChecked ? [h.DataAttribute('checked', '')] : [];
33
33
  const disabledAttributes = isDisabled
34
34
  ? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
@@ -1,34 +1,34 @@
1
- import { Effect, Option, Schema as S } from 'effect';
1
+ import { Effect, Option, Schema } from 'effect';
2
2
  import { type Update } from 'foldkit';
3
3
  import * as Command from 'foldkit/command';
4
4
  import { type ChildAttribute, type Html } from 'foldkit/html';
5
5
  import { type View as SubmodelView } from 'foldkit/submodel';
6
6
  export { wrapIndex, findFirstEnabledIndex, keyToIndex } from '../keyboard.js';
7
7
  /** Controls the tab list layout direction and which arrow keys navigate between tabs. */
8
- export declare const Orientation: S.Literals<readonly ["Horizontal", "Vertical"]>;
8
+ export declare const Orientation: Schema.Literals<readonly ["Horizontal", "Vertical"]>;
9
9
  export type Orientation = typeof Orientation.Type;
10
10
  /** Controls whether tabs activate on focus (`Automatic`) or require an explicit selection (`Manual`). */
11
- export declare const ActivationMode: S.Literals<readonly ["Automatic", "Manual"]>;
11
+ export declare const ActivationMode: Schema.Literals<readonly ["Automatic", "Manual"]>;
12
12
  export type ActivationMode = typeof ActivationMode.Type;
13
13
  /** Schema for the tabs component's private interaction state. The active
14
14
  * tab is owned by the parent and passed in via `ViewInputs.selectedValue`,
15
15
  * so it is not stored here. `maybeFocusedIndex` is the roving-tabindex
16
16
  * cursor: `None` means keyboard focus follows the selected tab, and `Manual`
17
17
  * activation stores `Some(index)` while focus diverges from the selection. */
18
- export declare const Model: S.Struct<{
19
- readonly id: S.String;
20
- readonly maybeFocusedIndex: S.Option<S.Number>;
21
- readonly activationMode: S.Literals<readonly ["Automatic", "Manual"]>;
18
+ export declare const Model: Schema.Struct<{
19
+ readonly id: Schema.String;
20
+ readonly maybeFocusedIndex: Schema.Option<Schema.Number>;
21
+ readonly activationMode: Schema.Literals<readonly ["Automatic", "Manual"]>;
22
22
  }>;
23
23
  export type Model = typeof Model.Type;
24
24
  /** Union of all messages the tabs component can produce. */
25
25
  export declare const Message: import("foldkit/message").MessageUnion<{
26
26
  readonly SelectedTab: {
27
- index: S.Number;
28
- value: S.String;
27
+ index: Schema.Number;
28
+ value: Schema.String;
29
29
  };
30
30
  readonly FocusedTab: {
31
- index: S.Number;
31
+ index: Schema.Number;
32
32
  };
33
33
  readonly CompletedFocusTab: {};
34
34
  }>;
@@ -44,8 +44,8 @@ export type Selected<Value extends string = string> = Readonly<{
44
44
  * `Update.foldChild` config handles them through `foldOutMessage`. */
45
45
  export declare const OutMessage: import("foldkit/message").MessageUnion<{
46
46
  readonly Selected: {
47
- value: S.String;
48
- index: S.Number;
47
+ value: Schema.String;
48
+ index: Schema.Number;
49
49
  };
50
50
  }>;
51
51
  /** Generic over `Value extends string` so consumers using
@@ -63,8 +63,8 @@ export type InitConfig = Readonly<{
63
63
  export declare const init: (config: InitConfig) => Model;
64
64
  /** Moves focus to the tab at the given index. */
65
65
  export declare const FocusTab: Command.CommandDefinitionWithArgs<"FocusTab", {
66
- id: S.String;
67
- index: S.Number;
66
+ id: Schema.String;
67
+ index: Schema.Number;
68
68
  }, Effect.Effect<{
69
69
  readonly _tag: "CompletedFocusTab";
70
70
  }, never, never>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tabs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tabs/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
- import { Array, Effect, Match as M, Option, Schema as S, String, pipe, } from 'effect';
2
+ import { Array, Effect, Match, Option, Schema, String, pipe } from 'effect';
3
3
  import * as Command from 'foldkit/command';
4
4
  import * as Dom from 'foldkit/dom';
5
5
  import { childAttributes } from 'foldkit/html';
@@ -11,35 +11,35 @@ import { keyToIndex } from '../keyboard.js';
11
11
  export { wrapIndex, findFirstEnabledIndex, keyToIndex } from '../keyboard.js';
12
12
  // MODEL
13
13
  /** Controls the tab list layout direction and which arrow keys navigate between tabs. */
14
- export const Orientation = S.Literals(['Horizontal', 'Vertical']);
14
+ export const Orientation = Schema.Literals(['Horizontal', 'Vertical']);
15
15
  /** Controls whether tabs activate on focus (`Automatic`) or require an explicit selection (`Manual`). */
16
- export const ActivationMode = S.Literals(['Automatic', 'Manual']);
16
+ export const ActivationMode = Schema.Literals(['Automatic', 'Manual']);
17
17
  /** Schema for the tabs component's private interaction state. The active
18
18
  * tab is owned by the parent and passed in via `ViewInputs.selectedValue`,
19
19
  * so it is not stored here. `maybeFocusedIndex` is the roving-tabindex
20
20
  * cursor: `None` means keyboard focus follows the selected tab, and `Manual`
21
21
  * activation stores `Some(index)` while focus diverges from the selection. */
22
- export const Model = S.Struct({
23
- id: S.String,
24
- maybeFocusedIndex: S.Option(S.Number),
22
+ export const Model = Schema.Struct({
23
+ id: Schema.String,
24
+ maybeFocusedIndex: Schema.Option(Schema.Number),
25
25
  activationMode: ActivationMode,
26
26
  });
27
27
  // MESSAGE
28
28
  /** Union of all messages the tabs component can produce. */
29
29
  export const Message = defineMessageUnion({
30
30
  SelectedTab: {
31
- index: S.Number,
32
- value: S.String,
31
+ index: Schema.Number,
32
+ value: Schema.String,
33
33
  },
34
- FocusedTab: { index: S.Number },
34
+ FocusedTab: { index: Schema.Number },
35
35
  CompletedFocusTab: {},
36
36
  });
37
37
  /** Union of OutMessages the tabs component can produce. The parent's
38
38
  * `Update.foldChild` config handles them through `foldOutMessage`. */
39
39
  export const OutMessage = defineMessageUnion({
40
40
  Selected: {
41
- value: S.String,
42
- index: S.Number,
41
+ value: Schema.String,
42
+ index: Schema.Number,
43
43
  },
44
44
  });
45
45
  /** Creates an initial tabs model from a config. Focus follows the selected
@@ -55,7 +55,7 @@ const tabId = (id, index) => __foldkitBrandViewResult((`${id}-tab-${index}`), "@
55
55
  const tabPanelId = (id, index) => __foldkitBrandViewResult((`${id}-panel-${index}`), "@foldkit/ui/tabs/index.js#tabPanelId");
56
56
  /** Moves focus to the tab at the given index. */
57
57
  export const FocusTab = Command.define('FocusTab', {
58
- args: { id: S.String, index: S.Number },
58
+ args: { id: Schema.String, index: Schema.Number },
59
59
  messages: [Message.CompletedFocusTab],
60
60
  execute: ({ id, index }) => __foldkitBrandViewResult((Dom.focus(idSelector(tabId(id, index))).pipe(Effect.ignore, Effect.as(Message.CompletedFocusTab()))), "@foldkit/ui/tabs/index.js#execute"),
61
61
  });
@@ -82,18 +82,18 @@ const internalView = defineView((model, viewInputs, h) => {
82
82
  const focusedIndex = pipe(maybeFocusedIndex, Option.filter(index => __foldkitBrandViewResult((index < tabs.length), "@foldkit/ui/tabs/index.js#anonymous~4")), Option.getOrElse(() => __foldkitBrandViewResult((activeIndex), "@foldkit/ui/tabs/index.js#anonymous~5")));
83
83
  const isDisabled = (index) => __foldkitBrandViewResult((!!isTabDisabled &&
84
84
  pipe(tabs, Array.get(index), Option.exists(tab => __foldkitBrandViewResult((isTabDisabled(tab, index)), "@foldkit/ui/tabs/index.js#anonymous~6")))), "@foldkit/ui/tabs/index.js#isDisabled");
85
- const { nextKey, previousKey } = M.value(orientation).pipe(M.when('Horizontal', () => (__foldkitBrandViewResult(({
85
+ const { nextKey, previousKey } = Match.value(orientation).pipe(Match.when('Horizontal', () => (__foldkitBrandViewResult(({
86
86
  nextKey: 'ArrowRight',
87
87
  previousKey: 'ArrowLeft',
88
- }), "@foldkit/ui/tabs/index.js#anonymous~7"))), M.when('Vertical', () => (__foldkitBrandViewResult(({
88
+ }), "@foldkit/ui/tabs/index.js#anonymous~7"))), Match.when('Vertical', () => (__foldkitBrandViewResult(({
89
89
  nextKey: 'ArrowDown',
90
90
  previousKey: 'ArrowUp',
91
- }), "@foldkit/ui/tabs/index.js#anonymous~8"))), M.exhaustive);
91
+ }), "@foldkit/ui/tabs/index.js#anonymous~8"))), Match.exhaustive);
92
92
  const resolveKeyIndex = keyToIndex(nextKey, previousKey, tabs.length, focusedIndex, isDisabled);
93
93
  const tabSelectedAt = (index) => __foldkitBrandViewResult((pipe(tabs, Array.get(index), Option.map(value => __foldkitBrandViewResult((Message.SelectedTab({ index, value })), "@foldkit/ui/tabs/index.js#anonymous~9")))), "@foldkit/ui/tabs/index.js#tabSelectedAt");
94
- const handleAutomaticKeyDown = (key) => __foldkitBrandViewResult((M.value(key).pipe(M.whenOr(nextKey, previousKey, 'Home', 'End', 'PageUp', 'PageDown', () => __foldkitBrandViewResult((tabSelectedAt(resolveKeyIndex(key))), "@foldkit/ui/tabs/index.js#anonymous~10")), M.whenOr('Enter', ' ', () => __foldkitBrandViewResult((tabSelectedAt(focusedIndex)), "@foldkit/ui/tabs/index.js#anonymous~11")), M.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/tabs/index.js#anonymous~12")))), "@foldkit/ui/tabs/index.js#handleAutomaticKeyDown");
95
- const handleManualKeyDown = (key) => __foldkitBrandViewResult((M.value(key).pipe(M.whenOr(nextKey, previousKey, 'Home', 'End', 'PageUp', 'PageDown', () => __foldkitBrandViewResult((Option.some(Message.FocusedTab({ index: resolveKeyIndex(key) }))), "@foldkit/ui/tabs/index.js#anonymous~13")), M.whenOr('Enter', ' ', () => __foldkitBrandViewResult((tabSelectedAt(focusedIndex)), "@foldkit/ui/tabs/index.js#anonymous~14")), M.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/tabs/index.js#anonymous~15")))), "@foldkit/ui/tabs/index.js#handleManualKeyDown");
96
- const handleKeyDown = (key) => __foldkitBrandViewResult((M.value(activationMode).pipe(M.when('Automatic', () => __foldkitBrandViewResult((handleAutomaticKeyDown(key)), "@foldkit/ui/tabs/index.js#anonymous~16")), M.when('Manual', () => __foldkitBrandViewResult((handleManualKeyDown(key)), "@foldkit/ui/tabs/index.js#anonymous~17")), M.exhaustive)), "@foldkit/ui/tabs/index.js#handleKeyDown");
94
+ const handleAutomaticKeyDown = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.whenOr(nextKey, previousKey, 'Home', 'End', 'PageUp', 'PageDown', () => __foldkitBrandViewResult((tabSelectedAt(resolveKeyIndex(key))), "@foldkit/ui/tabs/index.js#anonymous~10")), Match.whenOr('Enter', ' ', () => __foldkitBrandViewResult((tabSelectedAt(focusedIndex)), "@foldkit/ui/tabs/index.js#anonymous~11")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/tabs/index.js#anonymous~12")))), "@foldkit/ui/tabs/index.js#handleAutomaticKeyDown");
95
+ const handleManualKeyDown = (key) => __foldkitBrandViewResult((Match.value(key).pipe(Match.whenOr(nextKey, previousKey, 'Home', 'End', 'PageUp', 'PageDown', () => __foldkitBrandViewResult((Option.some(Message.FocusedTab({ index: resolveKeyIndex(key) }))), "@foldkit/ui/tabs/index.js#anonymous~13")), Match.whenOr('Enter', ' ', () => __foldkitBrandViewResult((tabSelectedAt(focusedIndex)), "@foldkit/ui/tabs/index.js#anonymous~14")), Match.orElse(() => __foldkitBrandViewResult((Option.none()), "@foldkit/ui/tabs/index.js#anonymous~15")))), "@foldkit/ui/tabs/index.js#handleManualKeyDown");
96
+ const handleKeyDown = (key) => __foldkitBrandViewResult((Match.value(activationMode).pipe(Match.when('Automatic', () => __foldkitBrandViewResult((handleAutomaticKeyDown(key)), "@foldkit/ui/tabs/index.js#anonymous~16")), Match.when('Manual', () => __foldkitBrandViewResult((handleManualKeyDown(key)), "@foldkit/ui/tabs/index.js#anonymous~17")), Match.exhaustive)), "@foldkit/ui/tabs/index.js#handleKeyDown");
97
97
  const tabInfos = Array.map(tabs, (value, index) => {
98
98
  const isActive = index === activeIndex;
99
99
  const isFocused = index === focusedIndex;
@@ -1,18 +1,18 @@
1
- import { Option, Schema as S } from 'effect';
1
+ import { Option, Schema } from 'effect';
2
2
  import type { Html, HtmlBuilder } from 'foldkit/html';
3
3
  import * as Update from 'foldkit/update';
4
- export declare const Model: S.Struct<{
5
- readonly isEnabled: S.Boolean;
6
- readonly dialog: S.Struct<{
7
- readonly id: S.String;
8
- readonly isOpen: S.Boolean;
9
- readonly isAnimated: S.Boolean;
10
- readonly animation: S.Struct<{
11
- readonly id: S.String;
12
- readonly isShowing: S.Boolean;
13
- readonly transitionState: S.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
4
+ export declare const Model: Schema.Struct<{
5
+ readonly isEnabled: Schema.Boolean;
6
+ readonly dialog: Schema.Struct<{
7
+ readonly id: Schema.String;
8
+ readonly isOpen: Schema.Boolean;
9
+ readonly isAnimated: Schema.Boolean;
10
+ readonly animation: Schema.Struct<{
11
+ readonly id: Schema.String;
12
+ readonly isShowing: Schema.Boolean;
13
+ readonly transitionState: Schema.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
14
14
  }>;
15
- readonly maybeFocusSelector: S.Option<S.String>;
15
+ readonly maybeFocusSelector: Schema.Option<Schema.String>;
16
16
  }>;
17
17
  }>;
18
18
  export type Model = typeof Model.Type;
@@ -1 +1 @@
1
- {"version":3,"file":"disabledButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/disabledButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAMxC,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;QAGE,OAAO;;;;;;;;;;;;;;;;;;EAC3B,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAoBD,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjD,CAAA;AAeJ,qCAAqC;AACrC,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAQ5D,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,cAAc,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAyBtE,CAAA"}
1
+ {"version":3,"file":"disabledButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/disabledButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAMxC,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;QAGE,OAAO;;;;;;;;;;;;;;;;;;EAC3B,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAmBD,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjD,CAAA;AAeJ,qCAAqC;AACrC,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAQ5D,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,cAAc,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAyBtE,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
- import { Match as M, Option, Schema as S } from 'effect';
2
+ import { Option, Schema } from 'effect';
3
3
  import { defineMessageUnion } from 'foldkit/message';
4
4
  import { evo } from 'foldkit/struct';
5
5
  import * as Update from 'foldkit/update';
6
6
  import * as Dialog from '../../dialog/index.js';
7
7
  // MODEL
8
- export const Model = S.Struct({
9
- isEnabled: S.Boolean,
8
+ export const Model = Schema.Struct({
9
+ isEnabled: Schema.Boolean,
10
10
  dialog: Dialog.Model,
11
11
  });
12
12
  // MESSAGE
@@ -21,10 +21,10 @@ export const initialModel = {
21
21
  dialog: Dialog.init({ id: 'test-dialog', isOpen: true }),
22
22
  };
23
23
  // UPDATE
24
- const foldDialogOutMessage = M.type().pipe(M.withReturnType(), M.tagsExhaustive({
24
+ const foldDialogOutMessage = Dialog.OutMessage.match({
25
25
  Opened: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/test/apps/disabledButton.js#anonymous"))), "@foldkit/ui/test/apps/disabledButton.js#Opened"),
26
26
  Closed: () => __foldkitBrandViewResult((model => (__foldkitBrandViewResult(({ model }), "@foldkit/ui/test/apps/disabledButton.js#anonymous~2"))), "@foldkit/ui/test/apps/disabledButton.js#Closed"),
27
- }));
27
+ });
28
28
  const foldDialog = Update.foldChild({
29
29
  update: Dialog.update,
30
30
  read: (model) => __foldkitBrandViewResult((Option.some(model.dialog)), "@foldkit/ui/test/apps/disabledButton.js#read"),
@@ -1,7 +1,7 @@
1
- import type { Attribute, Html, HtmlBuilder } from 'foldkit/html';
1
+ import type { Attribute, Html, HtmlBuilder, TextareaAttribute } from 'foldkit/html';
2
2
  /** Attribute groups the textarea component provides to the consumer's `toView` callback. */
3
3
  export type TextareaAttributes<Message> = Readonly<{
4
- textarea: ReadonlyArray<Attribute<Message>>;
4
+ textarea: ReadonlyArray<TextareaAttribute<Message>>;
5
5
  label: ReadonlyArray<Attribute<Message>>;
6
6
  description: ReadonlyArray<Attribute<Message>>;
7
7
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/textarea/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAIhE,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;CAC/C,CAAC,CAAA;AAEF,0DAA0D;AAC1D,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACzD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,MAA6B,CAAA;AAExE,kIAAkI;AAClI,eAAO,MAAM,IAAI,GAAI,OAAO,UAClB,UAAU,CAAC,OAAO,CAAC,KACxB,WAAW,CAAC,OAAO,CAAC,KACtB,IAuEF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/textarea/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,WAAW,EACX,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAIrB,4FAA4F;AAC5F,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI,QAAQ,CAAC;IACjD,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACxC,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,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACzD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,aAAa,OAAQ,MAAM,KAAG,MAA6B,CAAA;AAExE,kIAAkI;AAClI,eAAO,MAAM,IAAI,GAAI,OAAO,UAClB,UAAU,CAAC,OAAO,CAAC,KACxB,WAAW,CAAC,OAAO,CAAC,KACtB,IAuEF,CAAA"}