@rokkit/ui 1.1.5 → 1.1.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokkit/ui",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Data driven UI components for Rokkit applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,10 +44,10 @@
44
44
  "dropdown"
45
45
  ],
46
46
  "dependencies": {
47
- "@rokkit/core": "1.1.5",
48
- "@rokkit/data": "1.1.5",
49
- "@rokkit/states": "1.1.5",
50
- "@rokkit/actions": "1.1.5",
47
+ "@rokkit/core": "1.1.7",
48
+ "@rokkit/data": "1.1.7",
49
+ "@rokkit/states": "1.1.7",
50
+ "@rokkit/actions": "1.1.7",
51
51
  "marked": "^15.0.0",
52
52
  "dompurify": "^3.0.0"
53
53
  },
@@ -94,7 +94,7 @@
94
94
  // own icons prop); file leaves get the per-extension semantic icon.
95
95
  const tree = $derived.by(() => {
96
96
  const root: unknown[] = []
97
- const lookup = new Map<string, Record<string, unknown>>()
97
+ const lookup: Record<string, Record<string, unknown>> = {}
98
98
  for (const f of files) {
99
99
  const parts = f.path.split('/').filter(Boolean)
100
100
  let parentChildren = root
@@ -103,7 +103,7 @@
103
103
  const part = parts[i]
104
104
  const isLeaf = i === parts.length - 1
105
105
  acc = acc ? `${acc}/${part}` : part
106
- let node = lookup.get(acc) as Record<string, unknown> | undefined
106
+ let node = lookup[acc]
107
107
  if (!node) {
108
108
  node = {
109
109
  id: acc,
@@ -111,7 +111,7 @@
111
111
  icon: isLeaf ? iconForFile(f) : undefined,
112
112
  children: isLeaf ? undefined : []
113
113
  }
114
- lookup.set(acc, node)
114
+ lookup[acc] = node
115
115
  parentChildren.push(node)
116
116
  }
117
117
  if (!isLeaf) parentChildren = node.children as unknown[]
package/src/types/tree.ts CHANGED
@@ -63,20 +63,6 @@ export interface TreeFields {
63
63
  */
64
64
  export type ResolvedTreeFields = Required<TreeFields>
65
65
 
66
- /**
67
- * Merge consumer-provided field overrides with the default field
68
- * mapping so every key resolves to a string. Tree calls this once on
69
- * its `fields` prop before passing the result to ProxyTree / line
70
- * builders.
71
- */
72
- export function resolveTreeFields(fields: TreeFields = {}): ResolvedTreeFields {
73
- // `Required<TreeFields>` cannot strip `undefined` from the index
74
- // signature on its own, so spread-inference fails the contract even
75
- // though `defaultTreeFields` provides every key. Cast through unknown
76
- // to assert the post-merge shape.
77
- return { ...defaultTreeFields, ...fields } as unknown as ResolvedTreeFields
78
- }
79
-
80
66
  /**
81
67
  * Default field mapping values for tree
82
68
  */
@@ -98,6 +84,20 @@ export const defaultTreeFields: Required<Omit<TreeFields, 'fields'>> = {
98
84
  level: 'level'
99
85
  }
100
86
 
87
+ /**
88
+ * Merge consumer-provided field overrides with the default field
89
+ * mapping so every key resolves to a string. Tree calls this once on
90
+ * its `fields` prop before passing the result to ProxyTree / line
91
+ * builders.
92
+ */
93
+ export function resolveTreeFields(fields: TreeFields = {}): ResolvedTreeFields {
94
+ // `Required<TreeFields>` cannot strip `undefined` from the index
95
+ // signature on its own, so spread-inference fails the contract even
96
+ // though `defaultTreeFields` provides every key. Cast through unknown
97
+ // to assert the post-merge shape.
98
+ return { ...defaultTreeFields, ...fields } as unknown as ResolvedTreeFields
99
+ }
100
+
101
101
  // =============================================================================
102
102
  // Tree Item Types
103
103
  // =============================================================================