@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.

Files changed (96) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/dropdown/DropDown.d.ts +14 -0
  3. package/dist/components/dropdown/drop-down-props.d.ts +5 -0
  4. package/dist/components/scheduler/view/AgendaView.d.ts +1 -1
  5. package/dist/core/ui-strings.d.ts +2 -0
  6. package/dist/generated/tokens.d.ts +40 -0
  7. package/dist/index.js +133 -15
  8. package/dist/index.js.map +1 -1
  9. package/dist/locales/en.json +1 -0
  10. package/dist/locales/tr.json +1 -0
  11. package/dist/parts/data/DataItems.d.ts +5 -0
  12. package/dist/parts/data/KeyedItems.d.ts +2 -0
  13. package/dist/styles.css +87 -3
  14. package/dist/tokens/index.d.ts +40 -0
  15. package/dist/tokens/index.js +40 -0
  16. package/dist/tokens/index.js.map +1 -1
  17. package/docs/accordion.md +1 -1
  18. package/docs/actionsheet.md +1 -1
  19. package/docs/avatar.md +1 -1
  20. package/docs/badge.md +1 -1
  21. package/docs/bottomsheet.md +1 -1
  22. package/docs/breadcrumb.md +1 -1
  23. package/docs/button.md +1 -1
  24. package/docs/buttongroup.md +1 -1
  25. package/docs/calendar.md +1 -1
  26. package/docs/card.md +1 -1
  27. package/docs/checkbox.md +1 -1
  28. package/docs/chip.md +1 -1
  29. package/docs/colorbox.md +1 -1
  30. package/docs/combobox.md +1 -1
  31. package/docs/control.md +1 -1
  32. package/docs/datagrid-api.md +1 -1
  33. package/docs/datagrid-bands.md +1 -1
  34. package/docs/datagrid-drag-select.md +1 -1
  35. package/docs/datagrid-drag.md +1 -1
  36. package/docs/datagrid-editing.md +1 -1
  37. package/docs/datagrid-filtering.md +1 -1
  38. package/docs/datagrid-forms.md +1 -1
  39. package/docs/datagrid-grouping.md +1 -1
  40. package/docs/datagrid-layout.md +1 -1
  41. package/docs/datagrid-lookups.md +1 -1
  42. package/docs/datagrid-master-detail.md +1 -1
  43. package/docs/datagrid-scrolling.md +1 -1
  44. package/docs/datagrid-selection.md +1 -1
  45. package/docs/datagrid.md +1 -1
  46. package/docs/datebox.md +1 -1
  47. package/docs/drawer.md +1 -1
  48. package/docs/dropdown.md +11 -5
  49. package/docs/filterbuilder.md +1 -1
  50. package/docs/formlayout.md +1 -1
  51. package/docs/home.md +1 -1
  52. package/docs/keyboard.md +1 -1
  53. package/docs/layout.md +1 -1
  54. package/docs/listbox.md +1 -1
  55. package/docs/lookup.md +86 -2
  56. package/docs/menus.md +1 -1
  57. package/docs/numberbox.md +1 -1
  58. package/docs/pagination.md +1 -1
  59. package/docs/progress.md +1 -1
  60. package/docs/radiogroup.md +1 -1
  61. package/docs/rating.md +1 -1
  62. package/docs/scheduler-agenda.md +1 -1
  63. package/docs/scheduler-big-data.md +1 -1
  64. package/docs/scheduler-editing.md +1 -1
  65. package/docs/scheduler-form.md +1 -1
  66. package/docs/scheduler-icalendar.md +1 -1
  67. package/docs/scheduler-mobile.md +1 -1
  68. package/docs/scheduler-recurrence.md +1 -1
  69. package/docs/scheduler-resources.md +1 -1
  70. package/docs/scheduler-timeline.md +1 -1
  71. package/docs/scheduler.md +1 -1
  72. package/docs/showcase.md +1 -1
  73. package/docs/skeleton.md +1 -1
  74. package/docs/slider.md +1 -1
  75. package/docs/switch.md +1 -1
  76. package/docs/tabdocs-dock.md +1 -1
  77. package/docs/tabdocs-drag.md +1 -1
  78. package/docs/tabdocs-menus.md +1 -1
  79. package/docs/tabdocs-mobile.md +1 -1
  80. package/docs/tabdocs-tabs.md +1 -1
  81. package/docs/tabdocs-windows.md +1 -1
  82. package/docs/tabdocs-workspace.md +1 -1
  83. package/docs/tabdocs.md +1 -1
  84. package/docs/tabs.md +1 -1
  85. package/docs/tagbox.md +1 -1
  86. package/docs/textarea.md +1 -1
  87. package/docs/textbox.md +1 -1
  88. package/docs/toast.md +1 -1
  89. package/docs/tokens.md +9 -1
  90. package/docs/toolbar.md +1 -1
  91. package/docs/tooltip.md +1 -1
  92. package/docs/treeview.md +1 -1
  93. package/docs/window.md +1 -1
  94. package/llms-full.txt +181 -83
  95. package/llms.txt +1 -1
  96. 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.0: a preview, its API may still change before 1.0.
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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 and the empty list text come from `uiLocale.strings`.
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 or read-only. |
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
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.0
33349
+ > DataGrid · @motifx-community/ui 0.1.0-beta.1
33252
33350
 
33253
33351
  ## Columns
33254
33352