@motifx-community/ui 0.1.0-beta.1 → 0.1.0-beta.3

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 (259) hide show
  1. package/CHANGELOG.md +147 -8
  2. package/README.md +19 -13
  3. package/dist/components/accordion/Accordion.d.ts +3 -3
  4. package/dist/components/accordion/AccordionItem.d.ts +1 -1
  5. package/dist/components/calendar/Calendar.d.ts +12 -0
  6. package/dist/components/calendar/calendar-props.d.ts +5 -0
  7. package/dist/components/card/Card.d.ts +1 -1
  8. package/dist/components/contextmenu/ContextMenu.d.ts +1 -1
  9. package/dist/components/datagrid/DataGrid.d.ts +5 -5
  10. package/dist/components/datagrid/data-grid-props.d.ts +2 -2
  11. package/dist/components/datagrid/grid-adaptive-row-expanded-event-args.d.ts +1 -1
  12. package/dist/components/datagrid/grid-adaptive-row-expanding-event-args.d.ts +1 -1
  13. package/dist/components/datagrid/grid-grouping-changed-event-args.d.ts +1 -1
  14. package/dist/components/datagrid/grid-grouping-changing-event-args.d.ts +2 -2
  15. package/dist/components/datagrid/grid-master-detail.d.ts +1 -1
  16. package/dist/components/datagrid/grid-row-expanded-event-args.d.ts +1 -1
  17. package/dist/components/datagrid/grid-row-expanding-event-args.d.ts +1 -1
  18. package/dist/components/datagrid/grid-search-text-changed-event-args.d.ts +1 -1
  19. package/dist/components/datagrid/grid-search-text-changing-event-args.d.ts +1 -1
  20. package/dist/components/datagrid/grid-sort-changing-event-args.d.ts +1 -1
  21. package/dist/components/datagrid/model/GridSearch.d.ts +1 -1
  22. package/dist/components/daterangebox/DateRangeBox.d.ts +121 -0
  23. package/dist/components/daterangebox/date-range-box-props.d.ts +35 -0
  24. package/dist/components/daterangebox/date-range-preset.d.ts +6 -0
  25. package/dist/components/daterangebox/date-range.d.ts +2 -0
  26. package/dist/components/daterangebox/index.d.ts +4 -0
  27. package/dist/components/draggable/Draggable.d.ts +99 -0
  28. package/dist/components/draggable/DropTarget.d.ts +38 -0
  29. package/dist/components/draggable/draggable-event-args.d.ts +17 -0
  30. package/dist/components/draggable/draggable-props.d.ts +37 -0
  31. package/dist/components/draggable/drop-event-args.d.ts +11 -0
  32. package/dist/components/draggable/drop-target-props.d.ts +13 -0
  33. package/dist/components/draggable/index.d.ts +6 -0
  34. package/dist/components/fileuploader/FileUploader.d.ts +133 -0
  35. package/dist/components/fileuploader/file-uploader-props.d.ts +46 -0
  36. package/dist/components/fileuploader/files-added-event-args.d.ts +9 -0
  37. package/dist/components/fileuploader/index.d.ts +7 -0
  38. package/dist/components/fileuploader/upload-event-args.d.ts +10 -0
  39. package/dist/components/fileuploader/upload-item.d.ts +12 -0
  40. package/dist/components/fileuploader/upload-mode.d.ts +2 -0
  41. package/dist/components/fileuploader/upload-status.d.ts +2 -0
  42. package/dist/components/filterbuilder/FilterBuilder.d.ts +1 -1
  43. package/dist/components/gallery/Gallery.d.ts +132 -0
  44. package/dist/components/gallery/gallery-item-click-event-args.d.ts +9 -0
  45. package/dist/components/gallery/gallery-item.d.ts +18 -0
  46. package/dist/components/gallery/gallery-props.d.ts +38 -0
  47. package/dist/components/gallery/index.d.ts +6 -0
  48. package/dist/components/gallery/slide-changed-event-args.d.ts +11 -0
  49. package/dist/components/gallery/slide-changing-event-args.d.ts +14 -0
  50. package/dist/components/layout/ChildSettings.d.ts +1 -1
  51. package/dist/components/layout/DockPanel.d.ts +2 -2
  52. package/dist/components/layout/Grid.d.ts +1 -1
  53. package/dist/components/layout/SplitContainer.d.ts +1 -1
  54. package/dist/components/layout/Stack.d.ts +1 -1
  55. package/dist/components/loadpanel/LoadPanel.d.ts +70 -0
  56. package/dist/components/loadpanel/index.d.ts +3 -0
  57. package/dist/components/loadpanel/load-panel-props.d.ts +29 -0
  58. package/dist/components/loadpanel/load-panel-target.d.ts +3 -0
  59. package/dist/components/multiview/MultiView.d.ts +87 -0
  60. package/dist/components/multiview/View.d.ts +41 -0
  61. package/dist/components/multiview/index.d.ts +6 -0
  62. package/dist/components/multiview/multi-view-props.d.ts +24 -0
  63. package/dist/components/multiview/view-props.d.ts +15 -0
  64. package/dist/components/multiview/view-selecting-event-args.d.ts +15 -0
  65. package/dist/components/multiview/view-selection-changed-event-args.d.ts +12 -0
  66. package/dist/components/numberbox/number-box-props.d.ts +1 -1
  67. package/dist/components/popover/Popover.d.ts +98 -0
  68. package/dist/components/popover/index.d.ts +5 -0
  69. package/dist/components/popover/popover-close-reason.d.ts +2 -0
  70. package/dist/components/popover/popover-closing-event-args.d.ts +8 -0
  71. package/dist/components/popover/popover-props.d.ts +39 -0
  72. package/dist/components/popover/popover-show-on.d.ts +2 -0
  73. package/dist/components/resizable/Resizable.d.ts +84 -0
  74. package/dist/components/resizable/index.d.ts +3 -0
  75. package/dist/components/resizable/resizable-props.d.ts +41 -0
  76. package/dist/components/resizable/resize-event-args.d.ts +13 -0
  77. package/dist/components/scheduler/AppointmentEditor.d.ts +1 -1
  78. package/dist/components/scheduler/scheduler-props.d.ts +1 -1
  79. package/dist/components/scrollview/ScrollView.d.ts +109 -0
  80. package/dist/components/scrollview/index.d.ts +7 -0
  81. package/dist/components/scrollview/pull-down-event-args.d.ts +9 -0
  82. package/dist/components/scrollview/reach-bottom-event-args.d.ts +9 -0
  83. package/dist/components/scrollview/scroll-event-args.d.ts +7 -0
  84. package/dist/components/scrollview/scroll-view-bars.d.ts +2 -0
  85. package/dist/components/scrollview/scroll-view-direction.d.ts +2 -0
  86. package/dist/components/scrollview/scroll-view-props.d.ts +31 -0
  87. package/dist/components/skeleton/Skeleton.d.ts +1 -1
  88. package/dist/components/sortable/Sortable.d.ts +106 -0
  89. package/dist/components/sortable/index.d.ts +5 -0
  90. package/dist/components/sortable/sortable-drag-event-args.d.ts +15 -0
  91. package/dist/components/sortable/sortable-drop-event-args.d.ts +11 -0
  92. package/dist/components/sortable/sortable-orientation.d.ts +2 -0
  93. package/dist/components/sortable/sortable-props.d.ts +34 -0
  94. package/dist/components/speeddial/SpeedDial.d.ts +129 -0
  95. package/dist/components/speeddial/index.d.ts +6 -0
  96. package/dist/components/speeddial/speed-dial-action-click-event-args.d.ts +9 -0
  97. package/dist/components/speeddial/speed-dial-action.d.ts +25 -0
  98. package/dist/components/speeddial/speed-dial-event-args.d.ts +8 -0
  99. package/dist/components/speeddial/speed-dial-props.d.ts +49 -0
  100. package/dist/components/speeddial/speed-dial-tooltip.d.ts +3 -0
  101. package/dist/components/splitter/SplitPane.d.ts +45 -0
  102. package/dist/components/splitter/Splitter.d.ts +116 -0
  103. package/dist/components/splitter/index.d.ts +6 -0
  104. package/dist/components/splitter/split-pane-props.d.ts +21 -0
  105. package/dist/components/splitter/splitter-collapse-event-args.d.ts +13 -0
  106. package/dist/components/splitter/splitter-props.d.ts +25 -0
  107. package/dist/components/splitter/splitter-resize-event-args.d.ts +10 -0
  108. package/dist/components/stepper/Stepper.d.ts +121 -0
  109. package/dist/components/stepper/Wizard.d.ts +112 -0
  110. package/dist/components/stepper/WizardStep.d.ts +44 -0
  111. package/dist/components/stepper/index.d.ts +13 -0
  112. package/dist/components/stepper/step-changed-event-args.d.ts +11 -0
  113. package/dist/components/stepper/step-changing-event-args.d.ts +18 -0
  114. package/dist/components/stepper/stepper-item.d.ts +20 -0
  115. package/dist/components/stepper/stepper-label-position.d.ts +2 -0
  116. package/dist/components/stepper/stepper-orientation.d.ts +1 -0
  117. package/dist/components/stepper/stepper-props.d.ts +32 -0
  118. package/dist/components/stepper/stepper-status.d.ts +2 -0
  119. package/dist/components/stepper/wizard-finishing-event-args.d.ts +7 -0
  120. package/dist/components/stepper/wizard-props.d.ts +48 -0
  121. package/dist/components/stepper/wizard-step-props.d.ts +32 -0
  122. package/dist/components/tabdocs/TabDocumentManager.d.ts +1 -1
  123. package/dist/components/tabs/Tabs.d.ts +2 -2
  124. package/dist/components/tileview/TileView.d.ts +128 -0
  125. package/dist/components/tileview/index.d.ts +6 -0
  126. package/dist/components/tileview/tile-click-event-args.d.ts +9 -0
  127. package/dist/components/tileview/tile-reorder-event-args.d.ts +11 -0
  128. package/dist/components/tileview/tile-selection-changed-event-args.d.ts +11 -0
  129. package/dist/components/tileview/tile-view-item.d.ts +18 -0
  130. package/dist/components/tileview/tile-view-props.d.ts +38 -0
  131. package/dist/components/timeline/Timeline.d.ts +113 -0
  132. package/dist/components/timeline/index.d.ts +5 -0
  133. package/dist/components/timeline/timeline-item-click-event-args.d.ts +9 -0
  134. package/dist/components/timeline/timeline-item.d.ts +24 -0
  135. package/dist/components/timeline/timeline-props.d.ts +30 -0
  136. package/dist/components/timeline/timeline-selection-changed-event-args.d.ts +11 -0
  137. package/dist/components/tooltip/Tooltip.d.ts +1 -1
  138. package/dist/components/treeview/TreeView.d.ts +1 -1
  139. package/dist/components/validationsummary/ValidationSummary.d.ts +56 -0
  140. package/dist/components/validationsummary/index.d.ts +3 -0
  141. package/dist/components/validationsummary/summary-item-click-event-args.d.ts +11 -0
  142. package/dist/components/validationsummary/validation-summary-props.d.ts +17 -0
  143. package/dist/core/control.d.ts +4 -4
  144. package/dist/core/flow-home.d.ts +6 -0
  145. package/dist/core/fold-text.d.ts +6 -0
  146. package/dist/core/ui-locale.d.ts +0 -2
  147. package/dist/core/ui-strings.d.ts +67 -0
  148. package/dist/generated/tokens.d.ts +7270 -4490
  149. package/dist/index.d.ts +17 -1
  150. package/dist/index.js +27131 -20490
  151. package/dist/index.js.map +1 -1
  152. package/dist/locales/en.json +59 -1
  153. package/dist/locales/tr.json +59 -1
  154. package/dist/parts/slide/slide-track-host.d.ts +19 -0
  155. package/dist/parts/slide/slide-track.d.ts +45 -0
  156. package/dist/styles.css +4916 -206
  157. package/dist/tokens/index.d.ts +7270 -4490
  158. package/dist/tokens/index.js +7270 -4490
  159. package/dist/tokens/index.js.map +1 -1
  160. package/dist/tr-C5IXRzAH.js +1233 -0
  161. package/dist/tr-C5IXRzAH.js.map +1 -0
  162. package/docs/accordion.md +9 -9
  163. package/docs/actionsheet.md +2 -2
  164. package/docs/avatar.md +5 -5
  165. package/docs/badge.md +6 -6
  166. package/docs/bottomsheet.md +6 -6
  167. package/docs/breadcrumb.md +4 -4
  168. package/docs/button.md +10 -10
  169. package/docs/buttongroup.md +5 -5
  170. package/docs/calendar.md +6 -6
  171. package/docs/card.md +6 -6
  172. package/docs/checkbox.md +9 -9
  173. package/docs/chip.md +5 -5
  174. package/docs/colorbox.md +3 -3
  175. package/docs/combobox.md +7 -7
  176. package/docs/control.md +12 -12
  177. package/docs/datagrid-api.md +7 -7
  178. package/docs/datagrid-bands.md +1 -1
  179. package/docs/datagrid-drag-select.md +2 -2
  180. package/docs/datagrid-drag.md +1 -1
  181. package/docs/datagrid-editing.md +2 -2
  182. package/docs/datagrid-filtering.md +3 -3
  183. package/docs/datagrid-forms.md +1 -1
  184. package/docs/datagrid-grouping.md +1 -1
  185. package/docs/datagrid-layout.md +4 -4
  186. package/docs/datagrid-lookups.md +1 -1
  187. package/docs/datagrid-master-detail.md +3 -3
  188. package/docs/datagrid-scrolling.md +1 -1
  189. package/docs/datagrid-selection.md +3 -3
  190. package/docs/datagrid.md +8 -8
  191. package/docs/datebox.md +8 -8
  192. package/docs/daterangebox.md +192 -0
  193. package/docs/draggable.md +194 -0
  194. package/docs/drawer.md +1 -1
  195. package/docs/dropdown.md +10 -10
  196. package/docs/fileuploader.md +201 -0
  197. package/docs/filterbuilder.md +9 -9
  198. package/docs/formlayout.md +1 -1
  199. package/docs/gallery.md +244 -0
  200. package/docs/home.md +11 -7
  201. package/docs/keyboard.md +1 -1
  202. package/docs/language.md +229 -0
  203. package/docs/layout.md +15 -15
  204. package/docs/listbox.md +10 -10
  205. package/docs/loadpanel.md +184 -0
  206. package/docs/lookup.md +1 -1
  207. package/docs/menus.md +2 -2
  208. package/docs/multiview.md +202 -0
  209. package/docs/numberbox.md +9 -9
  210. package/docs/pagination.md +4 -4
  211. package/docs/popover.md +221 -0
  212. package/docs/progress.md +9 -9
  213. package/docs/radiogroup.md +7 -7
  214. package/docs/rating.md +4 -4
  215. package/docs/resizable.md +139 -0
  216. package/docs/scheduler-agenda.md +1 -1
  217. package/docs/scheduler-big-data.md +1 -1
  218. package/docs/scheduler-editing.md +5 -5
  219. package/docs/scheduler-form.md +1 -1
  220. package/docs/scheduler-icalendar.md +1 -1
  221. package/docs/scheduler-mobile.md +1 -1
  222. package/docs/scheduler-recurrence.md +2 -2
  223. package/docs/scheduler-resources.md +1 -1
  224. package/docs/scheduler-timeline.md +1 -1
  225. package/docs/scheduler.md +4 -4
  226. package/docs/scrollview.md +185 -0
  227. package/docs/showcase.md +1 -1
  228. package/docs/skeleton.md +2 -2
  229. package/docs/slider.md +9 -9
  230. package/docs/sortable.md +213 -0
  231. package/docs/speeddial.md +290 -0
  232. package/docs/splitter.md +204 -0
  233. package/docs/stepper.md +238 -0
  234. package/docs/switch.md +7 -7
  235. package/docs/tabdocs-dock.md +3 -3
  236. package/docs/tabdocs-drag.md +1 -1
  237. package/docs/tabdocs-menus.md +1 -1
  238. package/docs/tabdocs-mobile.md +1 -1
  239. package/docs/tabdocs-tabs.md +1 -1
  240. package/docs/tabdocs-windows.md +1 -1
  241. package/docs/tabdocs-workspace.md +1 -1
  242. package/docs/tabdocs.md +5 -5
  243. package/docs/tabs.md +11 -11
  244. package/docs/tagbox.md +10 -10
  245. package/docs/textarea.md +9 -9
  246. package/docs/textbox.md +10 -10
  247. package/docs/tileview.md +206 -0
  248. package/docs/timeline.md +174 -0
  249. package/docs/toast.md +7 -7
  250. package/docs/tokens.md +678 -122
  251. package/docs/toolbar.md +8 -8
  252. package/docs/tooltip.md +12 -12
  253. package/docs/treeview.md +11 -11
  254. package/docs/validationsummary.md +115 -0
  255. package/docs/window.md +7 -7
  256. package/docs/wizard.md +240 -0
  257. package/llms-full.txt +4813 -492
  258. package/llms.txt +21 -3
  259. package/package.json +9 -3
@@ -0,0 +1,132 @@
1
+ import { Component, Emitter, type Bind, type ComponentBase, type Event as MotifEvent, type IBaseProp } from "@motifx/core";
2
+ import { Control } from "../../core/control";
3
+ import { SlideTrack } from "../../parts/slide/slide-track";
4
+ import type { GalleryItem } from "./gallery-item";
5
+ import type { GalleryItemClickEventArgs } from "./gallery-item-click-event-args";
6
+ import type { GalleryProps } from "./gallery-props";
7
+ import type { SlideChangedEventArgs } from "./slide-changed-event-args";
8
+ import type { SlideChangingEventArgs } from "./slide-changing-event-args";
9
+ interface Look {
10
+ item: unknown;
11
+ key: string | null;
12
+ image: string;
13
+ alt: string;
14
+ text: string;
15
+ description: string;
16
+ content: (() => ComponentBase) | null;
17
+ }
18
+ interface Pane {
19
+ item: unknown;
20
+ pane: Component<HTMLDivElement>;
21
+ figure: Component<HTMLDivElement>;
22
+ image: HTMLImageElement | null;
23
+ content: ComponentBase | null;
24
+ caption: Component<HTMLDivElement>;
25
+ title: Component<HTMLSpanElement>;
26
+ description: Component<HTMLSpanElement>;
27
+ }
28
+ type Hold = 'hover' | 'focus' | 'drag';
29
+ /**
30
+ * Panes side by side, one in view (or several), moved by the buttons at the sides, the dots under them, a swipe
31
+ * or the arrow keys; a slideshow when `slideInterval` says so, which pauses under the pointer and while focus is
32
+ * inside. A pane is an image with a caption, or any content. The pane in view is `value`: a pane's `key`, else its
33
+ * index; `x-model` binds it two-way.
34
+ *
35
+ * @example
36
+ * <Gallery items={['/photos/1.jpg', '/photos/2.jpg']} loop slideInterval={4000} height={320} />
37
+ * <Gallery items={[{ image: '/a.jpg', text: 'Harbour', description: 'Early morning' }]} x-model={() => this.shown} />
38
+ */
39
+ export declare class Gallery extends Control<HTMLElement, GalleryProps> {
40
+ changing: Emitter<SlideChangingEventArgs>;
41
+ changed: Emitter<SlideChangedEventArgs>;
42
+ itemClick: Emitter<GalleryItemClickEventArgs>;
43
+ bar: Component<HTMLDivElement>;
44
+ indicator: Component<HTMLDivElement>;
45
+ playButton: Component<HTMLButtonElement>;
46
+ previousButton: Component<HTMLButtonElement>;
47
+ nextButton: Component<HTMLButtonElement>;
48
+ viewport: Component<HTMLDivElement>;
49
+ list: Component<HTMLDivElement>;
50
+ slide: SlideTrack;
51
+ panes: Pane[];
52
+ dots: HTMLButtonElement[];
53
+ looks: Look[];
54
+ stopItems: (() => void) | null;
55
+ previousIndex: number;
56
+ byUser: boolean;
57
+ ready: boolean;
58
+ playing: boolean;
59
+ holds: Set<Hold>;
60
+ timer: number;
61
+ reduced: MediaQueryList | null;
62
+ constructor(props?: IBaseProp<GalleryProps>);
63
+ get items(): readonly (GalleryItem | string)[];
64
+ set items(value: Bind<readonly (GalleryItem | string)[]>);
65
+ get value(): string | number | null;
66
+ set value(value: Bind<string | number | null>);
67
+ get loop(): boolean;
68
+ set loop(value: Bind<boolean>);
69
+ get showNavButtons(): boolean;
70
+ set showNavButtons(value: Bind<boolean>);
71
+ get showIndicator(): boolean;
72
+ set showIndicator(value: Bind<boolean>);
73
+ get slideInterval(): number;
74
+ set slideInterval(value: Bind<number>);
75
+ get pauseOnHover(): boolean;
76
+ set pauseOnHover(value: Bind<boolean>);
77
+ get swipeEnabled(): boolean;
78
+ set swipeEnabled(value: Bind<boolean>);
79
+ get itemsPerPage(): number;
80
+ set itemsPerPage(value: Bind<number>);
81
+ get stretchImages(): boolean;
82
+ set stretchImages(value: Bind<boolean>);
83
+ get height(): string | number | null;
84
+ set height(value: Bind<string | number | null>);
85
+ get label(): string;
86
+ set label(value: Bind<string>);
87
+ /** The pane in view is about to change (`from`, `to`, `byUser`); `cancel` keeps the one there. */
88
+ get onSlideChanging(): MotifEvent<SlideChangingEventArgs>;
89
+ /** The pane in view changed, by the user, programmatically or by the slideshow (`byUser`). */
90
+ get onSlideChanged(): MotifEvent<SlideChangedEventArgs>;
91
+ /** A press on a pane that was not a drag. */
92
+ get onItemClick(): MotifEvent<GalleryItemClickEventArgs>;
93
+ /** The index of the pane in view; -1 when there is none. */
94
+ get selectedIndex(): number;
95
+ /** How many panes there are. */
96
+ get count(): number;
97
+ /** The slideshow runs: it was not paused, and nothing holds it (the pointer, focus, a drag, reduced motion). */
98
+ get isPlaying(): boolean;
99
+ /** Panes side by side, at least one. */
100
+ get perView(): number;
101
+ /** Goes to the pane after the one in view; `false` at the end without `loop`, or when the change was refused. */
102
+ next(): Promise<boolean>;
103
+ /** Goes to the pane before the one in view. */
104
+ previous(): Promise<boolean>;
105
+ /** Goes to a pane by index or key; `onSlideChanging` is asked first. */
106
+ goTo(pane: number | string): Promise<boolean>;
107
+ /** Starts the slideshow (`slideInterval` says how fast) after `pause()`. */
108
+ play(): void;
109
+ /** Stops the slideshow until `play()`. */
110
+ pause(): void;
111
+ /** Reads the items again after they were changed in place. */
112
+ refresh(): void;
113
+ /** The index a value names: a key, else an index in range; -1 for none. */
114
+ indexOf(value: string | number | null | undefined): number;
115
+ /** The value that names the pane at `index`: its key when it has one, else the index. */
116
+ valueAt(index: number): string | number;
117
+ renderName(): void;
118
+ renderItems(): void;
119
+ lookOf(item: unknown): Look;
120
+ drawPanes(): void;
121
+ makePane(look: Look): Pane;
122
+ writePane(pane: Pane, look: Look): void;
123
+ drawDots(): void;
124
+ drawStates(): void;
125
+ schedule: () => void;
126
+ hold(reason: Hold, on: boolean): void;
127
+ go(to: number, byUser: boolean, event?: Event): Promise<boolean>;
128
+ makeNav(direction: 'previous' | 'next'): Component<HTMLButtonElement>;
129
+ listen(): void;
130
+ keyDown(e: KeyboardEvent, onDots: boolean): void;
131
+ }
132
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { Gallery } from './Gallery';
2
+ /** A press on a pane that was not a drag. */
3
+ export interface GalleryItemClickEventArgs {
4
+ index: number;
5
+ /** The item as given. */
6
+ item: unknown;
7
+ source: Gallery;
8
+ event: MouseEvent;
9
+ }
@@ -0,0 +1,18 @@
1
+ import type { Bind, ComponentBase } from '@motifx/core';
2
+ /** A pane of the gallery: an image, or any content, with a caption. Each field may be a function of your state. */
3
+ export interface GalleryItem {
4
+ /** Names the pane in `value`; without one its index does. */
5
+ key?: string;
6
+ /** The address of the image. */
7
+ image?: Bind<string>;
8
+ /** What the image shows, for screen readers; empty for a decorative one. */
9
+ alt?: Bind<string>;
10
+ /** The caption's first line. */
11
+ text?: Bind<string>;
12
+ /** The caption's second line. */
13
+ description?: Bind<string>;
14
+ /** Any content in place of an image, made when the pane is. */
15
+ content?: () => ComponentBase;
16
+ /** Anything of your own; the item comes back as given in the events. */
17
+ data?: unknown;
18
+ }
@@ -0,0 +1,38 @@
1
+ import type { Bind } from '@motifx/core';
2
+ import type { ControlProps } from '../../core/control';
3
+ import type { GalleryItem } from './gallery-item';
4
+ import type { GalleryItemClickEventArgs } from './gallery-item-click-event-args';
5
+ import type { SlideChangedEventArgs } from './slide-changed-event-args';
6
+ import type { SlideChangingEventArgs } from './slide-changing-event-args';
7
+ /** Props of `Gallery`. Each one is also a settable property; a function is followed. */
8
+ export interface GalleryProps extends ControlProps {
9
+ /** The panes in order: `GalleryItem`s or image addresses. */
10
+ items?: Bind<readonly (GalleryItem | string)[]>;
11
+ /** The pane in view: its `key`, else its index. `x-model` binds it two-way. Default `0`. */
12
+ value?: Bind<string | number | null>;
13
+ /** After the last pane comes the first. Default `false`. */
14
+ loop?: Bind<boolean>;
15
+ /** The previous and next buttons at the sides. Default `true`. */
16
+ showNavButtons?: Bind<boolean>;
17
+ /** The dots under the panes, one per pane. Default `true`. */
18
+ showIndicator?: Bind<boolean>;
19
+ /** Milliseconds a pane stays in a slideshow; `0` for none. It pauses under the pointer, while focus is inside, out of sight and under reduced motion. Default `0`. */
20
+ slideInterval?: Bind<number>;
21
+ /** The slideshow pauses while the pointer rests on the gallery. Default `true`. */
22
+ pauseOnHover?: Bind<boolean>;
23
+ /** A finger or a pointer drags the panes. Default `true`. */
24
+ swipeEnabled?: Bind<boolean>;
25
+ /** Panes side by side in the width. Default `1`. */
26
+ itemsPerPage?: Bind<number>;
27
+ /** An image fills its pane, cut at the edges, instead of fitting inside it whole. Default `false`. */
28
+ stretchImages?: Bind<boolean>;
29
+ /** The gallery's height, a CSS length or pixels. Without one it is as tall as its tallest pane. */
30
+ height?: Bind<string | number | null>;
31
+ /** What screen readers call it. Default: the kit's "Gallery". */
32
+ label?: Bind<string>;
33
+ /** The pane in view is about to change; cancelable. */
34
+ onSlideChanging?: (e: SlideChangingEventArgs) => void;
35
+ onSlideChanged?: (e: SlideChangedEventArgs) => void;
36
+ /** A press on a pane that was not a drag. */
37
+ onItemClick?: (e: GalleryItemClickEventArgs) => void;
38
+ }
@@ -0,0 +1,6 @@
1
+ export { Gallery } from './Gallery';
2
+ export type { GalleryItem } from './gallery-item';
3
+ export type { GalleryProps } from './gallery-props';
4
+ export type { GalleryItemClickEventArgs } from './gallery-item-click-event-args';
5
+ export type { SlideChangingEventArgs } from './slide-changing-event-args';
6
+ export type { SlideChangedEventArgs } from './slide-changed-event-args';
@@ -0,0 +1,11 @@
1
+ import type { Gallery } from './Gallery';
2
+ /** The pane in view changed. */
3
+ export interface SlideChangedEventArgs {
4
+ index: number;
5
+ /** The item as given; `null` when there is none. */
6
+ item: unknown;
7
+ previous: number;
8
+ /** By a press, a swipe or a key, else programmatically or the slideshow. */
9
+ byUser: boolean;
10
+ source: Gallery;
11
+ }
@@ -0,0 +1,14 @@
1
+ import type { EventArgs } from '@motifx/core';
2
+ import type { Gallery } from './Gallery';
3
+ /** The pane in view is about to change. `cancel = true` keeps the one there. */
4
+ export interface SlideChangingEventArgs extends EventArgs {
5
+ from: number;
6
+ to: number;
7
+ /** The items as given; `null` when there is none. */
8
+ fromItem: unknown;
9
+ toItem: unknown;
10
+ /** By a press, a swipe or a key, else programmatically or the slideshow. */
11
+ byUser: boolean;
12
+ source: Gallery;
13
+ event?: Event;
14
+ }
@@ -31,7 +31,7 @@ export declare class ChildSettings {
31
31
  /** The children that take part, in order. */
32
32
  get children(): ComponentBase[];
33
33
  get(child: ComponentBase, name: string): unknown;
34
- /** Sets a child's setting from code: a value, or a function that is followed. */
34
+ /** Sets a child's setting programmatically: a value, or a function that is followed. */
35
35
  set(child: ComponentBase, name: string, value: Bind<unknown>): void;
36
36
  private add;
37
37
  private leave;
@@ -30,9 +30,9 @@ export declare class DockPanel extends Control<HTMLDivElement, DockPanelProps> {
30
30
  set padding(value: Bind<LayoutSpace | undefined>);
31
31
  /** Where a child is docked, as its props say or as set with {@link setDock}. */
32
32
  dockOf(child: ComponentBase): Dock;
33
- /** Docks a child from code: a value, or a function that is followed. */
33
+ /** Docks a child programmatically: a value, or a function that is followed. */
34
34
  setDock(child: ComponentBase, dock: Bind<Dock>): void;
35
- /** Sets the anchors of a `float` child from code; each is a value or a function. Fields left out stay. */
35
+ /** Sets the anchors of a `float` child programmatically; each is a value or a function. Fields left out stay. */
36
36
  setAnchors(child: ComponentBase, anchors: Omit<DockChildProps, 'dock'>): void;
37
37
  private get settings();
38
38
  /** Gives every child its grid area: each docked one takes an edge of what the ones before it left. */
@@ -49,7 +49,7 @@ export declare class Grid extends Control<HTMLDivElement, GridProps> {
49
49
  set inline(value: Bind<boolean>);
50
50
  /** A child's cell, as its props say or as set with {@link setCell}. */
51
51
  cellOf(child: ComponentBase): GridCell;
52
- /** Places a child from code; each field is a value or a function that is followed. Fields left out stay. */
52
+ /** Places a child programmatically; each field is a value or a function that is followed. Fields left out stay. */
53
53
  setCell(child: ComponentBase, cell: GridCell): void;
54
54
  private get settings();
55
55
  private place;
@@ -10,7 +10,7 @@ import type { SplitterMovedEventArgs } from './splitter-moved-event-args';
10
10
  * Two panes, `first` and `second`, side by side or one over the other, with a splitter between
11
11
  * them that the pointer drags and the keys move (the ARIA window splitter pattern). The pane
12
12
  * named by `fixedPanel` keeps its size when the container is resized; `collapsed` hides one.
13
- * The first JSX child goes into the first pane, the second into the second one; from code, add
13
+ * The first JSX child goes into the first pane, the second into the second one; programmatically, add
14
14
  * to `split.first.controls` / `split.second.controls`.
15
15
  *
16
16
  * @example
@@ -38,7 +38,7 @@ export declare class Stack extends Control<HTMLDivElement, StackProps> {
38
38
  set inline(value: Bind<boolean>);
39
39
  /** A child's `grow`, as its props say or as set with {@link setGrow}. */
40
40
  growOf(child: ComponentBase): boolean | number;
41
- /** Sets a child's `grow` from code: a value, or a function that is followed. */
41
+ /** Sets a child's `grow` programmatically: a value, or a function that is followed. */
42
42
  setGrow(child: ComponentBase, grow: Bind<boolean | number>): void;
43
43
  private get settings();
44
44
  private renderLook;
@@ -0,0 +1,70 @@
1
+ import { Component, Emitter, type Bind, type Event as MotifEvent, type IBaseProp } from "@motifx/core";
2
+ import { Control } from "../../core/control";
3
+ import { Button } from "../button/Button";
4
+ import { Spinner } from "../progress/Spinner";
5
+ import type { LoadPanelProps } from "./load-panel-props";
6
+ import type { LoadPanelTarget } from "./load-panel-target";
7
+ /**
8
+ * A "loading" layer over a container or the whole page: a shade, a pane with a turning indicator and a message,
9
+ * a Cancel button when the work can be stopped. What is under it cannot be pressed or focused meanwhile; focus
10
+ * that was inside waits on the pane and comes back afterwards. It shows after `delay`, so quick work does not
11
+ * flash it. `value` (or `x-model`) shows and hides it; so do `show()` and `hide()`.
12
+ *
13
+ * @example
14
+ * <LoadPanel target={() => this.ordersPanel} message="Loading orders" x-model={() => this.state.loading} />
15
+ *
16
+ * const panel = new LoadPanel({ cancelable: true, onCancel: () => this.job.stop() });
17
+ * panel.show();
18
+ */
19
+ export declare class LoadPanel extends Control<HTMLDivElement, LoadPanelProps> {
20
+ pane: Component<HTMLDivElement>;
21
+ spinner: Spinner;
22
+ messagePart: Component<HTMLDivElement>;
23
+ cancelButton: Button;
24
+ shownNow: boolean;
25
+ timer: ReturnType<typeof setTimeout> | null;
26
+ host: HTMLElement | null;
27
+ undo: (() => void) | null;
28
+ returnTo: HTMLElement | null;
29
+ telling: boolean;
30
+ shownEmitter: Emitter<void>;
31
+ hiddenEmitter: Emitter<void>;
32
+ cancelled: Emitter<void>;
33
+ constructor(props?: IBaseProp<LoadPanelProps>);
34
+ get target(): LoadPanelTarget;
35
+ set target(value: Bind<LoadPanelTarget>);
36
+ get message(): string;
37
+ set message(value: Bind<string>);
38
+ /** Shown or not. Reactive; setting it shows or hides. */
39
+ get value(): boolean;
40
+ set value(value: Bind<boolean>);
41
+ get delay(): number;
42
+ set delay(value: Bind<number>);
43
+ get shade(): boolean;
44
+ set shade(value: Bind<boolean>);
45
+ get showPane(): boolean;
46
+ set showPane(value: Bind<boolean>);
47
+ get showIndicator(): boolean;
48
+ set showIndicator(value: Bind<boolean>);
49
+ get cancelable(): boolean;
50
+ set cancelable(value: Bind<boolean>);
51
+ get cancelText(): string;
52
+ set cancelText(value: Bind<string>);
53
+ get closeOnOutside(): boolean;
54
+ set closeOnOutside(value: Bind<boolean>);
55
+ /** Whether it is on the screen now (after its delay). */
56
+ get isShown(): boolean;
57
+ get onShown(): MotifEvent<void>;
58
+ get onHidden(): MotifEvent<void>;
59
+ /** The Cancel button was pressed (or Escape); the panel hides after. */
60
+ get onCancel(): MotifEvent<void>;
61
+ /** Shows it over its target after `delay`; `false` when it is shown or waiting already. */
62
+ show(): boolean;
63
+ /** Hides it; what it covered can be used again, and focus goes back where it was. */
64
+ hide(): void;
65
+ /** What the Cancel button does: tells `onCancel`, then hides. */
66
+ cancel(): void;
67
+ mount(): void;
68
+ tell(value: boolean): void;
69
+ drawTexts(): void;
70
+ }
@@ -0,0 +1,3 @@
1
+ export { LoadPanel } from './LoadPanel';
2
+ export type { LoadPanelProps } from './load-panel-props';
3
+ export type { LoadPanelTarget } from './load-panel-target';
@@ -0,0 +1,29 @@
1
+ import type { Bind } from '@motifx/core';
2
+ import type { ControlProps } from '../../core/control';
3
+ import type { LoadPanelTarget } from './load-panel-target';
4
+ /** Props of `LoadPanel`. Each one is also a settable property; a function is followed. */
5
+ export interface LoadPanelProps extends ControlProps {
6
+ /** What it covers: a component or an element; `null` (the default) covers the whole page. */
7
+ target?: Bind<LoadPanelTarget | undefined>;
8
+ /** The message under the indicator. The same property as `text`. Default: the kit's "Loading…". */
9
+ message?: Bind<string>;
10
+ /** Shown or not; `x-model` binds it two-way. Default `false`. */
11
+ value?: Bind<boolean>;
12
+ /** Milliseconds before it shows, so quick work does not flash it. Default `0`. */
13
+ delay?: Bind<number>;
14
+ /** Dims what it covers. Default `true`. */
15
+ shade?: Bind<boolean>;
16
+ /** The pane behind the indicator and the message. Default `true`. */
17
+ showPane?: Bind<boolean>;
18
+ /** The turning indicator. Default `true`. */
19
+ showIndicator?: Bind<boolean>;
20
+ /** A Cancel button in the pane; `onCancel` tells, and the panel hides. Default `false`. */
21
+ cancelable?: Bind<boolean>;
22
+ /** The Cancel button's text. Default: the kit's "Cancel". */
23
+ cancelText?: Bind<string>;
24
+ /** A press on the shade hides it. Default `false`. */
25
+ closeOnOutside?: Bind<boolean>;
26
+ onShown?: () => void;
27
+ onHidden?: () => void;
28
+ onCancel?: () => void;
29
+ }
@@ -0,0 +1,3 @@
1
+ import type { ComponentBase } from '@motifx/core';
2
+ /** What a load panel covers: a component, an element, or the whole page (`null`). */
3
+ export type LoadPanelTarget = ComponentBase | HTMLElement | null;
@@ -0,0 +1,87 @@
1
+ import { Emitter, type Bind, type Component, type Event as MotifEvent, type IBaseProp } from "@motifx/core";
2
+ import { Control } from "../../core/control";
3
+ import { SlideTrack } from "../../parts/slide/slide-track";
4
+ import type { MultiViewProps } from "./multi-view-props";
5
+ import { View } from "./View";
6
+ import type { ViewSelectingEventArgs } from "./view-selecting-event-args";
7
+ import type { ViewSelectionChangedEventArgs } from "./view-selection-changed-event-args";
8
+ /**
9
+ * Pages side by side, one in sight: the JSX `View` children, or views added programmatically. A swipe brings the next or
10
+ * the previous one; programmatically `next()`, `previous()` and `goTo()` do, and a `Tabs`, a `Stepper` or buttons bound
11
+ * to `value` drive it. A view is built when first shown (`lazy`) and kept (`keepAlive`), as the panels of `Tabs`.
12
+ *
13
+ * @example
14
+ * <MultiView x-model={() => this.page} loop>
15
+ * <View title="Details">…</View>
16
+ * <View title="Review">…</View>
17
+ * </MultiView>
18
+ */
19
+ export declare class MultiView extends Control<HTMLDivElement, MultiViewProps> {
20
+ selecting: Emitter<ViewSelectingEventArgs>;
21
+ selectionChanged: Emitter<ViewSelectionChangedEventArgs>;
22
+ viewport: Component<HTMLDivElement>;
23
+ track: Component<HTMLDivElement>;
24
+ slide: SlideTrack;
25
+ views: View[];
26
+ previousIndex: number;
27
+ byUser: boolean;
28
+ ready: boolean;
29
+ constructor(props?: IBaseProp<MultiViewProps>);
30
+ get value(): string | number | null;
31
+ set value(value: Bind<string | number | null>);
32
+ get loop(): boolean;
33
+ set loop(value: Bind<boolean>);
34
+ get swipeEnabled(): boolean;
35
+ set swipeEnabled(value: Bind<boolean>);
36
+ get animated(): boolean;
37
+ set animated(value: Bind<boolean>);
38
+ get lazy(): boolean;
39
+ set lazy(value: Bind<boolean>);
40
+ get keepAlive(): boolean;
41
+ set keepAlive(value: Bind<boolean>);
42
+ get label(): string;
43
+ set label(value: Bind<string>);
44
+ /** The view in sight is about to change (`from`, `to`, `byUser`); `cancel` keeps the one there. */
45
+ get onSelecting(): MotifEvent<ViewSelectingEventArgs>;
46
+ /** The view in sight changed, by a swipe or programmatically (`byUser`). */
47
+ get onSelectionChanged(): MotifEvent<ViewSelectionChangedEventArgs>;
48
+ /** The index of the view in sight; -1 when there is none. */
49
+ get selectedIndex(): number;
50
+ /** The view in sight, `null` when there is none. */
51
+ get selectedView(): View | null;
52
+ /** How many views there are, hidden ones too. */
53
+ get count(): number;
54
+ /** Adds a view at the end. */
55
+ add(view: View): View;
56
+ /** Adds a view at `index`. */
57
+ insert(index: number, view: View): View;
58
+ /** Removes a view and disposes it; the sight moves to a neighbour. */
59
+ remove(view: View): boolean;
60
+ /** Goes to the next view that is shown and enabled; `false` at the end without `loop`, or when refused. */
61
+ next(): Promise<boolean>;
62
+ /** Goes to the previous view that is shown and enabled. */
63
+ previous(): Promise<boolean>;
64
+ /** Goes to a view, by index or key; `onSelecting` is asked first. */
65
+ goTo(view: number | string | View): Promise<boolean>;
66
+ /** Brings a view into sight, as `goTo` does. */
67
+ select(view: View): Promise<boolean>;
68
+ /** The index a value names: a key, else an index in range; -1 for none. */
69
+ indexOf(value: string | number | null | undefined): number;
70
+ /** The value that names the view at `index`: its key when it has one, else the index. */
71
+ valueAt(index: number): string | number;
72
+ onDisposing(): void;
73
+ /** @internal A view's title, key, visibility or enabled changed. */
74
+ viewChanged(): void;
75
+ /** @internal A view was disposed on its own. */
76
+ viewGone(view: View): void;
77
+ lane(): View[];
78
+ laneIndex(index: number): number;
79
+ place(view: View, index: number): void;
80
+ forget(view: View): void;
81
+ renderName(): void;
82
+ drawStates(): void;
83
+ lazyOf(view: View): boolean;
84
+ keepAliveOf(view: View): boolean;
85
+ usable(from: number, direction: 1 | -1): number;
86
+ go(to: number, byUser: boolean, event?: Event): Promise<boolean>;
87
+ }
@@ -0,0 +1,41 @@
1
+ import { type Bind, type IBaseProp } from "@motifx/core";
2
+ import { Control } from "../../core/control";
3
+ import { PanelContent } from "../tabs/PanelContent";
4
+ import type { MultiView } from "./MultiView";
5
+ import type { ViewProps } from "./view-props";
6
+ /**
7
+ * One page of a `MultiView`: the JSX children are its content, built when it is first in sight (see `lazy`), and
8
+ * what `content` makes besides them.
9
+ *
10
+ * @example
11
+ * <MultiView x-model={() => this.page}>
12
+ * <View title="Details"><TextBox label="Name" /></View>
13
+ * <View title="Review" content={() => new ReviewView()} />
14
+ * </MultiView>
15
+ */
16
+ export declare class View extends Control<HTMLDivElement, ViewProps> {
17
+ content: PanelContent;
18
+ owner: MultiView | null;
19
+ constructor(props?: IBaseProp<ViewProps>);
20
+ /** The `key` prop (also when written as the JSX `key`), `''` without one. */
21
+ get key(): string;
22
+ set key(value: Bind<string>);
23
+ get title(): string;
24
+ set title(value: Bind<string>);
25
+ /** This view's own setting; `undefined` follows the multi-view. */
26
+ get lazy(): boolean | undefined;
27
+ set lazy(value: Bind<boolean | undefined>);
28
+ get keepAlive(): boolean | undefined;
29
+ set keepAlive(value: Bind<boolean | undefined>);
30
+ /** Whether it is the view in sight. */
31
+ get isSelected(): boolean;
32
+ /** Whether its content has been built (see `lazy`). */
33
+ get contentBuilt(): boolean;
34
+ /** Brings the view into sight; `false` when it is hidden, disabled or not in a `MultiView`. */
35
+ select(): Promise<boolean>;
36
+ /** @internal In sight or not; the multi-view decides. */
37
+ reveal(on: boolean, keepAlive: boolean): void;
38
+ /** @internal Builds the content now. */
39
+ buildContent(): void;
40
+ protected applyProperty(name: string, value: unknown): void;
41
+ }
@@ -0,0 +1,6 @@
1
+ export { MultiView } from './MultiView';
2
+ export { View } from './View';
3
+ export type { MultiViewProps } from './multi-view-props';
4
+ export type { ViewProps } from './view-props';
5
+ export type { ViewSelectingEventArgs } from './view-selecting-event-args';
6
+ export type { ViewSelectionChangedEventArgs } from './view-selection-changed-event-args';
@@ -0,0 +1,24 @@
1
+ import type { Bind } from '@motifx/core';
2
+ import type { ControlProps } from '../../core/control';
3
+ import type { ViewSelectingEventArgs } from './view-selecting-event-args';
4
+ import type { ViewSelectionChangedEventArgs } from './view-selection-changed-event-args';
5
+ /** Props of `MultiView`. Each one is also a settable property; a function is followed. */
6
+ export interface MultiViewProps extends ControlProps {
7
+ /** The view in sight: its `key`, else its index. `x-model` binds it two-way. Default `0`. */
8
+ value?: Bind<string | number | null>;
9
+ /** After the last view comes the first. Default `false`. */
10
+ loop?: Bind<boolean>;
11
+ /** A finger or a pointer drags the views. Default `true`. */
12
+ swipeEnabled?: Bind<boolean>;
13
+ /** The views slide into sight. `false` shows the next one at once. Default `true`. */
14
+ animated?: Bind<boolean>;
15
+ /** A view is built when first shown, then kept (a view's own `lazy` wins). Default `true`. */
16
+ lazy?: Bind<boolean>;
17
+ /** `false`: content made by a view's `content` is disposed while out of sight (a view's own `keepAlive` wins). Default `true`. */
18
+ keepAlive?: Bind<boolean>;
19
+ /** What screen readers call it. Default: the kit's "Pages". */
20
+ label?: Bind<string>;
21
+ /** The view in sight is about to change; cancelable. */
22
+ onSelecting?: (e: ViewSelectingEventArgs) => void;
23
+ onSelectionChanged?: (e: ViewSelectionChangedEventArgs) => void;
24
+ }
@@ -0,0 +1,15 @@
1
+ import type { Bind, ComponentBase } from '@motifx/core';
2
+ import type { ControlProps } from '../../core/control';
3
+ /** Props of `View`, one page of a `MultiView`. Each one is also a settable property; a function is followed. */
4
+ export interface ViewProps extends ControlProps {
5
+ /** Names the view in the multi-view's `value`; without one its index does. The JSX `key` is read too. */
6
+ key?: Bind<string>;
7
+ /** What screen readers call the page. Default: "Page 2 of 3" in the kit language. */
8
+ title?: Bind<string>;
9
+ /** Content made when the view is first shown, instead of (or besides) the JSX children. */
10
+ content?: () => ComponentBase | readonly ComponentBase[];
11
+ /** This view's own setting; `undefined` follows the multi-view. */
12
+ lazy?: Bind<boolean | undefined>;
13
+ /** This view's own setting; `undefined` follows the multi-view. */
14
+ keepAlive?: Bind<boolean | undefined>;
15
+ }
@@ -0,0 +1,15 @@
1
+ import type { EventArgs } from '@motifx/core';
2
+ import type { MultiView } from './MultiView';
3
+ import type { View } from './View';
4
+ /** The view in sight is about to change. `cancel = true` keeps the one there. */
5
+ export interface ViewSelectingEventArgs extends EventArgs {
6
+ from: number;
7
+ to: number;
8
+ /** `null` when there was none. */
9
+ fromView: View | null;
10
+ toView: View;
11
+ /** By a swipe, else programmatically. */
12
+ byUser: boolean;
13
+ source: MultiView;
14
+ event?: Event;
15
+ }
@@ -0,0 +1,12 @@
1
+ import type { MultiView } from './MultiView';
2
+ import type { View } from './View';
3
+ /** The view in sight changed. */
4
+ export interface ViewSelectionChangedEventArgs {
5
+ index: number;
6
+ /** `null` when there is none. */
7
+ view: View | null;
8
+ previous: number;
9
+ /** By a swipe, else programmatically. */
10
+ byUser: boolean;
11
+ source: MultiView;
12
+ }
@@ -21,7 +21,7 @@ export interface NumberBoxProps extends FieldProps<number | null> {
21
21
  /** The locale of the format and of what is typed. Default the page's `lang`. */
22
22
  locale?: Bind<string>;
23
23
  /**
24
- * Digits after the decimal point: every value is rounded to them (entered, given or set from code, written back
24
+ * Digits after the decimal point: every value is rounded to them (entered, given or set programmatically, written back
25
25
  * to `x-model`), and shown with exactly that many while the field is not edited. Default: as given.
26
26
  */
27
27
  decimals?: Bind<number | null>;