@adia-ai/web-modules 0.8.35 → 0.8.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +3 -3
- package/agent-admin/admin-roster/admin-roster.js +1 -1
- package/agent-admin/admin-settings/admin-settings.js +1 -1
- package/agent-admin/agent-admin/agent-admin.js +1 -1
- package/billing/billing-overview/billing-overview.a2ui.json +281 -0
- package/billing/billing-overview/billing-overview.class.js +838 -0
- package/billing/billing-overview/billing-overview.css +223 -0
- package/billing/billing-overview/billing-overview.js +16 -0
- package/billing/billing-overview/billing-overview.yaml +441 -0
- package/billing/index.js +21 -0
- package/billing/invoice-detail/invoice-detail.a2ui.json +276 -0
- package/billing/invoice-detail/invoice-detail.class.js +711 -0
- package/billing/invoice-detail/invoice-detail.css +305 -0
- package/billing/invoice-detail/invoice-detail.js +16 -0
- package/billing/invoice-detail/invoice-detail.yaml +411 -0
- package/billing/invoice-history/invoice-history.a2ui.json +315 -0
- package/billing/invoice-history/invoice-history.class.js +672 -0
- package/billing/invoice-history/invoice-history.css +130 -0
- package/billing/invoice-history/invoice-history.js +16 -0
- package/billing/invoice-history/invoice-history.yaml +398 -0
- package/billing/payment-method-form/payment-method-form.a2ui.json +310 -0
- package/billing/payment-method-form/payment-method-form.class.js +886 -0
- package/billing/payment-method-form/payment-method-form.css +149 -0
- package/billing/payment-method-form/payment-method-form.js +16 -0
- package/billing/payment-method-form/payment-method-form.yaml +430 -0
- package/billing/payment-method-list/payment-method-list.a2ui.json +283 -0
- package/billing/payment-method-list/payment-method-list.class.js +705 -0
- package/billing/payment-method-list/payment-method-list.css +128 -0
- package/billing/payment-method-list/payment-method-list.js +16 -0
- package/billing/payment-method-list/payment-method-list.yaml +355 -0
- package/billing/plan-picker/plan-picker.a2ui.json +349 -0
- package/billing/plan-picker/plan-picker.class.js +635 -0
- package/billing/plan-picker/plan-picker.css +227 -0
- package/billing/plan-picker/plan-picker.js +16 -0
- package/billing/plan-picker/plan-picker.yaml +453 -0
- package/chat/README.md +1 -1
- package/chat/chat-composer/chat-composer.js +2 -2
- package/chat/chat-empty/chat-empty.js +2 -2
- package/chat/chat-shell/chat-shell.js +4 -4
- package/chat/chat-sidebar/chat-sidebar.js +2 -2
- package/chat/chat-surfaces/chat-surfaces.js +2 -2
- package/chat/chat-thread/chat-thread.js +2 -2
- package/dashboard/dashboard-layout/dashboard-layout.a2ui.json +254 -0
- package/dashboard/dashboard-layout/dashboard-layout.css +190 -0
- package/dashboard/dashboard-layout/dashboard-layout.js +289 -0
- package/dashboard/dashboard-layout/dashboard-layout.yaml +374 -0
- package/dashboard/date-range-selector/date-range-selector.a2ui.json +236 -0
- package/dashboard/date-range-selector/date-range-selector.css +84 -0
- package/dashboard/date-range-selector/date-range-selector.js +686 -0
- package/dashboard/date-range-selector/date-range-selector.yaml +358 -0
- package/dashboard/index.js +14 -0
- package/dist/everything.min.js +1 -1
- package/editor/editor-canvas/editor-canvas.js +2 -2
- package/editor/editor-shell/editor-shell.js +2 -2
- package/editor/editor-sidebar/editor-sidebar.js +2 -2
- package/editor/editor-toolbar/editor-toolbar.js +2 -2
- package/feedback/confirm-dialog/confirm-dialog.a2ui.json +206 -0
- package/feedback/confirm-dialog/confirm-dialog.css +157 -0
- package/feedback/confirm-dialog/confirm-dialog.js +383 -0
- package/feedback/confirm-dialog/confirm-dialog.yaml +297 -0
- package/feedback/index.js +10 -0
- package/form/form-popover/form-popover.js +1 -1
- package/generative/index.d.ts +1 -1
- package/generative/index.js +2 -2
- package/onboarding/index.js +1 -0
- package/onboarding/onboarding-checklist/onboarding-checklist.a2ui.json +263 -0
- package/onboarding/onboarding-checklist/onboarding-checklist.css +157 -0
- package/onboarding/onboarding-checklist/onboarding-checklist.js +428 -0
- package/onboarding/onboarding-checklist/onboarding-checklist.yaml +236 -0
- package/package.json +99 -6
- package/runtime/a2ui-root/a2ui-root.js +3 -3
- package/runtime/gen-root/gen-root.js +5 -5
- package/settings/index.js +12 -0
- package/settings/integrations-page/integrations-page.a2ui.json +274 -0
- package/settings/integrations-page/integrations-page.css +177 -0
- package/settings/integrations-page/integrations-page.d.ts +77 -0
- package/settings/integrations-page/integrations-page.js +413 -0
- package/settings/integrations-page/integrations-page.yaml +317 -0
- package/settings/notification-preferences/notification-preferences.a2ui.json +245 -0
- package/settings/notification-preferences/notification-preferences.css +204 -0
- package/settings/notification-preferences/notification-preferences.js +622 -0
- package/settings/notification-preferences/notification-preferences.yaml +358 -0
- package/shell/admin-command/admin-command.js +2 -2
- package/shell/admin-shell/admin-shell.js +2 -2
- package/shell/admin-sidebar/admin-sidebar.js +2 -2
- package/shell/embed-shell/embed-shell.js +3 -3
- package/simple/simple-shell/simple-shell.js +1 -1
- package/theme/theme-panel/theme-panel.js +2 -2
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://adiaui.dev/a2ui/v0_9/components/PlanPicker.json",
|
|
4
|
+
"title": "PlanPicker",
|
|
5
|
+
"description": "A form-participating chooser of one of N billing plans. The canonical\nplan-card grid used by both in-app upgrade modals and marketing\npricing pages (SPEC-012 composes this primitive as its core), so\nbenefit copy, pricing strings, recommendation highlighting, and the\nbilling-cycle toggle never drift between surfaces.\n\nEach plan record carries a stable id, name, optional tagline + icon,\na per-cycle price object, a feature list, and optional flags\n(recommended, rank, disabled). One plan may carry recommended:true\n(accent border + tinted bg + shadow); a host-level `current` id\nmarks the user's current plan (muted bg, \"Current plan\" tag, no\nChoose CTA, contextual \"Upgrade\"/\"Downgrade\" labels on siblings).\n\nLayout is grid by default (marketing surfaces) and `layout=\"list\"`\nfor in-app settings panels. The optional `cycle-toggle` boolean\nrenders an internal <segmented-ui> that swaps prices between\nmonthly and annual cycles in place across every card.\n\nSpec: .claude/docs/specs/implementation-ready/SPEC-011-plan-picker-in-app-upgrade.md.\n",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"allOf": [
|
|
8
|
+
{
|
|
9
|
+
"$ref": "common_types.json#/$defs/ComponentCommon"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"$ref": "common_types.json#/$defs/CatalogComponentCommon"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"component": {
|
|
17
|
+
"const": "PlanPicker"
|
|
18
|
+
},
|
|
19
|
+
"currency": {
|
|
20
|
+
"description": "Default ISO 4217 currency code for price rendering. Overridable\nper-price via plans[].prices[cycle].currency.\n",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"default": "USD"
|
|
23
|
+
},
|
|
24
|
+
"current": {
|
|
25
|
+
"description": "Id of the user's CURRENT plan. When set, that card renders with\na muted background, a \"Current plan\" <tag-ui>, and either no CTA\nor a \"Manage\" CTA. Other plans receive contextual upgrade /\ndowngrade CTA labels derived from rank. Unknown ids fail\nsilently (no anchor row).\n",
|
|
26
|
+
"$ref": "common_types.json#/$defs/DynamicString"
|
|
27
|
+
},
|
|
28
|
+
"cycle": {
|
|
29
|
+
"description": "Active billing cycle. Drives which `plans[].prices[cycle]` value\nrenders across every card simultaneously. Toggle via the in-host\n`cycle-toggle` (when set) or programmatically via setCycle().\n",
|
|
30
|
+
"$ref": "common_types.json#/$defs/DynamicString"
|
|
31
|
+
},
|
|
32
|
+
"cycle-toggle": {
|
|
33
|
+
"description": "When set, the primitive renders an internal <segmented-ui> with\nMonthly / Annual options above the plan grid. When unset, the\nconsumer drives [cycle] externally (e.g. from a parent toolbar).\n",
|
|
34
|
+
"type": "boolean",
|
|
35
|
+
"default": false
|
|
36
|
+
},
|
|
37
|
+
"data-stream-src": {
|
|
38
|
+
"description": "Optional endpoint returning the `plans` array (universal\ndata-stream-* trait). On successful load, `plans` is replaced\nand a `load` event fires; on failure an `error` event fires.\n",
|
|
39
|
+
"type": "string",
|
|
40
|
+
"default": ""
|
|
41
|
+
},
|
|
42
|
+
"disabled": {
|
|
43
|
+
"description": "Block all interaction across the picker.",
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"default": false
|
|
46
|
+
},
|
|
47
|
+
"layout": {
|
|
48
|
+
"description": "Card layout. `grid` (auto-fit columns, minimum 16rem) for\nmarketing surfaces. `list` (single column rows) for in-app\nsettings panels.\n",
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": [
|
|
51
|
+
"grid",
|
|
52
|
+
"list"
|
|
53
|
+
],
|
|
54
|
+
"default": "grid"
|
|
55
|
+
},
|
|
56
|
+
"locale": {
|
|
57
|
+
"description": "Locale for Intl.NumberFormat (price) and cycle labels. Defaults\nto document.documentElement.lang (or \"en-US\" when absent).\n",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"default": ""
|
|
60
|
+
},
|
|
61
|
+
"name": {
|
|
62
|
+
"description": "Form field name for the selected plan id. Mirrors UIFormElement\nconventions; serialized via ElementInternals.\n",
|
|
63
|
+
"type": "string",
|
|
64
|
+
"default": ""
|
|
65
|
+
},
|
|
66
|
+
"plans": {
|
|
67
|
+
"description": "Array of plan records. Source of truth for the rendered cards.\nShape per record: {id, name, tagline?, prices: {monthly: {amount,\ncurrency?, unit?, note?}, annual?: {...}}, features?: string[],\ncta?: string, recommended?: boolean, rank?: number, icon?: string,\ndisabled?: boolean}. Empty array renders the empty-state.\n",
|
|
68
|
+
"$ref": "common_types.json#/$defs/DynamicStringList"
|
|
69
|
+
},
|
|
70
|
+
"value": {
|
|
71
|
+
"description": "Currently selected plan id (form value). Read-write — both the\nform submission key and the [checked] gate on the matching\n<option-card-ui>.\n",
|
|
72
|
+
"$ref": "common_types.json#/$defs/DynamicString"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"component",
|
|
77
|
+
"plans"
|
|
78
|
+
],
|
|
79
|
+
"unevaluatedProperties": false,
|
|
80
|
+
"x-adiaui": {
|
|
81
|
+
"anti_patterns": [
|
|
82
|
+
{
|
|
83
|
+
"fix": "<plan-picker-ui plans='[\n {\"id\":\"p1\",\"name\":\"Free\",\"prices\":{\"monthly\":{\"amount\":0}}},\n {\"id\":\"p2\",\"name\":\"Pro\",\"prices\":{\"monthly\":{\"amount\":20}}}\n]'></plan-picker-ui>\n",
|
|
84
|
+
"why": "`price` is a top-level shortcut not in the schema. Prices are\nkeyed by cycle (monthly / annual). Without a cycle key, the\ncycle toggle has nothing to switch and annual pricing is\ninvisible to consumers.\n",
|
|
85
|
+
"wrong": "<plan-picker-ui plans='[\n {\"id\":\"p1\",\"name\":\"Free\",\"price\":0},\n {\"id\":\"p2\",\"name\":\"Pro\",\"price\":20}\n]'></plan-picker-ui>\n"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"fix": "<plan-picker-ui plans='[\n {\"id\":\"t\",\"name\":\"Team\",\"prices\":{\"monthly\":{\"amount\":10}}},\n {\"id\":\"p\",\"name\":\"Pro\",\"recommended\":true,\"prices\":{\"monthly\":{\"amount\":20}}}\n]'></plan-picker-ui>\n",
|
|
89
|
+
"why": "Two recommended plans cancel each other visually — there is no\n\"the\" recommendation. Pick one.\n",
|
|
90
|
+
"wrong": "<plan-picker-ui plans='[\n {\"id\":\"t\",\"name\":\"Team\",\"recommended\":true,\"prices\":{\"monthly\":{\"amount\":10}}},\n {\"id\":\"p\",\"name\":\"Pro\",\"recommended\":true,\"prices\":{\"monthly\":{\"amount\":20}}}\n]'></plan-picker-ui>\n"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"fix": "<plan-picker-ui plans=\"...\" cycle-toggle></plan-picker-ui>\n",
|
|
94
|
+
"why": "Reinvents the radiogroup keyboard model and the cycle-toggle\nsemantics; pricing strings drift between this surface and the\nmarketing pricing page that uses the canonical primitive.\n",
|
|
95
|
+
"wrong": "A <col-ui> of bespoke <card-ui> plan cards with manual radio\nmarkup and a per-plan cycle pill.\n"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"category": "input",
|
|
99
|
+
"composes": [
|
|
100
|
+
"option-card-ui",
|
|
101
|
+
"segmented-ui",
|
|
102
|
+
"segment-ui",
|
|
103
|
+
"button-ui",
|
|
104
|
+
"icon-ui",
|
|
105
|
+
"text-ui",
|
|
106
|
+
"tag-ui",
|
|
107
|
+
"empty-state-ui"
|
|
108
|
+
],
|
|
109
|
+
"events": {
|
|
110
|
+
"change": {
|
|
111
|
+
"description": "Fired when the selected plan id changes — either via user click\nor programmatic value set. Bubbles.\n",
|
|
112
|
+
"detail": {
|
|
113
|
+
"cycle": {
|
|
114
|
+
"description": "Active billing cycle.",
|
|
115
|
+
"type": "string"
|
|
116
|
+
},
|
|
117
|
+
"previous": {
|
|
118
|
+
"description": "Previous plan id (empty string when none).",
|
|
119
|
+
"type": "string"
|
|
120
|
+
},
|
|
121
|
+
"value": {
|
|
122
|
+
"description": "New plan id.",
|
|
123
|
+
"type": "string"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"cycle-change": {
|
|
128
|
+
"description": "Fired when the active billing cycle changes (cycle-toggle\nclick or programmatic setCycle). Bubbles.\n",
|
|
129
|
+
"detail": {
|
|
130
|
+
"cycle": {
|
|
131
|
+
"description": "New cycle.",
|
|
132
|
+
"type": "string",
|
|
133
|
+
"enum": [
|
|
134
|
+
"monthly",
|
|
135
|
+
"annual"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"previous": {
|
|
139
|
+
"description": "Previous cycle.",
|
|
140
|
+
"type": "string"
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"error": {
|
|
145
|
+
"description": "Fired when a `data-stream-src` fetch fails OR when a user tries\nto select a `disabled: true` plan. Bubbles.\n",
|
|
146
|
+
"detail": {
|
|
147
|
+
"reason": {
|
|
148
|
+
"description": "One of `fetch-failed`, `plan-disabled`.",
|
|
149
|
+
"type": "string"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"load": {
|
|
154
|
+
"description": "Fired when `data-stream-src` finishes a successful fetch and\n`plans` is populated. Bubbles.\n",
|
|
155
|
+
"detail": {
|
|
156
|
+
"count": {
|
|
157
|
+
"description": "Number of plans loaded.",
|
|
158
|
+
"type": "integer"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"select": {
|
|
163
|
+
"description": "Fired when the user activates a plan's CTA button — the\ncommitting action that consumers wire to a checkout / upgrade\nflow. Distinct from `change` (selection without commit). Bubbles.\n",
|
|
164
|
+
"detail": {
|
|
165
|
+
"cycle": {
|
|
166
|
+
"description": "Active billing cycle at commit.",
|
|
167
|
+
"type": "string"
|
|
168
|
+
},
|
|
169
|
+
"value": {
|
|
170
|
+
"description": "Plan id being committed.",
|
|
171
|
+
"type": "string"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"examples": [
|
|
177
|
+
{
|
|
178
|
+
"description": "In-app upgrade modal with three plans + annual default + cycle toggle.",
|
|
179
|
+
"a2ui": "[\n {\n \"id\": \"pp-upgrade\",\n \"component\": \"PlanPicker\",\n \"name\": \"plan\",\n \"current\": \"plan_team\",\n \"cycle\": \"annual\",\n \"cycleToggle\": true,\n \"plans\": [\n {\"id\":\"plan_free\",\"name\":\"Free\",\"prices\":{\"monthly\":{\"amount\":0}},\"features\":[\"3 projects\",\"Community support\"],\"rank\":1},\n {\"id\":\"plan_team\",\"name\":\"Team\",\"prices\":{\"monthly\":{\"amount\":10,\"unit\":\"seat\"},\"annual\":{\"amount\":8,\"unit\":\"seat\",\"note\":\"billed annually\"}},\"features\":[\"Unlimited projects\",\"Email support\"],\"rank\":2},\n {\"id\":\"plan_pro\",\"name\":\"Pro\",\"prices\":{\"monthly\":{\"amount\":25,\"unit\":\"seat\"},\"annual\":{\"amount\":20,\"unit\":\"seat\",\"note\":\"billed annually\"}},\"features\":[\"Everything in Team\",\"Priority support\"],\"recommended\":true,\"rank\":3}\n ]\n }\n]\n",
|
|
180
|
+
"name": "in-app-upgrade"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"description": "Settings-page plan picker — single-column list inside a card.",
|
|
184
|
+
"a2ui": "[\n {\n \"id\": \"pp-settings\",\n \"component\": \"PlanPicker\",\n \"name\": \"plan\",\n \"current\": \"plan_team\",\n \"layout\": \"list\",\n \"plans\": [\n {\"id\":\"plan_team\",\"name\":\"Team\",\"prices\":{\"monthly\":{\"amount\":10,\"unit\":\"seat\"}},\"features\":[\"Unlimited projects\"],\"rank\":2},\n {\"id\":\"plan_pro\",\"name\":\"Pro\",\"prices\":{\"monthly\":{\"amount\":25,\"unit\":\"seat\"}},\"features\":[\"Everything in Team\",\"Priority support\"],\"recommended\":true,\"rank\":3}\n ]\n }\n]\n",
|
|
185
|
+
"name": "settings-list"
|
|
186
|
+
}
|
|
187
|
+
],
|
|
188
|
+
"keywords": [
|
|
189
|
+
"plan-picker",
|
|
190
|
+
"plans",
|
|
191
|
+
"pricing",
|
|
192
|
+
"upgrade",
|
|
193
|
+
"billing",
|
|
194
|
+
"tier",
|
|
195
|
+
"tiers",
|
|
196
|
+
"subscription",
|
|
197
|
+
"subscribe",
|
|
198
|
+
"paywall",
|
|
199
|
+
"choose-plan",
|
|
200
|
+
"select-plan",
|
|
201
|
+
"plan-selection"
|
|
202
|
+
],
|
|
203
|
+
"name": "PlanPicker",
|
|
204
|
+
"related": [
|
|
205
|
+
"OptionCard",
|
|
206
|
+
"Segmented",
|
|
207
|
+
"Segment",
|
|
208
|
+
"Tag",
|
|
209
|
+
"Button",
|
|
210
|
+
"Card",
|
|
211
|
+
"EmptyState",
|
|
212
|
+
"Skeleton"
|
|
213
|
+
],
|
|
214
|
+
"slots": {
|
|
215
|
+
"empty": {
|
|
216
|
+
"description": "Custom empty-state shown when `plans` is empty. Falls back to a\ndefault <empty-state-ui> when not provided.\n"
|
|
217
|
+
},
|
|
218
|
+
"footer": {
|
|
219
|
+
"description": "Optional content below the plan grid (compare-plans link, FAQ,\nfine print).\n"
|
|
220
|
+
},
|
|
221
|
+
"header": {
|
|
222
|
+
"description": "Optional content above the plan grid (e.g. a <header> with a\ntitle and a custom cycle toggle). When absent and\n`cycle-toggle` is set, the primitive stamps its own toggle.\n"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"states": [
|
|
226
|
+
{
|
|
227
|
+
"description": "Default — plans rendered, ready for interaction.",
|
|
228
|
+
"name": "idle"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"description": "A `data-stream-src` fetch is in flight.",
|
|
232
|
+
"attribute": "loading",
|
|
233
|
+
"name": "loading"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"description": "No plans to render.",
|
|
237
|
+
"attribute": "empty",
|
|
238
|
+
"name": "empty"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"description": "Last `data-stream-src` fetch failed.",
|
|
242
|
+
"attribute": "error",
|
|
243
|
+
"name": "error"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"description": "All cards non-interactive.",
|
|
247
|
+
"attribute": "disabled",
|
|
248
|
+
"name": "disabled"
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
"status": "experimental",
|
|
252
|
+
"synonyms": {
|
|
253
|
+
"plan": [
|
|
254
|
+
"tier",
|
|
255
|
+
"subscription",
|
|
256
|
+
"package"
|
|
257
|
+
],
|
|
258
|
+
"pricing": [
|
|
259
|
+
"plan",
|
|
260
|
+
"price",
|
|
261
|
+
"tier"
|
|
262
|
+
],
|
|
263
|
+
"upgrade": [
|
|
264
|
+
"plan-change",
|
|
265
|
+
"subscribe",
|
|
266
|
+
"choose-plan"
|
|
267
|
+
]
|
|
268
|
+
},
|
|
269
|
+
"tag": "plan-picker-ui",
|
|
270
|
+
"tokens": {
|
|
271
|
+
"--plan-picker-bg": {
|
|
272
|
+
"description": "Host background. Defaults to transparent.",
|
|
273
|
+
"default": "transparent"
|
|
274
|
+
},
|
|
275
|
+
"--plan-picker-card-bg": {
|
|
276
|
+
"description": "Card background (cascades to option-card --option-card-bg).",
|
|
277
|
+
"default": "var(--a-bg)"
|
|
278
|
+
},
|
|
279
|
+
"--plan-picker-card-bg-current": {
|
|
280
|
+
"description": "Current-plan card background.",
|
|
281
|
+
"default": "var(--a-bg-muted)"
|
|
282
|
+
},
|
|
283
|
+
"--plan-picker-card-bg-recommended": {
|
|
284
|
+
"description": "Recommended-card background.",
|
|
285
|
+
"default": "var(--md-sys-color-primary-container)"
|
|
286
|
+
},
|
|
287
|
+
"--plan-picker-card-border": {
|
|
288
|
+
"description": "Default card border.",
|
|
289
|
+
"default": "1px solid var(--a-border)"
|
|
290
|
+
},
|
|
291
|
+
"--plan-picker-card-border-recommended": {
|
|
292
|
+
"description": "Recommended-card accent border.",
|
|
293
|
+
"default": "2px solid var(--md-sys-color-primary)"
|
|
294
|
+
},
|
|
295
|
+
"--plan-picker-card-px": {
|
|
296
|
+
"description": "Card horizontal padding.",
|
|
297
|
+
"default": "var(--a-space-5)"
|
|
298
|
+
},
|
|
299
|
+
"--plan-picker-card-py": {
|
|
300
|
+
"description": "Card vertical padding.",
|
|
301
|
+
"default": "var(--a-space-5)"
|
|
302
|
+
},
|
|
303
|
+
"--plan-picker-card-radius": {
|
|
304
|
+
"description": "Card corner radius.",
|
|
305
|
+
"default": "var(--a-radius-lg)"
|
|
306
|
+
},
|
|
307
|
+
"--plan-picker-card-shadow-recommended": {
|
|
308
|
+
"description": "Shadow elevation on the recommended card.",
|
|
309
|
+
"default": "var(--a-shadow-md)"
|
|
310
|
+
},
|
|
311
|
+
"--plan-picker-cycle-fg": {
|
|
312
|
+
"description": "Per-unit / cycle suffix color (e.g. \"/month\").",
|
|
313
|
+
"default": "var(--a-fg-muted)"
|
|
314
|
+
},
|
|
315
|
+
"--plan-picker-feature-icon-fg": {
|
|
316
|
+
"description": "Feature-row check icon color.",
|
|
317
|
+
"default": "var(--md-sys-color-primary)"
|
|
318
|
+
},
|
|
319
|
+
"--plan-picker-features-gap": {
|
|
320
|
+
"description": "Gap between feature list rows.",
|
|
321
|
+
"default": "var(--a-space-2)"
|
|
322
|
+
},
|
|
323
|
+
"--plan-picker-grid-gap": {
|
|
324
|
+
"description": "Gap between plan cards in grid layout.",
|
|
325
|
+
"default": "var(--a-space-4)"
|
|
326
|
+
},
|
|
327
|
+
"--plan-picker-grid-min": {
|
|
328
|
+
"description": "Minimum column width in auto-fit grid.",
|
|
329
|
+
"default": "16rem"
|
|
330
|
+
},
|
|
331
|
+
"--plan-picker-price-fg": {
|
|
332
|
+
"description": "Price color.",
|
|
333
|
+
"default": "var(--a-fg-strong, var(--a-fg))"
|
|
334
|
+
},
|
|
335
|
+
"--plan-picker-price-size": {
|
|
336
|
+
"description": "Price font size.",
|
|
337
|
+
"default": "var(--a-text-3xl, 1.875rem)"
|
|
338
|
+
},
|
|
339
|
+
"--plan-picker-toggle-justify": {
|
|
340
|
+
"description": "Justification of the internal cycle toggle row. `center` for\nmarketing layouts; `start` for in-app settings panels.\n",
|
|
341
|
+
"default": "center"
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
"traits": [
|
|
345
|
+
"focusable"
|
|
346
|
+
],
|
|
347
|
+
"version": 1
|
|
348
|
+
}
|
|
349
|
+
}
|