@admin-layout/tailwind-ui 12.2.4-alpha.98 → 12.2.5-alpha.15

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 (81) hide show
  1. package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts.map +1 -1
  2. package/lib/components/ErrorHandlers/ApplicationErrorHandler.js +5 -1
  3. package/lib/components/ErrorHandlers/ApplicationErrorHandler.js.map +1 -1
  4. package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts +11 -0
  5. package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts.map +1 -1
  6. package/lib/components/ErrorHandlers/RemixErrorBoundary.js +134 -3
  7. package/lib/components/ErrorHandlers/RemixErrorBoundary.js.map +1 -1
  8. package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts.map +1 -1
  9. package/lib/components/ErrorHandlers/SPAErrorBoundary.js +5 -1
  10. package/lib/components/ErrorHandlers/SPAErrorBoundary.js.map +1 -1
  11. package/lib/components/ErrorHandlers/__tests__/RemixErrorBoundary.test.d.ts +2 -0
  12. package/lib/components/ErrorHandlers/__tests__/RemixErrorBoundary.test.d.ts.map +1 -0
  13. package/lib/components/InputToolBar/InputToolBar.d.ts.map +1 -1
  14. package/lib/components/InputToolBar/InputToolBar.js +73 -31
  15. package/lib/components/InputToolBar/InputToolBar.js.map +1 -1
  16. package/lib/components/InputToolBar/__tests__/RightOverflowMenu.test.d.ts +8 -0
  17. package/lib/components/InputToolBar/__tests__/RightOverflowMenu.test.d.ts.map +1 -0
  18. package/lib/components/InputToolBar/types.d.ts +2 -0
  19. package/lib/components/InputToolBar/types.d.ts.map +1 -1
  20. package/lib/components/PageContainer/PageContainer.d.ts +9 -0
  21. package/lib/components/PageContainer/PageContainer.d.ts.map +1 -1
  22. package/lib/components/PageContainer/PageContainer.js +24 -8
  23. package/lib/components/PageContainer/PageContainer.js.map +1 -1
  24. package/lib/components/PageContainer/__tests__/PageContainer.test.d.ts +7 -0
  25. package/lib/components/PageContainer/__tests__/PageContainer.test.d.ts.map +1 -0
  26. package/lib/components/RJSFPreview/PreviewAsyncDropdown.js +111 -0
  27. package/lib/components/RJSFPreview/PreviewAsyncDropdown.js.map +1 -0
  28. package/lib/components/RJSFPreview/PreviewCheckboxWidget.js +95 -0
  29. package/lib/components/RJSFPreview/PreviewCheckboxWidget.js.map +1 -0
  30. package/lib/components/RJSFPreview/PreviewCustomFieldTemplate.js +235 -0
  31. package/lib/components/RJSFPreview/PreviewCustomFieldTemplate.js.map +1 -0
  32. package/lib/components/RJSFPreview/PreviewDateWidget.js +178 -0
  33. package/lib/components/RJSFPreview/PreviewDateWidget.js.map +1 -0
  34. package/lib/components/RJSFPreview/PreviewDialog.js +21 -0
  35. package/lib/components/RJSFPreview/PreviewDialog.js.map +1 -0
  36. package/lib/components/RJSFPreview/PreviewDropdownWidget.js +66 -0
  37. package/lib/components/RJSFPreview/PreviewDropdownWidget.js.map +1 -0
  38. package/lib/components/RJSFPreview/PreviewFieldTemplate.js +69 -0
  39. package/lib/components/RJSFPreview/PreviewFieldTemplate.js.map +1 -0
  40. package/lib/components/RJSFPreview/PreviewFileUploadWidget.js +113 -0
  41. package/lib/components/RJSFPreview/PreviewFileUploadWidget.js.map +1 -0
  42. package/lib/components/RJSFPreview/PreviewFormRenderer.js +195 -0
  43. package/lib/components/RJSFPreview/PreviewFormRenderer.js.map +1 -0
  44. package/lib/components/RJSFPreview/PreviewImageUploadWidget.js +104 -0
  45. package/lib/components/RJSFPreview/PreviewImageUploadWidget.js.map +1 -0
  46. package/lib/components/RJSFPreview/PreviewInputWidget.js +70 -0
  47. package/lib/components/RJSFPreview/PreviewInputWidget.js.map +1 -0
  48. package/lib/components/RJSFPreview/PreviewObjectFieldTemplate.js +33 -0
  49. package/lib/components/RJSFPreview/PreviewObjectFieldTemplate.js.map +1 -0
  50. package/lib/components/RJSFPreview/PreviewRadioWidget.js +55 -0
  51. package/lib/components/RJSFPreview/PreviewRadioWidget.js.map +1 -0
  52. package/lib/components/RJSFPreview/PreviewStepper.js +40 -0
  53. package/lib/components/RJSFPreview/PreviewStepper.js.map +1 -0
  54. package/lib/components/RJSFPreview/PreviewSwitchWidget.js +75 -0
  55. package/lib/components/RJSFPreview/PreviewSwitchWidget.js.map +1 -0
  56. package/lib/components/RJSFPreview/PreviewTab.js +358 -0
  57. package/lib/components/RJSFPreview/PreviewTab.js.map +1 -0
  58. package/lib/components/RJSFPreview/PreviewTextareaWidget.js +45 -0
  59. package/lib/components/RJSFPreview/PreviewTextareaWidget.js.map +1 -0
  60. package/lib/components/RJSFPreview/generateSchemaWithInputs.js +134 -0
  61. package/lib/components/RJSFPreview/generateSchemaWithInputs.js.map +1 -0
  62. package/lib/components/RJSFPreview/index.d.ts +34 -0
  63. package/lib/components/RJSFPreview/index.d.ts.map +1 -1
  64. package/lib/components/RJSFPreview/index.js +1 -0
  65. package/lib/components/RJSFPreview/index.js.map +1 -0
  66. package/lib/components/ThemeProvider/ThemeProvider.js +1 -1
  67. package/lib/components/index.d.ts.map +1 -1
  68. package/lib/hooks/__tests__/useMediaQuery.test.d.ts +2 -0
  69. package/lib/hooks/__tests__/useMediaQuery.test.d.ts.map +1 -0
  70. package/lib/hooks/useMediaQuery.d.ts +9 -2
  71. package/lib/hooks/useMediaQuery.d.ts.map +1 -1
  72. package/lib/hooks/useMediaQuery.js +39 -31
  73. package/lib/hooks/useMediaQuery.js.map +1 -1
  74. package/lib/hooks/useWindowSize.d.ts +4 -0
  75. package/lib/hooks/useWindowSize.d.ts.map +1 -1
  76. package/lib/hooks/useWindowSize.js +13 -19
  77. package/lib/hooks/useWindowSize.js.map +1 -1
  78. package/lib/index.js +1 -1
  79. package/lib/shardui/chart.d.ts +1 -1
  80. package/lib/shardui/resizable.d.ts +1 -1
  81. package/package.json +20 -5
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Generates a JSON schema with input values embedded in the properties
3
+ */
4
+ function generateSchemaWithInputs(formSchema, formData) {
5
+ if (!formSchema || !formData) {
6
+ return formSchema;
7
+ }
8
+ const newSchema = JSON.parse(JSON.stringify(formSchema));
9
+ function processProperties(schema, data) {
10
+ if (!schema || !schema.properties) {
11
+ return {};
12
+ }
13
+ const result = {};
14
+ for (const [propertyName, propertySchema] of Object.entries(schema.properties)) {
15
+ const inputValue = data?.[propertyName];
16
+ const safePropertySchema = propertySchema && typeof propertySchema === 'object' ? propertySchema : {};
17
+ if (safePropertySchema && typeof safePropertySchema === 'object' && safePropertySchema['type'] === 'object' && safePropertySchema['properties'] && typeof safePropertySchema['properties'] === 'object') {
18
+ const nestedValues = processProperties(safePropertySchema, inputValue);
19
+ result[propertyName] = nestedValues;
20
+ } else {
21
+ if (safePropertySchema && safePropertySchema['type'] === 'boolean' && typeof inputValue === 'boolean') {
22
+ const fieldLabel = safePropertySchema['placeholder'] || safePropertySchema['title'] || propertyName;
23
+ result[propertyName] = {
24
+ label: fieldLabel,
25
+ value: inputValue
26
+ };
27
+ } else if (safePropertySchema && safePropertySchema['type'] === 'array' && safePropertySchema['items'] && safePropertySchema['items']['oneOf'] && Array.isArray(inputValue)) {
28
+ const oneOfOptions = safePropertySchema['items']['oneOf'];
29
+ const selectedObjects = inputValue.map(selectedKey => {
30
+ const option = oneOfOptions.find(opt => opt.const === selectedKey);
31
+ return {
32
+ label: option?.title || selectedKey,
33
+ value: selectedKey
34
+ };
35
+ });
36
+ result[propertyName] = selectedObjects;
37
+ } else {
38
+ if (inputValue !== undefined && inputValue !== null && inputValue !== '') {
39
+ result[propertyName] = inputValue;
40
+ } else {
41
+ result[propertyName] = null;
42
+ }
43
+ }
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ return processProperties(newSchema, formData);
49
+ }
50
+ function extractConfigurationFormData(formData) {
51
+ return formData;
52
+ }
53
+ function extractMultiStepFormData(formData) {
54
+ const flattenedData = {};
55
+ for (const [, stepData] of Object.entries(formData)) {
56
+ if (typeof stepData === 'object' && stepData !== null) {
57
+ Object.assign(flattenedData, stepData);
58
+ }
59
+ }
60
+ return flattenedData;
61
+ }
62
+ function generateAmenitiesFragmentSchema(formSchema) {
63
+ if (!formSchema) {
64
+ return null;
65
+ }
66
+ const definitions = formSchema.definitions || formSchema.$defs || {};
67
+ const transformedDefs = {};
68
+ function removeTitle(obj) {
69
+ if (Array.isArray(obj)) {
70
+ return obj.map(removeTitle);
71
+ } else if (obj && typeof obj === 'object') {
72
+ const {
73
+ title,
74
+ ...rest
75
+ } = obj;
76
+ const result = {};
77
+ for (const [key, value] of Object.entries(rest)) {
78
+ result[key] = removeTitle(value);
79
+ }
80
+ return result;
81
+ }
82
+ return obj;
83
+ }
84
+ for (const [defName, defSchema] of Object.entries(definitions)) {
85
+ transformedDefs[defName] = removeTitle(defSchema);
86
+ }
87
+ function transformProperties(properties) {
88
+ if (!properties || typeof properties !== 'object') {
89
+ return {};
90
+ }
91
+ const transformedProps = {};
92
+ for (const [propName, propSchema] of Object.entries(properties)) {
93
+ const schema = propSchema;
94
+ if (schema.type === 'object' && schema.properties) {
95
+ transformedProps[propName] = {
96
+ type: 'object',
97
+ properties: transformProperties(schema.properties)
98
+ };
99
+ } else if (schema.$ref) {
100
+ let normalizedRef = schema.$ref;
101
+ if (normalizedRef.startsWith('#/definitions/')) {
102
+ normalizedRef = normalizedRef.replace('#/definitions/', '#/$defs/');
103
+ }
104
+ transformedProps[propName] = {
105
+ $ref: normalizedRef
106
+ };
107
+ } else {
108
+ const fieldType = schema.type || 'string';
109
+ const baseDefName = `${propName}Base`;
110
+ if (!transformedDefs[baseDefName]) {
111
+ transformedDefs[baseDefName] = {
112
+ type: fieldType
113
+ };
114
+ }
115
+ transformedProps[propName] = {
116
+ $ref: `#/$defs/${baseDefName}`
117
+ };
118
+ }
119
+ }
120
+ return transformedProps;
121
+ }
122
+ const transformedProperties = transformProperties(formSchema.properties);
123
+ const schemaWithoutTitle = removeTitle({
124
+ type: 'object',
125
+ properties: transformedProperties
126
+ });
127
+ const amenitiesFragment = {
128
+ configuration: {
129
+ $defs: transformedDefs,
130
+ schema: schemaWithoutTitle
131
+ }
132
+ };
133
+ return amenitiesFragment;
134
+ }export{extractConfigurationFormData,extractMultiStepFormData,generateAmenitiesFragmentSchema,generateSchemaWithInputs};//# sourceMappingURL=generateSchemaWithInputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSchemaWithInputs.js","sources":["../../../src/components/RJSFPreview/generateSchemaWithInputs.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;AAEG;AACH,SAAA,wBAAgB,CAAA,UAAyB,EAAA,QAAY,EAAA;AA4DrD,EAAA,IAAA,CAAA,UAAA,IAAA,CAAA;AAIA,IAAA,OAAA,UAAA;AAUA,EAAA;AAwFA,EAAA,MAAA,SAAA,GAAA,IAAgB,gCAAgC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,36 @@
1
+ /**
2
+ * Schema-driven forms.
3
+ *
4
+ * A form here is a JSON Schema plus a uiSchema: the schema is the data contract
5
+ * (fields, types, required, secret) and the uiSchema is the presentation, which
6
+ * is per-surface - the same schema renders dense on the web and one step per
7
+ * screen on a phone, without either side re-declaring the fields.
8
+ *
9
+ * Exported as its own subpath, `@admin-layout/tailwind-ui/forms`, so @rjsf/*
10
+ * stays an optional peer for every other consumer. This lived behind a deep import
11
+ * (`@admin-layout/tailwind-ui/src/components/RJSFPreview`) with no consumers,
12
+ * and the cost showed: product forms were hand-rolled instead - a credential
13
+ * vault form built on raw <input> elements grew its own autofill desync, had no
14
+ * record binding to update through, and kept its validation in a marker parser.
15
+ * A shared renderer nobody can import is a shared renderer nobody uses.
16
+ */
1
17
  export { PreviewTab } from './PreviewTab';
18
+ export { PreviewFormRenderer } from './PreviewFormRenderer';
19
+ export { PreviewStepper } from './PreviewStepper';
20
+ export { PreviewDialog } from './PreviewDialog';
21
+ export { PreviewFieldTemplate } from './PreviewFieldTemplate';
22
+ export { PreviewCustomFieldTemplate } from './PreviewCustomFieldTemplate';
23
+ export { PreviewObjectFieldTemplate } from './PreviewObjectFieldTemplate';
24
+ export { PreviewInputWidget } from './PreviewInputWidget';
25
+ export { PreviewTextareaWidget } from './PreviewTextareaWidget';
26
+ export { PreviewDropdownWidget } from './PreviewDropdownWidget';
27
+ export { PreviewRadioWidget } from './PreviewRadioWidget';
28
+ export { PreviewCheckboxWidget } from './PreviewCheckboxWidget';
29
+ export { PreviewSwitchWidget } from './PreviewSwitchWidget';
30
+ export { PreviewDateWidget } from './PreviewDateWidget';
31
+ export { PreviewFileUploadWidget } from './PreviewFileUploadWidget';
32
+ export { PreviewImageUploadWidget } from './PreviewImageUploadWidget';
33
+ export { default as PreviewAsyncDropdown } from './PreviewAsyncDropdown';
34
+ export type { SelectWidgetProps } from './PreviewAsyncDropdown';
35
+ export { generateSchemaWithInputs, extractConfigurationFormData, extractMultiStepFormData, } from './generateSchemaWithInputs';
2
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RJSFPreview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RJSFPreview/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAK1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EACH,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,GAC3B,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ export{PreviewTab}from'./PreviewTab.js';export{PreviewFormRenderer}from'./PreviewFormRenderer.js';export{PreviewStepper}from'./PreviewStepper.js';export{PreviewDialog}from'./PreviewDialog.js';export{PreviewFieldTemplate}from'./PreviewFieldTemplate.js';export{PreviewCustomFieldTemplate}from'./PreviewCustomFieldTemplate.js';export{PreviewObjectFieldTemplate}from'./PreviewObjectFieldTemplate.js';export{PreviewInputWidget}from'./PreviewInputWidget.js';export{PreviewTextareaWidget}from'./PreviewTextareaWidget.js';export{PreviewDropdownWidget}from'./PreviewDropdownWidget.js';export{PreviewRadioWidget}from'./PreviewRadioWidget.js';export{PreviewCheckboxWidget}from'./PreviewCheckboxWidget.js';export{PreviewSwitchWidget}from'./PreviewSwitchWidget.js';export{PreviewDateWidget}from'./PreviewDateWidget.js';export{PreviewFileUploadWidget}from'./PreviewFileUploadWidget.js';export{PreviewImageUploadWidget}from'./PreviewImageUploadWidget.js';export{default as PreviewAsyncDropdown}from'./PreviewAsyncDropdown.js';export{extractConfigurationFormData,extractMultiStepFormData,generateSchemaWithInputs}from'./generateSchemaWithInputs.js';//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import {jsx}from'react/jsx-runtime';import {createContext,useState,useEffect,useMemo}from'react';import'../../hooks/useToast.js';import {useMediaQuery}from'../../hooks/useMediaQuery.js';const themes = [{
1
+ import {jsx}from'react/jsx-runtime';import {createContext,useState,useEffect,useMemo}from'react';import {useMediaQuery}from'../../hooks/useMediaQuery.js';import'../../hooks/useToast.js';const themes = [{
2
2
  value: 'default',
3
3
  label: 'Default',
4
4
  description: 'Clean and minimal design'
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAChF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAK7B,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAChF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useMediaQuery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMediaQuery.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__tests__/useMediaQuery.test.tsx"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- interface MediaQueryResult {
1
+ export interface MediaQueryResult {
2
2
  width: number;
3
3
  height: number;
4
4
  isMobile: boolean;
@@ -9,6 +9,13 @@ interface MediaQueryResult {
9
9
  xl: boolean;
10
10
  '2xl': boolean;
11
11
  }
12
+ /**
13
+ * Viewport size and Tailwind breakpoint flags.
14
+ *
15
+ * Hydration-safe: while hydrating, React renders the server snapshot (desktop) so the
16
+ * markup matches what the server sent, then re-renders with the real viewport. Reading
17
+ * `window` in the first render instead made every phone-width load throw React #418 and
18
+ * discard the server HTML. Client-only mounts get the real viewport straight away.
19
+ */
12
20
  export declare const useMediaQuery: () => MediaQueryResult;
13
- export {};
14
21
  //# sourceMappingURL=useMediaQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaQuery.ts"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAClB;AAoBD,eAAO,MAAM,aAAa,QAAO,gBAyChC,CAAC"}
1
+ {"version":3,"file":"useMediaQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaQuery.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAClB;AAoDD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAO,gBAAmF,CAAC"}
@@ -1,4 +1,4 @@
1
- import {useState,useEffect}from'react';const breakpoints = {
1
+ import {useSyncExternalStore}from'react';const breakpoints = {
2
2
  sm: 640,
3
3
  md: 768,
4
4
  lg: 1024,
@@ -13,36 +13,44 @@ const getFlags = width => ({
13
13
  xl: width >= breakpoints.xl && width < breakpoints['2xl'],
14
14
  '2xl': width >= breakpoints['2xl']
15
15
  });
16
- const useMediaQuery = () => {
17
- const getDimensions = () => {
18
- const width = window.innerWidth;
19
- const height = window.innerHeight;
20
- const isMobile = width < breakpoints.md;
21
- const flags = getFlags(width);
22
- return {
16
+ /** The server cannot see the viewport, so it always renders the desktop layout. */
17
+ const SERVER_SNAPSHOT = Object.freeze({
18
+ width: 0,
19
+ height: 0,
20
+ isMobile: false,
21
+ xs: false,
22
+ sm: false,
23
+ md: false,
24
+ lg: false,
25
+ xl: false,
26
+ '2xl': false
27
+ });
28
+ // One cached snapshot per viewport size: useSyncExternalStore needs a stable value between changes.
29
+ let snapshot = null;
30
+ const getSnapshot = () => {
31
+ const width = window.innerWidth;
32
+ const height = window.innerHeight;
33
+ if (!snapshot || snapshot.width !== width || snapshot.height !== height) {
34
+ snapshot = {
23
35
  width,
24
36
  height,
25
- isMobile,
26
- ...flags
27
- };
28
- };
29
- const [state, setState] = useState(() => typeof window !== 'undefined' ? getDimensions() : {
30
- width: 0,
31
- height: 0,
32
- isMobile: false,
33
- xs: false,
34
- sm: false,
35
- md: false,
36
- lg: false,
37
- xl: false,
38
- '2xl': false
39
- });
40
- useEffect(() => {
41
- const handleResize = () => {
42
- setState(getDimensions());
37
+ isMobile: width < breakpoints.md,
38
+ ...getFlags(width)
43
39
  };
44
- window.addEventListener('resize', handleResize);
45
- return () => window.removeEventListener('resize', handleResize);
46
- }, []);
47
- return state;
48
- };export{useMediaQuery};//# sourceMappingURL=useMediaQuery.js.map
40
+ }
41
+ return snapshot;
42
+ };
43
+ const getServerSnapshot = () => SERVER_SNAPSHOT;
44
+ const subscribe = onChange => {
45
+ window.addEventListener('resize', onChange);
46
+ return () => window.removeEventListener('resize', onChange);
47
+ };
48
+ /**
49
+ * Viewport size and Tailwind breakpoint flags.
50
+ *
51
+ * Hydration-safe: while hydrating, React renders the server snapshot (desktop) so the
52
+ * markup matches what the server sent, then re-renders with the real viewport. Reading
53
+ * `window` in the first render instead made every phone-width load throw React #418 and
54
+ * discard the server HTML. Client-only mounts get the real viewport straight away.
55
+ */
56
+ const useMediaQuery = () => useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);export{useMediaQuery};//# sourceMappingURL=useMediaQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.js","sources":["../../src/hooks/useMediaQuery.ts"],"sourcesContent":[null],"names":[],"mappings":"6CAGI,WAAa,GAAC;IAEd,EAAA,GAAA;IACA,EAAE;IACF,EAAE;IACF,EAAE;OACA;;MAEF,gBAAe,KAAA;AAClB,EAAA,EAAA,EAAA,KAAA,GAAA,WAAA,CAAA,EAAA;AAoBD,EAAA,EAAA,EAAA,KAAA,IAAO,WAAM,CAAA,EAAA,IAAA,KAAa,GAAA,WAAO,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useMediaQuery.js","sources":["../../src/hooks/useMediaQuery.ts"],"sourcesContent":[null],"names":[],"mappings":"+CAGI,WAAa,GAAC;IAEd,EAAA,GAAA;IACA,EAAE;IACF,EAAE;IACF,EAAE;OACA;;MAEF,gBAAe,KAAA;AAClB,EAAA,EAAA,EAAA,KAAA,GAAA,WAAA,CAAA,EAAA;AAoDD,EAAA,EAAA,EAAA,KAAA,IAAA,WAAA,CAAA,EAAA,IAAA,KAAA,GAAA,WAAA,CAAA,EAAA;;;;;;;AAOG,MAAA,eAAA,GAAA,MAAA,CAAA,MAAA,CAAA;AACH,EAAA,KAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Viewport width and height - 0 x 0 on the server and while hydrating (see useMediaQuery),
3
+ * the real size after that. The object only changes when the size does.
4
+ */
1
5
  export declare function useWindowSize(): {
2
6
  width: number;
3
7
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useWindowSize.d.ts","sourceRoot":"","sources":["../../src/hooks/useWindowSize.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa;;;EAsB5B"}
1
+ {"version":3,"file":"useWindowSize.d.ts","sourceRoot":"","sources":["../../src/hooks/useWindowSize.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,aAAa;;;EAG5B"}
@@ -1,20 +1,14 @@
1
- import {useState,useEffect}from'react';function useWindowSize() {
2
- const [windowSize, setWindowSize] = useState({
3
- width: typeof window !== 'undefined' ? window.innerWidth : 0,
4
- // Check if window is defined
5
- height: typeof window !== 'undefined' ? window.innerHeight : 0 // Check if window is defined
6
- });
7
- useEffect(() => {
8
- function handleResize() {
9
- setWindowSize({
10
- width: window.innerWidth,
11
- height: window.innerHeight
12
- });
13
- }
14
- // Add event listener for window resize
15
- window.addEventListener('resize', handleResize);
16
- // Cleanup the event listener on component unmount
17
- return () => window.removeEventListener('resize', handleResize);
18
- }, []);
19
- return windowSize;
1
+ import {useMemo}from'react';import {useMediaQuery}from'./useMediaQuery.js';/**
2
+ * Viewport width and height - 0 x 0 on the server and while hydrating (see useMediaQuery),
3
+ * the real size after that. The object only changes when the size does.
4
+ */
5
+ function useWindowSize() {
6
+ const {
7
+ width,
8
+ height
9
+ } = useMediaQuery();
10
+ return useMemo(() => ({
11
+ width,
12
+ height
13
+ }), [width, height]);
20
14
  }export{useWindowSize};//# sourceMappingURL=useWindowSize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWindowSize.js","sources":["../../src/hooks/useWindowSize.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAwBC,IAAA,KAAA,EAAA,OAAA,MAAA,KAAA,WAAA,GAAA,MAAA,CAAA,UAAA,GAAA,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useWindowSize.js","sources":["../../src/hooks/useWindowSize.ts"],"sourcesContent":[null],"names":[],"mappings":";AAMG;AACH;;;AAGC,EAAA,MAAA;;;;;;;;"}
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{default as PageLoading}from'./components/PageLoading/index.js';export{ApplicationErrorHandler}from'./components/ErrorHandlers/ApplicationErrorHandler.js';export{ErrorBoundary}from'./components/ErrorHandlers/ErrorBoundary.js';export{LayoutErrorBoundary}from'./components/ErrorHandlers/LayoutErrorBoundary.js';export{RemixErrorBoundary}from'./components/ErrorHandlers/RemixErrorBoundary.js';export{SPAErrorBoundary}from'./components/ErrorHandlers/SPAErrorBoundary.js';export{ReactTable}from'./components/ReactTable/Table.js';export{DefaultColumnFilter,SelectColumnFilter}from'./components/ReactTable/TableFilters.js';export{Error404}from'./components/ErrorPages/404.js';export{Error500}from'./components/ErrorPages/500.js';export{Error403}from'./components/ErrorPages/403.js';export{PageContainer}from'./components/PageContainer/PageContainer.js';export{Spin}from'./components/Spin/index.js';export{OTPInput}from'./components/OTP/OTPInput.js';export{SingleInput}from'./components/OTP/SingleInput.js';export{useOTPInput}from'./components/OTP/hooks.js';export{OTPVerification}from'./components/OTP/OTPVerification.js';export{SearchInput}from'./components/Search/SearchInput.js';export{Select,SelectContent,SelectItem,SelectSearch,SelectTrigger,SelectValue}from'./components/Select/Select.js';export{DatePicker}from'./components/DatePicker/DatePicker.js';export{Dialog}from'./components/Dialog/Dialog.js';export{TailwindUiButton}from'./components/Button/Button.js';export{TailwindThemeProvider,ThemeContext,themes}from'./components/ThemeProvider/ThemeProvider.js';export{ThemeToggle}from'./components/ThemeProvider/ThemeToggle.js';export{LanguageMenuDropdown}from'./components/LanguageMenuDropdown/LanguageMenuDropdown.js';export{InputToolBar}from'./components/InputToolBar/InputToolBar.js';export{getDefaultLeftItems,getDefaultRightItems}from'./components/InputToolBar/defaults.js';export{CharacterSlotPicker}from'./components/CharacterSlotPicker/CharacterSlotPicker.js';export{AIToolbar,AIToolbarInputSurface,AIToolbarLeading,AIToolbarMain,AIToolbarStatusDot,AIToolbarTrailing}from'./components/AIToolbar/components/AIToolbarPrimitives.js';export{Completion}from'./components/AIToolbar/components/completion/index.js';export{SystemAudio}from'./components/AIToolbar/components/speech/index.js';export{AudioVisualizer}from'./components/AIToolbar/components/speech/audio-visualizer.js';export{StatusIndicator}from'./components/AIToolbar/components/speech/StatusIndicator.js';export{AIToolBar}from'./components/AIToolbar/components/AIToolBar.js';export{CustomCursor}from'./components/AIToolbar/components/CustomCursor.js';export{MessageHistory}from'./components/AIToolbar/components/completion/MessageHistory.js';export{Screenshot}from'./components/AIToolbar/components/completion/Screenshot.js';export{Header}from'./components/AIToolbar/components/speech/Header.js';export{ModeSwitcher}from'./components/AIToolbar/components/speech/ModeSwitcher.js';export{PermissionFlow}from'./components/AIToolbar/components/speech/PermissionFlow.js';export{setMarketplaceCharacters,useActiveCharacter,useCharacterPicker}from'./components/AIToolbar/hooks/useActiveCharacter.js';export{ACTIVE_CHARACTER_CHANGE_EVENT,ACTIVE_CHARACTER_FILE_NAME_STORAGE_KEY,readPreferredActiveCharacterFileName,resolveActiveCharacterFromList,setPreferredActiveCharacterFileName}from'./hooks/activeCharacterPreference.js';export{default as ChannelBar}from'./components/Inbox/Channels/ChannelBar.js';export{default as ChannelConnectModal}from'./components/Inbox/Channels/ChannelConnectModal.js';export{CHANNELS}from'./components/Inbox/Channels/channelsMeta.js';export{YantraIcon}from'./components/YantraIcon.js';export{Markdown as AIToolbarMarkdown}from'./components/AIToolbar/components/Markdown/index.js';export{MarkdownBreadcrumbs}from'./components/Markdown/MarkdownBreadcrumbs.js';export{MarkdownCopyButton}from'./components/Markdown/MarkdownCopyButton.js';export{MarkdownHeader}from'./components/Markdown/MarkdownHeader.js';export{MarkdownNavigation}from'./components/Markdown/MarkdownNavigation.js';export{MarkdownPage}from'./components/Markdown/MarkdownPage.js';export{MarkdownTableOfContents}from'./components/Markdown/MarkdownTableOfContents.js';export{CHARACTER_SLOTS_CHANGE_EVENT,CHARACTER_SLOTS_DEFAULT_KEY,CHARACTER_SLOTS_STORAGE_KEY,SLOT_NUMBERS,readCharacterSlots,readDefaultCharacterFileName,readDefaultSlot,setDefaultSlot,setSlot,useCharacterSlots,writeCharacterSlots}from'./hooks/characterSlotsPreference.js';export{CHARACTER_OVERRIDES_CHANGE_EVENT,readCharacterAddendum,readCharacterOverrides,readCharacterVoiceId,setCharacterAddendum,setCharacterOverrides,setCharacterVoiceId,useCharacterOverrides}from'./hooks/characterOverrides.js';export{BAR_TOGGLE_AUDIO_EVENT,BAR_TOGGLE_EYE_EVENT,BAR_TOGGLE_MIC_EVENT,useGlobalShortcutBridge}from'./hooks/useGlobalShortcutBridge.js';export{useTheme}from'./hooks/useTheme.js';export{useWindowSize}from'./hooks/useWindowSize.js';export{ToastContainer,useToast,useToastCloseAll}from'./hooks/useToast.js';export{useMediaQuery}from'./hooks/useMediaQuery.js';export{cn}from'./utils/util.js';export{AssistantMessageActions}from'./components/AIToolbar/components/completion/AssistantMessageActions.js';export{DragButton}from'./components/AIToolbar/components/DragButton.js';//# sourceMappingURL=index.js.map
1
+ export{default as PageLoading}from'./components/PageLoading/index.js';export{ApplicationErrorHandler}from'./components/ErrorHandlers/ApplicationErrorHandler.js';export{ErrorBoundary}from'./components/ErrorHandlers/ErrorBoundary.js';export{LayoutErrorBoundary}from'./components/ErrorHandlers/LayoutErrorBoundary.js';export{MANIFEST_RELOAD_FALLBACK_MS,RemixErrorBoundary,isManifestVersionMismatchError}from'./components/ErrorHandlers/RemixErrorBoundary.js';export{SPAErrorBoundary}from'./components/ErrorHandlers/SPAErrorBoundary.js';export{ReactTable}from'./components/ReactTable/Table.js';export{DefaultColumnFilter,SelectColumnFilter}from'./components/ReactTable/TableFilters.js';export{Error404}from'./components/ErrorPages/404.js';export{Error500}from'./components/ErrorPages/500.js';export{Error403}from'./components/ErrorPages/403.js';export{PageContainer,findActiveTabPath}from'./components/PageContainer/PageContainer.js';export{Spin}from'./components/Spin/index.js';export{OTPInput}from'./components/OTP/OTPInput.js';export{SingleInput}from'./components/OTP/SingleInput.js';export{useOTPInput}from'./components/OTP/hooks.js';export{OTPVerification}from'./components/OTP/OTPVerification.js';export{SearchInput}from'./components/Search/SearchInput.js';export{Select,SelectContent,SelectItem,SelectSearch,SelectTrigger,SelectValue}from'./components/Select/Select.js';export{DatePicker}from'./components/DatePicker/DatePicker.js';export{Dialog}from'./components/Dialog/Dialog.js';export{TailwindUiButton}from'./components/Button/Button.js';export{TailwindThemeProvider,ThemeContext,themes}from'./components/ThemeProvider/ThemeProvider.js';export{ThemeToggle}from'./components/ThemeProvider/ThemeToggle.js';export{LanguageMenuDropdown}from'./components/LanguageMenuDropdown/LanguageMenuDropdown.js';export{InputToolBar}from'./components/InputToolBar/InputToolBar.js';export{getDefaultLeftItems,getDefaultRightItems}from'./components/InputToolBar/defaults.js';export{CharacterSlotPicker}from'./components/CharacterSlotPicker/CharacterSlotPicker.js';export{AIToolbar,AIToolbarInputSurface,AIToolbarLeading,AIToolbarMain,AIToolbarStatusDot,AIToolbarTrailing}from'./components/AIToolbar/components/AIToolbarPrimitives.js';export{Completion}from'./components/AIToolbar/components/completion/index.js';export{SystemAudio}from'./components/AIToolbar/components/speech/index.js';export{AudioVisualizer}from'./components/AIToolbar/components/speech/audio-visualizer.js';export{StatusIndicator}from'./components/AIToolbar/components/speech/StatusIndicator.js';export{AIToolBar}from'./components/AIToolbar/components/AIToolBar.js';export{CustomCursor}from'./components/AIToolbar/components/CustomCursor.js';export{MessageHistory}from'./components/AIToolbar/components/completion/MessageHistory.js';export{Screenshot}from'./components/AIToolbar/components/completion/Screenshot.js';export{Header}from'./components/AIToolbar/components/speech/Header.js';export{ModeSwitcher}from'./components/AIToolbar/components/speech/ModeSwitcher.js';export{PermissionFlow}from'./components/AIToolbar/components/speech/PermissionFlow.js';export{setMarketplaceCharacters,useActiveCharacter,useCharacterPicker}from'./components/AIToolbar/hooks/useActiveCharacter.js';export{ACTIVE_CHARACTER_CHANGE_EVENT,ACTIVE_CHARACTER_FILE_NAME_STORAGE_KEY,readPreferredActiveCharacterFileName,resolveActiveCharacterFromList,setPreferredActiveCharacterFileName}from'./hooks/activeCharacterPreference.js';export{default as ChannelBar}from'./components/Inbox/Channels/ChannelBar.js';export{default as ChannelConnectModal}from'./components/Inbox/Channels/ChannelConnectModal.js';export{CHANNELS}from'./components/Inbox/Channels/channelsMeta.js';export{YantraIcon}from'./components/YantraIcon.js';export{Markdown as AIToolbarMarkdown}from'./components/AIToolbar/components/Markdown/index.js';export{MarkdownBreadcrumbs}from'./components/Markdown/MarkdownBreadcrumbs.js';export{MarkdownCopyButton}from'./components/Markdown/MarkdownCopyButton.js';export{MarkdownHeader}from'./components/Markdown/MarkdownHeader.js';export{MarkdownNavigation}from'./components/Markdown/MarkdownNavigation.js';export{MarkdownPage}from'./components/Markdown/MarkdownPage.js';export{MarkdownTableOfContents}from'./components/Markdown/MarkdownTableOfContents.js';export{CHARACTER_SLOTS_CHANGE_EVENT,CHARACTER_SLOTS_DEFAULT_KEY,CHARACTER_SLOTS_STORAGE_KEY,SLOT_NUMBERS,readCharacterSlots,readDefaultCharacterFileName,readDefaultSlot,setDefaultSlot,setSlot,useCharacterSlots,writeCharacterSlots}from'./hooks/characterSlotsPreference.js';export{CHARACTER_OVERRIDES_CHANGE_EVENT,readCharacterAddendum,readCharacterOverrides,readCharacterVoiceId,setCharacterAddendum,setCharacterOverrides,setCharacterVoiceId,useCharacterOverrides}from'./hooks/characterOverrides.js';export{BAR_TOGGLE_AUDIO_EVENT,BAR_TOGGLE_EYE_EVENT,BAR_TOGGLE_MIC_EVENT,useGlobalShortcutBridge}from'./hooks/useGlobalShortcutBridge.js';export{useTheme}from'./hooks/useTheme.js';export{useWindowSize}from'./hooks/useWindowSize.js';export{ToastContainer,useToast,useToastCloseAll}from'./hooks/useToast.js';export{useMediaQuery}from'./hooks/useMediaQuery.js';export{cn}from'./utils/util.js';export{AssistantMessageActions}from'./components/AIToolbar/components/completion/AssistantMessageActions.js';export{DragButton}from'./components/AIToolbar/components/DragButton.js';//# sourceMappingURL=index.js.map
@@ -55,7 +55,7 @@ declare const ChartTooltipContent: React.ForwardRefExoticComponent<Omit<Recharts
55
55
  labelKey?: string;
56
56
  }, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
57
  declare const ChartLegend: typeof RechartsPrimitive.Legend;
58
- declare const ChartLegendContent: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<RechartsPrimitive.LegendProps, "verticalAlign" | "payload"> & {
58
+ declare const ChartLegendContent: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
59
59
  hideIcon?: boolean;
60
60
  nameKey?: string;
61
61
  }, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import * as ResizablePrimitive from 'react-resizable-panels';
3
3
  declare const ResizablePanelGroup: ({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => import("react/jsx-runtime").JSX.Element;
4
- declare const ResizablePanel: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLHeadingElement | HTMLParagraphElement | HTMLDetailsElement | HTMLPreElement | HTMLHtmlElement | HTMLHeadElement | HTMLBodyElement | HTMLMetaElement | HTMLTitleElement | HTMLScriptElement | HTMLSelectElement | HTMLOptionElement | HTMLOptGroupElement | HTMLInputElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableRowElement | HTMLTableCellElement | HTMLSpanElement | HTMLImageElement | HTMLUListElement | HTMLLIElement | HTMLAnchorElement | HTMLObjectElement | HTMLLinkElement | HTMLMapElement | HTMLProgressElement | HTMLDialogElement | HTMLFormElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBRElement | HTMLCanvasElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLHRElement | HTMLIFrameElement | HTMLLabelElement | HTMLLegendElement | HTMLMeterElement | HTMLOListElement | HTMLOutputElement | HTMLSlotElement | HTMLSourceElement | HTMLStyleElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTrackElement | HTMLVideoElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
4
+ declare const ResizablePanel: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLHeadingElement | HTMLParagraphElement | HTMLStyleElement | HTMLDetailsElement | HTMLPreElement | HTMLHtmlElement | HTMLHeadElement | HTMLBodyElement | HTMLMetaElement | HTMLTitleElement | HTMLScriptElement | HTMLSelectElement | HTMLOptionElement | HTMLOptGroupElement | HTMLInputElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableRowElement | HTMLTableCellElement | HTMLSpanElement | HTMLImageElement | HTMLUListElement | HTMLLIElement | HTMLAnchorElement | HTMLObjectElement | HTMLLinkElement | HTMLMapElement | HTMLProgressElement | HTMLDialogElement | HTMLFormElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBRElement | HTMLCanvasElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLHRElement | HTMLIFrameElement | HTMLLabelElement | HTMLLegendElement | HTMLMeterElement | HTMLOListElement | HTMLOutputElement | HTMLSlotElement | HTMLSourceElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTrackElement | HTMLVideoElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
5
5
  className?: string | undefined;
6
6
  collapsedSize?: number | undefined;
7
7
  collapsible?: boolean | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/tailwind-ui",
3
- "version": "12.2.4-alpha.98",
3
+ "version": "12.2.5-alpha.15",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -8,6 +8,7 @@
8
8
  "exports": {
9
9
  ".": "./lib/index.js",
10
10
  "./components/*": "./lib/components/*",
11
+ "./forms": "./lib/components/RJSFPreview/index.js",
11
12
  "./hooks/*": "./lib/hooks/*",
12
13
  "./shardui/util": "./lib/utils/util.js",
13
14
  "./shardui": "./lib/shardui/index.js",
@@ -29,7 +30,7 @@
29
30
  "watch": "npm run build:lib:watch"
30
31
  },
31
32
  "dependencies": {
32
- "@admin-layout/client": "12.2.4-alpha.85",
33
+ "@admin-layout/client": "12.2.5-alpha.15",
33
34
  "@radix-ui/react-accordion": "^1.2.0",
34
35
  "@radix-ui/react-alert-dialog": "^1.1.1",
35
36
  "@radix-ui/react-aspect-ratio": "^1.1.0",
@@ -85,16 +86,30 @@
85
86
  "peerDependencies": {
86
87
  "@remix-run/react": ">=2",
87
88
  "@ricky0123/vad-react": ">=0.0.30",
89
+ "@rjsf/core": "^5.0.0",
90
+ "@rjsf/utils": "^5.0.0",
91
+ "@rjsf/validator-ajv8": "^5.0.0",
88
92
  "@tauri-apps/api": ">=2",
89
93
  "history": "*",
90
- "react": ">=16",
94
+ "react": ">=18",
91
95
  "react-router-dom": "*"
92
96
  },
97
+ "peerDependenciesMeta": {
98
+ "@rjsf/core": {
99
+ "optional": true
100
+ },
101
+ "@rjsf/utils": {
102
+ "optional": true
103
+ },
104
+ "@rjsf/validator-ajv8": {
105
+ "optional": true
106
+ }
107
+ },
93
108
  "publishConfig": {
94
109
  "access": "public"
95
110
  },
96
- "gitHead": "31c7f5b350f4d052df1064e85d964f14d750bbe1",
97
111
  "typescript": {
98
112
  "definition": "lib/index.d.ts"
99
- }
113
+ },
114
+ "gitHead": "d82d5b9a4f67eb3aa67b6b3aa13501e07d5acf3b"
100
115
  }