@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,121 @@
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 UiSpinner from './UiSpinner.vue'
5
+
6
+ defineOptions({ inheritAttrs: false })
7
+
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ heading?: string
11
+ kind?: 'empty' | 'loading' | 'error'
12
+ layout?: 'inline' | 'panel' | 'fill'
13
+ }>(),
14
+ {
15
+ heading: '',
16
+ kind: 'empty',
17
+ layout: 'inline',
18
+ },
19
+ )
20
+
21
+ /** The values the styles' :host-state() rules test. */
22
+ const hostState = computed(() =>
23
+ [
24
+ props.kind && `kind kind=${props.kind}`,
25
+ props.layout && `layout layout=${props.layout}`,
26
+ ].filter(Boolean).join(' ')
27
+ )
28
+
29
+ function text(value: unknown): string {
30
+ if (Array.isArray(value)) return value.map(text).join(' ')
31
+ return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
32
+ }
33
+
34
+ function attribute(value: unknown): any {
35
+ if (
36
+ value === null || value === undefined || value === false
37
+ || (typeof value === 'object' && !Array.isArray(value))
38
+ ) return undefined
39
+ return value === true ? '' : text(value)
40
+ }
41
+ </script>
42
+
43
+ <template>
44
+ <div
45
+ data-component="ui-status-message"
46
+ v-bind="$attrs"
47
+ :role="attribute(({ true: 'alert', false: 'status' })[`${kind === 'error'}`])"
48
+ :data-ui-status-message-state="hostState || undefined"
49
+ >
50
+ <UiSpinner size="sm" :hidden="kind !== 'loading'" />
51
+ <span class="copy"><strong class="heading" :hidden="!heading">{{ heading }}</strong>
52
+ <span class="message"><slot /></span></span>
53
+ <span class="action"><slot name="action" /></span>
54
+ </div>
55
+ </template>
56
+
57
+ <style scoped>
58
+ /* The one way a view says it is loading, has nothing yet, or failed, with an optional next step.
59
+ Every view says it the same way, in the same place, at the same size. */
60
+ [data-component~="ui-status-message"] {
61
+ display: flex;
62
+ flex-wrap: wrap;
63
+ align-items: center;
64
+ gap: var(--ui-space-2) var(--ui-space-4);
65
+ padding-block: var(--ui-space-4);
66
+ color: var(--ui-text-muted);
67
+ font-size: var(--ui-font-size-md);
68
+ line-height: var(--ui-line-height);
69
+ }
70
+
71
+ [data-component~="ui-status-message"][data-ui-status-message-state~="kind=error"] {
72
+ color: var(--ui-danger);
73
+ }
74
+
75
+ [data-component~="ui-status-message"][data-ui-status-message-state~="layout=panel"] {
76
+ padding: var(--ui-space-6);
77
+ border: 1px dashed var(--ui-border-default);
78
+ border-radius: var(--ui-radius-lg);
79
+ }
80
+
81
+ [data-component~="ui-status-message"][data-ui-status-message-state~="layout=fill"] {
82
+ flex: 1;
83
+ flex-direction: column;
84
+ justify-content: center;
85
+ min-block-size: 50vh;
86
+ text-align: center;
87
+ }
88
+
89
+ .copy {
90
+ display: flex;
91
+ flex: 1 1 12rem;
92
+ flex-direction: column;
93
+ gap: var(--ui-space-1);
94
+ min-inline-size: 0;
95
+ }
96
+
97
+ [data-component~="ui-status-message"][data-ui-status-message-state~="layout=fill"] .copy {
98
+ flex: none;
99
+ align-items: center;
100
+ }
101
+
102
+ .heading {
103
+ color: var(--ui-text-primary);
104
+ font-weight: var(--ui-font-semibold);
105
+ }
106
+
107
+ .action {
108
+ display: inline-flex;
109
+ flex-wrap: wrap;
110
+ gap: var(--ui-space-2);
111
+ }
112
+
113
+ .action:empty {
114
+ display: none;
115
+ }
116
+
117
+ /* A component that sets its display still honours the hidden attribute on its root. */
118
+ [data-component~="ui-status-message"][hidden] {
119
+ display: none;
120
+ }
121
+ </style>
@@ -0,0 +1,30 @@
1
+ type __VLS_Props = {
2
+ as?: 'p' | 'span' | 'div' | 'small' | 'strong' | 'label';
3
+ align?: 'start' | 'center';
4
+ size?: 'inherit' | 'xs' | 'sm' | 'md' | 'lg';
5
+ tone?: 'default' | 'secondary' | 'muted' | 'accent' | 'danger' | 'success';
6
+ truncate?: boolean;
7
+ variant?: 'body' | 'eyebrow' | 'code';
8
+ weight?: 'inherit' | 'normal' | 'medium' | 'semibold';
9
+ };
10
+ declare var __VLS_8: {};
11
+ type __VLS_Slots = {} & {
12
+ default?: (props: typeof __VLS_8) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
15
+ tone: "default" | "secondary" | "muted" | "accent" | "danger" | "success";
16
+ variant: "body" | "eyebrow" | "code";
17
+ as: "p" | "span" | "div" | "small" | "strong" | "label";
18
+ align: "start" | "center";
19
+ size: "inherit" | "xs" | "sm" | "md" | "lg";
20
+ truncate: boolean;
21
+ weight: "inherit" | "normal" | "medium" | "semibold";
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ type __VLS_WithSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
package/vue/UiText.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as UiText_default } from "./chunks/UiText.js";
2
+ export { UiText_default as default };
package/vue/UiText.vue ADDED
@@ -0,0 +1,125 @@
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?: 'p' | 'span' | 'div' | 'small' | 'strong' | 'label'
10
+ align?: 'start' | 'center'
11
+ size?: 'inherit' | 'xs' | 'sm' | 'md' | 'lg'
12
+ tone?: 'default' | 'secondary' | 'muted' | 'accent' | 'danger' | 'success'
13
+ truncate?: boolean
14
+ variant?: 'body' | 'eyebrow' | 'code'
15
+ weight?: 'inherit' | 'normal' | 'medium' | 'semibold'
16
+ }>(),
17
+ {
18
+ as: 'p',
19
+ align: 'start',
20
+ size: 'inherit',
21
+ tone: 'default',
22
+ truncate: false,
23
+ variant: 'body',
24
+ weight: 'inherit',
25
+ },
26
+ )
27
+
28
+ /** The values the styles' :host-state() rules test. */
29
+ const hostState = computed(() =>
30
+ [
31
+ props.size && `size size=${props.size}`,
32
+ props.tone && `tone tone=${props.tone}`,
33
+ props.weight && `weight weight=${props.weight}`,
34
+ props.variant && `variant variant=${props.variant}`,
35
+ props.truncate && 'truncate',
36
+ props.align && `align align=${props.align}`,
37
+ ].filter(Boolean).join(' ')
38
+ )
39
+ </script>
40
+
41
+ <template>
42
+ <component
43
+ :is="as" data-component="ui-text" v-bind="$attrs" :data-ui-text-state="hostState || undefined">
44
+ <slot />
45
+ </component>
46
+ </template>
47
+
48
+ <style scoped>
49
+ /* Running text, set on the type scale and in a tone that says what it is, so a view never styles
50
+ text of its own. The root is a paragraph unless as= names a span, div, small, strong, or label. */
51
+ [data-component~="ui-text"] {
52
+ margin: 0;
53
+ min-inline-size: 0;
54
+ color: var(--ui-text-primary);
55
+ text-align: start;
56
+ }
57
+
58
+ [data-component~="ui-text"][data-ui-text-state~="size=xs"] {
59
+ font-size: var(--ui-font-size-xs);
60
+ line-height: var(--ui-line-height);
61
+ }
62
+ [data-component~="ui-text"][data-ui-text-state~="size=sm"] {
63
+ font-size: var(--ui-font-size-sm);
64
+ line-height: var(--ui-line-height);
65
+ }
66
+ [data-component~="ui-text"][data-ui-text-state~="size=md"] {
67
+ font-size: var(--ui-font-size-md);
68
+ line-height: var(--ui-line-height);
69
+ }
70
+ [data-component~="ui-text"][data-ui-text-state~="size=lg"] {
71
+ font-size: var(--ui-font-size-lg);
72
+ line-height: var(--ui-line-height-relaxed);
73
+ }
74
+
75
+ [data-component~="ui-text"][data-ui-text-state~="tone=secondary"] {
76
+ color: var(--ui-text-secondary);
77
+ }
78
+ [data-component~="ui-text"][data-ui-text-state~="tone=muted"] {
79
+ color: var(--ui-text-muted);
80
+ }
81
+ [data-component~="ui-text"][data-ui-text-state~="tone=accent"] {
82
+ color: var(--ui-accent-active);
83
+ }
84
+ [data-component~="ui-text"][data-ui-text-state~="tone=danger"] {
85
+ color: var(--ui-danger);
86
+ }
87
+ [data-component~="ui-text"][data-ui-text-state~="tone=success"] {
88
+ color: var(--ui-success);
89
+ }
90
+
91
+ [data-component~="ui-text"][data-ui-text-state~="weight=normal"] {
92
+ font-weight: var(--ui-font-normal);
93
+ }
94
+ [data-component~="ui-text"][data-ui-text-state~="weight=medium"] {
95
+ font-weight: var(--ui-font-medium);
96
+ }
97
+ [data-component~="ui-text"][data-ui-text-state~="weight=semibold"] {
98
+ font-weight: var(--ui-font-semibold);
99
+ }
100
+
101
+ [data-component~="ui-text"][data-ui-text-state~="variant=eyebrow"] {
102
+ font-size: var(--ui-font-size-xs);
103
+ font-weight: var(--ui-font-semibold);
104
+ letter-spacing: 0.06em;
105
+ text-transform: uppercase;
106
+ }
107
+ [data-component~="ui-text"][data-ui-text-state~="variant=code"] {
108
+ font-family: var(--ui-font-family-mono);
109
+ }
110
+
111
+ [data-component~="ui-text"][data-ui-text-state~="truncate"] {
112
+ overflow: hidden;
113
+ text-overflow: ellipsis;
114
+ white-space: nowrap;
115
+ }
116
+
117
+ [data-component~="ui-text"][data-ui-text-state~="align=center"] {
118
+ text-align: center;
119
+ }
120
+
121
+ /* A component that sets its display still honours the hidden attribute on its root. */
122
+ [data-component~="ui-text"][hidden] {
123
+ display: none;
124
+ }
125
+ </style>
@@ -44,6 +44,6 @@ var UiAvatarGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
44
44
  }, toDisplayString(`+${overflowCount.value}`), 9, _hoisted_2)], 16, _hoisted_1);
45
45
  };
46
46
  }
47
- }), [["__scopeId", "data-v-9d727004"]]);
47
+ }), [["__scopeId", "data-v-6c48e0e3"]]);
48
48
  //#endregion
49
49
  export { UiAvatarGroup_default as t };
@@ -0,0 +1,50 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { t as UiIcon_default } from "./UiIcon.js";
3
+ import { computed, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
4
+ //#region .build/vue/UiBreadcrumbItem.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = ["aria-current", "data-ui-breadcrumb-item-state"];
6
+ var _hoisted_2 = {
7
+ class: "separator",
8
+ "aria-hidden": "true"
9
+ };
10
+ var _hoisted_3 = { class: "content" };
11
+ //#endregion
12
+ //#region .build/vue/UiBreadcrumbItem.vue
13
+ var UiBreadcrumbItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
14
+ inheritAttrs: false,
15
+ __name: "UiBreadcrumbItem",
16
+ props: { current: {
17
+ type: Boolean,
18
+ default: false
19
+ } },
20
+ setup(__props) {
21
+ const props = __props;
22
+ /** The values the styles' :host-state() rules test. */
23
+ const hostState = computed(() => [props.current && "current"].filter(Boolean).join(" "));
24
+ function text(value) {
25
+ if (Array.isArray(value)) return value.map(text).join(" ");
26
+ return value === null || value === void 0 || typeof value === "object" ? "" : String(value);
27
+ }
28
+ function attribute(value) {
29
+ if (value === null || value === void 0 || value === false || typeof value === "object" && !Array.isArray(value)) return void 0;
30
+ return value === true ? "" : text(value);
31
+ }
32
+ return (_ctx, _cache) => {
33
+ return openBlock(), createElementBlock("li", mergeProps({ "data-component": "ui-breadcrumb-item" }, _ctx.$attrs, {
34
+ "aria-current": typeof {
35
+ true: "page",
36
+ false: null
37
+ }[`${__props.current}`] === "boolean" ? String({
38
+ true: "page",
39
+ false: null
40
+ }[`${__props.current}`]) : attribute({
41
+ true: "page",
42
+ false: null
43
+ }[`${__props.current}`]),
44
+ "data-ui-breadcrumb-item-state": hostState.value || void 0
45
+ }), [createElementVNode("span", _hoisted_2, [createVNode(UiIcon_default, { name: "chevron-right" })]), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default")])], 16, _hoisted_1);
46
+ };
47
+ }
48
+ }), [["__scopeId", "data-v-9de59def"]]);
49
+ //#endregion
50
+ export { UiBreadcrumbItem_default as t };
@@ -0,0 +1,19 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ //#region .build/vue/UiBreadcrumbs.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["aria-label"];
5
+ var _hoisted_2 = { role: "list" };
6
+ //#endregion
7
+ //#region .build/vue/UiBreadcrumbs.vue
8
+ var UiBreadcrumbs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
9
+ inheritAttrs: false,
10
+ __name: "UiBreadcrumbs",
11
+ props: { label: { default: "Breadcrumb" } },
12
+ setup(__props) {
13
+ return (_ctx, _cache) => {
14
+ return openBlock(), createElementBlock("nav", mergeProps({ "data-component": "ui-breadcrumbs" }, _ctx.$attrs, { "aria-label": __props.label }), [createElementVNode("ol", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
15
+ };
16
+ }
17
+ }), [["__scopeId", "data-v-0d86d58e"]]);
18
+ //#endregion
19
+ export { UiBreadcrumbs_default as t };
@@ -0,0 +1,31 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createBlock, defineComponent, mergeProps, openBlock, renderSlot, resolveDynamicComponent, withCtx } from "vue";
3
+ //#endregion
4
+ //#region .build/vue/UiCard.vue
5
+ var UiCard_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
6
+ inheritAttrs: false,
7
+ __name: "UiCard",
8
+ props: {
9
+ as: { default: "div" },
10
+ padding: { default: "md" },
11
+ tone: { default: "neutral" },
12
+ variant: { default: "outlined" }
13
+ },
14
+ setup(__props) {
15
+ const props = __props;
16
+ /** The values the styles' :host-state() rules test. */
17
+ const hostState = computed(() => [
18
+ props.padding && `padding padding=${props.padding}`,
19
+ props.variant && `variant variant=${props.variant}`,
20
+ props.tone && `tone tone=${props.tone}`
21
+ ].filter(Boolean).join(" "));
22
+ return (_ctx, _cache) => {
23
+ return openBlock(), createBlock(resolveDynamicComponent(__props.as), mergeProps({ "data-component": "ui-card" }, _ctx.$attrs, { "data-ui-card-state": hostState.value || void 0 }), {
24
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
25
+ _: 3
26
+ }, 16, ["data-ui-card-state"]);
27
+ };
28
+ }
29
+ }), [["__scopeId", "data-v-d00c53f0"]]);
30
+ //#endregion
31
+ export { UiCard_default as t };
@@ -0,0 +1,21 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ //#region .build/vue/UiCover.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["data-ui-cover-state"];
5
+ //#endregion
6
+ //#region .build/vue/UiCover.vue
7
+ var UiCover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
8
+ inheritAttrs: false,
9
+ __name: "UiCover",
10
+ props: { size: { default: "screen" } },
11
+ setup(__props) {
12
+ const props = __props;
13
+ /** The values the styles' :host-state() rules test. */
14
+ const hostState = computed(() => [props.size && `size size=${props.size}`].filter(Boolean).join(" "));
15
+ return (_ctx, _cache) => {
16
+ return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-cover" }, _ctx.$attrs, { "data-ui-cover-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
17
+ };
18
+ }
19
+ }), [["__scopeId", "data-v-f341d85e"]]);
20
+ //#endregion
21
+ export { UiCover_default as t };
@@ -0,0 +1,16 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString } from "vue";
3
+ //#endregion
4
+ //#region .build/vue/UiDescriptionItem.vue
5
+ var UiDescriptionItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
6
+ inheritAttrs: false,
7
+ __name: "UiDescriptionItem",
8
+ props: { term: { default: "" } },
9
+ setup(__props) {
10
+ return (_ctx, _cache) => {
11
+ return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-description-item" }, _ctx.$attrs), [createElementVNode("dt", null, toDisplayString(__props.term), 1), createElementVNode("dd", null, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16);
12
+ };
13
+ }
14
+ }), [["__scopeId", "data-v-2d94bc9f"]]);
15
+ //#endregion
16
+ export { UiDescriptionItem_default as t };
@@ -0,0 +1,21 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ //#region .build/vue/UiDescriptionList.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["data-ui-description-list-state"];
5
+ //#endregion
6
+ //#region .build/vue/UiDescriptionList.vue
7
+ var UiDescriptionList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
8
+ inheritAttrs: false,
9
+ __name: "UiDescriptionList",
10
+ props: { layout: { default: "rows" } },
11
+ setup(__props) {
12
+ const props = __props;
13
+ /** The values the styles' :host-state() rules test. */
14
+ const hostState = computed(() => [props.layout && `layout layout=${props.layout}`].filter(Boolean).join(" "));
15
+ return (_ctx, _cache) => {
16
+ return openBlock(), createElementBlock("dl", mergeProps({ "data-component": "ui-description-list" }, _ctx.$attrs, { "data-ui-description-list-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
17
+ };
18
+ }
19
+ }), [["__scopeId", "data-v-0519dd0f"]]);
20
+ //#endregion
21
+ export { UiDescriptionList_default as t };
@@ -0,0 +1,24 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ //#region .build/vue/UiList.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["data-ui-list-state"];
5
+ //#endregion
6
+ //#region .build/vue/UiList.vue
7
+ var UiList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
8
+ inheritAttrs: false,
9
+ __name: "UiList",
10
+ props: { layout: { default: "rows" } },
11
+ setup(__props) {
12
+ const props = __props;
13
+ /** The values the styles' :host-state() rules test. */
14
+ const hostState = computed(() => [props.layout && `layout layout=${props.layout}`].filter(Boolean).join(" "));
15
+ return (_ctx, _cache) => {
16
+ return openBlock(), createElementBlock("ul", mergeProps({
17
+ "data-component": "ui-list",
18
+ role: "list"
19
+ }, _ctx.$attrs, { "data-ui-list-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
20
+ };
21
+ }
22
+ }), [["__scopeId", "data-v-935b1197"]]);
23
+ //#endregion
24
+ export { UiList_default as t };
@@ -0,0 +1,39 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ //#region .build/vue/UiListItem.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["aria-current", "data-ui-list-item-state"];
5
+ var _hoisted_2 = { class: "leading" };
6
+ var _hoisted_3 = { class: "content" };
7
+ var _hoisted_4 = { class: "title" };
8
+ var _hoisted_5 = { class: "description" };
9
+ var _hoisted_6 = { class: "trailing" };
10
+ //#endregion
11
+ //#region .build/vue/UiListItem.vue
12
+ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
13
+ inheritAttrs: false,
14
+ __name: "UiListItem",
15
+ props: {
16
+ current: {
17
+ type: Boolean,
18
+ default: false
19
+ },
20
+ variant: { default: "row" }
21
+ },
22
+ setup(__props) {
23
+ const props = __props;
24
+ /** The values the styles' :host-state() rules test. */
25
+ const hostState = computed(() => [props.variant && `variant variant=${props.variant}`, props.current && "current"].filter(Boolean).join(" "));
26
+ return (_ctx, _cache) => {
27
+ return openBlock(), createElementBlock("li", mergeProps({ "data-component": "ui-list-item" }, _ctx.$attrs, {
28
+ "aria-current": __props.current,
29
+ "data-ui-list-item-state": hostState.value || void 0
30
+ }), [
31
+ createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "leading")]),
32
+ createElementVNode("span", _hoisted_3, [createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "default")]), createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "description")])]),
33
+ createElementVNode("span", _hoisted_6, [renderSlot(_ctx.$slots, "trailing")])
34
+ ], 16, _hoisted_1);
35
+ };
36
+ }
37
+ }), [["__scopeId", "data-v-d61daf46"]]);
38
+ //#endregion
39
+ export { UiListItem_default as t };
@@ -0,0 +1,35 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ //#region .build/vue/UiPageHeader.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["data-ui-page-header-state"];
5
+ var _hoisted_2 = { class: "leading" };
6
+ var _hoisted_3 = { class: "copy" };
7
+ var _hoisted_4 = { class: "eyebrow" };
8
+ var _hoisted_5 = { class: "title" };
9
+ var _hoisted_6 = { class: "description" };
10
+ var _hoisted_7 = { class: "actions" };
11
+ //#endregion
12
+ //#region .build/vue/UiPageHeader.vue
13
+ var UiPageHeader_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
14
+ inheritAttrs: false,
15
+ __name: "UiPageHeader",
16
+ props: { align: { default: "start" } },
17
+ setup(__props) {
18
+ const props = __props;
19
+ /** The values the styles' :host-state() rules test. */
20
+ const hostState = computed(() => [props.align && `align align=${props.align}`].filter(Boolean).join(" "));
21
+ return (_ctx, _cache) => {
22
+ return openBlock(), createElementBlock("header", mergeProps({ "data-component": "ui-page-header" }, _ctx.$attrs, { "data-ui-page-header-state": hostState.value || void 0 }), [
23
+ createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "leading", {}, void 0, true)]),
24
+ createElementVNode("span", _hoisted_3, [
25
+ createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "eyebrow", {}, void 0, true)]),
26
+ createElementVNode("h1", _hoisted_5, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
27
+ createElementVNode("span", _hoisted_6, [renderSlot(_ctx.$slots, "description", {}, void 0, true)])
28
+ ]),
29
+ createElementVNode("span", _hoisted_7, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])
30
+ ], 16, _hoisted_1);
31
+ };
32
+ }
33
+ }), [["__scopeId", "data-v-8dcefe30"]]);
34
+ //#endregion
35
+ export { UiPageHeader_default as t };
@@ -0,0 +1,34 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString } from "vue";
3
+ //#region .build/vue/UiSection.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["data-ui-section-state"];
5
+ var _hoisted_2 = { class: "head" };
6
+ var _hoisted_3 = { class: "copy" };
7
+ var _hoisted_4 = ["hidden"];
8
+ var _hoisted_5 = { class: "description" };
9
+ var _hoisted_6 = { class: "actions" };
10
+ var _hoisted_7 = { class: "body" };
11
+ //#endregion
12
+ //#region .build/vue/UiSection.vue
13
+ var UiSection_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
14
+ inheritAttrs: false,
15
+ __name: "UiSection",
16
+ props: {
17
+ heading: { default: "" },
18
+ tone: { default: "neutral" },
19
+ variant: { default: "plain" }
20
+ },
21
+ setup(__props) {
22
+ const props = __props;
23
+ /** The values the styles' :host-state() rules test. */
24
+ const hostState = computed(() => [props.variant && `variant variant=${props.variant}`, props.tone && `tone tone=${props.tone}`].filter(Boolean).join(" "));
25
+ return (_ctx, _cache) => {
26
+ return openBlock(), createElementBlock("section", mergeProps({ "data-component": "ui-section" }, _ctx.$attrs, { "data-ui-section-state": hostState.value || void 0 }), [createElementVNode("span", _hoisted_2, [createElementVNode("span", _hoisted_3, [createElementVNode("h2", {
27
+ class: "heading",
28
+ hidden: !__props.heading
29
+ }, toDisplayString(__props.heading), 9, _hoisted_4), createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "description", {}, void 0, true)])]), createElementVNode("span", _hoisted_6, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])]), createElementVNode("span", _hoisted_7, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
30
+ };
31
+ }
32
+ }), [["__scopeId", "data-v-4d1e5a3a"]]);
33
+ //#endregion
34
+ export { UiSection_default as t };
@@ -0,0 +1,64 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { t as UiIcon_default } from "./UiIcon.js";
3
+ import { computed, createElementBlock, createVNode, defineComponent, mergeProps, openBlock } from "vue";
4
+ //#region .build/vue/UiSpinner.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = [
6
+ "role",
7
+ "aria-label",
8
+ "aria-hidden",
9
+ "data-ui-spinner-state"
10
+ ];
11
+ //#endregion
12
+ //#region .build/vue/UiSpinner.vue
13
+ var UiSpinner_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
14
+ inheritAttrs: false,
15
+ __name: "UiSpinner",
16
+ props: {
17
+ label: { default: "" },
18
+ size: { default: "md" }
19
+ },
20
+ setup(__props) {
21
+ const props = __props;
22
+ /** The values the styles' :host-state() rules test. */
23
+ const hostState = computed(() => [props.size && `size size=${props.size}`].filter(Boolean).join(" "));
24
+ function text(value) {
25
+ if (Array.isArray(value)) return value.map(text).join(" ");
26
+ return value === null || value === void 0 || typeof value === "object" ? "" : String(value);
27
+ }
28
+ function attribute(value) {
29
+ if (value === null || value === void 0 || value === false || typeof value === "object" && !Array.isArray(value)) return void 0;
30
+ return value === true ? "" : text(value);
31
+ }
32
+ return (_ctx, _cache) => {
33
+ return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-spinner" }, _ctx.$attrs, {
34
+ role: attribute({
35
+ true: "status",
36
+ false: null
37
+ }[`${__props.label !== ""}`]),
38
+ "aria-label": typeof {
39
+ true: __props.label,
40
+ false: null
41
+ }[`${__props.label !== ""}`] === "boolean" ? String({
42
+ true: __props.label,
43
+ false: null
44
+ }[`${__props.label !== ""}`]) : attribute({
45
+ true: __props.label,
46
+ false: null
47
+ }[`${__props.label !== ""}`]),
48
+ "aria-hidden": typeof {
49
+ true: null,
50
+ false: "true"
51
+ }[`${__props.label !== ""}`] === "boolean" ? String({
52
+ true: null,
53
+ false: "true"
54
+ }[`${__props.label !== ""}`]) : attribute({
55
+ true: null,
56
+ false: "true"
57
+ }[`${__props.label !== ""}`]),
58
+ "data-ui-spinner-state": hostState.value || void 0
59
+ }), [createVNode(UiIcon_default, { name: "loader" })], 16, _hoisted_1);
60
+ };
61
+ }
62
+ }), [["__scopeId", "data-v-3472d01c"]]);
63
+ //#endregion
64
+ export { UiSpinner_default as t };