ionbase-ui 0.51.0 → 0.59.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/dist/components/Accordion.d.ts +54 -0
  3. package/dist/components/Accordion.d.ts.map +1 -0
  4. package/dist/components/Accordion.js +68 -0
  5. package/dist/components/Accordion.js.map +1 -0
  6. package/dist/components/Breadcrumb.d.ts +45 -0
  7. package/dist/components/Breadcrumb.d.ts.map +1 -0
  8. package/dist/components/Breadcrumb.js +31 -0
  9. package/dist/components/Breadcrumb.js.map +1 -0
  10. package/dist/components/Checkbox.d.ts +2 -1
  11. package/dist/components/Checkbox.d.ts.map +1 -1
  12. package/dist/components/Checkbox.js +4 -2
  13. package/dist/components/Checkbox.js.map +1 -1
  14. package/dist/components/Combobox.d.ts +86 -0
  15. package/dist/components/Combobox.d.ts.map +1 -0
  16. package/dist/components/Combobox.js +261 -0
  17. package/dist/components/Combobox.js.map +1 -0
  18. package/dist/components/Drawer.d.ts +52 -0
  19. package/dist/components/Drawer.d.ts.map +1 -0
  20. package/dist/components/Drawer.js +66 -0
  21. package/dist/components/Drawer.js.map +1 -0
  22. package/dist/components/FileUpload.d.ts +79 -0
  23. package/dist/components/FileUpload.d.ts.map +1 -0
  24. package/dist/components/FileUpload.js +218 -0
  25. package/dist/components/FileUpload.js.map +1 -0
  26. package/dist/components/ProgressBar.d.ts +46 -0
  27. package/dist/components/ProgressBar.d.ts.map +1 -0
  28. package/dist/components/ProgressBar.js +52 -0
  29. package/dist/components/ProgressBar.js.map +1 -0
  30. package/dist/components/Select.d.ts +9 -2
  31. package/dist/components/Select.d.ts.map +1 -1
  32. package/dist/components/Select.js.map +1 -1
  33. package/dist/components/Skeleton.d.ts +39 -0
  34. package/dist/components/Skeleton.d.ts.map +1 -0
  35. package/dist/components/Skeleton.js +50 -0
  36. package/dist/components/Skeleton.js.map +1 -0
  37. package/dist/components/Spinner.d.ts +45 -0
  38. package/dist/components/Spinner.d.ts.map +1 -0
  39. package/dist/components/Spinner.js +44 -0
  40. package/dist/components/Spinner.js.map +1 -0
  41. package/dist/components/Toggle.d.ts +2 -1
  42. package/dist/components/Toggle.d.ts.map +1 -1
  43. package/dist/components/Toggle.js +4 -2
  44. package/dist/components/Toggle.js.map +1 -1
  45. package/dist/components/index.d.ts +16 -0
  46. package/dist/components/index.d.ts.map +1 -1
  47. package/dist/components/index.js +8 -0
  48. package/dist/components/index.js.map +1 -1
  49. package/dist/components/resolve-selection.d.ts +36 -0
  50. package/dist/components/resolve-selection.d.ts.map +1 -0
  51. package/dist/components/resolve-selection.js +14 -0
  52. package/dist/components/resolve-selection.js.map +1 -0
  53. package/dist/figma-descriptions.json +201 -146
  54. package/dist/figma-map.json +2296 -1684
  55. package/dist/meta/Accordion.json +123 -0
  56. package/dist/meta/AccordionItem.json +90 -0
  57. package/dist/meta/Breadcrumb.json +87 -0
  58. package/dist/meta/BreadcrumbItem.json +78 -0
  59. package/dist/meta/Checkbox.json +18 -1
  60. package/dist/meta/Combobox.json +265 -0
  61. package/dist/meta/Drawer.json +234 -0
  62. package/dist/meta/EmptyState.json +1 -1
  63. package/dist/meta/FileUpload.json +246 -0
  64. package/dist/meta/PhoneInput.json +39 -39
  65. package/dist/meta/Popover.json +3 -3
  66. package/dist/meta/ProgressBar.json +166 -0
  67. package/dist/meta/Select.json +4 -3
  68. package/dist/meta/Skeleton.json +120 -0
  69. package/dist/meta/Spinner.json +123 -0
  70. package/dist/meta/Toggle.json +18 -1
  71. package/dist/meta/Tooltip.json +3 -3
  72. package/dist/meta/components.json +1837 -270
  73. package/dist/meta/contrast.json +2873 -194
  74. package/dist/meta/index.json +128 -7
  75. package/dist/meta/patterns/index.json +1 -1
  76. package/dist/styles/accordion.css +102 -0
  77. package/dist/styles/breadcrumb.css +72 -0
  78. package/dist/styles/combobox.css +154 -0
  79. package/dist/styles/drawer.css +181 -0
  80. package/dist/styles/empty-state.css +16 -4
  81. package/dist/styles/file-upload.css +236 -0
  82. package/dist/styles/index.css +8 -0
  83. package/dist/styles/progress-bar.css +107 -0
  84. package/dist/styles/skeleton.css +76 -0
  85. package/dist/styles/spinner.css +70 -0
  86. package/llms.txt +2 -2
  87. package/package.json +19 -19
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Spinner
3
+ *
4
+ * One ring, one token per slot, sized off the icon ramp rather than a ramp of
5
+ * its own — a spinner is an icon-shaped thing and giving it private sizes is
6
+ * the `control/<size>/*` mistake recorded in AGENTS.md.
7
+ */
8
+ .ion-spinner {
9
+ --ion-spinner-size: var(--icon-size-md);
10
+ --ion-spinner-track: var(--border-subtle);
11
+ --ion-spinner-head: var(--border-primary-strong);
12
+
13
+ display: inline-flex;
14
+ align-items: center;
15
+ gap: var(--spacing-8);
16
+ color: var(--text-secondary);
17
+ font-family: var(--font-family-sans);
18
+ font-size: var(--type-body-sm);
19
+ line-height: var(--type-body-sm-line-height);
20
+ }
21
+
22
+ .ion-spinner--sm {
23
+ --ion-spinner-size: var(--icon-size-sm);
24
+ }
25
+
26
+ .ion-spinner--lg {
27
+ --ion-spinner-size: var(--icon-size-lg);
28
+ }
29
+
30
+ /*
31
+ * The track is the full ring and the head is one quadrant of it, which is what
32
+ * makes rotation legible: a ring of uniform colour spinning looks static.
33
+ */
34
+ .ion-spinner__ring {
35
+ box-sizing: border-box;
36
+ flex: none;
37
+ width: var(--ion-spinner-size);
38
+ height: var(--ion-spinner-size);
39
+ border: var(--border-width-thick) solid var(--ion-spinner-track);
40
+ border-top-color: var(--ion-spinner-head);
41
+ border-radius: var(--radius-full);
42
+ animation: ion-spinner-rotate var(--ion-duration-slow) var(--ion-ease-linear)
43
+ infinite;
44
+ }
45
+
46
+ @keyframes ion-spinner-rotate {
47
+ to {
48
+ transform: rotate(360deg);
49
+ }
50
+ }
51
+
52
+ /*
53
+ * Slowed, not stopped. A stationary spinner is not a calmer spinner; it is
54
+ * indistinguishable from a hung one, and it removes the only signal a sighted
55
+ * user has that the wait is still live.
56
+ */
57
+ @media (prefers-reduced-motion: reduce) {
58
+ .ion-spinner__ring {
59
+ animation-duration: 2400ms;
60
+ }
61
+ }
62
+
63
+ /* Forced colours throw the token palette away; the ring must still read as a
64
+ * ring, so the head keeps its contrast against the track. */
65
+ @media (forced-colors: active) {
66
+ .ion-spinner__ring {
67
+ border-color: GrayText;
68
+ border-top-color: CanvasText;
69
+ }
70
+ }
package/llms.txt CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > IonBase is a React design system for enterprise SaaS, built to be consumed by an agent rather than read by a developer. Every component ships a machine-readable contract carrying the judgement a type signature cannot: when to use it, what to use instead, the anti-patterns, and what it guarantees for accessibility versus what it requires of you.
4
4
 
5
- Version 0.51.0. 48 components.
5
+ Version 0.59.0. 58 components.
6
6
 
7
7
  ## Read these, in this order
8
8
 
@@ -13,7 +13,7 @@ Both are importable: `ionbase-ui/meta/index` and `ionbase-ui/meta/<Name>.json`.
13
13
 
14
14
  ## Components
15
15
 
16
- `AgentActivity`, `AgentActivityStep`, `AgentStop`, `Alert`, `ApprovalGate`, `Avatar`, `AvatarGradient`, `AvatarGroup`, `Badge`, `Button`, `Checkbox`, `Citation`, `CitationList`, `CitationListItem`, `ConfidenceIndicator`, `Divider`, `EmptyState`, `FullCard`, `Header`, `Icon`, `Input`, `Link`, `Logo`, `LogoMark`, `Menu`, `MenuItem`, `Modal`, `NavItem`, `Pagination`, `PhoneInput`, `Popover`, `Radio`, `RadioGroup`, `ScrollProgress`, `Select`, `StreamingText`, `TabItem`, `Table`, `TableBody`, `TableCell`, `TableHead`, `TableRow`, `Tabs`, `Textarea`, `Toast`, `ToastProvider`, `Toggle`, `Tooltip`
16
+ `Accordion`, `AccordionItem`, `AgentActivity`, `AgentActivityStep`, `AgentStop`, `Alert`, `ApprovalGate`, `Avatar`, `AvatarGradient`, `AvatarGroup`, `Badge`, `Breadcrumb`, `BreadcrumbItem`, `Button`, `Checkbox`, `Citation`, `CitationList`, `CitationListItem`, `Combobox`, `ConfidenceIndicator`, `Divider`, `Drawer`, `EmptyState`, `FileUpload`, `FullCard`, `Header`, `Icon`, `Input`, `Link`, `Logo`, `LogoMark`, `Menu`, `MenuItem`, `Modal`, `NavItem`, `Pagination`, `PhoneInput`, `Popover`, `ProgressBar`, `Radio`, `RadioGroup`, `ScrollProgress`, `Select`, `Skeleton`, `Spinner`, `StreamingText`, `TabItem`, `Table`, `TableBody`, `TableCell`, `TableHead`, `TableRow`, `Tabs`, `Textarea`, `Toast`, `ToastProvider`, `Toggle`, `Tooltip`
17
17
 
18
18
  ## Patterns
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ionbase-ui",
3
- "version": "0.51.0",
3
+ "version": "0.59.0",
4
4
  "description": "IonBase Design System — accessible React components, styles and design tokens in one package",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -60,23 +60,6 @@
60
60
  "publishConfig": {
61
61
  "access": "public"
62
62
  },
63
- "scripts": {
64
- "dev": "tsc --watch",
65
- "build": "node scripts/sync-tokens.mjs && tsc --build --force && node scripts/copy-css.mjs && node scripts/verify-client-boundaries.mjs && node scripts/verify-contrast.mjs && node scripts/build-meta.mjs && node scripts/verify-meta.mjs && node scripts/build-patterns.mjs && node scripts/verify-figma-map.mjs && node scripts/build-figma-descriptions.mjs && node scripts/verify-figma-descriptions.mjs && node scripts/build-llms.mjs",
66
- "typecheck": "tsc --noEmit",
67
- "lint": "eslint . && stylelint \"src/styles/*.css\"",
68
- "format": "prettier --check .",
69
- "icons:verify": "node scripts/verify-icons.mjs",
70
- "meta:build": "node scripts/build-meta.mjs",
71
- "meta:verify": "node scripts/build-meta.mjs && node scripts/verify-meta.mjs",
72
- "contrast": "node scripts/verify-contrast.mjs",
73
- "contrast:list": "node scripts/verify-contrast.mjs --list",
74
- "llms": "node scripts/build-llms.mjs",
75
- "patterns": "node scripts/build-patterns.mjs",
76
- "figma:map": "node scripts/verify-figma-map.mjs",
77
- "figma:descriptions": "node scripts/build-figma-descriptions.mjs",
78
- "figma:applied": "node scripts/record-figma-descriptions.mjs"
79
- },
80
63
  "peerDependencies": {
81
64
  "react": "^18.0.0 || ^19.0.0",
82
65
  "react-dom": "^18.0.0 || ^19.0.0",
@@ -105,5 +88,22 @@
105
88
  "eslint": {
106
89
  "optional": true
107
90
  }
91
+ },
92
+ "scripts": {
93
+ "dev": "tsc --watch",
94
+ "build": "node scripts/sync-tokens.mjs && tsc --build --force && node scripts/copy-css.mjs && node scripts/verify-client-boundaries.mjs && node scripts/verify-contrast.mjs && node scripts/build-meta.mjs && node scripts/verify-meta.mjs && node scripts/build-patterns.mjs && node scripts/verify-figma-map.mjs && node scripts/build-figma-descriptions.mjs && node scripts/verify-figma-descriptions.mjs && node scripts/build-llms.mjs",
95
+ "typecheck": "tsc --noEmit",
96
+ "lint": "eslint . && stylelint \"src/styles/*.css\"",
97
+ "format": "prettier --check .",
98
+ "icons:verify": "node scripts/verify-icons.mjs",
99
+ "meta:build": "node scripts/build-meta.mjs",
100
+ "meta:verify": "node scripts/build-meta.mjs && node scripts/verify-meta.mjs",
101
+ "contrast": "node scripts/verify-contrast.mjs",
102
+ "contrast:list": "node scripts/verify-contrast.mjs --list",
103
+ "llms": "node scripts/build-llms.mjs",
104
+ "patterns": "node scripts/build-patterns.mjs",
105
+ "figma:map": "node scripts/verify-figma-map.mjs",
106
+ "figma:descriptions": "node scripts/build-figma-descriptions.mjs",
107
+ "figma:applied": "node scripts/record-figma-descriptions.mjs"
108
108
  }
109
- }
109
+ }