@fpkit/acss 5.0.0 → 6.0.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/libs/components/form/checkbox.css +1 -1
- package/libs/components/form/checkbox.css.map +1 -1
- package/libs/components/form/checkbox.min.css +2 -2
- package/libs/components/form/form.css +1 -1
- package/libs/components/form/form.css.map +1 -1
- package/libs/components/form/form.min.css +2 -2
- package/libs/index.cjs +13 -13
- package/libs/index.cjs.map +1 -1
- package/libs/index.css +1 -1
- package/libs/index.css.map +1 -1
- package/libs/index.d.cts +69 -20
- package/libs/index.d.ts +69 -20
- package/libs/index.js +3 -3
- package/libs/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/form/CHECKBOX-STYLES.mdx +766 -0
- package/src/components/form/CHECKBOX.mdx +665 -0
- package/src/components/form/checkbox.scss +28 -0
- package/src/components/form/checkbox.tsx +72 -22
- package/src/components/form/form.scss +7 -0
- package/src/components/form/input.stories.tsx +71 -22
- package/src/styles/form/checkbox.css +19 -0
- package/src/styles/form/checkbox.css.map +1 -1
- package/src/styles/form/form.css +25 -0
- package/src/styles/form/form.css.map +1 -1
- package/src/styles/index.css +25 -0
- package/src/styles/index.css.map +1 -1
package/libs/index.d.ts
CHANGED
|
@@ -205,7 +205,7 @@ declare const Alert: React$1.FC<AlertProps>;
|
|
|
205
205
|
* />
|
|
206
206
|
* ```
|
|
207
207
|
*/
|
|
208
|
-
interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' | 'defaultValue' | 'placeholder'> {
|
|
208
|
+
interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' | 'defaultValue' | 'placeholder' | 'size'> {
|
|
209
209
|
/**
|
|
210
210
|
* Unique identifier for the checkbox input.
|
|
211
211
|
* Required for proper label association via htmlFor attribute.
|
|
@@ -222,6 +222,29 @@ interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' |
|
|
|
222
222
|
* @see {@link https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions.html|WCAG 3.3.2 Labels or Instructions}
|
|
223
223
|
*/
|
|
224
224
|
label: React$1.ReactNode;
|
|
225
|
+
/**
|
|
226
|
+
* Predefined size variant for the checkbox.
|
|
227
|
+
* Maps to standardized size tokens for consistent sizing across the design system.
|
|
228
|
+
*
|
|
229
|
+
* Available sizes:
|
|
230
|
+
* - `xs`: Extra small (0.875rem / 14px) - Compact forms, tight spaces
|
|
231
|
+
* - `sm`: Small (1rem / 16px) - Dense layouts
|
|
232
|
+
* - `md`: Medium (1.25rem / 20px) - Default, optimal for most use cases
|
|
233
|
+
* - `lg`: Large (1.5rem / 24px) - Touch-friendly, prominent CTAs
|
|
234
|
+
*
|
|
235
|
+
* For custom sizes beyond these presets, use the `styles` prop:
|
|
236
|
+
* ```tsx
|
|
237
|
+
* styles={{ '--checkbox-size': '2rem' }}
|
|
238
|
+
* ```
|
|
239
|
+
*
|
|
240
|
+
* @default 'md'
|
|
241
|
+
* @example
|
|
242
|
+
* ```tsx
|
|
243
|
+
* <Checkbox id="small" label="Small checkbox" size="sm" />
|
|
244
|
+
* <Checkbox id="large" label="Large checkbox" size="lg" />
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
225
248
|
/**
|
|
226
249
|
* Controlled mode: Current checked state.
|
|
227
250
|
* When provided, component becomes controlled and requires onChange handler.
|
|
@@ -278,33 +301,46 @@ interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' |
|
|
|
278
301
|
*/
|
|
279
302
|
inputClasses?: string;
|
|
280
303
|
/**
|
|
281
|
-
* CSS custom properties for theming.
|
|
304
|
+
* CSS custom properties for theming and custom sizing.
|
|
305
|
+
*
|
|
306
|
+
* Common variables:
|
|
307
|
+
* - `--checkbox-size`: Custom checkbox dimensions (for sizes beyond xs/sm/md/lg presets)
|
|
308
|
+
* - `--checkbox-gap`: Space between checkbox and label (default: 0.5rem)
|
|
309
|
+
* - `--checkbox-border-color`: Border color (default: var(--color-neutral-600))
|
|
310
|
+
* - `--checkbox-checked-bg`: Background color when checked (default: var(--color-success))
|
|
311
|
+
* - `--checkbox-radius`: Border radius (default: 0.25rem)
|
|
312
|
+
* - `--checkbox-focus-ring-color`: Focus ring color (default: var(--color-focus-ring))
|
|
313
|
+
* - `--checkbox-disabled-opacity`: Opacity for disabled state (default: 0.6)
|
|
314
|
+
* - `--checkbox-label-fs`: Label font size (default: 1rem)
|
|
282
315
|
*
|
|
283
|
-
*
|
|
284
|
-
* - --checkbox-gap: Space between checkbox and label (default: 0.5rem)
|
|
285
|
-
* - --checkbox-disabled-opacity: Opacity for disabled state (default: 0.6)
|
|
286
|
-
* - --checkbox-disabled-color: Label color when disabled (default: #6b7280)
|
|
287
|
-
* - --checkbox-label-fs: Label font size (default: 1rem)
|
|
288
|
-
* - --checkbox-label-lh: Label line height (default: 1.5)
|
|
289
|
-
* - --color-required: Required indicator color (default: #dc2626)
|
|
290
|
-
* - --checkbox-focus-ring-color: Focus ring color (default: #2563eb)
|
|
291
|
-
* - --checkbox-focus-ring-width: Focus ring width (default: 0.125rem)
|
|
292
|
-
* - --checkbox-focus-ring-offset: Focus ring offset (default: 0.125rem)
|
|
293
|
-
* - --checkbox-hover-label-color: Label color on hover
|
|
294
|
-
* - --checkbox-error-label-color: Label color when invalid (default: #dc2626)
|
|
295
|
-
* - --checkbox-valid-label-color: Label color when valid (default: #16a34a)
|
|
316
|
+
* For custom sizes beyond the preset variants (xs/sm/md/lg), use `--checkbox-size`:
|
|
296
317
|
*
|
|
297
318
|
* @example
|
|
298
319
|
* ```tsx
|
|
320
|
+
* // Custom size beyond presets
|
|
299
321
|
* <Checkbox
|
|
300
322
|
* id="custom"
|
|
301
|
-
* label="Custom
|
|
323
|
+
* label="Custom sized (2rem)"
|
|
302
324
|
* styles={{
|
|
303
|
-
* '--checkbox-
|
|
304
|
-
* '--checkbox-
|
|
325
|
+
* '--checkbox-size': '2rem',
|
|
326
|
+
* '--checkbox-gap': '1rem'
|
|
327
|
+
* }}
|
|
328
|
+
* />
|
|
329
|
+
*
|
|
330
|
+
* // Brand theming
|
|
331
|
+
* <Checkbox
|
|
332
|
+
* id="branded"
|
|
333
|
+
* label="Brand checkbox"
|
|
334
|
+
* size="lg"
|
|
335
|
+
* styles={{
|
|
336
|
+
* '--checkbox-checked-bg': '#0066cc',
|
|
337
|
+
* '--checkbox-focus-ring-color': '#0066cc'
|
|
305
338
|
* }}
|
|
306
339
|
* />
|
|
307
340
|
* ```
|
|
341
|
+
*
|
|
342
|
+
* @see {@link ./CHECKBOX-STYLES.mdx|CHECKBOX-STYLES.mdx} - Complete CSS variable reference
|
|
343
|
+
* @see {@link ./CHECKBOX.mdx|CHECKBOX.mdx} - Component documentation with examples
|
|
308
344
|
*/
|
|
309
345
|
styles?: React$1.CSSProperties;
|
|
310
346
|
}
|
|
@@ -316,6 +352,7 @@ interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' |
|
|
|
316
352
|
* validation, disabled state, and ARIA logic from the base Input component.
|
|
317
353
|
*
|
|
318
354
|
* **Key Features:**
|
|
355
|
+
* - ✅ Semantic size variants (xs, sm, md, lg) via `size` prop
|
|
319
356
|
* - ✅ Boolean onChange API (`onChange={(checked) => ...}`)
|
|
320
357
|
* - ✅ Automatic label association via htmlFor
|
|
321
358
|
* - ✅ WCAG 2.1 AA compliant (uses aria-disabled pattern)
|
|
@@ -363,11 +400,21 @@ interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' |
|
|
|
363
400
|
*
|
|
364
401
|
* @example
|
|
365
402
|
* ```tsx
|
|
403
|
+
* // Size variants
|
|
404
|
+
* <Checkbox id="small" label="Small" size="sm" />
|
|
405
|
+
* <Checkbox id="large" label="Large" size="lg" />
|
|
406
|
+
* ```
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* ```tsx
|
|
366
410
|
* // Custom styling
|
|
367
411
|
* <Checkbox
|
|
368
412
|
* id="custom"
|
|
369
|
-
* label="
|
|
370
|
-
* styles={{
|
|
413
|
+
* label="Custom sized"
|
|
414
|
+
* styles={{
|
|
415
|
+
* '--checkbox-size': '2rem',
|
|
416
|
+
* '--checkbox-gap': '1rem'
|
|
417
|
+
* }}
|
|
371
418
|
* />
|
|
372
419
|
* ```
|
|
373
420
|
*
|
|
@@ -375,6 +422,8 @@ interface CheckboxProps extends Omit<InputProps, 'type' | 'value' | 'onChange' |
|
|
|
375
422
|
* @param {React.Ref<HTMLInputElement>} ref - Forwarded ref to the input element
|
|
376
423
|
* @returns {JSX.Element} Checkbox wrapper with input and label
|
|
377
424
|
*
|
|
425
|
+
* @see {@link ./CHECKBOX.mdx|CHECKBOX.mdx} - Complete component documentation
|
|
426
|
+
* @see {@link ./CHECKBOX-STYLES.mdx|CHECKBOX-STYLES.mdx} - CSS customization guide
|
|
378
427
|
* @see {@link https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html|WCAG 4.1.2 Name, Role, Value}
|
|
379
428
|
* @see {@link https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html|WCAG 2.4.7 Focus Visible}
|
|
380
429
|
* @see {@link https://www.w3.org/WAI/WCAG21/Understanding/error-identification.html|WCAG 3.3.1 Error Identification}
|
package/libs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import { a } from './chunk-DDSXKOUB.js';
|
|
|
26
26
|
export { a as UI } from './chunk-DDSXKOUB.js';
|
|
27
27
|
import C, { useCallback, useMemo, useState, useEffect } from 'react';
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var qe={default:"",info:"Information: ",success:"Success: ",warning:"Warning: ",error:"Error: "},O=({severity:e})=>{let t=qe[e];return t?C.createElement("span",{className:"sr-only"},t):null};var Je=(e,t)=>({info:C.createElement(b$1.InfoSolid,{...t}),success:C.createElement(b$1.SuccessSolid,{...t}),warning:C.createElement(b$1.WarnSolid,{...t}),error:C.createElement(b$1.AlertSolid,{...t}),default:C.createElement(b$1.AlertSquareSolid,{...t})})[e],_=({severity:e,iconProps:t,hideIcon:o})=>{if(o)return null;let s=Je(e,t);return C.createElement(a,{"aria-hidden":"true",className:"alert-icon"},s)};var q=({title:e,titleLevel:t})=>{if(!e)return null;let o=t?`h${t}`:"strong";return C.createElement(a,{as:o,className:"alert-title"},e)};var W=({children:e,contentType:t})=>t==="node"?C.createElement(C.Fragment,null,e):C.createElement(a,{as:"p"},e);var K=({actions:e})=>e?C.createElement(a,{as:"div",className:"alert-actions"},e):null;var oe=C.memo(({onDismiss:e,iconSize:t=16})=>C.createElement(b,{type:"button",onClick:e,"aria-label":"Close alert",className:"alert-dismiss","data-btn":"icon sm"},C.createElement(b$1,null,C.createElement(b$1.Close,{size:t})))),se=oe;oe.displayName="DismissButton";var Xe={default:"polite",info:"polite",success:"polite",warning:"polite",error:"assertive"},R=C.forwardRef(({severity:e,variant:t,isVisible:o,dismissible:s,onDismiss:r,onInteractionStart:i,onInteractionEnd:a$1,autoFocus:l,title:c,titleLevel:y,children:u,contentType:f,actions:S,hideIcon:g,iconProps:v,...m},x)=>C.createElement(a,{as:"div",ref:x,role:"alert","aria-live":Xe[e],"aria-atomic":"true",className:`alert alert-${e}`,"data-alert":e,"data-visible":o,"data-variant":t,tabIndex:l?-1:void 0,onMouseEnter:i,onMouseLeave:a$1,onFocus:i,onBlur:a$1,...m},C.createElement(O,{severity:e}),C.createElement(_,{severity:e,iconProps:v,hideIcon:g}),C.createElement(a,{as:"div",classes:"alert-message"},C.createElement(q,{title:c,titleLevel:y}),C.createElement(W,{contentType:f},u),C.createElement(K,{actions:S})),s&&C.createElement(se,{onDismiss:r})));R.displayName="AlertView";var Qe=({open:e,onDismiss:t,dismissible:o,autoHideDuration:s,pauseOnHover:r,autoFocus:i,alertRef:a})=>{let[l,c]=C.useState(e),[y,u]=C.useState(e),[f,S]=C.useState(!1),g=C.useCallback(()=>{c(!1),setTimeout(()=>{u(!1),t?.();},300);},[t]);C.useEffect(()=>{e?(u(!0),c(!0)):c(!1);},[e]),C.useEffect(()=>{if(!s||!l||f)return;let x=setTimeout(()=>{g();},s);return ()=>clearTimeout(x)},[s,l,f,g]),C.useEffect(()=>{if(!o||!l)return;let x=h=>{h.key==="Escape"&&g();};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[o,l,g]),C.useEffect(()=>{i&&l&&a.current&&a.current.focus();},[i,l,a]);let v=C.useCallback(()=>{r&&s&&S(!0);},[r,s]),m=C.useCallback(()=>{r&&s&&S(!1);},[r,s]);return {isVisible:l,shouldRender:y,handleDismiss:g,handleInteractionStart:v,handleInteractionEnd:m}},re=({open:e,severity:t="default",children:o,title:s,dismissible:r=!1,onDismiss:i,iconSize:a,iconProps:l,hideIcon:c,autoHideDuration:y,pauseOnHover:u=!0,titleLevel:f=3,actions:S,autoFocus:g=!1,variant:v="outlined",contentType:m="text",...x})=>{let h=C.useRef(null),{isVisible:p,shouldRender:d,handleDismiss:E,handleInteractionStart:P,handleInteractionEnd:T}=Qe({open:e,onDismiss:i,dismissible:r,autoHideDuration:y,pauseOnHover:u,autoFocus:g,alertRef:h});if(!d)return null;let A={size:a||16,...l};return C.createElement(R,{ref:h,severity:t,variant:v,isVisible:p,dismissible:r,onDismiss:E,onInteractionStart:P,onInteractionEnd:T,autoFocus:g,title:s,titleLevel:f,contentType:m,actions:S,hideIcon:c,iconProps:A,...x},o)};re.displayName="Alert";var ne=C.forwardRef(({id:e,label:t,checked:o,defaultChecked:s,value:r="on",onChange:i,classes:a,inputClasses:l,styles:c,size:y,name:u,disabled:f,required:S,validationState:g,errorMessage:v,hintText:m,onBlur:x,onFocus:h,autoFocus:p,...d},E)=>{let P=C.useCallback(Ee=>{i?.(Ee.target.checked);},[i]),T=o!==void 0,A=T?{checked:o}:{},ke=!T&&s!==void 0?{defaultChecked:s}:{},j=C.useRef(T);return C.useEffect(()=>{process.env.NODE_ENV==="development"&&(j.current!==T&&console.warn(`Checkbox with id="${e}" is changing from ${j.current?"controlled":"uncontrolled"} to ${T?"controlled":"uncontrolled"}. This is likely a bug. Decide between using "checked" (controlled) or "defaultChecked" (uncontrolled) and stick with it.`),j.current=T);},[T,e]),C.createElement("div",{className:a,style:c,"data-checkbox-size":y},C.createElement(a$1,{ref:E,type:"checkbox",id:e,name:u,value:r,...A,...ke,classes:l||"checkbox-input",disabled:f,required:S,validationState:g,errorMessage:v,hintText:m,onChange:P,onBlur:x,onFocus:h,autoFocus:p,...d}),C.createElement("label",{htmlFor:e,className:"checkbox-label"},t,S&&C.createElement("span",{className:"checkbox-required","aria-label":"required"}," *")))});ne.displayName="Checkbox";var ie=({src:e="//",alt:t,width:o=480,height:s,styles:r,loading:i="lazy",placeholder:a$1,fetchpriority:l="low",decoding:c="auto",srcSet:y,sizes:u,onError:f,onLoad:S,...g})=>{let v=useMemo(()=>{let p=typeof o=="number"?o:480,d=typeof s=="number"?s:Math.round(p*.75),E=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${p} ${d}">
|
|
30
30
|
<defs>
|
|
31
31
|
<linearGradient id="grad-${p}-${d}" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
32
32
|
<stop offset="0%" style="stop-color:#6366f1;stop-opacity:1" />
|
|
@@ -38,8 +38,8 @@ var _e={default:"",info:"Information: ",success:"Success: ",warning:"Warning: ",
|
|
|
38
38
|
<circle cx="${p*.15}" cy="${d*.2}" r="${Math.min(p,d)*.08}" fill="rgba(255,255,255,0.2)"/>
|
|
39
39
|
<path d="M0,${d*.75} Q${p*.25},${d*.65} ${p*.5},${d*.75} T${p},${d*.75} L${p},${d} L0,${d} Z" fill="rgba(0,0,0,0.15)"/>
|
|
40
40
|
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="${Math.max(16,Math.min(p,d)*.05)}" font-weight="500" fill="rgba(255,255,255,0.9)">${p}\xD7${d}</text>
|
|
41
|
-
</svg>`;return `data:image/svg+xml,${encodeURIComponent(k)}`},[o,s]),m=a$1??v;return C.createElement(a,{as:"img",src:e,alt:t,width:o,height:s||"auto",loading:i,style:r,srcSet:y,sizes:u,onError:p=>{f&&f(p),p.defaultPrevented||p.currentTarget.src!==m&&(p.currentTarget.src=m);},onLoad:p=>{S?.(p);},decoding:c,...g,...l&&{fetchpriority:l}})};ie.displayName="Img";var ae=e=>{let[t,o]=useState([]),[s,r]=useState(e),[i,a]=useState(!1),[l,c]=useState(!1);return useEffect(()=>{let m=()=>{let x=window.speechSynthesis.getVoices();o(x);let h=x.find(p=>p.name==="Google US English");if(h)r(h);else {let p=x.find(d=>d.lang.startsWith("en-"));p&&r(p);}};return m(),window.speechSynthesis.onvoiceschanged=m,()=>{window.speechSynthesis.onvoiceschanged=null;}},[]),{speak:(m,x={},h)=>{let p=new SpeechSynthesisUtterance(m);p.lang=x.lang??"en-US",p.pitch=x.pitch??1,p.rate=x.rate??1,p.voice=s??x.voice??null,p.onend=()=>{a(!1),c(!1),h&&h();},"speechSynthesis"in window?(window.speechSynthesis.speak(p),a(!0),c(!1)):a(!1);},pause:()=>{i&&!l&&(window.speechSynthesis.pause(),c(!0));},resume:()=>{i&&l&&(window.speechSynthesis.resume(),c(!1));},cancel:()=>{i&&(window.speechSynthesis.cancel(),a(!1),c(!1));},isSpeaking:i,isPaused:l,availableVoices:t,changeVoice:m=>{r(m);},currentVoice:s,getAvailableLanguages:()=>[...new Set(t.map(m=>m.lang))]}};var et=({children:e,onClick:t})=>C.createElement(a,{as:"button",type:"button",className:"tts-border","data-btn":"sm text pill",onClick:t},e),M=C.memo(et),X=({label:e,isSpeaking:t,isPaused:o,onSpeak:s,onPause:r,onResume:i,onCancel:a$1})=>C.createElement(a,{as:"div","data-tts":!0},e&&C.createElement("p",null,e),!t&&C.createElement(M,{"aria-label":"Speak",onClick:s},C.createElement(b$1.PlaySolid,{size:16})),t&&!o&&C.createElement(M,{"aria-label":"Pause",onClick:r},C.createElement(b$1.PauseSolid,{size:16})),o&&C.createElement(M,{"aria-label":"Resume",onClick:i},C.createElement(b$1.ResumeSolid,{size:16})),C.createElement(M,{"aria-label":"Stop",onClick:a$1},C.createElement(b$1.StopSolid,{size:16})));X.displayName="TextToSpeechControls";X.TTSButton=M;var le=X;var pe=({initialText:e="",showTextInput:t=!1,voice:o,pitch:s=1,rate:r=1,label:i,onEnd:a})=>{let{speak:l,pause:c,resume:y,cancel:u,isSpeaking:f,isPaused:S}=ae(),[g,v]=useState(e);useEffect(()=>{v(e);},[e]);let m=()=>{g.trim()!==""&&l(g,{voice:o,pitch:s,rate:r},h);},x=p=>{v(p.target.value);},h=()=>{a&&a();};return C.createElement(C.Fragment,null,t&&C.createElement(b$2,{value:g,onChange:x}),C.createElement(le,{label:i,isSpeaking:f,isPaused:S,onSpeak:m,onPause:c,onResume:y,onCancel:u}))};pe.displayName="TextToSpeechComponent";var E=e=>C.createElement(C.Fragment,null,e),st=({id:e,children:t,headerBackground:o,styles:s,classes:r,...i})=>C.createElement(a,{as:"header",id:e,styles:s,className:r,...i},o,C.createElement(a,{as:"section"},t)),rt=({id:e,children:t,styles:o,classes:s,...r})=>C.createElement(a,{as:"main",id:e,styles:o,...r,className:s},t),nt=({id:e,classes:t,children:o,styles:s={},...r})=>C.createElement(a,{as:"footer",id:e,className:t,styles:s,...r},C.createElement(a,{as:"section"},o||"Copyright \xA9 2022")),it=({id:e,children:t,styles:o={},classes:s,...r})=>C.createElement(a,{as:"aside",id:e,styles:o,className:s,...r},C.createElement(a,{as:"section"},t)),at=({id:e,children:t,styles:o,classes:s,...r})=>C.createElement(a,{as:"section",id:e,styles:o,className:s,...r},t),lt=({id:e,children:t,styles:o,classes:s,...r})=>C.createElement(a,{as:"article",id:e,styles:o,className:s,...r},t);E.displayName="Landmarks";E.Header=st;E.Main=rt;E.Footer=nt;E.Aside=it;E.Section=at;E.Article=lt;var fe=C.forwardRef(({padding:e,paddingInline:t,paddingBlock:o,margin:s,marginInline:r,marginBlock:i,width:a$1,maxWidth:l,radius:c,as:y="div",className:u,classes:f,children:S,...g},v)=>{let m=[];e&&m.push(`box-padding-${e}`),t&&m.push(`box-padding-inline-${t}`),o&&m.push(`box-padding-block-${o}`),s&&m.push(`box-margin-${s}`),r&&m.push(`box-margin-inline-${r}`),i&&m.push(`box-margin-block-${i}`),a$1&&m.push(`box-width-${a$1}`),l&&m.push(`box-max-width-${l}`),c&&m.push(`box-radius-${c}`);let x=[...m,u,f].filter(Boolean).join(" ");return C.createElement(a,{as:y,ref:v,classes:x||void 0,...g},S)});fe.displayName="Box";var de=C.forwardRef(({gap:e,direction:t="vertical",align:o,justify:s,wrap:r,as:i="div",className:a$1,classes:l,children:c,...y},u)=>{let f=["stack"];t==="horizontal"?f.push("stack-horizontal"):f.push("stack-vertical"),e&&f.push(`stack-gap-${e}`),o&&f.push(`stack-align-${o}`),s&&f.push(`stack-justify-${s}`),r&&f.push(`stack-${r}`);let S=[...f,a$1,l].filter(Boolean).join(" ");return C.createElement(a,{as:i,ref:u,classes:S,...y},c)});de.displayName="Stack";var xe=C.forwardRef(({gap:e,justify:t,align:o,as:s="div",className:r,classes:i,children:a$1,...l},c)=>{let y=["cluster"];e&&y.push(`cluster-gap-${e}`),t&&y.push(`cluster-justify-${t}`),o&&y.push(`cluster-align-${o}`);let u=[...y,r,i].filter(Boolean).join(" ");return C.createElement(a,{as:s,ref:c,classes:u,...l},a$1)});xe.displayName="Cluster";var ye=C.forwardRef(({columns:e,auto:t,minColumnWidth:o,gap:s,gapX:r,gapY:i,justifyItems:a$1,alignItems:l,as:c="div",className:y,classes:u,children:f,style:S,styles:g,...v},m)=>{let x=["grid"];e&&x.push(`grid-cols-${e}`),t&&x.push(`grid-auto-${t}`),s&&x.push(`grid-gap-${s}`),r&&x.push(`grid-gap-x-${r}`),i&&x.push(`grid-gap-y-${i}`),a$1&&x.push(`grid-justify-items-${a$1}`),l&&x.push(`grid-align-items-${l}`);let h=[...x,y,u].filter(Boolean).join(" "),p={...S||{},...g||{}};return t&&o&&(p.gridTemplateColumns=`repeat(auto-${t}, minmax(${o}, 1fr))`),C.createElement(a,{as:c,ref:m,classes:h,style:Object.keys(p).length>0?p:void 0,...v},f)});ye.displayName="Grid";var Q=C.forwardRef(({span:e,rowSpan:t,as:o="div",className:s,classes:r,children:i,...a$1},l)=>{let c=[];e&&c.push(`grid-col-span-${e}`),t&&c.push(`grid-row-span-${t}`);let y=[...c,s,r].filter(Boolean).join(" ");return C.createElement(a,{as:o,ref:l,classes:y,...a$1},i)});Q.displayName="GridItem";var he=ye;he.Item=Q;var pt=he;var Se=C.forwardRef(({gap:e,justify:t,align:o,wrap:s,alwaysProportional:r=!1,as:i="div",className:a$1,classes:l,children:c,...y},u)=>{process.env.NODE_ENV==="development"&&r&&console.warn('[fpkit] Row: alwaysProportional is deprecated and will be removed in v5.0.0. Use responsive column utilities instead: className="col-sm-6 col-md-4"');let f=["col-row"];e&&f.push(`col-row-gap-${e}`),t&&f.push(`col-row-justify-${t}`),o&&f.push(`col-row-align-${o}`),s&&s!=="wrap"&&f.push(`col-row-${s}`),r&&f.push("col-row-proportional");let S=[...f,a$1,l].filter(Boolean).join(" ");return C.createElement(a,{as:i,ref:u,classes:S,...y},c)});Se.displayName="Row";var Ie=C.forwardRef(({span:e,offset:t,order:o,auto:s=!1,as:r="div",className:i,classes:a$1,children:l,...c},y)=>{let u=[];s?u.push("col-auto"):e==="flex"?u.push("col-flex"):e&&u.push(`col-${e}`),t!==void 0&&u.push(`col-offset-${t}`),o!==void 0&&u.push(`col-order-${o}`);let f=[...u,i,a$1].filter(Boolean).join(" ");return C.createElement(a,{as:r,ref:y,classes:f,...c},l)});Ie.displayName="Col";var B=(e,t="")=>{let o=[];if(e.direction){let s={row:"flex-row","row-reverse":"flex-row-reverse",column:"flex-col","column-reverse":"flex-col-reverse"};o.push(`${t}${s[e.direction]}`);}if(e.wrap){let s={wrap:"flex-wrap",nowrap:"flex-nowrap","wrap-reverse":"flex-wrap-reverse"};o.push(`${t}${s[e.wrap]}`);}if(e.gap&&o.push(`${t}gap-${e.gap}`),e.rowGap&&o.push(`${t}row-gap-${e.rowGap}`),e.colGap&&o.push(`${t}col-gap-${e.colGap}`),e.justify){let s={start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between",around:"justify-around",evenly:"justify-evenly"};o.push(`${t}${s[e.justify]}`);}if(e.align){let s={start:"items-start",end:"items-end",center:"items-center",baseline:"items-baseline",stretch:"items-stretch"};o.push(`${t}${s[e.align]}`);}if(e.alignContent){let s={start:"content-start",end:"content-end",center:"content-center",between:"content-between",around:"content-around",evenly:"content-evenly",stretch:"content-stretch"};o.push(`${t}${s[e.alignContent]}`);}return o},Pe=C.forwardRef((e,t)=>{let{variant:o,inline:s=!1,as:r="div",className:i="",styles:a$1,children:l,sm:c,md:y,lg:u,xl:f,direction:S,wrap:g,gap:v,rowGap:m,colGap:x,justify:h,align:p,alignContent:d,...k}=e,I=[];if(I.push(s?"flex-inline":"flex"),o){let A={center:"flex-center",between:"flex-between",around:"flex-around",stack:"flex-stack",spread:"flex-spread"};I.push(A[o]);}I.push(...B({direction:S,wrap:g,gap:v,rowGap:m,colGap:x,justify:h,align:p,alignContent:d})),c&&I.push(...B(c,"sm:")),y&&I.push(...B(y,"md:")),u&&I.push(...B(u,"lg:")),f&&I.push(...B(f,"xl:"));let U=[...I,i].filter(Boolean).join(" ");return C.createElement(a,{as:r,ref:t,classes:U,styles:a$1,...k},l)});Pe.displayName="Flex";var Ce=C.forwardRef((e,t)=>{let{grow:o,shrink:s,basis:r,flex:i,alignSelf:a$1,order:l,as:c="div",className:y="",styles:u,children:f,sm:S,md:g,lg:v,xl:m,...x}=e,h=[];if(i){let d={1:"flex-1",auto:"flex-auto",initial:"flex-initial",none:"flex-none"};h.push(d[i]);}if(o!==void 0&&h.push(`flex-grow-${o}`),s!==void 0&&h.push(`flex-shrink-${s}`),r){let d={auto:"flex-basis-auto",0:"flex-basis-0",full:"flex-basis-full"};h.push(d[r]);}if(a$1){let d={auto:"self-auto",start:"self-start",end:"self-end",center:"self-center",baseline:"self-baseline",stretch:"self-stretch"};h.push(d[a$1]);}if(l){let d={first:"order-first",last:"order-last",none:"order-none"};h.push(d[l]);}if(S?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`sm:${d[S.flex]}`);}if(g?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`md:${d[g.flex]}`);}if(v?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`lg:${d[v.flex]}`);}if(m?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`xl:${d[m.flex]}`);}let p=[...h,y].filter(Boolean).join(" ");return C.createElement(a,{as:c,ref:t,classes:p,styles:u,...x},f)});Ce.displayName="Flex.Item";var be=C.forwardRef((e,t)=>{let{as:o="div",className:s="",styles:r,...i}=e,a$1=["flex-1",s].filter(Boolean).join(" ");return C.createElement(a,{as:o,ref:t,classes:a$1,styles:r,...i})});be.displayName="Flex.Spacer";var Y=Pe;Y.Item=Ce;Y.Spacer=be;var ct=Y;var we=({id:e,styles:t,classes:o,children:s,variant:r,...i})=>C.createElement(a,{as:"sup",id:e,styles:t,className:o,"data-badge":r||void 0,role:"status",...i},C.createElement(a,{as:"span"},s));we.displayName="Badge";var mt=({elm:e="span",role:t="note",variant:o,children:s,styles:r,...i})=>C.createElement(a,{as:e,role:t,"data-tag":o||void 0,styles:r,...i},s);mt.displayName="Tag";var dt=C.forwardRef(({summary:e,icon:t,styles:o,classes:s,ariaLabel:r,name:i,open:a$1,onPointerDown:l,onToggle:c,children:y,...u},f)=>{let S=useCallback(v=>{l?.(v);},[l]),g=useCallback(v=>{c?.(v);},[c]);return C.createElement(a,{as:"details",styles:o,classes:s,onToggle:g,ref:f,open:a$1,"aria-label":r,name:i,...u},C.createElement(a,{as:"summary",onPointerDown:S},t,e),C.createElement(a,{as:"section"},y))});dt.displayName="Details";
|
|
41
|
+
</svg>`;return `data:image/svg+xml,${encodeURIComponent(E)}`},[o,s]),m=a$1??v;return C.createElement(a,{as:"img",src:e,alt:t,width:o,height:s||"auto",loading:i,style:r,srcSet:y,sizes:u,onError:p=>{f&&f(p),p.defaultPrevented||p.currentTarget.src!==m&&(p.currentTarget.src=m);},onLoad:p=>{S?.(p);},decoding:c,...g,...l&&{fetchpriority:l}})};ie.displayName="Img";var ae=e=>{let[t,o]=useState([]),[s,r]=useState(e),[i,a]=useState(!1),[l,c]=useState(!1);return useEffect(()=>{let m=()=>{let x=window.speechSynthesis.getVoices();o(x);let h=x.find(p=>p.name==="Google US English");if(h)r(h);else {let p=x.find(d=>d.lang.startsWith("en-"));p&&r(p);}};return m(),window.speechSynthesis.onvoiceschanged=m,()=>{window.speechSynthesis.onvoiceschanged=null;}},[]),{speak:(m,x={},h)=>{let p=new SpeechSynthesisUtterance(m);p.lang=x.lang??"en-US",p.pitch=x.pitch??1,p.rate=x.rate??1,p.voice=s??x.voice??null,p.onend=()=>{a(!1),c(!1),h&&h();},"speechSynthesis"in window?(window.speechSynthesis.speak(p),a(!0),c(!1)):a(!1);},pause:()=>{i&&!l&&(window.speechSynthesis.pause(),c(!0));},resume:()=>{i&&l&&(window.speechSynthesis.resume(),c(!1));},cancel:()=>{i&&(window.speechSynthesis.cancel(),a(!1),c(!1));},isSpeaking:i,isPaused:l,availableVoices:t,changeVoice:m=>{r(m);},currentVoice:s,getAvailableLanguages:()=>[...new Set(t.map(m=>m.lang))]}};var tt=({children:e,onClick:t})=>C.createElement(a,{as:"button",type:"button",className:"tts-border","data-btn":"sm text pill",onClick:t},e),M=C.memo(tt),X=({label:e,isSpeaking:t,isPaused:o,onSpeak:s,onPause:r,onResume:i,onCancel:a$1})=>C.createElement(a,{as:"div","data-tts":!0},e&&C.createElement("p",null,e),!t&&C.createElement(M,{"aria-label":"Speak",onClick:s},C.createElement(b$1.PlaySolid,{size:16})),t&&!o&&C.createElement(M,{"aria-label":"Pause",onClick:r},C.createElement(b$1.PauseSolid,{size:16})),o&&C.createElement(M,{"aria-label":"Resume",onClick:i},C.createElement(b$1.ResumeSolid,{size:16})),C.createElement(M,{"aria-label":"Stop",onClick:a$1},C.createElement(b$1.StopSolid,{size:16})));X.displayName="TextToSpeechControls";X.TTSButton=M;var le=X;var pe=({initialText:e="",showTextInput:t=!1,voice:o,pitch:s=1,rate:r=1,label:i,onEnd:a})=>{let{speak:l,pause:c,resume:y,cancel:u,isSpeaking:f,isPaused:S}=ae(),[g,v]=useState(e);useEffect(()=>{v(e);},[e]);let m=()=>{g.trim()!==""&&l(g,{voice:o,pitch:s,rate:r},h);},x=p=>{v(p.target.value);},h=()=>{a&&a();};return C.createElement(C.Fragment,null,t&&C.createElement(b$2,{value:g,onChange:x}),C.createElement(le,{label:i,isSpeaking:f,isPaused:S,onSpeak:m,onPause:c,onResume:y,onCancel:u}))};pe.displayName="TextToSpeechComponent";var F=e=>C.createElement(C.Fragment,null,e),rt=({id:e,children:t,headerBackground:o,styles:s,classes:r,...i})=>C.createElement(a,{as:"header",id:e,styles:s,className:r,...i},o,C.createElement(a,{as:"section"},t)),nt=({id:e,children:t,styles:o,classes:s,...r})=>C.createElement(a,{as:"main",id:e,styles:o,...r,className:s},t),it=({id:e,classes:t,children:o,styles:s={},...r})=>C.createElement(a,{as:"footer",id:e,className:t,styles:s,...r},C.createElement(a,{as:"section"},o||"Copyright \xA9 2022")),at=({id:e,children:t,styles:o={},classes:s,...r})=>C.createElement(a,{as:"aside",id:e,styles:o,className:s,...r},C.createElement(a,{as:"section"},t)),lt=({id:e,children:t,styles:o,classes:s,...r})=>C.createElement(a,{as:"section",id:e,styles:o,className:s,...r},t),pt=({id:e,children:t,styles:o,classes:s,...r})=>C.createElement(a,{as:"article",id:e,styles:o,className:s,...r},t);F.displayName="Landmarks";F.Header=rt;F.Main=nt;F.Footer=it;F.Aside=at;F.Section=lt;F.Article=pt;var fe=C.forwardRef(({padding:e,paddingInline:t,paddingBlock:o,margin:s,marginInline:r,marginBlock:i,width:a$1,maxWidth:l,radius:c,as:y="div",className:u,classes:f,children:S,...g},v)=>{let m=[];e&&m.push(`box-padding-${e}`),t&&m.push(`box-padding-inline-${t}`),o&&m.push(`box-padding-block-${o}`),s&&m.push(`box-margin-${s}`),r&&m.push(`box-margin-inline-${r}`),i&&m.push(`box-margin-block-${i}`),a$1&&m.push(`box-width-${a$1}`),l&&m.push(`box-max-width-${l}`),c&&m.push(`box-radius-${c}`);let x=[...m,u,f].filter(Boolean).join(" ");return C.createElement(a,{as:y,ref:v,classes:x||void 0,...g},S)});fe.displayName="Box";var de=C.forwardRef(({gap:e,direction:t="vertical",align:o,justify:s,wrap:r,as:i="div",className:a$1,classes:l,children:c,...y},u)=>{let f=["stack"];t==="horizontal"?f.push("stack-horizontal"):f.push("stack-vertical"),e&&f.push(`stack-gap-${e}`),o&&f.push(`stack-align-${o}`),s&&f.push(`stack-justify-${s}`),r&&f.push(`stack-${r}`);let S=[...f,a$1,l].filter(Boolean).join(" ");return C.createElement(a,{as:i,ref:u,classes:S,...y},c)});de.displayName="Stack";var xe=C.forwardRef(({gap:e,justify:t,align:o,as:s="div",className:r,classes:i,children:a$1,...l},c)=>{let y=["cluster"];e&&y.push(`cluster-gap-${e}`),t&&y.push(`cluster-justify-${t}`),o&&y.push(`cluster-align-${o}`);let u=[...y,r,i].filter(Boolean).join(" ");return C.createElement(a,{as:s,ref:c,classes:u,...l},a$1)});xe.displayName="Cluster";var ye=C.forwardRef(({columns:e,auto:t,minColumnWidth:o,gap:s,gapX:r,gapY:i,justifyItems:a$1,alignItems:l,as:c="div",className:y,classes:u,children:f,style:S,styles:g,...v},m)=>{let x=["grid"];e&&x.push(`grid-cols-${e}`),t&&x.push(`grid-auto-${t}`),s&&x.push(`grid-gap-${s}`),r&&x.push(`grid-gap-x-${r}`),i&&x.push(`grid-gap-y-${i}`),a$1&&x.push(`grid-justify-items-${a$1}`),l&&x.push(`grid-align-items-${l}`);let h=[...x,y,u].filter(Boolean).join(" "),p={...S||{},...g||{}};return t&&o&&(p.gridTemplateColumns=`repeat(auto-${t}, minmax(${o}, 1fr))`),C.createElement(a,{as:c,ref:m,classes:h,style:Object.keys(p).length>0?p:void 0,...v},f)});ye.displayName="Grid";var Q=C.forwardRef(({span:e,rowSpan:t,as:o="div",className:s,classes:r,children:i,...a$1},l)=>{let c=[];e&&c.push(`grid-col-span-${e}`),t&&c.push(`grid-row-span-${t}`);let y=[...c,s,r].filter(Boolean).join(" ");return C.createElement(a,{as:o,ref:l,classes:y,...a$1},i)});Q.displayName="GridItem";var he=ye;he.Item=Q;var ct=he;var Se=C.forwardRef(({gap:e,justify:t,align:o,wrap:s,alwaysProportional:r=!1,as:i="div",className:a$1,classes:l,children:c,...y},u)=>{process.env.NODE_ENV==="development"&&r&&console.warn('[fpkit] Row: alwaysProportional is deprecated and will be removed in v5.0.0. Use responsive column utilities instead: className="col-sm-6 col-md-4"');let f=["col-row"];e&&f.push(`col-row-gap-${e}`),t&&f.push(`col-row-justify-${t}`),o&&f.push(`col-row-align-${o}`),s&&s!=="wrap"&&f.push(`col-row-${s}`),r&&f.push("col-row-proportional");let S=[...f,a$1,l].filter(Boolean).join(" ");return C.createElement(a,{as:i,ref:u,classes:S,...y},c)});Se.displayName="Row";var Ie=C.forwardRef(({span:e,offset:t,order:o,auto:s=!1,as:r="div",className:i,classes:a$1,children:l,...c},y)=>{let u=[];s?u.push("col-auto"):e==="flex"?u.push("col-flex"):e&&u.push(`col-${e}`),t!==void 0&&u.push(`col-offset-${t}`),o!==void 0&&u.push(`col-order-${o}`);let f=[...u,i,a$1].filter(Boolean).join(" ");return C.createElement(a,{as:r,ref:y,classes:f,...c},l)});Ie.displayName="Col";var B=(e,t="")=>{let o=[];if(e.direction){let s={row:"flex-row","row-reverse":"flex-row-reverse",column:"flex-col","column-reverse":"flex-col-reverse"};o.push(`${t}${s[e.direction]}`);}if(e.wrap){let s={wrap:"flex-wrap",nowrap:"flex-nowrap","wrap-reverse":"flex-wrap-reverse"};o.push(`${t}${s[e.wrap]}`);}if(e.gap&&o.push(`${t}gap-${e.gap}`),e.rowGap&&o.push(`${t}row-gap-${e.rowGap}`),e.colGap&&o.push(`${t}col-gap-${e.colGap}`),e.justify){let s={start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between",around:"justify-around",evenly:"justify-evenly"};o.push(`${t}${s[e.justify]}`);}if(e.align){let s={start:"items-start",end:"items-end",center:"items-center",baseline:"items-baseline",stretch:"items-stretch"};o.push(`${t}${s[e.align]}`);}if(e.alignContent){let s={start:"content-start",end:"content-end",center:"content-center",between:"content-between",around:"content-around",evenly:"content-evenly",stretch:"content-stretch"};o.push(`${t}${s[e.alignContent]}`);}return o},Pe=C.forwardRef((e,t)=>{let{variant:o,inline:s=!1,as:r="div",className:i="",styles:a$1,children:l,sm:c,md:y,lg:u,xl:f,direction:S,wrap:g,gap:v,rowGap:m,colGap:x,justify:h,align:p,alignContent:d,...E}=e,P=[];if(P.push(s?"flex-inline":"flex"),o){let A={center:"flex-center",between:"flex-between",around:"flex-around",stack:"flex-stack",spread:"flex-spread"};P.push(A[o]);}P.push(...B({direction:S,wrap:g,gap:v,rowGap:m,colGap:x,justify:h,align:p,alignContent:d})),c&&P.push(...B(c,"sm:")),y&&P.push(...B(y,"md:")),u&&P.push(...B(u,"lg:")),f&&P.push(...B(f,"xl:"));let T=[...P,i].filter(Boolean).join(" ");return C.createElement(a,{as:r,ref:t,classes:T,styles:a$1,...E},l)});Pe.displayName="Flex";var Ce=C.forwardRef((e,t)=>{let{grow:o,shrink:s,basis:r,flex:i,alignSelf:a$1,order:l,as:c="div",className:y="",styles:u,children:f,sm:S,md:g,lg:v,xl:m,...x}=e,h=[];if(i){let d={1:"flex-1",auto:"flex-auto",initial:"flex-initial",none:"flex-none"};h.push(d[i]);}if(o!==void 0&&h.push(`flex-grow-${o}`),s!==void 0&&h.push(`flex-shrink-${s}`),r){let d={auto:"flex-basis-auto",0:"flex-basis-0",full:"flex-basis-full"};h.push(d[r]);}if(a$1){let d={auto:"self-auto",start:"self-start",end:"self-end",center:"self-center",baseline:"self-baseline",stretch:"self-stretch"};h.push(d[a$1]);}if(l){let d={first:"order-first",last:"order-last",none:"order-none"};h.push(d[l]);}if(S?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`sm:${d[S.flex]}`);}if(g?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`md:${d[g.flex]}`);}if(v?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`lg:${d[v.flex]}`);}if(m?.flex){let d={1:"flex-1",auto:"flex-auto",none:"flex-none"};h.push(`xl:${d[m.flex]}`);}let p=[...h,y].filter(Boolean).join(" ");return C.createElement(a,{as:c,ref:t,classes:p,styles:u,...x},f)});Ce.displayName="Flex.Item";var be=C.forwardRef((e,t)=>{let{as:o="div",className:s="",styles:r,...i}=e,a$1=["flex-1",s].filter(Boolean).join(" ");return C.createElement(a,{as:o,ref:t,classes:a$1,styles:r,...i})});be.displayName="Flex.Spacer";var Y=Pe;Y.Item=Ce;Y.Spacer=be;var ft=Y;var we=({id:e,styles:t,classes:o,children:s,variant:r,...i})=>C.createElement(a,{as:"sup",id:e,styles:t,className:o,"data-badge":r||void 0,role:"status",...i},C.createElement(a,{as:"span"},s));we.displayName="Badge";var dt=({elm:e="span",role:t="note",variant:o,children:s,styles:r,...i})=>C.createElement(a,{as:e,role:t,"data-tag":o||void 0,styles:r,...i},s);dt.displayName="Tag";var ut=C.forwardRef(({summary:e,icon:t,styles:o,classes:s,ariaLabel:r,name:i,open:a$1,onPointerDown:l,onToggle:c,children:y,...u},f)=>{let S=useCallback(v=>{l?.(v);},[l]),g=useCallback(v=>{c?.(v);},[c]);return C.createElement(a,{as:"details",styles:o,classes:s,onToggle:g,ref:f,open:a$1,"aria-label":r,name:i,...u},C.createElement(a,{as:"summary",onPointerDown:S},t,e),C.createElement(a,{as:"section"},y))});ut.displayName="Details";
|
|
42
42
|
|
|
43
|
-
export { re as Alert,
|
|
43
|
+
export { re as Alert, pt as Article, at as Aside, we as Badge, fe as Box, ne as Checkbox, xe as Cluster, Ie as Col, ut as Details, ft as Flex, it as Footer, ct as Grid, Q as GridItem, rt as Header, ie as Img, F as Landmarks, nt as Main, Se as Row, lt as Section, de as Stack, dt as Tag, pe as TextToSpeech };
|
|
44
44
|
//# sourceMappingURL=out.js.map
|
|
45
45
|
//# sourceMappingURL=index.js.map
|