@tinyrack/issuary-server 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entrypoints/app.d.ts +0 -6
- package/dist/entrypoints/app.d.ts.map +1 -1
- package/dist/lib/config/branding.d.ts +0 -4
- package/dist/lib/config/branding.d.ts.map +1 -1
- package/dist/lib/config/branding.js +0 -14
- package/dist/lib/config/branding.js.map +1 -1
- package/dist/lib/config/resolved.d.ts +0 -2
- package/dist/lib/config/resolved.d.ts.map +1 -1
- package/dist/routes/api/config/get.d.ts +0 -4
- package/dist/routes/api/config/get.d.ts.map +1 -1
- package/dist/routes/api/config/get.js +0 -2
- package/dist/routes/api/config/get.js.map +1 -1
- package/dist/routes/api/config/index.d.ts +0 -4
- package/dist/routes/api/config/index.d.ts.map +1 -1
- package/dist/routes/api/index.d.ts +0 -4
- package/dist/routes/api/index.d.ts.map +1 -1
- package/dist/routes/index.d.ts +0 -4
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/schemas/response.d.ts +0 -2
- package/dist/schemas/response.d.ts.map +1 -1
- package/dist/schemas/response.js +0 -5
- package/dist/schemas/response.js.map +1 -1
- package/dist/services/container.d.ts +0 -2
- package/dist/services/container.d.ts.map +1 -1
- package/package.json +2 -1
- package/public/assets/2fa-6btYq1AL.js +2 -0
- package/public/assets/{2fa-CCOTIHDZ.js.map → 2fa-6btYq1AL.js.map} +1 -1
- package/public/assets/{2fa-BqsM_D-X.js → 2fa-D3ieXkuh.js} +2 -2
- package/public/assets/{2fa-BqsM_D-X.js.map → 2fa-D3ieXkuh.js.map} +1 -1
- package/public/assets/{2fa-B5vLgDXQ.js → 2fa-Dxh4Kxy-.js} +2 -2
- package/public/assets/{2fa-B5vLgDXQ.js.map → 2fa-Dxh4Kxy-.js.map} +1 -1
- package/public/assets/2fa-UcpXAI9J.js +2 -0
- package/public/assets/{2fa-C5vUVgr_.js.map → 2fa-UcpXAI9J.js.map} +1 -1
- package/public/assets/{DialogHandle-BmtK2pRn.js → DialogHandle-tiMUnjZQ.js} +2 -2
- package/public/assets/{DialogHandle-BmtK2pRn.js.map → DialogHandle-tiMUnjZQ.js.map} +1 -1
- package/public/assets/admin-B8RQbf4_.js +2 -0
- package/public/assets/admin-B8RQbf4_.js.map +1 -0
- package/public/assets/{admin-users-DvPbw1Vq.js → admin-users-Dz1QNdy3.js} +2 -2
- package/public/assets/{admin-users-DvPbw1Vq.js.map → admin-users-Dz1QNdy3.js.map} +1 -1
- package/public/assets/alert-leqyvHOp.js.map +1 -1
- package/public/assets/{auth-choice-row-BCGjuedo.js → auth-choice-row-DWzfcZQY.js} +2 -2
- package/public/assets/{auth-choice-row-BCGjuedo.js.map → auth-choice-row-DWzfcZQY.js.map} +1 -1
- package/public/assets/{auth-field-DD8kvl--.js → auth-field-DsLGh1U-.js} +2 -2
- package/public/assets/{auth-field-DD8kvl--.js.map → auth-field-DsLGh1U-.js.map} +1 -1
- package/public/assets/auth-layout-DGTylGtX.js +2 -0
- package/public/assets/auth-layout-DGTylGtX.js.map +1 -0
- package/public/assets/{auth-page-header-CIn2E4zI.js → auth-page-header-COvqWINf.js} +2 -2
- package/public/assets/auth-page-header-COvqWINf.js.map +1 -0
- package/public/assets/authorization-context-banner-DVx1TsPY.js +2 -0
- package/public/assets/authorization-context-banner-DVx1TsPY.js.map +1 -0
- package/public/assets/{avatar-BEQjf2x6.js → avatar-BCLugfaZ.js} +2 -2
- package/public/assets/{avatar-BEQjf2x6.js.map → avatar-BCLugfaZ.js.map} +1 -1
- package/public/assets/badge-CsOfUji0.js.map +1 -1
- package/public/assets/{checkbox-gdHnSFQ-.js → checkbox-CFVDS3zJ.js} +2 -2
- package/public/assets/{checkbox-gdHnSFQ-.js.map → checkbox-CFVDS3zJ.js.map} +1 -1
- package/public/assets/config-DTQCUlfZ.js.map +1 -1
- package/public/assets/{consent-BqqFDdsr.js → consent-CKOohdYI.js} +2 -2
- package/public/assets/{consent-BqqFDdsr.js.map → consent-CKOohdYI.js.map} +1 -1
- package/public/assets/{consent-CfRbz2R7.js → consent-ChiWc7Ql.js} +2 -2
- package/public/assets/{consent-CfRbz2R7.js.map → consent-ChiWc7Ql.js.map} +1 -1
- package/public/assets/createLucideIcon-BPpAIXR_.js.map +1 -1
- package/public/assets/{email-CKKakxPJ.js → email-Crjg1dcr.js} +2 -2
- package/public/assets/{email-CKKakxPJ.js.map → email-Crjg1dcr.js.map} +1 -1
- package/public/assets/email-UcpXAI9J.js +2 -0
- package/public/assets/{email-C5vUVgr_.js.map → email-UcpXAI9J.js.map} +1 -1
- package/public/assets/{error-BMXxpgfR.js → error-VfMv226c.js} +2 -2
- package/public/assets/{error-BMXxpgfR.js.map → error-VfMv226c.js.map} +1 -1
- package/public/assets/{field-Cn4H1CUj.js → field-89zKYDVL.js} +2 -2
- package/public/assets/{field-Cn4H1CUj.js.map → field-89zKYDVL.js.map} +1 -1
- package/public/assets/{forgot-rO9sByfV.js → forgot-Dr88fVMq.js} +2 -2
- package/public/assets/{forgot-rO9sByfV.js.map → forgot-Dr88fVMq.js.map} +1 -1
- package/public/assets/forgot-UcpXAI9J.js +2 -0
- package/public/assets/{forgot-C5vUVgr_.js.map → forgot-UcpXAI9J.js.map} +1 -1
- package/public/assets/{index-DZyHRhbQ.css → index-CDD8owGK.css} +1 -1
- package/public/assets/{index-CS23Ozt6.js → index-CZ0rWM7l.js} +3 -3
- package/public/assets/{index-CS23Ozt6.js.map → index-CZ0rWM7l.js.map} +1 -1
- package/public/assets/{initial-avatar-CtuDUz_W.js → initial-avatar-ocwNWL38.js} +2 -2
- package/public/assets/{initial-avatar-CtuDUz_W.js.map → initial-avatar-ocwNWL38.js.map} +1 -1
- package/public/assets/{input-CzQki7k6.js → input-GPigtjgi.js} +2 -2
- package/public/assets/{input-CzQki7k6.js.map → input-GPigtjgi.js.map} +1 -1
- package/public/assets/link-C-WdTj3F.js.map +1 -1
- package/public/assets/{login-nukebli4.js → login-CQeTLmIu.js} +2 -2
- package/public/assets/{login-nukebli4.js.map → login-CQeTLmIu.js.map} +1 -1
- package/public/assets/login-UcpXAI9J.js +2 -0
- package/public/assets/{login-C5vUVgr_.js.map → login-UcpXAI9J.js.map} +1 -1
- package/public/assets/{modal-BDQFucjz.js → modal-BV3gpI-p.js} +2 -2
- package/public/assets/{modal-BDQFucjz.js.map → modal-BV3gpI-p.js.map} +1 -1
- package/public/assets/{passkey-CynCz1Dt.js → passkey-Bf7n49Z7.js} +2 -2
- package/public/assets/{passkey-CynCz1Dt.js.map → passkey-Bf7n49Z7.js.map} +1 -1
- package/public/assets/{passkey-BE9JvJOP.js → passkey-CT3G7pCL.js} +2 -2
- package/public/assets/{passkey-BE9JvJOP.js.map → passkey-CT3G7pCL.js.map} +1 -1
- package/public/assets/passkey-UcpXAI9J.js +2 -0
- package/public/assets/{passkey-C5vUVgr_.js.map → passkey-UcpXAI9J.js.map} +1 -1
- package/public/assets/{password-RkUttbhD.js → password-BKI5GTRs.js} +2 -2
- package/public/assets/{password-RkUttbhD.js.map → password-BKI5GTRs.js.map} +1 -1
- package/public/assets/password-UcpXAI9J.js +2 -0
- package/public/assets/{password-C5vUVgr_.js.map → password-UcpXAI9J.js.map} +1 -1
- package/public/assets/{password-strength-BeSOu_Ga.js → password-strength-DTWF07Px.js} +2 -2
- package/public/assets/{password-strength-BeSOu_Ga.js.map → password-strength-DTWF07Px.js.map} +1 -1
- package/public/assets/{pin-input-Cc-VkrQ3.js → pin-input-BGOLfkwL.js} +2 -2
- package/public/assets/{pin-input-Cc-VkrQ3.js.map → pin-input-BGOLfkwL.js.map} +1 -1
- package/public/assets/{profile-B5NaJfeS.js → profile-DSTMtoUf.js} +2 -2
- package/public/assets/{profile-B5NaJfeS.js.map → profile-DSTMtoUf.js.map} +1 -1
- package/public/assets/profile-RpDmbWNA.js +2 -0
- package/public/assets/profile-RpDmbWNA.js.map +1 -0
- package/public/assets/provider-logos-u1YURWQr.js.map +1 -1
- package/public/assets/{recovery-PnUATiUi.js → recovery-DbgpqG6f.js} +2 -2
- package/public/assets/{recovery-PnUATiUi.js.map → recovery-DbgpqG6f.js.map} +1 -1
- package/public/assets/{register-DQXhru0_.js → register-B2Lixapy.js} +2 -2
- package/public/assets/{register-DQXhru0_.js.map → register-B2Lixapy.js.map} +1 -1
- package/public/assets/register-UcpXAI9J.js +2 -0
- package/public/assets/{register-C5vUVgr_.js.map → register-UcpXAI9J.js.map} +1 -1
- package/public/assets/{reset-CQgIa3yf.js → reset-C-Qjl2Qy.js} +2 -2
- package/public/assets/{reset-CQgIa3yf.js.map → reset-C-Qjl2Qy.js.map} +1 -1
- package/public/assets/reset-UcpXAI9J.js +2 -0
- package/public/assets/{reset-C5vUVgr_.js.map → reset-UcpXAI9J.js.map} +1 -1
- package/public/assets/{select-DqZynXSt.js → select-BKx4bF4A.js} +2 -2
- package/public/assets/{select-DqZynXSt.js.map → select-BKx4bF4A.js.map} +1 -1
- package/public/assets/select-UcpXAI9J.js +2 -0
- package/public/assets/{select-C5vUVgr_.js.map → select-UcpXAI9J.js.map} +1 -1
- package/public/assets/separator-B0Bvh1he.js.map +1 -1
- package/public/assets/shell-header-bar-CgyNXbPS.js +2 -0
- package/public/assets/shell-header-bar-CgyNXbPS.js.map +1 -0
- package/public/assets/{terms-B5NaJfeS.js → terms-DSTMtoUf.js} +2 -2
- package/public/assets/{terms-B5NaJfeS.js.map → terms-DSTMtoUf.js.map} +1 -1
- package/public/assets/{terms-BHDAgn-H.js → terms-Vgpg5IZK.js} +2 -2
- package/public/assets/{terms-BHDAgn-H.js.map → terms-Vgpg5IZK.js.map} +1 -1
- package/public/assets/{terms-checkbox-list-6jteUTIZ.js → terms-checkbox-list-DqbXU4qw.js} +2 -2
- package/public/assets/{terms-checkbox-list-6jteUTIZ.js.map → terms-checkbox-list-DqbXU4qw.js.map} +1 -1
- package/public/assets/{totp-CJtfVNEq.js → totp-Cjns-PoB.js} +2 -2
- package/public/assets/{totp-CJtfVNEq.js.map → totp-Cjns-PoB.js.map} +1 -1
- package/public/assets/{totp-ECvOUcFx.js → totp-g0-s50HZ.js} +2 -2
- package/public/assets/{totp-ECvOUcFx.js.map → totp-g0-s50HZ.js.map} +1 -1
- package/public/assets/{use-totp-setup-BbS3XcZA.js → use-totp-setup-CtTaklH-.js} +2 -2
- package/public/assets/{use-totp-setup-BbS3XcZA.js.map → use-totp-setup-CtTaklH-.js.map} +1 -1
- package/public/assets/{useAriaLabelledBy-ByuMi3Ry.js → useAriaLabelledBy-7uIPXK-0.js} +2 -2
- package/public/assets/{useAriaLabelledBy-ByuMi3Ry.js.map → useAriaLabelledBy-7uIPXK-0.js.map} +1 -1
- package/public/assets/useQuery-pOdkMV4B.js +2 -0
- package/public/assets/{useQuery-Ckxjmvtl.js.map → useQuery-pOdkMV4B.js.map} +1 -1
- package/public/assets/users-B1hvVo3B.js +2 -0
- package/public/assets/users-B1hvVo3B.js.map +1 -0
- package/public/index.html +2 -2
- package/public/assets/2fa-C5vUVgr_.js +0 -2
- package/public/assets/2fa-CCOTIHDZ.js +0 -2
- package/public/assets/admin-BPijkLw-.js +0 -2
- package/public/assets/admin-BPijkLw-.js.map +0 -1
- package/public/assets/auth-layout-VtpryDof.js +0 -2
- package/public/assets/auth-layout-VtpryDof.js.map +0 -1
- package/public/assets/auth-page-header-CIn2E4zI.js.map +0 -1
- package/public/assets/authorization-context-banner-SOuBHWIb.js +0 -2
- package/public/assets/authorization-context-banner-SOuBHWIb.js.map +0 -1
- package/public/assets/email-C5vUVgr_.js +0 -2
- package/public/assets/forgot-C5vUVgr_.js +0 -2
- package/public/assets/login-C5vUVgr_.js +0 -2
- package/public/assets/passkey-C5vUVgr_.js +0 -2
- package/public/assets/password-C5vUVgr_.js +0 -2
- package/public/assets/profile-BcjsVYOx.js +0 -2
- package/public/assets/profile-BcjsVYOx.js.map +0 -1
- package/public/assets/register-C5vUVgr_.js +0 -2
- package/public/assets/reset-C5vUVgr_.js +0 -2
- package/public/assets/select-C5vUVgr_.js +0 -2
- package/public/assets/shell-header-bar-CjG5qvPg.js +0 -2
- package/public/assets/shell-header-bar-CjG5qvPg.js.map +0 -1
- package/public/assets/useQuery-Ckxjmvtl.js +0 -2
- package/public/assets/users-CmFxrCQT.js +0 -2
- package/public/assets/users-CmFxrCQT.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-leqyvHOp.js","names":[],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.
|
|
1
|
+
{"version":3,"file":"alert-leqyvHOp.js","names":[],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/alert/alert-actions.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/alert/alert-description.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/alert/alert-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/alert/alert-title.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/alert/index.js","../../../frontend/src/components/ui/alert.tsx"],"sourcesContent":["import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/alert/alert-actions.tsx\nfunction TRAlertActions({ className, ...props }) {\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-alert-actions\", className)\n\t});\n}\n//#endregion\nexport { TRAlertActions };\n\n//# sourceMappingURL=alert-actions.js.map","\"use client\";\nimport { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { useRender } from \"@base-ui/react/use-render\";\n//#region src/components/alert/alert-description.tsx\nfunction TRAlertDescription({ className, ref, render, ...props }) {\n\treturn useRender({\n\t\tdefaultTagName: \"p\",\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: mergeClassNames(\"tr-alert-description\", className)\n\t\t},\n\t\tref,\n\t\trender\n\t});\n}\n//#endregion\nexport { TRAlertDescription };\n\n//# sourceMappingURL=alert-description.js.map","import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/alert/alert-root.tsx\nfunction TRAlertRoot({ className, variant = \"neutral\", ...props }) {\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-alert\", className),\n\t\t\"data-variant\": variant\n\t});\n}\n//#endregion\nexport { TRAlertRoot };\n\n//# sourceMappingURL=alert-root.js.map","\"use client\";\nimport { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { useRender } from \"@base-ui/react/use-render\";\n//#region src/components/alert/alert-title.tsx\nfunction TRAlertTitle({ className, ref, render, ...props }) {\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: mergeClassNames(\"tr-alert-title\", className)\n\t\t},\n\t\tref,\n\t\trender\n\t});\n}\n//#endregion\nexport { TRAlertTitle };\n\n//# sourceMappingURL=alert-title.js.map","import { TRAlertActions } from \"./alert-actions.js\";\nimport { TRAlertDescription } from \"./alert-description.js\";\nimport { TRAlertRoot } from \"./alert-root.js\";\nimport { TRAlertTitle } from \"./alert-title.js\";\n//#region src/components/alert/index.tsx\nconst TRAlert = {\n\tRoot: TRAlertRoot,\n\tTitle: TRAlertTitle,\n\tDescription: TRAlertDescription,\n\tActions: TRAlertActions\n};\n//#endregion\nexport { TRAlert, TRAlertActions, TRAlertDescription, TRAlertRoot, TRAlertTitle };\n\n//# sourceMappingURL=index.js.map","import { TRAlert } from '@tinyrack/ui/components/alert';\nimport type { LucideIcon } from 'lucide-react';\n\ntype AlertProps = {\n type: 'success' | 'error' | 'info' | 'warning';\n icon: LucideIcon;\n children: React.ReactNode;\n className?: string;\n 'data-testid'?: string;\n};\n\nconst variantMap: Record<\n AlertProps['type'],\n 'success' | 'danger' | 'info' | 'warning'\n> = {\n success: 'success',\n error: 'danger',\n info: 'info',\n warning: 'warning',\n};\n\nexport function Alert({\n type,\n icon: IconComponent,\n children,\n className = '',\n 'data-testid': dataTestid,\n}: AlertProps) {\n return (\n <TRAlert.Root\n className={className}\n data-testid={dataTestid ?? `alert-${type}`}\n variant={variantMap[type]}\n >\n <IconComponent className=\"size-tinyrack-xl\" />\n <TRAlert.Title>{children}</TRAlert.Title>\n </TRAlert.Root>\n );\n}\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"2EAGA,SAAS,EAAe,CAAE,YAAW,GAAG,GAAS,CAChD,OAAuB,EAAA,EAAA,IAAA,CAAI,MAAO,CACjC,GAAG,EACH,UAAW,EAAgB,mBAAoB,CAAS,CACzD,CAAC,CACF,CCJA,SAAS,EAAmB,CAAE,YAAW,MAAK,SAAQ,GAAG,GAAS,CACjE,OAAO,EAAU,CAChB,eAAgB,IAChB,MAAO,CACN,GAAG,EACH,UAAW,EAAgB,uBAAwB,CAAS,CAC7D,EACA,MACA,QACD,CAAC,CACF,CCXA,SAAS,EAAY,CAAE,YAAW,UAAU,UAAW,GAAG,GAAS,CAClE,OAAuB,EAAA,EAAA,IAAA,CAAI,MAAO,CACjC,GAAG,EACH,UAAW,EAAgB,WAAY,CAAS,EAChD,eAAgB,CACjB,CAAC,CACF,CCLA,SAAS,EAAa,CAAE,YAAW,MAAK,SAAQ,GAAG,GAAS,CAC3D,OAAO,EAAU,CAChB,eAAgB,MAChB,MAAO,CACN,GAAG,EACH,UAAW,EAAgB,iBAAkB,CAAS,CACvD,EACA,MACA,QACD,CAAC,CACF,CCTA,IAAM,EAAU,CACf,KAAM,EACN,MAAO,EACP,YAAa,EACb,QAAS,CACV,ECCM,EAGF,CACF,QAAS,UACT,MAAO,SACP,KAAM,OACN,QAAS,SACX,EAEA,SAAgB,EAAM,CACpB,OACA,KAAM,EACN,WACA,YAAY,GACZ,cAAe,GACF,CACb,OACE,EAAA,EAAA,KAAA,CAAC,EAAQ,KAAT,CACa,YACX,cAAa,GAAc,SAAS,IACpC,QAAS,EAAW,YAHtB,EAKE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,UAAU,kBAAoB,CAAA,GAC7C,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CAAgB,UAAwB,CAAA,CAC5B,GAElB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,q as t}from"./createLucideIcon-BPpAIXR_.js";import{t as n}from"./chevron-right-CN0jUyV0.js";import{z as r}from"./index-
|
|
2
|
-
//# sourceMappingURL=auth-choice-row-
|
|
1
|
+
import{n as e,q as t}from"./createLucideIcon-BPpAIXR_.js";import{t as n}from"./chevron-right-CN0jUyV0.js";import{z as r}from"./index-CZ0rWM7l.js";var i=t();function a({render:t,icon:a,leading:o,label:s,description:c,trailing:l}){return(0,i.jsxs)(`div`,{className:`flex items-center gap-tinyrack-xs`,children:[(0,i.jsxs)(r,{appearance:`outline`,className:`h-auto min-w-0 flex-1 justify-start gap-tinyrack-md px-tinyrack-lg py-tinyrack-md text-start transition-colors duration-tinyrack-fast ease-tinyrack-standard`,intent:`neutral`,render:t,children:[o??(a?(0,i.jsx)(a,{"aria-hidden":!0,className:`size-tinyrack-xl shrink-0`}):null),(0,i.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col whitespace-normal`,children:[(0,i.jsx)(e,{variant:`body`,weight:`medium`,children:s}),c&&(0,i.jsx)(e,{color:`muted`,variant:`caption`,children:c})]}),(0,i.jsx)(n,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-text-muted`})]}),l]})}export{a as t};
|
|
2
|
+
//# sourceMappingURL=auth-choice-row-DWzfcZQY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-choice-row-
|
|
1
|
+
{"version":3,"file":"auth-choice-row-DWzfcZQY.js","names":[],"sources":["../../../frontend/src/components/auth/auth-choice-row.tsx"],"sourcesContent":["import { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { ChevronRightIcon, type LucideIcon } from 'lucide-react';\nimport type { ReactElement, ReactNode } from 'react';\n\ntype AuthChoiceRowProps = {\n /**\n * The element the row navigates with, styled by `TRLinkButton`. These stay\n * real anchors with an `href` — the e2e suite selects the second-factor\n * choices by href, and they must survive a middle click.\n */\n render: ReactElement;\n icon?: LucideIcon;\n /** Replaces `icon` when the leading slot needs richer content (an avatar). */\n leading?: ReactNode;\n label: string;\n description?: string;\n /** Trailing slot outside the row's control, e.g. a remove button. */\n trailing?: ReactNode;\n};\n\n/**\n * A full-width, tappable row for picking one of several options.\n *\n * Used by the second-factor choosers and the account switcher, which each\n * hand-rolled a different version of the same thing — one as a stretched\n * button with a gap, another as a bare `<button>` inside a bordered div that\n * had no focus ring of its own.\n *\n * The row itself is one control, so it is a single tab stop and its label and\n * description are both part of its accessible name.\n */\nexport function AuthChoiceRow({\n render,\n icon: Icon,\n leading,\n label,\n description,\n trailing,\n}: AuthChoiceRowProps) {\n return (\n <div className=\"flex items-center gap-tinyrack-xs\">\n <TRLinkButton\n appearance=\"outline\"\n className=\"h-auto min-w-0 flex-1 justify-start gap-tinyrack-md px-tinyrack-lg py-tinyrack-md text-start transition-colors duration-tinyrack-fast ease-tinyrack-standard\"\n intent=\"neutral\"\n render={render}\n >\n {leading ??\n (Icon ? (\n <Icon aria-hidden className=\"size-tinyrack-xl shrink-0\" />\n ) : null)}\n {/*\n Wraps rather than truncates. These rows carry the only description of\n what each option does, and at phone width even the English strings\n exceed the available space — silently clipping them would hide the\n difference between the choices.\n */}\n <span className=\"flex min-w-0 flex-1 flex-col whitespace-normal\">\n <TRText variant=\"body\" weight=\"medium\">\n {label}\n </TRText>\n {description && (\n <TRText color=\"muted\" variant=\"caption\">\n {description}\n </TRText>\n )}\n </span>\n <ChevronRightIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-text-muted\"\n />\n </TRLinkButton>\n {trailing}\n </div>\n );\n}\n"],"mappings":"4JAgCA,SAAgB,EAAc,CAC5B,SACA,KAAM,EACN,UACA,QACA,cACA,YACqB,CACrB,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6CAAf,EACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAW,UACX,UAAU,+JACV,OAAO,UACC,kBAJV,CAMG,IACE,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,cAAA,GAAY,UAAU,2BAA6B,CAAA,EACvD,OAON,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,0DAAhB,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,QAAQ,OAAO,OAAO,kBAC3B,CACK,CAAA,EACP,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,mBAC3B,CACK,CAAA,CAEN,KACN,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,oDACX,CAAA,CACW,IACb,CACE,GAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{J as e,Z as t,i as n,q as r,t as i}from"./createLucideIcon-BPpAIXR_.js";import{t as a}from"./field-
|
|
2
|
-
//# sourceMappingURL=auth-field-
|
|
1
|
+
import{J as e,Z as t,i as n,q as r,t as i}from"./createLucideIcon-BPpAIXR_.js";import{t as a}from"./field-89zKYDVL.js";import{t as o}from"./input-GPigtjgi.js";var s=i(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),c=i(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),l=t(e(),1),u=r();function d({icon:e,type:t=`text`,label:r,placeholder:i,hint:d,labelAction:f,autoComplete:p,error:m,errorTestId:h=`field-error`,hideLabel:g=!1,className:_=``,ref:v,...y}){let{t:b}=n(),x=(0,l.useId)(),[S,C]=(0,l.useState)(!1),w=y.id??x,T=d?`${w}-hint`:void 0,E=m?`${w}-error`:void 0,D=E??T,O=t===`password`,k=O&&S?`text`:t;return(0,u.jsxs)(a.Root,{className:_,children:[g?(0,u.jsx)(a.Label,{className:`sr-only`,htmlFor:w,children:r}):(0,u.jsxs)(`div`,{className:`flex items-baseline justify-between gap-tinyrack-sm`,children:[(0,u.jsx)(a.Label,{htmlFor:w,children:r}),f]}),(0,u.jsxs)(o.Group,{"data-invalid":m?``:void 0,"data-testid":m?`input-error-wrapper`:void 0,children:[e&&(0,u.jsx)(o.Adornment,{children:(0,u.jsx)(e,{"aria-hidden":!0,className:`size-tinyrack-xl opacity-tinyrack-hover`})}),(0,u.jsx)(o,{"aria-describedby":D,"aria-invalid":m?!0:void 0,autoComplete:p,"data-invalid":m?``:void 0,id:w,placeholder:i,ref:v,type:k,...y}),O&&(0,u.jsx)(o.Action,{"aria-label":b(S?`common.password.hide`:`common.password.show`),onClick:()=>C(e=>!e),children:S?(0,u.jsx)(s,{"aria-hidden":!0,className:`size-tinyrack-lg`}):(0,u.jsx)(c,{"aria-hidden":!0,className:`size-tinyrack-lg`})})]}),d&&!m&&(0,u.jsx)(a.Description,{id:T,children:d}),m&&(0,u.jsx)(`div`,{className:`tr-field-error`,"data-testid":h,id:E,children:m.message})]})}export{d as t};
|
|
2
|
+
//# sourceMappingURL=auth-field-DsLGh1U-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-field-
|
|
1
|
+
{"version":3,"file":"auth-field-DsLGh1U-.js","names":["__iconNode"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/eye-off.mjs","../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/eye.mjs","../../../frontend/src/components/auth/auth-field.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.mjs.map\n","/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.mjs.map\n","import { TRField } from '@tinyrack/ui/components/field';\nimport { TRInput } from '@tinyrack/ui/components/input';\nimport { EyeIcon, EyeOffIcon, type LucideIcon } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { FieldError } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\n\ntype AuthFieldProps = {\n /** Leading adornment glyph. */\n icon?: LucideIcon;\n type?: 'email' | 'password' | 'text';\n label: string;\n placeholder?: string;\n hint?: string;\n /** Rendered on the label row, e.g. a \"Forgot password?\" link. */\n labelAction?: React.ReactNode;\n autoComplete?: string;\n error?: FieldError;\n /**\n * Overrides the error node's test id. The auth screens share the default;\n * the profile modals each have their own, which e2e selects on.\n */\n errorTestId?: string;\n /**\n * Renders the label to assistive technology only. For fields whose purpose\n * is obvious from context — an inline rename inside a list row — where a\n * visible label would be noise but a missing one leaves a nameless textbox.\n */\n hideLabel?: boolean;\n className?: string;\n ref?: React.Ref<HTMLInputElement>;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'className'>;\n\n/**\n * The auth surface's text input.\n *\n * Composes `TRInput.Group` so the icon, field, and reveal toggle read as one\n * control.\n *\n * Password fields get a reveal toggle. It is a real button in the tab order\n * with a state-dependent accessible name, and it never changes the field's\n * `name` or `autocomplete`, so password managers keep working.\n */\nexport function AuthField({\n icon: Icon,\n type = 'text',\n label,\n placeholder,\n hint,\n labelAction,\n autoComplete,\n error,\n errorTestId = 'field-error',\n hideLabel = false,\n className = '',\n ref,\n ...props\n}: AuthFieldProps) {\n const { t } = useTranslation();\n const generatedId = useId();\n const [revealed, setRevealed] = useState(false);\n\n const inputId = props.id ?? generatedId;\n const hintId = hint ? `${inputId}-hint` : undefined;\n const errorId = error ? `${inputId}-error` : undefined;\n const describedBy = errorId ?? hintId;\n\n const canReveal = type === 'password';\n const resolvedType = canReveal && revealed ? 'text' : type;\n\n return (\n <TRField.Root className={className}>\n {hideLabel ? (\n <TRField.Label className=\"sr-only\" htmlFor={inputId}>\n {label}\n </TRField.Label>\n ) : (\n <div className=\"flex items-baseline justify-between gap-tinyrack-sm\">\n <TRField.Label htmlFor={inputId}>{label}</TRField.Label>\n {labelAction}\n </div>\n )}\n <TRInput.Group\n data-invalid={error ? '' : undefined}\n data-testid={error ? 'input-error-wrapper' : undefined}\n >\n {Icon && (\n <TRInput.Adornment>\n <Icon\n aria-hidden\n className=\"size-tinyrack-xl opacity-tinyrack-hover\"\n />\n </TRInput.Adornment>\n )}\n <TRInput\n aria-describedby={describedBy}\n aria-invalid={error ? true : undefined}\n autoComplete={autoComplete}\n data-invalid={error ? '' : undefined}\n id={inputId}\n placeholder={placeholder}\n ref={ref}\n type={resolvedType}\n {...props}\n />\n {canReveal && (\n <TRInput.Action\n aria-label={\n revealed ? t('common.password.hide') : t('common.password.show')\n }\n onClick={() => setRevealed((value) => !value)}\n >\n {revealed ? (\n <EyeOffIcon aria-hidden className=\"size-tinyrack-lg\" />\n ) : (\n <EyeIcon aria-hidden className=\"size-tinyrack-lg\" />\n )}\n </TRInput.Action>\n )}\n </TRInput.Group>\n {hint && !error && (\n <TRField.Description id={hintId}>{hint}</TRField.Description>\n )}\n {/*\n Plain element rather than `TRField.Error`: that part renders from Base\n UI's own field validity, which nothing here drives — react-hook-form\n owns validation. The class is the design system's, so the styling is\n still the system's.\n */}\n {error && (\n <div className=\"tr-field-error\" data-testid={errorTestId} id={errorId}>\n {error.message}\n </div>\n )}\n </TRField.Root>\n );\n}\n"],"x_google_ignoreList":[0,1],"mappings":"+JA2BA,IAAM,EAAS,EAAiB,UAAWA,CAjBzC,CACE,OACA,CACE,EAAG,iGACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,uCAAwC,IAAK,QAAS,CAAC,EACrE,CACE,OACA,CACE,EAAG,+FACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAS,CAAC,CAEFA,CAAU,ECR/C,EAAM,EAAiB,MAAO,CATlC,CACE,OACA,CACE,EAAG,wGACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAEtB,CAAU,mBCwB9C,SAAgB,EAAU,CACxB,KAAM,EACN,OAAO,OACP,QACA,cACA,OACA,cACA,eACA,QACA,cAAc,cACd,YAAY,GACZ,YAAY,GACZ,MACA,GAAG,GACc,CACjB,GAAM,CAAE,KAAM,EAAe,EACvB,GAAA,EAAA,EAAA,MAAA,CAAoB,EACpB,CAAC,EAAU,IAAA,EAAA,EAAA,SAAA,CAAwB,EAAK,EAExC,EAAU,EAAM,IAAM,EACtB,EAAS,EAAO,GAAG,EAAQ,OAAS,IAAA,GACpC,EAAU,EAAQ,GAAG,EAAQ,QAAU,IAAA,GACvC,EAAc,GAAW,EAEzB,EAAY,IAAS,WACrB,EAAe,GAAa,EAAW,OAAS,EAEtD,OACE,EAAA,EAAA,KAAA,CAAC,EAAQ,KAAT,CAAyB,qBAAzB,CACG,GACC,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CAAe,UAAU,UAAU,QAAS,WACzC,CACY,CAAA,GAEf,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,+DAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CAAe,QAAS,WAAU,CAAqB,CAAA,EACtD,CACE,KAEP,EAAA,EAAA,KAAA,CAAC,EAAQ,MAAT,CACE,eAAc,EAAQ,GAAK,IAAA,GAC3B,cAAa,EAAQ,sBAAwB,IAAA,YAF/C,CAIG,IACC,EAAA,EAAA,IAAA,CAAC,EAAQ,UAAT,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,yCACX,CAAA,CACgB,CAAA,GAErB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,mBAAkB,EAClB,eAAc,EAAQ,GAAO,IAAA,GACf,eACd,eAAc,EAAQ,GAAK,IAAA,GAC3B,GAAI,EACS,cACR,MACL,KAAM,EACN,GAAI,CACL,CAAA,EACA,IACC,EAAA,EAAA,IAAA,CAAC,EAAQ,OAAT,CACE,aACa,EAAX,EAAa,uBAA4B,sBAAsB,EAEjE,YAAe,EAAa,GAAU,CAAC,CAAK,WAE3C,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAY,cAAA,GAAY,UAAU,kBAAoB,CAAA,GAEtD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,cAAA,GAAY,UAAU,kBAAoB,CAAA,CAEvC,CAAA,CAEL,IACd,GAAQ,CAAC,IACR,EAAA,EAAA,IAAA,CAAC,EAAQ,YAAT,CAAqB,GAAI,WAAS,CAA0B,CAAA,EAQ7D,IACC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBAAiB,cAAa,EAAa,GAAI,WAC3D,EAAM,OACJ,CAAA,CAEK,GAElB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e,q as t}from"./createLucideIcon-BPpAIXR_.js";import{A as n,j as r,t as i}from"./shell-header-bar-CgyNXbPS.js";var a=t();function o(){let{title:t,iconUrl:n}=r();return!t&&!n?null:(0,a.jsxs)(`div`,{className:`flex min-w-0 items-center gap-tinyrack-sm`,children:[n&&(0,a.jsx)(`img`,{alt:``,className:`size-tinyrack-xl object-contain`,src:n}),t&&(0,a.jsx)(e,{as:`h1`,truncate:!0,variant:`headingMd`,weight:`heading`,children:t})]})}var s={form:`max-w-tinyrack-measure-xl`,wide:`max-w-tinyrack-overlay-md`};function c({children:e,width:t=`form`}){return(0,a.jsxs)(`div`,{className:`flex min-h-dvh flex-col bg-tinyrack-surface`,children:[(0,a.jsx)(n,{}),(0,a.jsx)(i,{}),(0,a.jsx)(`main`,{className:`flex flex-1 px-tinyrack-lg py-tinyrack-xl`,children:(0,a.jsxs)(`div`,{className:`auth-enter m-auto flex w-full flex-col gap-tinyrack-xl ${s[t]}`,children:[(0,a.jsx)(o,{}),e]})})]})}export{c as t};
|
|
2
|
+
//# sourceMappingURL=auth-layout-DGTylGtX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-layout-DGTylGtX.js","names":[],"sources":["../../../frontend/src/features/layout/auth-brand-header.tsx","../../../frontend/src/features/layout/auth-layout.tsx"],"sourcesContent":["import { TRText } from '@tinyrack/ui/components/text';\nimport { useBranding } from '#frontend/features/layout/use-branding.ts';\n\n/**\n * The deployment identity shown at the start of the centred auth column.\n *\n * The product name remains the page's `h1`, so screen titles become `h2` when\n * branding is configured. With no product name, `AuthPageHeader` promotes the\n * screen title to `h1`. The decorative icon does not affect that hierarchy.\n */\nexport function AuthBrandHeader() {\n const { title, iconUrl } = useBranding();\n\n if (!title && !iconUrl) {\n return null;\n }\n\n return (\n <div className=\"flex min-w-0 items-center gap-tinyrack-sm\">\n {iconUrl && (\n <img alt=\"\" className=\"size-tinyrack-xl object-contain\" src={iconUrl} />\n )}\n {title && (\n <TRText as=\"h1\" truncate variant=\"headingMd\" weight=\"heading\">\n {title}\n </TRText>\n )}\n </div>\n );\n}\n","import { Toaster } from '#frontend/components/ui/toaster.tsx';\nimport { AuthBrandHeader } from '#frontend/features/layout/auth-brand-header.tsx';\nimport { ShellHeaderBar } from '#frontend/features/layout/shell-header-bar.tsx';\n\ntype AuthLayoutProps = {\n children: React.ReactNode;\n /**\n * `form` (default) fits a single column of fields. `wide` is for screens\n * that present a list to review before deciding — consent scopes, terms,\n * account selection, recovery codes.\n */\n width?: 'form' | 'wide';\n};\n\nconst widthClasses: Record<NonNullable<AuthLayoutProps['width']>, string> = {\n form: 'max-w-tinyrack-measure-xl',\n wide: 'max-w-tinyrack-overlay-md',\n};\n\n/**\n * The shell every auth screen sits in.\n *\n * A single, flat column keeps the deployment identity and the current task on\n * one reading line at every breakpoint. The column uses auto block margins so\n * short tasks sit centrally while long consent and setup flows keep their\n * viewport padding and scroll instead of overflowing above the canvas.\n */\nexport function AuthLayout({ children, width = 'form' }: AuthLayoutProps) {\n return (\n <div className=\"flex min-h-dvh flex-col bg-tinyrack-surface\">\n <Toaster />\n <ShellHeaderBar />\n <main className=\"flex flex-1 px-tinyrack-lg py-tinyrack-xl\">\n {/*\n The stack owns vertical rhythm so screens compose as a flat list of\n brand, header, alerts, form, and footer blocks. `m-auto` centres both\n axes only when space is available and collapses safely for tall flows.\n */}\n <div\n className={`auth-enter m-auto flex w-full flex-col gap-tinyrack-xl ${widthClasses[width]}`}\n >\n <AuthBrandHeader />\n {children}\n </div>\n </main>\n </div>\n );\n}\n"],"mappings":"qIAUA,SAAgB,GAAkB,CAChC,GAAM,CAAE,QAAO,WAAY,EAAY,EAMvC,MAJI,CAAC,GAAS,CAAC,EACN,MAIP,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,qDAAf,CACG,IACC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,IAAI,GAAG,UAAU,kCAAkC,IAAK,CAAU,CAAA,EAExE,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,GAAG,KAAK,SAAA,GAAS,QAAQ,YAAY,OAAO,mBACjD,CACK,CAAA,CAEP,GAET,CCfA,IAAM,EAAsE,CAC1E,KAAM,4BACN,KAAM,2BACR,EAUA,SAAgB,EAAW,CAAE,WAAU,QAAQ,QAA2B,CACxE,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,uDAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,CAAA,GACV,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,CAAA,GACjB,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,sDAMd,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAW,0DAA0D,EAAa,cADpF,EAGE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,CAAA,EACjB,CACE,GACD,CAAA,CACH,GAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,q as t}from"./createLucideIcon-BPpAIXR_.js";import{j as n}from"./shell-header-bar-
|
|
2
|
-
//# sourceMappingURL=auth-page-header-
|
|
1
|
+
import{n as e,q as t}from"./createLucideIcon-BPpAIXR_.js";import{j as n}from"./shell-header-bar-CgyNXbPS.js";var r=t();function i({title:t,subtitle:i,eyebrow:a,align:o=`start`}){let{title:s}=n();return(0,r.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs ${o===`center`?`items-center text-center`:`items-start text-start`}`,children:[a,(0,r.jsx)(e,{align:o,as:s?`h2`:`h1`,variant:`headingLg`,children:t}),i&&(0,r.jsx)(e,{align:o,as:`p`,color:`muted`,variant:`body`,children:i})]})}export{i as t};
|
|
2
|
+
//# sourceMappingURL=auth-page-header-COvqWINf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-page-header-COvqWINf.js","names":[],"sources":["../../../frontend/src/components/auth/auth-page-header.tsx"],"sourcesContent":["import { TRText } from '@tinyrack/ui/components/text';\nimport { useBranding } from '#frontend/features/layout/use-branding.ts';\n\ntype AuthPageHeaderProps = {\n title: string;\n subtitle?: string;\n /** Small label above the title — wizard progress, flow context. */\n eyebrow?: React.ReactNode;\n /** Centre for terminal states (success, error) where there is no form to scan. */\n align?: 'start' | 'center';\n};\n\n/**\n * Titles the current screen.\n *\n * Heading level follows the brand header: when the deployment has configured\n * a product name that name is the page's `h1`, so this is an `h2` beneath it.\n * With no branding there is no other heading, so this becomes the `h1` rather\n * than leaving the page starting at level 2.\n *\n * Left-aligned by default. Centred auth copy reads as a consumer sign-up;\n * aligning it with the fields below reads as a console and gives the eye one\n * vertical line to follow into the form.\n *\n * Carries no margin — spacing is the caller's, so it composes into a stack.\n */\nexport function AuthPageHeader({\n title,\n subtitle,\n eyebrow,\n align = 'start',\n}: AuthPageHeaderProps) {\n const { title: brandTitle } = useBranding();\n const headingTag = brandTitle ? 'h2' : 'h1';\n\n return (\n <div\n className={`flex flex-col gap-tinyrack-xs ${align === 'center' ? 'items-center text-center' : 'items-start text-start'}`}\n >\n {eyebrow}\n <TRText align={align} as={headingTag} variant=\"headingLg\">\n {title}\n </TRText>\n {subtitle && (\n <TRText align={align} as=\"p\" color=\"muted\" variant=\"body\">\n {subtitle}\n </TRText>\n )}\n </div>\n );\n}\n"],"mappings":"uHA0BA,SAAgB,EAAe,CAC7B,QACA,WACA,UACA,QAAQ,SACc,CACtB,GAAM,CAAE,MAAO,GAAe,EAAY,EAG1C,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAW,iCAAiC,IAAU,SAAW,2BAA6B,oCADhG,CAGG,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,QAAO,GAPP,EAAa,KAAO,KAOG,QAAQ,qBAC3C,CACK,CAAA,EACP,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,QAAO,GAAG,IAAI,MAAM,QAAQ,QAAQ,gBAChD,CACK,CAAA,CAEP,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e,n as t,q as n,t as r}from"./createLucideIcon-BPpAIXR_.js";import{tt as i}from"./shell-header-bar-CgyNXbPS.js";import{t as a}from"./shield-check-D_p8H0ni.js";import{B as o,D as s,P as c}from"./index-CZ0rWM7l.js";import{t as l}from"./badge-CsOfUji0.js";var u=r(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),d=n();function f({search:e,className:t=``}){return c(e)?(0,d.jsx)(p,{className:t,search:e}):null}function p({search:n,className:r}){let{t:c}=e(),{data:f}=i(s(n));return(0,d.jsx)(o.Root,{"aria-label":c(`authorizationContext.label`),className:r,"data-testid":`authorization-context`,padding:`lg`,render:(0,d.jsx)(`section`,{}),variant:`outlined`,children:(0,d.jsxs)(o.Content,{className:`flex flex-col gap-tinyrack-sm`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-tinyrack-sm`,children:[(0,d.jsx)(a,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-info-foreground`}),(0,d.jsx)(t,{variant:`body`,weight:`medium`,children:c(`authorizationContext.title`,{app:f.client.name})})]}),(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-tinyrack-xs`,children:[(0,d.jsx)(u,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-text-muted`}),(0,d.jsx)(t,{color:`muted`,truncate:!0,variant:`caption`,children:c(`authorizationContext.redirect`,{origin:f.redirect_origin})})]}),(0,d.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs`,children:[(0,d.jsx)(t,{color:`muted`,variant:`caption`,weight:`medium`,children:c(`authorizationContext.permissions`)}),f.scopes.length>0?(0,d.jsx)(`ul`,{className:`flex flex-wrap gap-tinyrack-xs`,children:f.scopes.map(e=>(0,d.jsx)(`li`,{children:(0,d.jsx)(l,{uiSize:`md`,variant:`neutral`,children:c(`consent.scope.${e.name}`,{defaultValue:e.description})})},e.name))}):(0,d.jsx)(t,{color:`muted`,variant:`caption`,children:c(`authorizationContext.noScopes`)})]})]})})}export{f as t};
|
|
2
|
+
//# sourceMappingURL=authorization-context-banner-DVx1TsPY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-context-banner-DVx1TsPY.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/globe.mjs","../../../frontend/src/components/auth/authorization-context-banner.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n];\nconst Globe = createLucideIcon(\"globe\", __iconNode);\n\nexport { __iconNode, Globe as default };\n//# sourceMappingURL=globe.mjs.map\n","import { useSuspenseQuery } from '@tanstack/react-query';\nimport { TRBadge } from '@tinyrack/ui/components/badge';\nimport { TRCard } from '@tinyrack/ui/components/card';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { GlobeIcon, ShieldCheckIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport {\n type AuthorizationContextSearch,\n hasAuthorizationContext,\n type OAuthSearch,\n} from '#frontend/libs/oauth-search.ts';\nimport { getAuthorizationContextQueryOptions } from '#frontend/queries/authorization-context.ts';\n\ntype AuthorizationContextBannerProps = {\n search: OAuthSearch;\n className?: string;\n};\n\nexport function AuthorizationContextBanner({\n search,\n className = '',\n}: AuthorizationContextBannerProps) {\n if (!hasAuthorizationContext(search)) {\n return null;\n }\n\n return <AuthorizationContextContent className={className} search={search} />;\n}\n\nfunction AuthorizationContextContent({\n search,\n className,\n}: {\n search: AuthorizationContextSearch;\n className: string;\n}) {\n const { t } = useTranslation();\n const { data } = useSuspenseQuery(\n getAuthorizationContextQueryOptions(search),\n );\n\n return (\n <TRCard.Root\n aria-label={t('authorizationContext.label')}\n className={className}\n data-testid=\"authorization-context\"\n padding=\"lg\"\n render={<section />}\n variant=\"outlined\"\n >\n <TRCard.Content className=\"flex flex-col gap-tinyrack-sm\">\n <div className=\"flex items-center gap-tinyrack-sm\">\n <ShieldCheckIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-info-foreground\"\n />\n <TRText variant=\"body\" weight=\"medium\">\n {t('authorizationContext.title', { app: data.client.name })}\n </TRText>\n </div>\n\n <div className=\"flex min-w-0 items-center gap-tinyrack-xs\">\n <GlobeIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-text-muted\"\n />\n <TRText color=\"muted\" truncate variant=\"caption\">\n {t('authorizationContext.redirect', {\n origin: data.redirect_origin,\n })}\n </TRText>\n </div>\n\n <div className=\"flex flex-col gap-tinyrack-xs\">\n <TRText color=\"muted\" variant=\"caption\" weight=\"medium\">\n {t('authorizationContext.permissions')}\n </TRText>\n {data.scopes.length > 0 ? (\n <ul className=\"flex flex-wrap gap-tinyrack-xs\">\n {data.scopes.map((scope) => (\n <li key={scope.name}>\n <TRBadge uiSize=\"md\" variant=\"neutral\">\n {t(`consent.scope.${scope.name}`, {\n defaultValue: scope.description,\n })}\n </TRBadge>\n </li>\n ))}\n </ul>\n ) : (\n <TRText color=\"muted\" variant=\"caption\">\n {t('authorizationContext.noScopes')}\n </TRText>\n )}\n </div>\n </TRCard.Content>\n </TRCard.Root>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"yQAcA,IAAM,EAAQ,EAAiB,QAAS,CAJtC,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,kDAAmD,IAAK,QAAS,CAAC,EAChF,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAEH,CAAU,QCIlD,SAAgB,EAA2B,CACzC,SACA,YAAY,IACsB,CAKlC,OAJK,EAAwB,CAAM,GAI5B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAwC,YAAmB,QAAS,CAAA,EAHlE,IAIX,CAEA,SAAS,EAA4B,CACnC,SACA,aAIC,CACD,GAAM,CAAE,KAAM,EAAe,EACvB,CAAE,QAAS,EACf,EAAoC,CAAM,CAC5C,EAEA,OACE,EAAA,EAAA,IAAA,CAAC,EAAO,KAAR,CACE,aAAY,EAAE,4BAA4B,EAC/B,YACX,cAAY,wBACZ,QAAQ,KACR,QAAQ,EAAA,EAAA,IAAA,CAAC,UAAD,CAAU,CAAA,EAClB,QAAQ,qBAER,EAAA,EAAA,KAAA,CAAC,EAAO,QAAR,CAAgB,UAAU,yCAA1B,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6CAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,yDACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,QAAQ,OAAO,OAAO,kBAC3B,EAAE,6BAA8B,CAAE,IAAK,EAAK,OAAO,IAAK,CAAC,CACpD,CAAA,CACL,KAEL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,qDAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,oDACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,SAAA,GAAS,QAAQ,mBACpC,EAAE,gCAAiC,CAClC,OAAQ,EAAK,eACf,CAAC,CACK,CAAA,CACL,KAEL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,yCAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,UAAU,OAAO,kBAC5C,EAAE,kCAAkC,CAC/B,CAAA,EACP,EAAK,OAAO,OAAS,GACpB,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,0CACX,EAAK,OAAO,IAAK,IAChB,EAAA,EAAA,IAAA,CAAC,KAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,OAAO,KAAK,QAAQ,mBAC1B,EAAE,iBAAiB,EAAM,OAAQ,CAChC,aAAc,EAAM,WACtB,CAAC,CACM,CAAA,CACP,EANK,EAAM,IAMX,CACL,CACC,CAAA,GAEJ,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,mBAC3B,EAAE,+BAA+B,CAC5B,CAAA,CAEP,GACS,GACL,CAAA,CAEjB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{G as e,J as t,Z as n,b as r,c as i,f as a,q as o,v as s,x as c}from"./createLucideIcon-BPpAIXR_.js";import{_t as l,bn as u,pt as d,un as f}from"./config-DTQCUlfZ.js";import{X as p}from"./shell-header-bar-
|
|
2
|
-
//# sourceMappingURL=avatar-
|
|
1
|
+
import{G as e,J as t,Z as n,b as r,c as i,f as a,q as o,v as s,x as c}from"./createLucideIcon-BPpAIXR_.js";import{_t as l,bn as u,pt as d,un as f}from"./config-DTQCUlfZ.js";import{X as p}from"./shell-header-bar-CgyNXbPS.js";var m=n(t(),1),h=m.createContext(void 0);function g(){let e=m.useContext(h);if(e===void 0)throw Error(s(13));return e}var _={imageLoadingStatus:()=>null},v=o(),y=m.forwardRef(function(e,t){let{className:n,render:r,style:a,...o}=e,[s,c]=m.useState(`idle`),l={imageLoadingStatus:s},u=m.useMemo(()=>({imageLoadingStatus:s,setImageLoadingStatus:c}),[s,c]),d=i(`span`,e,{state:l,ref:t,props:o,stateAttributesMapping:_});return(0,v.jsx)(h.Provider,{value:u,children:d})});function b(e,{referrerPolicy:t,crossOrigin:n,sizes:i,srcSet:o}){let[s,c]=m.useState(`idle`);return r(()=>{if(!e&&!o)return c(`error`),a;let r=!0,s=new window.Image,l=e=>()=>{r&&c(e)};return c(`loading`),s.onload=l(`loaded`),s.onerror=l(`error`),t&&(s.referrerPolicy=t),s.crossOrigin=n??null,i&&(s.sizes=i),o&&(s.srcset=o),e&&(s.src=e),s.complete&&c(s.naturalWidth>0?`loaded`:`error`),()=>{r=!1}},[e,o,i,n,t]),s}var x={..._,...l},S=m.forwardRef(function(e,t){let{className:n,render:a,onLoadingStatusChange:o,style:s,...l}=e,{setImageLoadingStatus:u}=g(),f=b(l.src,l),h=f===`loaded`,{mounted:_,transitionStatus:v,setMounted:y}=p(h),S=m.useRef(null),C=c(e=>{o?.(e),u(e)});r(()=>{f!==`idle`&&C(f)},[f,C]),r(()=>()=>u(`idle`),[u]),d({open:h,ref:S,onComplete(){h||y(!1)}});let w=i(`img`,e,{state:{imageLoadingStatus:f,transitionStatus:v},ref:[t,S],props:l,stateAttributesMapping:x,enabled:_});return _?w:null}),C=u(m.forwardRef(function(e,t){let{className:n,render:r,delay:a=0,style:o,...s}=e,{imageLoadingStatus:c}=g(),[l,u]=m.useState(a===0),d=f();return m.useEffect(()=>(a>0?d.start(a,()=>u(!0)):u(!0),d.clear),[d,a]),i(`span`,e,{state:{imageLoadingStatus:c},ref:t,props:s,stateAttributesMapping:_,enabled:c!==`loaded`&&(a===0||l)})}),`tr-avatar-fallback`),w=u(S,`tr-avatar-image`);function T({className:t,shape:n=`circle`,uiSize:r=`md`,...i}){return(0,v.jsx)(y,{...i,className:e(`tr-avatar`,t),"data-shape":n,"data-ui-size":r})}var E={Root:T,Image:w,Fallback:C};export{E as t};
|
|
2
|
+
//# sourceMappingURL=avatar-BCLugfaZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-BEQjf2x6.js","names":["_formatErrorMessage","Avatar.Fallback","Avatar.Image","Avatar.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/stateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/useImageLoadingStatus.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/AvatarImage.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/fallback/AvatarFallback.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/avatar-fallback.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/avatar-image.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/avatar-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/index.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const AvatarRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") AvatarRootContext.displayName = \"AvatarRootContext\";\nexport function useAvatarRootContext() {\n const context = React.useContext(AvatarRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: AvatarRootContext is missing. Avatar parts must be placed within <Avatar.Root>.' : _formatErrorMessage(13));\n }\n return context;\n}","export const avatarStateAttributesMapping = {\n imageLoadingStatus: () => null\n};","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { AvatarRootContext } from \"./AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\n\n/**\n * Displays a user's profile picture, initials, or fallback icon.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const AvatarRoot = /*#__PURE__*/React.forwardRef(function AvatarRoot(componentProps, forwardedRef) {\n const {\n className,\n render,\n style,\n ...elementProps\n } = componentProps;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');\n const state = {\n imageLoadingStatus\n };\n const contextValue = React.useMemo(() => ({\n imageLoadingStatus,\n setImageLoadingStatus\n }), [imageLoadingStatus, setImageLoadingStatus]);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(AvatarRootContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") AvatarRoot.displayName = \"AvatarRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { NOOP } from \"../../internals/noop.mjs\";\nexport function useImageLoadingStatus(src, {\n referrerPolicy,\n crossOrigin,\n sizes,\n srcSet\n}) {\n const [loadingStatus, setLoadingStatus] = React.useState('idle');\n useIsoLayoutEffect(() => {\n if (!src && !srcSet) {\n setLoadingStatus('error');\n return NOOP;\n }\n let isMounted = true;\n const image = new window.Image();\n const updateStatus = status => () => {\n if (!isMounted) {\n return;\n }\n setLoadingStatus(status);\n };\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n image.crossOrigin = crossOrigin ?? null;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcSet) {\n image.srcset = srcSet;\n }\n if (src) {\n image.src = src;\n }\n\n // Fast path for cached/decoded images\n if (image.complete) {\n setLoadingStatus(image.naturalWidth > 0 ? 'loaded' : 'error');\n }\n return () => {\n isMounted = false;\n };\n }, [src, srcSet, sizes, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.mjs\";\nconst stateAttributesMapping = {\n ...avatarStateAttributesMapping,\n ...transitionStatusMapping\n};\n\n/**\n * The image to be displayed in the avatar.\n * Renders an `<img>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarImage = /*#__PURE__*/React.forwardRef(function AvatarImage(componentProps, forwardedRef) {\n const {\n className,\n render,\n onLoadingStatusChange: onLoadingStatusChangeProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n setImageLoadingStatus\n } = useAvatarRootContext();\n const imageLoadingStatus = useImageLoadingStatus(elementProps.src, elementProps);\n const isVisible = imageLoadingStatus === 'loaded';\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(isVisible);\n const imageRef = React.useRef(null);\n const handleLoadingStatusChange = useStableCallback(status => {\n onLoadingStatusChangeProp?.(status);\n setImageLoadingStatus(status);\n });\n useIsoLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n useIsoLayoutEffect(() => {\n return () => setImageLoadingStatus('idle');\n }, [setImageLoadingStatus]);\n useOpenChangeComplete({\n open: isVisible,\n ref: imageRef,\n onComplete() {\n if (!isVisible) {\n setMounted(false);\n }\n }\n });\n const state = {\n imageLoadingStatus,\n transitionStatus\n };\n const element = useRenderElement('img', componentProps, {\n state,\n ref: [forwardedRef, imageRef],\n props: elementProps,\n stateAttributesMapping,\n enabled: mounted\n });\n if (!mounted) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarImage.displayName = \"AvatarImage\";","'use client';\n\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n\n/**\n * Rendered when the image fails to load or when no image is provided.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarFallback = /*#__PURE__*/React.forwardRef(function AvatarFallback(componentProps, forwardedRef) {\n const {\n className,\n render,\n delay = 0,\n style,\n ...elementProps\n } = componentProps;\n const {\n imageLoadingStatus\n } = useAvatarRootContext();\n const [delayPassed, setDelayPassed] = React.useState(delay === 0);\n const timeout = useTimeout();\n React.useEffect(() => {\n if (delay > 0) {\n timeout.start(delay, () => setDelayPassed(true));\n } else {\n // Once the fallback is shown without a delay, keep it visible. Otherwise a later\n // change from no delay to a number would re-hide an already-visible fallback.\n setDelayPassed(true);\n }\n return timeout.clear;\n }, [timeout, delay]);\n const state = {\n imageLoadingStatus\n };\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping,\n enabled: imageLoadingStatus !== 'loaded' && (delay === 0 || delayPassed)\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarFallback.displayName = \"AvatarFallback\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-fallback.tsx\nconst TRAvatarFallback = createComponentPart(Avatar.Fallback, \"tr-avatar-fallback\");\n//#endregion\nexport { TRAvatarFallback };\n\n//# sourceMappingURL=avatar-fallback.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-image.tsx\nconst TRAvatarImage = createComponentPart(Avatar.Image, \"tr-avatar-image\");\n//#endregion\nexport { TRAvatarImage };\n\n//# sourceMappingURL=avatar-image.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-root.tsx\nfunction TRAvatarRoot({ className, shape = \"circle\", uiSize = \"md\", ...props }) {\n\treturn /* @__PURE__ */ jsx(Avatar.Root, {\n\t\t...props,\n\t\tclassName: mergeComponentClassName(\"tr-avatar\", className),\n\t\t\"data-shape\": shape,\n\t\t\"data-ui-size\": uiSize\n\t});\n}\n//#endregion\nexport { TRAvatarRoot };\n\n//# sourceMappingURL=avatar-root.js.map","import { TRAvatarFallback } from \"./avatar-fallback.js\";\nimport { TRAvatarImage } from \"./avatar-image.js\";\nimport { TRAvatarRoot } from \"./avatar-root.js\";\n//#region src/components/avatar/index.tsx\nconst TRAvatar = {\n\tRoot: TRAvatarRoot,\n\tImage: TRAvatarImage,\n\tFallback: TRAvatarFallback\n};\n//#endregion\nexport { TRAvatar, TRAvatarFallback, TRAvatarImage, TRAvatarRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar-BCLugfaZ.js","names":["_formatErrorMessage","Avatar.Fallback","Avatar.Image","Avatar.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/stateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/useImageLoadingStatus.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/AvatarImage.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/fallback/AvatarFallback.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/avatar-fallback.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/avatar-image.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/avatar-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/avatar/index.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const AvatarRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") AvatarRootContext.displayName = \"AvatarRootContext\";\nexport function useAvatarRootContext() {\n const context = React.useContext(AvatarRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: AvatarRootContext is missing. Avatar parts must be placed within <Avatar.Root>.' : _formatErrorMessage(13));\n }\n return context;\n}","export const avatarStateAttributesMapping = {\n imageLoadingStatus: () => null\n};","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { AvatarRootContext } from \"./AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\n\n/**\n * Displays a user's profile picture, initials, or fallback icon.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const AvatarRoot = /*#__PURE__*/React.forwardRef(function AvatarRoot(componentProps, forwardedRef) {\n const {\n className,\n render,\n style,\n ...elementProps\n } = componentProps;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');\n const state = {\n imageLoadingStatus\n };\n const contextValue = React.useMemo(() => ({\n imageLoadingStatus,\n setImageLoadingStatus\n }), [imageLoadingStatus, setImageLoadingStatus]);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(AvatarRootContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") AvatarRoot.displayName = \"AvatarRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { NOOP } from \"../../internals/noop.mjs\";\nexport function useImageLoadingStatus(src, {\n referrerPolicy,\n crossOrigin,\n sizes,\n srcSet\n}) {\n const [loadingStatus, setLoadingStatus] = React.useState('idle');\n useIsoLayoutEffect(() => {\n if (!src && !srcSet) {\n setLoadingStatus('error');\n return NOOP;\n }\n let isMounted = true;\n const image = new window.Image();\n const updateStatus = status => () => {\n if (!isMounted) {\n return;\n }\n setLoadingStatus(status);\n };\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n image.crossOrigin = crossOrigin ?? null;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcSet) {\n image.srcset = srcSet;\n }\n if (src) {\n image.src = src;\n }\n\n // Fast path for cached/decoded images\n if (image.complete) {\n setLoadingStatus(image.naturalWidth > 0 ? 'loaded' : 'error');\n }\n return () => {\n isMounted = false;\n };\n }, [src, srcSet, sizes, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.mjs\";\nconst stateAttributesMapping = {\n ...avatarStateAttributesMapping,\n ...transitionStatusMapping\n};\n\n/**\n * The image to be displayed in the avatar.\n * Renders an `<img>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarImage = /*#__PURE__*/React.forwardRef(function AvatarImage(componentProps, forwardedRef) {\n const {\n className,\n render,\n onLoadingStatusChange: onLoadingStatusChangeProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n setImageLoadingStatus\n } = useAvatarRootContext();\n const imageLoadingStatus = useImageLoadingStatus(elementProps.src, elementProps);\n const isVisible = imageLoadingStatus === 'loaded';\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(isVisible);\n const imageRef = React.useRef(null);\n const handleLoadingStatusChange = useStableCallback(status => {\n onLoadingStatusChangeProp?.(status);\n setImageLoadingStatus(status);\n });\n useIsoLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n useIsoLayoutEffect(() => {\n return () => setImageLoadingStatus('idle');\n }, [setImageLoadingStatus]);\n useOpenChangeComplete({\n open: isVisible,\n ref: imageRef,\n onComplete() {\n if (!isVisible) {\n setMounted(false);\n }\n }\n });\n const state = {\n imageLoadingStatus,\n transitionStatus\n };\n const element = useRenderElement('img', componentProps, {\n state,\n ref: [forwardedRef, imageRef],\n props: elementProps,\n stateAttributesMapping,\n enabled: mounted\n });\n if (!mounted) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarImage.displayName = \"AvatarImage\";","'use client';\n\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n\n/**\n * Rendered when the image fails to load or when no image is provided.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarFallback = /*#__PURE__*/React.forwardRef(function AvatarFallback(componentProps, forwardedRef) {\n const {\n className,\n render,\n delay = 0,\n style,\n ...elementProps\n } = componentProps;\n const {\n imageLoadingStatus\n } = useAvatarRootContext();\n const [delayPassed, setDelayPassed] = React.useState(delay === 0);\n const timeout = useTimeout();\n React.useEffect(() => {\n if (delay > 0) {\n timeout.start(delay, () => setDelayPassed(true));\n } else {\n // Once the fallback is shown without a delay, keep it visible. Otherwise a later\n // change from no delay to a number would re-hide an already-visible fallback.\n setDelayPassed(true);\n }\n return timeout.clear;\n }, [timeout, delay]);\n const state = {\n imageLoadingStatus\n };\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping,\n enabled: imageLoadingStatus !== 'loaded' && (delay === 0 || delayPassed)\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarFallback.displayName = \"AvatarFallback\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-fallback.tsx\nconst TRAvatarFallback = createComponentPart(Avatar.Fallback, \"tr-avatar-fallback\");\n//#endregion\nexport { TRAvatarFallback };\n\n//# sourceMappingURL=avatar-fallback.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-image.tsx\nconst TRAvatarImage = createComponentPart(Avatar.Image, \"tr-avatar-image\");\n//#endregion\nexport { TRAvatarImage };\n\n//# sourceMappingURL=avatar-image.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-root.tsx\nfunction TRAvatarRoot({ className, shape = \"circle\", uiSize = \"md\", ...props }) {\n\treturn /* @__PURE__ */ jsx(Avatar.Root, {\n\t\t...props,\n\t\tclassName: mergeComponentClassName(\"tr-avatar\", className),\n\t\t\"data-shape\": shape,\n\t\t\"data-ui-size\": uiSize\n\t});\n}\n//#endregion\nexport { TRAvatarRoot };\n\n//# sourceMappingURL=avatar-root.js.map","import { TRAvatarFallback } from \"./avatar-fallback.js\";\nimport { TRAvatarImage } from \"./avatar-image.js\";\nimport { TRAvatarRoot } from \"./avatar-root.js\";\n//#region src/components/avatar/index.tsx\nconst TRAvatar = {\n\tRoot: TRAvatarRoot,\n\tImage: TRAvatarImage,\n\tFallback: TRAvatarFallback\n};\n//#endregion\nexport { TRAvatar, TRAvatarFallback, TRAvatarImage, TRAvatarRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge-CsOfUji0.js","names":[],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.
|
|
1
|
+
{"version":3,"file":"badge-CsOfUji0.js","names":[],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/badge/badge.js"],"sourcesContent":["import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/badge/badge.tsx\nfunction TRBadge({ className, uiSize = \"md\", variant = \"neutral\", ...props }) {\n\treturn /* @__PURE__ */ jsx(\"span\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-badge\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\t\"data-variant\": variant\n\t});\n}\n//#endregion\nexport { TRBadge };\n\n//# sourceMappingURL=badge.js.map"],"x_google_ignoreList":[0],"mappings":"oEAGA,SAAS,EAAQ,CAAE,YAAW,SAAS,KAAM,UAAU,UAAW,GAAG,GAAS,CAC7E,OAAuB,EAAA,EAAA,IAAA,CAAI,OAAQ,CAClC,GAAG,EACH,UAAW,EAAgB,WAAY,CAAS,EAChD,eAAgB,EAChB,eAAgB,CACjB,CAAC,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{G as e,J as t,M as n,S as r,Z as i,b as a,c as o,d as s,f as c,g as l,h as u,m as d,q as f,v as p,y as m}from"./createLucideIcon-BPpAIXR_.js";import{P as ee,Y as te,_t as ne,bn as h,bt as re,pt as g,xt as ie}from"./config-DTQCUlfZ.js";import{O as ae,S as oe,T as se,X as ce,b as le,g as ue,h as de,w as _,y as fe}from"./shell-header-bar-
|
|
2
|
-
//# sourceMappingURL=checkbox-
|
|
1
|
+
import{G as e,J as t,M as n,S as r,Z as i,b as a,c as o,d as s,f as c,g as l,h as u,m as d,q as f,v as p,y as m}from"./createLucideIcon-BPpAIXR_.js";import{P as ee,Y as te,_t as ne,bn as h,bt as re,pt as g,xt as ie}from"./config-DTQCUlfZ.js";import{O as ae,S as oe,T as se,X as ce,b as le,g as ue,h as de,w as _,y as fe}from"./shell-header-bar-CgyNXbPS.js";import{n as pe}from"./FieldItemContext-BeNfhOsU.js";import{t as me}from"./useAriaLabelledBy-7uIPXK-0.js";var v=i(t(),1);function he(e){if(!e)return null;for(let t of e.elements){let e=t.tagName;if(e===`BUTTON`||e===`INPUT`){let e=t;if(e.type===`submit`)return e}}return null}function y(e){return{checked(t){return e.indeterminate?{}:t?{"data-checked":``}:{"data-unchecked":``}},..._}}var b=v.createContext(void 0);function ge(){return v.useContext(b)}var x=v.createContext(void 0);function S(){let e=v.useContext(x);if(e===void 0)throw Error(p(14));return e}var C=f(),_e=`data-parent`,w=v.forwardRef(function(e,t){let{checked:i,className:f,defaultChecked:p=!1,"aria-labelledby":ne,disabled:h=!1,form:g,id:ce,indeterminate:_=!1,inputRef:b,name:S,onCheckedChange:w,parent:T=!1,readOnly:E=!1,render:ve,required:D=!1,uncheckedValue:O,value:k,nativeButton:A=!1,style:ye,...be}=e,{clearErrors:xe}=ue(),{disabled:Se,name:Ce,setDirty:we,setFilled:j,setFocused:M,setTouched:Te,state:N,validationMode:Ee,validityData:De,validation:Oe}=oe(),ke=pe(),{labelId:Ae,controlId:je,registerControlId:P,getDescriptionProps:F}=fe(),I=ge(),L=I?.allValues===void 0?void 0:I.parent,R=L!==void 0,z=Se||ke.disabled||I?.disabled||h,B=Ce??S,V=k??B,Me=ae(),Ne=ae(),H=ce||je;R&&(T?H=Ne:V===void 0?H||=Ne:H=`${L.id}-${V}`);let U={};R&&(T?U=L.getParentProps():V!==void 0&&(U=L.getChildProps(V)));let{checked:Pe=i,indeterminate:Fe=_,onCheckedChange:Ie,...Le}=U,W=I?.value,G=v.useRef(null),K=r(()=>Symbol()),q=v.useRef(!1),{getButtonProps:Re,buttonRef:ze}=u({disabled:z,native:A}),J=I?.validation??Oe,[Y,Be]=se({controlled:V!==void 0&&W!==void 0&&!T?W.includes(V):Pe,default:p,name:`Checkbox`,state:`checked`}),X=R?!!Pe:Y,Z=R&&Fe||_;a(()=>{P!==c&&(q.current=!0,P(K.current,H))},[H,P,K]),v.useEffect(()=>{let e=K.current;return()=>{!q.current||P===c||(q.current=!1,P(e,void 0))}},[P,K]),le(G,Me,Y,void 0,!I&&!z,S);let Q=v.useRef(null),Ve=J.registerInput,He=I?V:void 0,Ue=v.useCallback(e=>Ve(e,{controlRef:G,value:He}),[Ve,He]),We=d(b,Q,T?void 0:Ue),Ge=me(ne,Ae,Q,!A,H??void 0);a(()=>{Q.current&&(Q.current.indeterminate=Z,Y&&j(!0))},[Y,Z,j]),de(Y,()=>{I||(xe(B),j(Y),we(Y!==De.initialValue),J.change(Y))});let Ke=m({checked:Y,disabled:z,form:g,name:T?void 0:B,id:A?void 0:H??void 0,required:D,ref:We,style:B?ie:re,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(E){e.preventDefault();return}let t=e.currentTarget.checked,n=ee(te,e.nativeEvent);if(w?.(t,n),!n.isCanceled&&(Ie?.(t,n),!n.isCanceled&&(Be(t),V!==void 0&&I!==void 0&&!T&&!R))){let e=t?[...I.value,V]:I.value.filter(e=>e!==V);I.setValue(e,n)}},onClick(e){e.stopPropagation()},onFocus(){G.current?.focus()}},k===void 0?s:{value:(I?Y&&k:k)||``},F,e=>J.getValidationProps(z,e));v.useEffect(()=>{if(!L||V===void 0)return;let e=L.disabledStatesRef.current;return e.set(V,z),()=>{e.delete(V)}},[L,z,V]);let $=v.useMemo(()=>({...N,checked:X,disabled:z,readOnly:E,required:D,indeterminate:Z}),[N,X,z,E,D,Z]),qe=y($),Je=o(`span`,e,{state:$,ref:[ze,G,t],props:[{id:A?H??void 0:Me,role:`checkbox`,"aria-checked":Z?`mixed`:X,"aria-readonly":E||void 0,"aria-required":D||void 0,"aria-labelledby":Ge,[_e]:T?``:void 0,onFocus(){z||M(!0)},onBlur(){let e=Q.current;e&&(Te(!0),M(!1),Ee===`onBlur`&&J.commit(I?W:e.checked))},onKeyDown(e){if(e.key!==`Enter`||(e.preventBaseUIHandler(),e.defaultPrevented))return;let t=Q.current?.form??null,r=e.currentTarget,i=e.nativeEvent,a=e.preventDefault,o=i.preventDefault,s=!1;e.preventDefault=()=>{s=!0,a.call(e)},i.preventDefault=()=>{s=!0,o.call(i)},o.call(i),n(r).queueMicrotask(()=>{e.preventDefault=a,i.preventDefault=o,s||he(t)?.click()})},onClick(e){if(E||z)return;e.preventDefault();let t=Q.current;t&&l(t,e)}},be,Le,Re,F,e=>J.getValidationProps(z,e)],stateAttributesMapping:qe});return(0,C.jsxs)(x.Provider,{value:$,children:[Je,!Y&&!I&&B&&!T&&O!==void 0&&(0,C.jsx)(`input`,{type:`hidden`,form:g,name:B,value:O,disabled:z}),(0,C.jsx)(`input`,{...Ke,suppressHydrationWarning:!0})]})}),T=h(v.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...s}=e,c=S(),l=c.checked||c.indeterminate,{mounted:u,transitionStatus:d,setMounted:f}=ce(l),p=v.useRef(null),m={...c,transitionStatus:d};g({open:l,ref:p,onComplete(){l||f(!1)}});let ee={...y(c),...ne},te=a||u,h=o(`span`,e,{ref:[t,p],state:m,stateAttributesMapping:ee,props:s});return te?h:null}),`tr-checkbox-indicator`);function E({checked:t,className:n,ref:r,uiSize:i=`md`,...a}){let o=(0,v.useRef)(null),[s,c]=(0,v.useState)(0);return(0,v.useEffect)(()=>{if(t!==void 0)return;let e=e=>{let t=e.target;if(!(t instanceof HTMLFormElement))return;let n=o.current?.nextElementSibling??null;for(;n instanceof HTMLInputElement;){if(n.type===`checkbox`&&n.form===t){c(e=>e+1);return}n=n.nextElementSibling}};return document.addEventListener(`reset`,e,!0),()=>document.removeEventListener(`reset`,e,!0)},[t]),(0,v.createElement)(w,{...a,checked:t,className:e(`tr-checkbox`,n),"data-ui-size":i,key:s,ref:e=>{o.current=e,typeof r==`function`?r(e):r&&(r.current=e)}})}var ve={Root:E,Indicator:T};export{ve as t};
|
|
2
|
+
//# sourceMappingURL=checkbox-CFVDS3zJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-gdHnSFQ-.js","names":["_formatErrorMessage","REASONS.none","Checkbox.Indicator","Checkbox.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+utils@0.3.2_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/utils/getDefaultFormSubmitter.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/utils/getCheckboxStateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox-group/CheckboxGroupContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/indicator/CheckboxIndicator.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/checkbox/checkbox-indicator.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/checkbox/checkbox-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/checkbox/index.js"],"sourcesContent":["/**\n * Returns the default button a browser uses for implicit form submission.\n *\n * This is useful for custom form controls that need to mirror native Enter key behavior.\n * Clicking the returned submitter preserves browser semantics such as the submitter's click\n * event, `SubmitEvent.submitter`, and submitter-specific attributes.\n *\n * The function follows the controls exposed by `form.elements`, which includes controls associated\n * through the `form` attribute. Disabled submitters can be returned because the default button is\n * determined before disabled state is considered; clicking a disabled submitter is a no-op.\n */\nexport function getDefaultFormSubmitter(form) {\n if (!form) {\n return null;\n }\n for (const candidate of form.elements) {\n const tagName = candidate.tagName;\n if (tagName === 'BUTTON' || tagName === 'INPUT') {\n const button = candidate;\n\n // Intentionally excludes input[type=\"image\"]: Chromium omits it from form.elements,\n // so supporting it would require separate traversal for an exotic submitter type.\n if (button.type === 'submit') {\n return button;\n }\n }\n }\n return null;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nexport function getCheckboxStateAttributesMapping(state) {\n return {\n checked(value) {\n if (state.indeterminate) {\n // `data-indeterminate` is already handled by the `indeterminate` prop.\n return {};\n }\n if (value) {\n return {\n 'data-checked': ''\n };\n }\n return {\n 'data-unchecked': ''\n };\n },\n ...fieldValidityMapping\n };\n}","'use client';\n\nimport * as React from 'react';\nexport const CheckboxGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\nexport function useCheckboxGroupContext() {\n return React.useContext(CheckboxGroupContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const CheckboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxRootContext.displayName = \"CheckboxRootContext\";\nexport function useCheckboxRootContext() {\n const context = React.useContext(CheckboxRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: CheckboxRootContext is missing. Checkbox parts must be placed within <Checkbox.Root>.' : _formatErrorMessage(14));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { getDefaultFormSubmitter } from '@base-ui/utils/getDefaultFormSubmitter';\nimport { NOOP } from \"../../internals/noop.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { dispatchClickWithModifiers } from \"../../utils/dispatchClickWithModifiers.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.mjs\";\nimport { useFieldItemContext } from \"../../field/item/FieldItemContext.mjs\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.mjs\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useAriaLabelledBy } from \"../../internals/labelable-provider/useAriaLabelledBy.mjs\";\nimport { useCheckboxGroupContext } from \"../../checkbox-group/CheckboxGroupContext.mjs\";\nimport { CheckboxRootContext } from \"./CheckboxRootContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const PARENT_CHECKBOX = 'data-parent';\n\n/**\n * Represents the checkbox itself.\n * Renders a `<span>` element and a hidden `<input>` beside.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxRoot = /*#__PURE__*/React.forwardRef(function CheckboxRoot(componentProps, forwardedRef) {\n const {\n checked: checkedProp,\n className,\n defaultChecked = false,\n 'aria-labelledby': ariaLabelledByProp,\n disabled: disabledProp = false,\n form,\n id: idProp,\n indeterminate = false,\n inputRef: inputRefProp,\n name: nameProp,\n onCheckedChange,\n parent = false,\n readOnly = false,\n render,\n required = false,\n uncheckedValue,\n value: valueProp,\n nativeButton = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n clearErrors\n } = useFormContext();\n const {\n disabled: rootDisabled,\n name: fieldName,\n setDirty,\n setFilled,\n setFocused,\n setTouched,\n state: fieldState,\n validationMode,\n validityData,\n validation: localValidation\n } = useFieldRootContext();\n const fieldItemContext = useFieldItemContext();\n const {\n labelId,\n controlId,\n registerControlId,\n getDescriptionProps\n } = useLabelableContext();\n const groupContext = useCheckboxGroupContext();\n const parentContext = groupContext?.allValues === undefined ? undefined : groupContext.parent;\n const isGroupedWithParent = parentContext !== undefined;\n const disabled = rootDisabled || fieldItemContext.disabled || groupContext?.disabled || disabledProp;\n const name = fieldName ?? nameProp;\n const value = valueProp ?? name;\n const id = useBaseUiId();\n const generatedInputId = useBaseUiId();\n let inputId = idProp || controlId;\n if (isGroupedWithParent) {\n if (parent) {\n inputId = generatedInputId;\n } else if (value !== undefined) {\n inputId = `${parentContext.id}-${value}`;\n } else {\n inputId ||= generatedInputId;\n }\n }\n let groupProps = {};\n if (isGroupedWithParent) {\n if (parent) {\n groupProps = parentContext.getParentProps();\n } else if (value !== undefined) {\n groupProps = parentContext.getChildProps(value);\n }\n }\n const {\n checked: groupChecked = checkedProp,\n indeterminate: groupIndeterminate = indeterminate,\n onCheckedChange: groupOnChange,\n ...otherGroupProps\n } = groupProps;\n const groupValue = groupContext?.value;\n const controlRef = React.useRef(null);\n const controlSourceRef = useRefWithInit(() => Symbol());\n const hasRegisteredRef = React.useRef(false);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const validation = groupContext?.validation ?? localValidation;\n const [checked, setCheckedState] = useControlled({\n controlled: value !== undefined && groupValue !== undefined && !parent ? groupValue.includes(value) : groupChecked,\n default: defaultChecked,\n name: 'Checkbox',\n state: 'checked'\n });\n const computedChecked = isGroupedWithParent ? Boolean(groupChecked) : checked;\n const computedIndeterminate = isGroupedWithParent ? groupIndeterminate || indeterminate : indeterminate;\n\n // can't use useLabelableId because of optional groupContext and/or parent\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, inputId);\n return undefined;\n }, [inputId, registerControlId, controlSourceRef]);\n React.useEffect(() => {\n const controlSource = controlSourceRef.current;\n return () => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSource, undefined);\n };\n }, [registerControlId, controlSourceRef]);\n useRegisterFieldControl(controlRef, id, checked, undefined, !groupContext && !disabled, nameProp);\n const inputRef = React.useRef(null);\n const registerFieldInput = validation.registerInput;\n const registeredInputValue = groupContext ? value : undefined;\n const registerInput = React.useCallback(element => registerFieldInput(element, {\n controlRef,\n value: registeredInputValue\n }), [registerFieldInput, registeredInputValue]);\n const mergedInputRef = useMergedRefs(inputRefProp, inputRef, parent ? undefined : registerInput);\n const ariaLabelledBy = useAriaLabelledBy(ariaLabelledByProp, labelId, inputRef, !nativeButton, inputId ?? undefined);\n useIsoLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = computedIndeterminate;\n if (checked) {\n setFilled(true);\n }\n }\n }, [checked, computedIndeterminate, setFilled]);\n useValueChanged(checked, () => {\n if (groupContext) {\n return;\n }\n clearErrors(name);\n setFilled(checked);\n setDirty(checked !== validityData.initialValue);\n validation.change(checked);\n });\n const inputProps = mergeProps({\n checked,\n disabled,\n form,\n // parent checkboxes unset `name` to be excluded from form submission\n name: parent ? undefined : name,\n // Set `id` to stop Chrome warning about an unassociated input.\n // When using a native button, the `id` is applied to the button instead.\n id: nativeButton ? undefined : inputId ?? undefined,\n required,\n ref: mergedInputRef,\n style: name ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n type: 'checkbox',\n 'aria-hidden': true,\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const nextChecked = event.currentTarget.checked;\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n onCheckedChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n groupOnChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n setCheckedState(nextChecked);\n if (value !== undefined && groupContext !== undefined && !parent && !isGroupedWithParent) {\n const nextGroupValue = nextChecked ? [...groupContext.value, value] : groupContext.value.filter(item => item !== value);\n groupContext.setValue(nextGroupValue, details);\n }\n },\n onClick(event) {\n // The click dispatched from the root's `onClick` is an implementation detail\n // and must not reach ancestors, which already receive the original click.\n event.stopPropagation();\n },\n onFocus() {\n controlRef.current?.focus();\n }\n },\n // React <19 sets an empty value if `undefined` is passed explicitly\n // To avoid this, we only set the value if it's defined\n valueProp !== undefined ? {\n value: (groupContext ? checked && valueProp : valueProp) || ''\n } : EMPTY_OBJECT, getDescriptionProps, props => validation.getValidationProps(disabled, props));\n React.useEffect(() => {\n if (!parentContext || value === undefined) {\n return undefined;\n }\n const disabledStates = parentContext.disabledStatesRef.current;\n disabledStates.set(value, disabled);\n return () => {\n disabledStates.delete(value);\n };\n }, [parentContext, disabled, value]);\n const state = React.useMemo(() => ({\n ...fieldState,\n checked: computedChecked,\n disabled,\n readOnly,\n required,\n indeterminate: computedIndeterminate\n }), [fieldState, computedChecked, disabled, readOnly, required, computedIndeterminate]);\n const stateAttributesMapping = getCheckboxStateAttributesMapping(state);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [buttonRef, controlRef, forwardedRef],\n props: [{\n id: nativeButton ? inputId ?? undefined : id,\n role: 'checkbox',\n 'aria-checked': computedIndeterminate ? 'mixed' : computedChecked,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': ariaLabelledBy,\n [PARENT_CHECKBOX]: parent ? '' : undefined,\n onFocus() {\n if (!disabled) {\n setFocused(true);\n }\n },\n onBlur() {\n const inputEl = inputRef.current;\n if (!inputEl) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(groupContext ? groupValue : inputEl.checked);\n }\n },\n onKeyDown(event) {\n if (event.key !== 'Enter') {\n return;\n }\n\n // Let consumer `preventDefault()` handlers opt out while defensively stopping\n // any remaining Base UI Enter handling from treating the checkbox as a button.\n event.preventBaseUIHandler();\n if (event.defaultPrevented) {\n return;\n }\n const formToSubmit = inputRef.current?.form ?? null;\n const currentTarget = event.currentTarget;\n const nativeEvent = event.nativeEvent;\n const originalPreventDefault = event.preventDefault;\n const originalNativePreventDefault = nativeEvent.preventDefault;\n let preventDefaultCalledAfterPropagation = false;\n event.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalPreventDefault.call(event);\n };\n nativeEvent.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalNativePreventDefault.call(nativeEvent);\n };\n\n // Enter should not activate/toggle the checkbox. Cancel the native button behavior\n // without setting React's synthetic `defaultPrevented`, so ancestor React handlers\n // can still opt out by calling `preventDefault()` during propagation.\n originalNativePreventDefault.call(nativeEvent);\n ownerWindow(currentTarget).queueMicrotask(() => {\n event.preventDefault = originalPreventDefault;\n nativeEvent.preventDefault = originalNativePreventDefault;\n if (!preventDefaultCalledAfterPropagation) {\n getDefaultFormSubmitter(formToSubmit)?.click();\n }\n });\n },\n onClick(event) {\n if (readOnly || disabled) {\n return;\n }\n event.preventDefault();\n const input = inputRef.current;\n if (!input) {\n return;\n }\n dispatchClickWithModifiers(input, event);\n }\n }, elementProps, otherGroupProps, getButtonProps, getDescriptionProps, props => validation.getValidationProps(disabled, props)],\n stateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(CheckboxRootContext.Provider, {\n value: state,\n children: [element, !checked && !groupContext && name && !parent && uncheckedValue !== undefined && /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: uncheckedValue,\n disabled: disabled\n }), /*#__PURE__*/_jsx(\"input\", {\n ...inputProps,\n suppressHydrationWarning: true\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxRoot.displayName = \"CheckboxRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useCheckboxRootContext } from \"../root/CheckboxRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\n\n/**\n * Indicates whether the checkbox is ticked.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxIndicator = /*#__PURE__*/React.forwardRef(function CheckboxIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted = false,\n ...elementProps\n } = componentProps;\n const rootState = useCheckboxRootContext();\n const rendered = rootState.checked || rootState.indeterminate;\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(rendered);\n const indicatorRef = React.useRef(null);\n const state = {\n ...rootState,\n transitionStatus\n };\n useOpenChangeComplete({\n open: rendered,\n ref: indicatorRef,\n onComplete() {\n if (!rendered) {\n setMounted(false);\n }\n }\n });\n const baseStateAttributesMapping = getCheckboxStateAttributesMapping(rootState);\n const stateAttributesMapping = {\n ...baseStateAttributesMapping,\n ...transitionStatusMapping\n };\n const shouldRender = keepMounted || mounted;\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n stateAttributesMapping,\n props: elementProps\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxIndicator.displayName = \"CheckboxIndicator\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-indicator.tsx\nconst TRCheckboxIndicator = createComponentPart(Checkbox.Indicator, \"tr-checkbox-indicator\");\n//#endregion\nexport { TRCheckboxIndicator };\n\n//# sourceMappingURL=checkbox-indicator.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { createElement, useEffect, useRef, useState } from \"react\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-root.tsx\nfunction TRCheckboxRoot({ checked, className, ref, uiSize = \"md\", ...props }) {\n\tconst rootRef = useRef(null);\n\tconst [resetKey, setResetKey] = useState(0);\n\tuseEffect(() => {\n\t\tif (checked !== void 0) return;\n\t\tconst reset = (event) => {\n\t\t\tconst form = event.target;\n\t\t\tif (!(form instanceof HTMLFormElement)) return;\n\t\t\tlet sibling = rootRef.current?.nextElementSibling ?? null;\n\t\t\twhile (sibling instanceof HTMLInputElement) {\n\t\t\t\tif (sibling.type === \"checkbox\" && sibling.form === form) {\n\t\t\t\t\tsetResetKey((current) => current + 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsibling = sibling.nextElementSibling;\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"reset\", reset, true);\n\t\treturn () => document.removeEventListener(\"reset\", reset, true);\n\t}, [checked]);\n\treturn /* @__PURE__ */ createElement(Checkbox.Root, {\n\t\t...props,\n\t\tchecked,\n\t\tclassName: mergeComponentClassName(\"tr-checkbox\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\tkey: resetKey,\n\t\tref: (node) => {\n\t\t\trootRef.current = node;\n\t\t\tif (typeof ref === \"function\") ref(node);\n\t\t\telse if (ref) ref.current = node;\n\t\t}\n\t});\n}\n//#endregion\nexport { TRCheckboxRoot };\n\n//# sourceMappingURL=checkbox-root.js.map","import { TRCheckboxIndicator } from \"./checkbox-indicator.js\";\nimport { TRCheckboxRoot } from \"./checkbox-root.js\";\n//#region src/components/checkbox/index.tsx\nconst TRCheckbox = {\n\tRoot: TRCheckboxRoot,\n\tIndicator: TRCheckboxIndicator\n};\n//#endregion\nexport { TRCheckbox, TRCheckboxIndicator, TRCheckboxRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox-CFVDS3zJ.js","names":["_formatErrorMessage","REASONS.none","Checkbox.Indicator","Checkbox.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+utils@0.3.2_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/utils/getDefaultFormSubmitter.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/utils/getCheckboxStateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox-group/CheckboxGroupContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/indicator/CheckboxIndicator.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/checkbox/checkbox-indicator.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/checkbox/checkbox-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.27.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/checkbox/index.js"],"sourcesContent":["/**\n * Returns the default button a browser uses for implicit form submission.\n *\n * This is useful for custom form controls that need to mirror native Enter key behavior.\n * Clicking the returned submitter preserves browser semantics such as the submitter's click\n * event, `SubmitEvent.submitter`, and submitter-specific attributes.\n *\n * The function follows the controls exposed by `form.elements`, which includes controls associated\n * through the `form` attribute. Disabled submitters can be returned because the default button is\n * determined before disabled state is considered; clicking a disabled submitter is a no-op.\n */\nexport function getDefaultFormSubmitter(form) {\n if (!form) {\n return null;\n }\n for (const candidate of form.elements) {\n const tagName = candidate.tagName;\n if (tagName === 'BUTTON' || tagName === 'INPUT') {\n const button = candidate;\n\n // Intentionally excludes input[type=\"image\"]: Chromium omits it from form.elements,\n // so supporting it would require separate traversal for an exotic submitter type.\n if (button.type === 'submit') {\n return button;\n }\n }\n }\n return null;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nexport function getCheckboxStateAttributesMapping(state) {\n return {\n checked(value) {\n if (state.indeterminate) {\n // `data-indeterminate` is already handled by the `indeterminate` prop.\n return {};\n }\n if (value) {\n return {\n 'data-checked': ''\n };\n }\n return {\n 'data-unchecked': ''\n };\n },\n ...fieldValidityMapping\n };\n}","'use client';\n\nimport * as React from 'react';\nexport const CheckboxGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\nexport function useCheckboxGroupContext() {\n return React.useContext(CheckboxGroupContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const CheckboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxRootContext.displayName = \"CheckboxRootContext\";\nexport function useCheckboxRootContext() {\n const context = React.useContext(CheckboxRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: CheckboxRootContext is missing. Checkbox parts must be placed within <Checkbox.Root>.' : _formatErrorMessage(14));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { getDefaultFormSubmitter } from '@base-ui/utils/getDefaultFormSubmitter';\nimport { NOOP } from \"../../internals/noop.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { dispatchClickWithModifiers } from \"../../utils/dispatchClickWithModifiers.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.mjs\";\nimport { useFieldItemContext } from \"../../field/item/FieldItemContext.mjs\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.mjs\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useAriaLabelledBy } from \"../../internals/labelable-provider/useAriaLabelledBy.mjs\";\nimport { useCheckboxGroupContext } from \"../../checkbox-group/CheckboxGroupContext.mjs\";\nimport { CheckboxRootContext } from \"./CheckboxRootContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const PARENT_CHECKBOX = 'data-parent';\n\n/**\n * Represents the checkbox itself.\n * Renders a `<span>` element and a hidden `<input>` beside.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxRoot = /*#__PURE__*/React.forwardRef(function CheckboxRoot(componentProps, forwardedRef) {\n const {\n checked: checkedProp,\n className,\n defaultChecked = false,\n 'aria-labelledby': ariaLabelledByProp,\n disabled: disabledProp = false,\n form,\n id: idProp,\n indeterminate = false,\n inputRef: inputRefProp,\n name: nameProp,\n onCheckedChange,\n parent = false,\n readOnly = false,\n render,\n required = false,\n uncheckedValue,\n value: valueProp,\n nativeButton = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n clearErrors\n } = useFormContext();\n const {\n disabled: rootDisabled,\n name: fieldName,\n setDirty,\n setFilled,\n setFocused,\n setTouched,\n state: fieldState,\n validationMode,\n validityData,\n validation: localValidation\n } = useFieldRootContext();\n const fieldItemContext = useFieldItemContext();\n const {\n labelId,\n controlId,\n registerControlId,\n getDescriptionProps\n } = useLabelableContext();\n const groupContext = useCheckboxGroupContext();\n const parentContext = groupContext?.allValues === undefined ? undefined : groupContext.parent;\n const isGroupedWithParent = parentContext !== undefined;\n const disabled = rootDisabled || fieldItemContext.disabled || groupContext?.disabled || disabledProp;\n const name = fieldName ?? nameProp;\n const value = valueProp ?? name;\n const id = useBaseUiId();\n const generatedInputId = useBaseUiId();\n let inputId = idProp || controlId;\n if (isGroupedWithParent) {\n if (parent) {\n inputId = generatedInputId;\n } else if (value !== undefined) {\n inputId = `${parentContext.id}-${value}`;\n } else {\n inputId ||= generatedInputId;\n }\n }\n let groupProps = {};\n if (isGroupedWithParent) {\n if (parent) {\n groupProps = parentContext.getParentProps();\n } else if (value !== undefined) {\n groupProps = parentContext.getChildProps(value);\n }\n }\n const {\n checked: groupChecked = checkedProp,\n indeterminate: groupIndeterminate = indeterminate,\n onCheckedChange: groupOnChange,\n ...otherGroupProps\n } = groupProps;\n const groupValue = groupContext?.value;\n const controlRef = React.useRef(null);\n const controlSourceRef = useRefWithInit(() => Symbol());\n const hasRegisteredRef = React.useRef(false);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const validation = groupContext?.validation ?? localValidation;\n const [checked, setCheckedState] = useControlled({\n controlled: value !== undefined && groupValue !== undefined && !parent ? groupValue.includes(value) : groupChecked,\n default: defaultChecked,\n name: 'Checkbox',\n state: 'checked'\n });\n const computedChecked = isGroupedWithParent ? Boolean(groupChecked) : checked;\n const computedIndeterminate = isGroupedWithParent ? groupIndeterminate || indeterminate : indeterminate;\n\n // can't use useLabelableId because of optional groupContext and/or parent\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, inputId);\n return undefined;\n }, [inputId, registerControlId, controlSourceRef]);\n React.useEffect(() => {\n const controlSource = controlSourceRef.current;\n return () => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSource, undefined);\n };\n }, [registerControlId, controlSourceRef]);\n useRegisterFieldControl(controlRef, id, checked, undefined, !groupContext && !disabled, nameProp);\n const inputRef = React.useRef(null);\n const registerFieldInput = validation.registerInput;\n const registeredInputValue = groupContext ? value : undefined;\n const registerInput = React.useCallback(element => registerFieldInput(element, {\n controlRef,\n value: registeredInputValue\n }), [registerFieldInput, registeredInputValue]);\n const mergedInputRef = useMergedRefs(inputRefProp, inputRef, parent ? undefined : registerInput);\n const ariaLabelledBy = useAriaLabelledBy(ariaLabelledByProp, labelId, inputRef, !nativeButton, inputId ?? undefined);\n useIsoLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = computedIndeterminate;\n if (checked) {\n setFilled(true);\n }\n }\n }, [checked, computedIndeterminate, setFilled]);\n useValueChanged(checked, () => {\n if (groupContext) {\n return;\n }\n clearErrors(name);\n setFilled(checked);\n setDirty(checked !== validityData.initialValue);\n validation.change(checked);\n });\n const inputProps = mergeProps({\n checked,\n disabled,\n form,\n // parent checkboxes unset `name` to be excluded from form submission\n name: parent ? undefined : name,\n // Set `id` to stop Chrome warning about an unassociated input.\n // When using a native button, the `id` is applied to the button instead.\n id: nativeButton ? undefined : inputId ?? undefined,\n required,\n ref: mergedInputRef,\n style: name ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n type: 'checkbox',\n 'aria-hidden': true,\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const nextChecked = event.currentTarget.checked;\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n onCheckedChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n groupOnChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n setCheckedState(nextChecked);\n if (value !== undefined && groupContext !== undefined && !parent && !isGroupedWithParent) {\n const nextGroupValue = nextChecked ? [...groupContext.value, value] : groupContext.value.filter(item => item !== value);\n groupContext.setValue(nextGroupValue, details);\n }\n },\n onClick(event) {\n // The click dispatched from the root's `onClick` is an implementation detail\n // and must not reach ancestors, which already receive the original click.\n event.stopPropagation();\n },\n onFocus() {\n controlRef.current?.focus();\n }\n },\n // React <19 sets an empty value if `undefined` is passed explicitly\n // To avoid this, we only set the value if it's defined\n valueProp !== undefined ? {\n value: (groupContext ? checked && valueProp : valueProp) || ''\n } : EMPTY_OBJECT, getDescriptionProps, props => validation.getValidationProps(disabled, props));\n React.useEffect(() => {\n if (!parentContext || value === undefined) {\n return undefined;\n }\n const disabledStates = parentContext.disabledStatesRef.current;\n disabledStates.set(value, disabled);\n return () => {\n disabledStates.delete(value);\n };\n }, [parentContext, disabled, value]);\n const state = React.useMemo(() => ({\n ...fieldState,\n checked: computedChecked,\n disabled,\n readOnly,\n required,\n indeterminate: computedIndeterminate\n }), [fieldState, computedChecked, disabled, readOnly, required, computedIndeterminate]);\n const stateAttributesMapping = getCheckboxStateAttributesMapping(state);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [buttonRef, controlRef, forwardedRef],\n props: [{\n id: nativeButton ? inputId ?? undefined : id,\n role: 'checkbox',\n 'aria-checked': computedIndeterminate ? 'mixed' : computedChecked,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': ariaLabelledBy,\n [PARENT_CHECKBOX]: parent ? '' : undefined,\n onFocus() {\n if (!disabled) {\n setFocused(true);\n }\n },\n onBlur() {\n const inputEl = inputRef.current;\n if (!inputEl) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(groupContext ? groupValue : inputEl.checked);\n }\n },\n onKeyDown(event) {\n if (event.key !== 'Enter') {\n return;\n }\n\n // Let consumer `preventDefault()` handlers opt out while defensively stopping\n // any remaining Base UI Enter handling from treating the checkbox as a button.\n event.preventBaseUIHandler();\n if (event.defaultPrevented) {\n return;\n }\n const formToSubmit = inputRef.current?.form ?? null;\n const currentTarget = event.currentTarget;\n const nativeEvent = event.nativeEvent;\n const originalPreventDefault = event.preventDefault;\n const originalNativePreventDefault = nativeEvent.preventDefault;\n let preventDefaultCalledAfterPropagation = false;\n event.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalPreventDefault.call(event);\n };\n nativeEvent.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalNativePreventDefault.call(nativeEvent);\n };\n\n // Enter should not activate/toggle the checkbox. Cancel the native button behavior\n // without setting React's synthetic `defaultPrevented`, so ancestor React handlers\n // can still opt out by calling `preventDefault()` during propagation.\n originalNativePreventDefault.call(nativeEvent);\n ownerWindow(currentTarget).queueMicrotask(() => {\n event.preventDefault = originalPreventDefault;\n nativeEvent.preventDefault = originalNativePreventDefault;\n if (!preventDefaultCalledAfterPropagation) {\n getDefaultFormSubmitter(formToSubmit)?.click();\n }\n });\n },\n onClick(event) {\n if (readOnly || disabled) {\n return;\n }\n event.preventDefault();\n const input = inputRef.current;\n if (!input) {\n return;\n }\n dispatchClickWithModifiers(input, event);\n }\n }, elementProps, otherGroupProps, getButtonProps, getDescriptionProps, props => validation.getValidationProps(disabled, props)],\n stateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(CheckboxRootContext.Provider, {\n value: state,\n children: [element, !checked && !groupContext && name && !parent && uncheckedValue !== undefined && /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: uncheckedValue,\n disabled: disabled\n }), /*#__PURE__*/_jsx(\"input\", {\n ...inputProps,\n suppressHydrationWarning: true\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxRoot.displayName = \"CheckboxRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useCheckboxRootContext } from \"../root/CheckboxRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\n\n/**\n * Indicates whether the checkbox is ticked.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxIndicator = /*#__PURE__*/React.forwardRef(function CheckboxIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted = false,\n ...elementProps\n } = componentProps;\n const rootState = useCheckboxRootContext();\n const rendered = rootState.checked || rootState.indeterminate;\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(rendered);\n const indicatorRef = React.useRef(null);\n const state = {\n ...rootState,\n transitionStatus\n };\n useOpenChangeComplete({\n open: rendered,\n ref: indicatorRef,\n onComplete() {\n if (!rendered) {\n setMounted(false);\n }\n }\n });\n const baseStateAttributesMapping = getCheckboxStateAttributesMapping(rootState);\n const stateAttributesMapping = {\n ...baseStateAttributesMapping,\n ...transitionStatusMapping\n };\n const shouldRender = keepMounted || mounted;\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n stateAttributesMapping,\n props: elementProps\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxIndicator.displayName = \"CheckboxIndicator\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-indicator.tsx\nconst TRCheckboxIndicator = createComponentPart(Checkbox.Indicator, \"tr-checkbox-indicator\");\n//#endregion\nexport { TRCheckboxIndicator };\n\n//# sourceMappingURL=checkbox-indicator.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { createElement, useEffect, useRef, useState } from \"react\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-root.tsx\nfunction TRCheckboxRoot({ checked, className, ref, uiSize = \"md\", ...props }) {\n\tconst rootRef = useRef(null);\n\tconst [resetKey, setResetKey] = useState(0);\n\tuseEffect(() => {\n\t\tif (checked !== void 0) return;\n\t\tconst reset = (event) => {\n\t\t\tconst form = event.target;\n\t\t\tif (!(form instanceof HTMLFormElement)) return;\n\t\t\tlet sibling = rootRef.current?.nextElementSibling ?? null;\n\t\t\twhile (sibling instanceof HTMLInputElement) {\n\t\t\t\tif (sibling.type === \"checkbox\" && sibling.form === form) {\n\t\t\t\t\tsetResetKey((current) => current + 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsibling = sibling.nextElementSibling;\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"reset\", reset, true);\n\t\treturn () => document.removeEventListener(\"reset\", reset, true);\n\t}, [checked]);\n\treturn /* @__PURE__ */ createElement(Checkbox.Root, {\n\t\t...props,\n\t\tchecked,\n\t\tclassName: mergeComponentClassName(\"tr-checkbox\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\tkey: resetKey,\n\t\tref: (node) => {\n\t\t\trootRef.current = node;\n\t\t\tif (typeof ref === \"function\") ref(node);\n\t\t\telse if (ref) ref.current = node;\n\t\t}\n\t});\n}\n//#endregion\nexport { TRCheckboxRoot };\n\n//# sourceMappingURL=checkbox-root.js.map","import { TRCheckboxIndicator } from \"./checkbox-indicator.js\";\nimport { TRCheckboxRoot } from \"./checkbox-root.js\";\n//#region src/components/checkbox/index.tsx\nconst TRCheckbox = {\n\tRoot: TRCheckboxRoot,\n\tIndicator: TRCheckboxIndicator\n};\n//#endregion\nexport { TRCheckbox, TRCheckboxIndicator, TRCheckboxRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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"}
|