@vritti/quantum-ui 0.4.0 → 0.4.1

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 (98) hide show
  1. package/dist/Avatar.js +5 -5
  2. package/dist/Checkbox.js +16 -11
  3. package/dist/Checkbox.js.map +1 -1
  4. package/dist/Checkbox2.js +4 -5
  5. package/dist/Checkbox2.js.map +1 -1
  6. package/dist/Combination.js +1 -1
  7. package/dist/Dialog.js +1 -1
  8. package/dist/Progress.js +2 -2
  9. package/dist/RadioGroup.js +4 -5
  10. package/dist/RadioGroup.js.map +1 -1
  11. package/dist/Sidebar.js +1 -1
  12. package/dist/Sonner.js +1 -1
  13. package/dist/Switch.js +19 -14
  14. package/dist/Switch.js.map +1 -1
  15. package/dist/TabsSkeleton.js +1 -1
  16. package/dist/Toggle.js +1 -1
  17. package/dist/assets/quantum-ui.css +1 -1
  18. package/dist/components/RichTextEditor.js +1 -1
  19. package/dist/components/TreeView.js +2 -3
  20. package/dist/components/TreeView.js.map +1 -1
  21. package/dist/disabledTip.js +13 -0
  22. package/dist/disabledTip.js.map +1 -0
  23. package/dist/dropdown-menu.js +5 -7
  24. package/dist/dropdown-menu.js.map +1 -1
  25. package/dist/image-component.js +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/index13.js +4 -6
  28. package/dist/index13.js.map +1 -1
  29. package/dist/index14.js +3 -5
  30. package/dist/index14.js.map +1 -1
  31. package/dist/index15.js +8 -9
  32. package/dist/index15.js.map +1 -1
  33. package/dist/index16.js +1 -1
  34. package/dist/index17.js +1 -1
  35. package/dist/index19.js +2 -4
  36. package/dist/index19.js.map +1 -1
  37. package/dist/index20.js +1 -1
  38. package/dist/index21.js +139 -1
  39. package/dist/index21.js.map +1 -1
  40. package/dist/index22.js +3 -4
  41. package/dist/index22.js.map +1 -1
  42. package/dist/index23.js +70 -122
  43. package/dist/index23.js.map +1 -1
  44. package/dist/index24.js +1128 -70
  45. package/dist/index24.js.map +1 -1
  46. package/dist/index25.js +231 -11
  47. package/dist/index25.js.map +1 -1
  48. package/dist/index26.js +2509 -1106
  49. package/dist/index26.js.map +1 -1
  50. package/dist/index27.js +23 -223
  51. package/dist/index27.js.map +1 -1
  52. package/dist/index28.js +3 -2535
  53. package/dist/index28.js.map +1 -1
  54. package/dist/index29.js +36 -31
  55. package/dist/index29.js.map +1 -1
  56. package/dist/index30.js +308 -3
  57. package/dist/index30.js.map +1 -1
  58. package/dist/index31.js +8 -36
  59. package/dist/index31.js.map +1 -1
  60. package/dist/index32.js +25 -305
  61. package/dist/index32.js.map +1 -1
  62. package/dist/index33.js +60 -8
  63. package/dist/index33.js.map +1 -1
  64. package/dist/index34.js +11 -30
  65. package/dist/index34.js.map +1 -1
  66. package/dist/index35.js +35 -59
  67. package/dist/index35.js.map +1 -1
  68. package/dist/index36.js +35348 -9
  69. package/dist/index36.js.map +1 -1
  70. package/dist/index37.js +79 -36
  71. package/dist/index37.js.map +1 -1
  72. package/dist/index38.js +184 -35341
  73. package/dist/index38.js.map +1 -1
  74. package/dist/index5.js +2 -4
  75. package/dist/index5.js.map +1 -1
  76. package/dist/lib/components/Checkbox/Checkbox.d.ts +1 -0
  77. package/dist/lib/components/Checkbox/Checkbox.d.ts.map +1 -1
  78. package/dist/lib/components/Switch/Switch.d.ts +4 -1
  79. package/dist/lib/components/Switch/Switch.d.ts.map +1 -1
  80. package/dist/lib/selects/permission-group/PermissionGroupSelector.d.ts +4 -0
  81. package/dist/lib/selects/permission-group/PermissionGroupSelector.d.ts.map +1 -0
  82. package/dist/lib/selects/permission-group/index.d.ts +2 -0
  83. package/dist/lib/selects/permission-group/index.d.ts.map +1 -0
  84. package/dist/lib/types/catalog-resolver.d.ts +18 -6
  85. package/dist/lib/types/catalog-resolver.d.ts.map +1 -1
  86. package/dist/lib/utils/disabledTip.d.ts +3 -0
  87. package/dist/lib/utils/disabledTip.d.ts.map +1 -0
  88. package/dist/selects/permission-group.js +21 -0
  89. package/dist/selects/permission-group.js.map +1 -0
  90. package/dist/types/catalog-resolver.js +1 -1
  91. package/dist/types/catalog-resolver.js.map +1 -1
  92. package/dist/utils/motion.js +2 -2
  93. package/dist/value.js +1 -1
  94. package/package.json +5 -1
  95. package/dist/index39.js +0 -84
  96. package/dist/index39.js.map +0 -1
  97. package/dist/index40.js +0 -199
  98. package/dist/index40.js.map +0 -1
package/dist/index37.js CHANGED
@@ -1,41 +1,84 @@
1
- import * as React from 'react';
2
- import { u as useLayoutEffect2 } from './index30.js';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useRef, useState, useCallback, useContext, useMemo } from 'react';
3
+ import { u as useIsomorphicLayoutEffect, f as frame, L as LayoutGroupContext } from './proxy.js';
3
4
 
4
- // packages/react/use-size/src/use-size.tsx
5
- function useSize(element) {
6
- const [size, setSize] = React.useState(void 0);
7
- useLayoutEffect2(() => {
8
- if (element) {
9
- setSize({ width: element.offsetWidth, height: element.offsetHeight });
10
- const resizeObserver = new ResizeObserver((entries) => {
11
- if (!Array.isArray(entries)) {
12
- return;
13
- }
14
- if (!entries.length) {
15
- return;
16
- }
17
- const entry = entries[0];
18
- let width;
19
- let height;
20
- if ("borderBoxSize" in entry) {
21
- const borderSizeEntry = entry["borderBoxSize"];
22
- const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
23
- width = borderSize["inlineSize"];
24
- height = borderSize["blockSize"];
25
- } else {
26
- width = element.offsetWidth;
27
- height = element.offsetHeight;
5
+ const notify = (node) => !node.isLayoutDirty && node.willUpdate(false);
6
+ function nodeGroup() {
7
+ const nodes = new Set();
8
+ const subscriptions = new WeakMap();
9
+ const dirtyAll = () => nodes.forEach(notify);
10
+ return {
11
+ add: (node) => {
12
+ nodes.add(node);
13
+ subscriptions.set(node, node.addEventListener("willUpdate", dirtyAll));
14
+ },
15
+ remove: (node) => {
16
+ nodes.delete(node);
17
+ const unsubscribe = subscriptions.get(node);
18
+ if (unsubscribe) {
19
+ unsubscribe();
20
+ subscriptions.delete(node);
21
+ }
22
+ dirtyAll();
23
+ },
24
+ dirty: dirtyAll,
25
+ };
26
+ }
27
+
28
+ /**
29
+ * Note: Still used by components generated by old versions of Framer
30
+ *
31
+ * @deprecated
32
+ */
33
+ const DeprecatedLayoutGroupContext = createContext(null);
34
+
35
+ function useIsMounted() {
36
+ const isMounted = useRef(false);
37
+ useIsomorphicLayoutEffect(() => {
38
+ isMounted.current = true;
39
+ return () => {
40
+ isMounted.current = false;
41
+ };
42
+ }, []);
43
+ return isMounted;
44
+ }
45
+
46
+ function useForceUpdate() {
47
+ const isMounted = useIsMounted();
48
+ const [forcedRenderCount, setForcedRenderCount] = useState(0);
49
+ const forceRender = useCallback(() => {
50
+ isMounted.current && setForcedRenderCount(forcedRenderCount + 1);
51
+ }, [forcedRenderCount]);
52
+ /**
53
+ * Defer this to the end of the next animation frame in case there are multiple
54
+ * synchronous calls.
55
+ */
56
+ const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);
57
+ return [deferredForceRender, forcedRenderCount];
58
+ }
59
+
60
+ const shouldInheritGroup = (inherit) => inherit === true;
61
+ const shouldInheritId = (inherit) => shouldInheritGroup(inherit === true) || inherit === "id";
62
+ const LayoutGroup = ({ children, id, inherit = true }) => {
63
+ const layoutGroupContext = useContext(LayoutGroupContext);
64
+ const deprecatedLayoutGroupContext = useContext(DeprecatedLayoutGroupContext);
65
+ const [forceRender, key] = useForceUpdate();
66
+ const context = useRef(null);
67
+ const upstreamId = layoutGroupContext.id || deprecatedLayoutGroupContext;
68
+ if (context.current === null) {
69
+ if (shouldInheritId(inherit) && upstreamId) {
70
+ id = id ? upstreamId + "-" + id : upstreamId;
28
71
  }
29
- setSize({ width, height });
30
- });
31
- resizeObserver.observe(element, { box: "border-box" });
32
- return () => resizeObserver.unobserve(element);
33
- } else {
34
- setSize(void 0);
72
+ context.current = {
73
+ id,
74
+ group: shouldInheritGroup(inherit)
75
+ ? layoutGroupContext.group || nodeGroup()
76
+ : nodeGroup(),
77
+ };
35
78
  }
36
- }, [element]);
37
- return size;
38
- }
79
+ const memoizedContext = useMemo(() => ({ ...context.current, forceRender }), [key]);
80
+ return (jsx(LayoutGroupContext.Provider, { value: memoizedContext, children: children }));
81
+ };
39
82
 
40
- export { useSize as u };
83
+ export { DeprecatedLayoutGroupContext as D, LayoutGroup as L, nodeGroup as n, useForceUpdate as u };
41
84
  //# sourceMappingURL=index37.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index37.js","sources":["../node_modules/.pnpm/@radix-ui+react-use-size@1.1.1_@types+react@19.2.14_react@19.2.3/node_modules/@radix-ui/react-use-size/dist/index.mjs"],"sourcesContent":["// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect"],"mappings":";;;AAAA;AAGA,SAAS,OAAO,CAAC,OAAO,EAAE;AAC1B,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChD,EAAEA,gBAAe,CAAC,MAAM;AACxB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;AAC3E,MAAM,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAK;AAC7D,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACrC,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC7B,UAAU;AACV,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,KAAK;AACjB,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,eAAe,IAAI,KAAK,EAAE;AACtC,UAAU,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;AACxD,UAAU,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe;AAClG,UAAU,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC;AAC1C,UAAU,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;AAC1C,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,OAAO,CAAC,WAAW;AACrC,UAAU,MAAM,GAAG,OAAO,CAAC,YAAY;AACvC,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClC,MAAM,CAAC,CAAC;AACR,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC5D,MAAM,OAAO,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;AACpD,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,CAAC,MAAM,CAAC;AACrB,IAAI;AACJ,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACf,EAAE,OAAO,IAAI;AACb;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index37.js","sources":["../node_modules/.pnpm/motion-dom@12.38.0/node_modules/motion-dom/dist/es/projection/node/group.mjs","../node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs","../node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs"],"sourcesContent":["const notify = (node) => !node.isLayoutDirty && node.willUpdate(false);\nfunction nodeGroup() {\n const nodes = new Set();\n const subscriptions = new WeakMap();\n const dirtyAll = () => nodes.forEach(notify);\n return {\n add: (node) => {\n nodes.add(node);\n subscriptions.set(node, node.addEventListener(\"willUpdate\", dirtyAll));\n },\n remove: (node) => {\n nodes.delete(node);\n const unsubscribe = subscriptions.get(node);\n if (unsubscribe) {\n unsubscribe();\n subscriptions.delete(node);\n }\n dirtyAll();\n },\n dirty: dirtyAll,\n };\n}\n\nexport { nodeGroup };\n//# sourceMappingURL=group.mjs.map\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * Note: Still used by components generated by old versions of Framer\n *\n * @deprecated\n */\nconst DeprecatedLayoutGroupContext = createContext(null);\n\nexport { DeprecatedLayoutGroupContext };\n//# sourceMappingURL=DeprecatedLayoutGroupContext.mjs.map\n","\"use client\";\nimport { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n//# sourceMappingURL=use-is-mounted.mjs.map\n","\"use client\";\nimport { frame } from 'motion-dom';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n//# sourceMappingURL=use-force-update.mjs.map\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { useContext, useRef, useMemo } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { DeprecatedLayoutGroupContext } from '../../context/DeprecatedLayoutGroupContext.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { nodeGroup } from 'motion-dom';\n\nconst shouldInheritGroup = (inherit) => inherit === true;\nconst shouldInheritId = (inherit) => shouldInheritGroup(inherit === true) || inherit === \"id\";\nconst LayoutGroup = ({ children, id, inherit = true }) => {\n const layoutGroupContext = useContext(LayoutGroupContext);\n const deprecatedLayoutGroupContext = useContext(DeprecatedLayoutGroupContext);\n const [forceRender, key] = useForceUpdate();\n const context = useRef(null);\n const upstreamId = layoutGroupContext.id || deprecatedLayoutGroupContext;\n if (context.current === null) {\n if (shouldInheritId(inherit) && upstreamId) {\n id = id ? upstreamId + \"-\" + id : upstreamId;\n }\n context.current = {\n id,\n group: shouldInheritGroup(inherit)\n ? layoutGroupContext.group || nodeGroup()\n : nodeGroup(),\n };\n }\n const memoizedContext = useMemo(() => ({ ...context.current, forceRender }), [key]);\n return (jsx(LayoutGroupContext.Provider, { value: memoizedContext, children: children }));\n};\n\nexport { LayoutGroup };\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}