@motifx-community/ui 0.1.0-beta.0 → 0.1.0-beta.1
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.
Potentially problematic release.
This version of @motifx-community/ui might be problematic. Click here for more details.
- package/CHANGELOG.md +18 -0
- package/dist/components/dropdown/DropDown.d.ts +14 -0
- package/dist/components/dropdown/drop-down-props.d.ts +5 -0
- package/dist/components/scheduler/view/AgendaView.d.ts +1 -1
- package/dist/core/ui-strings.d.ts +2 -0
- package/dist/generated/tokens.d.ts +40 -0
- package/dist/index.js +133 -15
- package/dist/index.js.map +1 -1
- package/dist/locales/en.json +1 -0
- package/dist/locales/tr.json +1 -0
- package/dist/parts/data/DataItems.d.ts +5 -0
- package/dist/parts/data/KeyedItems.d.ts +2 -0
- package/dist/styles.css +87 -3
- package/dist/tokens/index.d.ts +40 -0
- package/dist/tokens/index.js +40 -0
- package/dist/tokens/index.js.map +1 -1
- package/docs/accordion.md +1 -1
- package/docs/actionsheet.md +1 -1
- package/docs/avatar.md +1 -1
- package/docs/badge.md +1 -1
- package/docs/bottomsheet.md +1 -1
- package/docs/breadcrumb.md +1 -1
- package/docs/button.md +1 -1
- package/docs/buttongroup.md +1 -1
- package/docs/calendar.md +1 -1
- package/docs/card.md +1 -1
- package/docs/checkbox.md +1 -1
- package/docs/chip.md +1 -1
- package/docs/colorbox.md +1 -1
- package/docs/combobox.md +1 -1
- package/docs/control.md +1 -1
- package/docs/datagrid-api.md +1 -1
- package/docs/datagrid-bands.md +1 -1
- package/docs/datagrid-drag-select.md +1 -1
- package/docs/datagrid-drag.md +1 -1
- package/docs/datagrid-editing.md +1 -1
- package/docs/datagrid-filtering.md +1 -1
- package/docs/datagrid-forms.md +1 -1
- package/docs/datagrid-grouping.md +1 -1
- package/docs/datagrid-layout.md +1 -1
- package/docs/datagrid-lookups.md +1 -1
- package/docs/datagrid-master-detail.md +1 -1
- package/docs/datagrid-scrolling.md +1 -1
- package/docs/datagrid-selection.md +1 -1
- package/docs/datagrid.md +1 -1
- package/docs/datebox.md +1 -1
- package/docs/drawer.md +1 -1
- package/docs/dropdown.md +11 -5
- package/docs/filterbuilder.md +1 -1
- package/docs/formlayout.md +1 -1
- package/docs/home.md +1 -1
- package/docs/keyboard.md +1 -1
- package/docs/layout.md +1 -1
- package/docs/listbox.md +1 -1
- package/docs/lookup.md +86 -2
- package/docs/menus.md +1 -1
- package/docs/numberbox.md +1 -1
- package/docs/pagination.md +1 -1
- package/docs/progress.md +1 -1
- package/docs/radiogroup.md +1 -1
- package/docs/rating.md +1 -1
- package/docs/scheduler-agenda.md +1 -1
- package/docs/scheduler-big-data.md +1 -1
- package/docs/scheduler-editing.md +1 -1
- package/docs/scheduler-form.md +1 -1
- package/docs/scheduler-icalendar.md +1 -1
- package/docs/scheduler-mobile.md +1 -1
- package/docs/scheduler-recurrence.md +1 -1
- package/docs/scheduler-resources.md +1 -1
- package/docs/scheduler-timeline.md +1 -1
- package/docs/scheduler.md +1 -1
- package/docs/showcase.md +1 -1
- package/docs/skeleton.md +1 -1
- package/docs/slider.md +1 -1
- package/docs/switch.md +1 -1
- package/docs/tabdocs-dock.md +1 -1
- package/docs/tabdocs-drag.md +1 -1
- package/docs/tabdocs-menus.md +1 -1
- package/docs/tabdocs-mobile.md +1 -1
- package/docs/tabdocs-tabs.md +1 -1
- package/docs/tabdocs-windows.md +1 -1
- package/docs/tabdocs-workspace.md +1 -1
- package/docs/tabdocs.md +1 -1
- package/docs/tabs.md +1 -1
- package/docs/tagbox.md +1 -1
- package/docs/textarea.md +1 -1
- package/docs/textbox.md +1 -1
- package/docs/toast.md +1 -1
- package/docs/tokens.md +9 -1
- package/docs/toolbar.md +1 -1
- package/docs/tooltip.md +1 -1
- package/docs/treeview.md +1 -1
- package/docs/window.md +1 -1
- package/llms-full.txt +181 -83
- package/llms.txt +1 -1
- package/package.json +2 -2
package/llms-full.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @motifx-community/ui
|
|
2
2
|
|
|
3
|
-
> UI components for MotifJS (@motifx/core) on the MotifJS design system. Version 0.1.0-beta.
|
|
3
|
+
> UI components for MotifJS (@motifx/core) on the MotifJS design system. Version 0.1.0-beta.1: a preview, its API may still change before 1.0.
|
|
4
4
|
|
|
5
5
|
Built on MotifJS (`@motifx/core`): a component is an object, made in JSX or with `new`, whose every prop takes a value or a function (`Bind<T>`); `x-model` binds a value two-way. The look is the design system’s (`@motifx-community/design-system`): five design languages (`data-identity`), light and dark themes, density.
|
|
6
6
|
|
|
@@ -240,7 +240,7 @@ tokens, with examples.
|
|
|
240
240
|
|
|
241
241
|
# @motifx-community/ui
|
|
242
242
|
|
|
243
|
-
> Get started · @motifx-community/ui 0.1.0-beta.
|
|
243
|
+
> Get started · @motifx-community/ui 0.1.0-beta.1
|
|
244
244
|
|
|
245
245
|
Components for MotifJS that work the way desktop UI does — created when needed, shown anywhere, closed and disposed like windows — drawn from the MotifJS design system's tokens.
|
|
246
246
|
|
|
@@ -298,7 +298,7 @@ The look comes from `@motifx-community/design-system`: its tokens, three themes,
|
|
|
298
298
|
|
|
299
299
|
# Showcase: an order screen
|
|
300
300
|
|
|
301
|
-
> Get started · @motifx-community/ui 0.1.0-beta.
|
|
301
|
+
> Get started · @motifx-community/ui 0.1.0-beta.1
|
|
302
302
|
|
|
303
303
|
An order screen built with the kit, the way a MotifJS app is built: the state and the operations live in a model (`OrderModel`), the page binds to it. The customer list is a data source of 5,000 rows that answers like a server.
|
|
304
304
|
|
|
@@ -307,7 +307,7 @@ An order screen built with the kit, the way a MotifJS app is built: the state an
|
|
|
307
307
|
|
|
308
308
|
# Design tokens
|
|
309
309
|
|
|
310
|
-
> Get started · @motifx-community/ui 0.1.0-beta.
|
|
310
|
+
> Get started · @motifx-community/ui 0.1.0-beta.1
|
|
311
311
|
|
|
312
312
|
Five layers. The first four — primitives, the design language's own scales, semantic tokens per theme, density — come from `@motifx-community/design-system` and are listed here for reference. The fifth, the component tokens, is this kit's own: a knob per component, each referencing a design-system token, written in `@layer mx.components`. Every design language gives every one of them its own value.
|
|
313
313
|
|
|
@@ -1586,11 +1586,19 @@ Source: `tokens/schema/*.json` (names and types) and `tokens/languages/<language
|
|
|
1586
1586
|
| `drop-down.search.variant` | `--mx-drop-down-search-variant` | `` | `outline` |
|
|
1587
1587
|
| `drop-down.search.size` | `--mx-drop-down-search-size` | `` | `sm` |
|
|
1588
1588
|
| `drop-down.value.placeholder.color` | `--mx-drop-down-value-placeholder-color` | `color.fg.secondary` | `#5e5c55` |
|
|
1589
|
+
| `drop-down.value.missing.color` | `--mx-drop-down-value-missing-color` | `color.fg.secondary` | `#5e5c55` |
|
|
1590
|
+
| `drop-down.value.missing.text-decoration` | `--mx-drop-down-value-missing-text-decoration` | `` | `underline` |
|
|
1589
1591
|
| `drop-down.chevron.size` | `--mx-drop-down-chevron-size` | `icon.size.sm` | `0.75rem` |
|
|
1590
1592
|
| `drop-down.chevron.color` | `--mx-drop-down-chevron-color` | `color.fg.secondary` | `#5e5c55` |
|
|
1591
1593
|
| `drop-down.chevron.icon` | `--mx-drop-down-chevron-icon` | `` | `var(--mx-icon-chevron-down)` |
|
|
1592
1594
|
| `drop-down.chevron.open.rotate` | `--mx-drop-down-chevron-open-rotate` | `` | `0.5turn` |
|
|
1593
1595
|
| `drop-down.chevron.disabled.color` | `--mx-drop-down-chevron-disabled-color` | `color.fg.disabled` | `#a2a098` |
|
|
1596
|
+
| `drop-down.spinner.size` | `--mx-drop-down-spinner-size` | `icon.size.sm` | `0.75rem` |
|
|
1597
|
+
| `drop-down.spinner.border-width` | `--mx-drop-down-spinner-border-width` | `border.width.2` | `2px` |
|
|
1598
|
+
| `drop-down.spinner.border-end-color` | `--mx-drop-down-spinner-border-end-color` | `` | `rgb(0 0 0 / 0)` |
|
|
1599
|
+
| `drop-down.spinner.radius` | `--mx-drop-down-spinner-radius` | `radius.full` | `9999px` |
|
|
1600
|
+
| `drop-down.spinner.color` | `--mx-drop-down-spinner-color` | `color.fg.secondary` | `#5e5c55` |
|
|
1601
|
+
| `drop-down.spinner-shape.display` | `--mx-drop-down-spinner-shape-display` | `` | `initial` |
|
|
1594
1602
|
| `field.width` | `--mx-field-width` | `` | `16rem` |
|
|
1595
1603
|
| `field.variant` | `--mx-field-variant` | `` | `outline` |
|
|
1596
1604
|
| `field.label-mode` | `--mx-field-label-mode` | `` | `top` |
|
|
@@ -4214,7 +4222,7 @@ cssVar('color.accent.solid'); // 'var(--mx-color-accent-solid)' — a design-sy
|
|
|
4214
4222
|
|
|
4215
4223
|
# Control
|
|
4216
4224
|
|
|
4217
|
-
> Foundations · @motifx-community/ui 0.1.0-beta.
|
|
4225
|
+
> Foundations · @motifx-community/ui 0.1.0-beta.1
|
|
4218
4226
|
|
|
4219
4227
|
The base of every control in the package. It gives each one the same `text`, `enabled`, `visible` and `tabStop`, and the same focus methods, whether the control is written in JSX and bound to state or created with `new` and changed from code.
|
|
4220
4228
|
|
|
@@ -4450,7 +4458,7 @@ The base adds no listeners per control and pays only for what is used.
|
|
|
4450
4458
|
|
|
4451
4459
|
# Keyboard and focus
|
|
4452
4460
|
|
|
4453
|
-
> Foundations · @motifx-community/ui 0.1.0-beta.
|
|
4461
|
+
> Foundations · @motifx-community/ui 0.1.0-beta.1
|
|
4454
4462
|
|
|
4455
4463
|
The rules every control follows: Tab order, the active control of a container, focus that never falls to `<body>`, `&File` access keys and app-wide shortcuts.
|
|
4456
4464
|
|
|
@@ -4642,7 +4650,7 @@ Controls: see `Control` for `tabStop`, `tabIndex`, `focus()`, `onAccessKey()` an
|
|
|
4642
4650
|
|
|
4643
4651
|
# Button
|
|
4644
4652
|
|
|
4645
|
-
> Buttons · @motifx-community/ui 0.1.0-beta.
|
|
4653
|
+
> Buttons · @motifx-community/ui 0.1.0-beta.1
|
|
4646
4654
|
|
|
4647
4655
|
A native `<button>` drawn from the design tokens: three variants, three tones, three sizes, an icon, an `&` access key. It can be a toggle, show that work is running, and open a menu or any content — from the whole button, or with `split` from an arrow next to it while the button keeps its own action.
|
|
4648
4656
|
|
|
@@ -5062,7 +5070,7 @@ The menu and the surface it opens on are shared parts, `MenuList` and `Popup`, e
|
|
|
5062
5070
|
|
|
5063
5071
|
# ButtonGroup
|
|
5064
5072
|
|
|
5065
|
-
> Buttons · @motifx-community/ui 0.1.0-beta.
|
|
5073
|
+
> Buttons · @motifx-community/ui 0.1.0-beta.1
|
|
5066
5074
|
|
|
5067
5075
|
Buttons that belong together: a segmented choice of one or several, or a row of actions. The buttons are the kit’s own, touching by default.
|
|
5068
5076
|
|
|
@@ -5207,7 +5215,7 @@ export default function Looks() {
|
|
|
5207
5215
|
|
|
5208
5216
|
# Toolbar
|
|
5209
5217
|
|
|
5210
|
-
> Buttons · @motifx-community/ui 0.1.0-beta.
|
|
5218
|
+
> Buttons · @motifx-community/ui 0.1.0-beta.1
|
|
5211
5219
|
|
|
5212
5220
|
A bar of commands: buttons, toggle buttons, menus and fields in groups between separators. It is one Tab stop and the arrow keys move inside it; items that do not fit move into a “more” menu at the end. Items come as data, as JSX children, or both.
|
|
5213
5221
|
|
|
@@ -5673,7 +5681,7 @@ export default function SizeAndOrientation() {
|
|
|
5673
5681
|
|
|
5674
5682
|
# MenuBar and ContextMenu
|
|
5675
5683
|
|
|
5676
|
-
> Buttons · @motifx-community/ui 0.1.0-beta.
|
|
5684
|
+
> Buttons · @motifx-community/ui 0.1.0-beta.1
|
|
5677
5685
|
|
|
5678
5686
|
A menu bar of an app (File, Edit, View) and the menu that opens on a right-click. Both show the same menu items: submenus, check and radio items, shortcuts, access keys.
|
|
5679
5687
|
|
|
@@ -5989,7 +5997,7 @@ Menus write no text of their own: every label, shortcut and name comes from your
|
|
|
5989
5997
|
|
|
5990
5998
|
# TextBox
|
|
5991
5999
|
|
|
5992
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
6000
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
5993
6001
|
|
|
5994
6002
|
A one-line text field with its label, help text and error: placeholder, prefix and suffix, buttons in the box, a clear button, a password that can be shown, a character counter, an input mask and validation — alone, in a group, or every field in a panel.
|
|
5995
6003
|
|
|
@@ -6442,7 +6450,7 @@ The frame (`Field`), the mask (`InputMask`, which works on any `<input>`) and va
|
|
|
6442
6450
|
|
|
6443
6451
|
# TextArea
|
|
6444
6452
|
|
|
6445
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
6453
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
6446
6454
|
|
|
6447
6455
|
A text field of several lines: a box that grows with the text or that the user drags bigger, a character counter, a clear button, Ctrl+Enter to send, and the label, help text and validation every field has.
|
|
6448
6456
|
|
|
@@ -6751,7 +6759,7 @@ TextArea uses the field tokens (`field.*`, see TextBox) and has none of its own:
|
|
|
6751
6759
|
|
|
6752
6760
|
# NumberBox
|
|
6753
6761
|
|
|
6754
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
6762
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
6755
6763
|
|
|
6756
6764
|
A number field: arrow keys, PageUp / PageDown and spin buttons that repeat while held, bounds, a step without float noise, a format for display (currency, percent) and typing in the locale’s own way.
|
|
6757
6765
|
|
|
@@ -7064,7 +7072,7 @@ export default function Localization() {
|
|
|
7064
7072
|
|
|
7065
7073
|
# DateBox
|
|
7066
7074
|
|
|
7067
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
7075
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
7068
7076
|
|
|
7069
7077
|
A date, a time or both. It is typed in the order of the locale through a mask, or picked from a calendar and a list of times; `min`, `max` and `disabledDates` limit both ways.
|
|
7070
7078
|
|
|
@@ -7269,7 +7277,7 @@ The date helpers are shared: `datePatternOf(locale, kind)`, `dateToDigits`, `dig
|
|
|
7269
7277
|
|
|
7270
7278
|
# ColorBox and ColorPicker
|
|
7271
7279
|
|
|
7272
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
7280
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
7273
7281
|
|
|
7274
7282
|
A colour as a field, with a picker in a popup; or the picker on its own. The picker has an area of saturation and brightness, a hue strip, an opacity strip, inputs for the channels and preset colours.
|
|
7275
7283
|
|
|
@@ -7426,7 +7434,7 @@ export default function Buttons() {
|
|
|
7426
7434
|
|
|
7427
7435
|
# Calendar
|
|
7428
7436
|
|
|
7429
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
7437
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
7430
7438
|
|
|
7431
7439
|
A month of days to pick a date from, with a year and a decade view to get far quickly. It is the picker of DateBox, and it works on its own.
|
|
7432
7440
|
|
|
@@ -7566,7 +7574,7 @@ export default function Views() {
|
|
|
7566
7574
|
|
|
7567
7575
|
# Slider
|
|
7568
7576
|
|
|
7569
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
7577
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
7570
7578
|
|
|
7571
7579
|
A value picked on a track by dragging a thumb or with the keys: one number, or a range with two thumbs. Steps, marks with labels, a value bubble, a vertical form and number formatting, with the label, help line and validation every field has.
|
|
7572
7580
|
|
|
@@ -7931,7 +7939,7 @@ export default function Localization() {
|
|
|
7931
7939
|
|
|
7932
7940
|
# Rating
|
|
7933
7941
|
|
|
7934
|
-
> Editors · @motifx-community/ui 0.1.0-beta.
|
|
7942
|
+
> Editors · @motifx-community/ui 0.1.0-beta.1
|
|
7935
7943
|
|
|
7936
7944
|
A row of stars to give a score or to show one, whole or by halves. It is a field: label, help text, rules and `x-model` work as in every field.
|
|
7937
7945
|
|
|
@@ -8059,7 +8067,7 @@ export default function Icons() {
|
|
|
8059
8067
|
|
|
8060
8068
|
# CheckBox
|
|
8061
8069
|
|
|
8062
|
-
> Choice · @motifx-community/ui 0.1.0-beta.
|
|
8070
|
+
> Choice · @motifx-community/ui 0.1.0-beta.1
|
|
8063
8071
|
|
|
8064
8072
|
A checkbox with its caption: checked, unchecked or indeterminate, three states on request, read-only, required and checked with its group. A native checkbox underneath, drawn from the design tokens.
|
|
8065
8073
|
|
|
@@ -8399,7 +8407,7 @@ export default function Localization() {
|
|
|
8399
8407
|
|
|
8400
8408
|
# Switch
|
|
8401
8409
|
|
|
8402
|
-
> Choice · @motifx-community/ui 0.1.0-beta.
|
|
8410
|
+
> Choice · @motifx-community/ui 0.1.0-beta.1
|
|
8403
8411
|
|
|
8404
8412
|
An on / off switch with its caption: a track with a thumb that slides, an optional on / off text inside or next to it, read-only and required. A native checkbox with the switch role underneath.
|
|
8405
8413
|
|
|
@@ -8645,7 +8653,7 @@ The switch writes no text of its own: `onText` and `offText` are yours, and can
|
|
|
8645
8653
|
|
|
8646
8654
|
# RadioGroup
|
|
8647
8655
|
|
|
8648
|
-
> Choice · @motifx-community/ui 0.1.0-beta.
|
|
8656
|
+
> Choice · @motifx-community/ui 0.1.0-beta.1
|
|
8649
8657
|
|
|
8650
8658
|
A set of options of which one is chosen: from plain values, from your own objects or from a live list; one under the other, side by side or in columns; options that are disabled, hidden or carry a help line; one Tab stop and the arrow keys.
|
|
8651
8659
|
|
|
@@ -8973,7 +8981,7 @@ The group writes no text of its own: the option texts are yours (functions of yo
|
|
|
8973
8981
|
|
|
8974
8982
|
# DropDown
|
|
8975
8983
|
|
|
8976
|
-
> Choice · @motifx-community/ui 0.1.0-beta.
|
|
8984
|
+
> Choice · @motifx-community/ui 0.1.0-beta.1
|
|
8977
8985
|
|
|
8978
8986
|
Picks one item from a list. The field shows the chosen item; the list opens below it with the keyboard or a press, can be searched, grouped and drawn your way, and stays fast with thousands of items.
|
|
8979
8987
|
|
|
@@ -9121,10 +9129,11 @@ export const cities = ['Ankara', 'Antalya', 'Bursa', 'İstanbul', 'İzmir', 'Kon
|
|
|
9121
9129
|
| `Groups` | Each group is `role="group"` named by its header. |
|
|
9122
9130
|
| `Long lists` | Only the rows in view are drawn; each option says where it is with `aria-posinset` and `aria-setsize`. |
|
|
9123
9131
|
| `Search` | The search box controls the list and names the highlighted option the same way. |
|
|
9132
|
+
| `Waiting` | While the value's item is asked for, the combobox is `aria-busy` and its text says "Loading…" to screen readers; a key the source does not have carries the reason as its title. |
|
|
9124
9133
|
|
|
9125
9134
|
## Localization
|
|
9126
9135
|
|
|
9127
|
-
The search box, the clear button
|
|
9136
|
+
The search box, the clear button, the empty list text, the wait (`loading`) and the reason a key is marked (`notInList`, `loadFailed`) come from `uiLocale.strings`.
|
|
9128
9137
|
|
|
9129
9138
|
```tsx
|
|
9130
9139
|
import { reactive } from '@motifx/core';
|
|
@@ -9150,8 +9159,9 @@ export default function Localization() {
|
|
|
9150
9159
|
|
|
9151
9160
|
| Hook | What it is |
|
|
9152
9161
|
| --- | --- |
|
|
9153
|
-
| `.mx-drop-down` | Added to the field. `data-open` while the list is open; the field attributes of TextBox. |
|
|
9154
|
-
| `.mx-drop-down__display, .mx-drop-down__text, .mx-drop-down__chevron` | The combobox, the chosen text (`data-placeholder` when empty), the arrow. |
|
|
9162
|
+
| `.mx-drop-down` | Added to the field. `data-open` while the list is open, `data-loading` while the value's item is asked for; the field attributes of TextBox. |
|
|
9163
|
+
| `.mx-drop-down__display, .mx-drop-down__text, .mx-drop-down__chevron` | The combobox, the chosen text (`data-placeholder` when empty, `data-missing` for a key the source does not have), the arrow. |
|
|
9164
|
+
| `.mx-drop-down__spinner` | The spinner in the arrow's place while the value's item is asked for. |
|
|
9155
9165
|
| `.mx-drop-down__popup, .mx-drop-down__search` | The popup and its search box. |
|
|
9156
9166
|
| `.mx-list, .mx-list__item, .mx-list__header` | The list (shared), its options (`data-active`, `data-selected`) and group headers. |
|
|
9157
9167
|
|
|
@@ -9160,6 +9170,7 @@ export default function Localization() {
|
|
|
9160
9170
|
| Token | What it sets |
|
|
9161
9171
|
| --- | --- |
|
|
9162
9172
|
| `field.*` | The field, as for TextBox. |
|
|
9173
|
+
| `drop-down.value, drop-down.chevron, drop-down.spinner, drop-down.spinner-shape` | Units: the chosen text (`placeholder`, `missing`, `disabled`), the arrow (`open`, `disabled`), the ring that turns while the value's item is asked for and the shape a language may draw instead (with the spinner's shapes and timing). |
|
|
9163
9174
|
| `list.item-height, list.item` | The options: their row height, and the item unit in each state (`hover`, `pressed`, `active`, `selected`, `selected-hover`, `selected-pressed`, `disabled`, `next`, `select-all`). |
|
|
9164
9175
|
| `list.indicator, list.check, list.mark, list.icon, list.text` | Units: the bar on the chosen option (`multiple`), the check of a list of several choices and its mark, an icon, the text. |
|
|
9165
9176
|
| `list.container, list.group, list.header, list.select-all-divider, list.empty` | Units: the list (its space and most height), a group, group headers, the line under "Select all", the empty text. |
|
|
@@ -9172,6 +9183,9 @@ export default function Localization() {
|
|
|
9172
9183
|
| --- | --- | --- | --- |
|
|
9173
9184
|
| `value` | `Bind<V \| null>` | `null` | The value of the chosen item. `x-model` binds it two-way. |
|
|
9174
9185
|
| `items` | `Bind<readonly T[]>` | `[]` | Plain values, `DropDownItem`s (`{ value, text, icon?, group?, enabled? }`) or objects of your own. A function is followed; items changed in place show after `refresh()`. |
|
|
9186
|
+
| `dataSource` | `Bind<DataSource<T> \| null>` | `null` | Items from the data layer, loaded where the list is scrolled to and searched on its `searchFields`. Wins over `items`. A value on no loaded page is asked for by key; meanwhile the field waits (see Lookup). |
|
|
9187
|
+
| `valueText` | `Bind<string>` | `''` | The value's text while its item is asked for from `dataSource`, shown at once instead of waiting (a record that carries the name: `valueText={() => order.customerName}`). |
|
|
9188
|
+
| `searchDelay` | `Bind<number>` | `250` with a data source, else `0` | Milliseconds between the last key in the search box and the search. |
|
|
9175
9189
|
| `textField / valueField` | `Bind<ItemField<T>>` | `'text'` / `'value'` | A property name or a function `(item) => …`. Without `valueField` an object with a `value` gives that, anything else is its own value. |
|
|
9176
9190
|
| `iconField, groupField, enabledField` | `Bind<ItemField<T>>` | — | An icon per option; options with the same group follow each other under its name; options that cannot be chosen. |
|
|
9177
9191
|
| `placeholder` | `Bind<string>` | `''` | Shown while nothing is chosen. |
|
|
@@ -9197,7 +9211,7 @@ A prop whose value is a function of its own (`textField`, a template) takes the
|
|
|
9197
9211
|
|
|
9198
9212
|
| Method | Returns | Description |
|
|
9199
9213
|
| --- | --- | --- |
|
|
9200
|
-
| `open(search?)` | `boolean` | Opens the list; `search` starts the search box with that text. `false` when disabled
|
|
9214
|
+
| `open(search?)` | `boolean` | Opens the list; `search` starts the search box with that text. `false` when disabled, read-only, or while the value's item is asked for. |
|
|
9201
9215
|
| `close()` | `void` | Closes it; focus goes back to the field. |
|
|
9202
9216
|
| `clear()` | `void` | Empties the value. |
|
|
9203
9217
|
| `refresh()` | `void` | Your items may be plain or reactive; the drop-down reads them as they are. After changing them in place, call `refresh()`. The field's text and the open list follow. |
|
|
@@ -9294,7 +9308,7 @@ export default function Validation() {
|
|
|
9294
9308
|
|
|
9295
9309
|
# ComboBox and Autocomplete
|
|
9296
9310
|
|
|
9297
|
-
> Choice · @motifx-community/ui 0.1.0-beta.
|
|
9311
|
+
> Choice · @motifx-community/ui 0.1.0-beta.1
|
|
9298
9312
|
|
|
9299
9313
|
A text field with a list that follows what is typed. The items come from memory or from a data source of the data layer, searched on the server. `Autocomplete` is the free-text kind: the value is the text.
|
|
9300
9314
|
|
|
@@ -9512,7 +9526,7 @@ export default function CustomValues() {
|
|
|
9512
9526
|
|
|
9513
9527
|
# Lookup
|
|
9514
9528
|
|
|
9515
|
-
> Choice · @motifx-community/ui 0.1.0-beta.
|
|
9529
|
+
> Choice · @motifx-community/ui 0.1.0-beta.1
|
|
9516
9530
|
|
|
9517
9531
|
Picks one row of a table-like list, typically from a data source searched on the server: a customer by its company, contact and city. The field shows the chosen row's text; everything else works as in DropDown.
|
|
9518
9532
|
|
|
@@ -9545,6 +9559,29 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
9545
9559
|
}
|
|
9546
9560
|
```
|
|
9547
9561
|
|
|
9562
|
+
## A value on no loaded page
|
|
9563
|
+
|
|
9564
|
+
A value whose row is not loaded is asked for by key, in one request with the keys other fields and grids over the same source need at that moment. Meanwhile the field waits: a spinner in the arrow's place, the list closed, never the key as its text. A record that carries the name too gives it as `valueText`, and the field shows it at once. A key the server does not have shows itself, muted and underlined, and its title says why; when the request failed, opening the list asks again.
|
|
9565
|
+
|
|
9566
|
+
```tsx
|
|
9567
|
+
import { data } from '@motifx-community/data';
|
|
9568
|
+
|
|
9569
|
+
/** Rows in memory that answer a little later, the way a server does; for the examples. */
|
|
9570
|
+
export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
9571
|
+
constructor(
|
|
9572
|
+
options: data.ArrayAdapterOptions<T>,
|
|
9573
|
+
private readonly delayMs = 300,
|
|
9574
|
+
) {
|
|
9575
|
+
super(options);
|
|
9576
|
+
}
|
|
9577
|
+
|
|
9578
|
+
override async load(options: data.LoadOptions = {}): Promise<data.LoadResult<T>> {
|
|
9579
|
+
await new Promise((done) => setTimeout(done, this.delayMs));
|
|
9580
|
+
return super.load(options);
|
|
9581
|
+
}
|
|
9582
|
+
}
|
|
9583
|
+
```
|
|
9584
|
+
|
|
9548
9585
|
## API reference
|
|
9549
9586
|
|
|
9550
9587
|
| Prop | Type | Default | Description |
|
|
@@ -9553,7 +9590,7 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
9553
9590
|
| `showColumnHeaders` | `Bind<boolean>` | `true` | The header above the rows. |
|
|
9554
9591
|
| `popupWidth` | `Bind<string>` | `lookup.popup-width` | The least width of the list. |
|
|
9555
9592
|
| `searchEnabled` | `Bind<boolean>` | `true` | A search box above the list (DropDown has it off by default). |
|
|
9556
|
-
| `everything of DropDown` | | | `items`, `dataSource`, `textField`, `valueField`, `searchDelay`, `clearButton`, validation, keyboard… |
|
|
9593
|
+
| `everything of DropDown` | | | `items`, `dataSource`, `valueText`, `textField`, `valueField`, `searchDelay`, `clearButton`, validation, keyboard… |
|
|
9557
9594
|
| `refresh()` | | | Your items and columns may be plain or reactive; the lookup reads them as they are. After changing them in place, call `refresh()`. |
|
|
9558
9595
|
|
|
9559
9596
|
## Example files
|
|
@@ -9639,12 +9676,73 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
9639
9676
|
}
|
|
9640
9677
|
```
|
|
9641
9678
|
|
|
9679
|
+
`ByKey.tsx`
|
|
9680
|
+
|
|
9681
|
+
```tsx
|
|
9682
|
+
import { reactive } from '@motifx/core';
|
|
9683
|
+
import { data } from '@motifx-community/data';
|
|
9684
|
+
import { Button, Lookup } from '@motifx-community/ui';
|
|
9685
|
+
import { SlowAdapter } from '../../../shared/slow-adapter';
|
|
9686
|
+
|
|
9687
|
+
interface Customer {
|
|
9688
|
+
id: number;
|
|
9689
|
+
company: string;
|
|
9690
|
+
city: string;
|
|
9691
|
+
}
|
|
9692
|
+
|
|
9693
|
+
const companyOf = (id: number) => `${['Alfreds', 'Bon app', 'Ernst', 'Hanari', 'Island', 'Lehmanns'][id % 6]} ${['Trading', 'Handel', 'Markt', 'Foods'][id % 4]} ${id}`;
|
|
9694
|
+
const rows: Customer[] = Array.from({ length: 2000 }, (_, i) => ({ id: i + 1, company: companyOf(i + 1), city: ['Berlin', 'Paris', 'İstanbul', 'Madrid'][i % 4] }));
|
|
9695
|
+
|
|
9696
|
+
/** Values on no loaded page of a server that answers after 1.2 s: one field waits for its row, one shows the name its record carries, one has a key the server does not have. */
|
|
9697
|
+
export default function ByKey() {
|
|
9698
|
+
const customers = new data.DataSource<Customer, number>({
|
|
9699
|
+
adapter: new SlowAdapter<Customer, number>({ data: rows, key: 'id' }, 1200),
|
|
9700
|
+
loadMode: 'blocks',
|
|
9701
|
+
pageSize: 50,
|
|
9702
|
+
searchFields: ['company', 'city'],
|
|
9703
|
+
});
|
|
9704
|
+
const columns = [
|
|
9705
|
+
{ field: 'company', caption: 'Company' },
|
|
9706
|
+
{ field: 'city', caption: 'City', width: '7rem' },
|
|
9707
|
+
];
|
|
9708
|
+
const waiting = reactive({ customer: 1500 as number | null });
|
|
9709
|
+
// A record as it came from the server: the customer's key and, beside it, the name.
|
|
9710
|
+
const order = reactive({ customer: 1500 as number | null, customerName: companyOf(1500) });
|
|
9711
|
+
|
|
9712
|
+
const another = () => {
|
|
9713
|
+
const id = 100 + Math.floor(Math.random() * 1900);
|
|
9714
|
+
waiting.customer = id;
|
|
9715
|
+
order.customer = id;
|
|
9716
|
+
order.customerName = companyOf(id);
|
|
9717
|
+
};
|
|
9718
|
+
|
|
9719
|
+
return (
|
|
9720
|
+
<>
|
|
9721
|
+
<Lookup class="lk-waits" label="Waits for its row" dataSource={customers} textField="company" valueField="id" columns={columns} x-model={() => waiting.customer} stretch />
|
|
9722
|
+
<Lookup
|
|
9723
|
+
class="lk-given"
|
|
9724
|
+
label="Shows the name it is given"
|
|
9725
|
+
dataSource={customers}
|
|
9726
|
+
textField="company"
|
|
9727
|
+
valueField="id"
|
|
9728
|
+
columns={columns}
|
|
9729
|
+
valueText={() => order.customerName}
|
|
9730
|
+
x-model={() => order.customer}
|
|
9731
|
+
stretch
|
|
9732
|
+
/>
|
|
9733
|
+
<Lookup class="lk-missing" label="A key the server does not have" dataSource={customers} textField="company" valueField="id" columns={columns} value={9999} stretch />
|
|
9734
|
+
<Button class="lk-another" text="Another customer" variant="outline" onclick={another} />
|
|
9735
|
+
</>
|
|
9736
|
+
);
|
|
9737
|
+
}
|
|
9738
|
+
```
|
|
9739
|
+
|
|
9642
9740
|
|
|
9643
9741
|
---
|
|
9644
9742
|
|
|
9645
9743
|
# ProgressBar and Spinner
|
|
9646
9744
|
|
|
9647
|
-
> Feedback · @motifx-community/ui 0.1.0-beta.
|
|
9745
|
+
> Feedback · @motifx-community/ui 0.1.0-beta.1
|
|
9648
9746
|
|
|
9649
9747
|
ProgressBar shows how far some work is, as a line or a circle, or that it runs when that is not known. Spinner says "busy, wait": a turning ring, alone or over a panel while it loads, shown only after a delay so quick work does not flash it.
|
|
9650
9748
|
|
|
@@ -10049,7 +10147,7 @@ export default function Localization() {
|
|
|
10049
10147
|
|
|
10050
10148
|
# Tooltip
|
|
10051
10149
|
|
|
10052
|
-
> Feedback · @motifx-community/ui 0.1.0-beta.
|
|
10150
|
+
> Feedback · @motifx-community/ui 0.1.0-beta.1
|
|
10053
10151
|
|
|
10054
10152
|
A short description shown next to an element: after the pointer rests on it, when it gets keyboard focus, or from code. It can be hovered, Escape hides it, and one is open at a time on the page.
|
|
10055
10153
|
|
|
@@ -10392,7 +10490,7 @@ export default function ManyElements() {
|
|
|
10392
10490
|
|
|
10393
10491
|
# Toast
|
|
10394
10492
|
|
|
10395
|
-
> Feedback · @motifx-community/ui 0.1.0-beta.
|
|
10493
|
+
> Feedback · @motifx-community/ui 0.1.0-beta.1
|
|
10396
10494
|
|
|
10397
10495
|
Short notifications at an edge of the window: four tones, an action such as Undo, a time of their own or none, six positions and a limit on how many show at once. Called from code; a region of your own can sit in JSX.
|
|
10398
10496
|
|
|
@@ -10709,7 +10807,7 @@ export default function Localization() {
|
|
|
10709
10807
|
|
|
10710
10808
|
# Badge
|
|
10711
10809
|
|
|
10712
|
-
> Display · @motifx-community/ui 0.1.0-beta.
|
|
10810
|
+
> Display · @motifx-community/ui 0.1.0-beta.1
|
|
10713
10811
|
|
|
10714
10812
|
A short text, a count or a dot: in a line of text, or on a corner of a button, an avatar or an icon. A count over its maximum shows “99+”, a count of zero hides.
|
|
10715
10813
|
|
|
@@ -10906,7 +11004,7 @@ A count is written in the kit language (`uiLocale`), again when it changes: “1
|
|
|
10906
11004
|
|
|
10907
11005
|
# Avatar and AvatarGroup
|
|
10908
11006
|
|
|
10909
|
-
> Display · @motifx-community/ui 0.1.0-beta.
|
|
11007
|
+
> Display · @motifx-community/ui 0.1.0-beta.1
|
|
10910
11008
|
|
|
10911
11009
|
Someone’s picture, or their initials, or a person icon, with their presence on its corner. A group stacks or spreads them and counts the ones it does not show.
|
|
10912
11010
|
|
|
@@ -11148,7 +11246,7 @@ Initials are written in the capitals of the kit language (`uiLocale`): “ilgin
|
|
|
11148
11246
|
|
|
11149
11247
|
# Chip and ChipGroup
|
|
11150
11248
|
|
|
11151
|
-
> Display · @motifx-community/ui 0.1.0-beta.
|
|
11249
|
+
> Display · @motifx-community/ui 0.1.0-beta.1
|
|
11152
11250
|
|
|
11153
11251
|
A short text with an icon or an avatar before it: a filter to turn on, a choice among a few, or something picked that can be removed. A group selects one or several and moves between them with the arrow keys.
|
|
11154
11252
|
|
|
@@ -11430,7 +11528,7 @@ The remove button’s name is the kit text `removeItem` (“Remove {text}”) an
|
|
|
11430
11528
|
|
|
11431
11529
|
# Card
|
|
11432
11530
|
|
|
11433
|
-
> Display · @motifx-community/ui 0.1.0-beta.
|
|
11531
|
+
> Display · @motifx-community/ui 0.1.0-beta.1
|
|
11434
11532
|
|
|
11435
11533
|
A surface holding one thing: a picture, a header with an avatar and titles, content and a row of actions. Parts with nothing in them are left out.
|
|
11436
11534
|
|
|
@@ -11688,7 +11786,7 @@ export default function Sizes() {
|
|
|
11688
11786
|
|
|
11689
11787
|
# Skeleton
|
|
11690
11788
|
|
|
11691
|
-
> Display · @motifx-community/ui 0.1.0-beta.
|
|
11789
|
+
> Display · @motifx-community/ui 0.1.0-beta.1
|
|
11692
11790
|
|
|
11693
11791
|
The shape of what is loading, so the page keeps its layout while data arrives. Given content, it shows the content in the same place once loading ends.
|
|
11694
11792
|
|
|
@@ -11823,7 +11921,7 @@ export default function Animations() {
|
|
|
11823
11921
|
|
|
11824
11922
|
# Tabs
|
|
11825
11923
|
|
|
11826
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
11924
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
11827
11925
|
|
|
11828
11926
|
Tabs show one panel at a time under a strip of tabs: from JSX or from code, closable, with icons and badges, scroll buttons when the tabs do not fit, four placements and panels built when they are first shown.
|
|
11829
11927
|
|
|
@@ -12283,7 +12381,7 @@ export default function Localization() {
|
|
|
12283
12381
|
|
|
12284
12382
|
# Breadcrumb
|
|
12285
12383
|
|
|
12286
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
12384
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
12287
12385
|
|
|
12288
12386
|
The way to the current page: each step a link or a button, the current page last. Steps that do not fit go into a menu after the first.
|
|
12289
12387
|
|
|
@@ -12412,7 +12510,7 @@ export default function Sizes() {
|
|
|
12412
12510
|
|
|
12413
12511
|
# Pagination
|
|
12414
12512
|
|
|
12415
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
12513
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
12416
12514
|
|
|
12417
12515
|
Moving through pages of items: the sizes to choose from, where the page stands, the steps and a button per page around the current one. It turns compact when it does not fit. It looks and works as the grid’s pager.
|
|
12418
12516
|
|
|
@@ -12531,7 +12629,7 @@ export default function Looks() {
|
|
|
12531
12629
|
|
|
12532
12630
|
# Accordion
|
|
12533
12631
|
|
|
12534
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
12632
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
12535
12633
|
|
|
12536
12634
|
An accordion opens and closes sections under their headers: one at a time or several, kept open, with icons, three looks and sections built when they are first opened.
|
|
12537
12635
|
|
|
@@ -12830,7 +12928,7 @@ The accordion writes no text of its own, so it has nothing in `uiLocale`.
|
|
|
12830
12928
|
|
|
12831
12929
|
# Window and dialog
|
|
12832
12930
|
|
|
12833
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
12931
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
12834
12932
|
|
|
12835
12933
|
A window or a dialog on a native `<dialog>`: one form, shown modeless or modal by whoever shows it. It has a title bar, moves, resizes, minimizes and maximizes; Enter and Escape press its buttons; forms open forms. `messageBox` and `confirm` cover the common questions.
|
|
12836
12934
|
|
|
@@ -13390,7 +13488,7 @@ export default function DefaultButtons() {
|
|
|
13390
13488
|
|
|
13391
13489
|
# BottomSheet
|
|
13392
13490
|
|
|
13393
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
13491
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
13394
13492
|
|
|
13395
13493
|
A panel that comes up from the bottom of the page or of a container and stops at a few heights: a peek, half, full, as tall as its content, or heights of your own. Dragged by its handle and its title, flicked, swiped down to close; modal or not, with the browser's back closing it on a phone.
|
|
13396
13494
|
|
|
@@ -13710,7 +13808,7 @@ Every prop is a property too, taking a value or a function. The shared parts (th
|
|
|
13710
13808
|
|
|
13711
13809
|
# Drawer
|
|
13712
13810
|
|
|
13713
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
13811
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
13714
13812
|
|
|
13715
13813
|
A panel that slides in from an edge of the page or of a container, over the content or pushing it aside. A finger swipes it in from the edge and back again; Escape, the scrim and the browser's back close it.
|
|
13716
13814
|
|
|
@@ -13943,7 +14041,7 @@ Its default name and the close button come from `uiLocale.strings` (`drawerLabel
|
|
|
13943
14041
|
|
|
13944
14042
|
# ActionSheet
|
|
13945
14043
|
|
|
13946
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
14044
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
13947
14045
|
|
|
13948
14046
|
A list of commands that comes up from the bottom, made of the kit's menu items and large enough for a finger, with a title, a message and a cancel button apart. A context menu opens its items here on a touch screen.
|
|
13949
14047
|
|
|
@@ -14156,7 +14254,7 @@ Cancel, the way back and its default name come from `uiLocale.strings` (`cancel`
|
|
|
14156
14254
|
|
|
14157
14255
|
# Layout
|
|
14158
14256
|
|
|
14159
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
14257
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
14160
14258
|
|
|
14161
14259
|
Containers that place controls: `Stack` (a row or a column), `Grid` (rows and columns), `Panel` (a plain box that can scroll), `GroupBox` (a titled frame), `DockPanel` (children stuck to its edges) and `SplitContainer` (two panes and a splitter). All of them are controls: they disable and hide what is inside, and lay out children added at any time.
|
|
14162
14260
|
|
|
@@ -14744,7 +14842,7 @@ Every container also has the shared properties of `Control`: `enabled` / `disabl
|
|
|
14744
14842
|
|
|
14745
14843
|
# FormLayout
|
|
14746
14844
|
|
|
14747
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
14845
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.1
|
|
14748
14846
|
|
|
14749
14847
|
Lays out the fields of a data object on a grid. Each field gets an editor — by name, or by the type of its value — bound to the object both ways; groups, spans and buttons arrange them; sending the form checks every field first.
|
|
14750
14848
|
|
|
@@ -14866,7 +14964,7 @@ FormLayout.editors.set('color', (props) => new ColorPicker(props));
|
|
|
14866
14964
|
|
|
14867
14965
|
# TreeView
|
|
14868
14966
|
|
|
14869
|
-
> Data · @motifx-community/ui 0.1.0-beta.
|
|
14967
|
+
> Data · @motifx-community/ui 0.1.0-beta.1
|
|
14870
14968
|
|
|
14871
14969
|
A tree view shows items in a hierarchy. Rows open and close, are selected one or many at a time, can carry check boxes that add up to their parents, can be searched, and can load their children when they are first opened. Long trees draw only the rows in view.
|
|
14872
14970
|
|
|
@@ -15633,7 +15731,7 @@ export default function SizesAndLines() {
|
|
|
15633
15731
|
|
|
15634
15732
|
# ListBox
|
|
15635
15733
|
|
|
15636
|
-
> Data · @motifx-community/ui 0.1.0-beta.
|
|
15734
|
+
> Data · @motifx-community/ui 0.1.0-beta.1
|
|
15637
15735
|
|
|
15638
15736
|
A list that stays on the page. One item or several are chosen with the keys or the pointer; items come from memory or from a data source, can be searched and grouped, and long lists draw only the rows in view.
|
|
15639
15737
|
|
|
@@ -16011,7 +16109,7 @@ export default function Validation() {
|
|
|
16011
16109
|
|
|
16012
16110
|
# TagBox
|
|
16013
16111
|
|
|
16014
|
-
> Data · @motifx-community/ui 0.1.0-beta.
|
|
16112
|
+
> Data · @motifx-community/ui 0.1.0-beta.1
|
|
16015
16113
|
|
|
16016
16114
|
Picks several items. The chosen ones are tags in the field, followed by a text input that searches the list; items come from memory or from a data source, and typed text can become a tag of its own.
|
|
16017
16115
|
|
|
@@ -16376,7 +16474,7 @@ export default function Localization() {
|
|
|
16376
16474
|
|
|
16377
16475
|
# FilterBuilder
|
|
16378
16476
|
|
|
16379
|
-
> Data · @motifx-community/ui 0.1.0-beta.
|
|
16477
|
+
> Data · @motifx-community/ui 0.1.0-beta.1
|
|
16380
16478
|
|
|
16381
16479
|
A filter builder lets people put a filter together by hand: groups joined by And, Or, Not And or Not Or, and conditions of a field, an operation and a value. Its value is the data layer's filter expression, so it goes to rows in memory and to every adapter as it is. The DataGrid opens it from its filter panel; on its own it serves a report screen or a saved search.
|
|
16382
16480
|
|
|
@@ -16981,7 +17079,7 @@ export default function Localization() {
|
|
|
16981
17079
|
|
|
16982
17080
|
# TabDocumentManager
|
|
16983
17081
|
|
|
16984
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
17082
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
16985
17083
|
|
|
16986
17084
|
A document manager in the way code editors arrange files: documents in tabs, tabs in groups, groups split side by side and one under the other. A document's content is any component, a form, a grid or plain text, and it is moved, never made again, when its tab goes to another group. Everything the user does is a method too, asks first and reports after; the whole layout saves to JSON and comes back. Preview and pinned tabs, sizes and copies are on [Tabs](tabdocs-tabs.md); context menus, lists and keys on [Menus and keys](tabdocs-menus.md).
|
|
16987
17085
|
|
|
@@ -17873,7 +17971,7 @@ export default function SaveRestore() {
|
|
|
17873
17971
|
|
|
17874
17972
|
# TabDocumentManager: Tabs
|
|
17875
17973
|
|
|
17876
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
17974
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
17877
17975
|
|
|
17878
17976
|
What a tab does in a code editor: preview tabs that the next preview replaces, pinned tabs that stay at the start, tabs that shrink, wrap or scroll, counts and colours, and the same document open in two groups.
|
|
17879
17977
|
|
|
@@ -18707,7 +18805,7 @@ export default function Duplicates() {
|
|
|
18707
18805
|
|
|
18708
18806
|
# TabDocumentManager: Menus and keys
|
|
18709
18807
|
|
|
18710
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
18808
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
18711
18809
|
|
|
18712
18810
|
The commands around the tabs: context menus on tabs and on the empty strip, a searchable list of a group's documents, the app's own toolbar buttons, the recently used list, back and forward, reopening what was closed, locked groups, and the keys for all of them.
|
|
18713
18811
|
|
|
@@ -19400,7 +19498,7 @@ export function customerCard(customer: Customer): ComponentBase {
|
|
|
19400
19498
|
|
|
19401
19499
|
# TabDocumentManager: Drag and drop
|
|
19402
19500
|
|
|
19403
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
19501
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
19404
19502
|
|
|
19405
19503
|
Tabs and whole groups dragged as in a code editor: along a strip, to another group, beside a group or along an edge of the layout, between two managers, and the same moves from the keyboard. Every drop goes through the methods and events of what it does.
|
|
19406
19504
|
|
|
@@ -19958,7 +20056,7 @@ export default function MoveWithKeys() {
|
|
|
19958
20056
|
|
|
19959
20057
|
# TabDocumentManager: Dock and floating windows
|
|
19960
20058
|
|
|
19961
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
20059
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
19962
20060
|
|
|
19963
20061
|
Documents and whole groups float in windows of their own in the page and dock again into the documents' groups or into dock areas around them, which fold to the manager's edge. The mouse, the keys and the code do the same, through the same events.
|
|
19964
20062
|
|
|
@@ -20839,7 +20937,7 @@ export function customerCard(customer: Customer): ComponentBase {
|
|
|
20839
20937
|
|
|
20840
20938
|
# TabDocumentManager: New windows
|
|
20841
20939
|
|
|
20842
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
20940
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
20843
20941
|
|
|
20844
20942
|
A document, a group or a floating window moves into a browser window of its own, and back. Its content moves with it, nothing is made again, and the new window is a part of the same manager: its tabs, menus, keys and drag work as they do here.
|
|
20845
20943
|
|
|
@@ -21500,7 +21598,7 @@ export default function WindowLayout() {
|
|
|
21500
21598
|
|
|
21501
21599
|
# TabDocumentManager: Tablet and phone
|
|
21502
21600
|
|
|
21503
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
21601
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
21504
21602
|
|
|
21505
21603
|
On a tablet and a phone a layout of groups, splits and dock areas does not fit as it is. The manager keeps the layout and shows it another way: the same documents, groups and areas, the same saved JSON, the content moved and never made again. It goes by its own width, not by the device; on a touch screen its tabs and buttons get larger.
|
|
21506
21604
|
|
|
@@ -21781,7 +21879,7 @@ The drawers and sheets are the kit's [Drawer](drawer.md) and [BottomSheet](botto
|
|
|
21781
21879
|
|
|
21782
21880
|
# TabDocumentManager: A whole workspace
|
|
21783
21881
|
|
|
21784
|
-
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.
|
|
21882
|
+
> TabDocumentManager · @motifx-community/ui 0.1.0-beta.1
|
|
21785
21883
|
|
|
21786
21884
|
A whole screen made of the kit's parts: a menu bar, the manager, a DataGrid with everything turned on, forms and a tool docked at the bottom. Each part is the same component it is on its own page; the manager only holds them.
|
|
21787
21885
|
|
|
@@ -22194,7 +22292,7 @@ export function customerCard(customer: Customer): ComponentBase {
|
|
|
22194
22292
|
|
|
22195
22293
|
# Scheduler
|
|
22196
22294
|
|
|
22197
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
22295
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
22198
22296
|
|
|
22199
22297
|
Appointments over days and hours: day, week, work week and month views, all-day and multi-day bars, appointments at the same time side by side, and "+N more" where a day is full. From an array or a data source, with every setting live.
|
|
22200
22298
|
|
|
@@ -22790,7 +22888,7 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
22790
22888
|
|
|
22791
22889
|
# Scheduler: Editing
|
|
22792
22890
|
|
|
22793
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
22891
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
22794
22892
|
|
|
22795
22893
|
Appointments are added, moved, resized, copied and deleted with the pointer, the keys and code; every change asks its event first, can wait for a server, and goes back when saving fails.
|
|
22796
22894
|
|
|
@@ -23339,7 +23437,7 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
23339
23437
|
|
|
23340
23438
|
# Scheduler: Recurrence and time zones
|
|
23341
23439
|
|
|
23342
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
23440
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
23343
23441
|
|
|
23344
23442
|
Appointments that repeat by an RFC 5545 rule, with times left out and occurrences changed apart; a question on what a change reaches; an editor of the rule; and the days on the clock of any time zone, summer time included.
|
|
23345
23443
|
|
|
@@ -23763,7 +23861,7 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
23763
23861
|
|
|
23764
23862
|
# Scheduler: Resources and groups
|
|
23765
23863
|
|
|
23766
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
23864
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
23767
23865
|
|
|
23768
23866
|
Rooms, people and any other kind of resource: they colour the appointments, split the columns into groups (nested, or under each date), say when each one works and when nothing may be put in.
|
|
23769
23867
|
|
|
@@ -24469,7 +24567,7 @@ export class SlowAdapter<T extends object, K> extends data.ArrayAdapter<T, K> {
|
|
|
24469
24567
|
|
|
24470
24568
|
# Scheduler: The appointment form
|
|
24471
24569
|
|
|
24472
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
24570
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
24473
24571
|
|
|
24474
24572
|
The appointment form set up without events: which fields, in which order, in groups and tabs; editors of your own; checks per field; fields shown or locked for one appointment only. Or a form of your own.
|
|
24475
24573
|
|
|
@@ -25104,7 +25202,7 @@ export default function OwnForm() {
|
|
|
25104
25202
|
|
|
25105
25203
|
# Scheduler: Timeline
|
|
25106
25204
|
|
|
25107
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
25205
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
25108
25206
|
|
|
25109
25207
|
A row per resource with the time running along it: a day, a week, a work week or a month. Appointments at the same time stack in their row, and the row grows to fit them.
|
|
25110
25208
|
|
|
@@ -25740,7 +25838,7 @@ export default function TimelineTemplates() {
|
|
|
25740
25838
|
|
|
25741
25839
|
# Scheduler: Agenda
|
|
25742
25840
|
|
|
25743
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
25841
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
25744
25842
|
|
|
25745
25843
|
The coming days as a list: each day with its appointments in time order, a day with none left out.
|
|
25746
25844
|
|
|
@@ -26341,7 +26439,7 @@ export default function AgendaTemplates() {
|
|
|
26341
26439
|
|
|
26342
26440
|
# Scheduler: Big data
|
|
26343
26441
|
|
|
26344
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
26442
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
26345
26443
|
|
|
26346
26444
|
Thousands of resources and appointments: the scheduler builds only what is in view, and lays out only what changed.
|
|
26347
26445
|
|
|
@@ -26598,7 +26696,7 @@ export default function BigWeek() {
|
|
|
26598
26696
|
|
|
26599
26697
|
# Scheduler: Tablet and phone
|
|
26600
26698
|
|
|
26601
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
26699
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
26602
26700
|
|
|
26603
26701
|
On a tablet and a phone the scheduler keeps its appointments, views and date and shows them another way: a phone gets the agenda, a compact bar and sheets from the bottom; a finger lifts, resizes, swipes and pinches.
|
|
26604
26702
|
|
|
@@ -27266,7 +27364,7 @@ export default function Touch() {
|
|
|
27266
27364
|
|
|
27267
27365
|
# Scheduler: iCalendar and print
|
|
27268
27366
|
|
|
27269
|
-
> Scheduler · @motifx-community/ui 0.1.0-beta.
|
|
27367
|
+
> Scheduler · @motifx-community/ui 0.1.0-beta.1
|
|
27270
27368
|
|
|
27271
27369
|
Appointments out to an iCalendar file and back in (RFC 5545), for Outlook, Google Calendar and Apple Calendar; and the scheduler on paper.
|
|
27272
27370
|
|
|
@@ -27861,7 +27959,7 @@ export function sampleAppointments(): Meeting[] {
|
|
|
27861
27959
|
|
|
27862
27960
|
# DataGrid
|
|
27863
27961
|
|
|
27864
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
27962
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
27865
27963
|
|
|
27866
27964
|
A grid for data entry and large data: rows in memory or from any adapter of the data layer, a virtual list or pages, sorting, column layout, editing with the kit's editors, new rows with the Tab chain, three save modes, row actions, selection, filters, a search panel, grouping, summaries, a toolbar, lookup columns from other services, copy and paste, export and a layout that is kept — and every feature can be turned off, for the grid or for one column.
|
|
27867
27965
|
|
|
@@ -28227,7 +28325,7 @@ export default function Pager() {
|
|
|
28227
28325
|
|
|
28228
28326
|
# DataGrid: Editing
|
|
28229
28327
|
|
|
28230
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
28328
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
28231
28329
|
|
|
28232
28330
|
## Editing and save modes
|
|
28233
28331
|
|
|
@@ -28768,7 +28866,7 @@ export default function BarActions() {
|
|
|
28768
28866
|
|
|
28769
28867
|
# DataGrid: Edit forms and popups
|
|
28770
28868
|
|
|
28771
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
28869
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
28772
28870
|
|
|
28773
28871
|
## Edit forms and popups
|
|
28774
28872
|
|
|
@@ -29174,7 +29272,7 @@ export default function ValidationRules() {
|
|
|
29174
29272
|
|
|
29175
29273
|
# DataGrid: Filtering and search
|
|
29176
29274
|
|
|
29177
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
29275
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
29178
29276
|
|
|
29179
29277
|
## Filters
|
|
29180
29278
|
|
|
@@ -29633,7 +29731,7 @@ export function makeCustomers(n: number): Customer[] {
|
|
|
29633
29731
|
|
|
29634
29732
|
# DataGrid: Lookup columns
|
|
29635
29733
|
|
|
29636
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
29734
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
29637
29735
|
|
|
29638
29736
|
## Lookup columns
|
|
29639
29737
|
|
|
@@ -30000,7 +30098,7 @@ export default function TextFrom() {
|
|
|
30000
30098
|
|
|
30001
30099
|
# DataGrid: Grouping and summaries
|
|
30002
30100
|
|
|
30003
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
30101
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
30004
30102
|
|
|
30005
30103
|
## Grouping
|
|
30006
30104
|
|
|
@@ -30423,7 +30521,7 @@ export default function SummariesServer() {
|
|
|
30423
30521
|
|
|
30424
30522
|
# DataGrid: Master-detail
|
|
30425
30523
|
|
|
30426
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
30524
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
30427
30525
|
|
|
30428
30526
|
## Master-detail
|
|
30429
30527
|
|
|
@@ -30753,7 +30851,7 @@ export default function DetailTabs() {
|
|
|
30753
30851
|
|
|
30754
30852
|
# DataGrid: Bands and adaptive columns
|
|
30755
30853
|
|
|
30756
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
30854
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
30757
30855
|
|
|
30758
30856
|
## Band headers
|
|
30759
30857
|
|
|
@@ -31074,7 +31172,7 @@ export default function AdaptiveColumns() {
|
|
|
31074
31172
|
|
|
31075
31173
|
# DataGrid: Selection and export
|
|
31076
31174
|
|
|
31077
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
31175
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
31078
31176
|
|
|
31079
31177
|
## Selection
|
|
31080
31178
|
|
|
@@ -31677,7 +31775,7 @@ export default function PdfExport() {
|
|
|
31677
31775
|
|
|
31678
31776
|
# DataGrid: Row drag and drop
|
|
31679
31777
|
|
|
31680
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
31778
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
31681
31779
|
|
|
31682
31780
|
## Reorder rows
|
|
31683
31781
|
|
|
@@ -32022,7 +32120,7 @@ export default function RowDragBetween() {
|
|
|
32022
32120
|
|
|
32023
32121
|
# DataGrid: Selecting by dragging
|
|
32024
32122
|
|
|
32025
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
32123
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
32026
32124
|
|
|
32027
32125
|
## Rows
|
|
32028
32126
|
|
|
@@ -32352,7 +32450,7 @@ export default function CellRanges() {
|
|
|
32352
32450
|
|
|
32353
32451
|
# DataGrid: Scrolling
|
|
32354
32452
|
|
|
32355
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
32453
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
32356
32454
|
|
|
32357
32455
|
## Scrolling modes
|
|
32358
32456
|
|
|
@@ -32704,7 +32802,7 @@ export default function InfiniteGroups() {
|
|
|
32704
32802
|
|
|
32705
32803
|
# DataGrid: Layout and events
|
|
32706
32804
|
|
|
32707
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
32805
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
32708
32806
|
|
|
32709
32807
|
## Toolbar
|
|
32710
32808
|
|
|
@@ -33248,7 +33346,7 @@ export default function Events() {
|
|
|
33248
33346
|
|
|
33249
33347
|
# DataGrid: API reference
|
|
33250
33348
|
|
|
33251
|
-
> DataGrid · @motifx-community/ui 0.1.0-beta.
|
|
33349
|
+
> DataGrid · @motifx-community/ui 0.1.0-beta.1
|
|
33252
33350
|
|
|
33253
33351
|
## Columns
|
|
33254
33352
|
|