@agnos-ui/core 0.10.0 → 0.11.0-next.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 (97) hide show
  1. package/{accordion-D9AonDII.cjs → accordion-BNq8mApi.cjs} +16 -21
  2. package/{accordion-qJyqAAwZ.js → accordion-CYAFmYRn.js} +19 -24
  3. package/{alert-anMaigvi.js → alert-Cb9FhbFQ.js} +1 -1
  4. package/{collapse-CPXAHvle.js → collapse-Cg9s33tY.js} +2 -2
  5. package/{collapse-DVb_2jIl.cjs → collapse-yKsOxJlH.cjs} +1 -1
  6. package/{common-CCxNtFNM.js → common-DFyZvkII.js} +1 -1
  7. package/components/accordion/accordion.d.ts +18 -8
  8. package/components/accordion/index.cjs +1 -1
  9. package/components/accordion/index.js +3 -3
  10. package/components/alert/common.d.ts +2 -2
  11. package/components/alert/index.js +1 -1
  12. package/components/carousel/index.cjs +1 -1
  13. package/components/carousel/index.js +3 -3
  14. package/components/collapse/collapse.d.ts +3 -3
  15. package/components/collapse/index.cjs +1 -1
  16. package/components/collapse/index.js +1 -1
  17. package/components/drawer/drawer.d.ts +2 -2
  18. package/components/drawer/index.cjs +1 -1
  19. package/components/drawer/index.js +1 -1
  20. package/components/modal/index.cjs +1 -1
  21. package/components/modal/index.js +4 -4
  22. package/components/pagination/index.cjs +1 -1
  23. package/components/pagination/index.js +1 -1
  24. package/components/progressbar/index.cjs +1 -1
  25. package/components/progressbar/index.js +1 -1
  26. package/components/rating/index.cjs +1 -1
  27. package/components/rating/index.js +1 -1
  28. package/components/slider/index.cjs +1 -1
  29. package/components/slider/index.js +1 -1
  30. package/components/toast/index.cjs +1 -1
  31. package/components/toast/index.js +1 -1
  32. package/components/tree/index.cjs +1 -1
  33. package/components/tree/index.js +1 -1
  34. package/config.d.ts +0 -5
  35. package/{dom-R8VxJgdK.cjs → dom-BX4ImCTd.cjs} +7 -4
  36. package/{dom-iY0R3D7u.js → dom-Bb5ZCr_a.js} +30 -27
  37. package/{drawer-CVoNTDrc.js → drawer-CYtNS8c1.js} +8 -5
  38. package/{drawer-77u4kG4M.cjs → drawer-DoaLRui_.cjs} +5 -2
  39. package/index.cjs +11 -14
  40. package/index.d.ts +0 -1
  41. package/index.js +55 -58
  42. package/{modal-ywc6mk_R.cjs → modal-CMeWLNO-.cjs} +1 -1
  43. package/{modal-CJVVF65o.js → modal-EHJERSIp.js} +6 -6
  44. package/package.json +1 -1
  45. package/{pagination-D19l6t0x.js → pagination-BDKo2d3i.js} +2 -2
  46. package/{pagination-CRMoSXs3.cjs → pagination-Ddk3z56A.cjs} +1 -1
  47. package/{progressbar-r0zha1kn.js → progressbar-BFdAfV5g.js} +2 -2
  48. package/{progressbar-DeqZeuKP.cjs → progressbar-ysfDQD0Q.cjs} +1 -1
  49. package/{promise-Y53vc4Ia.js → promise-D-RZVPuv.js} +1 -1
  50. package/{rating-D5Usb5P6.js → rating-D04FQgtR.js} +2 -2
  51. package/{rating-DOPnxyms.cjs → rating-DO_fKNp3.cjs} +1 -1
  52. package/services/floatingUI.cjs +1 -1
  53. package/services/floatingUI.js +2 -2
  54. package/services/focusElement.cjs +1 -1
  55. package/services/focusElement.js +1 -1
  56. package/services/focustrack.cjs +1 -1
  57. package/services/focustrack.js +1 -1
  58. package/services/matchMedia.cjs +1 -1
  59. package/services/matchMedia.js +1 -1
  60. package/services/navManager.cjs +5 -5
  61. package/services/navManager.js +2 -2
  62. package/services/pointerdownPosition.cjs +1 -1
  63. package/services/pointerdownPosition.js +1 -1
  64. package/services/portal.cjs +1 -1
  65. package/services/portal.js +1 -1
  66. package/services/resizeObserver.cjs +1 -1
  67. package/services/resizeObserver.js +1 -1
  68. package/services/siblingsInert.cjs +1 -1
  69. package/services/siblingsInert.js +1 -1
  70. package/services/transitions/baseTransitions.cjs +1 -1
  71. package/services/transitions/baseTransitions.js +3 -3
  72. package/services/transitions/collapse.cjs +1 -1
  73. package/services/transitions/collapse.js +1 -1
  74. package/services/transitions/cssTransitions.cjs +1 -1
  75. package/services/transitions/cssTransitions.js +2 -2
  76. package/services/transitions/simpleClassTransition.cjs +1 -1
  77. package/services/transitions/simpleClassTransition.js +1 -1
  78. package/{slider--fcvBfF0.js → slider-BPQIKRKL.js} +3 -3
  79. package/{slider-CJIW2sDq.cjs → slider-BRktp0--.cjs} +1 -1
  80. package/textDirection-cNgt24LJ.js +4 -0
  81. package/textDirection-zqcZ5-eK.cjs +3 -0
  82. package/{toaster-BjBdgZGB.cjs → toaster-Kq-cZoiD.cjs} +1 -1
  83. package/{toaster-D1b7QvRg.js → toaster-y_hXuh4o.js} +3 -3
  84. package/{tree-CUtbJPZT.js → tree-AM_J23Hz.js} +2 -2
  85. package/{tree-Pj-WcKId.cjs → tree-BAE89Xjn.cjs} +1 -1
  86. package/utils/directive.cjs +1 -1
  87. package/utils/directive.js +19 -19
  88. package/utils/stores.cjs +5 -2
  89. package/utils/stores.js +6 -3
  90. package/utils/writables.js +11 -11
  91. package/{writables-Is1bF1Vt.js → writables-DYGjj5T3.js} +10 -10
  92. package/components/select/index.cjs +0 -5
  93. package/components/select/index.d.ts +0 -1
  94. package/components/select/index.js +0 -5
  95. package/components/select/select.d.ts +0 -311
  96. package/select-BLA3Onle.js +0 -377
  97. package/select-Dx3GWZPt.cjs +0 -376
@@ -1,376 +0,0 @@
1
- "use strict";
2
- const tansu = require("@amadeus-it-group/tansu");
3
- const dom = require("@floating-ui/dom");
4
- const services_floatingUI = require("./services/floatingUI.cjs");
5
- const services_focustrack = require("./services/focustrack.cjs");
6
- const services_navManager = require("./services/navManager.cjs");
7
- const utils_directive = require("./dom-R8VxJgdK.cjs");
8
- const utils_func = require("./utils/func.cjs");
9
- const utils_stores = require("./utils/stores.cjs");
10
- const utils_widget = require("./utils/widget.cjs");
11
- const defaultConfig = {
12
- id: void 0,
13
- ariaLabel: "Select",
14
- open: false,
15
- disabled: false,
16
- items: [],
17
- filterText: "",
18
- loading: false,
19
- selected: [],
20
- navSelector: (node) => node.querySelectorAll(".au-select-badge,input"),
21
- itemIdFn: (item) => "" + item,
22
- onOpenChange: utils_func.noop,
23
- onFilterTextChange: utils_func.noop,
24
- onSelectedChange: utils_func.noop,
25
- allowedPlacements: ["bottom-start", "top-start", "bottom-end", "top-end"],
26
- className: "",
27
- menuClassName: "",
28
- menuItemClassName: "",
29
- badgeClassName: ""
30
- };
31
- function getSelectDefaultConfig() {
32
- return { ...defaultConfig };
33
- }
34
- const createSelect = utils_widget.createWidgetFactory("select", (config) => {
35
- const [
36
- {
37
- id$: _dirtyId$,
38
- open$: _dirtyOpen$,
39
- filterText$: _dirtyFilterText$,
40
- items$,
41
- itemIdFn$,
42
- onOpenChange$,
43
- onFilterTextChange$,
44
- onSelectedChange$,
45
- allowedPlacements$,
46
- navSelector$,
47
- className$,
48
- badgeClassName$,
49
- ariaLabel$,
50
- menuClassName$,
51
- ...stateProps
52
- },
53
- patch
54
- ] = utils_stores.writablesForProps(defaultConfig, config);
55
- const { selected$ } = stateProps;
56
- const id$ = tansu.computed(() => _dirtyId$() ?? utils_directive.generateId());
57
- const filterText$ = utils_stores.bindableProp(_dirtyFilterText$, onFilterTextChange$);
58
- const { hasFocus$, directive: hasFocusDirective } = services_focustrack.createHasFocus();
59
- const open$ = utils_stores.bindableDerived(onOpenChange$, [_dirtyOpen$, hasFocus$], ([_dirtyOpen, hasFocus]) => _dirtyOpen && hasFocus);
60
- const selectedContextsMap$ = tansu.computed(() => {
61
- const selectedItemsContext = /* @__PURE__ */ new Map();
62
- const itemIdFn = itemIdFn$();
63
- for (const item of selected$()) {
64
- const id = itemIdFn(item);
65
- selectedItemsContext.set(id, {
66
- item,
67
- id: itemIdFn(item),
68
- selected: true
69
- });
70
- }
71
- return selectedItemsContext;
72
- });
73
- const selectedContexts$ = tansu.computed(() => [...selectedContextsMap$().values()]);
74
- const highlightedIndex$ = (function() {
75
- const store = tansu.writable(0);
76
- return tansu.asWritable(store, (index) => {
77
- const { length } = visibleItems$();
78
- if (index != void 0) {
79
- if (!length) {
80
- index = void 0;
81
- } else if (index < 0) {
82
- index = length - 1;
83
- } else if (index >= length) {
84
- index = 0;
85
- }
86
- }
87
- store.set(index);
88
- });
89
- })();
90
- const itemContexts$ = tansu.computed(() => {
91
- const itemContexts = /* @__PURE__ */ new Map();
92
- if (open$()) {
93
- const selectedContextsMap = selectedContextsMap$();
94
- const itemIdFn = itemIdFn$();
95
- for (const item of items$()) {
96
- const id = itemIdFn(item);
97
- itemContexts.set(id, {
98
- item,
99
- id,
100
- selected: selectedContextsMap.has(id)
101
- });
102
- }
103
- }
104
- return itemContexts;
105
- });
106
- const visibleItems$ = tansu.computed(() => open$() ? [...itemContexts$().values()] : []);
107
- const highlighted$ = tansu.computed(() => {
108
- const visibleItems = visibleItems$();
109
- const highlightedIndex = highlightedIndex$();
110
- return visibleItems.length && highlightedIndex != void 0 ? visibleItems[highlightedIndex] : void 0;
111
- });
112
- const {
113
- directives: { floatingDirective, referenceDirective },
114
- stores: { placement$ }
115
- } = services_floatingUI.createFloatingUI({
116
- props: {
117
- computePositionOptions: tansu.asWritable(
118
- tansu.computed(() => ({
119
- middleware: [
120
- dom.offset(5),
121
- dom.autoPlacement({
122
- allowedPlacements: allowedPlacements$()
123
- }),
124
- dom.size()
125
- ]
126
- }))
127
- )
128
- }
129
- });
130
- const { directive: navDirective, refreshElements, focusFirst, focusLast, focusLeft, focusRight } = services_navManager.createNavManager();
131
- const navManagerConfig$ = tansu.computed(
132
- () => ({
133
- keys: {
134
- Home: focusFirst,
135
- End: focusLast,
136
- ArrowLeft: focusLeft,
137
- ArrowRight: focusRight
138
- },
139
- selector: navSelector$()
140
- })
141
- );
142
- const onRemoveBadge = (event, item) => {
143
- const referenceElement = event.target;
144
- refreshElements();
145
- widget.api.unselect(item);
146
- if (referenceElement instanceof HTMLElement) {
147
- setTimeout(() => {
148
- if (!focusLeft({ event, referenceElement })) {
149
- focusRight({ event, referenceElement });
150
- }
151
- });
152
- }
153
- event.preventDefault();
154
- };
155
- const inputContainerAttributesDirective = utils_directive.createAttributesDirective(() => ({
156
- attributes: {
157
- role: tansu.readable("combobox"),
158
- "aria-haspopup": tansu.readable("listbox"),
159
- "aria-expanded": tansu.computed(() => `${open$()}`),
160
- "aria-controls": tansu.computed(() => `${id$()}-menu`)
161
- }
162
- }));
163
- const badgeAttributesDirective = utils_directive.createAttributesDirective((itemContext$) => ({
164
- attributes: {
165
- tabindex: tansu.readable(-1),
166
- class: badgeClassName$
167
- },
168
- classNames: {
169
- "au-select-badge": utils_stores.true$
170
- },
171
- events: {
172
- keydown: (event) => {
173
- let keyManaged = false;
174
- switch (event.key) {
175
- case "Backspace":
176
- case "Delete": {
177
- onRemoveBadge(event, itemContext$().item);
178
- keyManaged = true;
179
- break;
180
- }
181
- }
182
- if (keyManaged) {
183
- event.preventDefault();
184
- }
185
- }
186
- }
187
- }));
188
- const menuAttributesDirective = utils_directive.createAttributesDirective(() => ({
189
- attributes: {
190
- role: tansu.readable("listbox"),
191
- id: tansu.computed(() => `${id$()}-menu`),
192
- "data-popper-placement": placement$,
193
- class: menuClassName$
194
- },
195
- events: {
196
- mousedown: (e) => e.preventDefault()
197
- }
198
- }));
199
- const itemAttributesDirective = utils_directive.createAttributesDirective((itemContext$) => ({
200
- attributes: {
201
- role: tansu.readable("option"),
202
- "aria-selected": tansu.computed(() => `${itemContext$().selected}`),
203
- style: tansu.readable("cursor: pointer")
204
- },
205
- classNames: {
206
- "au-select-item": utils_stores.true$,
207
- selected: tansu.computed(() => itemContext$().selected)
208
- },
209
- events: {
210
- click: () => widget.api.toggleItem(itemContext$().item)
211
- }
212
- }));
213
- const inputDirective = utils_directive.createAttributesDirective(() => ({
214
- attributes: {
215
- id: id$,
216
- type: tansu.readable("text"),
217
- "aria-label": ariaLabel$,
218
- "aria-autocomplete": tansu.readable("list"),
219
- autocorrect: tansu.readable("off"),
220
- autocapitalize: tansu.readable("none"),
221
- autocomplete: tansu.readable("off")
222
- },
223
- classNames: {
224
- "au-select-input": utils_stores.true$
225
- },
226
- events: {
227
- input: (event) => {
228
- const value = event.target.value;
229
- tansu.batch(() => {
230
- open$.set(value != null && value !== "");
231
- filterText$.set(value);
232
- });
233
- },
234
- keydown: ({ ctrlKey, key, preventDefault }) => {
235
- let keyManaged = true;
236
- switch (key) {
237
- case "ArrowDown": {
238
- const isOpen = open$();
239
- if (isOpen) {
240
- if (ctrlKey) {
241
- widget.api.highlightLast();
242
- } else {
243
- widget.api.highlightNext();
244
- }
245
- } else {
246
- widget.api.open();
247
- widget.api.highlightFirst();
248
- }
249
- break;
250
- }
251
- case "ArrowUp":
252
- if (ctrlKey) {
253
- widget.api.highlightFirst();
254
- } else {
255
- widget.api.highlightPrevious();
256
- }
257
- break;
258
- case "Enter": {
259
- const itemCtx = highlighted$();
260
- if (itemCtx) {
261
- widget.api.toggleItem(itemCtx.item);
262
- }
263
- break;
264
- }
265
- case "Escape":
266
- open$.set(false);
267
- break;
268
- default:
269
- keyManaged = false;
270
- }
271
- if (keyManaged) {
272
- preventDefault();
273
- }
274
- }
275
- }
276
- }));
277
- const badgeCloseButtonDirective = utils_directive.createAttributesDirective((itemContext$) => ({
278
- events: {
279
- click: (event) => {
280
- onRemoveBadge(event, itemContext$().item);
281
- }
282
- }
283
- }));
284
- const widget = {
285
- ...utils_stores.stateStores({
286
- id$,
287
- visibleItems$,
288
- highlighted$,
289
- open$,
290
- selectedContexts$,
291
- filterText$,
292
- placement$,
293
- className$,
294
- badgeClassName$,
295
- ariaLabel$,
296
- menuClassName$,
297
- ...stateProps
298
- }),
299
- patch,
300
- api: {
301
- clear() {
302
- selected$.set([]);
303
- },
304
- select(item) {
305
- widget.api.toggleItem(item, true);
306
- },
307
- unselect(item) {
308
- widget.api.toggleItem(item, false);
309
- },
310
- toggleItem(item, selected) {
311
- const itemIdFn = itemIdFn$();
312
- const itemId = itemIdFn(item);
313
- const selectedContextsMap = selectedContextsMap$();
314
- const isInSelected = selectedContextsMap.has(itemId);
315
- if (selected == null) {
316
- selected = !isInSelected;
317
- }
318
- if (selected && !itemContexts$().has(itemId) || !selected && !isInSelected) {
319
- return;
320
- }
321
- selected$.update((selectedItems) => {
322
- selectedItems = [...selectedItems];
323
- if (selected && !isInSelected) {
324
- selectedItems.push(item);
325
- } else if (!selected && isInSelected) {
326
- const index = selectedItems.findIndex((item2) => itemIdFn(item2) === itemId);
327
- selectedItems.splice(index, 1);
328
- }
329
- onSelectedChange$()?.(selectedItems);
330
- return selectedItems;
331
- });
332
- },
333
- clearText() {
334
- },
335
- highlight(item) {
336
- const index = visibleItems$().findIndex((itemCtx) => itemCtx.item === item);
337
- highlightedIndex$.set(index === -1 ? void 0 : index);
338
- },
339
- highlightFirst() {
340
- highlightedIndex$.set(0);
341
- },
342
- highlightPrevious() {
343
- highlightedIndex$.update((highlightedIndex) => {
344
- return highlightedIndex != null ? highlightedIndex - 1 : -1;
345
- });
346
- },
347
- highlightNext() {
348
- highlightedIndex$.update((highlightedIndex) => {
349
- return highlightedIndex != null ? highlightedIndex + 1 : Infinity;
350
- });
351
- },
352
- highlightLast() {
353
- highlightedIndex$.set(-1);
354
- },
355
- open: () => widget.api.toggle(true),
356
- close: () => widget.api.toggle(false),
357
- toggle(isOpen) {
358
- open$.update((value) => isOpen != null ? isOpen : !value);
359
- }
360
- },
361
- directives: {
362
- hasFocusDirective,
363
- floatingDirective,
364
- referenceDirective,
365
- inputContainerDirective: utils_directive.mergeDirectives(utils_directive.bindDirective(navDirective, navManagerConfig$), inputContainerAttributesDirective),
366
- badgeAttributesDirective,
367
- menuAttributesDirective,
368
- itemAttributesDirective,
369
- inputDirective,
370
- badgeCloseButtonDirective
371
- }
372
- };
373
- return widget;
374
- });
375
- exports.createSelect = createSelect;
376
- exports.getSelectDefaultConfig = getSelectDefaultConfig;