@accelint/design-system 0.4.0 → 0.5.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 (130) hide show
  1. package/README.md +12 -12
  2. package/dist/components/aria/aria.js.map +1 -1
  3. package/dist/components/button/button.d.ts +1 -1
  4. package/dist/components/button/button.js +1 -1
  5. package/dist/components/button/button.js.map +1 -1
  6. package/dist/components/button/types.d.ts +1 -1
  7. package/dist/components/checkbox/checkbox.d.ts +1 -1
  8. package/dist/components/checkbox/checkbox.js.map +1 -1
  9. package/dist/components/chip/chip.d.ts +1 -1
  10. package/dist/components/chip/chip.js.map +1 -1
  11. package/dist/components/chip/types.d.ts +1 -1
  12. package/dist/components/collection/collection.js.map +1 -1
  13. package/dist/components/combo-box/combo-box.d.ts +1 -1
  14. package/dist/components/combo-box/combo-box.js.map +1 -1
  15. package/dist/components/combo-box/types.d.ts +1 -1
  16. package/dist/components/dialog/dialog.d.ts +1 -1
  17. package/dist/components/dialog/dialog.js.map +1 -1
  18. package/dist/components/dialog/types.d.ts +1 -1
  19. package/dist/components/drawer/drawer.d.ts +1 -1
  20. package/dist/components/drawer/drawer.js +4 -3
  21. package/dist/components/drawer/drawer.js.map +1 -1
  22. package/dist/components/drawer/types.d.ts +2 -2
  23. package/dist/components/element/element.js.map +1 -1
  24. package/dist/components/group/group.d.ts +1 -1
  25. package/dist/components/group/group.js.map +1 -1
  26. package/dist/components/group/types.d.ts +1 -1
  27. package/dist/components/icon/icon.d.ts +1 -1
  28. package/dist/components/icon/types.d.ts +1 -1
  29. package/dist/components/input/input.css.d.ts +1 -1
  30. package/dist/components/input/input.d.ts +4 -4
  31. package/dist/components/input/input.js +3 -3
  32. package/dist/components/input/input.js.map +1 -1
  33. package/dist/components/input/types.d.ts +1 -1
  34. package/dist/components/menu/index.d.ts +1 -1
  35. package/dist/components/menu/menu.css.d.ts +1 -1
  36. package/dist/components/menu/menu.d.ts +2 -2
  37. package/dist/components/menu/menu.js.map +1 -1
  38. package/dist/components/menu/types.d.ts +2 -2
  39. package/dist/components/merge-provider/merge-provider.js +2 -2
  40. package/dist/components/merge-provider/merge-provider.js.map +1 -1
  41. package/dist/components/number-field/number-field.d.ts +1 -1
  42. package/dist/components/number-field/types.d.ts +1 -1
  43. package/dist/components/options/index.d.ts +1 -1
  44. package/dist/components/options/options.css.d.ts +1 -1
  45. package/dist/components/options/options.d.ts +2 -2
  46. package/dist/components/options/options.js.map +1 -1
  47. package/dist/components/options/types.d.ts +2 -2
  48. package/dist/components/picker/picker.d.ts +1 -1
  49. package/dist/components/picker/picker.js +2 -2
  50. package/dist/components/picker/picker.js.map +1 -1
  51. package/dist/components/picker/types.d.ts +1 -1
  52. package/dist/components/popover/popover.d.ts +1 -1
  53. package/dist/components/popover/popover.js +2 -2
  54. package/dist/components/popover/popover.js.map +1 -1
  55. package/dist/components/query-builder/dataset-sample.js +8 -24
  56. package/dist/components/query-builder/dataset-sample.js.map +1 -1
  57. package/dist/components/query-builder/group.js +1 -1
  58. package/dist/components/query-builder/group.js.map +1 -1
  59. package/dist/components/query-builder/query-builder.js +2 -2
  60. package/dist/components/query-builder/query-builder.js.map +1 -1
  61. package/dist/components/query-builder/rule.js.map +1 -1
  62. package/dist/components/query-builder/types.d.ts +3 -3
  63. package/dist/components/query-builder/utils.d.ts +1 -1
  64. package/dist/components/query-builder/utils.js.map +1 -1
  65. package/dist/components/query-builder/value-editor.js +1 -1
  66. package/dist/components/query-builder/value-editor.js.map +1 -1
  67. package/dist/components/query-builder/value-selector.js.map +1 -1
  68. package/dist/components/radio/radio.d.ts +1 -1
  69. package/dist/components/radio/radio.js.map +1 -1
  70. package/dist/components/radio/types.d.ts +1 -1
  71. package/dist/components/search-field/index.d.ts +1 -1
  72. package/dist/components/search-field/search-field.d.ts +1 -1
  73. package/dist/components/search-field/types.d.ts +1 -1
  74. package/dist/components/select/select.d.ts +1 -1
  75. package/dist/components/select/select.js.map +1 -1
  76. package/dist/components/switch/switch.d.ts +1 -1
  77. package/dist/components/tabs/tabs.css.d.ts +2 -2
  78. package/dist/components/tabs/tabs.d.ts +1 -1
  79. package/dist/components/tabs/tabs.js +2 -2
  80. package/dist/components/tabs/tabs.js.map +1 -1
  81. package/dist/components/tabs/types.d.ts +3 -3
  82. package/dist/components/text-field/text-field.d.ts +5 -4
  83. package/dist/components/text-field/types.d.ts +1 -1
  84. package/dist/components/textarea/textarea.css.d.ts +1 -1
  85. package/dist/components/textarea/textarea.d.ts +4 -4
  86. package/dist/components/textarea/textarea.js +5 -5
  87. package/dist/components/textarea/textarea.js.map +1 -1
  88. package/dist/components/textarea/types.d.ts +2 -2
  89. package/dist/components/tooltip/tooltip.d.ts +1 -1
  90. package/dist/components/tooltip/tooltip.js +3 -3
  91. package/dist/components/tooltip/tooltip.js.map +1 -1
  92. package/dist/components/tree/tree.css.d.ts +1 -0
  93. package/dist/components/tree/tree.css.js +2 -2
  94. package/dist/components/tree/tree.css.js.map +1 -1
  95. package/dist/components/tree/tree.d.ts +1 -1
  96. package/dist/components/tree/tree.js +5 -2
  97. package/dist/components/tree/tree.js.map +1 -1
  98. package/dist/components/tree/types.d.ts +4 -4
  99. package/dist/components/tree/utils.js.map +1 -1
  100. package/dist/hooks/use-collection-render/use-collection-render.js +1 -0
  101. package/dist/hooks/use-collection-render/use-collection-render.js.map +1 -1
  102. package/dist/hooks/use-defaults/use-defaults.d.ts +1 -1
  103. package/dist/hooks/use-slot/use-slot.js +3 -3
  104. package/dist/hooks/use-slot/use-slot.js.map +1 -1
  105. package/dist/hooks/use-theme/types.d.ts +1 -1
  106. package/dist/hooks/use-theme/use-theme.d.ts +18 -1
  107. package/dist/hooks/use-theme/use-theme.js.map +1 -1
  108. package/dist/hooks/use-tree/index.d.ts +1 -1
  109. package/dist/hooks/use-tree/use-tree.d.ts +1 -1
  110. package/dist/hooks/use-tree/use-tree.js +10 -5
  111. package/dist/hooks/use-tree/use-tree.js.map +1 -1
  112. package/dist/hooks/use-tree/utils.d.ts +1 -1
  113. package/dist/hooks/use-tree/utils.js +3 -4
  114. package/dist/hooks/use-tree/utils.js.map +1 -1
  115. package/dist/index.css +34 -31
  116. package/dist/ladle/actions.js.map +1 -1
  117. package/dist/test/setup.js +347 -331
  118. package/dist/test/setup.js.map +1 -1
  119. package/dist/types/index.d.ts +1 -1
  120. package/dist/types/react-aria.d.ts +1 -1
  121. package/dist/types/react.d.d.ts +16 -0
  122. package/dist/types/use-tree.d.ts +2 -1
  123. package/dist/utils/css.d.ts +2 -2
  124. package/dist/utils/css.js +5 -5
  125. package/dist/utils/css.js.map +1 -1
  126. package/dist/utils/props.js +5 -6
  127. package/dist/utils/props.js.map +1 -1
  128. package/dist/utils/validators.d.ts +2 -2
  129. package/dist/utils/validators.js.map +1 -1
  130. package/package.json +60 -57
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/use-tree/use-tree.ts"],"names":["lookup","tree","getItem","update","value"],"mappings":"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","file":"use-tree.js","sourcesContent":["import { useTreeData } from '@react-stately/data';\nimport type { Key } from '@react-types/shared';\nimport isEqual from 'lodash/isEqual';\nimport { useCallback, useId, useMemo, useRef } from 'react';\nimport { useUpdateEffect } from '../use-update-effect';\nimport type {\n TreeActions,\n TreeNode,\n TreeNodes,\n UseTreeOptions,\n UseTreeResult,\n} from '../../types';\nimport { getChildren, getKey, mapTree, toggleVisibility } from './utils';\n\nexport function useTree<T>({\n allowsExpansion = true,\n allowsVisibility = false,\n nodes,\n selectionMode = 'none',\n onSelectionChange,\n onUpdate,\n}: UseTreeOptions<T>): UseTreeResult<T> {\n const rootKey = useId();\n\n const list = useTreeData({\n initialItems: nodes,\n getChildren,\n getKey,\n });\n\n useUpdateEffect(() => {\n if (selectionMode === 'none' && list.selectedKeys.size) {\n list.setSelectedKeys(new Set());\n }\n }, [selectionMode, list.selectedKeys.size]);\n\n /**\n * useTreeData doesn't update the state of TreeNode.value when updates\n * are made to children.\n *\n * Given the structure:\n * Foo\n * - Bar\n * - Cat\n *\n * There will be TreeNodes for each item, with a value that represents\n * the original node passed in. If an update occurs to one of the child\n * nodes (Bar, Cat), then Foo node's value is NOT updated to reflect that\n * change. This means that each node is the source of truth only for itself\n * and not any of its children.\n *\n * To provide a completely accurate tree, we need to override the getItem\n * and update methods, as well as replace the list.items with a tree that\n * is completely accurate at all times. This requires storing (depth first)\n * each node in a lookup, so that parent node's values can be updated to\n * reflect the current state of their children.\n */\n const { lookup, tree, getItem, update } = useMemo(() => {\n const lookup: Record<Key, TreeNode<T>> = {};\n\n let tree = mapTree(\n {\n key: rootKey,\n children: list.items,\n } as TreeNode<T>,\n (node) => {\n if (node.key === rootKey) {\n return;\n }\n\n node = lookup[node.key] = getItem(node.key);\n\n return node;\n },\n );\n\n if (allowsVisibility) {\n tree = mapTree(\n {\n key: rootKey,\n children: toggleVisibility(tree.children),\n } as TreeNode<T>,\n (node) => {\n if (node.key === rootKey) {\n return;\n }\n\n lookup[node.key] = node;\n\n return node;\n },\n );\n }\n\n function getItem(key: Key): TreeNode<T> {\n let node = lookup[key];\n\n if (node) {\n return node;\n }\n\n node = list.getItem(key);\n\n if ('nodes' in node.value) {\n return {\n ...node,\n value: {\n ...node.value,\n nodes: node.children.flatMap((child) => {\n const value = lookup[child.key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n }),\n },\n };\n }\n\n return node;\n }\n\n function update(key: Key, patch: Partial<TreeNodes<T>>) {\n const node = getItem(key);\n\n let value: TreeNode<T>['value'];\n\n if ('nodes' in node.value) {\n value = {\n ...node.value,\n ...patch,\n // Disallow a parent update to change child values\n nodes: node.children.flatMap((child) => {\n const value = lookup[child.key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n }),\n };\n } else {\n value = {\n ...node.value,\n ...patch,\n };\n }\n\n /**\n * We must immediately update the state of the lookup due to the\n * possibility of a queue of state changes and we can't allow for\n * a parent to update and wipe out a previous child update\n */\n lookup[key] = {\n ...node,\n value,\n };\n\n list.update(key, value);\n }\n\n return { lookup, tree, getItem, update };\n }, [rootKey, list, allowsVisibility]);\n\n const treeRef = useRef(tree);\n\n /**\n * Because tree is a computed value and there are so many methods\n * that update list.items, it's far simpler to fire the onUpdate\n * during the render cycle. However, this means that onUpdate can\n * only be used for side effect purposes and should not trigger\n * state updates\n */\n useUpdateEffect(() => {\n if (isEqual(treeRef.current, tree)) {\n return;\n }\n\n treeRef.current = tree;\n\n onUpdate?.(tree.children.map(({ value }) => value));\n }, [tree]);\n\n const previousExpansionValuesRef = useRef<\n {\n key: Key;\n patch: { isExpanded?: boolean };\n }[]\n >([]);\n\n const revertIsExpanded = useCallback(() => {\n if (!previousExpansionValuesRef.current.length) {\n return;\n }\n\n for (const { key, patch } of previousExpansionValuesRef.current) {\n update(key, patch);\n }\n\n previousExpansionValuesRef.current = [];\n }, [update]);\n\n const toggleIsExpanded = useCallback<TreeActions<T>['toggleIsExpanded']>(\n (selection = 'all', isExpanded = undefined, isRevertable = false) => {\n if (!(allowsExpansion || isRevertable)) {\n return;\n }\n\n if (!isRevertable) {\n previousExpansionValuesRef.current = [];\n }\n\n function toggle({ key, value }: TreeNode<T>) {\n if (key === rootKey || !('nodes' in value)) {\n return;\n }\n\n if (isRevertable) {\n previousExpansionValuesRef.current.push({\n key,\n patch: { isExpanded: value.isExpanded },\n });\n }\n\n update(key, { isExpanded: isExpanded ?? !value.isExpanded });\n }\n\n if (selection === 'all') {\n return mapTree(tree, toggle);\n }\n\n mapTree(tree, (node) => {\n if (!selection.has(node.key)) {\n return;\n }\n\n toggle(node);\n });\n },\n [allowsExpansion, tree, rootKey, update],\n );\n\n const toggleIsSelected = useCallback<TreeActions<T>['toggleIsSelected']>(\n (selection = 'all', isSelected = undefined) => {\n if (\n selectionMode === 'none' ||\n (selectionMode === 'single' &&\n (selection === 'all' || selection.size > 1))\n ) {\n return;\n }\n\n const all = Object.values(lookup);\n\n let keys =\n selection === 'all' ? new Set(all.map(({ key }) => key)) : selection;\n\n if (isSelected != null) {\n keys = isSelected ? keys : new Set();\n\n list.setSelectedKeys(keys);\n\n return onSelectionChange?.(\n (selection === 'all' || keys.size === all.length) && isSelected\n ? 'all'\n : keys,\n );\n }\n\n keys = new Set([\n ...(selectionMode === 'multiple'\n ? [...list.selectedKeys].filter(\n (key) => !(selection as Set<Key>).has(key),\n )\n : []),\n ...[...keys].filter((key) => !list.selectedKeys.has(key)),\n ]);\n\n list.setSelectedKeys(keys);\n\n onSelectionChange?.(\n selection === 'all' && keys.size === all.length ? 'all' : keys,\n );\n },\n [selectionMode, lookup, list, onSelectionChange],\n );\n\n const toggleIsViewable = useCallback<TreeActions<T>['toggleIsViewable']>(\n (selection = 'all', isViewable = undefined) => {\n if (!allowsVisibility) {\n return;\n }\n\n if (selection === 'all') {\n return mapTree(tree, ({ key, value }) => {\n if (key === rootKey) {\n return;\n }\n\n update(key, {\n isViewable: isViewable ?? !value.isViewable,\n });\n });\n }\n\n mapTree(\n {\n key: rootKey,\n children: Array.from(selection).reduce(\n (acc, key) => toggleVisibility(acc, key, isViewable),\n tree.children,\n ),\n } as TreeNode<T>,\n ({ key, value }) => {\n if (key === rootKey) {\n return;\n }\n\n update(key, { isViewable: value.isViewable });\n },\n );\n },\n [allowsVisibility, tree, rootKey, update],\n );\n\n return useMemo(() => {\n const { items: _, selectedKeys, ...rest } = list;\n\n return {\n actions: {\n ...rest,\n getItem,\n revertIsExpanded,\n toggleIsExpanded,\n toggleIsSelected,\n toggleIsViewable,\n update,\n },\n allowsExpansion,\n allowsVisibility,\n lookup,\n selectedKeys,\n selectionMode,\n tree,\n };\n }, [\n list,\n allowsExpansion,\n allowsVisibility,\n lookup,\n selectionMode,\n tree,\n getItem,\n revertIsExpanded,\n toggleIsExpanded,\n toggleIsSelected,\n toggleIsViewable,\n update,\n ]);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/use-tree/use-tree.ts"],"names":["lookup","tree","getItem","update","value"],"mappings":"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","file":"use-tree.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useTreeData } from '@react-stately/data';\nimport type { Key } from '@react-types/shared';\nimport isEqual from 'lodash/isEqual';\nimport { useCallback, useId, useMemo, useRef } from 'react';\nimport type {\n TreeActions,\n TreeNode,\n TreeNodes,\n UseTreeOptions,\n UseTreeResult,\n} from '../../types';\nimport { useUpdateEffect } from '../use-update-effect';\nimport { getChildren, getKey, mapTree, toggleVisibility } from './utils';\n\nexport function useTree<T>({\n allowsExpansion = true,\n allowsVisibility = false,\n nodes,\n selectionMode = 'none',\n onSelectionChange,\n onUpdate,\n}: UseTreeOptions<T>): UseTreeResult<T> {\n const rootKey = useId();\n\n const list = useTreeData({\n initialItems: nodes,\n getChildren,\n getKey,\n });\n\n useUpdateEffect(() => {\n if (selectionMode === 'none' && list.selectedKeys.size) {\n list.setSelectedKeys(new Set());\n }\n }, [selectionMode, list.selectedKeys.size]);\n\n /**\n * useTreeData doesn't update the state of TreeNode.value when updates\n * are made to children.\n *\n * Given the structure:\n * Foo\n * - Bar\n * - Cat\n *\n * There will be TreeNodes for each item, with a value that represents\n * the original node passed in. If an update occurs to one of the child\n * nodes (Bar, Cat), then Foo node's value is NOT updated to reflect that\n * change. This means that each node is the source of truth only for itself\n * and not any of its children.\n *\n * To provide a completely accurate tree, we need to override the getItem\n * and update methods, as well as replace the list.items with a tree that\n * is completely accurate at all times. This requires storing (depth first)\n * each node in a lookup, so that parent node's values can be updated to\n * reflect the current state of their children.\n */\n const { lookup, tree, getItem, update } = useMemo(() => {\n const lookup: Record<Key, TreeNode<T>> = {};\n\n let tree = mapTree(\n {\n key: rootKey,\n children: list.items,\n } as TreeNode<T>,\n (node) => {\n if (node.key === rootKey) {\n return;\n }\n\n node = lookup[node.key] = getItem(node.key);\n\n return node;\n },\n );\n\n if (allowsVisibility) {\n tree = mapTree(\n {\n key: rootKey,\n children: toggleVisibility(tree.children),\n } as TreeNode<T>,\n (node) => {\n if (node.key === rootKey) {\n return;\n }\n\n lookup[node.key] = node;\n\n return node;\n },\n );\n }\n\n function getItem(key: Key): TreeNode<T> {\n let node = lookup[key];\n\n if (node) {\n return node;\n }\n\n node = list.getItem(key);\n\n if ('nodes' in node.value) {\n return {\n ...node,\n value: {\n ...node.value,\n nodes: node.children.flatMap((child) => {\n const value = lookup[child.key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n }),\n },\n };\n }\n\n return node;\n }\n\n function update(key: Key, patch: Partial<TreeNodes<T>>) {\n const node = getItem(key);\n\n let value: TreeNode<T>['value'];\n\n if ('nodes' in node.value) {\n value = {\n ...node.value,\n ...patch,\n // Disallow a parent update to change child values\n nodes: node.children.flatMap((child) => {\n const value = lookup[child.key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n }),\n };\n } else {\n value = {\n ...node.value,\n ...patch,\n };\n }\n\n /**\n * We must immediately update the state of the lookup due to the\n * possibility of a queue of state changes and we can't allow for\n * a parent to update and wipe out a previous child update\n */\n lookup[key] = {\n ...node,\n value,\n };\n\n list.update(key, value);\n }\n\n return { lookup, tree, getItem, update };\n }, [rootKey, list, allowsVisibility]);\n\n const treeRef = useRef(tree);\n\n /**\n * Because tree is a computed value and there are so many methods\n * that update list.items, it's far simpler to fire the onUpdate\n * during the render cycle. However, this means that onUpdate can\n * only be used for side effect purposes and should not trigger\n * state updates\n */\n useUpdateEffect(() => {\n if (isEqual(treeRef.current, tree)) {\n return;\n }\n\n treeRef.current = tree;\n\n onUpdate?.(tree.children.map(({ value }) => value));\n }, [tree]);\n\n const previousExpansionValuesRef = useRef<\n {\n key: Key;\n patch: { isExpanded?: boolean };\n }[]\n >([]);\n\n const revertIsExpanded = useCallback(() => {\n if (!previousExpansionValuesRef.current.length) {\n return;\n }\n\n for (const { key, patch } of previousExpansionValuesRef.current) {\n update(key, patch);\n }\n\n previousExpansionValuesRef.current = [];\n }, [update]);\n\n const toggleIsExpanded = useCallback<TreeActions<T>['toggleIsExpanded']>(\n (selection = 'all', isExpanded = undefined, isRevertable = false) => {\n if (!(allowsExpansion || isRevertable)) {\n return;\n }\n\n if (!isRevertable) {\n previousExpansionValuesRef.current = [];\n }\n\n function toggle({ key, value }: TreeNode<T>) {\n if (key === rootKey || !('nodes' in value)) {\n return;\n }\n\n if (isRevertable) {\n previousExpansionValuesRef.current.push({\n key,\n patch: { isExpanded: value.isExpanded },\n });\n }\n\n update(key, { isExpanded: isExpanded ?? !value.isExpanded });\n }\n\n if (selection === 'all') {\n return mapTree(tree, toggle);\n }\n\n mapTree(tree, (node) => {\n if (!selection.has(node.key)) {\n return;\n }\n\n toggle(node);\n });\n },\n [allowsExpansion, tree, rootKey, update],\n );\n\n const toggleIsSelected = useCallback<TreeActions<T>['toggleIsSelected']>(\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: refactor\n (selection = 'all', isSelected = undefined) => {\n if (\n selectionMode === 'none' ||\n (selectionMode === 'single' &&\n (selection === 'all' || selection.size > 1))\n ) {\n return;\n }\n\n const all = Object.values(lookup);\n\n let keys =\n selection === 'all' ? new Set(all.map(({ key }) => key)) : selection;\n\n if (isSelected != null) {\n keys = isSelected ? keys : new Set();\n\n list.setSelectedKeys(keys);\n\n return onSelectionChange?.(\n (selection === 'all' || keys.size === all.length) && isSelected\n ? 'all'\n : keys,\n );\n }\n\n keys = new Set([\n ...(selectionMode === 'multiple'\n ? [...list.selectedKeys].filter(\n (key) => !(selection as Set<Key>).has(key),\n )\n : []),\n ...[...keys].filter((key) => !list.selectedKeys.has(key)),\n ]);\n\n list.setSelectedKeys(keys);\n\n onSelectionChange?.(\n selection === 'all' && keys.size === all.length ? 'all' : keys,\n );\n },\n [selectionMode, lookup, list, onSelectionChange],\n );\n\n const toggleIsViewable = useCallback<TreeActions<T>['toggleIsViewable']>(\n (selection = 'all', isViewable = undefined) => {\n if (!allowsVisibility) {\n return;\n }\n\n if (selection === 'all') {\n return mapTree(tree, ({ key, value }) => {\n if (key === rootKey) {\n return;\n }\n\n if (!value.isReadOnly) {\n update(key, {\n isViewable: isViewable ?? !value.isViewable,\n });\n }\n });\n }\n\n mapTree(\n {\n key: rootKey,\n children: Array.from(selection).reduce(\n (acc, key) => toggleVisibility(acc, key, isViewable),\n tree.children,\n ),\n } as TreeNode<T>,\n ({ key, value }) => {\n if (key === rootKey) {\n return;\n }\n\n if (!value.isReadOnly) {\n update(key, { isViewable: value.isViewable });\n }\n },\n );\n },\n [allowsVisibility, tree, rootKey, update],\n );\n\n return useMemo(() => {\n const { items: _, selectedKeys, ...rest } = list;\n\n return {\n actions: {\n ...rest,\n getItem,\n revertIsExpanded,\n toggleIsExpanded,\n toggleIsSelected,\n toggleIsViewable,\n update,\n },\n allowsExpansion,\n allowsVisibility,\n lookup,\n selectedKeys,\n selectionMode,\n tree,\n };\n }, [\n list,\n allowsExpansion,\n allowsVisibility,\n lookup,\n selectionMode,\n tree,\n getItem,\n revertIsExpanded,\n toggleIsExpanded,\n toggleIsSelected,\n toggleIsViewable,\n update,\n ]);\n}\n"]}
@@ -4,7 +4,7 @@ import '@react-stately/data';
4
4
 
5
5
  declare function getChildren<T>(node: TreeNodes<T>): TreeNodes<T>[];
6
6
  declare function getKey<T>(node: TreeNodes<T>): Key;
7
- declare function mapTree<T>(node: TreeNode<T>, callback: (node: TreeNode<T>) => TreeNode<T> | undefined | void): TreeNode<T>;
7
+ declare function mapTree<T>(node: TreeNode<T>, callback: (node: TreeNode<T>) => void | TreeNode<T> | undefined): TreeNode<T>;
8
8
  declare function toggleVisibility<T>(nodes: TreeNode<T>[], target?: Key, isViewable?: boolean): TreeNode<T>[];
9
9
 
10
10
  export { getChildren, getKey, mapTree, toggleVisibility };
@@ -28,13 +28,13 @@ function toggleVisibility(nodes, target = "", isViewable) {
28
28
  const toggle = [];
29
29
  let result = toggleVisibilityInternal(nodes, target, isViewable, {
30
30
  forceIsViewable: false,
31
- parent: { isViewable: true, isVisible: true },
31
+ parent: { isVisible: true },
32
32
  toggle
33
33
  });
34
34
  while (target = toggle.shift() ?? "") {
35
35
  result = toggleVisibilityInternal(result, target, void 0, {
36
36
  forceIsViewable: false,
37
- parent: { isViewable: true, isVisible: true },
37
+ parent: { isVisible: true },
38
38
  toggle
39
39
  });
40
40
  }
@@ -44,7 +44,7 @@ function toggleVisibilityInternal(nodes, target, state, { forceIsViewable, paren
44
44
  return nodes.map((node) => {
45
45
  const isViewable = forceIsViewable || (target === node.key ? state ?? !node.value.isViewable : node.value.isViewable);
46
46
  const isVisible = parent.isVisible && isViewable;
47
- const willUpdateIsViewable = node.value.isViewable != isViewable;
47
+ const willUpdateIsViewable = node.value.isViewable !== isViewable;
48
48
  if (node.parentKey && willUpdateIsViewable && isViewable && !parent.isVisible) {
49
49
  toggle.push(node.parentKey);
50
50
  }
@@ -57,7 +57,6 @@ function toggleVisibilityInternal(nodes, target, state, { forceIsViewable, paren
57
57
  // Toggle all children on if all are inactive and parent is toggled on
58
58
  forceIsViewable: forceIsViewable || willUpdateIsViewable && !!isViewable && areUnviewable(node.children),
59
59
  parent: {
60
- isViewable: !!isViewable,
61
60
  isVisible: !!isVisible
62
61
  },
63
62
  toggle
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/use-tree/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { TreeNode, TreeNodes } from '../../types';\n\nexport function getChildren<T>(node: TreeNodes<T>) {\n return 'nodes' in node ? node.nodes : [];\n}\n\nexport function getKey<T>(node: TreeNodes<T>) {\n return node.id;\n}\n\nexport function mapTree<T>(\n node: TreeNode<T>,\n callback: (node: TreeNode<T>) => TreeNode<T> | undefined | void,\n): TreeNode<T> {\n let changed = false;\n\n const children = node.children.map((child) => {\n const update = mapTree(child, callback);\n\n if (update !== child) {\n changed = true;\n }\n\n return update;\n });\n\n if (changed) {\n node = {\n ...node,\n children,\n };\n }\n\n return callback(node) ?? node;\n}\n\ntype VisibilityUpdateContext = {\n forceIsViewable: boolean;\n parent: {\n isViewable: boolean;\n isVisible: boolean;\n };\n toggle: Key[];\n};\n\nexport function toggleVisibility<T>(\n nodes: TreeNode<T>[],\n target: Key = '',\n isViewable?: boolean,\n): TreeNode<T>[] {\n const toggle: Key[] = [];\n\n let result = toggleVisibilityInternal(nodes, target, isViewable, {\n forceIsViewable: false,\n parent: { isViewable: true, isVisible: true },\n toggle,\n });\n\n while ((target = toggle.shift() ?? '')) {\n result = toggleVisibilityInternal(result, target, undefined, {\n forceIsViewable: false,\n parent: { isViewable: true, isVisible: true },\n toggle,\n });\n }\n\n return result;\n}\n\nfunction toggleVisibilityInternal<T>(\n nodes: TreeNode<T>[],\n target: Key,\n state: boolean | undefined,\n { forceIsViewable, parent, toggle }: VisibilityUpdateContext,\n): TreeNode<T>[] {\n return nodes.map((node) => {\n const isViewable =\n forceIsViewable ||\n (target === node.key\n ? (state ?? !node.value.isViewable)\n : node.value.isViewable);\n\n const isVisible = parent.isVisible && isViewable;\n const willUpdateIsViewable = node.value.isViewable != isViewable;\n\n // Toggle on parent if child of inactive parent is toggled on\n if (\n node.parentKey &&\n willUpdateIsViewable &&\n isViewable &&\n !parent.isVisible\n ) {\n toggle.push(node.parentKey);\n }\n\n // Toggle off parent if last active child is toggled off\n if (\n node.parentKey &&\n willUpdateIsViewable &&\n !isViewable &&\n parent.isVisible &&\n areSiblingsUnviewable(nodes, node)\n ) {\n toggle.push(node.parentKey);\n }\n\n return {\n ...node,\n children: toggleVisibilityInternal(node.children, target, state, {\n // Toggle all children on if all are inactive and parent is toggled on\n forceIsViewable:\n forceIsViewable ||\n (willUpdateIsViewable &&\n !!isViewable &&\n areUnviewable(node.children)),\n parent: {\n isViewable: !!isViewable,\n isVisible: !!isVisible,\n },\n toggle,\n }),\n value: {\n ...node.value,\n isViewable,\n isVisible,\n },\n };\n });\n}\n\nfunction areUnviewable<T>(nodes: TreeNode<T>[]): boolean {\n return nodes.every(\n ({ children, value }) =>\n !value.isViewable && (!children.length || areUnviewable<T>(children)),\n );\n}\n\nfunction areSiblingsUnviewable<T>(nodes: TreeNode<T>[], node: TreeNode<T>) {\n return areUnviewable(nodes.filter((n) => n !== node));\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/use-tree/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeNode, TreeNodes } from '../../types';\n\nexport function getChildren<T>(node: TreeNodes<T>) {\n return 'nodes' in node ? node.nodes : [];\n}\n\nexport function getKey<T>(node: TreeNodes<T>) {\n return node.id;\n}\n\nexport function mapTree<T>(\n node: TreeNode<T>,\n // biome-ignore lint/suspicious/noConfusingVoidType: void is being used in a return type here. seems like a biome issue\n callback: (node: TreeNode<T>) => void | TreeNode<T> | undefined,\n): TreeNode<T> {\n let changed = false;\n\n const children = node.children.map((child) => {\n const update = mapTree(child, callback);\n\n if (update !== child) {\n changed = true;\n }\n\n return update;\n });\n\n if (changed) {\n node = {\n ...node,\n children,\n };\n }\n\n return callback(node) ?? node;\n}\n\ntype VisibilityUpdateContext = {\n forceIsViewable: boolean;\n parent: {\n isViewable: boolean;\n isVisible: boolean;\n };\n toggle: Key[];\n};\n\nexport function toggleVisibility<T>(\n nodes: TreeNode<T>[],\n target: Key = '',\n isViewable?: boolean,\n): TreeNode<T>[] {\n const toggle: Key[] = [];\n\n let result = toggleVisibilityInternal(nodes, target, isViewable, {\n forceIsViewable: false,\n parent: { isViewable: true, isVisible: true },\n toggle,\n });\n\n // biome-ignore lint/suspicious/noAssignInExpressions: intentional\n while ((target = toggle.shift() ?? '')) {\n result = toggleVisibilityInternal(result, target, undefined, {\n forceIsViewable: false,\n parent: { isViewable: true, isVisible: true },\n toggle,\n });\n }\n\n return result;\n}\n\nfunction toggleVisibilityInternal<T>(\n nodes: TreeNode<T>[],\n target: Key,\n state: boolean | undefined,\n { forceIsViewable, parent, toggle }: VisibilityUpdateContext,\n): TreeNode<T>[] {\n return nodes.map((node) => {\n const isViewable =\n forceIsViewable ||\n (target === node.key\n ? (state ?? !node.value.isViewable)\n : node.value.isViewable);\n\n const isVisible = parent.isVisible && isViewable;\n const willUpdateIsViewable = node.value.isViewable !== isViewable;\n\n // Toggle on parent if child of inactive parent is toggled on\n if (\n node.parentKey &&\n willUpdateIsViewable &&\n isViewable &&\n !parent.isVisible\n ) {\n toggle.push(node.parentKey);\n }\n\n // Toggle off parent if last active child is toggled off\n if (\n node.parentKey &&\n willUpdateIsViewable &&\n !isViewable &&\n parent.isVisible &&\n areSiblingsUnviewable(nodes, node)\n ) {\n toggle.push(node.parentKey);\n }\n\n return {\n ...node,\n children: toggleVisibilityInternal(node.children, target, state, {\n // Toggle all children on if all are inactive and parent is toggled on\n forceIsViewable:\n forceIsViewable ||\n (willUpdateIsViewable &&\n !!isViewable &&\n areUnviewable(node.children)),\n parent: {\n isViewable: !!isViewable,\n isVisible: !!isVisible,\n },\n toggle,\n }),\n value: {\n ...node.value,\n isViewable,\n isVisible,\n },\n };\n });\n}\n\nfunction areUnviewable<T>(nodes: TreeNode<T>[]): boolean {\n return nodes.every(\n ({ children, value }) =>\n !value.isViewable && (!children.length || areUnviewable<T>(children)),\n );\n}\n\nfunction areSiblingsUnviewable<T>(nodes: TreeNode<T>[], node: TreeNode<T>) {\n return areUnviewable(nodes.filter((n) => n !== node));\n}\n"]}
package/dist/index.css CHANGED
@@ -750,13 +750,14 @@
750
750
  }
751
751
  }
752
752
 
753
- /* vanilla-extract-css-ns:src/components/options/options.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VWTW/bMAy991cIPS1AXMRpu63upcB63nVHg7YVR40sOZLcJB3y3wd92fJHVnfoLrYhkk9PJB+tJwonLJB5ynQjoMIHLnZput9l+/1LfOMsOa9qzjBT0psexqYbGnsrPF49fS702luzT4fuWKPfVwjd8FoRzmTq3j8oSPkTKtyupDlnCgjDIk3ju1X5lt3HmYlFqDVFDCqcoCGYN3dgHmL1aAAKImsKpwRllOc7vXaeR2qIF+eOUkVYdCCF2iboFcSXKHKeUUXYL73ehhyXzkMJUpZY2LDFwjKroSgIK4copzb8bYlWi4H12FpP2mqRMi4KLCIBBWmkx5NVmtIXUh32t8VixrkpkWqqEsWHK2GQ2vhBGTSM7pO5jCTO9XqHt3F8BulzfkH64tsgf97c5S9e+wTOobHFUIRZKadZWLeQxL3vAaJwFRoe9PaLflzA7q4XFxi+m7iw8AmK6yOSnJICKQFM1iAwU84F8l0peMOKAcfO0GJzB5tzysXA3ay1nvvZiZO4BgEqiI23LndbTMqtMuztvhWIkrCuoi4yzNq3Xk29Q5Cer4EsRkcfkxFzDqJLMCUN8mFpGCQfv567dS8qfnG7tpIqBSnsifVXpHBVU1A4AoFBJuia5JwhChmmSNaQYwRGC9fOUmCZC2J27tunMHNOm4rJBEGjuH3EG2E+ptwFP4S+1gUoKZnpa5mgHDOFhYuFOgm7voS6OzZMj81JWf1NOpeUE4RYYxunlqGsLjaXDR2rSk6pyjj3NdV4v0ZI7Vhz4lMzp0lMgbuzUtclph66ExLbAhNc+pGvsxURNE63bzXeN/Cb2H0K5bC8QG02N7nlQuVN8B9iY2K2zz3kUytjJNWJYl0l+UwkZBR31dwkSIkGLxzav0m3KzLjKgJK+QE7CZ8vs9mCfJ5IFk7QBqicTelCo7jMCH6IpAKhev0SGLHu+FFJLe3z/7umvneXND+b/s0DDwflhmL3p9FfUUGEvRXoW4kea5eUrWGnlE2nR5JxD0ZS7Lv5dXXr72TrY/vvN+7BlFq9P6Usof6Uqian1GfcDG0j55zZR0t0N1aUdrCI5z9EH7dZDA0AAA== */
753
+ /* vanilla-extract-css-ns:src/components/options/options.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VWyW7bMBC95yvYnGrACixnaaNcAjTnXns0RhItM6ZImaS8pPC/F9wkanGjFOlFEjgzbx5n5lF8pnDCApmnXK0FlPjAxXa12m3T3e41vnGWjJcVZ5gp6U2PQ9MNjb0Vnq6ePxd66a3pp0O3rNHvK4RueKUIZ3Ll3j8oSPkTStysrDLOFBCGxWoV3y2Kt/Q+Tk0sQo0pYlDiBPXBvLkF8xCLJwOQE1lROCUopTzb2rW3iLAcHxO0B/E1iipe8b1OTl9JedjdP8zQF1JWXChgSkecp22jzyDO3CZKwqIDydXGZ3SeUUnYL73ehBznzkMJUhRY2LDZzPKuIM8JK/oopyb8bY4Ws5712FhP2mqRUi5yLCIBOamlx5OlL8FtPpuwb0qkGutd/uHeGaQmvtc4DaMnayojiTO93uKtHZ9e+ZxfUL74NqifN7f1i5e+gFNobDDkYVWKcRbWLSRx72eAKFyGhkedftaNC9jddeICw3cTFzY+QXF1RJJTkiMlgMkKBLazjlAK2bYQvGZ5j2NraLC5g8045aLnbtYaz93kwklcgQAVxMYbV7sNJsVGGfY2bwmiIKztqIsMq/at01PvEJTnIZDFYOtDMmLKRnQLxqRBPiwNg+Tjl1NTd6LiV5e1kVQhSG53rL8ihcuKgsIRCAwyQdck4wxRSDFFsoIMIzBauHaWHMtMEJO5ax/DzDitSyYTBLXi9hGvhfkYcxf8EPpaF6CkYGauZYIyzBQWLhaqJJz6Aqp22zB+bI7K6m/SuaScIMQamzg1D2V1cbhs6FBVckxVxrmrqdr71UJqx4oTX5opQ2Ia3O6Vuikx/dCTkNgRGOHSjdxPVkQwOG3ecpg38BvJPoZymF+gNpmb3HChsjr4D7EhMTvnHvK5kTGS6kSx7pJ8IRJSitturhOkRI1nDu3fpNs2mXEVAaX8gJ2Ez5fZbEC+jBQLJ2gNVE6mdGFQXGUEP0RSgVCdeQmMWE/8oKWW9vn/XWzfu32an0335oH7B+WaYven0V9RToS9FehbiT7WLilbw44pm44fScY9OJJiP837xa2/ky2Pzb/fuAen1OL9U8oS6p5S5egp9Rk3QzvIGWf20RDdDhWlHSzi+Q8w00oEPg0AAA== */
754
754
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja;
755
755
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l2__qkbqqjb;
756
756
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja {
757
757
  .options_optionsClassNames_options_container__140gzb51b {
758
758
  container-name: options_optionsContainers_options__140gzb50;
759
759
  display: block;
760
+ z-index: var(--popover__ljimwq56) !important;
760
761
  }
761
762
  .options_optionsClassNames_options_options__140gzb51c {
762
763
  min-width: var(--options-minWidth__140gzb5x, var(--trigger-width));
@@ -1333,13 +1334,14 @@
1333
1334
  }
1334
1335
  }
1335
1336
 
1336
- /* vanilla-extract-css-ns:src/components/menu/menu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VWyW7bMBC99yuInGrACiynW5RLgObca4/CWKRl2hQpk1Rsp/C/F9wkypKXoOlFsPlm3jzOQvKZwYFIZL8qX0qoyE7ITZ5vN4vtdp3ee6QQVS044VoF6HEI3bM0oPD06fljqecBXXw4daca/fmE0H1FeJObz08GSv2Ciij7Ny8E10A5kXmOa/WGVfpoPRBqkYRDRTLUUQTAU3jH2ZN1w1TVDA4ZWjBRbMza8aKAmCIFH7uiPNlRrFcZegX5OUmMVVJR/tssBvPXqUe1pGVJpHOZTJyQGjCmvOwxHILrfopmkxjZB2RnEMewEBITmUjAtFGBR1V5zta02m0f8OTi9hhVeiS/i3fk11IEx5P8Gn9T7OsaFCk0Fbwlwl7BSYa8WZekNI2yFNA2UeksZOpy9BUBHG2fjAd3VlHsh1BcqkkVrX83USd9r07TvOfVrX+zXnFZM5TWe6QEoxhpCVzVIAnX3gSKTSlFw/GJvg4I1JVnLQQT8sTargVDcUOuFKlBgu6c0qVP14rQcqWtaBevAllS3tXOO0aZ+tqrXsC7nHyJOn2w34GS+rJ8k++RZi/f0eyWwjvOrweLzdOVj9NORykpdnszvxJNqpqBJglIAipDd7QQHDFYEIZUDQVBYNv7ziOYqELS2iz18THOQrCm4ipD0GjhPulS2h9j5lLsYltnAoyW3HatylBBuCbS+0KdxT1dQt3u+sf4UTc2MRfG4txURB4ODG5yGk/M2RZynoOB2Y4NjLXtjYsKZo1Uxq4WNCTlcl/YorY7XPvGsCUwxc9c1Uc09Bz1De0eNUkbbzOMF5mNRB0haabjim6QpFZC6qLpLo1qqMd1cuB6bkcTKX1gxBRDvVAFC0bamuEMadmQiSd751B2ReRCJ8CY2BE/nMfzKlagXoa5gQwtgakbpIz3gc+EFLtEaZC61w4RSEwfDyrn5B7/30Pw/GvN3g+990BxeuYtGfGXg/mVYCrdnW3eCuaEOjeohnVkUNfjp4u1bk+Xt9Crr7OH8DCa79sL2hq3583h+nHjtPSOm83ocfNvbzPXrIXg7hNSSofTYvDrVJWQpE/FLg/e8S+IYB3RpwwAAA== */
1337
+ /* vanilla-extract-css-ns:src/components/menu/menu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VWy1LbMBTd9ytUVs0MZjC0tJgNM2XdbZeZG0txRPSKJJOEDv/e0cuWYyfAlG48ic499x7dh6R7Bnuikf+a+VIDJ1up1/P5Zr3YbB7Li4jUkispiLAmQbdj6IKVCYW7T/cf6/oqoYsPd92rRn8+IXTBiWjn7vOTgTG/gBPj/85rKSxQQfR8jpV5xqa89QyEOqQQwEmFehcJiC4i8fLO0zA1isG+Qgsm63VYey6owGRXoSfQX4pCSSWfXET2SPl28+1mhj5TrqS2IKxjvJyUnActIarlVBRbiu0qBXFWBafit1tM5k/nEbWaNg3RgTKbBZkKMKaiGXjYJ+ruHF3OcmSXkK1DgoeF1JjoQgOmrUl+DE87vcazk9tj1NiJiizeURHvIhEPKuL4rj1e12BIbakUnSMcFRxkKJr1SSrLLEsJ7RJVXqZMnY6+IoCz7ZPp4MEqi32dikst4dn6dxd1NmT1mq4GrH79xrPyslaoVDtkJKMYWQ3CKNAkNCxCC6jXjZatwAf6eiC55tFrLZnUB9Z+LRnKN+TKEAUabE8qlzFdK0KblfWiQzwOuqGir10kZpn6NqhewvucfM06fbTfkRJ1Wr7L90SzN+9odu8iEq9eD5abl6sYp5uORlMc9uZ+FZZwxcCSAjQBU6EzWkuBGCwIQ0ZBTRD49j6LCCam1lS5pSE+5bOWrOXCVAhaK8OnXGr/Y8pcy21uG0yA0Ub4rjUVqomwREcuqCrv6QZUt+sf00fd1MScGItjU5ExApho+jyfmKMtFJijgdlMDYy3HYyLSWatNs5OSZqScrovfFG7HT7GxvAlcMWvQtUnNAyI9g3tnjVJF289jpeZTUSdcNKeTyt6gySzktrWbX9p8LGe0MnJ1303msjYPSOuGOaBGlgw0tUMV8jqlsyis3cOZV9EIW0BjMkticP5clzFCszDODdQoSUw8wYp030QM6HltjAWtB20QwYS18ejygW5L//v6Xj8fefvh8F7oD4885aMxMvB/Sow1eHOdm8Fd0IdG1TndWJQH6dPF2/dnS7PqVefLq/Tw+hq113Q3rg7b/avHzdBy+C4WU8eN//2NgvNWksRPimldDwtDn/dFZeaDF2x04P38hcsEa612QwAAA== */
1337
1338
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja;
1338
1339
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l2__qkbqqjb;
1339
1340
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja {
1340
1341
  .menu_menuClassNames_menu_container__dpszds19 {
1341
1342
  container-name: menu_menuContainers_menu__dpszds0;
1342
1343
  display: block;
1344
+ z-index: var(--popover__ljimwq56) !important;
1343
1345
  }
1344
1346
  .menu_menuClassNames_menu_menu__dpszds1a {
1345
1347
  min-width: var(--menu-minWidth__dpszdsv, var(--trigger-width));
@@ -1494,7 +1496,7 @@
1494
1496
  }
1495
1497
  }
1496
1498
 
1497
- /* vanilla-extract-css-ns:src/components/popover/popover.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VSy27CMBC88xU+EgkjKKWPcEHqvb9gbeJNMNhe45iXKv69InFCBFVFD73E8c7MztqepYYTelZ/K1F4MHggvxFiu8m22/V0HJGcjCOLNlQt9H4PjfW0RWExWP5Xa/Y1YGzsyNEevVghSPRCTIN9ncujrFHGDPhSWZ5RCGRSloPOh3vwQ85LcLwRcShCT/qSMM6uHIkF7HTo4HmSLAaMnfvmOdmA9srB6J6TJp/GZpHE62JHnd53i+uHhqr6BIOV6PuAsr1hi84pItyCwZTd9roTTha1TqrKaTilLNOUb/4wSru2/co4yEHJsGqPXG86ytOIzSYTd0xurAuNx6Z0+eNSecyDIpte7m9nbIOV4NJfn6WhOZBS2bKlnjrC84hNklg9dtXZpdooM/KXMHiQale1eiOF0GtlDtsZPvJSBVE/S6t4Kz+cdb2rgipObSwaiKOVi35wA7m71DYePMOCPHZWbw/G9vwNt4WSJOwDAAA= */
1499
+ /* vanilla-extract-css-ns:src/components/popover/popover.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7VSy27CMBC88xXujUg1glL6CBek3vsL0SbeBIPtNY4poVX/vSKxQwRV1R56SeKZ2Z3JelcKjuhY+6yz0oHGA7ltlu22+W63mU0CU5C2ZND4OlLP19REzSILy9Hqv1qzjxFjE0uW3tBlawSBLstm3jwuRCNaljENrpKG5+Q96ZQVoIrxG7gx5xVY3hVxKP2g9CFhnJ01AkvYK9/TiyRZjhj7HJoXZDyaswaDe0GKXBqaBRFvwV46u+4W3i8K6voVNNbZ0AekGYQte6fAcAMaU3bZ66pwumzrhKytgmPKckXFtsPeuTQCm5g7tsrURurDbvGQsBupLTkPxv8hfN8nJKhC9IMUfh3N2kMvubtl8+nUNslF2FJh00GnLy6kw8JLMulp4nttOq4Cm/54kZ3MghDSVFF67AX3t2yaBLTp0fkJ7Spzcqf1cSDkvo71WsRJzfE3d1sSDbdvHabyzb9u9rWX5TEuUkdxNGI5XHVP9mrPOw+eY0kOe6unXy765xfXQ78OHgQAAA== */
1498
1500
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja;
1499
1501
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja {
1500
1502
  .popover_header__1tn75dxd {
@@ -1506,6 +1508,7 @@
1506
1508
  .popover_popoverClassNames_popover_container__1tn75dxf {
1507
1509
  container-name: popover_popoverContainer__1tn75dx0;
1508
1510
  display: block;
1511
+ z-index: var(--popover__ljimwq56) !important;
1509
1512
  }
1510
1513
  .popover_popoverClassNames_popover_popover__1tn75dxg {
1511
1514
  width: var(--width__1tn75dx2, 300px);
@@ -1522,7 +1525,7 @@
1522
1525
  }
1523
1526
  }
1524
1527
 
1525
- /* vanilla-extract-css-ns:src/components/radio/radio.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7WUbW/aMBDH3/dTnCpVAqlGsLZba94gbVK1N5u0LxBdkiMYHDucDZRNfPcpD+ahtKTtWF44iu/vf34+33mkcU0M1eiiMWNOK8uzKJrP4vl8Oug1kcTmhTVkvAuhh+NQTw9CFIcXo/9lDX8uAHqMqbJRNX7V6NwPzMnV31FijUdliKNosiJ7H9tqDcA2IAzmJGHf5Pma/rBaslKpn0gYKy/K1WR8PZ8qV2hcS4i1TWbl3KYNqx4b+6JB2vqMNT3V1qhVZoTylDsJCRlPPGzwtWUJS+SOENVHcLvt1ooMixDPsAjRz90P8EkZ09gy7aWOjJdweflaAgBiyymxhEHxBM5qlTYs9Xyw/tQ9SG0tSRXm5Heiu0Y0IZVNfJuq/oEod7BwQcx2YdIo0lOVr+Y3WZBiMsuqkFA5Zk0VoBZZ+SbjO5UsPIniRNP1wVyzqa1RoLnpQv/Nytv+1aHWMxpXIJPxcHcqOOj3r/aCbYdb/rk47ol5e088liuPGmPw7PybynBvwqjHxolf74G9QiZNORn/uKvnL9cv1fg2D6PtlsD5taaOEFVLfTfFwgf9vQTnkX23YXh/50KFK1LFlHhljQS2K8G0JHZU72LzTiIy6Zl5WjmU+0WY/jR6HfxIwhi1o38hSRbsyquqsGp3fZ2k+KYcxpq2HfIgwfPiLBDGeoFa2xWlrSCWyysAy/wFw6mEiWX1u9TqFp4TRf6x43mZZ0nsVXJemsTqRW72gTZ/Ab4p/y8eCAAA */
1528
+ /* vanilla-extract-css-ns:src/components/radio/radio.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7WUb2/aMBDG3/dTnCpVAqlGsLZba94gbVK1N5u0LxBdkiMYHDucDSmb+O5T/kKhJW3HeGEU33NPfr7ceaJxQwzl6oIpY0q55UUQLBfhcjkfDepIZNPMGjLeNaGH49BAj5ooji8m/8sa/lwADBhjZYNy/arRuR+Ykqueg8gaj8oQB8EsJ3sf2jIHoA0IgylJ2Dc5zBmOy5RcxX4mYaq8KLLJ+Go/Vi7TuJEQahstir1tF1a11vZZjdT6TDU9VdaoVWKE8pQ6CREZTzyu8bVlCWvknhDlQ+N2268UCWZNPMGsiX7uf4BPypCmlmmvdGS8hMvL1woAEFqOiSWMsidwVqu4Zqn2G+tP/WelrSSxwpT8TnRXi2akkpnvUlUvEMUJVq4Rs12ZOAj0XKX58iZppBgtkjIkVIpJ3QWoRVL8k/G9Utb+IsWRpuvnm/WxWquG56YPw7dLb4dXB2LPaFyGTMbD3cnoaDi82o92feLi5dnxZCy7J+OxyDwaj9FBF9T94d6EUa21E78+CXvtTJpSMv5x19Vfrl/q9LYOk/ZI4PxGU0+IcrC+m2zlG/29BOeRfb9meP/8QokrYsUUeWWNBLa5YFoTO6pOsX0nEZn4zDydHMr9Iox/Gr1p/EjCFLWjfyGJVuyKCyuzaneJnaT4phyGmtoheZDgeXUWCGO9QK1tTnEniOXiIsCifo3hXMLMsvpdaHUHz4km/9jneZlnTexVdF6ayOpVavaBtn8BDfJchSQIAAA= */
1526
1529
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja;
1527
1530
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja {
1528
1531
  .radio_radioClassNames_radio_container__hweo8bo {
@@ -1983,15 +1986,15 @@
1983
1986
  }
1984
1987
  }
1985
1988
 
1986
- /* vanilla-extract-css-ns:src/components/tree/tree.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VYTW/bOBC991cQAQokizCwm6S7VS8B2mIv3T0t9mqMpLHMmCIVkv7aRf77ghRJyZZsyd4UvQiy5oOPjzNvCD9x2KEi7qlncwUlbqRazmYvy/Tl5Xl65y2ZLCspUBgdTJ+6pjs+DVb4/O7pbVN/CNb0zVM3qMm/7wi5MwpxZh9fOGj9J5So3c9ZJoUBJlDNZsvUPIv7aeoiCIkWKqDEhDQpgsGn8IGTzy4sZ7risEtcvAVjP78ew4BlZXZx6cwvXUGeM1EkZA3qmlLnRKMb3pLJzZ5pG0y5NdU4UqlyVAmZVluSg15g7kOYyFkGRipau4TYX2+JUSB0BQqF2ctCFeRspQMeXc5m/JmVm5f7PPhBtiyUXIk86S4TbWGpjz4qk1yqboD7HHx/874Gt4YCZ4VISIbCoDpJrF2wisTmZ5zpfmS9eKFYTkEhJMSZTy4dN9J6C+nQA5Erw5nA+ni05OyC0zkOwGDZU9jzM0hwKXzgh+HF2u7Twq8TO8Gy1+LRYFlxMOgI1Qm5skxokoK6Cu+O5Ku+mEzyVSl0QmBlJJnOVe3kCoNaGHpUeTjAKTTkLAZA14efgjq1kTXTLGWcmR3BbQVCMylIjjpTrDL2XVeQIYHM/tBEI0f3SnIFxYjtNo/pXB18OskDIQVUodFSUI1ifPLtdSA51icKDrQEZz+4X27a9Wz99yv5YbTOlHnUGTyqM26BjsLc9ymMdd3TlscRfdQ6vlgspS+WVmW03HoJbdkbYrMWsW2HSHAaCLYYn2LjEm12HK8pBc7lRn8LtRbCCtvUK7whIPLoy/RXpiHlGEnaJmQOXHf8ft9TwIeQrN7zZUwRkq2UtkdRSdZU5avb2uuPu1gcn/4OslObHqlkHvYCWbEwCZlOJu/9sUrN7A4TopCDYWs8GPtzjtuObrh1ejrUOlNtQJnaWIIqmKAc5+Z0t9YkUlzbDSdESIHDpXx0t0mS4lwqbA0IFCYhV16TNiw3C9fbhyRAqiVfGU+CkVVCJqGjjZFl/Flv6THQ2HQsZSUUaOmsEAwTBbUwQdHCigEKc22kT3ZLNgtmkEzeh7dH+9pSk+4He3Id7aDNBiwuQuPOWj41oACM7joOmv3jB/hDHT6G/XRlTKs/nsON70hZtfUuHHKf2La2vFdJ7kT6JH2E8vUDThKYG1QDpRIPOnbQqNqJYaqOmlxULS74RxSLrRMLdKhWusVU18pDtQ1EnKa+uUj0tOuyO30a/+Hc8WbSk5p3U0f34cz+XtOTV3TzeufhrPGWNMsWmC1Tue1ZQHYXiHEjZryCoidp1TPmFRQn5rFeyM1fCvG7ax2fh8UxK1Vryn4Hbb4sGI/jePpx7KQdK+StsdSIx+tx+G8AqisXB4g6itEdL8dFwstEBjy77lU18guh05vgHGZQlJXOHPo5k2jcLBoxjU7Po5NnPVCqb3TaR+rv/46dcwu7vif/3aiqz7sYvd9RinwZrL7re59gdK7lI6GPEfxzkUdx/UPm8R+wdR08jOgsSb+M1K8KioKJIqSbj6ZrYBicgPP6H88FD4F7FQAA */
1989
+ /* vanilla-extract-css-ns:src/components/tree/tree.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VYTW/bOBC991cQAQokizCwm6S7VS8B2mIv3T0t9mqMpLHMmCJlkv7ahf/7ghRJyZFsKd4UvQiy5oOPjzNvCD9x2KMi7qlncwUlbqVazmarZbpaPU/vvCWTZSUFCqOD6VPXdMenwQqf3z29beoPwZq+eeoGNfn3HSF3RiHO7OMLB63/hBK1+znLpDDABKrZbJmaZ3E/zVwEIdFCBZSYkCZFMPgUPnDy2YXlTFcc9omLt2Ds58MpDFhWZh+Xzv3SFeQ5E0VCNqCuKXVONLrhLZncHJl2wZRbU40jlSpHlZBptSM56AXmPoSJnGVgpKK1S4j99ZYYBUJXoFCYoyxUQc7WOuDR5WzGn1m5Xd3nwQ+yZaHkWuRJd5loC0t99FGZ5FJ1A9zn4Pub9zW4MxQ4K0RCMhQG1Vli7YJVJBZfcabHkfXihWI5BYWQEGc+u3TcSOstpJt7IHJtOBNYH4+WnF1wOqcBGCx7Crt4BQkuhQ/8MLxY23268OvETrDstXg0WFYcDDpCdUKuLBOapKCuwrsj+aovJpN8XQqdEFgbSaZzVTu5wqAWhh5VHg5wCg05bAB0ffgpqHMb2TDNUsaZ2RPcVSA0k4LkqDPFKmPfdQUZEsjsD000cnSvJFdQjNhu85jO1YtPZ3kgpIAqNFoKqlGMT769XkiO9YmCAy3BOQ7ul5t2PVv/40p+GK0zZR51Bk/qjFugozD3fQpjXY+05XFEH7WOLxaL8MXSqoyWWy+hLXtDbNYitu0QCU4DwRbjU2xcos2e4zWlwLnc6m+h1kJYYZt6jTcERB59mf7KNKQcI0m7hMyB647f70cK+BCS1Xu+jClCsrXS9igqyZqqPLitHX7cxeL09HeQndr0SOWzh71AVixMQqaTyXt/rFIzu8OEKORg2AZfjP05x11HN9w6PR1qnak2oExtLEEVTFCOc3O+W2sSKW7shhMipMDhUj652yRJcS5Ve0qiMAm58pq0ZblZuN5+SQKkWvK18SQYWSVkEjraGFnGn/WWHgONTcdSVkKBls4KwTBRUAsTFC2sGKAw10b6ZLdku2AGyeR9eHu0ry016X6wJ9fRDtpswOIiNO6s5VMDCsDovuOg2T9+gD/U4WPYT9fGtPpjGW58J8qqrXfhkPvEtrXlo0pyJ9In6SOUrx9wksDcoBoolXjQsYNG1U4MU3XU5KJqccE/olhsnVigQ7XSLaa6Vh6qXSDiPPXNRaKnXXl3+jT+w7njzaQnddlNHd2HM/t7TU9e2c3rnYezxlvSLFtgtkzlrmeBqrtAjBsx4xUUPUlXPWNeQXFmHuuF3P6lEL+71vF5WByzUrWm7HfQ5suC8TiOpx/HTtqxQt4aS414HE7DfwNQXbl4gaijGN3xclokvExkwLPrXlUjvxA6vQnOYQZFWenMoZ8zicbNohHT6Pw8OnvWA6X6Rqd9ov7+79h5bWHX9+S/G1X1eRej9ztKkS+D1Xd97xOMzrV8JPQxgv9a5FFc/5B5/AdsUwcPI3qVpF9G6lcFRcFEEdLNR9M1MAzOwDn8B08OVJ17FQAA */
1987
1990
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja;
1988
1991
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l2__qkbqqjb;
1989
1992
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l1__qkbqqja {
1990
- .tree_treeClassNames_tree_container__kbtjn31b {
1993
+ .tree_treeClassNames_tree_container__kbtjn31c {
1991
1994
  container-name: tree_treeContainers_tree__kbtjn30;
1992
1995
  display: contents;
1993
1996
  }
1994
- .tree_treeClassNames_empty__kbtjn31c {
1997
+ .tree_treeClassNames_empty__kbtjn31d {
1995
1998
  padding: var(--empty-y__kbtjn3e, 0) var(--empty-x__kbtjn3d, 0);
1996
1999
  border: 1px dashed var(--indicator-border__kbtjn37, transparent);
1997
2000
  border-radius: var(--sm__ljimwq3d);
@@ -1999,23 +2002,23 @@
1999
2002
  color: var(--indicator-color__kbtjn38);
2000
2003
  text-align: center;
2001
2004
  }
2002
- .tree_treeClassNames_group__kbtjn31d {
2005
+ .tree_treeClassNames_group__kbtjn31e {
2003
2006
  container-name: tree_treeContainers_group__kbtjn31;
2004
2007
  grid-area: group;
2005
2008
  }
2006
- .tree_treeClassNames_indicator_indicator__kbtjn31e {
2009
+ .tree_treeClassNames_indicator_indicator__kbtjn31f {
2007
2010
  outline: 1px solid var(--indicator-border__kbtjn37, transparent);
2008
2011
  }
2009
- .tree_treeClassNames_item_container__kbtjn31f {
2012
+ .tree_treeClassNames_item_container__kbtjn31g {
2010
2013
  container-name: tree_treeContainers_item__kbtjn32;
2011
2014
  }
2012
- .tree_treeClassNames_item_item__kbtjn31g {
2015
+ .tree_treeClassNames_item_item__kbtjn31h {
2013
2016
  display: grid;
2014
2017
  grid-template-areas: "lines bar" "lines group";
2015
2018
  grid-template-columns: auto 1fr;
2016
2019
  align-items: center;
2017
2020
  }
2018
- .tree_treeClassNames_item_bar__kbtjn31h {
2021
+ .tree_treeClassNames_item_bar__kbtjn31i {
2019
2022
  display: grid;
2020
2023
  grid-area: bar;
2021
2024
  grid-template-areas: "visibility expansion description space actions selection drag";
@@ -2028,18 +2031,18 @@
2028
2031
  background: var(--bar-background__kbtjn33);
2029
2032
  color: var(--bar-color__kbtjn35);
2030
2033
  }
2031
- .tree_treeClassNames_item_description__kbtjn31m {
2034
+ .tree_treeClassNames_item_description__kbtjn31n {
2032
2035
  grid-area: description;
2033
2036
  padding: var(--description-y__kbtjn3c, 0) var(--description-x__kbtjn3b, 0);
2034
2037
  }
2035
2038
  @container style(--allowsExpansion__kbtjn3g: true) and style(--isDisabled__kbtjn3x: false) and style(--isGroup__kbtjn314: true) {
2036
- .tree_treeClassNames_item_description__kbtjn31m {
2039
+ .tree_treeClassNames_item_description__kbtjn31n {
2037
2040
  cursor: pointer;
2038
2041
  }
2039
2042
  }
2040
2043
  }
2041
2044
  @layer layers_framework__qkbqqj1.layers_components__qkbqqj9.layers_components.l2__qkbqqjb {
2042
- .tree_treeClassNames_item_lines_container__kbtjn31i {
2045
+ .tree_treeClassNames_item_lines_container__kbtjn31j {
2043
2046
  height: 100%;
2044
2047
  position: relative;
2045
2048
  display: flex;
@@ -2048,7 +2051,7 @@
2048
2051
  margin-left: var(--bar-x__kbtjn39);
2049
2052
  pointer-events: none;
2050
2053
  }
2051
- .tree_treeClassNames_item_lines_container__kbtjn31i::before {
2054
+ .tree_treeClassNames_item_lines_container__kbtjn31j::before {
2052
2055
  content: "";
2053
2056
  width: 1px;
2054
2057
  position: absolute;
@@ -2066,13 +2069,13 @@
2066
2069
  background-repeat: repeat-y;
2067
2070
  background-size: 1px 4px;
2068
2071
  }
2069
- .tree_treeClassNames_item_lines_button__kbtjn31j {
2072
+ .tree_treeClassNames_item_lines_button__kbtjn31k {
2070
2073
  position: relative;
2071
2074
  background: none;
2072
2075
  border: 1px solid transparent;
2073
2076
  margin-top: var(--bar-y__kbtjn3a);
2074
2077
  }
2075
- .tree_treeClassNames_item_lines_button__kbtjn31j::after {
2078
+ .tree_treeClassNames_item_lines_button__kbtjn31k::after {
2076
2079
  content: "";
2077
2080
  width: 50%;
2078
2081
  height: 1px;
@@ -2090,28 +2093,28 @@
2090
2093
  background-repeat: repeat-x;
2091
2094
  background-size: 4px 1px;
2092
2095
  }
2093
- .tree_treeClassNames_item_visibility_container__kbtjn31k {
2096
+ .tree_treeClassNames_item_visibility_container__kbtjn31l {
2094
2097
  grid-area: visibility;
2095
2098
  }
2096
- .tree_treeClassNames_item_expansion_container__kbtjn31l {
2099
+ .tree_treeClassNames_item_expansion_container__kbtjn31m {
2097
2100
  grid-area: expansion;
2098
2101
  }
2099
- .tree_treeClassNames_item_actions_container__kbtjn31n {
2102
+ .tree_treeClassNames_item_actions_container__kbtjn31o {
2100
2103
  grid-area: actions;
2101
2104
  }
2102
- .tree_treeClassNames_item_selection_checkbox_container__kbtjn31o {
2105
+ .tree_treeClassNames_item_selection_checkbox_container__kbtjn31p {
2103
2106
  grid-area: selection;
2104
2107
  }
2105
- .tree_treeClassNames_item_drag_container__kbtjn31p {
2108
+ .tree_treeClassNames_item_drag_container__kbtjn31q {
2106
2109
  grid-area: drag;
2107
2110
  }
2108
2111
  @container style(--showTreeLines__kbtjn3i: false) or style(--isLastChild__kbtjn316: true) {
2109
- .tree_treeClassNames_item_lines_container__kbtjn31i::before {
2112
+ .tree_treeClassNames_item_lines_container__kbtjn31j::before {
2110
2113
  display: none;
2111
2114
  }
2112
2115
  }
2113
2116
  @container style(--isLastChild__kbtjn316: true) {
2114
- .tree_treeClassNames_item_lines_button__kbtjn31j::before {
2117
+ .tree_treeClassNames_item_lines_button__kbtjn31k::before {
2115
2118
  content: "";
2116
2119
  width: 1px;
2117
2120
  position: absolute;
@@ -2131,30 +2134,30 @@
2131
2134
  }
2132
2135
  }
2133
2136
  @container style(--showTreeLines__kbtjn3i: false) {
2134
- .tree_treeClassNames_item_lines_button__kbtjn31j::before {
2137
+ .tree_treeClassNames_item_lines_button__kbtjn31k::before {
2135
2138
  display: none;
2136
2139
  }
2137
- .tree_treeClassNames_item_lines_button__kbtjn31j::after {
2140
+ .tree_treeClassNames_item_lines_button__kbtjn31k::after {
2138
2141
  display: none;
2139
2142
  }
2140
2143
  }
2141
2144
  @container style(--allowsVisibility__kbtjn3h: false) {
2142
- .tree_treeClassNames_item_visibility_container__kbtjn31k {
2145
+ .tree_treeClassNames_item_visibility_container__kbtjn31l {
2143
2146
  display: none;
2144
2147
  }
2145
2148
  }
2146
2149
  @container style(--allowsExpansion__kbtjn3g: false) or style(--isGroup__kbtjn314: false) {
2147
- .tree_treeClassNames_item_expansion_container__kbtjn31l {
2150
+ .tree_treeClassNames_item_expansion_container__kbtjn31m {
2148
2151
  display: none;
2149
2152
  }
2150
2153
  }
2151
2154
  @container style(--selectionMode__kbtjn3v: none) {
2152
- .tree_treeClassNames_item_selection_checkbox_container__kbtjn31o {
2155
+ .tree_treeClassNames_item_selection_checkbox_container__kbtjn31p {
2153
2156
  display: none;
2154
2157
  }
2155
2158
  }
2156
2159
  @container style(--allowsDragging__kbtjn3f: false) {
2157
- .tree_treeClassNames_item_drag_container__kbtjn31p {
2160
+ .tree_treeClassNames_item_drag_container__kbtjn31q {
2158
2161
  display: none;
2159
2162
  }
2160
2163
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/@ladle+react@4.1.2_@swc+helpers@0.5.15_@types+node@20.17.6_@types+react@18.3.12_acorn@8.14.0__74bvmuiw5qnbhgptgjsff4zctq/node_modules/@ladle/react/lib/app/exports.ts","../../src/ladle/actions.ts"],"names":[],"mappings":";;;;;;AA+CO,IAAM,MAAA,GAAS,CAAC,IAAiB,KAAA;AACtC,EAAA,MAAM,WAAY,MACf,CAAA,aAAA;AACH,EAAO,OAAA,CAAC,KAAa,GAAA,KAAA,CAAA,KACnB,QAAS,CAAA;AAAA,IACP,MAAM,UAAW,CAAA,YAAA;AAAA,IACjB,KAAA,EAAO,EAAE,IAAA,EAAM,KAAM,EAAA;AAAA,IACrB,KAAO,EAAA;AAAA,GACR,CAAA;AACL,CAAA;;;ACtDO,SAAS,WAAc,IAA+B,EAAA;AAC3D,EAAA,OAAO,IAAK,CAAA,MAAA,CAAmB,CAAC,GAAA,EAAK,GAAQ,KAAA;AAC3C,IAAI,GAAA,CAAA,GAAG,CAAI,GAAA,MAAA,CAAO,GAAa,CAAA;AAE/B,IAAO,OAAA,GAAA;AAAA,GACT,EAAG,EAAE,CAAA;AACP","file":"actions.js","sourcesContent":["import type * as React from \"react\";\nimport { useLadleContext } from \"./src/context\";\nimport {\n StoryDecorator,\n ActionType,\n GlobalState,\n ThemeState,\n ModeState,\n GlobalAction,\n Config,\n KnownMeta,\n MetaJson as BaseMetaJson,\n MetaJsonStory as BaseMetaJsonStory,\n} from \"../shared/types\";\n\nimport * as msw from \"msw\";\nexport { msw };\n\nexport type { UserConfig } from \"../shared/types\";\nexport { useMDXComponents } from \"@mdx-js/react\";\nexport const Story = (props: any) => props.children;\nexport const Meta = (props: any) => props.children;\nexport const Description = (props: any) => props.children;\n\ntype ReactNodeWithoutObject =\n | React.ReactElement\n | string\n | number\n | boolean\n | null\n | undefined;\n\nexport { useLadleContext, ActionType, ThemeState, ModeState };\nexport type { StoryDecorator };\n\n// deprecated, linkTo is just easier to use\nexport const useLink = () => {\n const { dispatch } = useLadleContext();\n return (value: string) => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const linkTo = (value: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return () => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const action = (name: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return (event: any = undefined) =>\n dispatch({\n type: ActionType.UpdateAction,\n value: { name, event },\n clear: false,\n });\n};\n\nexport type GlobalProvider = React.FC<{\n globalState: GlobalState;\n dispatch: React.Dispatch<GlobalAction>;\n config: Config;\n children: ReactNodeWithoutObject;\n storyMeta?: Meta;\n}>;\n\nexport type SourceHeader = React.FC<{\n path: string;\n locStart: number;\n locEnd: number;\n}>;\n\nexport interface StoryDefault<P = {}> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n title?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport interface Story<P = {}> extends React.FC<P> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n storyName?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport type Args<\n P = {\n [key: string]: any;\n },\n> = Partial<P>;\n\nexport type ControlType =\n | \"select\"\n | \"multi-select\"\n | \"radio\"\n | \"inline-radio\"\n | \"check\"\n | \"inline-check\"\n | \"background\"\n | \"color\"\n | \"date\"\n | \"number\"\n | \"text\"\n | \"boolean\"\n | \"range\";\n\nexport interface ArgType<K = any> {\n control?: {\n name?: string;\n labels?: { [key: string]: string };\n type: ControlType;\n min?: number;\n max?: number;\n step?: number;\n [key: string]: any;\n };\n mapping?: { [key: string | number]: any };\n options?: K[] | unknown;\n defaultValue?: K;\n description?: string;\n name?: string;\n action?: string;\n [key: string]: any;\n}\n\nexport type ArgTypes<\n P = {\n [key: string]: any;\n },\n> = {\n [key in keyof P]?: ArgType<P[key]>;\n};\n\nexport interface Meta extends KnownMeta {\n [key: string]: any;\n}\n\nexport type MetaJson = BaseMetaJson<Meta>;\nexport type MetaJsonStory = BaseMetaJsonStory<Meta>;\n","import { action } from '@ladle/react';\n\nexport function actions<T>(...keys: (keyof T)[]): Partial<T> {\n return keys.reduce<Partial<T>>((acc, key) => {\n acc[key] = action(key as string) as T[keyof T];\n\n return acc;\n }, {});\n}\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/@ladle+react@4.1.2_@swc+helpers@0.5.15_@types+node@20.17.19_@types+react@18.3.11_acorn@8.14.0_cxaznc2aslw7fxpdmpu4frkfvq/node_modules/@ladle/react/lib/app/exports.ts","../../src/ladle/actions.ts"],"names":[],"mappings":";;;;;;AA+CO,IAAM,MAAA,GAAS,CAAC,IAAiB,KAAA;AACtC,EAAA,MAAM,WAAY,MACf,CAAA,aAAA;AACH,EAAO,OAAA,CAAC,KAAa,GAAA,MAAA,KACnB,QAAS,CAAA;AAAA,IACP,MAAM,UAAW,CAAA,YAAA;AAAA,IACjB,KAAA,EAAO,EAAE,IAAA,EAAM,KAAM,EAAA;AAAA,IACrB,KAAO,EAAA;AAAA,GACR,CAAA;AACL,CAAA;;;ACtDO,SAAS,WAAc,IAA+B,EAAA;AAC3D,EAAA,OAAO,IAAK,CAAA,MAAA,CAAmB,CAAC,GAAA,EAAK,GAAQ,KAAA;AAC3C,IAAI,GAAA,CAAA,GAAG,CAAI,GAAA,MAAA,CAAO,GAAa,CAAA;AAE/B,IAAO,OAAA,GAAA;AAAA,GACT,EAAG,EAAE,CAAA;AACP","file":"actions.js","sourcesContent":["import type * as React from \"react\";\nimport { useLadleContext } from \"./src/context\";\nimport {\n StoryDecorator,\n ActionType,\n GlobalState,\n ThemeState,\n ModeState,\n GlobalAction,\n Config,\n KnownMeta,\n MetaJson as BaseMetaJson,\n MetaJsonStory as BaseMetaJsonStory,\n} from \"../shared/types\";\n\nimport * as msw from \"msw\";\nexport { msw };\n\nexport type { UserConfig } from \"../shared/types\";\nexport { useMDXComponents } from \"@mdx-js/react\";\nexport const Story = (props: any) => props.children;\nexport const Meta = (props: any) => props.children;\nexport const Description = (props: any) => props.children;\n\ntype ReactNodeWithoutObject =\n | React.ReactElement\n | string\n | number\n | boolean\n | null\n | undefined;\n\nexport { useLadleContext, ActionType, ThemeState, ModeState };\nexport type { StoryDecorator };\n\n// deprecated, linkTo is just easier to use\nexport const useLink = () => {\n const { dispatch } = useLadleContext();\n return (value: string) => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const linkTo = (value: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return () => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const action = (name: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return (event: any = undefined) =>\n dispatch({\n type: ActionType.UpdateAction,\n value: { name, event },\n clear: false,\n });\n};\n\nexport type GlobalProvider = React.FC<{\n globalState: GlobalState;\n dispatch: React.Dispatch<GlobalAction>;\n config: Config;\n children: ReactNodeWithoutObject;\n storyMeta?: Meta;\n}>;\n\nexport type SourceHeader = React.FC<{\n path: string;\n locStart: number;\n locEnd: number;\n}>;\n\nexport interface StoryDefault<P = {}> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n title?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport interface Story<P = {}> extends React.FC<P> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n storyName?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport type Args<\n P = {\n [key: string]: any;\n },\n> = Partial<P>;\n\nexport type ControlType =\n | \"select\"\n | \"multi-select\"\n | \"radio\"\n | \"inline-radio\"\n | \"check\"\n | \"inline-check\"\n | \"background\"\n | \"color\"\n | \"date\"\n | \"number\"\n | \"text\"\n | \"boolean\"\n | \"range\";\n\nexport interface ArgType<K = any> {\n control?: {\n name?: string;\n labels?: { [key: string]: string };\n type: ControlType;\n min?: number;\n max?: number;\n step?: number;\n [key: string]: any;\n };\n mapping?: { [key: string | number]: any };\n options?: K[] | unknown;\n defaultValue?: K;\n description?: string;\n name?: string;\n action?: string;\n [key: string]: any;\n}\n\nexport type ArgTypes<\n P = {\n [key: string]: any;\n },\n> = {\n [key in keyof P]?: ArgType<P[key]>;\n};\n\nexport interface Meta extends KnownMeta {\n [key: string]: any;\n}\n\nexport type MetaJson = BaseMetaJson<Meta>;\nexport type MetaJsonStory = BaseMetaJsonStory<Meta>;\n","import { action } from '@ladle/react';\n\nexport function actions<T>(...keys: (keyof T)[]): Partial<T> {\n return keys.reduce<Partial<T>>((acc, key) => {\n acc[key] = action(key as string) as T[keyof T];\n\n return acc;\n }, {});\n}\n"]}