@onereach/ui-components 3.0.2-beta.2473.0 → 3.0.2-beta.2476.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 (29) hide show
  1. package/dist/bundled/v2/OrTree-b8e47647.js +236 -0
  2. package/dist/bundled/v2/components/index.d.ts +1 -0
  3. package/dist/bundled/v2/components/index.js +1 -0
  4. package/dist/bundled/v2/components/or-tree-v3/TreeNode.vue.d.ts +13 -0
  5. package/dist/bundled/v2/components/or-tree-v3/index.js +4 -223
  6. package/dist/bundled/v2/index.js +1 -0
  7. package/dist/bundled/v3/OrTree.vue_vue_type_script_lang-9a31b9b4.js +146 -0
  8. package/dist/bundled/v3/components/index.d.ts +1 -0
  9. package/dist/bundled/v3/components/index.js +1 -0
  10. package/dist/bundled/v3/components/or-tree-v3/TreeNode.vue.d.ts +13 -0
  11. package/dist/bundled/v3/components/or-tree-v3/index.js +3 -163
  12. package/dist/bundled/v3/index.js +136 -110
  13. package/dist/esm/v2/OrTree-32b2fede.js +233 -0
  14. package/dist/esm/v2/components/index.d.ts +1 -0
  15. package/dist/esm/v2/components/index.js +1 -0
  16. package/dist/esm/v2/components/or-tree-v3/TreeNode.vue.d.ts +13 -0
  17. package/dist/esm/v2/components/or-tree-v3/index.js +4 -221
  18. package/dist/esm/v2/index.js +1 -0
  19. package/dist/esm/v3/OrTree-bf625e80.js +170 -0
  20. package/dist/esm/v3/components/index.d.ts +1 -0
  21. package/dist/esm/v3/components/index.js +1 -0
  22. package/dist/esm/v3/components/or-tree-v3/TreeNode.vue.d.ts +13 -0
  23. package/dist/esm/v3/components/or-tree-v3/index.js +4 -164
  24. package/dist/esm/v3/index.js +1 -0
  25. package/package.json +2 -2
  26. package/src/components/index.ts +1 -0
  27. package/src/components/or-tree-v3/OrTree.stories3.ts +1 -0
  28. package/src/components/or-tree-v3/OrTree.vue +7 -2
  29. package/src/components/or-tree-v3/TreeNode.vue +7 -2
@@ -93,3 +93,4 @@ export * from './or-toast';
93
93
  export * from './or-toast-v3';
94
94
  export * from './or-tooltip';
95
95
  export * from './or-tooltip-v3';
96
+ export * from './or-tree-v3';
@@ -96,6 +96,7 @@ export { a as OrToastContainerV3, s as OrToastV3, t as TypesV3 } from '../types-
96
96
  export { p as PropsV3, a as useQueueV3, u as useToastV3 } from '../useToast-0665462d.js';
97
97
  export { s as OrTooltip, a as OrTooltipContent } from '../OrTooltip-8d7385bc.js';
98
98
  export { s as OrTooltipV3 } from '../OrTooltip-02f07fa2.js';
99
+ export { s as OrTreeV3 } from '../OrTree-bf625e80.js';
99
100
  import 'vue-demi';
100
101
  import 'lodash';
101
102
  import 'vue';
@@ -1,3 +1,5 @@
1
+ import { PropType } from 'vue-demi';
2
+ import { ITreeNode } from './types';
1
3
  declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
2
4
  rootClasses: string[];
3
5
  }> & import("@vue/composition-api").Data, {}, {
@@ -6,6 +8,10 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
6
8
  'padding-left': string;
7
9
  };
8
10
  }, {
11
+ node: {
12
+ type: PropType<ITreeNode>;
13
+ default: undefined;
14
+ };
9
15
  nodeKey: {
10
16
  type: StringConstructor;
11
17
  default: string;
@@ -23,6 +29,10 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
23
29
  default: number;
24
30
  };
25
31
  }, import("@vue/composition-api").ExtractPropTypes<{
32
+ node: {
33
+ type: PropType<ITreeNode>;
34
+ default: undefined;
35
+ };
26
36
  nodeKey: {
27
37
  type: StringConstructor;
28
38
  default: string;
@@ -40,6 +50,7 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
40
50
  default: number;
41
51
  };
42
52
  }>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
53
+ node: ITreeNode;
43
54
  nodeKey: string;
44
55
  isExpanded: boolean;
45
56
  isLeaf: boolean;
@@ -54,6 +65,7 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
54
65
  'padding-left': string;
55
66
  };
56
67
  }, {}, {}, {}, string[], {
68
+ node: ITreeNode;
57
69
  nodeKey: string;
58
70
  isExpanded: boolean;
59
71
  isLeaf: boolean;
@@ -61,6 +73,7 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
61
73
  } & {} & {
62
74
  [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
63
75
  }, {
76
+ node: ITreeNode;
64
77
  nodeKey: string;
65
78
  isExpanded: boolean;
66
79
  isLeaf: boolean;
@@ -1,7 +1,8 @@
1
- import { defineComponent } from 'vue-demi';
2
- import { s as script$2 } from '../../OrIconButton-41ee266c.js';
3
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, createBlock, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString, Fragment, renderList, mergeProps, withCtx } from 'vue';
1
+ export { s as OrTreeV3 } from '../../OrTree-bf625e80.js';
2
+ import 'vue-demi';
3
+ import '../../OrIconButton-41ee266c.js';
4
4
  import '../../OrIcon-62793572.js';
5
+ import 'vue';
5
6
  import '../../OrTooltip-02f07fa2.js';
6
7
  import '@vueuse/core';
7
8
  import '../../OrPopover-52250a03.js';
@@ -11,164 +12,3 @@ import '../../useResponsive-a02e95b7.js';
11
12
  import '../../OrBottomSheet-0f24ecae.js';
12
13
  import '../../OrOverlay-7cf03aea.js';
13
14
  import '../../OrTeleport.vue3-8099178c.js';
14
-
15
- const getFlatTree = tree => {
16
- const flatTree = [];
17
- const nodeMetadataByKey = {};
18
- const goDeeper = (treeNode, level, parentNodeKey) => {
19
- flatTree.push(treeNode);
20
- nodeMetadataByKey[treeNode.key] = {
21
- level,
22
- isExpanded: false,
23
- parentNodeKey
24
- };
25
- if (treeNode.children) {
26
- for (const child of treeNode.children) {
27
- goDeeper(child, level + 1, treeNode.key);
28
- }
29
- }
30
- };
31
- for (const node of tree) {
32
- goDeeper(node, 0, '');
33
- }
34
- return {
35
- flatTree,
36
- nodeMetadataByKey
37
- };
38
- };
39
-
40
- const TreeNodeRoot = ['flex', 'items-center', 'gap-sm', 'pt-6', 'my-sm',
41
- // Theme
42
- 'text-on-background', 'dark:text-on-background-dark', 'hover:bg-primary-opacity-0-08', 'dark:hover:bg-primary-opacity-0-08-dark'];
43
-
44
- var script$1 = defineComponent({
45
- components: {
46
- OrIconButton: script$2
47
- },
48
- props: {
49
- nodeKey: {
50
- type: String,
51
- default: ''
52
- },
53
- isExpanded: {
54
- type: Boolean,
55
- default: false
56
- },
57
- isLeaf: {
58
- type: Boolean,
59
- default: false
60
- },
61
- level: {
62
- type: Number,
63
- default: 0
64
- }
65
- },
66
- emits: ['trigger-expand'],
67
- setup() {
68
- return {
69
- rootClasses: TreeNodeRoot
70
- };
71
- },
72
- computed: {
73
- expandIcon() {
74
- return this.isExpanded ? 'keyboard_arrow_down' : 'arrow_right';
75
- },
76
- styleCSS() {
77
- return {
78
- // 24px -- gap-sm + tooltip width
79
- 'padding-left': this.isLeaf && this.level === 0 ? '24px' : `${this.level * 10}px`
80
- };
81
- }
82
- }
83
- });
84
-
85
- function render$1(_ctx, _cache, $props, $setup, $data, $options) {
86
- const _component_or_icon_button = resolveComponent("or-icon-button");
87
- return openBlock(), createElementBlock("div", {
88
- class: normalizeClass(["tree-node", _ctx.rootClasses]),
89
- style: normalizeStyle(_ctx.styleCSS)
90
- }, [!_ctx.isLeaf ? (openBlock(), createBlock(_component_or_icon_button, {
91
- key: 0,
92
- icon: _ctx.expandIcon,
93
- onClick: _cache[0] || (_cache[0] = $event => _ctx.$emit('trigger-expand', _ctx.nodeKey))
94
- }, null, 8 /* PROPS */, ["icon"])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(_ctx.$props)), () => [createTextVNode(toDisplayString(_ctx.nodeKey), 1 /* TEXT */)])], 6 /* CLASS, STYLE */);
95
- }
96
-
97
- script$1.render = render$1;
98
- script$1.__file = "src/components/or-tree-v3/TreeNode.vue";
99
-
100
- var script = defineComponent({
101
- components: {
102
- TreeNode: script$1
103
- },
104
- props: {
105
- initialData: {
106
- type: Array,
107
- default: () => []
108
- },
109
- identifierKey: {
110
- type: String,
111
- default: 'key'
112
- }
113
- },
114
- data() {
115
- return {
116
- flatTree: [],
117
- nodeMetadataByKey: {}
118
- };
119
- },
120
- computed: {
121
- visibleItems() {
122
- return this.flatTree.filter(treeNode => {
123
- return this.isNodeExpanded(treeNode.key);
124
- });
125
- }
126
- },
127
- mounted() {
128
- const {
129
- nodeMetadataByKey,
130
- flatTree
131
- } = getFlatTree(this.initialData);
132
- this.flatTree = flatTree;
133
- this.nodeMetadataByKey = nodeMetadataByKey;
134
- },
135
- methods: {
136
- onTriggerExpand(key) {
137
- this.nodeMetadataByKey[key].isExpanded = !this.nodeMetadataByKey[key].isExpanded;
138
- },
139
- isNodeExpanded(key) {
140
- const {
141
- parentNodeKey,
142
- level
143
- } = this.nodeMetadataByKey[key];
144
- const parentMetadata = this.nodeMetadataByKey[parentNodeKey];
145
- if (level === 0) return true;
146
- if (!parentMetadata.isExpanded) return false;
147
- return this.isNodeExpanded(parentNodeKey);
148
- }
149
- }
150
- });
151
-
152
- function render(_ctx, _cache, $props, $setup, $data, $options) {
153
- const _component_tree_node = resolveComponent("tree-node");
154
- return openBlock(), createElementBlock("div", {
155
- class: "or-tree",
156
- onDrop: _cache[0] || (_cache[0] = (...args) => _ctx.onDrop && _ctx.onDrop(...args))
157
- }, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.visibleItems, node => {
158
- return openBlock(), createBlock(_component_tree_node, mergeProps(node, {
159
- key: node[_ctx.identifierKey],
160
- "node-key": node[_ctx.identifierKey],
161
- "is-expanded": _ctx.nodeMetadataByKey[node.key].isExpanded,
162
- level: _ctx.nodeMetadataByKey[node.key].level,
163
- onTriggerExpand: _ctx.onTriggerExpand
164
- }), {
165
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
166
- _: 2 /* DYNAMIC */
167
- }, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["node-key", "is-expanded", "level", "onTriggerExpand"]);
168
- }), 128 /* KEYED_FRAGMENT */))], 32 /* HYDRATE_EVENTS */);
169
- }
170
-
171
- script.render = render;
172
- script.__file = "src/components/or-tree-v3/OrTree.vue";
173
-
174
- export { script as OrTreeV3 };
@@ -96,6 +96,7 @@ export { a as OrToastContainerV3, s as OrToastV3, t as TypesV3 } from './types-9
96
96
  export { p as PropsV3, a as useQueueV3, u as useToastV3 } from './useToast-0665462d.js';
97
97
  export { s as OrTooltip, a as OrTooltipContent } from './OrTooltip-8d7385bc.js';
98
98
  export { s as OrTooltipV3 } from './OrTooltip-02f07fa2.js';
99
+ export { s as OrTreeV3 } from './OrTree-bf625e80.js';
99
100
  export { D as DropdownClose, a as DropdownOpen } from './dropdown-open-0d314aa4.js';
100
101
  export { u as useControlAttributes, a as useIdAttribute } from './useIdAttribute-859439f0.js';
101
102
  export { u as useElevation } from './useElevation-92fce12c.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/ui-components",
3
- "version": "3.0.2-beta.2473.0",
3
+ "version": "3.0.2-beta.2476.0",
4
4
  "description": "Vue components library for v2/3",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/auto/index.js",
@@ -38,7 +38,7 @@
38
38
  "@codemirror/lang-json": "6.0.0",
39
39
  "@codemirror/lang-markdown": "6.0.1",
40
40
  "@floating-ui/dom": "0.3.1",
41
- "@onereach/styles": "^2.37.4-beta.2473.0",
41
+ "@onereach/styles": "^2.37.3",
42
42
  "@splidejs/splide": "4.0.6",
43
43
  "@types/lodash": "4.14.173",
44
44
  "@types/sortablejs": "1.10.7",
@@ -93,3 +93,4 @@ export * from './or-toast';
93
93
  export * from './or-toast-v3';
94
94
  export * from './or-tooltip';
95
95
  export * from './or-tooltip-v3';
96
+ export * from './or-tree-v3';
@@ -34,6 +34,7 @@ const TREE_DATA = [
34
34
  children: [
35
35
  {
36
36
  key: '0-0-1-2-0',
37
+ isLeaf: true,
37
38
  },
38
39
  ],
39
40
  },
@@ -5,14 +5,19 @@
5
5
  >
6
6
  <tree-node
7
7
  v-for="node in visibleItems"
8
- v-bind="node"
9
8
  :key="node[identifierKey]"
9
+ :node="node"
10
10
  :node-key="node[identifierKey]"
11
11
  :is-expanded="nodeMetadataByKey[node.key].isExpanded"
12
+ :is-leaf="!!node.isLeaf"
12
13
  :level="nodeMetadataByKey[node.key].level"
13
14
  @trigger-expand="onTriggerExpand"
14
15
  >
15
- <slot />
16
+ <template
17
+ v-slot:default="props"
18
+ >
19
+ <slot v-bind="props" />
20
+ </template>
16
21
  </tree-node>
17
22
  </div>
18
23
  </template>
@@ -17,15 +17,20 @@
17
17
  </template>
18
18
 
19
19
  <script lang="ts">
20
- import { defineComponent } from 'vue-demi';
20
+ import { defineComponent, PropType } from 'vue-demi';
21
21
  import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
22
22
  import { TreeNodeRoot } from './styles';
23
+ import { ITreeNode } from './types';
23
24
 
24
25
  export default defineComponent({
25
26
  components: {
26
27
  OrIconButton,
27
28
  },
28
29
  props: {
30
+ node: {
31
+ type: Object as PropType<ITreeNode>,
32
+ default: undefined,
33
+ },
29
34
  nodeKey: {
30
35
  type: String,
31
36
  default: '',
@@ -59,7 +64,7 @@ export default defineComponent({
59
64
  styleCSS() {
60
65
  return {
61
66
  // 24px -- gap-sm + tooltip width
62
- 'padding-left': (this.isLeaf && this.level === 0) ? '24px' : `${this.level * 10}px`,
67
+ 'padding-left': (this.isLeaf && this.level === 0) ? '24px' : `${(this.isLeaf ? 24 : 0) + (this.level * 10)}px`,
63
68
  };
64
69
  },
65
70
  },