@dev-dga/react 0.13.0 → 1.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{chunk-TGM4JFWI.cjs → chunk-7GAELGEB.cjs} +3 -3
  3. package/dist/{chunk-TGM4JFWI.cjs.map → chunk-7GAELGEB.cjs.map} +1 -1
  4. package/dist/{chunk-J53OY747.js → chunk-AHUL5WRD.js} +5 -5
  5. package/dist/{chunk-5N6CFYT6.cjs → chunk-B3MX4XNP.cjs} +3 -3
  6. package/dist/{chunk-5N6CFYT6.cjs.map → chunk-B3MX4XNP.cjs.map} +1 -1
  7. package/dist/{chunk-KSEN4ESR.js → chunk-BJIB6S5L.js} +3 -3
  8. package/dist/chunk-BJIB6S5L.js.map +1 -0
  9. package/dist/{chunk-WLJHHTE2.js → chunk-EZRPCQSP.js} +7 -7
  10. package/dist/{chunk-P7WYXL4A.cjs → chunk-GXF5IZEX.cjs} +3 -3
  11. package/dist/{chunk-P7WYXL4A.cjs.map → chunk-GXF5IZEX.cjs.map} +1 -1
  12. package/dist/{chunk-ANHZT2X2.js → chunk-JADNUODB.js} +3 -3
  13. package/dist/{chunk-ANHZT2X2.js.map → chunk-JADNUODB.js.map} +1 -1
  14. package/dist/{chunk-NGDKAG2O.cjs → chunk-K27GNXBF.cjs} +4 -4
  15. package/dist/{chunk-NGDKAG2O.cjs.map → chunk-K27GNXBF.cjs.map} +1 -1
  16. package/dist/{chunk-J7HSAVFF.cjs → chunk-K7GLIST7.cjs} +6 -6
  17. package/dist/{chunk-J7HSAVFF.cjs.map → chunk-K7GLIST7.cjs.map} +1 -1
  18. package/dist/{chunk-MECGQLHL.js → chunk-NJIQJHJS.js} +4 -4
  19. package/dist/{chunk-QLV4RQVQ.cjs → chunk-V7U2CXYL.cjs} +3 -3
  20. package/dist/chunk-V7U2CXYL.cjs.map +1 -0
  21. package/dist/{chunk-4S2DSEXR.js → chunk-WRUVDZRI.js} +4 -4
  22. package/dist/components/Card/Card.cjs +3 -3
  23. package/dist/components/Card/Card.js +2 -2
  24. package/dist/components/Card/index.cjs +3 -3
  25. package/dist/components/Card/index.js +2 -2
  26. package/dist/components/FileUpload/FileUpload.cjs +3 -3
  27. package/dist/components/FileUpload/FileUpload.js +2 -2
  28. package/dist/components/FileUpload/index.cjs +3 -3
  29. package/dist/components/FileUpload/index.js +2 -2
  30. package/dist/components/Filtration/Filtration.cjs +6 -6
  31. package/dist/components/Filtration/Filtration.js +5 -5
  32. package/dist/components/Filtration/index.cjs +6 -6
  33. package/dist/components/Filtration/index.js +5 -5
  34. package/dist/components/Progress/Progress.cjs +2 -2
  35. package/dist/components/Progress/Progress.js +1 -1
  36. package/dist/components/Progress/index.cjs +2 -2
  37. package/dist/components/Progress/index.js +1 -1
  38. package/dist/components/SearchBox/SearchBox.cjs +3 -3
  39. package/dist/components/SearchBox/SearchBox.js +2 -2
  40. package/dist/components/SearchBox/index.cjs +3 -3
  41. package/dist/components/SearchBox/index.js +2 -2
  42. package/dist/components/SlideoutMenu/SlideoutMenu.cjs +2 -2
  43. package/dist/components/SlideoutMenu/SlideoutMenu.js +1 -1
  44. package/dist/components/SlideoutMenu/index.cjs +2 -2
  45. package/dist/components/SlideoutMenu/index.js +1 -1
  46. package/dist/index.cjs +53 -53
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.cts +4 -4
  49. package/dist/index.d.ts +4 -4
  50. package/dist/index.js +79 -79
  51. package/package.json +3 -3
  52. package/dist/chunk-KSEN4ESR.js.map +0 -1
  53. package/dist/chunk-QLV4RQVQ.cjs.map +0 -1
  54. /package/dist/{chunk-J53OY747.js.map → chunk-AHUL5WRD.js.map} +0 -0
  55. /package/dist/{chunk-WLJHHTE2.js.map → chunk-EZRPCQSP.js.map} +0 -0
  56. /package/dist/{chunk-MECGQLHL.js.map → chunk-NJIQJHJS.js.map} +0 -0
  57. /package/dist/{chunk-4S2DSEXR.js.map → chunk-WRUVDZRI.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @dev-dga/react
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - **1.0 — the public API is now stable and follows [semantic versioning](../../SUPPORT.md).** The package exports (components, hooks, `DgaProvider`, `cn`, `FieldMessage`, and the exported prop/theming types) are the semver contract from here on. No new features and no visual changes in this release; see `MIGRATING.md` for the two prop renames below.
8
+ - **BREAKING — `SlideoutMenuHeader`: prop `showClose` renamed to `showCloseButton`.** Aligns with the identical prop on `ModalContent` and `DrawerContent`. Same behavior, same default (`true`).
9
+ - **BREAKING — `CircularProgress`: prop `showLabel` renamed to `showValue`.** Aligns with the linear `Progress` component in the same module. Same behavior, same default (`true`).
10
+
3
11
  ## 0.13.0
4
12
 
5
13
  ### Minor Changes
@@ -3,13 +3,13 @@
3
3
  var _chunkEQINOHB6cjs = require('./chunk-EQINOHB6.cjs');
4
4
 
5
5
 
6
+ var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
6
7
 
7
8
 
8
9
 
9
- var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
10
10
 
11
11
 
12
- var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
12
+ var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
13
13
 
14
14
 
15
15
  var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
@@ -127,4 +127,4 @@ function SearchBox({
127
127
 
128
128
 
129
129
  exports.SearchBox = SearchBox;
130
- //# sourceMappingURL=chunk-TGM4JFWI.cjs.map
130
+ //# sourceMappingURL=chunk-7GAELGEB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TGM4JFWI.cjs","../src/components/SearchBox/SearchBox.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-TGM4JFWI.cjs","sourcesContent":[null,"'use client';\n\nimport { useCallback, useRef, useState } from 'react';\nimport { cn } from '../../utils/cn';\nimport { TextInput, type TextInputProps } from '../TextInput';\nimport { Button } from '../Button';\nimport { SearchGlyph, Close, Mic, HelpCircleGlyph } from '../../internal/icons';\n\n// SearchBox composes TextInput — it reuses TextInput's field a11y (label /\n// helper / error), state + fill styles and adornment slots — and adds the SDGA\n// Search Box chrome: a leading magnifier, the voice-search mic (SDGA's trailing\n// icon), Escape-to-clear, `onSearch`, and an off-spec clear (×). It is a form\n// control, so (like TextInput) it does NOT take `asChild`.\ninterface SearchBoxProps extends Omit<TextInputProps, 'startAdornment' | 'endAdornment' | 'type'> {\n /** Fires on Enter with the current query string. */\n onSearch?: (value: string) => void;\n /** Show the SDGA voice-search mic while the field is empty. Default `true`. */\n voiceSearch?: boolean;\n /** Fires when the voice-search mic is activated, with the current query. */\n onVoiceSearch?: (value: string) => void;\n /** Fires when the field is cleared (clear button or Escape). */\n onClear?: () => void;\n /** Show the clear (×) button while the field has a value. Default `true`. */\n clearable?: boolean;\n /** Accessible label for the clear button. Default `'Clear search'`. */\n clearLabel?: string;\n /** Accessible label for the voice-search mic. Default `'Search by voice'`. */\n voiceLabel?: string;\n}\n\n// Set the value via the native setter (bypasses React's value tracker) + dispatch `input`,\n// so clear() fires onChange identically in controlled and uncontrolled mode.\nfunction setNativeInputValue(el: HTMLInputElement, value: string) {\n const setter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set;\n setter?.call(el, value);\n el.dispatchEvent(new Event('input', { bubbles: true }));\n}\n\nfunction SearchBox({\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onSearch,\n voiceSearch = true,\n onVoiceSearch,\n onClear,\n clearable = true,\n clearLabel = 'Clear search',\n voiceLabel = 'Search by voice',\n helperIcon = <HelpCircleGlyph width={16} height={16} aria-hidden=\"true\" />,\n disabled,\n readOnly,\n className,\n ref,\n ...rest\n}: SearchBoxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n // We need the input node internally (clear() refocuses it), but consumers can\n // also pass a `ref` (TextInputProps advertises it). Merge both onto one\n // callback so neither clobbers the other.\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n // Internally controlled: we always feed `value` to the inner input so the\n // clear button's visibility tracks the current text in both modes.\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(\n defaultValue != null ? String(defaultValue) : '',\n );\n const currentValue = isControlled ? String(value ?? '') : internal;\n\n const isLocked = !!disabled || !!readOnly;\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setInternal(event.target.value);\n onChange?.(event);\n };\n\n const clear = () => {\n if (isLocked) return;\n const el = inputRef.current;\n if (!el) return;\n setNativeInputValue(el, '');\n el.focus();\n onClear?.();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n if (event.key === 'Enter') {\n onSearch?.(currentValue);\n } else if (event.key === 'Escape' && currentValue.length > 0 && !isLocked) {\n // First Escape clears the query; stop it here so a parent overlay\n // (Modal/Popover) only closes on a second, now-empty Escape.\n event.preventDefault();\n event.stopPropagation();\n clear();\n }\n };\n\n const showClear = clearable && currentValue.length > 0 && !isLocked;\n const showVoice = voiceSearch && !showClear;\n\n const trailing = showClear ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={clearLabel}\n data-slot=\"search-box-clear\"\n onClick={clear}\n >\n <Close aria-hidden=\"true\" />\n </Button>\n ) : showVoice ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={voiceLabel}\n data-slot=\"search-box-voice\"\n disabled={isLocked}\n onClick={() => onVoiceSearch?.(currentValue)}\n >\n <Mic aria-hidden=\"true\" />\n </Button>\n ) : undefined;\n\n return (\n <TextInput\n {...rest}\n ref={setRefs}\n type=\"search\"\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n helperIcon={helperIcon}\n className={cn('ddga-search-box', className)}\n startAdornment={<SearchGlyph data-slot=\"search-box-icon\" aria-hidden=\"true\" />}\n endAdornment={trailing}\n />\n );\n}\n\nexport { SearchBox };\nexport type { SearchBoxProps };\n"]}
1
+ {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-7GAELGEB.cjs","../src/components/SearchBox/SearchBox.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-7GAELGEB.cjs","sourcesContent":[null,"'use client';\n\nimport { useCallback, useRef, useState } from 'react';\nimport { cn } from '../../utils/cn';\nimport { TextInput, type TextInputProps } from '../TextInput';\nimport { Button } from '../Button';\nimport { SearchGlyph, Close, Mic, HelpCircleGlyph } from '../../internal/icons';\n\n// SearchBox composes TextInput — it reuses TextInput's field a11y (label /\n// helper / error), state + fill styles and adornment slots — and adds the SDGA\n// Search Box chrome: a leading magnifier, the voice-search mic (SDGA's trailing\n// icon), Escape-to-clear, `onSearch`, and an off-spec clear (×). It is a form\n// control, so (like TextInput) it does NOT take `asChild`.\ninterface SearchBoxProps extends Omit<TextInputProps, 'startAdornment' | 'endAdornment' | 'type'> {\n /** Fires on Enter with the current query string. */\n onSearch?: (value: string) => void;\n /** Show the SDGA voice-search mic while the field is empty. Default `true`. */\n voiceSearch?: boolean;\n /** Fires when the voice-search mic is activated, with the current query. */\n onVoiceSearch?: (value: string) => void;\n /** Fires when the field is cleared (clear button or Escape). */\n onClear?: () => void;\n /** Show the clear (×) button while the field has a value. Default `true`. */\n clearable?: boolean;\n /** Accessible label for the clear button. Default `'Clear search'`. */\n clearLabel?: string;\n /** Accessible label for the voice-search mic. Default `'Search by voice'`. */\n voiceLabel?: string;\n}\n\n// Set the value via the native setter (bypasses React's value tracker) + dispatch `input`,\n// so clear() fires onChange identically in controlled and uncontrolled mode.\nfunction setNativeInputValue(el: HTMLInputElement, value: string) {\n const setter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set;\n setter?.call(el, value);\n el.dispatchEvent(new Event('input', { bubbles: true }));\n}\n\nfunction SearchBox({\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onSearch,\n voiceSearch = true,\n onVoiceSearch,\n onClear,\n clearable = true,\n clearLabel = 'Clear search',\n voiceLabel = 'Search by voice',\n helperIcon = <HelpCircleGlyph width={16} height={16} aria-hidden=\"true\" />,\n disabled,\n readOnly,\n className,\n ref,\n ...rest\n}: SearchBoxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n // We need the input node internally (clear() refocuses it), but consumers can\n // also pass a `ref` (TextInputProps advertises it). Merge both onto one\n // callback so neither clobbers the other.\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n // Internally controlled: we always feed `value` to the inner input so the\n // clear button's visibility tracks the current text in both modes.\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(\n defaultValue != null ? String(defaultValue) : '',\n );\n const currentValue = isControlled ? String(value ?? '') : internal;\n\n const isLocked = !!disabled || !!readOnly;\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setInternal(event.target.value);\n onChange?.(event);\n };\n\n const clear = () => {\n if (isLocked) return;\n const el = inputRef.current;\n if (!el) return;\n setNativeInputValue(el, '');\n el.focus();\n onClear?.();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n if (event.key === 'Enter') {\n onSearch?.(currentValue);\n } else if (event.key === 'Escape' && currentValue.length > 0 && !isLocked) {\n // First Escape clears the query; stop it here so a parent overlay\n // (Modal/Popover) only closes on a second, now-empty Escape.\n event.preventDefault();\n event.stopPropagation();\n clear();\n }\n };\n\n const showClear = clearable && currentValue.length > 0 && !isLocked;\n const showVoice = voiceSearch && !showClear;\n\n const trailing = showClear ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={clearLabel}\n data-slot=\"search-box-clear\"\n onClick={clear}\n >\n <Close aria-hidden=\"true\" />\n </Button>\n ) : showVoice ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={voiceLabel}\n data-slot=\"search-box-voice\"\n disabled={isLocked}\n onClick={() => onVoiceSearch?.(currentValue)}\n >\n <Mic aria-hidden=\"true\" />\n </Button>\n ) : undefined;\n\n return (\n <TextInput\n {...rest}\n ref={setRefs}\n type=\"search\"\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n helperIcon={helperIcon}\n className={cn('ddga-search-box', className)}\n startAdornment={<SearchGlyph data-slot=\"search-box-icon\" aria-hidden=\"true\" />}\n endAdornment={trailing}\n />\n );\n}\n\nexport { SearchBox };\nexport type { SearchBoxProps };\n"]}
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  SearchBox
3
- } from "./chunk-4S2DSEXR.js";
3
+ } from "./chunk-WRUVDZRI.js";
4
4
  import {
5
5
  Popover,
6
6
  PopoverContent,
7
7
  PopoverTrigger
8
8
  } from "./chunk-APD5WA65.js";
9
+ import {
10
+ Button
11
+ } from "./chunk-GQAX2CH6.js";
9
12
  import {
10
13
  Checkbox
11
14
  } from "./chunk-TNIRKGXY.js";
@@ -14,9 +17,6 @@ import {
14
17
  ChevronDown,
15
18
  Filter
16
19
  } from "./chunk-FFGALWM2.js";
17
- import {
18
- Button
19
- } from "./chunk-GQAX2CH6.js";
20
20
  import {
21
21
  cn
22
22
  } from "./chunk-7NTT2UXP.js";
@@ -372,4 +372,4 @@ export {
372
372
  FiltrationOption,
373
373
  FiltrationFooter
374
374
  };
375
- //# sourceMappingURL=chunk-J53OY747.js.map
375
+ //# sourceMappingURL=chunk-AHUL5WRD.js.map
@@ -129,7 +129,7 @@ function CircularProgress({
129
129
  state = "normal",
130
130
  thickness,
131
131
  segments,
132
- showLabel = true,
132
+ showValue = true,
133
133
  description,
134
134
  className,
135
135
  ...props
@@ -176,7 +176,7 @@ function CircularProgress({
176
176
  i
177
177
  );
178
178
  }) : null;
179
- const showValueLabel = !isIndeterminate && showLabel && !isStatus;
179
+ const showValueLabel = !isIndeterminate && showValue && !isStatus;
180
180
  const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;
181
181
  const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);
182
182
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -253,4 +253,4 @@ function CircularProgress({
253
253
 
254
254
 
255
255
  exports.progressVariants = progressVariants; exports.circularProgressVariants = circularProgressVariants; exports.Progress = Progress; exports.CircularProgress = CircularProgress;
256
- //# sourceMappingURL=chunk-5N6CFYT6.cjs.map
256
+ //# sourceMappingURL=chunk-B3MX4XNP.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-5N6CFYT6.cjs","../src/components/Progress/Progress.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-5N6CFYT6.cjs","sourcesContent":[null,"'use client';\n\nimport { useId } from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, Close, HelpCircle } from '../../internal/icons';\n\nconst progressVariants = cva('ddga-progress', {\n variants: {\n size: {\n sm: 'ddga-progress--sm',\n md: 'ddga-progress--md',\n lg: 'ddga-progress--lg',\n },\n variant: {\n primary: 'ddga-progress--primary',\n neutral: 'ddga-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-progress--success',\n error: 'ddga-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\nconst circularProgressVariants = cva('ddga-circular-progress', {\n variants: {\n size: {\n sm: 'ddga-circular-progress--sm',\n md: 'ddga-circular-progress--md',\n lg: 'ddga-circular-progress--lg',\n xl: 'ddga-circular-progress--xl',\n '2xl': 'ddga-circular-progress--2xl',\n },\n variant: {\n primary: 'ddga-circular-progress--primary',\n neutral: 'ddga-circular-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-circular-progress--success',\n error: 'ddga-circular-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\ntype ProgressState = 'normal' | 'success' | 'error';\n\nfunction StatusBadge({ className, state }: { className: string; state: 'success' | 'error' }) {\n return (\n <span className={cn(className, `${className}--${state}`)} aria-hidden=\"true\">\n {state === 'success' ? <Check /> : <Close />}\n </span>\n );\n}\n\ntype ProgressOwnProps = VariantProps<typeof progressVariants> & {\n /** Current progress. `null`/omitted renders the indeterminate slide. Clamp to `[0, max]` yourself. */\n value?: number | null;\n /** Maximum value. Defaults to 100. */\n max?: number;\n\n state?: ProgressState;\n label?: React.ReactNode;\n required?: boolean;\n helperText?: React.ReactNode;\n showValue?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype ProgressProps = ProgressOwnProps &\n Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, keyof ProgressOwnProps | 'asChild'>;\n\nfunction Progress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n label,\n required = false,\n helperText,\n showValue,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ProgressProps) {\n const labelId = useId();\n const isIndeterminate = value === null;\n const isStatus = state === 'success' || state === 'error';\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const showInBar = size === 'lg' && !isIndeterminate && showValue !== false;\n\n return (\n <div\n data-slot=\"progress-root\"\n className={cn(progressVariants({ size, variant, state }), className)}\n >\n {label != null && (\n <span id={labelId} data-slot=\"progress-label\" className=\"ddga-progress__label\">\n {required && (\n <span className=\"ddga-progress__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n {label}\n </span>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={isIndeterminate ? null : value}\n max={max}\n aria-label={label == null ? ariaLabel : undefined}\n aria-labelledby={label != null ? labelId : ariaLabelledby}\n className=\"ddga-progress__track\"\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"ddga-progress__indicator\"\n style={isIndeterminate ? undefined : { inlineSize: `${fillPct}%` }}\n >\n {showInBar && (\n <span className=\"ddga-progress__value\" data-slot=\"progress-value\" dir=\"auto\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Indicator>\n </ProgressPrimitive.Root>\n {helperText != null && (\n <span data-slot=\"progress-helper\" className=\"ddga-progress__helper\">\n {isStatus ? (\n <StatusBadge className=\"ddga-progress__badge\" state={state as 'success' | 'error'} />\n ) : (\n <span className=\"ddga-progress__helper-icon\" aria-hidden=\"true\">\n <HelpCircle />\n </span>\n )}\n <span className=\"ddga-progress__helper-text\">{helperText}</span>\n </span>\n )}\n </div>\n );\n}\n\ntype CircularProgressOwnProps = VariantProps<typeof circularProgressVariants> & {\n value?: number | null;\n max?: number;\n state?: ProgressState;\n thickness?: number;\n segments?: number;\n showLabel?: boolean;\n description?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype CircularProgressProps = CircularProgressOwnProps &\n Omit<React.ComponentProps<'div'>, keyof CircularProgressOwnProps>;\n\nconst CIRCULAR_SIZES = { sm: 64, md: 80, lg: 120, xl: 160, '2xl': 200 } as const;\nconst CIRCULAR_STROKE = { sm: 4, md: 8, lg: 10, xl: 14, '2xl': 20 } as const;\nconst SEGMENT_GAP_FRACTION = 0.16;\n\nfunction CircularProgress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n thickness,\n segments,\n showLabel = true,\n description,\n className,\n ...props\n}: CircularProgressProps) {\n if (process.env.NODE_ENV === 'development' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[dga/Progress] <CircularProgress> has no accessible name. Pass `aria-label` or ' +\n '`aria-labelledby` so screen-reader users know what the progress represents.',\n );\n }\n\n const isIndeterminate = value === null;\n const isSegmented = typeof segments === 'number' && segments >= 2;\n const isStatus = state === 'success' || state === 'error';\n const sizeKey = size ?? 'md';\n const diameter = CIRCULAR_SIZES[sizeKey];\n const strokeWidth = thickness ?? CIRCULAR_STROKE[sizeKey];\n const radius = (diameter - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = diameter / 2;\n\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const dashOffset = isIndeterminate ? circumference * 0.75 : circumference * (1 - fillPct / 100);\n\n const dataState = isIndeterminate ? 'indeterminate' : value >= max ? 'complete' : 'loading';\n\n const filledSegments =\n isSegmented && segments ? (isIndeterminate ? 0 : Math.round((pct / 100) * segments)) : 0;\n const segmentEls =\n isSegmented && segments\n ? Array.from({ length: segments }, (_, i) => {\n const segAngle = 360 / segments;\n const gapAngle = segAngle * SEGMENT_GAP_FRACTION;\n const segLen = circumference * ((1 - SEGMENT_GAP_FRACTION) / segments);\n return (\n <circle\n key={i}\n className={cn(\n 'ddga-circular-progress__segment',\n i < filledSegments && 'ddga-circular-progress__segment--filled',\n )}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n // Butt caps: round caps overrun the gap at small sizes.\n strokeLinecap=\"butt\"\n strokeDasharray={`${segLen} ${circumference}`}\n transform={`rotate(${-90 + i * segAngle + gapAngle / 2} ${center} ${center})`}\n />\n );\n })\n : null;\n\n const showValueLabel = !isIndeterminate && showLabel && !isStatus;\n const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;\n const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);\n\n return (\n <div\n data-slot=\"circular-progress\"\n data-state={dataState}\n data-segmented={isSegmented ? '' : undefined}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(circularProgressVariants({ size, variant, state }), className)}\n style={{ inlineSize: diameter, blockSize: diameter }}\n {...props}\n >\n <svg\n className=\"ddga-circular-progress__svg\"\n viewBox={`0 0 ${diameter} ${diameter}`}\n width={diameter}\n height={diameter}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {isSegmented ? (\n segmentEls\n ) : (\n <>\n <circle\n className=\"ddga-circular-progress__track\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n />\n <circle\n className=\"ddga-circular-progress__indicator\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n transform={`rotate(-90 ${center} ${center})`}\n />\n </>\n )}\n </svg>\n {showCentre && (\n <span className=\"ddga-circular-progress__label\" aria-hidden=\"true\">\n {isStatus ? (\n <StatusBadge\n className=\"ddga-circular-progress__badge\"\n state={state as 'success' | 'error'}\n />\n ) : (\n <span className=\"ddga-circular-progress__value\">{valueText}</span>\n )}\n {description != null && (\n <span className=\"ddga-circular-progress__text\">{description}</span>\n )}\n </span>\n )}\n </div>\n );\n}\n\nexport { Progress, CircularProgress, progressVariants, circularProgressVariants };\nexport type { ProgressProps, CircularProgressProps };\n"]}
1
+ {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-B3MX4XNP.cjs","../src/components/Progress/Progress.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-B3MX4XNP.cjs","sourcesContent":[null,"'use client';\n\nimport { useId } from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, Close, HelpCircle } from '../../internal/icons';\n\nconst progressVariants = cva('ddga-progress', {\n variants: {\n size: {\n sm: 'ddga-progress--sm',\n md: 'ddga-progress--md',\n lg: 'ddga-progress--lg',\n },\n variant: {\n primary: 'ddga-progress--primary',\n neutral: 'ddga-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-progress--success',\n error: 'ddga-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\nconst circularProgressVariants = cva('ddga-circular-progress', {\n variants: {\n size: {\n sm: 'ddga-circular-progress--sm',\n md: 'ddga-circular-progress--md',\n lg: 'ddga-circular-progress--lg',\n xl: 'ddga-circular-progress--xl',\n '2xl': 'ddga-circular-progress--2xl',\n },\n variant: {\n primary: 'ddga-circular-progress--primary',\n neutral: 'ddga-circular-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-circular-progress--success',\n error: 'ddga-circular-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\ntype ProgressState = 'normal' | 'success' | 'error';\n\nfunction StatusBadge({ className, state }: { className: string; state: 'success' | 'error' }) {\n return (\n <span className={cn(className, `${className}--${state}`)} aria-hidden=\"true\">\n {state === 'success' ? <Check /> : <Close />}\n </span>\n );\n}\n\ntype ProgressOwnProps = VariantProps<typeof progressVariants> & {\n /** Current progress. `null`/omitted renders the indeterminate slide. Clamp to `[0, max]` yourself. */\n value?: number | null;\n /** Maximum value. Defaults to 100. */\n max?: number;\n\n state?: ProgressState;\n label?: React.ReactNode;\n required?: boolean;\n helperText?: React.ReactNode;\n showValue?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype ProgressProps = ProgressOwnProps &\n Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, keyof ProgressOwnProps | 'asChild'>;\n\nfunction Progress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n label,\n required = false,\n helperText,\n showValue,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ProgressProps) {\n const labelId = useId();\n const isIndeterminate = value === null;\n const isStatus = state === 'success' || state === 'error';\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const showInBar = size === 'lg' && !isIndeterminate && showValue !== false;\n\n return (\n <div\n data-slot=\"progress-root\"\n className={cn(progressVariants({ size, variant, state }), className)}\n >\n {label != null && (\n <span id={labelId} data-slot=\"progress-label\" className=\"ddga-progress__label\">\n {required && (\n <span className=\"ddga-progress__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n {label}\n </span>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={isIndeterminate ? null : value}\n max={max}\n aria-label={label == null ? ariaLabel : undefined}\n aria-labelledby={label != null ? labelId : ariaLabelledby}\n className=\"ddga-progress__track\"\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"ddga-progress__indicator\"\n style={isIndeterminate ? undefined : { inlineSize: `${fillPct}%` }}\n >\n {showInBar && (\n <span className=\"ddga-progress__value\" data-slot=\"progress-value\" dir=\"auto\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Indicator>\n </ProgressPrimitive.Root>\n {helperText != null && (\n <span data-slot=\"progress-helper\" className=\"ddga-progress__helper\">\n {isStatus ? (\n <StatusBadge className=\"ddga-progress__badge\" state={state as 'success' | 'error'} />\n ) : (\n <span className=\"ddga-progress__helper-icon\" aria-hidden=\"true\">\n <HelpCircle />\n </span>\n )}\n <span className=\"ddga-progress__helper-text\">{helperText}</span>\n </span>\n )}\n </div>\n );\n}\n\ntype CircularProgressOwnProps = VariantProps<typeof circularProgressVariants> & {\n value?: number | null;\n max?: number;\n state?: ProgressState;\n thickness?: number;\n segments?: number;\n showValue?: boolean;\n description?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype CircularProgressProps = CircularProgressOwnProps &\n Omit<React.ComponentProps<'div'>, keyof CircularProgressOwnProps>;\n\nconst CIRCULAR_SIZES = { sm: 64, md: 80, lg: 120, xl: 160, '2xl': 200 } as const;\nconst CIRCULAR_STROKE = { sm: 4, md: 8, lg: 10, xl: 14, '2xl': 20 } as const;\nconst SEGMENT_GAP_FRACTION = 0.16;\n\nfunction CircularProgress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n thickness,\n segments,\n showValue = true,\n description,\n className,\n ...props\n}: CircularProgressProps) {\n if (process.env.NODE_ENV === 'development' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[dga/Progress] <CircularProgress> has no accessible name. Pass `aria-label` or ' +\n '`aria-labelledby` so screen-reader users know what the progress represents.',\n );\n }\n\n const isIndeterminate = value === null;\n const isSegmented = typeof segments === 'number' && segments >= 2;\n const isStatus = state === 'success' || state === 'error';\n const sizeKey = size ?? 'md';\n const diameter = CIRCULAR_SIZES[sizeKey];\n const strokeWidth = thickness ?? CIRCULAR_STROKE[sizeKey];\n const radius = (diameter - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = diameter / 2;\n\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const dashOffset = isIndeterminate ? circumference * 0.75 : circumference * (1 - fillPct / 100);\n\n const dataState = isIndeterminate ? 'indeterminate' : value >= max ? 'complete' : 'loading';\n\n const filledSegments =\n isSegmented && segments ? (isIndeterminate ? 0 : Math.round((pct / 100) * segments)) : 0;\n const segmentEls =\n isSegmented && segments\n ? Array.from({ length: segments }, (_, i) => {\n const segAngle = 360 / segments;\n const gapAngle = segAngle * SEGMENT_GAP_FRACTION;\n const segLen = circumference * ((1 - SEGMENT_GAP_FRACTION) / segments);\n return (\n <circle\n key={i}\n className={cn(\n 'ddga-circular-progress__segment',\n i < filledSegments && 'ddga-circular-progress__segment--filled',\n )}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n // Butt caps: round caps overrun the gap at small sizes.\n strokeLinecap=\"butt\"\n strokeDasharray={`${segLen} ${circumference}`}\n transform={`rotate(${-90 + i * segAngle + gapAngle / 2} ${center} ${center})`}\n />\n );\n })\n : null;\n\n const showValueLabel = !isIndeterminate && showValue && !isStatus;\n const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;\n const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);\n\n return (\n <div\n data-slot=\"circular-progress\"\n data-state={dataState}\n data-segmented={isSegmented ? '' : undefined}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(circularProgressVariants({ size, variant, state }), className)}\n style={{ inlineSize: diameter, blockSize: diameter }}\n {...props}\n >\n <svg\n className=\"ddga-circular-progress__svg\"\n viewBox={`0 0 ${diameter} ${diameter}`}\n width={diameter}\n height={diameter}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {isSegmented ? (\n segmentEls\n ) : (\n <>\n <circle\n className=\"ddga-circular-progress__track\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n />\n <circle\n className=\"ddga-circular-progress__indicator\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n transform={`rotate(-90 ${center} ${center})`}\n />\n </>\n )}\n </svg>\n {showCentre && (\n <span className=\"ddga-circular-progress__label\" aria-hidden=\"true\">\n {isStatus ? (\n <StatusBadge\n className=\"ddga-circular-progress__badge\"\n state={state as 'success' | 'error'}\n />\n ) : (\n <span className=\"ddga-circular-progress__value\">{valueText}</span>\n )}\n {description != null && (\n <span className=\"ddga-circular-progress__text\">{description}</span>\n )}\n </span>\n )}\n </div>\n );\n}\n\nexport { Progress, CircularProgress, progressVariants, circularProgressVariants };\nexport type { ProgressProps, CircularProgressProps };\n"]}
@@ -66,7 +66,7 @@ function SlideoutMenuContent({
66
66
  }
67
67
  function SlideoutMenuHeader({
68
68
  icon,
69
- showClose = true,
69
+ showCloseButton = true,
70
70
  closeLabel = "Close",
71
71
  className,
72
72
  children,
@@ -91,7 +91,7 @@ function SlideoutMenuHeader({
91
91
  ) : null,
92
92
  /* @__PURE__ */ jsx("div", { className: "ddga-slideout-menu__header-text", children })
93
93
  ] }),
94
- showClose ? /* @__PURE__ */ jsx(
94
+ showCloseButton ? /* @__PURE__ */ jsx(
95
95
  DialogPrimitive.Close,
96
96
  {
97
97
  className: "ddga-slideout-menu__close",
@@ -227,4 +227,4 @@ export {
227
227
  SlideoutMenuFooter,
228
228
  SlideoutMenuClose
229
229
  };
230
- //# sourceMappingURL=chunk-KSEN4ESR.js.map
230
+ //# sourceMappingURL=chunk-BJIB6S5L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/SlideoutMenu/SlideoutMenu.tsx"],"sourcesContent":["'use client';\n\nimport { useContext, useId } from 'react';\nimport { Dialog as DialogPrimitive, Slot as SlotPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { DgaContext } from '../../providers/DgaContext';\nimport { Close } from '../../internal/icons';\n\n// Nav panel on Radix Dialog. Uses <ul>/<li>/link semantics, NOT role=\"menu\" (which breaks SR browse mode for site nav).\n\nconst slideoutMenuContentVariants = cva('ddga-slideout-menu', {\n variants: {\n side: {\n start: 'ddga-slideout-menu--start',\n end: 'ddga-slideout-menu--end',\n },\n /** Panel surface — SDGA \"Background Color\". Gray (`gray-100`) or White. */\n background: {\n gray: 'ddga-slideout-menu--gray',\n white: 'ddga-slideout-menu--white',\n },\n },\n defaultVariants: {\n side: 'start',\n background: 'gray',\n },\n});\n\ntype SlideoutMenuProps = React.ComponentProps<typeof DialogPrimitive.Root>;\ntype SlideoutMenuTriggerProps = React.ComponentProps<typeof DialogPrimitive.Trigger>;\ntype SlideoutMenuCloseProps = React.ComponentProps<typeof DialogPrimitive.Close>;\n\ninterface SlideoutMenuContentProps\n extends\n React.ComponentProps<typeof DialogPrimitive.Content>,\n VariantProps<typeof slideoutMenuContentVariants> {}\n\ninterface SlideoutMenuHeaderProps extends React.ComponentProps<'div'> {\n /** Optional featured icon, shown in a 32px brand-tinted disc before the title. */\n icon?: React.ReactNode;\n /** Render the close (X) button. Defaults to `true`. */\n showCloseButton?: boolean;\n /** Localized aria-label for the close button. Defaults to `\"Close\"`. */\n closeLabel?: string;\n}\n\ninterface SlideoutMenuTitleProps extends React.ComponentProps<typeof DialogPrimitive.Title> {\n asChild?: boolean;\n}\n\ninterface SlideoutMenuDescriptionProps extends React.ComponentProps<\n typeof DialogPrimitive.Description\n> {\n asChild?: boolean;\n}\n\ntype SlideoutMenuSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\ninterface SlideoutMenuGroupProps extends React.ComponentProps<'div'> {\n /** Section heading rendered above the list (SDGA \"Group Label\"). */\n label?: React.ReactNode;\n}\n\ninterface SlideoutMenuItemProps extends React.ComponentProps<'button'> {\n /** Render as the child element (e.g. an `<a>` or router `<Link>`). */\n asChild?: boolean;\n /** Leading 24px icon. */\n icon?: React.ReactNode;\n /** Trailing slot — counter text, an icon button, a check, a `Tag`, etc. */\n trailing?: React.ReactNode;\n /** Marks the current page — sets `aria-current=\"page\"` and the active style. */\n active?: boolean;\n}\n\nfunction SlideoutMenu(props: SlideoutMenuProps) {\n return <DialogPrimitive.Root {...props} />;\n}\n\nfunction SlideoutMenuTrigger({ className, ...props }: SlideoutMenuTriggerProps) {\n return (\n <DialogPrimitive.Trigger data-slot=\"slideout-menu-trigger\" className={className} {...props} />\n );\n}\n\nfunction SlideoutMenuContent({\n side,\n background,\n className,\n children,\n ...props\n}: SlideoutMenuContentProps) {\n // Portal anchored to the provider root so theme/dark-mode inherit and the fixed panel escapes ancestor transforms.\n const ctx = useContext(DgaContext);\n const portalContainer = ctx?.portalEl ?? ctx?.rootEl ?? undefined;\n\n return (\n <DialogPrimitive.Portal container={portalContainer}>\n <DialogPrimitive.Overlay\n className=\"ddga-slideout-menu__overlay\"\n data-slot=\"slideout-menu-overlay\"\n />\n <DialogPrimitive.Content\n data-slot=\"slideout-menu-content\"\n className={cn(slideoutMenuContentVariants({ side, background }), className)}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n );\n}\n\nfunction SlideoutMenuHeader({\n icon,\n showCloseButton = true,\n closeLabel = 'Close',\n className,\n children,\n ...props\n}: SlideoutMenuHeaderProps) {\n return (\n <div\n data-slot=\"slideout-menu-header\"\n className={cn('ddga-slideout-menu__header', className)}\n {...props}\n >\n <div className=\"ddga-slideout-menu__header-content\">\n {icon ? (\n <span\n data-slot=\"slideout-menu-featured-icon\"\n className=\"ddga-slideout-menu__featured-icon\"\n aria-hidden=\"true\"\n >\n {icon}\n </span>\n ) : null}\n <div className=\"ddga-slideout-menu__header-text\">{children}</div>\n </div>\n {showCloseButton ? (\n <DialogPrimitive.Close\n className=\"ddga-slideout-menu__close\"\n aria-label={closeLabel}\n data-slot=\"slideout-menu-close-x\"\n >\n <Close aria-hidden=\"true\" />\n </DialogPrimitive.Close>\n ) : null}\n </div>\n );\n}\n\nfunction SlideoutMenuTitle({ asChild, className, ...props }: SlideoutMenuTitleProps) {\n return (\n <DialogPrimitive.Title\n asChild={asChild}\n data-slot=\"slideout-menu-title\"\n className={cn('ddga-slideout-menu__title', className)}\n {...props}\n />\n );\n}\n\nfunction SlideoutMenuDescription({ asChild, className, ...props }: SlideoutMenuDescriptionProps) {\n return (\n <DialogPrimitive.Description\n asChild={asChild}\n data-slot=\"slideout-menu-description\"\n className={cn('ddga-slideout-menu__description', className)}\n {...props}\n />\n );\n}\n\nfunction SlideoutMenuBody({ asChild, className, ...props }: SlideoutMenuSectionProps) {\n // asChild lets consumers make the scroll region a `<nav aria-label>` landmark.\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"slideout-menu-body\"\n className={cn('ddga-slideout-menu__body', className)}\n {...props}\n />\n );\n}\n\nfunction SlideoutMenuGroup({ label, className, children, ...props }: SlideoutMenuGroupProps) {\n const labelId = useId();\n return (\n <div\n data-slot=\"slideout-menu-group\"\n className={cn('ddga-slideout-menu__group', className)}\n {...props}\n >\n {label != null ? (\n <div id={labelId} className=\"ddga-slideout-menu__group-label\">\n {label}\n </div>\n ) : null}\n <ul\n className=\"ddga-slideout-menu__list\"\n {...(label != null ? { 'aria-labelledby': labelId } : {})}\n >\n {children}\n </ul>\n </div>\n );\n}\n\nfunction SlideoutMenuItem({\n asChild,\n icon,\n trailing,\n active,\n className,\n children,\n ...props\n}: SlideoutMenuItemProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n return (\n <li data-slot=\"slideout-menu-item-wrapper\" className=\"ddga-slideout-menu__item-wrapper\">\n <Comp\n data-slot=\"slideout-menu-item\"\n className={cn('ddga-slideout-menu__item', className)}\n data-active={active ? '' : undefined}\n aria-current={active ? 'page' : undefined}\n {...(asChild ? {} : { type: 'button' as const })}\n {...props}\n >\n {icon ? (\n <span className=\"ddga-slideout-menu__item-icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n {asChild ? (\n <SlotPrimitive.Slottable>{children}</SlotPrimitive.Slottable>\n ) : (\n <span className=\"ddga-slideout-menu__item-label\">{children}</span>\n )}\n {trailing ? <span className=\"ddga-slideout-menu__item-trailing\">{trailing}</span> : null}\n </Comp>\n </li>\n );\n}\n\nfunction SlideoutMenuSeparator({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"slideout-menu-separator\"\n role=\"separator\"\n className={cn('ddga-slideout-menu__separator', className)}\n {...props}\n />\n );\n}\n\nfunction SlideoutMenuFooter({ asChild, className, ...props }: SlideoutMenuSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"slideout-menu-footer\"\n className={cn('ddga-slideout-menu__footer', className)}\n {...props}\n />\n );\n}\n\nfunction SlideoutMenuClose({ className, ...props }: SlideoutMenuCloseProps) {\n return <DialogPrimitive.Close data-slot=\"slideout-menu-close\" className={className} {...props} />;\n}\n\nexport {\n SlideoutMenu,\n SlideoutMenuTrigger,\n SlideoutMenuContent,\n SlideoutMenuHeader,\n SlideoutMenuTitle,\n SlideoutMenuDescription,\n SlideoutMenuBody,\n SlideoutMenuGroup,\n SlideoutMenuItem,\n SlideoutMenuSeparator,\n SlideoutMenuFooter,\n SlideoutMenuClose,\n slideoutMenuContentVariants,\n};\nexport type {\n SlideoutMenuProps,\n SlideoutMenuTriggerProps,\n SlideoutMenuContentProps,\n SlideoutMenuHeaderProps,\n SlideoutMenuTitleProps,\n SlideoutMenuDescriptionProps,\n SlideoutMenuSectionProps,\n SlideoutMenuGroupProps,\n SlideoutMenuItemProps,\n SlideoutMenuCloseProps,\n};\n"],"mappings":"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","names":[]}
@@ -1,15 +1,15 @@
1
- import {
2
- Check,
3
- Close,
4
- Exclamation,
5
- Upload
6
- } from "./chunk-FFGALWM2.js";
7
1
  import {
8
2
  Button
9
3
  } from "./chunk-GQAX2CH6.js";
10
4
  import {
11
5
  Spinner
12
6
  } from "./chunk-FO7IICMM.js";
7
+ import {
8
+ Check,
9
+ Close,
10
+ Exclamation,
11
+ Upload
12
+ } from "./chunk-FFGALWM2.js";
13
13
  import {
14
14
  FieldMessage
15
15
  } from "./chunk-E5ZIKIGB.js";
@@ -269,4 +269,4 @@ function FileUpload({
269
269
  export {
270
270
  FileUpload
271
271
  };
272
- //# sourceMappingURL=chunk-WLJHHTE2.js.map
272
+ //# sourceMappingURL=chunk-EZRPCQSP.js.map
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
+ var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
3
4
 
4
- var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
5
5
 
6
6
 
7
- var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
7
+ var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
8
8
 
9
9
 
10
10
  var _chunkV6MXOJQ4cjs = require('./chunk-V6MXOJQ4.cjs');
@@ -261,4 +261,4 @@ function CardExpandableContent({ asChild, className, ...props }) {
261
261
 
262
262
 
263
263
  exports.cardVariants = cardVariants; exports.Card = Card; exports.CardImage = CardImage; exports.CardHeader = CardHeader; exports.CardIcon = CardIcon; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardExpandableContent = CardExpandableContent;
264
- //# sourceMappingURL=chunk-P7WYXL4A.cjs.map
264
+ //# sourceMappingURL=chunk-GXF5IZEX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-P7WYXL4A.cjs","../src/components/Card/Card.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-P7WYXL4A.cjs","sourcesContent":[null,"'use client';\n\nimport { useState, useId, useContext, createContext } from 'react';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronDown } from '../../internal/icons';\nimport { Button } from '../Button';\n\nconst cardVariants = cva('ddga-card', {\n variants: {\n variant: {\n default: 'ddga-card--default',\n outline: 'ddga-card--outline',\n elevated: 'ddga-card--elevated',\n plain: 'ddga-card--plain',\n filled: 'ddga-card--filled',\n gradient: 'ddga-card--gradient',\n ghost: 'ddga-card--ghost',\n },\n padding: {\n sm: 'ddga-card--padding-sm',\n md: 'ddga-card--padding-md',\n lg: 'ddga-card--padding-lg',\n },\n orientation: {\n vertical: 'ddga-card--vertical',\n horizontal: 'ddga-card--horizontal',\n },\n interactive: {\n true: 'ddga-card--interactive',\n },\n },\n defaultVariants: {\n variant: 'default',\n padding: 'md',\n orientation: 'vertical',\n },\n});\n\n// Shares expanded state + content id between the chevron toggle and CardExpandableContent.\nconst CardContext = createContext<{ expanded: boolean; contentId: string } | null>(null);\n\ninterface CardProps extends React.ComponentProps<'div'>, VariantProps<typeof cardVariants> {\n /** Render as the single child element instead of a `<div>` (see Button). */\n asChild?: boolean;\n /**\n * DGA Disabled state — mutes the surface (gray-200 bg / gray-400 text + icon)\n * and marks the card `aria-disabled`. Suppresses Selectable toggling.\n */\n disabled?: boolean;\n /**\n * DGA Type=Selectable — the whole card becomes a checkbox (`role=\"checkbox\"`,\n * Space toggles) with a checkbox indicator at the top inline-end. Controlled\n * via `selected` or uncontrolled via `defaultSelected`. Ignores `asChild`.\n */\n selectable?: boolean;\n /** Controlled selected state (Selectable). */\n selected?: boolean;\n /** Uncontrolled initial selected state (Selectable). */\n defaultSelected?: boolean;\n /** Fires with the next selected value when the user toggles a Selectable card. */\n onSelectedChange?: (selected: boolean) => void;\n /**\n * DGA Type=Expandable — renders a chevron toggle (icon-only Subtle button) at\n * the bottom inline-end that shows/hides a `<CardExpandableContent>` region.\n * Controlled via `expanded` or uncontrolled via `defaultExpanded`.\n */\n expandable?: boolean;\n /** Controlled expanded state (Expandable). */\n expanded?: boolean;\n /** Uncontrolled initial expanded state (Expandable). */\n defaultExpanded?: boolean;\n /** Fires with the next expanded value when the user toggles an Expandable card. */\n onExpandedChange?: (expanded: boolean) => void;\n /** Accessible label for the expand/collapse toggle. Default `'Toggle details'`. */\n expandLabel?: string;\n}\n\ntype CardSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\ntype CardIconProps = CardSectionProps & {\n /**\n * Render the DGA Platforms Code \"Featured Icon\" treatment — a 48px brand-light\n * circle around the glyph (vs the bare inline icon). Pair with the SDGA Card\n * pattern (featured icon → title → content → footer).\n */\n featured?: boolean;\n};\n\ninterface CardTitleProps extends React.ComponentProps<'h3'> {\n /** Override the heading element (e.g. render an `<h2>` or `<a>`). */\n asChild?: boolean;\n}\n\ntype CardDescriptionProps = React.ComponentProps<'p'> & { asChild?: boolean };\n\ninterface CardImageProps extends React.ComponentProps<'img'> {\n /**\n * Aspect ratio of the image in vertical orientation (e.g. `'16/9'`, `'4/3'`,\n * `'1/1'`). Default `'16/9'`. Ignored in horizontal orientation — the image\n * fills the card's full height there.\n */\n aspectRatio?: string;\n}\n\nfunction Card({\n variant,\n padding,\n orientation,\n interactive,\n asChild,\n disabled,\n selectable,\n selected,\n defaultSelected,\n onSelectedChange,\n expandable,\n expanded,\n defaultExpanded,\n onExpandedChange,\n expandLabel = 'Toggle details',\n className,\n children,\n onClick,\n onKeyDown,\n ...props\n}: CardProps) {\n // Dev-only: a selectable card is a `role=\"checkbox\"`, which takes its name\n // from aria-label/aria-labelledby (not its text content).\n if (process.env.NODE_ENV === 'development' && selectable) {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] A selectable Card renders as a checkbox and needs an ' +\n 'aria-label or aria-labelledby for screen-reader users.',\n );\n }\n }\n\n const [internalSelected, setInternalSelected] = useState(defaultSelected ?? false);\n const isSelected = selected ?? internalSelected;\n const toggleSelected = () => {\n if (disabled) return;\n const next = !isSelected;\n if (selected === undefined) setInternalSelected(next);\n onSelectedChange?.(next);\n };\n\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded ?? false);\n const isExpanded = expanded ?? internalExpanded;\n const contentId = useId();\n const toggleExpanded = () => {\n if (disabled) return;\n const next = !isExpanded;\n if (expanded === undefined) setInternalExpanded(next);\n onExpandedChange?.(next);\n };\n\n // Selectable/Expandable add sibling elements, so the card can't be a Slot\n // (Slot needs exactly one child). They are mutually exclusive DGA Types.\n const hasExtras = selectable || expandable;\n const Comp = asChild && !hasExtras ? SlotPrimitive.Slot : 'div';\n\n const selectableProps = selectable\n ? {\n role: 'checkbox' as const,\n 'aria-checked': isSelected,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n 'data-state': isSelected ? ('checked' as const) : ('unchecked' as const),\n onClick: (e: React.MouseEvent<HTMLDivElement>) => {\n toggleSelected();\n onClick?.(e);\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === ' ') {\n e.preventDefault();\n toggleSelected();\n }\n onKeyDown?.(e);\n },\n }\n : // A bare `interactive` card (no asChild wrapper) is a whole-card click target →\n // make it keyboard-operable and announced as a button, else it's mouse-only.\n interactive && !expandable && !asChild\n ? {\n role: 'button' as const,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n onClick,\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.currentTarget.click();\n }\n onKeyDown?.(e);\n },\n }\n : { onClick, onKeyDown };\n\n const card = (\n <Comp\n data-slot=\"card\"\n data-orientation={orientation ?? 'vertical'}\n data-disabled={disabled || undefined}\n data-expanded={expandable ? isExpanded : undefined}\n aria-disabled={disabled && !selectable ? true : undefined}\n className={cn(\n cardVariants({ variant, padding, orientation, interactive }),\n disabled && 'ddga-card--disabled',\n selectable && 'ddga-card--selectable',\n expandable && 'ddga-card--expandable',\n className,\n )}\n {...selectableProps}\n {...props}\n >\n {hasExtras ? (\n <>\n {selectable && (\n <span className=\"ddga-card__select-indicator\" aria-hidden>\n <span\n className=\"ddga-card__checkbox\"\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {isSelected && <Check className=\"ddga-card__checkbox-check\" />}\n </span>\n </span>\n )}\n {children}\n {expandable && (\n <div className=\"ddga-card__expand-row\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={expandLabel}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n disabled={disabled}\n onClick={toggleExpanded}\n >\n <ChevronDown\n className={cn('ddga-card__chevron', isExpanded && 'ddga-card__chevron--up')}\n />\n </Button>\n </div>\n )}\n </>\n ) : (\n // Plain card: pass children straight through so `asChild` (Slot) still\n // receives a single element.\n children\n )}\n </Comp>\n );\n\n return expandable ? (\n <CardContext.Provider value={{ expanded: isExpanded, contentId }}>{card}</CardContext.Provider>\n ) : (\n card\n );\n}\n\nfunction CardImage({ aspectRatio = '16/9', className, style, ...props }: CardImageProps) {\n return (\n <img\n data-slot=\"card-image\"\n className={cn('ddga-card__image', className)}\n style={\n {\n '--ddga-card-image-aspect': aspectRatio,\n ...style,\n } as React.CSSProperties\n }\n {...props}\n />\n );\n}\n\nfunction CardHeader({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-header\" className={cn('ddga-card__header', className)} {...props} />;\n}\n\n// Decorative (`aria-hidden`) by default; pass `aria-hidden={false}` when the icon is the sole label.\nfunction CardIcon({ asChild, featured, className, ...props }: CardIconProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-icon\"\n aria-hidden\n className={cn('ddga-card__icon', featured && 'ddga-card__icon--featured', className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ asChild, className, ...props }: CardTitleProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'h3';\n return <Comp data-slot=\"card-title\" className={cn('ddga-card__title', className)} {...props} />;\n}\n\nfunction CardDescription({ asChild, className, ...props }: CardDescriptionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'p';\n return (\n <Comp\n data-slot=\"card-description\"\n className={cn('ddga-card__description', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"card-content\" className={cn('ddga-card__content', className)} {...props} />\n );\n}\n\nfunction CardFooter({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-footer\" className={cn('ddga-card__footer', className)} {...props} />;\n}\n\n// The collapsible region of an Expandable card — reads the Card's expanded state\n// via context; `hidden` removes it from layout + a11y tree when collapsed.\nfunction CardExpandableContent({ asChild, className, ...props }: CardSectionProps) {\n const ctx = useContext(CardContext);\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-expandable-content\"\n id={ctx?.contentId}\n hidden={ctx ? !ctx.expanded : undefined}\n className={cn('ddga-card__expandable-content', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardImage,\n CardIcon,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardExpandableContent,\n cardVariants,\n};\nexport type {\n CardProps,\n CardImageProps,\n CardSectionProps,\n CardIconProps,\n CardTitleProps,\n CardDescriptionProps,\n};\n"]}
1
+ {"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-GXF5IZEX.cjs","../src/components/Card/Card.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-GXF5IZEX.cjs","sourcesContent":[null,"'use client';\n\nimport { useState, useId, useContext, createContext } from 'react';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, ChevronDown } from '../../internal/icons';\nimport { Button } from '../Button';\n\nconst cardVariants = cva('ddga-card', {\n variants: {\n variant: {\n default: 'ddga-card--default',\n outline: 'ddga-card--outline',\n elevated: 'ddga-card--elevated',\n plain: 'ddga-card--plain',\n filled: 'ddga-card--filled',\n gradient: 'ddga-card--gradient',\n ghost: 'ddga-card--ghost',\n },\n padding: {\n sm: 'ddga-card--padding-sm',\n md: 'ddga-card--padding-md',\n lg: 'ddga-card--padding-lg',\n },\n orientation: {\n vertical: 'ddga-card--vertical',\n horizontal: 'ddga-card--horizontal',\n },\n interactive: {\n true: 'ddga-card--interactive',\n },\n },\n defaultVariants: {\n variant: 'default',\n padding: 'md',\n orientation: 'vertical',\n },\n});\n\n// Shares expanded state + content id between the chevron toggle and CardExpandableContent.\nconst CardContext = createContext<{ expanded: boolean; contentId: string } | null>(null);\n\ninterface CardProps extends React.ComponentProps<'div'>, VariantProps<typeof cardVariants> {\n /** Render as the single child element instead of a `<div>` (see Button). */\n asChild?: boolean;\n /**\n * DGA Disabled state — mutes the surface (gray-200 bg / gray-400 text + icon)\n * and marks the card `aria-disabled`. Suppresses Selectable toggling.\n */\n disabled?: boolean;\n /**\n * DGA Type=Selectable — the whole card becomes a checkbox (`role=\"checkbox\"`,\n * Space toggles) with a checkbox indicator at the top inline-end. Controlled\n * via `selected` or uncontrolled via `defaultSelected`. Ignores `asChild`.\n */\n selectable?: boolean;\n /** Controlled selected state (Selectable). */\n selected?: boolean;\n /** Uncontrolled initial selected state (Selectable). */\n defaultSelected?: boolean;\n /** Fires with the next selected value when the user toggles a Selectable card. */\n onSelectedChange?: (selected: boolean) => void;\n /**\n * DGA Type=Expandable — renders a chevron toggle (icon-only Subtle button) at\n * the bottom inline-end that shows/hides a `<CardExpandableContent>` region.\n * Controlled via `expanded` or uncontrolled via `defaultExpanded`.\n */\n expandable?: boolean;\n /** Controlled expanded state (Expandable). */\n expanded?: boolean;\n /** Uncontrolled initial expanded state (Expandable). */\n defaultExpanded?: boolean;\n /** Fires with the next expanded value when the user toggles an Expandable card. */\n onExpandedChange?: (expanded: boolean) => void;\n /** Accessible label for the expand/collapse toggle. Default `'Toggle details'`. */\n expandLabel?: string;\n}\n\ntype CardSectionProps = React.ComponentProps<'div'> & { asChild?: boolean };\n\ntype CardIconProps = CardSectionProps & {\n /**\n * Render the DGA Platforms Code \"Featured Icon\" treatment — a 48px brand-light\n * circle around the glyph (vs the bare inline icon). Pair with the SDGA Card\n * pattern (featured icon → title → content → footer).\n */\n featured?: boolean;\n};\n\ninterface CardTitleProps extends React.ComponentProps<'h3'> {\n /** Override the heading element (e.g. render an `<h2>` or `<a>`). */\n asChild?: boolean;\n}\n\ntype CardDescriptionProps = React.ComponentProps<'p'> & { asChild?: boolean };\n\ninterface CardImageProps extends React.ComponentProps<'img'> {\n /**\n * Aspect ratio of the image in vertical orientation (e.g. `'16/9'`, `'4/3'`,\n * `'1/1'`). Default `'16/9'`. Ignored in horizontal orientation — the image\n * fills the card's full height there.\n */\n aspectRatio?: string;\n}\n\nfunction Card({\n variant,\n padding,\n orientation,\n interactive,\n asChild,\n disabled,\n selectable,\n selected,\n defaultSelected,\n onSelectedChange,\n expandable,\n expanded,\n defaultExpanded,\n onExpandedChange,\n expandLabel = 'Toggle details',\n className,\n children,\n onClick,\n onKeyDown,\n ...props\n}: CardProps) {\n // Dev-only: a selectable card is a `role=\"checkbox\"`, which takes its name\n // from aria-label/aria-labelledby (not its text content).\n if (process.env.NODE_ENV === 'development' && selectable) {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[@dev-dga/react] A selectable Card renders as a checkbox and needs an ' +\n 'aria-label or aria-labelledby for screen-reader users.',\n );\n }\n }\n\n const [internalSelected, setInternalSelected] = useState(defaultSelected ?? false);\n const isSelected = selected ?? internalSelected;\n const toggleSelected = () => {\n if (disabled) return;\n const next = !isSelected;\n if (selected === undefined) setInternalSelected(next);\n onSelectedChange?.(next);\n };\n\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded ?? false);\n const isExpanded = expanded ?? internalExpanded;\n const contentId = useId();\n const toggleExpanded = () => {\n if (disabled) return;\n const next = !isExpanded;\n if (expanded === undefined) setInternalExpanded(next);\n onExpandedChange?.(next);\n };\n\n // Selectable/Expandable add sibling elements, so the card can't be a Slot\n // (Slot needs exactly one child). They are mutually exclusive DGA Types.\n const hasExtras = selectable || expandable;\n const Comp = asChild && !hasExtras ? SlotPrimitive.Slot : 'div';\n\n const selectableProps = selectable\n ? {\n role: 'checkbox' as const,\n 'aria-checked': isSelected,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n 'data-state': isSelected ? ('checked' as const) : ('unchecked' as const),\n onClick: (e: React.MouseEvent<HTMLDivElement>) => {\n toggleSelected();\n onClick?.(e);\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === ' ') {\n e.preventDefault();\n toggleSelected();\n }\n onKeyDown?.(e);\n },\n }\n : // A bare `interactive` card (no asChild wrapper) is a whole-card click target →\n // make it keyboard-operable and announced as a button, else it's mouse-only.\n interactive && !expandable && !asChild\n ? {\n role: 'button' as const,\n 'aria-disabled': disabled || undefined,\n tabIndex: disabled ? -1 : 0,\n onClick,\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.currentTarget.click();\n }\n onKeyDown?.(e);\n },\n }\n : { onClick, onKeyDown };\n\n const card = (\n <Comp\n data-slot=\"card\"\n data-orientation={orientation ?? 'vertical'}\n data-disabled={disabled || undefined}\n data-expanded={expandable ? isExpanded : undefined}\n aria-disabled={disabled && !selectable ? true : undefined}\n className={cn(\n cardVariants({ variant, padding, orientation, interactive }),\n disabled && 'ddga-card--disabled',\n selectable && 'ddga-card--selectable',\n expandable && 'ddga-card--expandable',\n className,\n )}\n {...selectableProps}\n {...props}\n >\n {hasExtras ? (\n <>\n {selectable && (\n <span className=\"ddga-card__select-indicator\" aria-hidden>\n <span\n className=\"ddga-card__checkbox\"\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {isSelected && <Check className=\"ddga-card__checkbox-check\" />}\n </span>\n </span>\n )}\n {children}\n {expandable && (\n <div className=\"ddga-card__expand-row\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={expandLabel}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n disabled={disabled}\n onClick={toggleExpanded}\n >\n <ChevronDown\n className={cn('ddga-card__chevron', isExpanded && 'ddga-card__chevron--up')}\n />\n </Button>\n </div>\n )}\n </>\n ) : (\n // Plain card: pass children straight through so `asChild` (Slot) still\n // receives a single element.\n children\n )}\n </Comp>\n );\n\n return expandable ? (\n <CardContext.Provider value={{ expanded: isExpanded, contentId }}>{card}</CardContext.Provider>\n ) : (\n card\n );\n}\n\nfunction CardImage({ aspectRatio = '16/9', className, style, ...props }: CardImageProps) {\n return (\n <img\n data-slot=\"card-image\"\n className={cn('ddga-card__image', className)}\n style={\n {\n '--ddga-card-image-aspect': aspectRatio,\n ...style,\n } as React.CSSProperties\n }\n {...props}\n />\n );\n}\n\nfunction CardHeader({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-header\" className={cn('ddga-card__header', className)} {...props} />;\n}\n\n// Decorative (`aria-hidden`) by default; pass `aria-hidden={false}` when the icon is the sole label.\nfunction CardIcon({ asChild, featured, className, ...props }: CardIconProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-icon\"\n aria-hidden\n className={cn('ddga-card__icon', featured && 'ddga-card__icon--featured', className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ asChild, className, ...props }: CardTitleProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'h3';\n return <Comp data-slot=\"card-title\" className={cn('ddga-card__title', className)} {...props} />;\n}\n\nfunction CardDescription({ asChild, className, ...props }: CardDescriptionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'p';\n return (\n <Comp\n data-slot=\"card-description\"\n className={cn('ddga-card__description', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp data-slot=\"card-content\" className={cn('ddga-card__content', className)} {...props} />\n );\n}\n\nfunction CardFooter({ asChild, className, ...props }: CardSectionProps) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return <Comp data-slot=\"card-footer\" className={cn('ddga-card__footer', className)} {...props} />;\n}\n\n// The collapsible region of an Expandable card — reads the Card's expanded state\n// via context; `hidden` removes it from layout + a11y tree when collapsed.\nfunction CardExpandableContent({ asChild, className, ...props }: CardSectionProps) {\n const ctx = useContext(CardContext);\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n return (\n <Comp\n data-slot=\"card-expandable-content\"\n id={ctx?.contentId}\n hidden={ctx ? !ctx.expanded : undefined}\n className={cn('ddga-card__expandable-content', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardImage,\n CardIcon,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardExpandableContent,\n cardVariants,\n};\nexport type {\n CardProps,\n CardImageProps,\n CardSectionProps,\n CardIconProps,\n CardTitleProps,\n CardDescriptionProps,\n};\n"]}
@@ -129,7 +129,7 @@ function CircularProgress({
129
129
  state = "normal",
130
130
  thickness,
131
131
  segments,
132
- showLabel = true,
132
+ showValue = true,
133
133
  description,
134
134
  className,
135
135
  ...props
@@ -176,7 +176,7 @@ function CircularProgress({
176
176
  i
177
177
  );
178
178
  }) : null;
179
- const showValueLabel = !isIndeterminate && showLabel && !isStatus;
179
+ const showValueLabel = !isIndeterminate && showValue && !isStatus;
180
180
  const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;
181
181
  const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);
182
182
  return /* @__PURE__ */ jsxs(
@@ -253,4 +253,4 @@ export {
253
253
  Progress,
254
254
  CircularProgress
255
255
  };
256
- //# sourceMappingURL=chunk-ANHZT2X2.js.map
256
+ //# sourceMappingURL=chunk-JADNUODB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, Close, HelpCircle } from '../../internal/icons';\n\nconst progressVariants = cva('ddga-progress', {\n variants: {\n size: {\n sm: 'ddga-progress--sm',\n md: 'ddga-progress--md',\n lg: 'ddga-progress--lg',\n },\n variant: {\n primary: 'ddga-progress--primary',\n neutral: 'ddga-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-progress--success',\n error: 'ddga-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\nconst circularProgressVariants = cva('ddga-circular-progress', {\n variants: {\n size: {\n sm: 'ddga-circular-progress--sm',\n md: 'ddga-circular-progress--md',\n lg: 'ddga-circular-progress--lg',\n xl: 'ddga-circular-progress--xl',\n '2xl': 'ddga-circular-progress--2xl',\n },\n variant: {\n primary: 'ddga-circular-progress--primary',\n neutral: 'ddga-circular-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-circular-progress--success',\n error: 'ddga-circular-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\ntype ProgressState = 'normal' | 'success' | 'error';\n\nfunction StatusBadge({ className, state }: { className: string; state: 'success' | 'error' }) {\n return (\n <span className={cn(className, `${className}--${state}`)} aria-hidden=\"true\">\n {state === 'success' ? <Check /> : <Close />}\n </span>\n );\n}\n\ntype ProgressOwnProps = VariantProps<typeof progressVariants> & {\n /** Current progress. `null`/omitted renders the indeterminate slide. Clamp to `[0, max]` yourself. */\n value?: number | null;\n /** Maximum value. Defaults to 100. */\n max?: number;\n\n state?: ProgressState;\n label?: React.ReactNode;\n required?: boolean;\n helperText?: React.ReactNode;\n showValue?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype ProgressProps = ProgressOwnProps &\n Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, keyof ProgressOwnProps | 'asChild'>;\n\nfunction Progress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n label,\n required = false,\n helperText,\n showValue,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ProgressProps) {\n const labelId = useId();\n const isIndeterminate = value === null;\n const isStatus = state === 'success' || state === 'error';\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const showInBar = size === 'lg' && !isIndeterminate && showValue !== false;\n\n return (\n <div\n data-slot=\"progress-root\"\n className={cn(progressVariants({ size, variant, state }), className)}\n >\n {label != null && (\n <span id={labelId} data-slot=\"progress-label\" className=\"ddga-progress__label\">\n {required && (\n <span className=\"ddga-progress__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n {label}\n </span>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={isIndeterminate ? null : value}\n max={max}\n aria-label={label == null ? ariaLabel : undefined}\n aria-labelledby={label != null ? labelId : ariaLabelledby}\n className=\"ddga-progress__track\"\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"ddga-progress__indicator\"\n style={isIndeterminate ? undefined : { inlineSize: `${fillPct}%` }}\n >\n {showInBar && (\n <span className=\"ddga-progress__value\" data-slot=\"progress-value\" dir=\"auto\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Indicator>\n </ProgressPrimitive.Root>\n {helperText != null && (\n <span data-slot=\"progress-helper\" className=\"ddga-progress__helper\">\n {isStatus ? (\n <StatusBadge className=\"ddga-progress__badge\" state={state as 'success' | 'error'} />\n ) : (\n <span className=\"ddga-progress__helper-icon\" aria-hidden=\"true\">\n <HelpCircle />\n </span>\n )}\n <span className=\"ddga-progress__helper-text\">{helperText}</span>\n </span>\n )}\n </div>\n );\n}\n\ntype CircularProgressOwnProps = VariantProps<typeof circularProgressVariants> & {\n value?: number | null;\n max?: number;\n state?: ProgressState;\n thickness?: number;\n segments?: number;\n showLabel?: boolean;\n description?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype CircularProgressProps = CircularProgressOwnProps &\n Omit<React.ComponentProps<'div'>, keyof CircularProgressOwnProps>;\n\nconst CIRCULAR_SIZES = { sm: 64, md: 80, lg: 120, xl: 160, '2xl': 200 } as const;\nconst CIRCULAR_STROKE = { sm: 4, md: 8, lg: 10, xl: 14, '2xl': 20 } as const;\nconst SEGMENT_GAP_FRACTION = 0.16;\n\nfunction CircularProgress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n thickness,\n segments,\n showLabel = true,\n description,\n className,\n ...props\n}: CircularProgressProps) {\n if (process.env.NODE_ENV === 'development' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[dga/Progress] <CircularProgress> has no accessible name. Pass `aria-label` or ' +\n '`aria-labelledby` so screen-reader users know what the progress represents.',\n );\n }\n\n const isIndeterminate = value === null;\n const isSegmented = typeof segments === 'number' && segments >= 2;\n const isStatus = state === 'success' || state === 'error';\n const sizeKey = size ?? 'md';\n const diameter = CIRCULAR_SIZES[sizeKey];\n const strokeWidth = thickness ?? CIRCULAR_STROKE[sizeKey];\n const radius = (diameter - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = diameter / 2;\n\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const dashOffset = isIndeterminate ? circumference * 0.75 : circumference * (1 - fillPct / 100);\n\n const dataState = isIndeterminate ? 'indeterminate' : value >= max ? 'complete' : 'loading';\n\n const filledSegments =\n isSegmented && segments ? (isIndeterminate ? 0 : Math.round((pct / 100) * segments)) : 0;\n const segmentEls =\n isSegmented && segments\n ? Array.from({ length: segments }, (_, i) => {\n const segAngle = 360 / segments;\n const gapAngle = segAngle * SEGMENT_GAP_FRACTION;\n const segLen = circumference * ((1 - SEGMENT_GAP_FRACTION) / segments);\n return (\n <circle\n key={i}\n className={cn(\n 'ddga-circular-progress__segment',\n i < filledSegments && 'ddga-circular-progress__segment--filled',\n )}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n // Butt caps: round caps overrun the gap at small sizes.\n strokeLinecap=\"butt\"\n strokeDasharray={`${segLen} ${circumference}`}\n transform={`rotate(${-90 + i * segAngle + gapAngle / 2} ${center} ${center})`}\n />\n );\n })\n : null;\n\n const showValueLabel = !isIndeterminate && showLabel && !isStatus;\n const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;\n const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);\n\n return (\n <div\n data-slot=\"circular-progress\"\n data-state={dataState}\n data-segmented={isSegmented ? '' : undefined}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(circularProgressVariants({ size, variant, state }), className)}\n style={{ inlineSize: diameter, blockSize: diameter }}\n {...props}\n >\n <svg\n className=\"ddga-circular-progress__svg\"\n viewBox={`0 0 ${diameter} ${diameter}`}\n width={diameter}\n height={diameter}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {isSegmented ? (\n segmentEls\n ) : (\n <>\n <circle\n className=\"ddga-circular-progress__track\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n />\n <circle\n className=\"ddga-circular-progress__indicator\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n transform={`rotate(-90 ${center} ${center})`}\n />\n </>\n )}\n </svg>\n {showCentre && (\n <span className=\"ddga-circular-progress__label\" aria-hidden=\"true\">\n {isStatus ? (\n <StatusBadge\n className=\"ddga-circular-progress__badge\"\n state={state as 'success' | 'error'}\n />\n ) : (\n <span className=\"ddga-circular-progress__value\">{valueText}</span>\n )}\n {description != null && (\n <span className=\"ddga-circular-progress__text\">{description}</span>\n )}\n </span>\n )}\n </div>\n );\n}\n\nexport { Progress, CircularProgress, progressVariants, circularProgressVariants };\nexport type { ProgressProps, CircularProgressProps };\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/components/Progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Check, Close, HelpCircle } from '../../internal/icons';\n\nconst progressVariants = cva('ddga-progress', {\n variants: {\n size: {\n sm: 'ddga-progress--sm',\n md: 'ddga-progress--md',\n lg: 'ddga-progress--lg',\n },\n variant: {\n primary: 'ddga-progress--primary',\n neutral: 'ddga-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-progress--success',\n error: 'ddga-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\nconst circularProgressVariants = cva('ddga-circular-progress', {\n variants: {\n size: {\n sm: 'ddga-circular-progress--sm',\n md: 'ddga-circular-progress--md',\n lg: 'ddga-circular-progress--lg',\n xl: 'ddga-circular-progress--xl',\n '2xl': 'ddga-circular-progress--2xl',\n },\n variant: {\n primary: 'ddga-circular-progress--primary',\n neutral: 'ddga-circular-progress--neutral',\n },\n state: {\n normal: '',\n success: 'ddga-circular-progress--success',\n error: 'ddga-circular-progress--error',\n },\n },\n defaultVariants: { size: 'md', variant: 'primary', state: 'normal' },\n});\n\ntype ProgressState = 'normal' | 'success' | 'error';\n\nfunction StatusBadge({ className, state }: { className: string; state: 'success' | 'error' }) {\n return (\n <span className={cn(className, `${className}--${state}`)} aria-hidden=\"true\">\n {state === 'success' ? <Check /> : <Close />}\n </span>\n );\n}\n\ntype ProgressOwnProps = VariantProps<typeof progressVariants> & {\n /** Current progress. `null`/omitted renders the indeterminate slide. Clamp to `[0, max]` yourself. */\n value?: number | null;\n /** Maximum value. Defaults to 100. */\n max?: number;\n\n state?: ProgressState;\n label?: React.ReactNode;\n required?: boolean;\n helperText?: React.ReactNode;\n showValue?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype ProgressProps = ProgressOwnProps &\n Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, keyof ProgressOwnProps | 'asChild'>;\n\nfunction Progress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n label,\n required = false,\n helperText,\n showValue,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ProgressProps) {\n const labelId = useId();\n const isIndeterminate = value === null;\n const isStatus = state === 'success' || state === 'error';\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const showInBar = size === 'lg' && !isIndeterminate && showValue !== false;\n\n return (\n <div\n data-slot=\"progress-root\"\n className={cn(progressVariants({ size, variant, state }), className)}\n >\n {label != null && (\n <span id={labelId} data-slot=\"progress-label\" className=\"ddga-progress__label\">\n {required && (\n <span className=\"ddga-progress__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n {label}\n </span>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={isIndeterminate ? null : value}\n max={max}\n aria-label={label == null ? ariaLabel : undefined}\n aria-labelledby={label != null ? labelId : ariaLabelledby}\n className=\"ddga-progress__track\"\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"ddga-progress__indicator\"\n style={isIndeterminate ? undefined : { inlineSize: `${fillPct}%` }}\n >\n {showInBar && (\n <span className=\"ddga-progress__value\" data-slot=\"progress-value\" dir=\"auto\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Indicator>\n </ProgressPrimitive.Root>\n {helperText != null && (\n <span data-slot=\"progress-helper\" className=\"ddga-progress__helper\">\n {isStatus ? (\n <StatusBadge className=\"ddga-progress__badge\" state={state as 'success' | 'error'} />\n ) : (\n <span className=\"ddga-progress__helper-icon\" aria-hidden=\"true\">\n <HelpCircle />\n </span>\n )}\n <span className=\"ddga-progress__helper-text\">{helperText}</span>\n </span>\n )}\n </div>\n );\n}\n\ntype CircularProgressOwnProps = VariantProps<typeof circularProgressVariants> & {\n value?: number | null;\n max?: number;\n state?: ProgressState;\n thickness?: number;\n segments?: number;\n showValue?: boolean;\n description?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n};\n\ntype CircularProgressProps = CircularProgressOwnProps &\n Omit<React.ComponentProps<'div'>, keyof CircularProgressOwnProps>;\n\nconst CIRCULAR_SIZES = { sm: 64, md: 80, lg: 120, xl: 160, '2xl': 200 } as const;\nconst CIRCULAR_STROKE = { sm: 4, md: 8, lg: 10, xl: 14, '2xl': 20 } as const;\nconst SEGMENT_GAP_FRACTION = 0.16;\n\nfunction CircularProgress({\n value = null,\n max = 100,\n size = 'md',\n variant = 'primary',\n state = 'normal',\n thickness,\n segments,\n showValue = true,\n description,\n className,\n ...props\n}: CircularProgressProps) {\n if (process.env.NODE_ENV === 'development' && !props['aria-label'] && !props['aria-labelledby']) {\n console.warn(\n '[dga/Progress] <CircularProgress> has no accessible name. Pass `aria-label` or ' +\n '`aria-labelledby` so screen-reader users know what the progress represents.',\n );\n }\n\n const isIndeterminate = value === null;\n const isSegmented = typeof segments === 'number' && segments >= 2;\n const isStatus = state === 'success' || state === 'error';\n const sizeKey = size ?? 'md';\n const diameter = CIRCULAR_SIZES[sizeKey];\n const strokeWidth = thickness ?? CIRCULAR_STROKE[sizeKey];\n const radius = (diameter - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = diameter / 2;\n\n const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100));\n const fillPct = isStatus ? 100 : pct;\n const dashOffset = isIndeterminate ? circumference * 0.75 : circumference * (1 - fillPct / 100);\n\n const dataState = isIndeterminate ? 'indeterminate' : value >= max ? 'complete' : 'loading';\n\n const filledSegments =\n isSegmented && segments ? (isIndeterminate ? 0 : Math.round((pct / 100) * segments)) : 0;\n const segmentEls =\n isSegmented && segments\n ? Array.from({ length: segments }, (_, i) => {\n const segAngle = 360 / segments;\n const gapAngle = segAngle * SEGMENT_GAP_FRACTION;\n const segLen = circumference * ((1 - SEGMENT_GAP_FRACTION) / segments);\n return (\n <circle\n key={i}\n className={cn(\n 'ddga-circular-progress__segment',\n i < filledSegments && 'ddga-circular-progress__segment--filled',\n )}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n // Butt caps: round caps overrun the gap at small sizes.\n strokeLinecap=\"butt\"\n strokeDasharray={`${segLen} ${circumference}`}\n transform={`rotate(${-90 + i * segAngle + gapAngle / 2} ${center} ${center})`}\n />\n );\n })\n : null;\n\n const showValueLabel = !isIndeterminate && showValue && !isStatus;\n const valueText = isSegmented ? `${filledSegments}/${segments}` : `${Math.round(pct)}%`;\n const showCentre = !isIndeterminate && (isStatus || showValueLabel || description != null);\n\n return (\n <div\n data-slot=\"circular-progress\"\n data-state={dataState}\n data-segmented={isSegmented ? '' : undefined}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(circularProgressVariants({ size, variant, state }), className)}\n style={{ inlineSize: diameter, blockSize: diameter }}\n {...props}\n >\n <svg\n className=\"ddga-circular-progress__svg\"\n viewBox={`0 0 ${diameter} ${diameter}`}\n width={diameter}\n height={diameter}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {isSegmented ? (\n segmentEls\n ) : (\n <>\n <circle\n className=\"ddga-circular-progress__track\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n />\n <circle\n className=\"ddga-circular-progress__indicator\"\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n transform={`rotate(-90 ${center} ${center})`}\n />\n </>\n )}\n </svg>\n {showCentre && (\n <span className=\"ddga-circular-progress__label\" aria-hidden=\"true\">\n {isStatus ? (\n <StatusBadge\n className=\"ddga-circular-progress__badge\"\n state={state as 'success' | 'error'}\n />\n ) : (\n <span className=\"ddga-circular-progress__value\">{valueText}</span>\n )}\n {description != null && (\n <span className=\"ddga-circular-progress__text\">{description}</span>\n )}\n </span>\n )}\n </div>\n );\n}\n\nexport { Progress, CircularProgress, progressVariants, circularProgressVariants };\nexport type { ProgressProps, CircularProgressProps };\n"],"mappings":"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","names":[]}
@@ -1,15 +1,15 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
+ var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
3
4
 
4
5
 
6
+ var _chunkJCOUZVG3cjs = require('./chunk-JCOUZVG3.cjs');
5
7
 
6
- var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
7
8
 
8
9
 
9
- var _chunk5NENDJOMcjs = require('./chunk-5NENDJOM.cjs');
10
10
 
11
11
 
12
- var _chunkJCOUZVG3cjs = require('./chunk-JCOUZVG3.cjs');
12
+ var _chunkYS2JJ73Mcjs = require('./chunk-YS2JJ73M.cjs');
13
13
 
14
14
 
15
15
  var _chunk3UT22WQMcjs = require('./chunk-3UT22WQM.cjs');
@@ -269,4 +269,4 @@ function FileUpload({
269
269
 
270
270
 
271
271
  exports.FileUpload = FileUpload;
272
- //# sourceMappingURL=chunk-NGDKAG2O.cjs.map
272
+ //# sourceMappingURL=chunk-K27GNXBF.cjs.map