@threadlabs/looma 0.10.11 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/components/shared/editor.js +2 -26
  2. package/components/shared/icons.js +53 -0
  3. package/components/ui-avatar-group/ui-avatar-group.html +6 -6
  4. package/components/ui-avatar-group/ui-avatar-group.js +1 -1
  5. package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +60 -0
  6. package/components/ui-breadcrumbs/ui-breadcrumbs.html +31 -0
  7. package/components/ui-card/ui-card.html +55 -0
  8. package/components/ui-combobox/ui-combobox.js +2 -2
  9. package/components/ui-context-menu/ui-context-menu.js +4 -4
  10. package/components/ui-cover/ui-cover.html +36 -0
  11. package/components/ui-description-item/ui-description-item.html +46 -0
  12. package/components/ui-description-list/ui-description-list.html +37 -0
  13. package/components/ui-icon/ui-icon.js +1 -1
  14. package/components/ui-list/ui-list.html +33 -0
  15. package/components/ui-list-item/ui-list-item.html +146 -0
  16. package/components/ui-menu/ui-menu.js +3 -3
  17. package/components/ui-page-header/ui-page-header.html +97 -0
  18. package/components/ui-radio/ui-radio.js +1 -1
  19. package/components/ui-radio-group/ui-radio-group.js +1 -1
  20. package/components/ui-section/ui-section.html +108 -0
  21. package/components/ui-spinner/ui-spinner.html +48 -0
  22. package/components/ui-status-message/ui-status-message.html +84 -0
  23. package/components/ui-text/ui-text.html +96 -0
  24. package/components/ui-tree/ui-tree.js +2 -2
  25. package/components/ui-tree-item/ui-tree-item.js +3 -3
  26. package/dist/index.js +1 -1
  27. package/editor/icons.d.ts +5 -0
  28. package/editor/index.js +6 -1
  29. package/package.json +1 -1
  30. package/styles/ui-avatar-group.css +6 -6
  31. package/styles/ui-breadcrumb-item.css +57 -0
  32. package/styles/ui-breadcrumbs.css +32 -0
  33. package/styles/ui-card.css +51 -0
  34. package/styles/ui-cover.css +35 -0
  35. package/styles/ui-description-item.css +43 -0
  36. package/styles/ui-description-list.css +38 -0
  37. package/styles/ui-list-item.css +146 -0
  38. package/styles/ui-list.css +33 -0
  39. package/styles/ui-page-header.css +89 -0
  40. package/styles/ui-section.css +94 -0
  41. package/styles/ui-spinner.css +42 -0
  42. package/styles/ui-status-message.css +72 -0
  43. package/styles/ui-text.css +85 -0
  44. package/vanilla/UiBreadcrumbItem.d.ts +14 -0
  45. package/vanilla/UiBreadcrumbItem.js +38 -0
  46. package/vanilla/UiBreadcrumbs.d.ts +14 -0
  47. package/vanilla/UiBreadcrumbs.js +39 -0
  48. package/vanilla/UiCard.d.ts +17 -0
  49. package/vanilla/UiCard.js +32 -0
  50. package/vanilla/UiCover.d.ts +14 -0
  51. package/vanilla/UiCover.js +28 -0
  52. package/vanilla/UiDescriptionItem.d.ts +14 -0
  53. package/vanilla/UiDescriptionItem.js +39 -0
  54. package/vanilla/UiDescriptionList.d.ts +14 -0
  55. package/vanilla/UiDescriptionList.js +28 -0
  56. package/vanilla/UiList.d.ts +14 -0
  57. package/vanilla/UiList.js +29 -0
  58. package/vanilla/UiListItem.d.ts +15 -0
  59. package/vanilla/UiListItem.js +77 -0
  60. package/vanilla/UiPageHeader.d.ts +14 -0
  61. package/vanilla/UiPageHeader.js +78 -0
  62. package/vanilla/UiSection.d.ts +16 -0
  63. package/vanilla/UiSection.js +64 -0
  64. package/vanilla/UiSpinner.d.ts +15 -0
  65. package/vanilla/UiSpinner.js +23 -0
  66. package/vanilla/UiStatusMessage.d.ts +16 -0
  67. package/vanilla/UiStatusMessage.js +53 -0
  68. package/vanilla/UiText.d.ts +20 -0
  69. package/vanilla/UiText.js +38 -0
  70. package/vanilla/index.js +13 -0
  71. package/vue/UiAvatarGroup.vue +6 -6
  72. package/vue/UiBreadcrumbItem.d.ts +18 -0
  73. package/vue/UiBreadcrumbItem.js +2 -0
  74. package/vue/UiBreadcrumbItem.vue +101 -0
  75. package/vue/UiBreadcrumbs.d.ts +18 -0
  76. package/vue/UiBreadcrumbs.js +2 -0
  77. package/vue/UiBreadcrumbs.vue +45 -0
  78. package/vue/UiCard.d.ts +24 -0
  79. package/vue/UiCard.js +2 -0
  80. package/vue/UiCard.vue +82 -0
  81. package/vue/UiCover.d.ts +18 -0
  82. package/vue/UiCover.js +2 -0
  83. package/vue/UiCover.vue +57 -0
  84. package/vue/UiDescriptionItem.d.ts +18 -0
  85. package/vue/UiDescriptionItem.js +2 -0
  86. package/vue/UiDescriptionItem.vue +58 -0
  87. package/vue/UiDescriptionList.d.ts +18 -0
  88. package/vue/UiDescriptionList.js +2 -0
  89. package/vue/UiDescriptionList.vue +62 -0
  90. package/vue/UiIconButton.d.ts +1 -1
  91. package/vue/UiList.d.ts +18 -0
  92. package/vue/UiList.js +2 -0
  93. package/vue/UiList.vue +60 -0
  94. package/vue/UiListItem.d.ts +26 -0
  95. package/vue/UiListItem.js +2 -0
  96. package/vue/UiListItem.vue +171 -0
  97. package/vue/UiPageHeader.d.ts +26 -0
  98. package/vue/UiPageHeader.js +2 -0
  99. package/vue/UiPageHeader.vue +118 -0
  100. package/vue/UiSection.d.ts +26 -0
  101. package/vue/UiSection.js +2 -0
  102. package/vue/UiSection.vue +128 -0
  103. package/vue/UiSpinner.d.ts +10 -0
  104. package/vue/UiSpinner.js +2 -0
  105. package/vue/UiSpinner.vue +87 -0
  106. package/vue/UiStatusMessage.d.ts +24 -0
  107. package/vue/UiStatusMessage.js +2 -0
  108. package/vue/UiStatusMessage.vue +121 -0
  109. package/vue/UiText.d.ts +30 -0
  110. package/vue/UiText.js +2 -0
  111. package/vue/UiText.vue +125 -0
  112. package/vue/chunks/UiAvatarGroup.js +1 -1
  113. package/vue/chunks/UiBreadcrumbItem.js +50 -0
  114. package/vue/chunks/UiBreadcrumbs.js +19 -0
  115. package/vue/chunks/UiCard.js +31 -0
  116. package/vue/chunks/UiCover.js +21 -0
  117. package/vue/chunks/UiDescriptionItem.js +16 -0
  118. package/vue/chunks/UiDescriptionList.js +21 -0
  119. package/vue/chunks/UiList.js +24 -0
  120. package/vue/chunks/UiListItem.js +39 -0
  121. package/vue/chunks/UiPageHeader.js +35 -0
  122. package/vue/chunks/UiSection.js +34 -0
  123. package/vue/chunks/UiSpinner.js +64 -0
  124. package/vue/chunks/UiStatusMessage.js +54 -0
  125. package/vue/chunks/UiText.js +40 -0
  126. package/vue/components.css +661 -29
  127. package/vue/index.d.ts +13 -0
  128. package/vue/index.js +15 -2
@@ -0,0 +1,101 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed } from 'vue'
4
+ import UiIcon from './UiIcon.vue'
5
+
6
+ defineOptions({ inheritAttrs: false })
7
+
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ current?: boolean
11
+ }>(),
12
+ {
13
+ current: false,
14
+ },
15
+ )
16
+
17
+ /** The values the styles' :host-state() rules test. */
18
+ const hostState = computed(() =>
19
+ [
20
+ props.current && 'current',
21
+ ].filter(Boolean).join(' ')
22
+ )
23
+
24
+ function text(value: unknown): string {
25
+ if (Array.isArray(value)) return value.map(text).join(' ')
26
+ return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
27
+ }
28
+
29
+ function attribute(value: unknown): any {
30
+ if (
31
+ value === null || value === undefined || value === false
32
+ || (typeof value === 'object' && !Array.isArray(value))
33
+ ) return undefined
34
+ return value === true ? '' : text(value)
35
+ }
36
+ </script>
37
+
38
+ <template>
39
+ <li
40
+ data-component="ui-breadcrumb-item"
41
+ v-bind="$attrs"
42
+ :aria-current="typeof (({ true: 'page', false: null })[`${current}`]) === 'boolean'
43
+ ? String(({ true: 'page', false: null })[`${current}`])
44
+ : attribute(({ true: 'page', false: null })[`${current}`])"
45
+ :data-ui-breadcrumb-item-state="hostState || undefined"
46
+ >
47
+ <span class="separator" aria-hidden="true"><UiIcon name="chevron-right" /></span>
48
+ <span class="content"><slot /></span>
49
+ </li>
50
+ </template>
51
+
52
+ <style scoped>
53
+ /* One step in a ui-breadcrumbs trail: a link up to that place, or the current view. A chevron leads
54
+ every step but the first. An icon slotted before the name sits with it. */
55
+ [data-component~="ui-breadcrumb-item"] {
56
+ display: inline-flex;
57
+ align-items: center;
58
+ gap: var(--ui-space-2);
59
+ min-inline-size: 0;
60
+ }
61
+
62
+ .separator {
63
+ display: inline-flex;
64
+ color: var(--ui-text-muted);
65
+ font-size: var(--ui-font-size-xs);
66
+ }
67
+
68
+ [data-component~="ui-breadcrumb-item"]:first-child .separator {
69
+ display: none;
70
+ }
71
+
72
+ .content {
73
+ display: inline-flex;
74
+ align-items: center;
75
+ gap: var(--ui-space-1);
76
+ min-inline-size: 0;
77
+ }
78
+
79
+ .content > :slotted(a) {
80
+ display: inline-flex;
81
+ align-items: center;
82
+ gap: var(--ui-space-1);
83
+ color: var(--ui-text-secondary);
84
+ text-decoration: none;
85
+ }
86
+
87
+ .content > :slotted(a:hover) {
88
+ color: var(--ui-text-primary);
89
+ text-decoration: underline;
90
+ }
91
+
92
+ [data-component~="ui-breadcrumb-item"][data-ui-breadcrumb-item-state~="current"] .content {
93
+ color: var(--ui-text-primary);
94
+ font-weight: var(--ui-font-medium);
95
+ }
96
+
97
+ /* A component that sets its display still honours the hidden attribute on its root. */
98
+ [data-component~="ui-breadcrumb-item"][hidden] {
99
+ display: none;
100
+ }
101
+ </style>
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ label?: string;
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ label: string;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
@@ -0,0 +1,2 @@
1
+ import { t as UiBreadcrumbs_default } from "./chunks/UiBreadcrumbs.js";
2
+ export { UiBreadcrumbs_default as default };
@@ -0,0 +1,45 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ defineOptions({ inheritAttrs: false })
4
+
5
+ withDefaults(
6
+ defineProps<{
7
+ label?: string
8
+ }>(),
9
+ {
10
+ label: 'Breadcrumb',
11
+ },
12
+ )
13
+ </script>
14
+
15
+ <template>
16
+ <nav data-component="ui-breadcrumbs" v-bind="$attrs" :aria-label="label">
17
+ <ol role="list"><slot /></ol>
18
+ </nav>
19
+ </template>
20
+
21
+ <style scoped>
22
+ /* Where a view sits: a trail of ui-breadcrumb-item, from the top down to the current view. It wraps
23
+ rather than scrolls, so every step stays reachable. */
24
+ [data-component~="ui-breadcrumbs"] {
25
+ display: block;
26
+ min-inline-size: 0;
27
+ color: var(--ui-text-muted);
28
+ font-size: var(--ui-font-size-sm);
29
+ }
30
+
31
+ ol {
32
+ display: flex;
33
+ flex-wrap: wrap;
34
+ align-items: center;
35
+ gap: var(--ui-space-1) var(--ui-space-2);
36
+ margin: 0;
37
+ padding: 0;
38
+ list-style: none;
39
+ }
40
+
41
+ /* A component that sets its display still honours the hidden attribute on its root. */
42
+ [data-component~="ui-breadcrumbs"][hidden] {
43
+ display: none;
44
+ }
45
+ </style>
@@ -0,0 +1,24 @@
1
+ type __VLS_Props = {
2
+ as?: 'div' | 'section' | 'article' | 'aside';
3
+ padding?: 'sm' | 'md' | 'lg';
4
+ tone?: 'neutral' | 'danger';
5
+ variant?: 'outlined' | 'subtle' | 'elevated';
6
+ };
7
+ declare var __VLS_8: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_8) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ tone: "neutral" | "danger";
13
+ variant: "outlined" | "subtle" | "elevated";
14
+ as: "div" | "section" | "article" | "aside";
15
+ padding: "sm" | "md" | "lg";
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ type __VLS_WithSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
package/vue/UiCard.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as UiCard_default } from "./chunks/UiCard.js";
2
+ export { UiCard_default as default };
package/vue/UiCard.vue ADDED
@@ -0,0 +1,82 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ as?: 'div' | 'section' | 'article' | 'aside'
10
+ padding?: 'sm' | 'md' | 'lg'
11
+ tone?: 'neutral' | 'danger'
12
+ variant?: 'outlined' | 'subtle' | 'elevated'
13
+ }>(),
14
+ {
15
+ as: 'div',
16
+ padding: 'md',
17
+ tone: 'neutral',
18
+ variant: 'outlined',
19
+ },
20
+ )
21
+
22
+ /** The values the styles' :host-state() rules test. */
23
+ const hostState = computed(() =>
24
+ [
25
+ props.padding && `padding padding=${props.padding}`,
26
+ props.variant && `variant variant=${props.variant}`,
27
+ props.tone && `tone tone=${props.tone}`,
28
+ ].filter(Boolean).join(' ')
29
+ )
30
+ </script>
31
+
32
+ <template>
33
+ <component
34
+ :is="as" data-component="ui-card" v-bind="$attrs" :data-ui-card-state="hostState || undefined">
35
+ <slot />
36
+ </component>
37
+ </template>
38
+
39
+ <style scoped>
40
+ /* A surface that groups content. Its children stack with even space between them, so a card
41
+ needs no layout of its own. */
42
+ [data-component~="ui-card"] {
43
+ display: flex;
44
+ flex-direction: column;
45
+ gap: var(--ui-space-4);
46
+ box-sizing: border-box;
47
+ min-inline-size: 0;
48
+ padding: var(--ui-space-5);
49
+ border: 1px solid var(--ui-border-default);
50
+ border-radius: var(--ui-radius-lg);
51
+ background: var(--ui-surface-raised);
52
+ color: var(--ui-text-primary);
53
+ }
54
+
55
+ [data-component~="ui-card"][data-ui-card-state~="padding=sm"] {
56
+ gap: var(--ui-space-2);
57
+ padding: var(--ui-space-3);
58
+ }
59
+
60
+ [data-component~="ui-card"][data-ui-card-state~="padding=lg"] {
61
+ padding: var(--ui-space-6);
62
+ }
63
+
64
+ [data-component~="ui-card"][data-ui-card-state~="variant=subtle"] {
65
+ border-color: transparent;
66
+ background: var(--ui-surface-muted);
67
+ }
68
+
69
+ [data-component~="ui-card"][data-ui-card-state~="variant=elevated"] {
70
+ border-color: var(--ui-border-subtle);
71
+ box-shadow: var(--ui-shadow-lg);
72
+ }
73
+
74
+ [data-component~="ui-card"][data-ui-card-state~="tone=danger"] {
75
+ border-color: var(--ui-danger);
76
+ }
77
+
78
+ /* A component that sets its display still honours the hidden attribute on its root. */
79
+ [data-component~="ui-card"][hidden] {
80
+ display: none;
81
+ }
82
+ </style>
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ size?: 'screen' | 'fill';
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ size: "screen" | "fill";
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
package/vue/UiCover.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as UiCover_default } from "./chunks/UiCover.js";
2
+ export { UiCover_default as default };
@@ -0,0 +1,57 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ size?: 'screen' | 'fill'
10
+ }>(),
11
+ {
12
+ size: 'screen',
13
+ },
14
+ )
15
+
16
+ /** The values the styles' :host-state() rules test. */
17
+ const hostState = computed(() =>
18
+ [
19
+ props.size && `size size=${props.size}`,
20
+ ].filter(Boolean).join(' ')
21
+ )
22
+ </script>
23
+
24
+ <template>
25
+ <div data-component="ui-cover" v-bind="$attrs" :data-ui-cover-state="hostState || undefined">
26
+ <slot />
27
+ </div>
28
+ </template>
29
+
30
+ <style scoped>
31
+ /* A layout primitive that centres its content in the space, both ways, with room around it: the
32
+ frame for a view that is one card or one message. */
33
+ [data-component~="ui-cover"] {
34
+ display: flex;
35
+ flex-direction: column;
36
+ align-items: center;
37
+ justify-content: center;
38
+ gap: var(--ui-space-6);
39
+ box-sizing: border-box;
40
+ min-block-size: 100dvh;
41
+ padding: var(--ui-space-6) var(--ui-space-4);
42
+ }
43
+
44
+ [data-component~="ui-cover"][data-ui-cover-state~="size=fill"] {
45
+ flex: 1;
46
+ min-block-size: 100%;
47
+ }
48
+
49
+ [data-component~="ui-cover"] > :slotted(*) {
50
+ max-inline-size: 100%;
51
+ }
52
+
53
+ /* A component that sets its display still honours the hidden attribute on its root. */
54
+ [data-component~="ui-cover"][hidden] {
55
+ display: none;
56
+ }
57
+ </style>
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ term?: string;
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ term: string;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
@@ -0,0 +1,2 @@
1
+ import { t as UiDescriptionItem_default } from "./chunks/UiDescriptionItem.js";
2
+ export { UiDescriptionItem_default as default };
@@ -0,0 +1,58 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ defineOptions({ inheritAttrs: false })
4
+
5
+ withDefaults(
6
+ defineProps<{
7
+ term?: string
8
+ }>(),
9
+ {
10
+ term: '',
11
+ },
12
+ )
13
+ </script>
14
+
15
+ <template>
16
+ <div data-component="ui-description-item" v-bind="$attrs">
17
+ <dt>{{ term }}</dt>
18
+ <dd><slot /></dd>
19
+ </div>
20
+ </template>
21
+
22
+ <style scoped>
23
+ /* One term and its value in a ui-description-list, laid out by the list's layout. */
24
+ [data-component~="ui-description-item"] {
25
+ display: var(--_ui-description-display, grid);
26
+ grid-column: var(--_ui-description-column, 1 / -1);
27
+ grid-template-columns: subgrid;
28
+ flex-direction: column;
29
+ align-items: var(--_ui-description-align, baseline);
30
+ gap: var(--ui-space-1) var(--ui-space-6);
31
+ min-inline-size: 0;
32
+ padding: var(--_ui-description-padding, 0);
33
+ border-width: var(--_ui-description-border-width, 0);
34
+ border-style: solid;
35
+ border-color: var(--ui-border-default);
36
+ border-radius: var(--ui-radius-md);
37
+ font-size: var(--ui-font-size-sm);
38
+ }
39
+
40
+ dt {
41
+ color: var(--ui-text-muted);
42
+ }
43
+
44
+ dd {
45
+ margin: 0;
46
+ min-inline-size: 0;
47
+ color: var(--ui-text-primary);
48
+ font-weight: var(--ui-font-medium);
49
+ font-size: var(--_ui-description-value-size, inherit);
50
+ text-align: start;
51
+ overflow-wrap: anywhere;
52
+ }
53
+
54
+ /* A component that sets its display still honours the hidden attribute on its root. */
55
+ [data-component~="ui-description-item"][hidden] {
56
+ display: none;
57
+ }
58
+ </style>
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ layout?: 'rows' | 'tiles';
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ layout: "rows" | "tiles";
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
@@ -0,0 +1,2 @@
1
+ import { t as UiDescriptionList_default } from "./chunks/UiDescriptionList.js";
2
+ export { UiDescriptionList_default as default };
@@ -0,0 +1,62 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ layout?: 'rows' | 'tiles'
10
+ }>(),
11
+ {
12
+ layout: 'rows',
13
+ },
14
+ )
15
+
16
+ /** The values the styles' :host-state() rules test. */
17
+ const hostState = computed(() =>
18
+ [
19
+ props.layout && `layout layout=${props.layout}`,
20
+ ].filter(Boolean).join(' ')
21
+ )
22
+ </script>
23
+
24
+ <template>
25
+ <dl
26
+ data-component="ui-description-list"
27
+ v-bind="$attrs"
28
+ :data-ui-description-list-state="hostState || undefined"
29
+ >
30
+ <slot />
31
+ </dl>
32
+ </template>
33
+
34
+ <style scoped>
35
+ /* Named values: a term and what it is, for each item (ui-description-item). */
36
+ /* Rows line every term up in one column and every value in the next, through subgrid. */
37
+ [data-component~="ui-description-list"] {
38
+ display: grid;
39
+ grid-template-columns: minmax(6rem, max-content) minmax(0, 1fr);
40
+ gap: var(--ui-space-2) var(--ui-space-6);
41
+ min-inline-size: 0;
42
+ margin: 0;
43
+ }
44
+
45
+ /* Tiles pass their shape to the items through private properties, which cross into each item. */
46
+ [data-component~="ui-description-list"][data-ui-description-list-state~="layout=tiles"] {
47
+ --_ui-description-display: flex;
48
+ --_ui-description-column: auto;
49
+ --_ui-description-align: flex-start;
50
+ --_ui-description-value-size: var(--ui-font-size-lg);
51
+ --_ui-description-padding: var(--ui-space-3);
52
+ --_ui-description-border-width: 1px;
53
+ display: grid;
54
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr));
55
+ gap: var(--ui-space-3);
56
+ }
57
+
58
+ /* A component that sets its display still honours the hidden attribute on its root. */
59
+ [data-component~="ui-description-list"][hidden] {
60
+ display: none;
61
+ }
62
+ </style>
@@ -12,9 +12,9 @@ type __VLS_Slots = {} & {
12
12
  };
13
13
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
14
  variant: "ghost" | "outline" | "solid";
15
+ round: boolean;
15
16
  disabled: boolean;
16
17
  size: "sm" | "md" | "lg";
17
- round: boolean;
18
18
  anticipatory: boolean;
19
19
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
20
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ layout?: 'rows' | 'grid';
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ layout: "rows" | "grid";
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
package/vue/UiList.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as UiList_default } from "./chunks/UiList.js";
2
+ export { UiList_default as default };
package/vue/UiList.vue ADDED
@@ -0,0 +1,60 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.5 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ layout?: 'rows' | 'grid'
10
+ }>(),
11
+ {
12
+ layout: 'rows',
13
+ },
14
+ )
15
+
16
+ /** The values the styles' :host-state() rules test. */
17
+ const hostState = computed(() =>
18
+ [
19
+ props.layout && `layout layout=${props.layout}`,
20
+ ].filter(Boolean).join(' ')
21
+ )
22
+ </script>
23
+
24
+ <template>
25
+ <ul
26
+ data-component="ui-list"
27
+ role="list"
28
+ v-bind="$attrs"
29
+ :data-ui-list-state="hostState || undefined"
30
+ >
31
+ <slot />
32
+ </ul>
33
+ </template>
34
+
35
+ <style scoped>
36
+ /* A list of items (ui-list-item). It owns the spacing between them, so a view never sets it. The
37
+ explicit list role keeps the list announced as one: some browsers drop it from a list with no
38
+ markers. */
39
+ [data-component~="ui-list"] {
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: var(--ui-list-gap, var(--ui-space-1));
43
+ min-inline-size: 0;
44
+ margin: 0;
45
+ padding: 0;
46
+ list-style: none;
47
+ }
48
+
49
+ [data-component~="ui-list"][data-ui-list-state~="layout=grid"] {
50
+ display: grid;
51
+ grid-template-columns:
52
+ repeat(auto-fill, minmax(min(100%, var(--ui-list-min-item-width, 14rem)), 1fr));
53
+ gap: var(--ui-list-gap, var(--ui-space-3));
54
+ }
55
+
56
+ /* A component that sets its display still honours the hidden attribute on its root. */
57
+ [data-component~="ui-list"][hidden] {
58
+ display: none;
59
+ }
60
+ </style>
@@ -0,0 +1,26 @@
1
+ type __VLS_Props = {
2
+ current?: boolean;
3
+ variant?: 'row' | 'card';
4
+ };
5
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
6
+ type __VLS_Slots = {} & {
7
+ leading?: (props: typeof __VLS_1) => any;
8
+ } & {
9
+ default?: (props: typeof __VLS_3) => any;
10
+ } & {
11
+ description?: (props: typeof __VLS_5) => any;
12
+ } & {
13
+ trailing?: (props: typeof __VLS_7) => any;
14
+ };
15
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
+ variant: "row" | "card";
17
+ current: boolean;
18
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ type __VLS_WithSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1,2 @@
1
+ import { t as UiListItem_default } from "./chunks/UiListItem.js";
2
+ export { UiListItem_default as default };