@loomui-ng/ui 0.0.0-stage → 0.1.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.
- package/LICENSE +21 -0
- package/README.md +46 -2
- package/accordion/README.md +38 -0
- package/alert/README.md +32 -0
- package/alert-dialog/README.md +37 -0
- package/aspect-ratio/README.md +24 -0
- package/attachment/README.md +40 -0
- package/avatar/README.md +34 -0
- package/badge/README.md +29 -0
- package/breadcrumb/README.md +33 -0
- package/bubble/README.md +32 -0
- package/button/README.md +31 -0
- package/button-group/README.md +30 -0
- package/calendar/README.md +35 -0
- package/card/README.md +41 -0
- package/carousel/README.md +41 -0
- package/chart/README.md +25 -0
- package/checkbox/README.md +31 -0
- package/collapsible/README.md +31 -0
- package/combobox/README.md +47 -0
- package/command/README.md +44 -0
- package/context-menu/README.md +36 -0
- package/data-table/README.md +39 -0
- package/date-picker/README.md +23 -0
- package/dialog/README.md +52 -0
- package/direction/README.md +19 -0
- package/drawer/README.md +37 -0
- package/dropdown-menu/README.md +46 -0
- package/empty/README.md +38 -0
- package/fesm2022/loomui-ng-ui-accordion.mjs +555 -0
- package/fesm2022/loomui-ng-ui-accordion.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-alert-dialog.mjs +652 -0
- package/fesm2022/loomui-ng-ui-alert-dialog.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-alert.mjs +286 -0
- package/fesm2022/loomui-ng-ui-alert.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-aspect-ratio.mjs +97 -0
- package/fesm2022/loomui-ng-ui-aspect-ratio.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-attachment.mjs +713 -0
- package/fesm2022/loomui-ng-ui-attachment.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-avatar.mjs +561 -0
- package/fesm2022/loomui-ng-ui-avatar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-badge.mjs +102 -0
- package/fesm2022/loomui-ng-ui-badge.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-breadcrumb.mjs +520 -0
- package/fesm2022/loomui-ng-ui-breadcrumb.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-bubble.mjs +386 -0
- package/fesm2022/loomui-ng-ui-bubble.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-button-group.mjs +193 -0
- package/fesm2022/loomui-ng-ui-button-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-button.mjs +162 -0
- package/fesm2022/loomui-ng-ui-button.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-calendar.mjs +681 -0
- package/fesm2022/loomui-ng-ui-calendar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-card.mjs +461 -0
- package/fesm2022/loomui-ng-ui-card.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-carousel.mjs +532 -0
- package/fesm2022/loomui-ng-ui-carousel.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-chart.mjs +373 -0
- package/fesm2022/loomui-ng-ui-chart.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-checkbox.mjs +265 -0
- package/fesm2022/loomui-ng-ui-checkbox.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-collapsible.mjs +274 -0
- package/fesm2022/loomui-ng-ui-collapsible.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-combobox.mjs +971 -0
- package/fesm2022/loomui-ng-ui-combobox.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-command.mjs +982 -0
- package/fesm2022/loomui-ng-ui-command.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-context-menu.mjs +1359 -0
- package/fesm2022/loomui-ng-ui-context-menu.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-data-table.mjs +535 -0
- package/fesm2022/loomui-ng-ui-data-table.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-date-picker.mjs +312 -0
- package/fesm2022/loomui-ng-ui-date-picker.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-dialog.mjs +508 -0
- package/fesm2022/loomui-ng-ui-dialog.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-direction.mjs +112 -0
- package/fesm2022/loomui-ng-ui-direction.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-drawer.mjs +590 -0
- package/fesm2022/loomui-ng-ui-drawer.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-dropdown-menu.mjs +1322 -0
- package/fesm2022/loomui-ng-ui-dropdown-menu.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-empty.mjs +408 -0
- package/fesm2022/loomui-ng-ui-empty.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-field.mjs +630 -0
- package/fesm2022/loomui-ng-ui-field.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-hover-card.mjs +230 -0
- package/fesm2022/loomui-ng-ui-hover-card.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-icon.mjs +498 -0
- package/fesm2022/loomui-ng-ui-icon.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-input-group.mjs +463 -0
- package/fesm2022/loomui-ng-ui-input-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-input-otp.mjs +586 -0
- package/fesm2022/loomui-ng-ui-input-otp.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-input.mjs +289 -0
- package/fesm2022/loomui-ng-ui-input.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-item.mjs +598 -0
- package/fesm2022/loomui-ng-ui-item.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-kbd.mjs +129 -0
- package/fesm2022/loomui-ng-ui-kbd.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-label.mjs +68 -0
- package/fesm2022/loomui-ng-ui-label.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-marker.mjs +234 -0
- package/fesm2022/loomui-ng-ui-marker.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-menubar.mjs +1523 -0
- package/fesm2022/loomui-ng-ui-menubar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-message-scroller.mjs +519 -0
- package/fesm2022/loomui-ng-ui-message-scroller.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-message.mjs +408 -0
- package/fesm2022/loomui-ng-ui-message.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-native-select.mjs +389 -0
- package/fesm2022/loomui-ng-ui-native-select.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-navigation-menu.mjs +609 -0
- package/fesm2022/loomui-ng-ui-navigation-menu.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-pagination.mjs +611 -0
- package/fesm2022/loomui-ng-ui-pagination.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-popover.mjs +358 -0
- package/fesm2022/loomui-ng-ui-popover.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-progress.mjs +159 -0
- package/fesm2022/loomui-ng-ui-progress.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-questionnaire.mjs +1012 -0
- package/fesm2022/loomui-ng-ui-questionnaire.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-radio-group.mjs +399 -0
- package/fesm2022/loomui-ng-ui-radio-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-resizable.mjs +518 -0
- package/fesm2022/loomui-ng-ui-resizable.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-scroll-area.mjs +135 -0
- package/fesm2022/loomui-ng-ui-scroll-area.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-select.mjs +863 -0
- package/fesm2022/loomui-ng-ui-select.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-separator.mjs +114 -0
- package/fesm2022/loomui-ng-ui-separator.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-sheet.mjs +530 -0
- package/fesm2022/loomui-ng-ui-sheet.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-sidebar.mjs +1918 -0
- package/fesm2022/loomui-ng-ui-sidebar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-skeleton.mjs +69 -0
- package/fesm2022/loomui-ng-ui-skeleton.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-slider.mjs +390 -0
- package/fesm2022/loomui-ng-ui-slider.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-spinner.mjs +85 -0
- package/fesm2022/loomui-ng-ui-spinner.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-switch.mjs +212 -0
- package/fesm2022/loomui-ng-ui-switch.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-table.mjs +559 -0
- package/fesm2022/loomui-ng-ui-table.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-tabs.mjs +544 -0
- package/fesm2022/loomui-ng-ui-tabs.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-textarea.mjs +206 -0
- package/fesm2022/loomui-ng-ui-textarea.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-toast.mjs +432 -0
- package/fesm2022/loomui-ng-ui-toast.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-toggle-group.mjs +477 -0
- package/fesm2022/loomui-ng-ui-toggle-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-toggle.mjs +219 -0
- package/fesm2022/loomui-ng-ui-toggle.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-tooltip.mjs +240 -0
- package/fesm2022/loomui-ng-ui-tooltip.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-typography.mjs +129 -0
- package/fesm2022/loomui-ng-ui-typography.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-utils.mjs +1533 -0
- package/fesm2022/loomui-ng-ui-utils.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui.mjs +4 -0
- package/fesm2022/loomui-ng-ui.mjs.map +1 -0
- package/field/README.md +43 -0
- package/hover-card/README.md +31 -0
- package/icon/README.md +42 -0
- package/input/README.md +26 -0
- package/input-group/README.md +40 -0
- package/input-otp/README.md +35 -0
- package/item/README.md +33 -0
- package/kbd/README.md +21 -0
- package/label/README.md +24 -0
- package/marker/README.md +24 -0
- package/menubar/README.md +40 -0
- package/message/README.md +32 -0
- package/message-scroller/README.md +40 -0
- package/native-select/README.md +26 -0
- package/navigation-menu/README.md +39 -0
- package/package.json +325 -3
- package/pagination/README.md +37 -0
- package/popover/README.md +37 -0
- package/progress/README.md +25 -0
- package/questionnaire/README.md +52 -0
- package/radio-group/README.md +33 -0
- package/resizable/README.md +37 -0
- package/scroll-area/README.md +25 -0
- package/select/README.md +45 -0
- package/separator/README.md +28 -0
- package/sheet/README.md +38 -0
- package/sidebar/README.md +60 -0
- package/skeleton/README.md +21 -0
- package/slider/README.md +29 -0
- package/spinner/README.md +15 -0
- package/styles/loomui.css +330 -0
- package/switch/README.md +29 -0
- package/table/README.md +31 -0
- package/tabs/README.md +42 -0
- package/textarea/README.md +28 -0
- package/toast/README.md +27 -0
- package/toggle/README.md +27 -0
- package/toggle-group/README.md +37 -0
- package/tooltip/README.md +31 -0
- package/types/loomui-ng-ui-accordion.d.ts +141 -0
- package/types/loomui-ng-ui-alert-dialog.d.ts +175 -0
- package/types/loomui-ng-ui-alert.d.ts +77 -0
- package/types/loomui-ng-ui-aspect-ratio.d.ts +31 -0
- package/types/loomui-ng-ui-attachment.d.ts +192 -0
- package/types/loomui-ng-ui-avatar.d.ts +147 -0
- package/types/loomui-ng-ui-badge.d.ts +32 -0
- package/types/loomui-ng-ui-breadcrumb.d.ts +118 -0
- package/types/loomui-ng-ui-bubble.d.ts +100 -0
- package/types/loomui-ng-ui-button-group.d.ts +51 -0
- package/types/loomui-ng-ui-button.d.ts +57 -0
- package/types/loomui-ng-ui-calendar.d.ts +171 -0
- package/types/loomui-ng-ui-card.d.ts +123 -0
- package/types/loomui-ng-ui-carousel.d.ts +140 -0
- package/types/loomui-ng-ui-chart.d.ts +95 -0
- package/types/loomui-ng-ui-checkbox.d.ts +62 -0
- package/types/loomui-ng-ui-collapsible.d.ts +74 -0
- package/types/loomui-ng-ui-combobox.d.ts +229 -0
- package/types/loomui-ng-ui-command.d.ts +231 -0
- package/types/loomui-ng-ui-context-menu.d.ts +288 -0
- package/types/loomui-ng-ui-data-table.d.ts +111 -0
- package/types/loomui-ng-ui-date-picker.d.ts +63 -0
- package/types/loomui-ng-ui-dialog.d.ts +127 -0
- package/types/loomui-ng-ui-direction.d.ts +42 -0
- package/types/loomui-ng-ui-drawer.d.ts +149 -0
- package/types/loomui-ng-ui-dropdown-menu.d.ts +258 -0
- package/types/loomui-ng-ui-empty.d.ts +109 -0
- package/types/loomui-ng-ui-field.d.ts +169 -0
- package/types/loomui-ng-ui-hover-card.d.ts +62 -0
- package/types/loomui-ng-ui-icon.d.ts +156 -0
- package/types/loomui-ng-ui-input-group.d.ts +130 -0
- package/types/loomui-ng-ui-input-otp.d.ts +149 -0
- package/types/loomui-ng-ui-input.d.ts +89 -0
- package/types/loomui-ng-ui-item.d.ts +157 -0
- package/types/loomui-ng-ui-kbd.d.ts +36 -0
- package/types/loomui-ng-ui-label.d.ts +19 -0
- package/types/loomui-ng-ui-marker.d.ts +61 -0
- package/types/loomui-ng-ui-menubar.d.ts +321 -0
- package/types/loomui-ng-ui-message-scroller.d.ts +138 -0
- package/types/loomui-ng-ui-message.d.ts +109 -0
- package/types/loomui-ng-ui-native-select.d.ts +84 -0
- package/types/loomui-ng-ui-navigation-menu.d.ts +160 -0
- package/types/loomui-ng-ui-pagination.d.ts +130 -0
- package/types/loomui-ng-ui-popover.d.ts +90 -0
- package/types/loomui-ng-ui-progress.d.ts +39 -0
- package/types/loomui-ng-ui-questionnaire.d.ts +274 -0
- package/types/loomui-ng-ui-radio-group.d.ts +109 -0
- package/types/loomui-ng-ui-resizable.d.ts +121 -0
- package/types/loomui-ng-ui-scroll-area.d.ts +44 -0
- package/types/loomui-ng-ui-select.d.ts +204 -0
- package/types/loomui-ng-ui-separator.d.ts +35 -0
- package/types/loomui-ng-ui-sheet.d.ts +124 -0
- package/types/loomui-ng-ui-sidebar.d.ts +485 -0
- package/types/loomui-ng-ui-skeleton.d.ts +20 -0
- package/types/loomui-ng-ui-slider.d.ts +103 -0
- package/types/loomui-ng-ui-spinner.d.ts +19 -0
- package/types/loomui-ng-ui-switch.d.ts +56 -0
- package/types/loomui-ng-ui-table.d.ts +148 -0
- package/types/loomui-ng-ui-tabs.d.ts +148 -0
- package/types/loomui-ng-ui-textarea.d.ts +52 -0
- package/types/loomui-ng-ui-toast.d.ts +97 -0
- package/types/loomui-ng-ui-toggle-group.d.ts +138 -0
- package/types/loomui-ng-ui-toggle.d.ts +63 -0
- package/types/loomui-ng-ui-tooltip.d.ts +63 -0
- package/types/loomui-ng-ui-typography.d.ts +42 -0
- package/types/loomui-ng-ui-utils.d.ts +392 -0
- package/types/loomui-ng-ui.d.ts +5 -0
- package/typography/README.md +29 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Combobox
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_COMBOBOX } from '@loomui-ng/ui/combobox';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiCombobox [(value)]="fw" class="contents">
|
|
10
|
+
<button uiComboboxTrigger><span uiComboboxValue placeholder="Select framework…"></span></button>
|
|
11
|
+
<div uiComboboxContent>
|
|
12
|
+
<input uiComboboxInput placeholder="Search…" />
|
|
13
|
+
<div uiComboboxList>
|
|
14
|
+
<div uiComboboxEmpty>No results.</div>
|
|
15
|
+
<div uiComboboxItem value="next">Next.js</div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<ui-combobox [(value)]="fw" class="contents">
|
|
25
|
+
<ui-combobox-trigger><ui-combobox-value placeholder="Select framework…"></ui-combobox-value></ui-combobox-trigger>
|
|
26
|
+
<ui-combobox-content>
|
|
27
|
+
<ui-combobox-input placeholder="Search…" />
|
|
28
|
+
<ui-combobox-list>
|
|
29
|
+
<ui-combobox-empty>No results.</ui-combobox-empty>
|
|
30
|
+
<ui-combobox-item value="next">Next.js</ui-combobox-item>
|
|
31
|
+
</ui-combobox-list>
|
|
32
|
+
</ui-combobox-content>
|
|
33
|
+
</ui-combobox>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
| Input / output | Type / values | Default |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| `value` (model) | `string` | `''` |
|
|
39
|
+
| `disabled` | | `false` |
|
|
40
|
+
| `placeholder` | | `''` |
|
|
41
|
+
| `align` | `'start' \| 'center' \| 'end'` | `'start'` |
|
|
42
|
+
| `disabledInput` | | `false` |
|
|
43
|
+
| `ariaLabel` | `string` | `''` |
|
|
44
|
+
|
|
45
|
+
Parts (selectors): `[uiCombobox], ui-combobox`, `button[uiComboboxTrigger], ui-combobox-trigger`, `[uiComboboxValue], ui-combobox-value`, `[uiComboboxContent], ui-combobox-content`, `input[uiComboboxInput]`, `[uiComboboxList], ui-combobox-list`, `[uiComboboxEmpty], ui-combobox-empty`, `[uiComboboxItem], ui-combobox-item`, `ui-combobox-input`.
|
|
46
|
+
|
|
47
|
+
Spec: `docs/behavior-specs/combobox.md` · Manual test: `docs/manual-tests/combobox.md`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# uiCommand
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_COMMAND } from '@loomui-ng/ui/command';
|
|
5
|
+
// add to the component imports array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiCommand class="max-w-sm rounded-lg border">
|
|
10
|
+
<div uiCommandInputWrapper><input uiCommandInput placeholder="Search..." /></div>
|
|
11
|
+
<div uiCommandList>
|
|
12
|
+
<div uiCommandEmpty>No results found.</div>
|
|
13
|
+
<div uiCommandGroup heading="Suggestions">
|
|
14
|
+
<div uiCommandItem value="Calendar" (select)="open()">Calendar</div>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
<ui-command class="max-w-sm rounded-lg border">
|
|
24
|
+
<ui-command-input-wrapper><ui-command-input placeholder="Search..." /></ui-command-input-wrapper>
|
|
25
|
+
<ui-command-list>
|
|
26
|
+
<ui-command-empty>No results found.</ui-command-empty>
|
|
27
|
+
<ui-command-group heading="Suggestions">
|
|
28
|
+
<ui-command-item value="Calendar" (select)="open()">Calendar</ui-command-item>
|
|
29
|
+
</ui-command-group>
|
|
30
|
+
</ui-command-list>
|
|
31
|
+
</ui-command>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
| Input | Values | Default |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| `value` (item) | string | text content |
|
|
37
|
+
| `keywords` (item) | string[] | `[]` |
|
|
38
|
+
| `disabled` (item) | boolean | `false` |
|
|
39
|
+
| `heading` (group) | string | `''` |
|
|
40
|
+
| `(select)` | void event | - |
|
|
41
|
+
|
|
42
|
+
Filtering is substring-based (no cmdk scoring/re-ordering). Needs the .no-scrollbar utility from the playground styles.css.
|
|
43
|
+
|
|
44
|
+
Spec: docs/behavior-specs/command.md - Manual checks: docs/manual-tests/command.md
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Context Menu
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_CONTEXT_MENU } from '@loomui-ng/ui/context-menu';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiContextMenu>
|
|
10
|
+
<div uiContextMenuTrigger class="h-32 w-64 border">Right click</div>
|
|
11
|
+
<div uiContextMenuContent><div uiContextMenuItem>Back</div></div>
|
|
12
|
+
</div>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<ui-context-menu>
|
|
19
|
+
<ui-context-menu-trigger class="h-32 w-64 border">Right click</ui-context-menu-trigger>
|
|
20
|
+
<ui-context-menu-content><ui-context-menu-item>Back</ui-context-menu-item></ui-context-menu-content>
|
|
21
|
+
</ui-context-menu>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
| Input / output | Type / values | Default |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `side` | `Side` | `'right'` |
|
|
27
|
+
| `align` | `Align` | `'start'` |
|
|
28
|
+
| `sideOffset` | | `2` |
|
|
29
|
+
| `variant` | `'default' \| 'destructive'` | `'default'` |
|
|
30
|
+
| `inset` | | `false` |
|
|
31
|
+
| `checked` (model) | | `false` |
|
|
32
|
+
| `value` (model) | `string \| undefined` | `undefined` |
|
|
33
|
+
|
|
34
|
+
Parts (selectors): `[uiContextMenu], ui-context-menu`, `[uiContextMenuTrigger], ui-context-menu-trigger`, `[uiContextMenuContent], ui-context-menu-content`, `[uiContextMenuItem], ui-context-menu-item`, `[uiContextMenuCheckboxItem], ui-context-menu-checkbox-item`, `[uiContextMenuRadioGroup], ui-context-menu-radio-group`, `[uiContextMenuRadioItem], ui-context-menu-radio-item`, `[uiContextMenuSub], ui-context-menu-sub`, `[uiContextMenuSubTrigger], ui-context-menu-sub-trigger`, `[uiContextMenuSubContent], ui-context-menu-sub-content`, `[uiContextMenuLabel], ui-context-menu-label`, `[uiContextMenuSeparator], ui-context-menu-separator`, `[uiContextMenuShortcut], ui-context-menu-shortcut`, `[uiContextMenuGroup], ui-context-menu-group`.
|
|
35
|
+
|
|
36
|
+
Spec: `docs/behavior-specs/context-menu.md` · Manual test: `docs/manual-tests/context-menu.md`
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Data Table
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_DATA_TABLE } from '@loomui-ng/ui/data-table';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
const features = tableFeatures({ rowSortingFeature, rowPaginationFeature, columnFilteringFeature, columnVisibilityFeature, rowSelectionFeature,
|
|
10
|
+
sortedRowModel: createSortedRowModel(), filteredRowModel: createFilteredRowModel(), paginatedRowModel: createPaginatedRowModel() });
|
|
11
|
+
table = injectTable(() => ({ features, columns, data: DATA, getRowId: (r) => r.id }));
|
|
12
|
+
|
|
13
|
+
<ui-data-table-view-options [table]="table" />
|
|
14
|
+
<table uiTable> … @for (row of table.getRowModel().rows; track row.id) … </table>
|
|
15
|
+
<ui-data-table-pagination [table]="table" />
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
const features = tableFeatures({ rowSortingFeature, rowPaginationFeature, columnFilteringFeature, columnVisibilityFeature, rowSelectionFeature,
|
|
22
|
+
sortedRowModel: createSortedRowModel(), filteredRowModel: createFilteredRowModel(), paginatedRowModel: createPaginatedRowModel() });
|
|
23
|
+
table = injectTable(() => ({ features, columns, data: DATA, getRowId: (r) => r.id }));
|
|
24
|
+
|
|
25
|
+
<ui-data-table-view-options [table]="table" />
|
|
26
|
+
<ui-table> … @for (row of table.getRowModel().rows; track row.id) … </ui-table>
|
|
27
|
+
<ui-data-table-pagination [table]="table" />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| Input / output | Type / values | Default |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `column` | `DataTableColumnLike` | required |
|
|
33
|
+
| `title` | `string` | required |
|
|
34
|
+
| `table` | `DataTableLike` | required |
|
|
35
|
+
| `pageSizes` | `number[]` | `[10, 20, 30, 50]` |
|
|
36
|
+
|
|
37
|
+
Parts (selectors): `ui-data-table-column-header`, `ui-data-table-view-options`, `ui-data-table-pagination`.
|
|
38
|
+
|
|
39
|
+
Install `@tanstack/angular-table`. See `projects/playground/src/app/pages/data-table-page.ts` for the full demo. Spec: `docs/behavior-specs/data-table.md` · Manual test: `docs/manual-tests/data-table.md`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Date Picker
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UiDatePicker } from '@loomui-ng/ui/date-picker';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<ui-date-picker [(value)]="date" placeholder="Pick a date" />
|
|
10
|
+
<ui-date-picker [formControl]="ctrl" />
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
| Input / output | Type / values | Default |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `value` (model) | `Date \| null` | `null` |
|
|
16
|
+
| `placeholder` | | `'Pick a date'` |
|
|
17
|
+
| `locale` | `string \| undefined` | `undefined` |
|
|
18
|
+
| `disabled` | | `false` |
|
|
19
|
+
| `invalid` | | `false` |
|
|
20
|
+
|
|
21
|
+
Parts (selectors): `ui-date-picker`.
|
|
22
|
+
|
|
23
|
+
Spec: `docs/behavior-specs/date-picker.md` · Manual test: `docs/manual-tests/date-picker.md`
|
package/dialog/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# uiDialog
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_DIALOG } from '@loomui-ng/ui/dialog';
|
|
5
|
+
// add to the component imports array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiDialog [(open)]="open" class="contents">
|
|
10
|
+
<button uiButton variant="outline" uiDialogTrigger>Open Dialog</button>
|
|
11
|
+
<div uiDialogContent>
|
|
12
|
+
<div uiDialogHeader>
|
|
13
|
+
<h2 uiDialogTitle>Edit profile</h2>
|
|
14
|
+
<p uiDialogDescription>Make changes here.</p>
|
|
15
|
+
</div>
|
|
16
|
+
<input uiInput value="Pedro" />
|
|
17
|
+
<div uiDialogFooter>
|
|
18
|
+
<button uiButton variant="outline" uiDialogClose>Cancel</button>
|
|
19
|
+
<button uiButton uiDialogClose>Save</button>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<ui-dialog [(open)]="open" class="contents">
|
|
29
|
+
<ui-button variant="outline" uiDialogTrigger>Open Dialog</ui-button>
|
|
30
|
+
<ui-dialog-content>
|
|
31
|
+
<ui-dialog-header>
|
|
32
|
+
<ui-dialog-title>Edit profile</ui-dialog-title>
|
|
33
|
+
<ui-dialog-description>Make changes here.</ui-dialog-description>
|
|
34
|
+
</ui-dialog-header>
|
|
35
|
+
<ui-input value="Pedro" />
|
|
36
|
+
<ui-dialog-footer>
|
|
37
|
+
<ui-button variant="outline" uiDialogClose>Cancel</ui-button>
|
|
38
|
+
<ui-button uiDialogClose>Save</ui-button>
|
|
39
|
+
</ui-dialog-footer>
|
|
40
|
+
</ui-dialog-content>
|
|
41
|
+
</ui-dialog>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
| Input | Values | Default |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| `open` (uiDialog) | model boolean | `false` |
|
|
47
|
+
| `showCloseButton` (uiDialogContent) | boolean | `true` |
|
|
48
|
+
| `class` | extra classes | - |
|
|
49
|
+
|
|
50
|
+
Content moves to the CDK overlay while open and stays in the component DOM (hidden) otherwise. Focus is trapped, first tabbable element focused, focus returns to the trigger. Needs `@angular/cdk/overlay-prebuilt.css` and the data-open/data-closed custom variants (see libs/ui/README.md).
|
|
51
|
+
|
|
52
|
+
Spec: docs/behavior-specs/dialog.md - Manual checks: docs/manual-tests/dialog.md
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Direction
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_DIRECTION } from '@loomui-ng/ui/direction';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div [uiDirection]="'rtl'">…components…</div>
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
| Input / output | Type / values | Default |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `attrDir` | `Direction \| ''` | `''` |
|
|
15
|
+
| `elDir` | `Direction \| ''` | `''` |
|
|
16
|
+
|
|
17
|
+
Parts (selectors): `[uiDirection], ui-direction`.
|
|
18
|
+
|
|
19
|
+
Spec: `docs/behavior-specs/direction.md` · Manual test: `docs/manual-tests/direction.md`
|
package/drawer/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Drawer
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_DRAWER } from '@loomui-ng/ui/drawer';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiDrawer>
|
|
10
|
+
<button uiButton uiDrawerTrigger>Open</button>
|
|
11
|
+
<div uiDrawerContent>
|
|
12
|
+
<div uiDrawerHeader><h2 uiDrawerTitle>Move goal</h2></div>
|
|
13
|
+
<div uiDrawerFooter><button uiDrawerClose>Cancel</button></div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<ui-drawer>
|
|
22
|
+
<ui-button uiDrawerTrigger>Open</ui-button>
|
|
23
|
+
<ui-drawer-content>
|
|
24
|
+
<ui-drawer-header><ui-drawer-title>Move goal</ui-drawer-title></ui-drawer-header>
|
|
25
|
+
<ui-drawer-footer><ui-drawer-close>Cancel</ui-drawer-close></ui-drawer-footer>
|
|
26
|
+
</ui-drawer-content>
|
|
27
|
+
</ui-drawer>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| Input / output | Type / values | Default |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `direction` | `Direction` | `'bottom'` |
|
|
33
|
+
| `disabled` | | `false` |
|
|
34
|
+
|
|
35
|
+
Parts (selectors): `[uiDrawer], ui-drawer`, `[uiDrawerTrigger], ui-drawer-trigger`, `[uiDrawerContent], ui-drawer-content`, `[uiDrawerHeader], ui-drawer-header`, `[uiDrawerFooter], ui-drawer-footer`, `[uiDrawerTitle], ui-drawer-title`, `[uiDrawerDescription], ui-drawer-description`, `button[uiDrawerClose], ui-drawer-close`.
|
|
36
|
+
|
|
37
|
+
Spec: `docs/behavior-specs/drawer.md` · Manual test: `docs/manual-tests/drawer.md`
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# uiDropdownMenu
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_DROPDOWN_MENU } from '@loomui-ng/ui/dropdown-menu';
|
|
5
|
+
// add to the component imports array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiDropdownMenu class="contents">
|
|
10
|
+
<button uiButton variant="outline" uiDropdownMenuTrigger>Open</button>
|
|
11
|
+
<div uiDropdownMenuContent class="w-56">
|
|
12
|
+
<div uiDropdownMenuLabel>My Account</div>
|
|
13
|
+
<div uiDropdownMenuItem (select)="go()">Profile <span uiDropdownMenuShortcut>Ctrl+P</span></div>
|
|
14
|
+
<div uiDropdownMenuCheckboxItem [(checked)]="bar">Status Bar</div>
|
|
15
|
+
<div uiDropdownMenuSeparator></div>
|
|
16
|
+
<div uiDropdownMenuItem variant="destructive">Log out</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<ui-dropdown-menu class="contents">
|
|
25
|
+
<ui-button variant="outline" uiDropdownMenuTrigger>Open</ui-button>
|
|
26
|
+
<ui-dropdown-menu-content class="w-56">
|
|
27
|
+
<ui-dropdown-menu-label>My Account</ui-dropdown-menu-label>
|
|
28
|
+
<ui-dropdown-menu-item (select)="go()">Profile <ui-dropdown-menu-shortcut>Ctrl+P</ui-dropdown-menu-shortcut></ui-dropdown-menu-item>
|
|
29
|
+
<ui-dropdown-menu-checkbox-item [(checked)]="bar">Status Bar</ui-dropdown-menu-checkbox-item>
|
|
30
|
+
<ui-dropdown-menu-separator></ui-dropdown-menu-separator>
|
|
31
|
+
<ui-dropdown-menu-item variant="destructive">Log out</ui-dropdown-menu-item>
|
|
32
|
+
</ui-dropdown-menu-content>
|
|
33
|
+
</ui-dropdown-menu>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
| Input | Values | Default |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| `open` (uiDropdownMenu) | model boolean | `false` |
|
|
39
|
+
| `variant` (item) | `default` `destructive` | `default` |
|
|
40
|
+
| `checked` (checkbox item) | model boolean | `false` |
|
|
41
|
+
| `value` (radio group / item) | model string | - |
|
|
42
|
+
| `(select)` | event with `preventDefault()` | - |
|
|
43
|
+
|
|
44
|
+
Not implemented: sub-menus, context menu. Parts: Item, CheckboxItem, RadioGroup, RadioItem, Label, Separator, Shortcut, Group.
|
|
45
|
+
|
|
46
|
+
Spec: docs/behavior-specs/dropdown-menu.md - Manual checks: docs/manual-tests/dropdown-menu.md
|
package/empty/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Empty
|
|
2
|
+
|
|
3
|
+
```ts
|
|
4
|
+
import { UI_EMPTY_GENERATED } from '@loomui-ng/ui/empty';
|
|
5
|
+
// add to the component `imports` array
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div uiEmpty>
|
|
10
|
+
<div uiEmptyHeader>
|
|
11
|
+
<div uiEmptyIcon>…</div>
|
|
12
|
+
<div uiEmptyTitle>No projects</div>
|
|
13
|
+
<p uiEmptyDescription>Create one to get started.</p>
|
|
14
|
+
</div>
|
|
15
|
+
<div uiEmptyContent><button uiButton>New project</button></div>
|
|
16
|
+
</div>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Same thing as custom elements (identical inputs; directives keep working):
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<ui-empty>
|
|
23
|
+
<ui-empty-header>
|
|
24
|
+
<ui-empty-icon>…</ui-empty-icon>
|
|
25
|
+
<ui-empty-title>No projects</ui-empty-title>
|
|
26
|
+
<ui-empty-description>Create one to get started.</ui-empty-description>
|
|
27
|
+
</ui-empty-header>
|
|
28
|
+
<ui-empty-content><ui-button>New project</ui-button></ui-empty-content>
|
|
29
|
+
</ui-empty>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
| Input / output | Type / values | Default |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `variant` | `'icon' \| 'default'` | `'default'` |
|
|
35
|
+
|
|
36
|
+
Parts (selectors): `[uiEmpty], ui-empty`, `[uiEmptyHeader], ui-empty-header`, `[uiEmptyIcon], ui-empty-icon`, `[uiEmptyTitle], ui-empty-title`, `[uiEmptyDescription], ui-empty-description`, `[uiEmptyContent], ui-empty-content`.
|
|
37
|
+
|
|
38
|
+
Spec: `docs/behavior-specs/empty.md` · Manual test: `docs/manual-tests/empty.md`
|