@vritti/quantum-ui 0.3.2 → 0.3.4

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 (108) hide show
  1. package/dist/Alert.js +1 -1
  2. package/dist/Avatar.js +4 -4
  3. package/dist/Badge2.js +2 -2
  4. package/dist/Breadcrumb.js +1 -1
  5. package/dist/Button2.js +2 -2
  6. package/dist/Checkbox2.js +6 -6
  7. package/dist/Combination.js +3 -3
  8. package/dist/DateTimePicker.js +2 -2
  9. package/dist/Dialog.js +1 -1
  10. package/dist/Label.js +1 -1
  11. package/dist/Progress.js +2 -2
  12. package/dist/RadioGroup.js +8 -8
  13. package/dist/Select.js +2 -2
  14. package/dist/SelectFilter.js +2 -2
  15. package/dist/Sidebar.js +3 -3
  16. package/dist/SingleSelect.js +1 -1
  17. package/dist/Sonner.js +1 -1
  18. package/dist/Switch.js +5 -5
  19. package/dist/TabsSkeleton.js +1 -1
  20. package/dist/Toggle.js +2 -2
  21. package/dist/assets/quantum-ui.css +6131 -6
  22. package/dist/calendar2.js +1 -1
  23. package/dist/cells.js +2 -2
  24. package/dist/collapsible2.js +1 -1
  25. package/dist/components/FormattedDate.js +2 -2
  26. package/dist/components/RichTextEditor.js +1 -1
  27. package/dist/components/Select.js +4 -4
  28. package/dist/components/TreeView.js +7 -7
  29. package/dist/dropdown-menu.js +9 -9
  30. package/dist/field.js +1 -1
  31. package/dist/image-component.js +1 -1
  32. package/dist/index.js +4 -4
  33. package/dist/index10.js +1499 -102
  34. package/dist/index10.js.map +1 -1
  35. package/dist/index11.js +37 -1499
  36. package/dist/index11.js.map +1 -1
  37. package/dist/index12.js +476 -29
  38. package/dist/index12.js.map +1 -1
  39. package/dist/index13.js +230 -426
  40. package/dist/index13.js.map +1 -1
  41. package/dist/index14.js +1073 -214
  42. package/dist/index14.js.map +1 -1
  43. package/dist/index15.js +14 -1139
  44. package/dist/index15.js.map +1 -1
  45. package/dist/index16.js +20 -14
  46. package/dist/index16.js.map +1 -1
  47. package/dist/index17.js +180 -25
  48. package/dist/index17.js.map +1 -1
  49. package/dist/index18.js +201 -173
  50. package/dist/index18.js.map +1 -1
  51. package/dist/index19.js +69 -203
  52. package/dist/index19.js.map +1 -1
  53. package/dist/index20.js +211 -70
  54. package/dist/index20.js.map +1 -1
  55. package/dist/index21.js +117 -207
  56. package/dist/index21.js.map +1 -1
  57. package/dist/index22.js +71 -123
  58. package/dist/index22.js.map +1 -1
  59. package/dist/index23.js +11 -74
  60. package/dist/index23.js.map +1 -1
  61. package/dist/index24.js +1134 -13
  62. package/dist/index24.js.map +1 -1
  63. package/dist/index25.js +2733 -1103
  64. package/dist/index25.js.map +1 -1
  65. package/dist/index26.js +24 -2755
  66. package/dist/index26.js.map +1 -1
  67. package/dist/index27.js +4 -32
  68. package/dist/index27.js.map +1 -1
  69. package/dist/index28.js +37 -4
  70. package/dist/index28.js.map +1 -1
  71. package/dist/index29.js +310 -36
  72. package/dist/index29.js.map +1 -1
  73. package/dist/index30.js +7 -309
  74. package/dist/index30.js.map +1 -1
  75. package/dist/index31.js +30 -8
  76. package/dist/index31.js.map +1 -1
  77. package/dist/index32.js +59 -29
  78. package/dist/index32.js.map +1 -1
  79. package/dist/index33.js +10 -59
  80. package/dist/index33.js.map +1 -1
  81. package/dist/index34.js +35 -10
  82. package/dist/index34.js.map +1 -1
  83. package/dist/index35.js +36810 -27
  84. package/dist/index35.js.map +1 -1
  85. package/dist/index4.js +136 -86
  86. package/dist/index4.js.map +1 -1
  87. package/dist/index5.js +315 -36745
  88. package/dist/index5.js.map +1 -1
  89. package/dist/index6.js +12 -141
  90. package/dist/index6.js.map +1 -1
  91. package/dist/index7.js +82 -382
  92. package/dist/index7.js.map +1 -1
  93. package/dist/index8.js +42 -12
  94. package/dist/index8.js.map +1 -1
  95. package/dist/index9.js +102 -42
  96. package/dist/index9.js.map +1 -1
  97. package/dist/lib/index.d.ts.map +1 -1
  98. package/dist/popover.js +1 -1
  99. package/dist/select2.js +1 -1
  100. package/dist/separator2.js +1 -1
  101. package/dist/tooltip.js +1 -1
  102. package/dist/useTimer.js +1 -1
  103. package/dist/utils/axios.js +1 -1
  104. package/dist/utils/currency.js +2 -2
  105. package/dist/utils/format.js +2 -2
  106. package/dist/utils/money.js +1 -1
  107. package/dist/utils/timezone.js +1 -1
  108. package/package.json +1 -1
package/dist/index4.js CHANGED
@@ -1,94 +1,144 @@
1
- const defaultConfig = {
2
- csrf: {
3
- endpoint: "csrf/token",
4
- enabled: true,
5
- headerName: "x-csrf-token"
6
- },
7
- axios: {
8
- baseURL: "/api",
9
- timeout: 3e4,
10
- withCredentials: true,
11
- headers: {
12
- "Content-Type": "application/json",
13
- Accept: "application/json"
14
- }
15
- },
16
- auth: {
17
- tokenHeaderName: "Authorization",
18
- tokenPrefix: "Bearer",
19
- tokenEndpoint: "auth/access-token",
20
- refreshEndpoint: "auth/refresh-tokens",
21
- sessionRecoveryEnabled: true
22
- },
23
- timeZone: {
24
- resolveTimeZone: void 0
25
- },
26
- currency: {
27
- resolveCurrency: void 0
28
- },
29
- views: {
30
- viewsEndpoint: "table-views",
31
- statesEndpoint: "table-states"
1
+ import * as React from 'react';
2
+ import { u as useControllableState, P as Primitive, c as composeEventHandlers } from './index18.js';
3
+ import { c as createContextScope } from './index19.js';
4
+ import { u as useLayoutEffect2 } from './index27.js';
5
+ import { u as useComposedRefs } from './index11.js';
6
+ import { P as Presence } from './index21.js';
7
+ import { u as useId } from './index23.js';
8
+ import { jsx } from 'react/jsx-runtime';
9
+
10
+ var COLLAPSIBLE_NAME = "Collapsible";
11
+ var [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);
12
+ var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
13
+ var Collapsible = React.forwardRef(
14
+ (props, forwardedRef) => {
15
+ const {
16
+ __scopeCollapsible,
17
+ open: openProp,
18
+ defaultOpen,
19
+ disabled,
20
+ onOpenChange,
21
+ ...collapsibleProps
22
+ } = props;
23
+ const [open, setOpen] = useControllableState({
24
+ prop: openProp,
25
+ defaultProp: defaultOpen ?? false,
26
+ onChange: onOpenChange,
27
+ caller: COLLAPSIBLE_NAME
28
+ });
29
+ return /* @__PURE__ */ jsx(
30
+ CollapsibleProvider,
31
+ {
32
+ scope: __scopeCollapsible,
33
+ disabled,
34
+ contentId: useId(),
35
+ open,
36
+ onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
37
+ children: /* @__PURE__ */ jsx(
38
+ Primitive.div,
39
+ {
40
+ "data-state": getState(open),
41
+ "data-disabled": disabled ? "" : void 0,
42
+ ...collapsibleProps,
43
+ ref: forwardedRef
44
+ }
45
+ )
46
+ }
47
+ );
32
48
  }
33
- };
34
- const GLOBAL_CONFIG_KEY = "__QUANTUM_UI_CONFIG__";
35
- function getGlobalConfig() {
36
- if (typeof window !== "undefined") {
37
- const globalWindow = window;
38
- if (!globalWindow[GLOBAL_CONFIG_KEY]) {
39
- globalWindow[GLOBAL_CONFIG_KEY] = { ...defaultConfig };
40
- }
41
- return globalWindow[GLOBAL_CONFIG_KEY] ?? { ...defaultConfig };
49
+ );
50
+ Collapsible.displayName = COLLAPSIBLE_NAME;
51
+ var TRIGGER_NAME = "CollapsibleTrigger";
52
+ var CollapsibleTrigger = React.forwardRef(
53
+ (props, forwardedRef) => {
54
+ const { __scopeCollapsible, ...triggerProps } = props;
55
+ const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);
56
+ return /* @__PURE__ */ jsx(
57
+ Primitive.button,
58
+ {
59
+ type: "button",
60
+ "aria-controls": context.contentId,
61
+ "aria-expanded": context.open || false,
62
+ "data-state": getState(context.open),
63
+ "data-disabled": context.disabled ? "" : void 0,
64
+ disabled: context.disabled,
65
+ ...triggerProps,
66
+ ref: forwardedRef,
67
+ onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
68
+ }
69
+ );
42
70
  }
43
- return { ...defaultConfig };
44
- }
45
- function setGlobalConfig(config) {
46
- if (typeof window !== "undefined") {
47
- window[GLOBAL_CONFIG_KEY] = config;
71
+ );
72
+ CollapsibleTrigger.displayName = TRIGGER_NAME;
73
+ var CONTENT_NAME = "CollapsibleContent";
74
+ var CollapsibleContent = React.forwardRef(
75
+ (props, forwardedRef) => {
76
+ const { forceMount, ...contentProps } = props;
77
+ const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);
78
+ return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
48
79
  }
49
- }
50
- function defineConfig(config) {
51
- return config;
52
- }
53
- function configureQuantumUI(userConfig) {
54
- const newConfig = {
55
- csrf: {
56
- ...defaultConfig.csrf,
57
- ...userConfig.csrf || {}
58
- },
59
- axios: {
60
- ...defaultConfig.axios,
61
- ...userConfig.axios || {},
62
- headers: {
63
- ...defaultConfig.axios.headers,
64
- ...userConfig.axios?.headers || {}
80
+ );
81
+ CollapsibleContent.displayName = CONTENT_NAME;
82
+ var CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {
83
+ const { __scopeCollapsible, present, children, ...contentProps } = props;
84
+ const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);
85
+ const [isPresent, setIsPresent] = React.useState(present);
86
+ const ref = React.useRef(null);
87
+ const composedRefs = useComposedRefs(forwardedRef, ref);
88
+ const heightRef = React.useRef(0);
89
+ const height = heightRef.current;
90
+ const widthRef = React.useRef(0);
91
+ const width = widthRef.current;
92
+ const isOpen = context.open || isPresent;
93
+ const isMountAnimationPreventedRef = React.useRef(isOpen);
94
+ const originalStylesRef = React.useRef(void 0);
95
+ React.useEffect(() => {
96
+ const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
97
+ return () => cancelAnimationFrame(rAF);
98
+ }, []);
99
+ useLayoutEffect2(() => {
100
+ const node = ref.current;
101
+ if (node) {
102
+ originalStylesRef.current = originalStylesRef.current || {
103
+ transitionDuration: node.style.transitionDuration,
104
+ animationName: node.style.animationName
105
+ };
106
+ node.style.transitionDuration = "0s";
107
+ node.style.animationName = "none";
108
+ const rect = node.getBoundingClientRect();
109
+ heightRef.current = rect.height;
110
+ widthRef.current = rect.width;
111
+ if (!isMountAnimationPreventedRef.current) {
112
+ node.style.transitionDuration = originalStylesRef.current.transitionDuration;
113
+ node.style.animationName = originalStylesRef.current.animationName;
65
114
  }
66
- },
67
- auth: {
68
- ...defaultConfig.auth,
69
- ...userConfig.auth || {}
70
- },
71
- timeZone: {
72
- ...defaultConfig.timeZone,
73
- ...userConfig.timeZone || {}
74
- },
75
- currency: {
76
- ...defaultConfig.currency,
77
- ...userConfig.currency || {}
78
- },
79
- views: {
80
- ...defaultConfig.views,
81
- ...userConfig.views || {}
115
+ setIsPresent(present);
82
116
  }
83
- };
84
- setGlobalConfig(newConfig);
85
- }
86
- function getConfig() {
87
- return getGlobalConfig();
88
- }
89
- function resetConfig() {
90
- setGlobalConfig({ ...defaultConfig });
117
+ }, [context.open, present]);
118
+ return /* @__PURE__ */ jsx(
119
+ Primitive.div,
120
+ {
121
+ "data-state": getState(context.open),
122
+ "data-disabled": context.disabled ? "" : void 0,
123
+ id: context.contentId,
124
+ hidden: !isOpen,
125
+ ...contentProps,
126
+ ref: composedRefs,
127
+ style: {
128
+ [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,
129
+ [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,
130
+ ...props.style
131
+ },
132
+ children: isOpen && children
133
+ }
134
+ );
135
+ });
136
+ function getState(open) {
137
+ return open ? "open" : "closed";
91
138
  }
139
+ var Root = Collapsible;
140
+ var Trigger = CollapsibleTrigger;
141
+ var Content = CollapsibleContent;
92
142
 
93
- export { configureQuantumUI as c, defineConfig as d, getConfig as g, resetConfig as r };
143
+ export { Content as C, Root as R, Trigger as T, createCollapsibleScope as c };
94
144
  //# sourceMappingURL=index4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index4.js","sources":["../lib/config/index.ts"],"sourcesContent":["/**\n * quantum-ui Configuration System\n *\n * This module provides a type-safe configuration system for quantum-ui,\n * similar to how Tailwind CSS uses tailwind.config.js\n *\n * @example\n * ```typescript\n * // In your project root: quantum-ui.config.ts\n * import { defineConfig } from '@vritti/quantum-ui'\n *\n * export default defineConfig({\n * csrf: {\n * endpoint: '/csrf/token',\n * enabled: true,\n * },\n * axios: {\n * baseURL: '/api',\n * timeout: 30000,\n * }\n * })\n * ```\n */\n\n/**\n * CSRF configuration options\n */\nexport interface CsrfConfig {\n /**\n * The endpoint to fetch CSRF tokens from\n * @default '/csrf/token'\n */\n endpoint: string;\n\n /**\n * Whether CSRF protection is enabled\n * @default true\n */\n enabled: boolean;\n\n /**\n * The header name to send the CSRF token in\n * @default 'x-csrf-token'\n */\n headerName: string;\n}\n\n/**\n * Axios configuration options\n */\nexport interface AxiosConfig {\n /**\n * Base URL for all API requests\n * @default '/api'\n */\n baseURL: string;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeout: number;\n\n /**\n * Whether to send cookies with requests\n * @default true\n */\n withCredentials: boolean;\n\n /**\n * Default headers to include in all requests\n */\n headers?: Record<string, string>;\n\n /**\n * Custom request interceptor — called before every request to add dynamic headers or modify config\n */\n onRequest?: (config: import('axios').InternalAxiosRequestConfig) => void | Promise<void>;\n}\n\n/**\n * Authentication configuration options\n */\nexport interface AuthConfig {\n /**\n * The header name for the authorization token\n * @default 'Authorization'\n */\n tokenHeaderName: string;\n\n /**\n * The prefix for the authorization token\n * @default 'Bearer'\n */\n tokenPrefix: string;\n\n /**\n * Endpoint for session recovery from httpOnly cookie\n * @default 'auth/access-token'\n */\n tokenEndpoint: string;\n\n /**\n * Endpoint for token refresh\n * @default 'auth/refresh-tokens'\n */\n refreshEndpoint: string;\n\n /**\n * Whether automatic session recovery is enabled\n * @default true\n */\n sessionRecoveryEnabled: boolean;\n}\n\n/**\n * Views management configuration\n */\nexport interface ViewsConfig {\n /**\n * Endpoint for named view CRUD operations\n */\n viewsEndpoint: string;\n\n /**\n * Endpoint for live state upsert\n */\n statesEndpoint: string;\n}\n\n/**\n * Time zone resolution configuration\n */\nexport interface TimeZoneConfig {\n /**\n * Custom resolver for the active application time zone\n */\n resolveTimeZone?: () => string | null | undefined;\n}\n\n/**\n * Currency resolution configuration\n */\nexport interface CurrencyConfig {\n /**\n * Custom resolver for the active application currency (ISO 4217)\n */\n resolveCurrency?: () => string | null | undefined;\n}\n\n/**\n * Complete quantum-ui configuration interface\n */\nexport interface QuantumUIConfig {\n /**\n * CSRF token configuration\n */\n csrf?: Partial<CsrfConfig>;\n\n /**\n * Axios HTTP client configuration\n */\n axios?: Partial<AxiosConfig>;\n\n /**\n * Authentication configuration\n */\n auth?: Partial<AuthConfig>;\n\n /**\n * Time zone resolution configuration\n */\n timeZone?: TimeZoneConfig;\n\n /**\n * Currency resolution configuration\n */\n currency?: CurrencyConfig;\n\n /**\n * Table views management configuration\n */\n views: ViewsConfig;\n}\n\n/**\n * Default configuration values\n */\nconst defaultConfig: {\n csrf: CsrfConfig;\n axios: AxiosConfig;\n auth: AuthConfig;\n views: Required<ViewsConfig>;\n timeZone: TimeZoneConfig;\n currency: CurrencyConfig;\n} = {\n csrf: {\n endpoint: 'csrf/token',\n enabled: true,\n headerName: 'x-csrf-token',\n },\n axios: {\n baseURL: '/api',\n timeout: 30000,\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n },\n auth: {\n tokenHeaderName: 'Authorization',\n tokenPrefix: 'Bearer',\n tokenEndpoint: 'auth/access-token',\n refreshEndpoint: 'auth/refresh-tokens',\n sessionRecoveryEnabled: true,\n },\n timeZone: {\n resolveTimeZone: undefined,\n },\n currency: {\n resolveCurrency: undefined,\n },\n views: {\n viewsEndpoint: 'table-views',\n statesEndpoint: 'table-states',\n },\n};\n\n/**\n * Global key for storing config in window object\n * This ensures config is shared across Module Federation boundaries\n */\nconst GLOBAL_CONFIG_KEY = '__QUANTUM_UI_CONFIG__';\n\n// Type-safe global window access\ntype GlobalWindow = Window & typeof globalThis & { [GLOBAL_CONFIG_KEY]?: typeof defaultConfig };\n\n/**\n * Get the current config from global storage or initialize with defaults\n */\nfunction getGlobalConfig(): typeof defaultConfig {\n if (typeof window !== 'undefined') {\n const globalWindow = window as GlobalWindow;\n if (!globalWindow[GLOBAL_CONFIG_KEY]) {\n globalWindow[GLOBAL_CONFIG_KEY] = { ...defaultConfig };\n }\n return globalWindow[GLOBAL_CONFIG_KEY] ?? { ...defaultConfig };\n }\n return { ...defaultConfig };\n}\n\n/**\n * Set the global config\n */\nfunction setGlobalConfig(config: typeof defaultConfig): void {\n if (typeof window !== 'undefined') {\n (window as GlobalWindow)[GLOBAL_CONFIG_KEY] = config;\n }\n}\n\n/**\n * Helper function to define configuration with type safety\n * Similar to Tailwind's defineConfig()\n *\n * @param config - User configuration object\n * @returns The same configuration object (for type inference)\n *\n * @example\n * ```typescript\n * export default defineConfig({\n * csrf: { endpoint: '/api/csrf' }\n * })\n * ```\n */\nexport function defineConfig(config: QuantumUIConfig): QuantumUIConfig {\n return config;\n}\n\n/**\n * Configure quantum-ui with user settings\n * This should be called once in your application's entry point\n *\n * @param userConfig - User configuration object\n *\n * @example\n * ```typescript\n * import config from './quantum-ui.config'\n * import { configureQuantumUI } from '@vritti/quantum-ui'\n *\n * configureQuantumUI(config)\n * ```\n */\nexport function configureQuantumUI(userConfig: QuantumUIConfig): void {\n const newConfig = {\n csrf: {\n ...defaultConfig.csrf,\n ...(userConfig.csrf || {}),\n },\n axios: {\n ...defaultConfig.axios,\n ...(userConfig.axios || {}),\n headers: {\n ...defaultConfig.axios.headers,\n ...(userConfig.axios?.headers || {}),\n },\n },\n auth: {\n ...defaultConfig.auth,\n ...(userConfig.auth || {}),\n },\n timeZone: {\n ...defaultConfig.timeZone,\n ...(userConfig.timeZone || {}),\n },\n currency: {\n ...defaultConfig.currency,\n ...(userConfig.currency || {}),\n },\n views: {\n ...defaultConfig.views,\n ...(userConfig.views || {}),\n },\n };\n setGlobalConfig(newConfig);\n}\n\n/**\n * Get the current configuration\n * @returns Current merged configuration\n */\nexport function getConfig(): typeof defaultConfig {\n return getGlobalConfig();\n}\n\n/**\n * Reset configuration to defaults\n * Mainly useful for testing\n */\nexport function resetConfig(): void {\n setGlobalConfig({ ...defaultConfig });\n}\n"],"names":[],"mappings":"AA4LA,MAAM,aAAA,GAOF;AAAA,EACF,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,OAAA,EAAS,IAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,eAAA,EAAiB,IAAA;AAAA,IACjB,OAAA,EAAS;AAAA,MACP,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,eAAA,EAAiB,eAAA;AAAA,IACjB,WAAA,EAAa,QAAA;AAAA,IACb,aAAA,EAAe,mBAAA;AAAA,IACf,eAAA,EAAiB,qBAAA;AAAA,IACjB,sBAAA,EAAwB;AAAA,GAC1B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,eAAA,EAAiB;AAAA,GACnB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,eAAA,EAAiB;AAAA,GACnB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,aAAA,EAAe,aAAA;AAAA,IACf,cAAA,EAAgB;AAAA;AAEpB,CAAA;AAMA,MAAM,iBAAA,GAAoB,uBAAA;AAQ1B,SAAS,eAAA,GAAwC;AAC/C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,MAAM,YAAA,GAAe,MAAA;AACrB,IAAA,IAAI,CAAC,YAAA,CAAa,iBAAiB,CAAA,EAAG;AACpC,MAAA,YAAA,CAAa,iBAAiB,CAAA,GAAI,EAAE,GAAG,aAAA,EAAc;AAAA,IACvD;AACA,IAAA,OAAO,YAAA,CAAa,iBAAiB,CAAA,IAAK,EAAE,GAAG,aAAA,EAAc;AAAA,EAC/D;AACA,EAAA,OAAO,EAAE,GAAG,aAAA,EAAc;AAC5B;AAKA,SAAS,gBAAgB,MAAA,EAAoC;AAC3D,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAC,MAAA,CAAwB,iBAAiB,CAAA,GAAI,MAAA;AAAA,EAChD;AACF;AAgBO,SAAS,aAAa,MAAA,EAA0C;AACrE,EAAA,OAAO,MAAA;AACT;AAgBO,SAAS,mBAAmB,UAAA,EAAmC;AACpE,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,IAAA,EAAM;AAAA,MACJ,GAAG,aAAA,CAAc,IAAA;AAAA,MACjB,GAAI,UAAA,CAAW,IAAA,IAAQ;AAAC,KAC1B;AAAA,IACA,KAAA,EAAO;AAAA,MACL,GAAG,aAAA,CAAc,KAAA;AAAA,MACjB,GAAI,UAAA,CAAW,KAAA,IAAS,EAAC;AAAA,MACzB,OAAA,EAAS;AAAA,QACP,GAAG,cAAc,KAAA,CAAM,OAAA;AAAA,QACvB,GAAI,UAAA,CAAW,KAAA,EAAO,OAAA,IAAW;AAAC;AACpC,KACF;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,GAAG,aAAA,CAAc,IAAA;AAAA,MACjB,GAAI,UAAA,CAAW,IAAA,IAAQ;AAAC,KAC1B;AAAA,IACA,QAAA,EAAU;AAAA,MACR,GAAG,aAAA,CAAc,QAAA;AAAA,MACjB,GAAI,UAAA,CAAW,QAAA,IAAY;AAAC,KAC9B;AAAA,IACA,QAAA,EAAU;AAAA,MACR,GAAG,aAAA,CAAc,QAAA;AAAA,MACjB,GAAI,UAAA,CAAW,QAAA,IAAY;AAAC,KAC9B;AAAA,IACA,KAAA,EAAO;AAAA,MACL,GAAG,aAAA,CAAc,KAAA;AAAA,MACjB,GAAI,UAAA,CAAW,KAAA,IAAS;AAAC;AAC3B,GACF;AACA,EAAA,eAAA,CAAgB,SAAS,CAAA;AAC3B;AAMO,SAAS,SAAA,GAAkC;AAChD,EAAA,OAAO,eAAA,EAAgB;AACzB;AAMO,SAAS,WAAA,GAAoB;AAClC,EAAA,eAAA,CAAgB,EAAE,GAAG,aAAA,EAAe,CAAA;AACtC;;;;"}
1
+ {"version":3,"file":"index4.js","sources":["../node_modules/.pnpm/@radix-ui+react-collapsible@1.1.12_@types+react-dom@19.2.3_@types+react@19.2.14__@types_f33eb5e944edcffc4be9ac071951afef/node_modules/@radix-ui/react-collapsible/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect"],"mappings":";;;;;;;;;AAaA,IAAI,gBAAgB,GAAG,aAAa;AACjC,IAAC,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,GAAG,kBAAkB,CAAC,gBAAgB;AAC5F,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,GAAG,wBAAwB,CAAC,gBAAgB,CAAC;AAC7F,IAAI,WAAW,GAAG,KAAK,CAAC,UAAU;AAClC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK;AAC3B,IAAI,MAAM;AACV,MAAM,kBAAkB;AACxB,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,WAAW;AACjB,MAAM,QAAQ;AACd,MAAM,YAAY;AAClB,MAAM,GAAG;AACT,KAAK,GAAG,KAAK;AACb,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAAC;AACjD,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,WAAW,EAAE,WAAW,IAAI,KAAK;AACvC,MAAM,QAAQ,EAAE,YAAY;AAC5B,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,IAAI,uBAAuB,GAAG;AAC9B,MAAM,mBAAmB;AACzB,MAAM;AACN,QAAQ,KAAK,EAAE,kBAAkB;AACjC,QAAQ,QAAQ;AAChB,QAAQ,SAAS,EAAE,KAAK,EAAE;AAC1B,QAAQ,IAAI;AACZ,QAAQ,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC1F,QAAQ,QAAQ,kBAAkB,GAAG;AACrC,UAAU,SAAS,CAAC,GAAG;AACvB,UAAU;AACV,YAAY,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC;AACxC,YAAY,eAAe,EAAE,QAAQ,GAAG,EAAE,GAAG,MAAM;AACnD,YAAY,GAAG,gBAAgB;AAC/B,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA,KAAK;AACL,EAAE;AACF,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,gBAAgB;AAC1C,IAAI,YAAY,GAAG,oBAAoB;AACvC,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU;AACzC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK;AAC3B,IAAI,MAAM,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;AACzD,IAAI,MAAM,OAAO,GAAG,qBAAqB,CAAC,YAAY,EAAE,kBAAkB,CAAC;AAC3E,IAAI,uBAAuB,GAAG;AAC9B,MAAM,SAAS,CAAC,MAAM;AACtB,MAAM;AACN,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,eAAe,EAAE,OAAO,CAAC,SAAS;AAC1C,QAAQ,eAAe,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;AAC9C,QAAQ,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5C,QAAQ,eAAe,EAAE,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM;AACvD,QAAQ,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAClC,QAAQ,GAAG,YAAY;AACvB,QAAQ,GAAG,EAAE,YAAY;AACzB,QAAQ,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY;AACzE;AACA,KAAK;AACL,EAAE;AACF,CAAC;AACD,kBAAkB,CAAC,WAAW,GAAG,YAAY;AAC7C,IAAI,YAAY,GAAG,oBAAoB;AACvC,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU;AACzC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK;AAC3B,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;AACjD,IAAI,MAAM,OAAO,GAAG,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC;AACjF,IAAI,uBAAuB,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,GAAG,CAAC,sBAAsB,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC1M,EAAE;AACF,CAAC;AACD,kBAAkB,CAAC,WAAW,GAAG,YAAY;AAC7C,IAAI,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK;AACvE,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;AAC1E,EAAE,MAAM,OAAO,GAAG,qBAAqB,CAAC,YAAY,EAAE,kBAAkB,CAAC;AACzE,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3D,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,EAAE,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC;AACzD,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO;AAClC,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO;AAChC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS;AAC1C,EAAE,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAC3D,EAAE,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAChD,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AACxB,IAAI,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,4BAA4B,CAAC,OAAO,GAAG,KAAK,CAAC;AACzF,IAAI,OAAO,MAAM,oBAAoB,CAAC,GAAG,CAAC;AAC1C,EAAE,CAAC,EAAE,EAAE,CAAC;AACR,EAAEA,gBAAe,CAAC,MAAM;AACxB,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AAC5B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO,IAAI;AAC/D,QAAQ,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB;AACzD,QAAQ,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI;AAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AACvC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC/C,MAAM,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;AACrC,MAAM,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE;AACjD,QAAQ,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,CAAC,kBAAkB;AACpF,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa;AAC1E,MAAM;AACN,MAAM,YAAY,CAAC,OAAO,CAAC;AAC3B,IAAI;AACJ,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7B,EAAE,uBAAuB,GAAG;AAC5B,IAAI,SAAS,CAAC,GAAG;AACjB,IAAI;AACJ,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C,MAAM,eAAe,EAAE,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM;AACrD,MAAM,EAAE,EAAE,OAAO,CAAC,SAAS;AAC3B,MAAM,MAAM,EAAE,CAAC,MAAM;AACrB,MAAM,GAAG,YAAY;AACrB,MAAM,GAAG,EAAE,YAAY;AACvB,MAAM,KAAK,EAAE;AACb,QAAQ,CAAC,CAAC,kCAAkC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM;AAC/E,QAAQ,CAAC,CAAC,iCAAiC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM;AAC5E,QAAQ,GAAG,KAAK,CAAC;AACjB,OAAO;AACP,MAAM,QAAQ,EAAE,MAAM,IAAI;AAC1B;AACA,GAAG;AACH,CAAC,CAAC;AACF,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,EAAE,OAAO,IAAI,GAAG,MAAM,GAAG,QAAQ;AACjC;AACG,IAAC,IAAI,GAAG;AACR,IAAC,OAAO,GAAG;AACX,IAAC,OAAO,GAAG;;;;","x_google_ignoreList":[0]}