@agnos-ui/svelte-bootstrap 0.4.4 → 0.5.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 (103) hide show
  1. package/README.md +2 -2
  2. package/components/accordion/Accordion.svelte +20 -18
  3. package/components/accordion/Accordion.svelte.d.ts +8 -23
  4. package/components/accordion/Item.svelte +40 -44
  5. package/components/accordion/Item.svelte.d.ts +5 -20
  6. package/components/accordion/ItemDefaultStructure.svelte +17 -27
  7. package/components/accordion/ItemDefaultStructure.svelte.d.ts +3 -17
  8. package/components/accordion/accordion.d.ts +11 -6
  9. package/components/accordion/accordion.gen.d.ts +37 -9
  10. package/components/accordion/accordion.js +10 -0
  11. package/components/alert/Alert.svelte +36 -40
  12. package/components/alert/Alert.svelte.d.ts +5 -21
  13. package/components/alert/AlertDefaultStructure.svelte +8 -12
  14. package/components/alert/AlertDefaultStructure.svelte.d.ts +3 -17
  15. package/components/alert/alert.gen.d.ts +21 -2
  16. package/components/alert/index.d.ts +1 -1
  17. package/components/alert/index.js +1 -1
  18. package/components/collapse/Collapse.svelte +33 -0
  19. package/components/collapse/Collapse.svelte.d.ts +8 -0
  20. package/components/collapse/collapse.gen.d.ts +146 -0
  21. package/components/collapse/collapse.gen.js +14 -0
  22. package/components/collapse/index.d.ts +3 -0
  23. package/components/collapse/index.js +3 -0
  24. package/components/modal/Modal.svelte +45 -47
  25. package/components/modal/Modal.svelte.d.ts +16 -14
  26. package/components/modal/ModalDefaultHeader.svelte +10 -17
  27. package/components/modal/ModalDefaultHeader.svelte.d.ts +15 -12
  28. package/components/modal/ModalDefaultStructure.svelte +10 -36
  29. package/components/modal/ModalDefaultStructure.svelte.d.ts +15 -12
  30. package/components/modal/index.d.ts +1 -1
  31. package/components/modal/index.js +1 -1
  32. package/components/modal/modal.gen.d.ts +35 -18
  33. package/components/modal/modalService.d.ts +19 -1
  34. package/components/modal/modalService.js +21 -2
  35. package/components/pagination/Pagination.svelte +39 -47
  36. package/components/pagination/Pagination.svelte.d.ts +3 -21
  37. package/components/pagination/PaginationDefaultPages.svelte +13 -43
  38. package/components/pagination/PaginationDefaultPages.svelte.d.ts +3 -17
  39. package/components/pagination/PaginationDefaultStructure.svelte +18 -89
  40. package/components/pagination/PaginationDefaultStructure.svelte.d.ts +3 -17
  41. package/components/pagination/index.d.ts +1 -1
  42. package/components/pagination/index.js +1 -1
  43. package/components/pagination/pagination.gen.d.ts +49 -29
  44. package/components/progressbar/Progressbar.svelte +28 -31
  45. package/components/progressbar/Progressbar.svelte.d.ts +3 -21
  46. package/components/progressbar/ProgressbarDefaultStructure.svelte +6 -11
  47. package/components/progressbar/ProgressbarDefaultStructure.svelte.d.ts +3 -17
  48. package/components/progressbar/index.d.ts +1 -1
  49. package/components/progressbar/index.js +1 -1
  50. package/components/progressbar/progressbar.gen.d.ts +21 -4
  51. package/components/rating/Rating.svelte +33 -27
  52. package/components/rating/Rating.svelte.d.ts +3 -18
  53. package/components/rating/index.d.ts +1 -1
  54. package/components/rating/index.js +1 -1
  55. package/components/rating/rating.gen.d.ts +25 -17
  56. package/components/select/Select.svelte +57 -81
  57. package/components/select/Select.svelte.d.ts +16 -14
  58. package/components/select/index.d.ts +1 -1
  59. package/components/select/index.js +1 -1
  60. package/components/select/select.gen.d.ts +41 -25
  61. package/components/slider/Slider.svelte +39 -40
  62. package/components/slider/Slider.svelte.d.ts +3 -21
  63. package/components/slider/SliderDefaultHandle.svelte +7 -4
  64. package/components/slider/SliderDefaultHandle.svelte.d.ts +3 -17
  65. package/components/slider/SliderDefaultStructure.svelte +21 -75
  66. package/components/slider/SliderDefaultStructure.svelte.d.ts +3 -17
  67. package/components/slider/index.d.ts +1 -1
  68. package/components/slider/index.js +1 -1
  69. package/components/slider/slider.gen.d.ts +54 -33
  70. package/components/toast/Toast.svelte +43 -40
  71. package/components/toast/Toast.svelte.d.ts +5 -21
  72. package/components/toast/ToastDefaultStructure.svelte +13 -23
  73. package/components/toast/ToastDefaultStructure.svelte.d.ts +3 -17
  74. package/components/toast/index.d.ts +1 -1
  75. package/components/toast/index.js +1 -1
  76. package/components/toast/toast.gen.d.ts +22 -2
  77. package/config.d.ts +1 -12
  78. package/config.gen.d.ts +5 -0
  79. package/generated/index.d.ts +1 -1
  80. package/generated/index.js +1 -1
  81. package/generated/utils/widget.svelte.d.ts +1 -0
  82. package/generated/utils/widget.svelte.js +1 -0
  83. package/index.d.ts +1 -0
  84. package/index.js +1 -0
  85. package/package.json +8 -7
  86. package/components/alert/alert.d.ts +0 -5
  87. package/components/alert/alert.js +0 -1
  88. package/components/modal/modal.d.ts +0 -5
  89. package/components/modal/modal.js +0 -1
  90. package/components/pagination/pagination.d.ts +0 -5
  91. package/components/pagination/pagination.js +0 -1
  92. package/components/progressbar/progressbar.d.ts +0 -5
  93. package/components/progressbar/progressbar.js +0 -1
  94. package/components/rating/rating.d.ts +0 -5
  95. package/components/rating/rating.js +0 -1
  96. package/components/select/select.d.ts +0 -5
  97. package/components/select/select.js +0 -1
  98. package/components/slider/slider.d.ts +0 -5
  99. package/components/slider/slider.js +0 -1
  100. package/components/toast/toast.d.ts +0 -5
  101. package/components/toast/toast.js +0 -1
  102. package/generated/utils/widget.d.ts +0 -1
  103. package/generated/utils/widget.js +0 -1
@@ -7,7 +7,18 @@ import type { TransitionFn } from '@agnos-ui/svelte-headless/services/transition
7
7
  */
8
8
  declare const export_getModalDefaultConfig: () => ModalProps<any>;
9
9
  export { export_getModalDefaultConfig as getModalDefaultConfig };
10
- export type ModalContext<Data> = WidgetSlotContext<ModalWidget<Data>>;
10
+ /**
11
+ * Represents the context for a modal component.
12
+ *
13
+ * @template Data - The type of data associated with the modal.
14
+ */
15
+ export interface ModalContext<Data> extends WidgetSlotContext<ModalWidget<Data>> {
16
+ }
17
+ /**
18
+ * Represents the state of a modal component.
19
+ *
20
+ * @template Data - The type of the data associated with the modal.
21
+ */
11
22
  export interface ModalState<Data> {
12
23
  /**
13
24
  * Whether the backdrop is fully hidden. This can be true either because {@link ModalProps.backdrop|backdrop} is false or
@@ -99,6 +110,11 @@ export interface ModalState<Data> {
99
110
  */
100
111
  fullscreen: boolean;
101
112
  }
113
+ /**
114
+ * Interface representing the properties for a modal component.
115
+ *
116
+ * @template Data - The type of data that the modal will handle.
117
+ */
102
118
  export interface ModalProps<Data> {
103
119
  /**
104
120
  * The transition to use for the backdrop behind the modal (if present).
@@ -244,6 +260,11 @@ export interface ModalProps<Data> {
244
260
  */
245
261
  fullscreen: boolean;
246
262
  }
263
+ /**
264
+ * Interface representing the API for a modal component.
265
+ *
266
+ * @template Data - The type of data associated with the modal.
267
+ */
247
268
  export interface ModalApi<Data> {
248
269
  /**
249
270
  * Method to change some modal properties.
@@ -263,7 +284,12 @@ export interface ModalApi<Data> {
263
284
  */
264
285
  open(): Promise<any>;
265
286
  }
266
- export type ModalWidget<Data> = Widget<ModalProps<Data>, ModalState<Data>, ModalApi<Data>, ModalActions, ModalDirectives>;
287
+ /**
288
+ * Represents a modal widget with specific data type.
289
+ *
290
+ * @template Data - The type of data that the modal widget will handle.
291
+ */
292
+ export type ModalWidget<Data> = Widget<ModalProps<Data>, ModalState<Data>, ModalApi<Data>, ModalDirectives>;
267
293
  /**
268
294
  * Creates a new modal widget instance.
269
295
  * @param config - config of the modal, either as a store or as an object containing values or stores.
@@ -283,6 +309,9 @@ export { export_modalOutsideClick as modalOutsideClick };
283
309
  */
284
310
  declare const export_modalCloseButtonClick: typeof modalCloseButtonClick;
285
311
  export { export_modalCloseButtonClick as modalCloseButtonClick };
312
+ /**
313
+ * Type of the parameter of {@link ModalProps.onBeforeClose|onBeforeClose}.
314
+ */
286
315
  export interface ModalBeforeCloseEvent {
287
316
  /**
288
317
  * Result of the modal, which is the value passed to the {@link ModalApi.close|close} method
@@ -296,21 +325,9 @@ export interface ModalBeforeCloseEvent {
296
325
  */
297
326
  cancel: boolean;
298
327
  }
299
- export interface ModalActions {
300
- /**
301
- * Action to be called when the user clicks on the close button. It closes the modal with the {@link modalCloseButtonClick} result.
302
- * @param event - mouse event
303
- */
304
- closeButtonClick(event: Pick<MouseEvent, never>): void;
305
- /**
306
- * Action to be called when the user clicks on the modal DOM element (which is supposed to have the size of the full viewport).
307
- * If the click is not done on a descendant of the modal DOM element, it is considered to be done outside the modal
308
- * and, depending on the value of the {@link ModalProps.closeOnOutsideClick|closeOnOutsideClick} prop, the modal is or isn't closed
309
- * (with the {@link modalOutsideClick} result).
310
- * @param event - mouse event
311
- */
312
- modalClick(event: Pick<MouseEvent, 'target' | 'currentTarget'>): void;
313
- }
328
+ /**
329
+ * Directives of the modal widget.
330
+ */
314
331
  export interface ModalDirectives {
315
332
  /**
316
333
  * Directive to put on the modal DOM element.
@@ -333,7 +350,7 @@ export interface ModalDirectives {
333
350
  */
334
351
  closeButtonDirective: Directive;
335
352
  /**
336
- * Directive to apply to the dialog element when using the native [HTMLDialogElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement)
353
+ * Directive to apply to the dialog element when using the native {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement | HTMLDialogElement}
337
354
  */
338
355
  dialogDirective: Directive;
339
356
  }
@@ -1,4 +1,22 @@
1
- import type { ModalProps } from './modal';
1
+ import type { ModalProps } from './modal.gen';
2
+ /**
3
+ * Opens a modal dialog with the specified options.
4
+ *
5
+ * @template Data - The type of data that the modal will handle.
6
+ * @param {Partial<ModalProps<Data>>} options - The options to configure the modal.
7
+ * @param {Object} [context] - Optional context to pass to the modal.
8
+ * @param {Map<any, any>} [context.context] - A map of context values to pass to the modal.
9
+ * @returns {Promise<any>} A promise that resolves when the modal is closed.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const result = await openModal<MyDataType>({
14
+ * title: 'My Modal Title',
15
+ * content: 'This is the content of the modal.'
16
+ * });
17
+ * console.log(result);
18
+ * ```
19
+ */
2
20
  export declare function openModal<Data>(options: Partial<ModalProps<Data>>, { context }?: {
3
21
  context?: Map<any, any>;
4
22
  }): Promise<any>;
@@ -1,7 +1,26 @@
1
+ import { mount, unmount } from 'svelte';
1
2
  import Modal from './Modal.svelte';
3
+ /**
4
+ * Opens a modal dialog with the specified options.
5
+ *
6
+ * @template Data - The type of data that the modal will handle.
7
+ * @param {Partial<ModalProps<Data>>} options - The options to configure the modal.
8
+ * @param {Object} [context] - Optional context to pass to the modal.
9
+ * @param {Map<any, any>} [context.context] - A map of context values to pass to the modal.
10
+ * @returns {Promise<any>} A promise that resolves when the modal is closed.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const result = await openModal<MyDataType>({
15
+ * title: 'My Modal Title',
16
+ * content: 'This is the content of the modal.'
17
+ * });
18
+ * console.log(result);
19
+ * ```
20
+ */
2
21
  export async function openModal(options, { context } = {}) {
3
22
  const target = document.createElement('div');
4
- const component = new Modal({
23
+ const component = mount(Modal, {
5
24
  target,
6
25
  props: options,
7
26
  context,
@@ -10,6 +29,6 @@ export async function openModal(options, { context } = {}) {
10
29
  return await component.api.open();
11
30
  }
12
31
  finally {
13
- component.$destroy();
32
+ unmount(component);
14
33
  }
15
34
  }
@@ -1,52 +1,44 @@
1
- <script context="module">import { createPagination } from "./pagination";
2
- import { toSlotContextWidget } from "@agnos-ui/svelte-headless/types";
3
- import { Slot } from "@agnos-ui/svelte-headless/slot";
4
- import { callWidgetFactory } from "../../config";
5
- import PaginationDefaultPages from "./PaginationDefaultPages.svelte";
6
- import PaginationDefaultStructure from "./PaginationDefaultStructure.svelte";
7
- const defaultConfig = {
8
- structure: PaginationDefaultStructure,
9
- pagesDisplay: PaginationDefaultPages
10
- };
11
- </script>
1
+ <script lang="ts">
2
+ import type {PaginationContext, PaginationNumberContext, PaginationProps} from './pagination.gen';
3
+ import {createPagination} from './pagination.gen';
4
+ import {Slot} from '@agnos-ui/svelte-headless/slot';
5
+ import {callWidgetFactory} from '../../config';
6
+ import PaginationDefaultPages from './PaginationDefaultPages.svelte';
7
+ import PaginationDefaultStructure from './PaginationDefaultStructure.svelte';
8
+
9
+ let {page = $bindable(), ...props}: Partial<PaginationProps> = $props();
12
10
 
13
- <script>export let page = void 0;
14
- const widget = callWidgetFactory({
15
- factory: createPagination,
16
- widgetName: "pagination",
17
- $$slots,
18
- $$props,
19
- defaultConfig,
20
- events: {
21
- onPageChange: (value) => {
22
- page = value;
23
- }
24
- }
25
- });
26
- export const api = widget.api;
27
- const {
28
- stores: { structure$, ariaLabel$ },
29
- state$
30
- } = widget;
31
- $: widget.patchChangedProps($$props);
32
- $: slotContext = { widget: toSlotContextWidget(widget), state: $state$ };
11
+ const widget = callWidgetFactory({
12
+ factory: createPagination,
13
+ widgetName: 'pagination',
14
+ get props() {
15
+ return {...props, page};
16
+ },
17
+ enablePatchChanged: true,
18
+ defaultConfig: {
19
+ structure,
20
+ pagesDisplay,
21
+ numberLabel,
22
+ },
23
+ events: {
24
+ onPageChange: (value: number) => {
25
+ page = value;
26
+ },
27
+ },
28
+ });
33
29
  </script>
34
30
 
31
+ {#snippet structure(props: PaginationContext)}
32
+ <PaginationDefaultStructure {...props} />
33
+ {/snippet}
34
+ {#snippet pagesDisplay(props: PaginationContext)}
35
+ <PaginationDefaultPages {...props} />
36
+ {/snippet}
37
+ {#snippet numberLabel({displayedPage}: PaginationNumberContext)}
38
+ {displayedPage}
39
+ {/snippet}
40
+
35
41
  <!-- Should we put nav here ? how to custom the class of ul in this case ?-->
36
- <nav aria-label={$ariaLabel$}>
37
- <Slot slotContent={$structure$} props={slotContext} let:component let:props>
38
- <svelte:fragment slot="slot" let:props><slot name="structure" {...props} /></svelte:fragment>
39
- <svelte:component this={component} {...props}>
40
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
41
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
42
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
43
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
44
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
45
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
46
- >
47
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
48
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
49
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
50
- </svelte:component>
51
- </Slot>
42
+ <nav aria-label={widget.state.ariaLabel}>
43
+ <Slot content={widget.state.structure} props={widget} />
52
44
  </nav>
@@ -1,21 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { PaginationApi, PaginationProps, PaginationSlots } from './pagination';
3
- declare const __propDef: {
4
- props: {
5
- api?: PaginationApi;
6
- } & Partial<PaginationProps>;
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: PaginationSlots;
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- type PaginationProps_ = typeof __propDef.props;
15
- export { PaginationProps_ as PaginationProps };
16
- export type PaginationEvents = typeof __propDef.events;
17
- type PaginationSlots_ = typeof __propDef.slots;
18
- export { PaginationSlots_ as PaginationSlots };
19
- export default class Pagination extends SvelteComponent<PaginationProps_, PaginationEvents, PaginationSlots_> {
20
- get api(): PaginationApi;
21
- }
1
+ import type { PaginationProps } from './pagination.gen';
2
+ declare const Pagination: import("svelte").Component<Partial<PaginationProps>, {}, "page">;
3
+ export default Pagination;
@@ -1,56 +1,26 @@
1
- <script>
1
+ <script lang="ts">
2
2
  import {ssrAttributes as __AgnosUISveltePreprocess__ssrAttributes, classDirective as __AgnosUISveltePreprocess__classDirective} from '@agnos-ui/svelte-headless/utils/directive';
3
3
  import {BROWSER as __AgnosUISveltePreprocess__BROWSER} from 'esm-env';
4
- import { Slot } from "@agnos-ui/svelte-headless/slot";
5
- export let state;
6
- export let widget;
4
+
5
+ import type {PaginationContext} from './pagination.gen';
6
+ import {Slot} from '@agnos-ui/svelte-headless/slot';
7
+
8
+ let widget: PaginationContext = $props();
9
+ let {state, directives} = widget;
7
10
  </script>
8
11
 
9
- {#each state.pages as page, i}
12
+ {#each state.pages as page}
10
13
  <li class="page-item" class:active={page === state.page} class:disabled={page === -1 || state.disabled}>
11
14
  {#if page === -1}
12
15
  <div class="page-link au-ellipsis" aria-hidden="true">
13
- <Slot slotContent={state.ellipsisLabel} props={{state, widget}} let:component let:props>
14
- <svelte:fragment slot="slot" let:props><slot name="ellipsisLabel" {...props} /></svelte:fragment>
15
- <svelte:component this={component} {...props}>
16
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
17
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
18
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
19
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
20
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
21
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
22
- >
23
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
24
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
25
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
26
- </svelte:component>
27
- </Slot>
16
+ <Slot content={state.ellipsisLabel} props={widget} />
28
17
  </div>
29
18
  <span class="visually-hidden">{state.ariaEllipsisLabel}</span>
30
19
  {:else}
31
- <!-- svelte-ignore a11y-missing-attribute -->
32
- <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:widget.directives.pageLink={{page}} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([widget.directives.pageLink, {page}], [__AgnosUISveltePreprocess__classDirective, "page-link"])}
33
- ><!-- Remove the strange formatting with https://github.com/sveltejs/svelte/issues/3080
34
- --><Slot
35
- slotContent={state.numberLabel}
36
- props={{state, widget, displayedPage: page}}
37
- let:component
38
- let:props
39
- >
40
- <svelte:fragment slot="slot" let:props><slot name="numberLabel" {...props} /></svelte:fragment>
41
- <svelte:component this={component} {...props}>
42
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
43
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
44
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
45
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
46
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
47
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
48
- >
49
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
50
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
51
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
52
- </svelte:component>
53
- </Slot>{#if state.page === page}<span class="visually-hidden">{state.activeLabel}</span>{/if}
20
+ <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:directives.pageLink={{page}} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([directives.pageLink, {page}], [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
21
+ <Slot content={state.numberLabel} props={{...widget, displayedPage: page}} />{#if state.page === page}
22
+ <span class="visually-hidden">{state.activeLabel}</span>
23
+ {/if}
54
24
  </a>
55
25
  {/if}
56
26
  </li>
@@ -1,17 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { PaginationSlots } from './pagination';
3
- declare const __propDef: {
4
- props: WidgetSlotContext<Widget<import("./pagination.gen").PaginationProps, import("./pagination.gen").PaginationState, import("./pagination.gen").PaginationApi, import("./pagination.gen").PaginationActions, import("./pagination.gen").PaginationDirectives>>;
5
- events: {
6
- [evt: string]: CustomEvent<any>;
7
- };
8
- slots: PaginationSlots;
9
- exports?: {} | undefined;
10
- bindings?: string | undefined;
11
- };
12
- export type PaginationDefaultPagesProps = typeof __propDef.props;
13
- export type PaginationDefaultPagesEvents = typeof __propDef.events;
14
- export type PaginationDefaultPagesSlots = typeof __propDef.slots;
15
- export default class PaginationDefaultPages extends SvelteComponent<PaginationDefaultPagesProps, PaginationDefaultPagesEvents, PaginationDefaultPagesSlots> {
16
- }
17
- export {};
1
+ import type { PaginationContext } from './pagination.gen';
2
+ declare const PaginationDefaultPages: import("svelte").Component<PaginationContext, {}, "">;
3
+ export default PaginationDefaultPages;
@@ -1,121 +1,50 @@
1
- <script>
1
+ <script lang="ts">
2
2
  import {ssrAttributes as __AgnosUISveltePreprocess__ssrAttributes, classDirective as __AgnosUISveltePreprocess__classDirective} from '@agnos-ui/svelte-headless/utils/directive';
3
3
  import {BROWSER as __AgnosUISveltePreprocess__BROWSER} from 'esm-env';
4
- import { Slot } from "@agnos-ui/svelte-headless/slot";
5
- export let state;
6
- export let widget;
7
- $: slotContext = { widget, state };
8
- $: sizeClass = state.size ? `pagination-${state.size}` : "";
4
+
5
+ import type {PaginationContext} from './pagination.gen';
6
+ import {Slot} from '@agnos-ui/svelte-headless/slot';
7
+
8
+ let widget: PaginationContext = $props();
9
+ let {state, directives} = widget;
10
+
11
+ let sizeClass = $derived(state.size ? `pagination-${state.size}` : '');
9
12
  </script>
10
13
 
11
14
  <ul class="au-pagination pagination {sizeClass} {state.className}">
12
15
  {#if state.boundaryLinks}
13
16
  <li class="page-item" class:disabled={state.previousDisabled}>
14
- <!-- svelte-ignore a11y-missing-attribute -->
15
- <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:widget.directives.pageFirst {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(widget.directives.pageFirst, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
17
+ <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:directives.pageFirst {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.pageFirst, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
16
18
  <span aria-hidden="true">
17
- <Slot slotContent={state.firstPageLabel} props={slotContext} let:component let:props>
18
- <svelte:fragment slot="slot" let:props><slot name="firstPageLabel" {...props} /></svelte:fragment>
19
- <svelte:component this={component} {...props}>
20
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
21
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
22
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
23
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
24
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
25
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
26
- >
27
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
28
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
29
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
30
- </svelte:component>
31
- </Slot>
19
+ <Slot content={state.firstPageLabel} props={widget} />
32
20
  </span>
33
21
  </a>
34
22
  </li>
35
23
  {/if}
36
24
  {#if state.directionLinks}
37
25
  <li class="page-item" class:disabled={state.previousDisabled}>
38
- <!-- svelte-ignore a11y-missing-attribute -->
39
- <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:widget.directives.pagePrev {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(widget.directives.pagePrev, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
26
+ <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:directives.pagePrev {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.pagePrev, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
40
27
  <span aria-hidden="true">
41
- <Slot slotContent={state.previousPageLabel} props={slotContext} let:component let:props>
42
- <svelte:fragment slot="slot" let:props><slot name="previousPageLabel" {...props} /></svelte:fragment>
43
- <svelte:component this={component} {...props}>
44
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
45
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
46
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
47
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
48
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
49
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
50
- >
51
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
52
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
53
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
54
- </svelte:component>
55
- </Slot>
28
+ <Slot content={state.previousPageLabel} props={widget} />
56
29
  </span>
57
30
  </a>
58
31
  </li>
59
32
  {/if}
60
- <Slot slotContent={state.pagesDisplay} props={slotContext} let:component let:props>
61
- <svelte:fragment slot="slot" let:props><slot name="pagesDisplay" {...props} /></svelte:fragment>
62
- <svelte:component this={component} {...props}>
63
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
64
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
65
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
66
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
67
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
68
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
69
- >
70
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
71
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
72
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
73
- </svelte:component>
74
- </Slot>
33
+ <Slot content={state.pagesDisplay} props={widget} />
75
34
  {#if state.directionLinks}
76
35
  <li class="page-item" class:disabled={state.nextDisabled}>
77
- <!-- svelte-ignore a11y-missing-attribute -->
78
- <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:widget.directives.pageNext {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(widget.directives.pageNext, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
36
+ <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:directives.pageNext {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.pageNext, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
79
37
  <span aria-hidden="true">
80
- <Slot slotContent={state.nextPageLabel} props={slotContext} let:component let:props>
81
- <svelte:fragment slot="slot" let:props><slot name="nextPageLabel" {...props} /></svelte:fragment>
82
- <svelte:component this={component} {...props}>
83
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
84
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
85
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
86
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
87
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
88
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
89
- >
90
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
91
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
92
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
93
- </svelte:component>
94
- </Slot>
38
+ <Slot content={state.nextPageLabel} props={widget} />
95
39
  </span>
96
40
  </a>
97
41
  </li>
98
42
  {/if}
99
43
  {#if state.boundaryLinks}
100
44
  <li class="page-item" class:disabled={state.nextDisabled}>
101
- <!-- svelte-ignore a11y-missing-attribute -->
102
- <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:widget.directives.pageLast {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(widget.directives.pageLast, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
45
+ <a use:__AgnosUISveltePreprocess__classDirective={"page-link"} use:directives.pageLast {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.pageLast, [__AgnosUISveltePreprocess__classDirective, "page-link"])}>
103
46
  <span aria-hidden="true">
104
- <Slot slotContent={state.lastPageLabel} props={slotContext} let:component let:props>
105
- <svelte:fragment slot="slot" let:props><slot name="lastPageLabel" {...props} /></svelte:fragment>
106
- <svelte:component this={component} {...props}>
107
- <svelte:fragment slot="ellipsisLabel" let:state let:widget><slot name="ellipsisLabel" {state} {widget} /></svelte:fragment>
108
- <svelte:fragment slot="firstPageLabel" let:state let:widget><slot name="firstPageLabel" {state} {widget} /></svelte:fragment>
109
- <svelte:fragment slot="lastPageLabel" let:state let:widget><slot name="lastPageLabel" {state} {widget} /></svelte:fragment>
110
- <svelte:fragment slot="nextPageLabel" let:state let:widget><slot name="nextPageLabel" {state} {widget} /></svelte:fragment>
111
- <svelte:fragment slot="numberLabel" let:displayedPage let:state let:widget
112
- ><slot name="numberLabel" {displayedPage} {state} {widget} /></svelte:fragment
113
- >
114
- <svelte:fragment slot="pagesDisplay" let:state let:widget><slot name="pagesDisplay" {state} {widget} /></svelte:fragment>
115
- <svelte:fragment slot="previousPageLabel" let:state let:widget><slot name="previousPageLabel" {state} {widget} /></svelte:fragment>
116
- <svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
117
- </svelte:component>
118
- </Slot>
47
+ <Slot content={state.lastPageLabel} props={widget} />
119
48
  </span>
120
49
  </a>
121
50
  </li>
@@ -1,17 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { PaginationSlots } from './pagination';
3
- declare const __propDef: {
4
- props: WidgetSlotContext<Widget<import("./pagination.gen").PaginationProps, import("./pagination.gen").PaginationState, import("./pagination.gen").PaginationApi, import("./pagination.gen").PaginationActions, import("./pagination.gen").PaginationDirectives>>;
5
- events: {
6
- [evt: string]: CustomEvent<any>;
7
- };
8
- slots: PaginationSlots;
9
- exports?: {} | undefined;
10
- bindings?: string | undefined;
11
- };
12
- export type PaginationDefaultStructureProps = typeof __propDef.props;
13
- export type PaginationDefaultStructureEvents = typeof __propDef.events;
14
- export type PaginationDefaultStructureSlots = typeof __propDef.slots;
15
- export default class PaginationDefaultStructure extends SvelteComponent<PaginationDefaultStructureProps, PaginationDefaultStructureEvents, PaginationDefaultStructureSlots> {
16
- }
17
- export {};
1
+ import type { PaginationContext } from './pagination.gen';
2
+ declare const PaginationDefaultStructure: import("svelte").Component<PaginationContext, {}, "">;
3
+ export default PaginationDefaultStructure;
@@ -1,3 +1,3 @@
1
1
  import Pagination from './Pagination.svelte';
2
- export * from './pagination';
2
+ export * from './pagination.gen';
3
3
  export { Pagination };
@@ -1,3 +1,3 @@
1
1
  import Pagination from './Pagination.svelte';
2
- export * from './pagination';
2
+ export * from './pagination.gen';
3
3
  export { Pagination };