@xui/spinner 2.0.0-alpha.20 → 2.0.0-alpha.21

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.
@@ -60,8 +60,10 @@ class XuiSpinner {
60
60
  /** The user-defined classes. Merged last so they win over the variant classes. */
61
61
  class = input('', /* @ts-ignore */
62
62
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
63
+ /** Intent colour of the arc. */
63
64
  color = input(this.config.color, /* @ts-ignore */
64
65
  ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
66
+ /** Diameter, from the shared control scale, so a spinner matches the control it replaces. */
65
67
  size = input(this.config.size, /* @ts-ignore */
66
68
  ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
67
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"xui-spinner.mjs","sources":["../../../../../../libs/ui/spinner/xui/src/lib/spinner.token.ts","../../../../../../libs/ui/spinner/xui/src/lib/spinner.ts","../../../../../../libs/ui/spinner/xui/src/index.ts","../../../../../../libs/ui/spinner/xui/src/xui-spinner.ts"],"sourcesContent":["import { createXConfigToken } from '@xui/core';\nimport type { XuiSpinnerVariants } from './spinner';\n\n/**\n * Application-wide defaults for XuiSpinner.\n *\n * Provide it once at the app root to re-skin every spinner without touching\n * call sites; individual inputs still override the configured value.\n */\nexport interface XuiSpinnerConfig {\n color: XuiSpinnerVariants['color'];\n size: XuiSpinnerVariants['size'];\n}\n\nexport const [injectXuiSpinnerConfig, provideXuiSpinnerConfig] = createXConfigToken<XuiSpinnerConfig>(\n 'XuiSpinnerConfig',\n {\n color: 'primary',\n size: 'md'\n }\n);\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { xui } from '@xui/core';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\nimport { injectXuiSpinnerConfig } from './spinner.token';\n\nexport const spinnerVariants = cva('inline-block shrink-0', {\n variants: {\n size: {\n xs: 'h-4 w-4',\n sm: 'h-6 w-6',\n md: 'h-8 w-8',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16'\n },\n color: {\n primary: 'text-primary',\n secondary: 'text-secondary',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n /** Follows the surrounding text — for a spinner inside a button. */\n inherit: 'text-inherit'\n }\n },\n defaultVariants: {\n size: 'md',\n color: 'primary'\n }\n});\n\nexport type XuiSpinnerVariants = VariantProps<typeof spinnerVariants>;\n\n/** Geometry of the SVG below. The stroke is centred on the radius. */\nconst VIEWBOX = 100;\nconst STROKE_WIDTH = 12;\nconst RADIUS = (VIEWBOX - STROKE_WIDTH) / 2;\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\nconst CENTER = VIEWBOX / 2;\n\n/**\n * A circular progress indicator.\n *\n * ```html\n * <xui-spinner>Loading users</xui-spinner>\n * <xui-spinner [value]=\"0.7\" color=\"success\" />\n * ```\n *\n * Without `value` it spins indefinitely; with one it draws the matching arc.\n * Content is projected into a visually hidden label, which is what a screen\n * reader announces — a spinner with no label is just an unexplained \"busy\".\n */\n@Component({\n selector: 'xui-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <svg aria-hidden=\"true\" class=\"size-full\" [class.animate-spin]=\"indeterminate()\" viewBox=\"0 0 100 100\" fill=\"none\">\n <circle\n class=\"opacity-20\"\n [attr.cx]=\"center\"\n [attr.cy]=\"center\"\n [attr.r]=\"radius\"\n stroke=\"currentColor\"\n [attr.stroke-width]=\"strokeWidth\"\n />\n <circle\n class=\"ease-standard transition-[stroke-dashoffset] duration-300\"\n [attr.cx]=\"center\"\n [attr.cy]=\"center\"\n [attr.r]=\"radius\"\n stroke=\"currentColor\"\n [attr.stroke-width]=\"strokeWidth\"\n stroke-linecap=\"round\"\n [attr.stroke-dasharray]=\"circumference\"\n [attr.stroke-dashoffset]=\"dashOffset()\"\n [attr.transform]=\"'rotate(-90 ' + center + ' ' + center + ')'\"\n />\n </svg>\n <span class=\"sr-only\"><ng-content /></span>\n `,\n host: {\n role: 'status',\n '[attr.aria-valuemin]': 'indeterminate() ? null : 0',\n '[attr.aria-valuemax]': 'indeterminate() ? null : 100',\n '[attr.aria-valuenow]': 'percent()',\n '[class]': 'computedClass()'\n }\n})\nexport class XuiSpinner {\n private readonly config = injectXuiSpinnerConfig();\n\n protected readonly center = CENTER;\n protected readonly radius = RADIUS;\n protected readonly strokeWidth = STROKE_WIDTH;\n protected readonly circumference = CIRCUMFERENCE;\n\n /** The user-defined classes. Merged last so they win over the variant classes. */\n readonly class = input<ClassValue>('');\n readonly color = input<XuiSpinnerVariants['color']>(this.config.color);\n readonly size = input<XuiSpinnerVariants['size']>(this.config.size);\n\n /**\n * How far along the operation is, between 0 and 1. Out-of-range values are\n * clamped. Leave it unset to spin indefinitely.\n */\n readonly value = input<number | null | undefined>(undefined);\n\n readonly indeterminate = computed(() => this.value() == null);\n\n /** The clamped value as a whole percentage, or `null` while indeterminate. */\n readonly percent = computed(() => {\n const value = this.value();\n\n return value == null ? null : Math.round(100 * Math.min(Math.max(value, 0), 1));\n });\n\n protected readonly dashOffset = computed(() => {\n const percent = this.percent();\n\n // An indeterminate spinner shows a fixed quarter-circle head, which the\n // rotation animation carries around the track.\n return percent == null ? CIRCUMFERENCE * 0.75 : CIRCUMFERENCE * (1 - percent / 100);\n });\n\n protected readonly computedClass = computed(() =>\n xui(spinnerVariants({ color: this.color(), size: this.size() }), this.class())\n );\n}\n","import { XuiSpinner } from './lib/spinner';\n\nexport * from './lib/spinner';\nexport * from './lib/spinner.token';\n\nexport const XuiSpinnerImports = [XuiSpinner] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xui-spinner.mjs","sources":["../../../../../../libs/ui/spinner/xui/src/lib/spinner.token.ts","../../../../../../libs/ui/spinner/xui/src/lib/spinner.ts","../../../../../../libs/ui/spinner/xui/src/index.ts","../../../../../../libs/ui/spinner/xui/src/xui-spinner.ts"],"sourcesContent":["import { createXConfigToken } from '@xui/core';\nimport type { XuiSpinnerVariants } from './spinner';\n\n/**\n * Application-wide defaults for XuiSpinner.\n *\n * Provide it once at the app root to re-skin every spinner without touching\n * call sites; individual inputs still override the configured value.\n */\nexport interface XuiSpinnerConfig {\n color: XuiSpinnerVariants['color'];\n size: XuiSpinnerVariants['size'];\n}\n\nexport const [injectXuiSpinnerConfig, provideXuiSpinnerConfig] = createXConfigToken<XuiSpinnerConfig>(\n 'XuiSpinnerConfig',\n {\n color: 'primary',\n size: 'md'\n }\n);\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { xui } from '@xui/core';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\nimport { injectXuiSpinnerConfig } from './spinner.token';\n\nexport const spinnerVariants = cva('inline-block shrink-0', {\n variants: {\n size: {\n xs: 'h-4 w-4',\n sm: 'h-6 w-6',\n md: 'h-8 w-8',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16'\n },\n color: {\n primary: 'text-primary',\n secondary: 'text-secondary',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n /** Follows the surrounding text — for a spinner inside a button. */\n inherit: 'text-inherit'\n }\n },\n defaultVariants: {\n size: 'md',\n color: 'primary'\n }\n});\n\nexport type XuiSpinnerVariants = VariantProps<typeof spinnerVariants>;\n\n/** Geometry of the SVG below. The stroke is centred on the radius. */\nconst VIEWBOX = 100;\nconst STROKE_WIDTH = 12;\nconst RADIUS = (VIEWBOX - STROKE_WIDTH) / 2;\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\nconst CENTER = VIEWBOX / 2;\n\n/**\n * A circular progress indicator.\n *\n * ```html\n * <xui-spinner>Loading users</xui-spinner>\n * <xui-spinner [value]=\"0.7\" color=\"success\" />\n * ```\n *\n * Without `value` it spins indefinitely; with one it draws the matching arc.\n * Content is projected into a visually hidden label, which is what a screen\n * reader announces — a spinner with no label is just an unexplained \"busy\".\n */\n@Component({\n selector: 'xui-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <svg aria-hidden=\"true\" class=\"size-full\" [class.animate-spin]=\"indeterminate()\" viewBox=\"0 0 100 100\" fill=\"none\">\n <circle\n class=\"opacity-20\"\n [attr.cx]=\"center\"\n [attr.cy]=\"center\"\n [attr.r]=\"radius\"\n stroke=\"currentColor\"\n [attr.stroke-width]=\"strokeWidth\"\n />\n <circle\n class=\"ease-standard transition-[stroke-dashoffset] duration-300\"\n [attr.cx]=\"center\"\n [attr.cy]=\"center\"\n [attr.r]=\"radius\"\n stroke=\"currentColor\"\n [attr.stroke-width]=\"strokeWidth\"\n stroke-linecap=\"round\"\n [attr.stroke-dasharray]=\"circumference\"\n [attr.stroke-dashoffset]=\"dashOffset()\"\n [attr.transform]=\"'rotate(-90 ' + center + ' ' + center + ')'\"\n />\n </svg>\n <span class=\"sr-only\"><ng-content /></span>\n `,\n host: {\n role: 'status',\n '[attr.aria-valuemin]': 'indeterminate() ? null : 0',\n '[attr.aria-valuemax]': 'indeterminate() ? null : 100',\n '[attr.aria-valuenow]': 'percent()',\n '[class]': 'computedClass()'\n }\n})\nexport class XuiSpinner {\n private readonly config = injectXuiSpinnerConfig();\n\n protected readonly center = CENTER;\n protected readonly radius = RADIUS;\n protected readonly strokeWidth = STROKE_WIDTH;\n protected readonly circumference = CIRCUMFERENCE;\n\n /** The user-defined classes. Merged last so they win over the variant classes. */\n readonly class = input<ClassValue>('');\n /** Intent colour of the arc. */\n readonly color = input<XuiSpinnerVariants['color']>(this.config.color);\n /** Diameter, from the shared control scale, so a spinner matches the control it replaces. */\n readonly size = input<XuiSpinnerVariants['size']>(this.config.size);\n\n /**\n * How far along the operation is, between 0 and 1. Out-of-range values are\n * clamped. Leave it unset to spin indefinitely.\n */\n readonly value = input<number | null | undefined>(undefined);\n\n readonly indeterminate = computed(() => this.value() == null);\n\n /** The clamped value as a whole percentage, or `null` while indeterminate. */\n readonly percent = computed(() => {\n const value = this.value();\n\n return value == null ? null : Math.round(100 * Math.min(Math.max(value, 0), 1));\n });\n\n protected readonly dashOffset = computed(() => {\n const percent = this.percent();\n\n // An indeterminate spinner shows a fixed quarter-circle head, which the\n // rotation animation carries around the track.\n return percent == null ? CIRCUMFERENCE * 0.75 : CIRCUMFERENCE * (1 - percent / 100);\n });\n\n protected readonly computedClass = computed(() =>\n xui(spinnerVariants({ color: this.color(), size: this.size() }), this.class())\n );\n}\n","import { XuiSpinner } from './lib/spinner';\n\nexport * from './lib/spinner';\nexport * from './lib/spinner.token';\n\nexport const XuiSpinnerImports = [XuiSpinner] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xui/spinner",
3
- "version": "2.0.0-alpha.20",
3
+ "version": "2.0.0-alpha.21",
4
4
  "description": "Modern Angular 22 UI Library based on TailwindCSS",
5
5
  "keywords": [
6
6
  "angular",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@angular/core": "22",
40
- "@xui/core": "2.0.0-alpha.20",
40
+ "@xui/core": "2.0.0-alpha.21",
41
41
  "class-variance-authority": "^0.7.1",
42
42
  "clsx": "^2.1.1"
43
43
  },
@@ -28,7 +28,9 @@ declare class XuiSpinner {
28
28
  protected readonly circumference: number;
29
29
  /** The user-defined classes. Merged last so they win over the variant classes. */
30
30
  readonly class: _angular_core.InputSignal<ClassValue>;
31
+ /** Intent colour of the arc. */
31
32
  readonly color: _angular_core.InputSignal<"primary" | "secondary" | "success" | "error" | "warning" | "info" | "inherit" | null | undefined>;
33
+ /** Diameter, from the shared control scale, so a spinner matches the control it replaces. */
32
34
  readonly size: _angular_core.InputSignal<"xs" | "sm" | "md" | "lg" | "xl" | null | undefined>;
33
35
  /**
34
36
  * How far along the operation is, between 0 and 1. Out-of-range values are