asterui 0.12.19 → 0.12.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Code.d.ts +2 -0
- package/dist/components/CopyButton.d.ts +34 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +205 -203
- package/dist/index.js.map +1 -1
- package/dist/index10.js +91 -121
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +5 -13
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +11 -43
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +44 -11
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +10 -12
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +14 -7
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +7 -12
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +11 -29
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +29 -16
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +21 -0
- package/dist/index108.js.map +1 -0
- package/dist/index11.js +123 -30
- package/dist/index11.js.map +1 -1
- package/dist/index12.js +28 -263
- package/dist/index12.js.map +1 -1
- package/dist/index13.js +257 -105
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +108 -153
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +154 -146
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +150 -5
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +5 -71
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +70 -24
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +23 -194
- package/dist/index19.js.map +1 -1
- package/dist/index20.js +188 -106
- package/dist/index20.js.map +1 -1
- package/dist/index21.js +107 -177
- package/dist/index21.js.map +1 -1
- package/dist/index22.js +181 -107
- package/dist/index22.js.map +1 -1
- package/dist/index23.js +110 -19
- package/dist/index23.js.map +1 -1
- package/dist/index24.js +17 -41
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +43 -32
- package/dist/index25.js.map +1 -1
- package/dist/index26.js +30 -170
- package/dist/index26.js.map +1 -1
- package/dist/index27.js +171 -40
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +41 -17
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +17 -33
- package/dist/index29.js.map +1 -1
- package/dist/index30.js +33 -52
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +50 -61
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +60 -181
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +184 -18
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +15 -271
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +270 -1083
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +1086 -16
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +17 -17
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +15 -120
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +119 -37
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +40 -398
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +390 -89
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +91 -253
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +249 -145
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +155 -15
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +15 -17
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +16 -136
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +134 -10
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +13 -35
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +35 -34
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +34 -81
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +71 -166
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +167 -144
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +152 -11
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +10 -20
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +55 -12
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +14 -7
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +6 -333
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +334 -47
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +47 -122
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +120 -108
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +107 -167
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +167 -29
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +30 -120
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +116 -80
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +85 -19
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +19 -73
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +71 -54
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +56 -44
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +42 -49
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +50 -121
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +118 -102
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +105 -72
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +73 -67
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +66 -19
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +18 -55
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +55 -251
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +254 -22
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +22 -31
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +30 -93
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +89 -324
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +322 -73
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +79 -39
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +40 -23
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +21 -93
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +87 -148
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +147 -152
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +159 -63
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +65 -35
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +35 -234
- package/dist/index89.js.map +1 -1
- package/dist/index90.js +231 -31
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +34 -210
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +195 -198
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +159 -241
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +283 -166
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +173 -253
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +253 -121
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +126 -14
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +12 -31
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +32 -5
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
package/dist/index35.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index35.js","sources":["../src/components/Grid.tsx"],"sourcesContent":["import React from 'react'\n\nconst GridContext = React.createContext<{ cols: 24 | 120; gutter: [number, number] }>({ cols: 24, gutter: [0, 0] })\n\nexport interface RowProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n cols?: 24 | 120\n gutter?: number | [number, number]\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline'\n}\n\nexport interface ColProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n span?: number\n offset?: number\n order?: number\n xs?: number\n sm?: number\n md?: number\n lg?: number\n xl?: number\n xxl?: number\n}\n\n// Explicit class mappings - Tailwind v4 supports any grid value natively\nconst COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'col-span-1', 2: 'col-span-2', 3: 'col-span-3', 4: 'col-span-4',\n 5: 'col-span-5', 6: 'col-span-6', 7: 'col-span-7', 8: 'col-span-8',\n 9: 'col-span-9', 10: 'col-span-10', 11: 'col-span-11', 12: 'col-span-12',\n 13: 'col-span-13', 14: 'col-span-14', 15: 'col-span-15', 16: 'col-span-16',\n 17: 'col-span-17', 18: 'col-span-18', 19: 'col-span-19', 20: 'col-span-20',\n 21: 'col-span-21', 22: 'col-span-22', 23: 'col-span-23', 24: 'col-span-24',\n}\n\nconst SM_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'sm:col-span-1', 2: 'sm:col-span-2', 3: 'sm:col-span-3', 4: 'sm:col-span-4',\n 5: 'sm:col-span-5', 6: 'sm:col-span-6', 7: 'sm:col-span-7', 8: 'sm:col-span-8',\n 9: 'sm:col-span-9', 10: 'sm:col-span-10', 11: 'sm:col-span-11', 12: 'sm:col-span-12',\n 13: 'sm:col-span-13', 14: 'sm:col-span-14', 15: 'sm:col-span-15', 16: 'sm:col-span-16',\n 17: 'sm:col-span-17', 18: 'sm:col-span-18', 19: 'sm:col-span-19', 20: 'sm:col-span-20',\n 21: 'sm:col-span-21', 22: 'sm:col-span-22', 23: 'sm:col-span-23', 24: 'sm:col-span-24',\n}\n\nconst MD_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'md:col-span-1', 2: 'md:col-span-2', 3: 'md:col-span-3', 4: 'md:col-span-4',\n 5: 'md:col-span-5', 6: 'md:col-span-6', 7: 'md:col-span-7', 8: 'md:col-span-8',\n 9: 'md:col-span-9', 10: 'md:col-span-10', 11: 'md:col-span-11', 12: 'md:col-span-12',\n 13: 'md:col-span-13', 14: 'md:col-span-14', 15: 'md:col-span-15', 16: 'md:col-span-16',\n 17: 'md:col-span-17', 18: 'md:col-span-18', 19: 'md:col-span-19', 20: 'md:col-span-20',\n 21: 'md:col-span-21', 22: 'md:col-span-22', 23: 'md:col-span-23', 24: 'md:col-span-24',\n}\n\nconst LG_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'lg:col-span-1', 2: 'lg:col-span-2', 3: 'lg:col-span-3', 4: 'lg:col-span-4',\n 5: 'lg:col-span-5', 6: 'lg:col-span-6', 7: 'lg:col-span-7', 8: 'lg:col-span-8',\n 9: 'lg:col-span-9', 10: 'lg:col-span-10', 11: 'lg:col-span-11', 12: 'lg:col-span-12',\n 13: 'lg:col-span-13', 14: 'lg:col-span-14', 15: 'lg:col-span-15', 16: 'lg:col-span-16',\n 17: 'lg:col-span-17', 18: 'lg:col-span-18', 19: 'lg:col-span-19', 20: 'lg:col-span-20',\n 21: 'lg:col-span-21', 22: 'lg:col-span-22', 23: 'lg:col-span-23', 24: 'lg:col-span-24',\n}\n\nconst XL_COL_SPAN_CLASSES: Record<number, string> = {\n 1: 'xl:col-span-1', 2: 'xl:col-span-2', 3: 'xl:col-span-3', 4: 'xl:col-span-4',\n 5: 'xl:col-span-5', 6: 'xl:col-span-6', 7: 'xl:col-span-7', 8: 'xl:col-span-8',\n 9: 'xl:col-span-9', 10: 'xl:col-span-10', 11: 'xl:col-span-11', 12: 'xl:col-span-12',\n 13: 'xl:col-span-13', 14: 'xl:col-span-14', 15: 'xl:col-span-15', 16: 'xl:col-span-16',\n 17: 'xl:col-span-17', 18: 'xl:col-span-18', 19: 'xl:col-span-19', 20: 'xl:col-span-20',\n 21: 'xl:col-span-21', 22: 'xl:col-span-22', 23: 'xl:col-span-23', 24: 'xl:col-span-24',\n}\n\nconst XXL_COL_SPAN_CLASSES: Record<number, string> = {\n 1: '2xl:col-span-1', 2: '2xl:col-span-2', 3: '2xl:col-span-3', 4: '2xl:col-span-4',\n 5: '2xl:col-span-5', 6: '2xl:col-span-6', 7: '2xl:col-span-7', 8: '2xl:col-span-8',\n 9: '2xl:col-span-9', 10: '2xl:col-span-10', 11: '2xl:col-span-11', 12: '2xl:col-span-12',\n 13: '2xl:col-span-13', 14: '2xl:col-span-14', 15: '2xl:col-span-15', 16: '2xl:col-span-16',\n 17: '2xl:col-span-17', 18: '2xl:col-span-18', 19: '2xl:col-span-19', 20: '2xl:col-span-20',\n 21: '2xl:col-span-21', 22: '2xl:col-span-22', 23: '2xl:col-span-23', 24: '2xl:col-span-24',\n}\n\nconst COL_START_CLASSES: Record<number, string> = {\n 1: 'col-start-1', 2: 'col-start-2', 3: 'col-start-3', 4: 'col-start-4',\n 5: 'col-start-5', 6: 'col-start-6', 7: 'col-start-7', 8: 'col-start-8',\n 9: 'col-start-9', 10: 'col-start-10', 11: 'col-start-11', 12: 'col-start-12',\n 13: 'col-start-13', 14: 'col-start-14', 15: 'col-start-15', 16: 'col-start-16',\n 17: 'col-start-17', 18: 'col-start-18', 19: 'col-start-19', 20: 'col-start-20',\n 21: 'col-start-21', 22: 'col-start-22', 23: 'col-start-23', 24: 'col-start-24',\n 25: 'col-start-25',\n}\n\nconst ORDER_CLASSES: Record<number, string> = {\n 1: 'order-1', 2: 'order-2', 3: 'order-3', 4: 'order-4',\n 5: 'order-5', 6: 'order-6', 7: 'order-7', 8: 'order-8',\n 9: 'order-9', 10: 'order-10', 11: 'order-11', 12: 'order-12',\n}\n\n// 120-column grid mappings - using arbitrary value syntax for values > 12\nconst COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'col-span-1', 2: 'col-span-2', 3: 'col-span-3', 4: 'col-span-4', 5: 'col-span-5',\n 6: 'col-span-6', 7: 'col-span-7', 8: 'col-span-8', 9: 'col-span-9', 10: 'col-span-10',\n 11: 'col-span-11', 12: 'col-span-12', 13: 'col-span-13', 14: 'col-span-14', 15: 'col-span-15',\n 16: 'col-span-16', 17: 'col-span-17', 18: 'col-span-18', 19: 'col-span-19', 20: 'col-span-20',\n 21: 'col-span-21', 22: 'col-span-22', 23: 'col-span-23', 24: 'col-span-24', 25: 'col-span-25',\n 26: 'col-span-26', 27: 'col-span-27', 28: 'col-span-28', 29: 'col-span-29', 30: 'col-span-30',\n 31: 'col-span-31', 32: 'col-span-32', 33: 'col-span-33', 34: 'col-span-34', 35: 'col-span-35',\n 36: 'col-span-36', 37: 'col-span-37', 38: 'col-span-38', 39: 'col-span-39', 40: 'col-span-40',\n 41: 'col-span-41', 42: 'col-span-42', 43: 'col-span-43', 44: 'col-span-44', 45: 'col-span-45',\n 46: 'col-span-46', 47: 'col-span-47', 48: 'col-span-48', 49: 'col-span-49', 50: 'col-span-50',\n 51: 'col-span-51', 52: 'col-span-52', 53: 'col-span-53', 54: 'col-span-54', 55: 'col-span-55',\n 56: 'col-span-56', 57: 'col-span-57', 58: 'col-span-58', 59: 'col-span-59', 60: 'col-span-60',\n 61: 'col-span-61', 62: 'col-span-62', 63: 'col-span-63', 64: 'col-span-64', 65: 'col-span-65',\n 66: 'col-span-66', 67: 'col-span-67', 68: 'col-span-68', 69: 'col-span-69', 70: 'col-span-70',\n 71: 'col-span-71', 72: 'col-span-72', 73: 'col-span-73', 74: 'col-span-74', 75: 'col-span-75',\n 76: 'col-span-76', 77: 'col-span-77', 78: 'col-span-78', 79: 'col-span-79', 80: 'col-span-80',\n 81: 'col-span-81', 82: 'col-span-82', 83: 'col-span-83', 84: 'col-span-84', 85: 'col-span-85',\n 86: 'col-span-86', 87: 'col-span-87', 88: 'col-span-88', 89: 'col-span-89', 90: 'col-span-90',\n 91: 'col-span-91', 92: 'col-span-92', 93: 'col-span-93', 94: 'col-span-94', 95: 'col-span-95',\n 96: 'col-span-96', 97: 'col-span-97', 98: 'col-span-98', 99: 'col-span-99', 100: 'col-span-100',\n 101: 'col-span-101', 102: 'col-span-102', 103: 'col-span-103', 104: 'col-span-104', 105: 'col-span-105',\n 106: 'col-span-106', 107: 'col-span-107', 108: 'col-span-108', 109: 'col-span-109', 110: 'col-span-110',\n 111: 'col-span-111', 112: 'col-span-112', 113: 'col-span-113', 114: 'col-span-114', 115: 'col-span-115',\n 116: 'col-span-116', 117: 'col-span-117', 118: 'col-span-118', 119: 'col-span-119', 120: 'col-span-120',\n}\n\nconst SM_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'sm:col-span-1', 2: 'sm:col-span-2', 3: 'sm:col-span-3', 4: 'sm:col-span-4', 5: 'sm:col-span-5',\n 6: 'sm:col-span-6', 7: 'sm:col-span-7', 8: 'sm:col-span-8', 9: 'sm:col-span-9', 10: 'sm:col-span-10',\n 11: 'sm:col-span-11', 12: 'sm:col-span-12', 13: 'sm:col-span-13', 14: 'sm:col-span-14', 15: 'sm:col-span-15',\n 16: 'sm:col-span-16', 17: 'sm:col-span-17', 18: 'sm:col-span-18', 19: 'sm:col-span-19', 20: 'sm:col-span-20',\n 21: 'sm:col-span-21', 22: 'sm:col-span-22', 23: 'sm:col-span-23', 24: 'sm:col-span-24', 25: 'sm:col-span-25',\n 26: 'sm:col-span-26', 27: 'sm:col-span-27', 28: 'sm:col-span-28', 29: 'sm:col-span-29', 30: 'sm:col-span-30',\n 31: 'sm:col-span-31', 32: 'sm:col-span-32', 33: 'sm:col-span-33', 34: 'sm:col-span-34', 35: 'sm:col-span-35',\n 36: 'sm:col-span-36', 37: 'sm:col-span-37', 38: 'sm:col-span-38', 39: 'sm:col-span-39', 40: 'sm:col-span-40',\n 41: 'sm:col-span-41', 42: 'sm:col-span-42', 43: 'sm:col-span-43', 44: 'sm:col-span-44', 45: 'sm:col-span-45',\n 46: 'sm:col-span-46', 47: 'sm:col-span-47', 48: 'sm:col-span-48', 49: 'sm:col-span-49', 50: 'sm:col-span-50',\n 51: 'sm:col-span-51', 52: 'sm:col-span-52', 53: 'sm:col-span-53', 54: 'sm:col-span-54', 55: 'sm:col-span-55',\n 56: 'sm:col-span-56', 57: 'sm:col-span-57', 58: 'sm:col-span-58', 59: 'sm:col-span-59', 60: 'sm:col-span-60',\n 61: 'sm:col-span-61', 62: 'sm:col-span-62', 63: 'sm:col-span-63', 64: 'sm:col-span-64', 65: 'sm:col-span-65',\n 66: 'sm:col-span-66', 67: 'sm:col-span-67', 68: 'sm:col-span-68', 69: 'sm:col-span-69', 70: 'sm:col-span-70',\n 71: 'sm:col-span-71', 72: 'sm:col-span-72', 73: 'sm:col-span-73', 74: 'sm:col-span-74', 75: 'sm:col-span-75',\n 76: 'sm:col-span-76', 77: 'sm:col-span-77', 78: 'sm:col-span-78', 79: 'sm:col-span-79', 80: 'sm:col-span-80',\n 81: 'sm:col-span-81', 82: 'sm:col-span-82', 83: 'sm:col-span-83', 84: 'sm:col-span-84', 85: 'sm:col-span-85',\n 86: 'sm:col-span-86', 87: 'sm:col-span-87', 88: 'sm:col-span-88', 89: 'sm:col-span-89', 90: 'sm:col-span-90',\n 91: 'sm:col-span-91', 92: 'sm:col-span-92', 93: 'sm:col-span-93', 94: 'sm:col-span-94', 95: 'sm:col-span-95',\n 96: 'sm:col-span-96', 97: 'sm:col-span-97', 98: 'sm:col-span-98', 99: 'sm:col-span-99', 100: 'sm:col-span-100',\n 101: 'sm:col-span-101', 102: 'sm:col-span-102', 103: 'sm:col-span-103', 104: 'sm:col-span-104', 105: 'sm:col-span-105',\n 106: 'sm:col-span-106', 107: 'sm:col-span-107', 108: 'sm:col-span-108', 109: 'sm:col-span-109', 110: 'sm:col-span-110',\n 111: 'sm:col-span-111', 112: 'sm:col-span-112', 113: 'sm:col-span-113', 114: 'sm:col-span-114', 115: 'sm:col-span-115',\n 116: 'sm:col-span-116', 117: 'sm:col-span-117', 118: 'sm:col-span-118', 119: 'sm:col-span-119', 120: 'sm:col-span-120',\n}\n\nconst MD_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'md:col-span-1', 2: 'md:col-span-2', 3: 'md:col-span-3', 4: 'md:col-span-4', 5: 'md:col-span-5',\n 6: 'md:col-span-6', 7: 'md:col-span-7', 8: 'md:col-span-8', 9: 'md:col-span-9', 10: 'md:col-span-10',\n 11: 'md:col-span-11', 12: 'md:col-span-12', 13: 'md:col-span-13', 14: 'md:col-span-14', 15: 'md:col-span-15',\n 16: 'md:col-span-16', 17: 'md:col-span-17', 18: 'md:col-span-18', 19: 'md:col-span-19', 20: 'md:col-span-20',\n 21: 'md:col-span-21', 22: 'md:col-span-22', 23: 'md:col-span-23', 24: 'md:col-span-24', 25: 'md:col-span-25',\n 26: 'md:col-span-26', 27: 'md:col-span-27', 28: 'md:col-span-28', 29: 'md:col-span-29', 30: 'md:col-span-30',\n 31: 'md:col-span-31', 32: 'md:col-span-32', 33: 'md:col-span-33', 34: 'md:col-span-34', 35: 'md:col-span-35',\n 36: 'md:col-span-36', 37: 'md:col-span-37', 38: 'md:col-span-38', 39: 'md:col-span-39', 40: 'md:col-span-40',\n 41: 'md:col-span-41', 42: 'md:col-span-42', 43: 'md:col-span-43', 44: 'md:col-span-44', 45: 'md:col-span-45',\n 46: 'md:col-span-46', 47: 'md:col-span-47', 48: 'md:col-span-48', 49: 'md:col-span-49', 50: 'md:col-span-50',\n 51: 'md:col-span-51', 52: 'md:col-span-52', 53: 'md:col-span-53', 54: 'md:col-span-54', 55: 'md:col-span-55',\n 56: 'md:col-span-56', 57: 'md:col-span-57', 58: 'md:col-span-58', 59: 'md:col-span-59', 60: 'md:col-span-60',\n 61: 'md:col-span-61', 62: 'md:col-span-62', 63: 'md:col-span-63', 64: 'md:col-span-64', 65: 'md:col-span-65',\n 66: 'md:col-span-66', 67: 'md:col-span-67', 68: 'md:col-span-68', 69: 'md:col-span-69', 70: 'md:col-span-70',\n 71: 'md:col-span-71', 72: 'md:col-span-72', 73: 'md:col-span-73', 74: 'md:col-span-74', 75: 'md:col-span-75',\n 76: 'md:col-span-76', 77: 'md:col-span-77', 78: 'md:col-span-78', 79: 'md:col-span-79', 80: 'md:col-span-80',\n 81: 'md:col-span-81', 82: 'md:col-span-82', 83: 'md:col-span-83', 84: 'md:col-span-84', 85: 'md:col-span-85',\n 86: 'md:col-span-86', 87: 'md:col-span-87', 88: 'md:col-span-88', 89: 'md:col-span-89', 90: 'md:col-span-90',\n 91: 'md:col-span-91', 92: 'md:col-span-92', 93: 'md:col-span-93', 94: 'md:col-span-94', 95: 'md:col-span-95',\n 96: 'md:col-span-96', 97: 'md:col-span-97', 98: 'md:col-span-98', 99: 'md:col-span-99', 100: 'md:col-span-100',\n 101: 'md:col-span-101', 102: 'md:col-span-102', 103: 'md:col-span-103', 104: 'md:col-span-104', 105: 'md:col-span-105',\n 106: 'md:col-span-106', 107: 'md:col-span-107', 108: 'md:col-span-108', 109: 'md:col-span-109', 110: 'md:col-span-110',\n 111: 'md:col-span-111', 112: 'md:col-span-112', 113: 'md:col-span-113', 114: 'md:col-span-114', 115: 'md:col-span-115',\n 116: 'md:col-span-116', 117: 'md:col-span-117', 118: 'md:col-span-118', 119: 'md:col-span-119', 120: 'md:col-span-120',\n}\n\nconst LG_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'lg:col-span-1', 2: 'lg:col-span-2', 3: 'lg:col-span-3', 4: 'lg:col-span-4', 5: 'lg:col-span-5',\n 6: 'lg:col-span-6', 7: 'lg:col-span-7', 8: 'lg:col-span-8', 9: 'lg:col-span-9', 10: 'lg:col-span-10',\n 11: 'lg:col-span-11', 12: 'lg:col-span-12', 13: 'lg:col-span-13', 14: 'lg:col-span-14', 15: 'lg:col-span-15',\n 16: 'lg:col-span-16', 17: 'lg:col-span-17', 18: 'lg:col-span-18', 19: 'lg:col-span-19', 20: 'lg:col-span-20',\n 21: 'lg:col-span-21', 22: 'lg:col-span-22', 23: 'lg:col-span-23', 24: 'lg:col-span-24', 25: 'lg:col-span-25',\n 26: 'lg:col-span-26', 27: 'lg:col-span-27', 28: 'lg:col-span-28', 29: 'lg:col-span-29', 30: 'lg:col-span-30',\n 31: 'lg:col-span-31', 32: 'lg:col-span-32', 33: 'lg:col-span-33', 34: 'lg:col-span-34', 35: 'lg:col-span-35',\n 36: 'lg:col-span-36', 37: 'lg:col-span-37', 38: 'lg:col-span-38', 39: 'lg:col-span-39', 40: 'lg:col-span-40',\n 41: 'lg:col-span-41', 42: 'lg:col-span-42', 43: 'lg:col-span-43', 44: 'lg:col-span-44', 45: 'lg:col-span-45',\n 46: 'lg:col-span-46', 47: 'lg:col-span-47', 48: 'lg:col-span-48', 49: 'lg:col-span-49', 50: 'lg:col-span-50',\n 51: 'lg:col-span-51', 52: 'lg:col-span-52', 53: 'lg:col-span-53', 54: 'lg:col-span-54', 55: 'lg:col-span-55',\n 56: 'lg:col-span-56', 57: 'lg:col-span-57', 58: 'lg:col-span-58', 59: 'lg:col-span-59', 60: 'lg:col-span-60',\n 61: 'lg:col-span-61', 62: 'lg:col-span-62', 63: 'lg:col-span-63', 64: 'lg:col-span-64', 65: 'lg:col-span-65',\n 66: 'lg:col-span-66', 67: 'lg:col-span-67', 68: 'lg:col-span-68', 69: 'lg:col-span-69', 70: 'lg:col-span-70',\n 71: 'lg:col-span-71', 72: 'lg:col-span-72', 73: 'lg:col-span-73', 74: 'lg:col-span-74', 75: 'lg:col-span-75',\n 76: 'lg:col-span-76', 77: 'lg:col-span-77', 78: 'lg:col-span-78', 79: 'lg:col-span-79', 80: 'lg:col-span-80',\n 81: 'lg:col-span-81', 82: 'lg:col-span-82', 83: 'lg:col-span-83', 84: 'lg:col-span-84', 85: 'lg:col-span-85',\n 86: 'lg:col-span-86', 87: 'lg:col-span-87', 88: 'lg:col-span-88', 89: 'lg:col-span-89', 90: 'lg:col-span-90',\n 91: 'lg:col-span-91', 92: 'lg:col-span-92', 93: 'lg:col-span-93', 94: 'lg:col-span-94', 95: 'lg:col-span-95',\n 96: 'lg:col-span-96', 97: 'lg:col-span-97', 98: 'lg:col-span-98', 99: 'lg:col-span-99', 100: 'lg:col-span-100',\n 101: 'lg:col-span-101', 102: 'lg:col-span-102', 103: 'lg:col-span-103', 104: 'lg:col-span-104', 105: 'lg:col-span-105',\n 106: 'lg:col-span-106', 107: 'lg:col-span-107', 108: 'lg:col-span-108', 109: 'lg:col-span-109', 110: 'lg:col-span-110',\n 111: 'lg:col-span-111', 112: 'lg:col-span-112', 113: 'lg:col-span-113', 114: 'lg:col-span-114', 115: 'lg:col-span-115',\n 116: 'lg:col-span-116', 117: 'lg:col-span-117', 118: 'lg:col-span-118', 119: 'lg:col-span-119', 120: 'lg:col-span-120',\n}\n\nconst XL_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: 'xl:col-span-1', 2: 'xl:col-span-2', 3: 'xl:col-span-3', 4: 'xl:col-span-4', 5: 'xl:col-span-5',\n 6: 'xl:col-span-6', 7: 'xl:col-span-7', 8: 'xl:col-span-8', 9: 'xl:col-span-9', 10: 'xl:col-span-10',\n 11: 'xl:col-span-11', 12: 'xl:col-span-12', 13: 'xl:col-span-13', 14: 'xl:col-span-14', 15: 'xl:col-span-15',\n 16: 'xl:col-span-16', 17: 'xl:col-span-17', 18: 'xl:col-span-18', 19: 'xl:col-span-19', 20: 'xl:col-span-20',\n 21: 'xl:col-span-21', 22: 'xl:col-span-22', 23: 'xl:col-span-23', 24: 'xl:col-span-24', 25: 'xl:col-span-25',\n 26: 'xl:col-span-26', 27: 'xl:col-span-27', 28: 'xl:col-span-28', 29: 'xl:col-span-29', 30: 'xl:col-span-30',\n 31: 'xl:col-span-31', 32: 'xl:col-span-32', 33: 'xl:col-span-33', 34: 'xl:col-span-34', 35: 'xl:col-span-35',\n 36: 'xl:col-span-36', 37: 'xl:col-span-37', 38: 'xl:col-span-38', 39: 'xl:col-span-39', 40: 'xl:col-span-40',\n 41: 'xl:col-span-41', 42: 'xl:col-span-42', 43: 'xl:col-span-43', 44: 'xl:col-span-44', 45: 'xl:col-span-45',\n 46: 'xl:col-span-46', 47: 'xl:col-span-47', 48: 'xl:col-span-48', 49: 'xl:col-span-49', 50: 'xl:col-span-50',\n 51: 'xl:col-span-51', 52: 'xl:col-span-52', 53: 'xl:col-span-53', 54: 'xl:col-span-54', 55: 'xl:col-span-55',\n 56: 'xl:col-span-56', 57: 'xl:col-span-57', 58: 'xl:col-span-58', 59: 'xl:col-span-59', 60: 'xl:col-span-60',\n 61: 'xl:col-span-61', 62: 'xl:col-span-62', 63: 'xl:col-span-63', 64: 'xl:col-span-64', 65: 'xl:col-span-65',\n 66: 'xl:col-span-66', 67: 'xl:col-span-67', 68: 'xl:col-span-68', 69: 'xl:col-span-69', 70: 'xl:col-span-70',\n 71: 'xl:col-span-71', 72: 'xl:col-span-72', 73: 'xl:col-span-73', 74: 'xl:col-span-74', 75: 'xl:col-span-75',\n 76: 'xl:col-span-76', 77: 'xl:col-span-77', 78: 'xl:col-span-78', 79: 'xl:col-span-79', 80: 'xl:col-span-80',\n 81: 'xl:col-span-81', 82: 'xl:col-span-82', 83: 'xl:col-span-83', 84: 'xl:col-span-84', 85: 'xl:col-span-85',\n 86: 'xl:col-span-86', 87: 'xl:col-span-87', 88: 'xl:col-span-88', 89: 'xl:col-span-89', 90: 'xl:col-span-90',\n 91: 'xl:col-span-91', 92: 'xl:col-span-92', 93: 'xl:col-span-93', 94: 'xl:col-span-94', 95: 'xl:col-span-95',\n 96: 'xl:col-span-96', 97: 'xl:col-span-97', 98: 'xl:col-span-98', 99: 'xl:col-span-99', 100: 'xl:col-span-100',\n 101: 'xl:col-span-101', 102: 'xl:col-span-102', 103: 'xl:col-span-103', 104: 'xl:col-span-104', 105: 'xl:col-span-105',\n 106: 'xl:col-span-106', 107: 'xl:col-span-107', 108: 'xl:col-span-108', 109: 'xl:col-span-109', 110: 'xl:col-span-110',\n 111: 'xl:col-span-111', 112: 'xl:col-span-112', 113: 'xl:col-span-113', 114: 'xl:col-span-114', 115: 'xl:col-span-115',\n 116: 'xl:col-span-116', 117: 'xl:col-span-117', 118: 'xl:col-span-118', 119: 'xl:col-span-119', 120: 'xl:col-span-120',\n}\n\nconst XXL_COL_SPAN_120_CLASSES: Record<number, string> = {\n 1: '2xl:col-span-1', 2: '2xl:col-span-2', 3: '2xl:col-span-3', 4: '2xl:col-span-4', 5: '2xl:col-span-5',\n 6: '2xl:col-span-6', 7: '2xl:col-span-7', 8: '2xl:col-span-8', 9: '2xl:col-span-9', 10: '2xl:col-span-10',\n 11: '2xl:col-span-11', 12: '2xl:col-span-12', 13: '2xl:col-span-13', 14: '2xl:col-span-14', 15: '2xl:col-span-15',\n 16: '2xl:col-span-16', 17: '2xl:col-span-17', 18: '2xl:col-span-18', 19: '2xl:col-span-19', 20: '2xl:col-span-20',\n 21: '2xl:col-span-21', 22: '2xl:col-span-22', 23: '2xl:col-span-23', 24: '2xl:col-span-24', 25: '2xl:col-span-25',\n 26: '2xl:col-span-26', 27: '2xl:col-span-27', 28: '2xl:col-span-28', 29: '2xl:col-span-29', 30: '2xl:col-span-30',\n 31: '2xl:col-span-31', 32: '2xl:col-span-32', 33: '2xl:col-span-33', 34: '2xl:col-span-34', 35: '2xl:col-span-35',\n 36: '2xl:col-span-36', 37: '2xl:col-span-37', 38: '2xl:col-span-38', 39: '2xl:col-span-39', 40: '2xl:col-span-40',\n 41: '2xl:col-span-41', 42: '2xl:col-span-42', 43: '2xl:col-span-43', 44: '2xl:col-span-44', 45: '2xl:col-span-45',\n 46: '2xl:col-span-46', 47: '2xl:col-span-47', 48: '2xl:col-span-48', 49: '2xl:col-span-49', 50: '2xl:col-span-50',\n 51: '2xl:col-span-51', 52: '2xl:col-span-52', 53: '2xl:col-span-53', 54: '2xl:col-span-54', 55: '2xl:col-span-55',\n 56: '2xl:col-span-56', 57: '2xl:col-span-57', 58: '2xl:col-span-58', 59: '2xl:col-span-59', 60: '2xl:col-span-60',\n 61: '2xl:col-span-61', 62: '2xl:col-span-62', 63: '2xl:col-span-63', 64: '2xl:col-span-64', 65: '2xl:col-span-65',\n 66: '2xl:col-span-66', 67: '2xl:col-span-67', 68: '2xl:col-span-68', 69: '2xl:col-span-69', 70: '2xl:col-span-70',\n 71: '2xl:col-span-71', 72: '2xl:col-span-72', 73: '2xl:col-span-73', 74: '2xl:col-span-74', 75: '2xl:col-span-75',\n 76: '2xl:col-span-76', 77: '2xl:col-span-77', 78: '2xl:col-span-78', 79: '2xl:col-span-79', 80: '2xl:col-span-80',\n 81: '2xl:col-span-81', 82: '2xl:col-span-82', 83: '2xl:col-span-83', 84: '2xl:col-span-84', 85: '2xl:col-span-85',\n 86: '2xl:col-span-86', 87: '2xl:col-span-87', 88: '2xl:col-span-88', 89: '2xl:col-span-89', 90: '2xl:col-span-90',\n 91: '2xl:col-span-91', 92: '2xl:col-span-92', 93: '2xl:col-span-93', 94: '2xl:col-span-94', 95: '2xl:col-span-95',\n 96: '2xl:col-span-96', 97: '2xl:col-span-97', 98: '2xl:col-span-98', 99: '2xl:col-span-99', 100: '2xl:col-span-100',\n 101: '2xl:col-span-101', 102: '2xl:col-span-102', 103: '2xl:col-span-103', 104: '2xl:col-span-104', 105: '2xl:col-span-105',\n 106: '2xl:col-span-106', 107: '2xl:col-span-107', 108: '2xl:col-span-108', 109: '2xl:col-span-109', 110: '2xl:col-span-110',\n 111: '2xl:col-span-111', 112: '2xl:col-span-112', 113: '2xl:col-span-113', 114: '2xl:col-span-114', 115: '2xl:col-span-115',\n 116: '2xl:col-span-116', 117: '2xl:col-span-117', 118: '2xl:col-span-118', 119: '2xl:col-span-119', 120: '2xl:col-span-120',\n}\n\nconst COL_START_120_CLASSES: Record<number, string> = {\n 1: 'col-start-1', 2: 'col-start-2', 3: 'col-start-3', 4: 'col-start-4', 5: 'col-start-5',\n 6: 'col-start-6', 7: 'col-start-7', 8: 'col-start-8', 9: 'col-start-9', 10: 'col-start-10',\n 11: 'col-start-11', 12: 'col-start-12', 13: 'col-start-13', 14: 'col-start-14', 15: 'col-start-15',\n 16: 'col-start-16', 17: 'col-start-17', 18: 'col-start-18', 19: 'col-start-19', 20: 'col-start-20',\n 21: 'col-start-21', 22: 'col-start-22', 23: 'col-start-23', 24: 'col-start-24', 25: 'col-start-25',\n 26: 'col-start-26', 27: 'col-start-27', 28: 'col-start-28', 29: 'col-start-29', 30: 'col-start-30',\n 31: 'col-start-31', 32: 'col-start-32', 33: 'col-start-33', 34: 'col-start-34', 35: 'col-start-35',\n 36: 'col-start-36', 37: 'col-start-37', 38: 'col-start-38', 39: 'col-start-39', 40: 'col-start-40',\n 41: 'col-start-41', 42: 'col-start-42', 43: 'col-start-43', 44: 'col-start-44', 45: 'col-start-45',\n 46: 'col-start-46', 47: 'col-start-47', 48: 'col-start-48', 49: 'col-start-49', 50: 'col-start-50',\n 51: 'col-start-51', 52: 'col-start-52', 53: 'col-start-53', 54: 'col-start-54', 55: 'col-start-55',\n 56: 'col-start-56', 57: 'col-start-57', 58: 'col-start-58', 59: 'col-start-59', 60: 'col-start-60',\n 61: 'col-start-61', 62: 'col-start-62', 63: 'col-start-63', 64: 'col-start-64', 65: 'col-start-65',\n 66: 'col-start-66', 67: 'col-start-67', 68: 'col-start-68', 69: 'col-start-69', 70: 'col-start-70',\n 71: 'col-start-71', 72: 'col-start-72', 73: 'col-start-73', 74: 'col-start-74', 75: 'col-start-75',\n 76: 'col-start-76', 77: 'col-start-77', 78: 'col-start-78', 79: 'col-start-79', 80: 'col-start-80',\n 81: 'col-start-81', 82: 'col-start-82', 83: 'col-start-83', 84: 'col-start-84', 85: 'col-start-85',\n 86: 'col-start-86', 87: 'col-start-87', 88: 'col-start-88', 89: 'col-start-89', 90: 'col-start-90',\n 91: 'col-start-91', 92: 'col-start-92', 93: 'col-start-93', 94: 'col-start-94', 95: 'col-start-95',\n 96: 'col-start-96', 97: 'col-start-97', 98: 'col-start-98', 99: 'col-start-99', 100: 'col-start-100',\n 101: 'col-start-101', 102: 'col-start-102', 103: 'col-start-103', 104: 'col-start-104', 105: 'col-start-105',\n 106: 'col-start-106', 107: 'col-start-107', 108: 'col-start-108', 109: 'col-start-109', 110: 'col-start-110',\n 111: 'col-start-111', 112: 'col-start-112', 113: 'col-start-113', 114: 'col-start-114', 115: 'col-start-115',\n 116: 'col-start-116', 117: 'col-start-117', 118: 'col-start-118', 119: 'col-start-119', 120: 'col-start-120',\n 121: 'col-start-121',\n}\n\nexport function Row({ children, cols = 24, gutter = 16, justify, align, className = '', style: userStyle, ...rest }: RowProps) {\n const [gutterX, gutterY] = Array.isArray(gutter) ? gutter : [gutter, 0]\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-items-start',\n end: 'justify-items-end',\n center: 'justify-items-center',\n between: 'justify-items-between',\n around: 'justify-items-around',\n evenly: 'justify-items-evenly',\n }\n\n const alignClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n }\n\n // Grid column class mapping - literal strings for Tailwind\n const GRID_COLS_CLASSES: Record<24 | 120, string> = {\n 24: 'grid-cols-[repeat(24,minmax(0,1fr))]',\n 120: 'grid-cols-[repeat(120,minmax(0,1fr))]',\n }\n\n const classes = [\n 'grid',\n GRID_COLS_CLASSES[cols],\n 'w-full',\n justify && justifyClasses[justify],\n align && alignClasses[align],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Use negative margin to compensate for column padding (classic grid gutter technique)\n const style: React.CSSProperties = {\n ...(gutterX && { marginLeft: `-${gutterX / 2}px`, marginRight: `-${gutterX / 2}px` }),\n ...(gutterY && { rowGap: `${gutterY}px` }),\n ...userStyle,\n }\n\n return (\n <GridContext.Provider value={{ cols, gutter: [gutterX, gutterY] }}>\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n </GridContext.Provider>\n )\n}\n\nexport function Col({ children, span, offset, order, xs, sm, md, lg, xl, xxl, className = '', style: userStyle, ...rest }: ColProps) {\n const { cols, gutter } = React.useContext(GridContext)\n const [gutterX] = gutter\n const classes: string[] = []\n\n // Select mapping objects based on column count\n const colSpanClasses = cols === 120 ? COL_SPAN_120_CLASSES : COL_SPAN_CLASSES\n const smColSpanClasses = cols === 120 ? SM_COL_SPAN_120_CLASSES : SM_COL_SPAN_CLASSES\n const mdColSpanClasses = cols === 120 ? MD_COL_SPAN_120_CLASSES : MD_COL_SPAN_CLASSES\n const lgColSpanClasses = cols === 120 ? LG_COL_SPAN_120_CLASSES : LG_COL_SPAN_CLASSES\n const xlColSpanClasses = cols === 120 ? XL_COL_SPAN_120_CLASSES : XL_COL_SPAN_CLASSES\n const xxlColSpanClasses = cols === 120 ? XXL_COL_SPAN_120_CLASSES : XXL_COL_SPAN_CLASSES\n const colStartClasses = cols === 120 ? COL_START_120_CLASSES : COL_START_CLASSES\n\n // Base span or xs (mobile-first), default to full width if nothing specified\n const baseSpan = span ?? xs ?? cols\n if (baseSpan && colSpanClasses[baseSpan]) {\n classes.push(colSpanClasses[baseSpan])\n }\n\n // Responsive spans\n if (sm && smColSpanClasses[sm]) classes.push(smColSpanClasses[sm])\n if (md && mdColSpanClasses[md]) classes.push(mdColSpanClasses[md])\n if (lg && lgColSpanClasses[lg]) classes.push(lgColSpanClasses[lg])\n if (xl && xlColSpanClasses[xl]) classes.push(xlColSpanClasses[xl])\n if (xxl && xxlColSpanClasses[xxl]) classes.push(xxlColSpanClasses[xxl])\n\n // Offset (uses col-start)\n if (offset && colStartClasses[offset + 1]) {\n classes.push(colStartClasses[offset + 1])\n }\n\n // Order\n if (order && ORDER_CLASSES[order]) {\n classes.push(ORDER_CLASSES[order])\n }\n\n if (className) classes.push(className)\n\n // Apply horizontal padding for gutter spacing\n const style: React.CSSProperties = {\n ...(gutterX && { paddingLeft: `${gutterX / 2}px`, paddingRight: `${gutterX / 2}px` }),\n ...userStyle,\n }\n\n return <div className={classes.join(' ')} style={style} {...rest}>{children}</div>\n}\n\nexport const Grid = {\n Row,\n Col,\n}\n"],"names":["GridContext","React","COL_SPAN_CLASSES","SM_COL_SPAN_CLASSES","MD_COL_SPAN_CLASSES","LG_COL_SPAN_CLASSES","XL_COL_SPAN_CLASSES","XXL_COL_SPAN_CLASSES","COL_START_CLASSES","ORDER_CLASSES","COL_SPAN_120_CLASSES","SM_COL_SPAN_120_CLASSES","MD_COL_SPAN_120_CLASSES","LG_COL_SPAN_120_CLASSES","XL_COL_SPAN_120_CLASSES","XXL_COL_SPAN_120_CLASSES","COL_START_120_CLASSES","Row","children","cols","gutter","justify","align","className","userStyle","rest","gutterX","gutterY","justifyClasses","alignClasses","classes","style","jsx","Col","span","offset","order","xs","sm","md","lg","xl","xxl","colSpanClasses","smColSpanClasses","mdColSpanClasses","lgColSpanClasses","xlColSpanClasses","xxlColSpanClasses","colStartClasses","baseSpan","Grid"],"mappings":"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,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAChF,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,IAAI;AAAA,EAAe,KAAK;AAAA,EACjF,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EACzF,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EAAgB,KAAK;AAAA,EACzF,KAAK;AAAA,EAAgB,KAAK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IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,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AiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EACnF,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,GAAG;AAAA,EAAiB,IAAI;AAAA,EACpF,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAC5F,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,IAAI;AAAA,EAAkB,KAAK;AAAA,EAC7F,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EACrG,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EACrG,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EACrG,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAmB,KAAK;AACvG,GAEMC,IAAmD;AAAA,EACvD,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EACvF,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,GAAG;AAAA,EAAkB,IAAI;AAAA,EACxF,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAChG,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,IAAI;AAAA,EAAmB,KAAK;AAAA,EACjG,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAoB,KAAK;AAAA,EACzG,KAAK;AAAA,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"}
|
|
1
|
+
{"version":3,"file":"index35.js","sources":["../src/components/Form.tsx"],"sourcesContent":["import React, { createContext, useContext, cloneElement, isValidElement, useId, useEffect, useRef } from 'react'\nimport { useForm, UseFormReturn, FieldValues, SubmitHandler, UseFormProps, Controller, useFieldArray, FieldArrayPath, FieldArray, useWatch } from 'react-hook-form'\n\ninterface FormContextValue {\n form: UseFormReturn<any>\n layout?: 'vertical' | 'horizontal' | 'inline'\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n labelWidth?: number\n listName?: string\n disabled?: boolean\n}\n\nconst FormContext = createContext<FormContextValue | undefined>(undefined)\n\n// Built-in type validators\nconst TYPE_VALIDATORS = {\n email: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n message: 'Please enter a valid email address',\n },\n url: {\n value: /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/,\n message: 'Please enter a valid URL',\n },\n number: {\n value: /^-?\\d+(\\.\\d+)?$/,\n message: 'Please enter a valid number',\n },\n}\n\nexport interface FormProps<TFieldValues extends FieldValues = FieldValues>\n extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onSubmit'> {\n form?: UseFormReturn<TFieldValues>\n onFinish?: SubmitHandler<TFieldValues>\n /** Called when form validation fails */\n onFinishFailed?: (errorInfo: { values: TFieldValues; errorFields: Array<{ name: string; errors: string[] }> }) => void\n initialValues?: UseFormProps<TFieldValues>['defaultValues']\n layout?: 'vertical' | 'horizontal' | 'inline'\n /** Label width in pixels for horizontal layout (default: 80) */\n labelWidth?: number\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n /** Disable all form fields */\n disabled?: boolean\n children: React.ReactNode\n}\n\nexport interface FormRule {\n required?: boolean | string\n type?: 'email' | 'url' | 'number'\n min?: number | { value: number; message: string }\n max?: number | { value: number; message: string }\n pattern?: RegExp | { value: RegExp; message: string }\n message?: string\n validate?: (value: any) => boolean | string | Promise<boolean | string>\n}\n\nexport type ValidateTrigger = 'onChange' | 'onBlur' | 'onSubmit' | ('onChange' | 'onBlur' | 'onSubmit')[]\n\nexport interface FormItemProps {\n name?: string | string[]\n label?: string\n /** Floating label text (alternative to label, uses DaisyUI floating-label) */\n floatingLabel?: string\n help?: string\n required?: boolean\n rules?: FormRule | FormRule[]\n valuePropName?: string\n inline?: boolean\n className?: string\n children: React.ReactElement\n /** Tooltip text to show next to label */\n tooltip?: string\n /** Additional content below the form control */\n extra?: React.ReactNode\n /** Show validation feedback icon */\n hasFeedback?: boolean\n /** Field names that this field depends on for validation */\n dependencies?: string[]\n /** When to trigger validation */\n validateTrigger?: ValidateTrigger\n /** Initial value for this field (overrides Form's initialValues) */\n initialValue?: any\n /** Hide this field (still validates and submits) */\n hidden?: boolean\n /** Text/element before input (outside, using DaisyUI label) */\n addonBefore?: React.ReactNode\n /** Text/element after input (outside, using DaisyUI label) */\n addonAfter?: React.ReactNode\n}\n\nexport interface FormListProps<TFieldValues extends FieldValues = FieldValues> {\n name: FieldArrayPath<TFieldValues>\n children: (\n fields: FieldArray<TFieldValues>[],\n operations: {\n add: (value?: any) => void\n remove: (index: number) => void\n move: (from: number, to: number) => void\n }\n ) => React.ReactNode\n}\n\nfunction useFormContext() {\n const context = useContext(FormContext)\n if (!context) {\n throw new Error('Form compound components must be used within Form')\n }\n return context\n}\n\nfunction FormRoot<TFieldValues extends FieldValues = FieldValues>({\n form: externalForm,\n onFinish,\n onFinishFailed,\n initialValues,\n layout = 'vertical',\n labelWidth = 60,\n size,\n disabled = false,\n children,\n className = '',\n noValidate = true,\n ...props\n}: FormProps<TFieldValues>) {\n const internalForm = useForm<TFieldValues>({\n defaultValues: initialValues,\n })\n\n const form = externalForm || internalForm\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n\n // Trigger validation\n const isValid = await form.trigger()\n\n if (isValid) {\n if (onFinish) {\n onFinish(form.getValues())\n }\n } else {\n if (onFinishFailed) {\n const errors = form.formState.errors\n const errorFields: Array<{ name: string; errors: string[] }> = []\n\n // Flatten errors into errorFields array\n const flattenErrors = (obj: any, prefix = '') => {\n for (const key in obj) {\n const fullKey = prefix ? `${prefix}.${key}` : key\n const value = obj[key]\n if (value?.message) {\n errorFields.push({ name: fullKey, errors: [value.message as string] })\n } else if (typeof value === 'object' && value !== null) {\n flattenErrors(value, fullKey)\n }\n }\n }\n flattenErrors(errors)\n\n onFinishFailed({ values: form.getValues(), errorFields })\n }\n }\n }\n\n const handleReset = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n form.reset(initialValues as any)\n }\n\n return (\n <FormContext.Provider value={{ form, layout, labelWidth, size, disabled }}>\n <form onSubmit={handleSubmit} onReset={handleReset} className={className} noValidate={noValidate} {...props}>\n {children}\n </form>\n </FormContext.Provider>\n )\n}\n\nfunction FormItem({\n name,\n label,\n floatingLabel,\n help,\n required = false,\n rules,\n valuePropName = 'value',\n inline = false,\n className = '',\n children,\n tooltip,\n extra,\n hasFeedback = false,\n dependencies,\n validateTrigger = 'onChange',\n initialValue,\n hidden = false,\n addonBefore,\n addonAfter,\n}: FormItemProps) {\n const { form, size, listName, layout, labelWidth, disabled: formDisabled } = useFormContext()\n const inputId = useId()\n const errorId = useId()\n\n if (!name) {\n // Render without form control if no name provided\n return <div className={`form-control ${inline ? 'w-auto' : 'w-full'} ${className}`} style={hidden ? { display: 'none' } : undefined}>{children}</div>\n }\n\n // Handle nested field names (for Form.List)\n let fieldName: string\n if (Array.isArray(name)) {\n // If we're inside a Form.List, prepend the list name\n const fullPath = listName ? [listName, ...name] : name\n fieldName = fullPath.join('.')\n } else {\n fieldName = name\n }\n\n // Set initial value if provided\n useEffect(() => {\n if (initialValue !== undefined) {\n const currentValue = form.getValues(fieldName as any)\n if (currentValue === undefined) {\n form.setValue(fieldName as any, initialValue)\n }\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n // Watch dependencies and re-validate when they change\n const watchedDeps = useWatch({\n control: form.control,\n name: dependencies as any,\n disabled: !dependencies || dependencies.length === 0,\n })\n\n // Use refs to avoid infinite loops\n const formRef = useRef(form)\n formRef.current = form\n const prevDepsRef = useRef<string | undefined>(undefined)\n\n useEffect(() => {\n // Skip if no dependencies\n if (!dependencies || dependencies.length === 0) return\n\n // Skip initial render\n if (prevDepsRef.current === undefined) {\n prevDepsRef.current = JSON.stringify(watchedDeps)\n return\n }\n\n // Only trigger if dependency values actually changed\n const currentDeps = JSON.stringify(watchedDeps)\n if (prevDepsRef.current !== currentDeps) {\n prevDepsRef.current = currentDeps\n formRef.current.trigger(fieldName as any)\n }\n }, [watchedDeps, dependencies, fieldName])\n\n // Get error by traversing the error object path\n const getErrorByPath = (path: string) => {\n const keys = path.split('.')\n let error: any = form.formState.errors\n for (const key of keys) {\n if (!error) break\n error = error[key]\n }\n return error\n }\n\n const error = getErrorByPath(fieldName)\n const errorMessage = error?.message as string | undefined\n\n // Normalize rules to array\n const rulesArray: FormRule[] = rules\n ? Array.isArray(rules) ? rules : [rules]\n : []\n\n // Build validation rules\n const validationRules: any = {}\n const patternValidators: Array<{ pattern: RegExp; message: string }> = []\n const customValidators: Array<(value: any) => boolean | string | Promise<boolean | string>> = []\n\n // Handle top-level required prop\n if (required) {\n validationRules.required = 'This field is required'\n }\n\n // Process each rule\n for (const rule of rulesArray) {\n // Required\n if (rule.required) {\n validationRules.required = typeof rule.required === 'string'\n ? rule.required\n : rule.message || 'This field is required'\n }\n\n // Type validator\n if (rule.type && TYPE_VALIDATORS[rule.type]) {\n patternValidators.push({\n pattern: TYPE_VALIDATORS[rule.type].value,\n message: rule.message || TYPE_VALIDATORS[rule.type].message,\n })\n }\n\n // Min length\n if (rule.min !== undefined) {\n const minValue = typeof rule.min === 'object' ? rule.min.value : rule.min\n const minMessage = typeof rule.min === 'object'\n ? rule.min.message\n : rule.message || `Minimum length is ${minValue} characters`\n validationRules.minLength = { value: minValue, message: minMessage }\n }\n\n // Max length\n if (rule.max !== undefined) {\n const maxValue = typeof rule.max === 'object' ? rule.max.value : rule.max\n const maxMessage = typeof rule.max === 'object'\n ? rule.max.message\n : rule.message || `Maximum length is ${maxValue} characters`\n validationRules.maxLength = { value: maxValue, message: maxMessage }\n }\n\n // Pattern - collect all patterns\n if (rule.pattern) {\n const patternValue = rule.pattern instanceof RegExp ? rule.pattern : rule.pattern.value\n const patternMessage = rule.pattern instanceof RegExp\n ? rule.message || 'Invalid format'\n : rule.pattern.message\n patternValidators.push({ pattern: patternValue, message: patternMessage })\n }\n\n // Custom validator\n if (rule.validate) {\n customValidators.push(rule.validate)\n }\n }\n\n // Combine all pattern and custom validators into a single validate function\n if (patternValidators.length > 0 || customValidators.length > 0) {\n validationRules.validate = async (value: any) => {\n // Skip validation if empty (required rule handles that)\n if (!value && !validationRules.required) return true\n\n // Check all patterns\n for (const { pattern, message } of patternValidators) {\n if (value && !pattern.test(value)) {\n return message\n }\n }\n\n // Run all custom validators\n for (const validator of customValidators) {\n const result = await validator(value)\n if (result !== true) {\n return result\n }\n }\n\n return true\n }\n }\n\n // Normalize validateTrigger to array\n const triggers = Array.isArray(validateTrigger) ? validateTrigger : [validateTrigger]\n const shouldValidateOnChange = triggers.includes('onChange')\n const shouldValidateOnBlur = triggers.includes('onBlur')\n\n // Feedback icons\n const FeedbackIcon = ({ hasError, isValidating }: { hasError: boolean; isValidating: boolean }) => {\n if (isValidating) {\n return (\n <span className=\"loading loading-spinner loading-xs text-base-content/50\" />\n )\n }\n if (hasError) {\n return (\n <svg className=\"w-4 h-4 text-error\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n )\n }\n return (\n <svg className=\"w-4 h-4 text-success\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n )\n }\n\n // Tooltip icon\n const TooltipIcon = () => (\n <div className=\"tooltip tooltip-top ml-1\" data-tip={tooltip}>\n <svg className=\"w-4 h-4 text-base-content/50 cursor-help\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n )\n\n return (\n <Controller\n name={fieldName}\n control={form.control}\n rules={validationRules}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur, ref } = field\n const isValidating = fieldState.isTouched && form.formState.isValidating\n\n // Clone the child element and inject form control props\n const childProps: any = {\n id: inputId,\n ref,\n 'aria-invalid': error ? true : undefined,\n 'aria-describedby': error ? errorId : undefined,\n }\n\n // Handle onBlur based on validateTrigger\n childProps.onBlur = () => {\n onBlur()\n if (shouldValidateOnBlur) {\n form.trigger(fieldName as any)\n }\n }\n\n // Handle different value prop names (e.g., 'checked' for checkboxes)\n if (valuePropName === 'checked') {\n childProps.checked = value\n childProps.onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.checked)\n if (shouldValidateOnChange) {\n form.trigger(fieldName as any)\n }\n }\n } else {\n childProps.value = value || ''\n childProps.onChange = (eventOrValue: any) => {\n // Handle components that pass value directly (e.g., Range, Rating)\n // vs components that pass event object (e.g., Input, Select)\n if (eventOrValue && eventOrValue.target !== undefined) {\n onChange(eventOrValue.target.value)\n } else {\n onChange(eventOrValue)\n }\n if (shouldValidateOnChange) {\n form.trigger(fieldName as any)\n }\n }\n }\n\n // Apply size if specified at form level\n if (size && isValidElement(children)) {\n const existingProps = children.props as any\n if (!existingProps.size) {\n childProps.size = size\n }\n }\n\n // Apply error styling and accessibility\n if (error) {\n childProps.color = 'error'\n childProps['aria-invalid'] = true\n }\n\n // Apply form-level disabled state\n if (formDisabled) {\n childProps.disabled = true\n }\n\n // When wrapped with addons, the child input should be unstyled (the wrapper has the styling)\n const hasAddons = addonBefore || addonAfter\n if (hasAddons) {\n childProps.unstyled = true\n }\n\n const enhancedChild = isValidElement(children)\n ? cloneElement(children as React.ReactElement<any>, childProps)\n : children\n\n const isHorizontal = layout === 'horizontal'\n const isInline = layout === 'inline'\n\n // Size class for floating label\n const floatingSizeClasses: Record<string, string> = {\n xs: 'input-xs',\n sm: 'input-sm',\n md: 'input-md',\n lg: 'input-lg',\n xl: 'input-xl',\n }\n\n // Build the input element with optional floating label wrapper\n const renderInputElement = () => {\n const inputWithFeedback = (\n <div className={`${isHorizontal ? 'flex-1' : ''} ${hasFeedback ? 'relative' : ''}`}>\n {enhancedChild}\n {hasFeedback && fieldState.isTouched && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none\">\n <FeedbackIcon hasError={!!error} isValidating={isValidating} />\n </span>\n )}\n </div>\n )\n\n // Floating label variant\n if (floatingLabel) {\n const floatingClasses = [\n 'floating-label',\n size && floatingSizeClasses[size],\n ].filter(Boolean).join(' ')\n\n return (\n <label className={floatingClasses}>\n {enhancedChild}\n <span>{floatingLabel}{required && <span className=\"text-error ml-1\">*</span>}</span>\n </label>\n )\n }\n\n return inputWithFeedback\n }\n\n // Wrap with external addons if specified using DaisyUI input wrapper pattern\n const renderWithAddons = (input: React.ReactNode) => {\n if (!addonBefore && !addonAfter) return input\n\n const addonClasses = [\n 'input',\n 'input-bordered',\n 'flex',\n 'items-center',\n 'gap-2',\n size && floatingSizeClasses[size],\n ].filter(Boolean).join(' ')\n\n return (\n <label className={addonClasses}>\n {addonBefore && <span className=\"text-base-content/70\">{addonBefore}</span>}\n {input}\n {addonAfter && <span className=\"text-base-content/70\">{addonAfter}</span>}\n </label>\n )\n }\n\n return (\n <div className={`form-control ${inline ? 'w-auto' : 'w-full'} ${isHorizontal ? 'mb-4' : ''} ${isInline ? 'inline-flex mr-4' : ''} ${className}`} style={hidden ? { display: 'none' } : undefined}>\n <div className={isHorizontal ? 'flex items-center gap-4' : ''}>\n {label && !floatingLabel && (\n <label\n htmlFor={inputId}\n className={`block text-sm font-medium ${isHorizontal ? 'flex-shrink-0 text-right' : ''} ${!isHorizontal && !isInline ? 'mb-1' : ''}`}\n style={isHorizontal ? { width: labelWidth } : undefined}\n >\n <span className=\"flex items-center\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n {tooltip && <TooltipIcon />}\n </span>\n </label>\n )}\n {renderWithAddons(renderInputElement())}\n </div>\n {!isHorizontal && !inline && (\n <p id={errorId} className={`validator-hint ${errorMessage ? '!visible text-error' : ''} min-h-[1.25rem]`} role={errorMessage ? 'alert' : undefined}>\n {errorMessage || (help && <span className=\"text-base-content/70\">{help}</span>) || '\\u00A0'}\n </p>\n )}\n {isHorizontal && (errorMessage || help) && (\n <p id={errorId} className={`validator-hint ${errorMessage ? '!visible text-error' : ''} min-h-[1.25rem]`} role={errorMessage ? 'alert' : undefined}>\n {errorMessage || (help && <span className=\"text-base-content/70\">{help}</span>)}\n </p>\n )}\n {extra && (\n <div className=\"text-sm text-base-content/60 mt-1\">{extra}</div>\n )}\n </div>\n )\n }}\n />\n )\n}\n\nfunction FormList<TFieldValues extends FieldValues = FieldValues>({\n name,\n children,\n}: FormListProps<TFieldValues>) {\n const { form, layout, size, disabled } = useFormContext()\n\n const { fields, append, remove, move } = useFieldArray({\n control: form.control,\n name,\n })\n\n // Add name (index) to each field for proper path construction\n const fieldsWithName = fields.map((field, index) => ({\n ...field,\n name: index,\n }))\n\n return (\n <FormContext.Provider value={{ form, layout, size, listName: name as string, disabled }}>\n {children(fieldsWithName as any, {\n add: append,\n remove,\n move,\n })}\n </FormContext.Provider>\n )\n}\n\n// Enhanced hook to expose full form API\nexport function useFormInstance<TFieldValues extends FieldValues = FieldValues>() {\n const formInstance = useForm<TFieldValues>()\n\n // Add convenience methods to the instance\n const enhancedInstance = formInstance as typeof formInstance & {\n setFieldValue: typeof formInstance.setValue\n getFieldValue: (name: any) => any\n getFieldsValue: typeof formInstance.getValues\n setFieldsValue: (values: any) => void\n validateFields: typeof formInstance.trigger\n resetFields: typeof formInstance.reset\n isFieldTouched: (name: string) => boolean\n getFieldError: (name: string) => string | undefined\n }\n\n // Add the alias methods\n enhancedInstance.setFieldValue = formInstance.setValue\n enhancedInstance.getFieldValue = (name: any) => formInstance.getValues(name)\n enhancedInstance.getFieldsValue = formInstance.getValues\n enhancedInstance.setFieldsValue = (values: any) => {\n Object.keys(values).forEach((key) => {\n formInstance.setValue(key as any, values[key])\n })\n }\n enhancedInstance.validateFields = formInstance.trigger\n enhancedInstance.resetFields = formInstance.reset\n enhancedInstance.isFieldTouched = (name: string) => {\n const touched = formInstance.formState.touchedFields as any\n return !!touched[name]\n }\n enhancedInstance.getFieldError = (name: string) => {\n const errors = formInstance.formState.errors as any\n return errors[name]?.message as string | undefined\n }\n\n return enhancedInstance\n}\n\nexport interface FormErrorListProps {\n /** Specific field names to show errors for (shows all errors if not specified) */\n fields?: string[]\n /** Custom className */\n className?: string\n}\n\nfunction FormErrorList({ fields, className = '' }: FormErrorListProps) {\n const { form } = useFormContext()\n const { errors } = form.formState\n\n // Flatten nested errors into a list\n const flattenErrors = (obj: any, prefix = ''): Array<{ field: string; message: string }> => {\n const result: Array<{ field: string; message: string }> = []\n\n for (const key in obj) {\n const fullKey = prefix ? `${prefix}.${key}` : key\n const value = obj[key]\n\n if (value?.message) {\n result.push({ field: fullKey, message: value.message as string })\n } else if (typeof value === 'object' && value !== null) {\n result.push(...flattenErrors(value, fullKey))\n }\n }\n\n return result\n }\n\n const allErrors = flattenErrors(errors)\n const filteredErrors = fields\n ? allErrors.filter(e => fields.includes(e.field))\n : allErrors\n\n if (filteredErrors.length === 0) {\n return null\n }\n\n return (\n <ul className={`text-error text-sm space-y-1 ${className}`} role=\"alert\">\n {filteredErrors.map((error, index) => (\n <li key={`${error.field}-${index}`} className=\"flex items-start gap-2\">\n <svg className=\"w-4 h-4 mt-0.5 flex-shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <span>{error.message}</span>\n </li>\n ))}\n </ul>\n )\n}\n\nexport const Form = Object.assign(FormRoot, {\n Item: FormItem,\n List: FormList,\n ErrorList: FormErrorList,\n useForm: useFormInstance,\n})\n\nexport type { UseFormReturn as FormInstance }\n"],"names":["FormContext","createContext","TYPE_VALIDATORS","useFormContext","context","useContext","FormRoot","externalForm","onFinish","onFinishFailed","initialValues","layout","labelWidth","size","disabled","children","className","noValidate","props","internalForm","useForm","form","handleSubmit","e","errors","errorFields","flattenErrors","obj","prefix","key","fullKey","value","handleReset","jsx","FormItem","name","label","floatingLabel","help","required","rules","valuePropName","inline","tooltip","extra","hasFeedback","dependencies","validateTrigger","initialValue","hidden","addonBefore","addonAfter","listName","formDisabled","inputId","useId","errorId","fieldName","useEffect","watchedDeps","useWatch","formRef","useRef","prevDepsRef","currentDeps","error","path","keys","errorMessage","rulesArray","validationRules","patternValidators","customValidators","rule","minValue","minMessage","maxValue","maxMessage","patternValue","patternMessage","pattern","message","validator","result","triggers","shouldValidateOnChange","shouldValidateOnBlur","FeedbackIcon","hasError","isValidating","TooltipIcon","Controller","field","fieldState","onChange","onBlur","ref","childProps","eventOrValue","isValidElement","enhancedChild","cloneElement","isHorizontal","isInline","floatingSizeClasses","renderInputElement","inputWithFeedback","jsxs","floatingClasses","renderWithAddons","input","addonClasses","FormList","fields","append","remove","move","useFieldArray","fieldsWithName","index","useFormInstance","formInstance","enhancedInstance","values","FormErrorList","allErrors","filteredErrors","Form"],"mappings":"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"}
|