@threadlabs/looma 0.14.0 → 0.14.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/components/ui-description-list/ui-description-list.html +54 -9
- package/components/ui-table/ui-table.html +131 -0
- package/components/ui-table/ui-table.js +55 -0
- package/dist/index.js +8 -7
- package/package.json +1 -1
- package/styles/ui-description-list.css +52 -7
- package/styles/ui-table.css +134 -0
- package/vanilla/UiDescriptionList.d.ts +3 -1
- package/vanilla/UiDescriptionList.js +6 -2
- package/vanilla/UiTable.d.ts +15 -0
- package/vanilla/UiTable.js +30 -0
- package/vanilla/index.js +1 -0
- package/vue/UiDescriptionList.d.ts +5 -2
- package/vue/UiDescriptionList.vue +51 -7
- package/vue/UiList.d.ts +1 -1
- package/vue/UiTable.d.ts +20 -0
- package/vue/UiTable.js +2 -0
- package/vue/UiTable.vue +172 -0
- package/vue/chunks/UiDescriptionList.js +11 -3
- package/vue/chunks/UiTable.js +40 -0
- package/vue/components.css +157 -9
- package/vue/index.d.ts +1 -0
- package/vue/index.js +2 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
3
|
+
import { computed, createElementBlock, defineComponent, mergeProps, openBlock, ref, renderSlot } from "vue";
|
|
4
|
+
import * as controllerModule from "@threadlabs/looma/components/ui-table/ui-table.js";
|
|
5
|
+
//#region .build/vue/UiTable.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var _hoisted_1 = ["data-ui-table-state"];
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region .build/vue/UiTable.vue
|
|
9
|
+
var UiTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
__name: "UiTable",
|
|
12
|
+
props: {
|
|
13
|
+
density: { default: "comfortable" },
|
|
14
|
+
stickyHeader: {
|
|
15
|
+
type: Boolean,
|
|
16
|
+
default: false
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
setup(__props) {
|
|
20
|
+
const props = __props;
|
|
21
|
+
const root = ref(null);
|
|
22
|
+
/** The values the styles' :host-state() rules test. */
|
|
23
|
+
const hostState = computed(() => [props.density && `density density=${props.density}`, props.stickyHeader && "stickyHeader"].filter(Boolean).join(" "));
|
|
24
|
+
const dispatch = createDispatch(root);
|
|
25
|
+
useComponentHost(controllerModule.default, {
|
|
26
|
+
root,
|
|
27
|
+
dispatch,
|
|
28
|
+
props
|
|
29
|
+
});
|
|
30
|
+
return (_ctx, _cache) => {
|
|
31
|
+
return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-table" }, _ctx.$attrs, {
|
|
32
|
+
"data-ui-table-state": hostState.value || void 0,
|
|
33
|
+
ref_key: "root",
|
|
34
|
+
ref: root
|
|
35
|
+
}), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}), [["__scopeId", "data-v-9980d203"]]);
|
|
39
|
+
//#endregion
|
|
40
|
+
export { UiTable_default as t };
|
package/vue/components.css
CHANGED
|
@@ -1844,29 +1844,66 @@ dd[data-v-6e5b491d] {
|
|
|
1844
1844
|
|
|
1845
1845
|
/* Named values: a term and what it is, for each item (ui-description-item). */
|
|
1846
1846
|
/* Rows line every term up in one column and every value in the next, through subgrid. */
|
|
1847
|
-
[data-component~="ui-description-list"][data-v-
|
|
1847
|
+
[data-component~="ui-description-list"][data-v-640c2332] {
|
|
1848
|
+
--_gap: var(--ui-space-2);
|
|
1849
|
+
--_gap-compact: var(--ui-space-1);
|
|
1850
|
+
--_column-gap: var(--ui-space-6);
|
|
1851
|
+
--_min: 10rem;
|
|
1852
|
+
--_track: var(--_min);
|
|
1853
|
+
--_tile-padding: var(--ui-space-3);
|
|
1848
1854
|
display: grid;
|
|
1849
1855
|
grid-template-columns: minmax(6rem, max-content) minmax(0, 1fr);
|
|
1850
|
-
gap: var(--
|
|
1856
|
+
gap: var(--_gap) var(--_column-gap);
|
|
1851
1857
|
min-inline-size: 0;
|
|
1852
1858
|
margin: 0;
|
|
1853
1859
|
}
|
|
1854
1860
|
|
|
1855
|
-
/*
|
|
1856
|
-
|
|
1861
|
+
/* Stacked, grid, and tiles set each term above its value, passing the shape to the items through
|
|
1862
|
+
private properties, which cross into each item. */
|
|
1863
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="layout=stacked"][data-v-640c2332],
|
|
1864
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="layout=grid"][data-v-640c2332],
|
|
1865
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="layout=tiles"][data-v-640c2332] {
|
|
1857
1866
|
--_ui-description-display: flex;
|
|
1858
1867
|
--_ui-description-column: auto;
|
|
1868
|
+
--_ui-description-align: stretch;
|
|
1869
|
+
--_gap: var(--ui-space-4);
|
|
1870
|
+
--_gap-compact: var(--ui-space-2);
|
|
1871
|
+
grid-template-columns: minmax(0, 1fr);
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1874
|
+
/* A column is at least --_min wide; with columns set, at least its share of the width, so no more
|
|
1875
|
+
than that many fit. */
|
|
1876
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="layout=grid"][data-v-640c2332],
|
|
1877
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="layout=tiles"][data-v-640c2332] {
|
|
1878
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--_track)), 1fr));
|
|
1879
|
+
}
|
|
1880
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="layout=tiles"][data-v-640c2332] {
|
|
1859
1881
|
--_ui-description-align: flex-start;
|
|
1860
1882
|
--_ui-description-value-size: var(--ui-font-size-lg);
|
|
1861
|
-
--_ui-description-padding: var(--
|
|
1883
|
+
--_ui-description-padding: var(--_tile-padding);
|
|
1862
1884
|
--_ui-description-border-width: 1px;
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
gap: var(--
|
|
1885
|
+
--_gap: var(--ui-space-3);
|
|
1886
|
+
--_gap-compact: var(--ui-space-2);
|
|
1887
|
+
--_column-gap: var(--_gap);
|
|
1888
|
+
}
|
|
1889
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="columns=2"][data-v-640c2332] {
|
|
1890
|
+
--_track: max(var(--_min), (100% - var(--_column-gap)) / 2);
|
|
1891
|
+
}
|
|
1892
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="columns=3"][data-v-640c2332] {
|
|
1893
|
+
--_track: max(var(--_min), (100% - 2 * var(--_column-gap)) / 3);
|
|
1894
|
+
}
|
|
1895
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="columns=4"][data-v-640c2332] {
|
|
1896
|
+
--_track: max(var(--_min), (100% - 3 * var(--_column-gap)) / 4);
|
|
1897
|
+
}
|
|
1898
|
+
|
|
1899
|
+
/* Compact takes each layout's closer spacing. */
|
|
1900
|
+
[data-component~="ui-description-list"][data-ui-description-list-state~="density=compact"][data-v-640c2332] {
|
|
1901
|
+
--_gap: var(--_gap-compact);
|
|
1902
|
+
--_tile-padding: var(--ui-space-2);
|
|
1866
1903
|
}
|
|
1867
1904
|
|
|
1868
1905
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
1869
|
-
[data-component~="ui-description-list"][hidden][data-v-
|
|
1906
|
+
[data-component~="ui-description-list"][hidden][data-v-640c2332] {
|
|
1870
1907
|
display: none;
|
|
1871
1908
|
}
|
|
1872
1909
|
|
|
@@ -5951,6 +5988,117 @@ input[data-v-87fc218c], input[data-v-87fc218c]::after {
|
|
|
5951
5988
|
display: none;
|
|
5952
5989
|
}
|
|
5953
5990
|
|
|
5991
|
+
/* Styles an authored <table> (caption, thead, tbody, th scope) without replacing it: the table is
|
|
5992
|
+
meaningful before JavaScript, and a screen reader reads it as a table. The root scrolls a table
|
|
5993
|
+
wider than it, or taller than a bounded height; while it does, the controller makes the root a named, focusable region so a
|
|
5994
|
+
keyboard can scroll it. A cell's data-ui-align (start, center, or end; start by default) sets its
|
|
5995
|
+
content along the row, such as end for a column of figures. */
|
|
5996
|
+
[data-component~="ui-table"][data-v-9980d203] {
|
|
5997
|
+
--_pad-block: var(--ui-space-1);
|
|
5998
|
+
--_pad-inline: var(--ui-space-3);
|
|
5999
|
+
--_row-size: var(--ui-control-size);
|
|
6000
|
+
display: block;
|
|
6001
|
+
box-sizing: border-box;
|
|
6002
|
+
max-inline-size: 100%;
|
|
6003
|
+
min-inline-size: 0;
|
|
6004
|
+
min-block-size: 0;
|
|
6005
|
+
overflow: auto;
|
|
6006
|
+
overscroll-behavior-inline: contain;
|
|
6007
|
+
/* The sideways scroll fade every Looma scroller uses (see ui-scroll-area). Only the inline edges
|
|
6008
|
+
fade, so a sticky header never fades. */
|
|
6009
|
+
--_ui-scroll-fade-direction: to right;
|
|
6010
|
+
--_ui-scroll-fade-size: var(--ui-scroll-fade-size, 24px);
|
|
6011
|
+
mask-image: linear-gradient(
|
|
6012
|
+
var(--_ui-scroll-fade-direction),
|
|
6013
|
+
transparent,
|
|
6014
|
+
#000 var(--_ui-scroll-fade-start),
|
|
6015
|
+
#000 calc(100% - var(--_ui-scroll-fade-end)),
|
|
6016
|
+
transparent
|
|
6017
|
+
);
|
|
6018
|
+
animation:
|
|
6019
|
+
ui-scroll-fade-start linear,
|
|
6020
|
+
ui-scroll-fade-start-hold linear,
|
|
6021
|
+
ui-scroll-fade-end-hold linear,
|
|
6022
|
+
ui-scroll-fade-end linear;
|
|
6023
|
+
animation-timeline: scroll(self inline);
|
|
6024
|
+
animation-range:
|
|
6025
|
+
0 var(--_ui-scroll-fade-size),
|
|
6026
|
+
var(--_ui-scroll-fade-size) calc(100% + 1px),
|
|
6027
|
+
-1px calc(100% - var(--_ui-scroll-fade-size)),
|
|
6028
|
+
calc(100% - var(--_ui-scroll-fade-size)) 100%;
|
|
6029
|
+
}
|
|
6030
|
+
[data-component~="ui-table"][data-v-9980d203]:dir(rtl) {
|
|
6031
|
+
--_ui-scroll-fade-direction: to left;
|
|
6032
|
+
}
|
|
6033
|
+
[data-component~="ui-table"][data-v-9980d203]:focus-visible {
|
|
6034
|
+
outline: 2px solid var(--ui-focus-ring);
|
|
6035
|
+
outline-offset: -2px;
|
|
6036
|
+
}
|
|
6037
|
+
[data-component~="ui-table"][data-ui-table-state~="density=compact"][data-v-9980d203] {
|
|
6038
|
+
--_pad-block: var(--ui-space-0-5);
|
|
6039
|
+
--_pad-inline: var(--ui-space-2);
|
|
6040
|
+
--_row-size: var(--ui-control-size-sm);
|
|
6041
|
+
}
|
|
6042
|
+
|
|
6043
|
+
/* Separate borders stay on their cells when a sticky header scrolls; collapsed ones stay behind. */
|
|
6044
|
+
table[data-v-9980d203-s] {
|
|
6045
|
+
inline-size: 100%;
|
|
6046
|
+
border-collapse: separate;
|
|
6047
|
+
border-spacing: 0;
|
|
6048
|
+
color: var(--ui-text-primary);
|
|
6049
|
+
font-size: var(--ui-font-size-sm);
|
|
6050
|
+
line-height: var(--ui-line-height);
|
|
6051
|
+
font-variant-numeric: tabular-nums;
|
|
6052
|
+
}
|
|
6053
|
+
caption[data-v-9980d203-s] {
|
|
6054
|
+
padding-block-end: var(--ui-space-2);
|
|
6055
|
+
color: var(--ui-text-secondary);
|
|
6056
|
+
font-weight: var(--ui-font-medium);
|
|
6057
|
+
text-align: start;
|
|
6058
|
+
}
|
|
6059
|
+
|
|
6060
|
+
/* Every row is at least one control tall, so a row holding a checkbox, select, or input keeps the
|
|
6061
|
+
rhythm of the rows around it. A cell's height is its minimum. */
|
|
6062
|
+
th[data-v-9980d203-s],td[data-v-9980d203-s] {
|
|
6063
|
+
block-size: var(--_row-size);
|
|
6064
|
+
padding: var(--_pad-block) var(--_pad-inline);
|
|
6065
|
+
border-block-end: 1px solid var(--ui-border-subtle);
|
|
6066
|
+
text-align: start;
|
|
6067
|
+
vertical-align: middle;
|
|
6068
|
+
}
|
|
6069
|
+
thead th[data-v-9980d203-s] {
|
|
6070
|
+
block-size: auto;
|
|
6071
|
+
padding-block: var(--ui-space-2);
|
|
6072
|
+
border-block-end-color: var(--ui-border-default);
|
|
6073
|
+
background: var(--ui-surface);
|
|
6074
|
+
color: var(--ui-text-muted);
|
|
6075
|
+
font-weight: var(--ui-font-medium);
|
|
6076
|
+
white-space: nowrap;
|
|
6077
|
+
vertical-align: bottom;
|
|
6078
|
+
}
|
|
6079
|
+
tbody th[data-v-9980d203-s] {
|
|
6080
|
+
font-weight: var(--ui-font-medium);
|
|
6081
|
+
}
|
|
6082
|
+
tbody tr[data-v-9980d203-s]:last-child > * {
|
|
6083
|
+
border-block-end-width: 0;
|
|
6084
|
+
}
|
|
6085
|
+
[data-ui-align="center"][data-v-9980d203-s] {
|
|
6086
|
+
text-align: center;
|
|
6087
|
+
}
|
|
6088
|
+
[data-ui-align="end"][data-v-9980d203-s] {
|
|
6089
|
+
text-align: end;
|
|
6090
|
+
}
|
|
6091
|
+
[data-component~="ui-table"][data-ui-table-state~="stickyHeader"] thead th[data-v-9980d203-s] {
|
|
6092
|
+
position: sticky;
|
|
6093
|
+
inset-block-start: 0;
|
|
6094
|
+
z-index: 1;
|
|
6095
|
+
}
|
|
6096
|
+
|
|
6097
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
6098
|
+
[data-component~="ui-table"][hidden][data-v-9980d203] {
|
|
6099
|
+
display: none;
|
|
6100
|
+
}
|
|
6101
|
+
|
|
5954
6102
|
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
5955
6103
|
@property --ui-tabs-tab-min-block-size {
|
|
5956
6104
|
syntax: "*";
|
package/vue/index.d.ts
CHANGED
|
@@ -55,6 +55,7 @@ export { default as Stack } from "./UiStack.js";
|
|
|
55
55
|
export { default as StatusMessage } from "./UiStatusMessage.js";
|
|
56
56
|
export { default as Switch } from "./UiSwitch.js";
|
|
57
57
|
export { default as Switcher } from "./UiSwitcher.js";
|
|
58
|
+
export { default as Table } from "./UiTable.js";
|
|
58
59
|
export { default as Tabs } from "./UiTabs.js";
|
|
59
60
|
export { default as Text } from "./UiText.js";
|
|
60
61
|
export { default as Textarea } from "./UiTextarea.js";
|
package/vue/index.js
CHANGED
|
@@ -56,6 +56,7 @@ import { t as UiStack_default } from "./chunks/UiStack.js";
|
|
|
56
56
|
import { t as UiStatusMessage_default } from "./chunks/UiStatusMessage.js";
|
|
57
57
|
import { t as UiSwitch_default } from "./chunks/UiSwitch.js";
|
|
58
58
|
import { t as UiSwitcher_default } from "./chunks/UiSwitcher.js";
|
|
59
|
+
import { t as UiTable_default } from "./chunks/UiTable.js";
|
|
59
60
|
import { t as UiTabs_default } from "./chunks/UiTabs.js";
|
|
60
61
|
import { t as UiText_default } from "./chunks/UiText.js";
|
|
61
62
|
import { t as UiTextarea_default } from "./chunks/UiTextarea.js";
|
|
@@ -64,4 +65,4 @@ import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
|
|
|
64
65
|
import { t as UiTree_default } from "./chunks/UiTree.js";
|
|
65
66
|
import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
|
|
66
67
|
import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
|
|
67
|
-
export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiMenu_default as Menu, UiMenuItem_default as MenuItem, UiNavItem_default as NavItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|
|
68
|
+
export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiMenu_default as Menu, UiMenuItem_default as MenuItem, UiNavItem_default as NavItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|